Asterisk Server Pass Variable from Dialplan to AGI Script

14,816

Solution 1

Here is how I implemented same with php-agi.php

failed.php (will execute if call failed)

<?php
    require_once "phpagi.php";
    require_once "phpagi-asmanager.php";

    $astman = new AGI();
    $astman->set_variable('CallState','failed');

?>

success.php (will execute if call success)

<?php
    require_once "phpagi.php";
    require_once "phpagi-asmanager.php";

    $astman = new AGI();
    $astman->set_variable('CallState','success');

?>

hangup.php (will execute on end of the call, if call failed or success)

<?php
    require_once "phpagi.php";
    require_once "phpagi-asmanager.php";

    $astman = new AGI();
    $call_state = agi_get_var('CallState');
    if($call_state == "success"){
        //call was success
    }
    elseif($call_state == "failed"){
        //call was failed
    }
?>

Solution 2

The agi will be called with some standard paramaters, include the called-from extension (in your case, that will be i or failed). Make sure you are parsing the arguments being passed to your script (via stdin)!

Share:
14,816
Miqdad Ali
Author by

Miqdad Ali

I cяєαтє мa σωи ѕтуℓєѕ, ∂oит Foℓℓoω αиу σиє... ℓιvє ωι∂ мa σωи тєямѕ.... [:d) ι мαkє мa σωи яυℓєѕ.... ι ∂oит *cαяє *ωнαт oтнєяѕ ѕαу αßσυт мє* you can check out my website by clicking right here

Updated on June 29, 2022

Comments

  • Miqdad Ali
    Miqdad Ali almost 2 years

    My Dialplan is like this

    [dial-plan]
    exten => s,1,Answer()
    exten => s,n,Noop(exten = ${EXTEN}
    exten => s,n,Macro(dumpvars)
    exten => s,n,Macro(record-enable)
    exten => s,n,AGI(success.php)
    exten => i,1,Noop(REASON = ${REASON})
    exten => i,n,Macro(dumpvars)
    exten => i,n,AGI(faile.php)
    exten => failed,1,Noop(REASON = ${REASON})
    exten => failed,n,Macro(dumpvars)
    exten => failed,n,AGI(faile.php)
    

    I want to catch from where faile.php called , It may be called from failed or from i . How can I check this

    I need to make like this is faile.php

    if($some_var == 1){
         //Invalid
    }
    elsif($some_var == 2){
        //Failed
    }