Hi all, Hopefully, I just need a second set of eyes on this one, but I just can't figure out what I'm doing wrong. I'm using an agi script to dial a number, check the dial result, and act accordingly.
The problem is that I'm not getting anything back from DIALSTATUS, or HANGUPCAUSE. Here is the relevant perl code: =============================================================== $main::agi->verbose("==================================================================================== ", 1); $main::agi->exec("dial", "sip/$t->{trunk}/$t->{prefix}$o->{number},240,KrTWX"); $result = $main::agi->get_variable("DIALSTATUS"); $cause = $main::agi->get_variable("HANGUPCAUSE"); $o->{DIALSTATUS} = $result; $o->{HANGUPCAUSE} = $cause; $main::agi->verbose("============================= The result of the last call was ($o->{DIALSTATUS}) ($o->{HANGUPCAUSE})", 1); $main::agi->verbose("==================================================================================== ", 1); =============================================================== Here is the relevant output with agi debug turned on: =============================================================== [Apr 1 15:01:55] <SIP/CCEF485BC606-2-00007787>AGI Tx >> 200 result=0 [Apr 1 15:01:55] <SIP/CCEF485BC606-2-00007787>AGI Rx << VERBOSE "==================================================================================== " 1 [Apr 1 15:01:55] magic_switch.pl: ==================================================================================== [Apr 1 15:01:55] <SIP/CCEF485BC606-2-00007787>AGI Tx >> 200 result=1 [Apr 1 15:01:55] <SIP/CCEF485BC606-2-00007787>AGI Rx << EXEC dial "sip/didlogic/15058457900,240,KrTWX" [Apr 1 15:01:55] -- AGI Script Executing Application: (dial) Options: (sip/didlogic/15058457900,240,KrTWX) [Apr 1 15:01:55] == Using SIP RTP TOS bits 24 [Apr 1 15:01:55] == Using SIP RTP CoS mark 5 [Apr 1 15:01:55] -- Called sip/didlogic/15058457900 [Apr 1 15:01:55] -- Got SIP response 603 "Declined" back from 178.63.143.236:5060 [Apr 1 15:01:55] -- SIP/didlogic-00007788 is busy [Apr 1 15:01:55] == Everyone is busy/congested at this time (1:1/0/0) [Apr 1 15:01:55] <SIP/CCEF485BC606-2-00007787>AGI Tx >> 200 result=0 [Apr 1 15:01:55] <SIP/CCEF485BC606-2-00007787>AGI Rx << GET VARIABLE DIALSTATUS [Apr 1 15:01:55] <SIP/CCEF485BC606-2-00007787>AGI Tx >> 200 result=1 (BUSY) [Apr 1 15:01:55] <SIP/CCEF485BC606-2-00007787>AGI Rx << GET VARIABLE HANGUPCAUSE [Apr 1 15:01:55] <SIP/CCEF485BC606-2-00007787>AGI Tx >> 200 result=1 (21) [Apr 1 15:01:55] <SIP/CCEF485BC606-2-00007787>AGI Rx << VERBOSE "============================= The result of the last call was () ()" 1 [Apr 1 15:01:55] magic_switch.pl: ============================= The result of the last call was () () [Apr 1 15:01:55] <SIP/CCEF485BC606-2-00007787>AGI Tx >> 200 result=1 [Apr 1 15:01:55] <SIP/CCEF485BC606-2-00007787>AGI Rx << VERBOSE "==================================================================================== " 1 [Apr 1 15:01:55] magic_switch.pl: ==================================================================================== =============================================================== So, the result of my previous AGI command was 200. Then I can clearly see that the result of this dial is BUSY/21, which I understand. But, my perl script isn't getting this value. I do the assignment to/from $result and $cause because I use those values later in the script, but have to pass them back to a global routine, as well. Can anyone see what I'm doing wrong? Mike Diehl.
-- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users