Mitch Claborn
2013-Aug-02 17:57 UTC
[asterisk-users] Dial application "b" subroutine arguments not passing?
Asterisk 11.1.0 I'm trying to use the "b" subroutine of the Dial application so that I can do some stuff with our internal applications that need to have access to the called channel information. I can see that the subroutine is being executed, but the arguments I pass don't see to make it to the subroutine. [callmenow] exten => s,1,NoOp(callmenow: Queue without answer) same =>n,Queue(sales,tc) [dial-to-customer] exten => s,1,NoOp(to-customer) same =>n,Wait(1) same =>n,Playback(custom/callmenow-announce) same =>n,GoSub(sub-outbound_caller_id,start,1) same =>n,Dial(${TOLL}/${MMCUSTOMER_NUMBER},,*b(dial-to-customer-sub,s,1,${MMCUSTOMER_NUMBER},${MEMBERINTERFACE},${MEMBERNAME})*) [dial-to-customer-sub] ; this runs on the customer's channel exten =>s,1,NoOp() same =>n,Set(OPERATORID=${ODBC_OPERATORID_FROM_ADDRESS(${ARG2})}) same =>n,Verbose(2, dial-to-customer-sub interface ${ARG2} name ${ARG3} customer number ${ARG1} operatoriod ${OPERATORID} channel name ${CHANNEL(name)} unique ID ${CHANNEL(uniqueid)} ) same =>n,Return() The whole thing is kicked off by an AMI request: Action: Originate Channel: Local/s at callmenow Context: dial-to-customer Exten: s Priority: 1 Async: true Callerid: Call Me Now <777> Variable: MMCUSTOMER_NUMBER=9995551212 Timeout: 999999 Output from the subroutine: -- Executing [s at dial-to-customer-sub:3] Verbose("SIP/voipms-0000001e", "2, dial-to-customer-sub interface name customer number operatoriod channel name SIP/voipms-0000001e unique ID mlcx500-1375465508.61 ") in new stack The "U" subroutine seems to work OK same =>n,Dial(${TOLL}/${MMCUSTOMER_NUMBER},,U(dial-to-customer-sub,${MMCUSTOMER_NUMBER},${MEMBERINTERFACE},${MEMBERNAME})) I want the "b" subroutine, because it is call before attempting to connect the remote end. This gives me plenty of time to notify my application and have it look up the customer's record while the call is being placed. The "U" subroutine is called after the call is connected. Am I missing something, or is it broke? (This whole thing is development for a "call me now" feature from the web site.) -- Mitch -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20130802/b82bd430/attachment.htm>
Matthew Jordan
2013-Aug-02 18:28 UTC
[asterisk-users] Dial application "b" subroutine arguments not passing?
On Fri, Aug 2, 2013 at 12:57 PM, Mitch Claborn <mitch_ml at claborn.net> wrote:> Asterisk 11.1.0 > > I'm trying to use the "b" subroutine of the Dial application so that I can > do some stuff with our internal applications that need to have access to > the called channel information. I can see that the subroutine is being > executed, but the arguments I pass don't see to make it to the subroutine. > > [callmenow] > exten => s,1,NoOp(callmenow: Queue without answer) > same =>n,Queue(sales,tc) > > [dial-to-customer] > exten => s,1,NoOp(to-customer) > same =>n,Wait(1) > same =>n,Playback(custom/callmenow-announce) > same =>n,GoSub(sub-outbound_caller_id,start,1) > same =>n,Dial(${TOLL}/${MMCUSTOMER_NUMBER},,* > b(dial-to-customer-sub,s,1,${MMCUSTOMER_NUMBER},${MEMBERINTERFACE},${MEMBERNAME}) > *) >Use a '^' to delineate arguments pass to subroutines. This is actually true for the U option as well. See: https://wiki.asterisk.org/wiki/display/AST/Pre-Dial+Handlers And: https://wiki.asterisk.org/wiki/display/AST/Asterisk+11+Application_Dial -- Matthew Jordan Digium, Inc. | Engineering Manager 445 Jan Davis Drive NW - Huntsville, AL 35806 - USA Check us out at: http://digium.com & http://asterisk.org -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20130802/14c6a237/attachment.htm>