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>