duancan1732 2012-07-12 09:01
浏览 88
已采纳

从拨号方案到AGI脚本的星号服务器传递变量

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
}
  • 写回答

5条回答 默认 最新

  • dongtang1909 2014-06-06 08:43
    关注

    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
        }
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?