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>