[Asterisk-Users] Transferring a call with IAX

Aaron Daniel amdtech at shsu.edu
Fri Mar 24 16:41:14 MST 2006


Why do you have s-ANSWER jumping to s-OK?  Try putting a NoOp in s-ANSWER 
and see if it's making it there... Also, when the call doesn't make it 
through, does it jump through the s-DIALSTATUS priorities?

Aaron

On Fri, 24 Mar 2006, Douglas Garstang wrote:

> Nope... that's not the problem here. I put a NoOp right before the MacroExit, and it didn't execute that either.
>
> Dial returns ANSWER, and so it should execute (2),but it doesn't. This drives me insane. I have lost count of how many days I've wasted trying to get the most basic things to work in Asterisk.
>
> exten => s,1,Dial(IAX2/pbxuser@${ARG1}/${ARG2}@${ARG3},25,wW)
> exten => s,2,Goto(s-${DIALSTATUS},1)
> exten => s-ANSWER,1,Goto(s-OK,1)
> exten => s-NOANSWER,1,Goto(s-ERROR,1)
> exten => s-CONGESTION,1,Goto(s-ERROR,1)
> exten => s-CHANUNAVAIL,1,Goto(s-ERROR,1)
> exten => s-ERROR,1,Answer()
> exten => s-ERROR,2,Wait,1
> exten => s-ERROR,3,Set(i=1)
> exten => s-ERROR,4,While($[${i} < 4])
> exten => s-ERROR,5,Playback(cannot-complete-network-error)
> exten => s-ERROR,6,Playback(message-number)
> exten => s-ERROR,7,Playback(letters/o)
> exten => s-ERROR,8,Playback(letters/e)
> exten => s-ERROR,9,Playback(digits/9)
> exten => s-ERROR,10,Playback(digits/0)
> exten => s-ERROR,11,Playback(digits/0)
> exten => s-ERROR,12,Set(i=$[${i} + 1])
> exten => s-ERROR,13,EndWhile
> exten => s-ERROR,14,Hangup()
> exten => s-OK,1,NoOP(CONTROL BACK INSIDE MACRO)
> exten => s-OK,2,MacroExit
>
>> -----Original Message-----
>> From: Aaron Daniel [mailto:amdtech at shsu.edu]
>> Sent: Friday, March 24, 2006 4:33 PM
>> To: Asterisk Users Mailing List - Non-Commercial Discussion
>> Subject: RE: [Asterisk-Users] Transferring a call with IAX
>>
>>
>> Looking at your macro, I don't have any MacroExits in mine.
>> I use AEL,
>> and it doesn't put that on the macros.  Try changing your
>> MacroExit to a
>> NoOp(Macro Finished) and see if that drops you back into the
>> original call
>> structure.
>>
>> Aaron
>>
>> On Fri, 24 Mar 2006, Douglas Garstang wrote:
>>
>>> Aaron, this is what I get, debug turned up and all...
>>>
>>> Mar 24 16:17:47 DEBUG[19475] chan_iax2.c: Immediately
>> destroying 3, having received hangup
>>> Mar 24 16:17:47 DEBUG[29506] channel.c: Didn't get a frame
>> from channel: IAX2/acdserver1-3
>>> Mar 24 16:17:47 DEBUG[29506] channel.c: Bridge stops
>> bridging channels SIP/2944093-20ac and IAX2/acdserver1-3
>>> Mar 24 16:17:47 DEBUG[29506] chan_iax2.c: We're hanging up
>> IAX2/acdserver1-3 now...
>>> Mar 24 16:17:47 DEBUG[29506] chan_iax2.c: Really destroying
>> IAX2/acdserver1-3 now...
>>> Mar 24 16:17:47 VERBOSE[29506] logger.c:     -- Hungup
>> 'IAX2/acdserver1-3'
>>> Mar 24 16:17:47 DEBUG[29506] app_dial.c: Exiting with
>> DIALSTATUS=ANSWER.
>>> Mar 24 16:17:47 VERBOSE[29506] logger.c:   == Spawn
>> extension (macro-DialIAX, s, 1) exited non-zero on
>> 'SIP/2944093-20ac' in macro 'DialIAX'
>>> Mar 24 16:17:47 VERBOSE[29506] logger.c:   == Spawn
>> extension (macro-DialIAX, s, 1) exited non-zero on 'SIP/2944093-20ac'
>>> Mar 24 16:17:47 DEBUG[29506] cdr_addon_mysql.c: cdr_mysql:
>> inserting a CDR record.
>>>
>>> It's all greek to me... actually you can see it exits with
>> DIALSTATUS=Answer. My macro calls MacroExit() on ANSWER,
>> which should return control back to where the Macro was
>> called from! How weird.. it looks like I _AM_ getting control
>> back, sort of...
>>>
>>> Doug.
>>>
>>>> -----Original Message-----
>>>> From: Aaron Daniel [mailto:amdtech at shsu.edu]
>>>> Sent: Friday, March 24, 2006 4:07 PM
>>>> To: Asterisk Users Mailing List - Non-Commercial Discussion
>>>> Subject: RE: [Asterisk-Users] Transferring a call with IAX
>>>>
>>>>
>>>> Hmm... and nothing in the macro after the dial command is
>>>> being executed?
>>>> What does the CLI say on the caller server when the ACD server is
>>>> finished?
>>>>
>>>> Aaron
>>>>
>>>> On Fri, 24 Mar 2006, Douglas Garstang wrote:
>>>>
>>>>> Aaron... I don't think that's it.
>>>>>
>>>>> When I comment out the Macro call on the ACD server, the
>>>> NoOP(QUEUE DONE) is called, and that's where it stops.
>>>> Without the macro being called on the ACD server, control
>>>> should return to the PBX server and it does not.
>>>>>
>>>>> Here's what the caller has:
>>>>> exten => 2944000,1,Dial(SIP/2944030,15,tr)
>>>>> exten => 2944000,2,Answer
>>>>> exten => 2944000,3,Wait,1
>>>>> exten => 2944000,4,Playback(thank-you-for-calling)
>>>>> exten => 2944000,5,Playback(customer-service)
>>>>> exten =>
>>>> 2944000,6,Macro(DialIAX,acdserver1,oe_custcare,oneeighty_acd)
>>>>> exten => 2944000,7,NoOp(CONTROL RETURNED) <-- this does
>> NOT execute
>>>>>
>>>>> and here's what the callee has:
>>>>> exten => oe_custcare,1,Answer
>>>>> exten => oe_custcare,2,Queue(oe_custcare||||120)
>>>>> exten => oe_custcare,3,NoOP(QUEUE DONE) <-- this executes
>>>>> exten => oe_custcare,4,Hangup <-- this also executes
>>>>>
>>>>> and here's the caller's macro:
>>>>> exten => s,1,Dial(IAX2/pbxuser@${ARG1}/${ARG2}@${ARG3},25,wW)
>>>>> exten => s,2,Goto(s-${DIALSTATUS},1)
>>>>> exten => s-ANSWER,1,Goto(s-OK,1)
>>>>> exten => s-NOANSWER,1,Goto(s-ERROR,1)
>>>>> exten => s-CONGESTION,1,Goto(s-ERROR,1)
>>>>> exten => s-CHANUNAVAIL,1,Goto(s-ERROR,1)
>>>>> exten => s-ERROR,1,Answer()
>>>>> exten => s-ERROR,2,Wait,1
>>>>> exten => s-ERROR,3,Set(i=1)
>>>>> exten => s-ERROR,4,While($[${i} < 4])
>>>>> exten => s-ERROR,5,Playback(cannot-complete-network-error)
>>>>> exten => s-ERROR,6,Playback(message-number)
>>>>> exten => s-ERROR,7,Playback(letters/o)
>>>>> exten => s-ERROR,8,Playback(letters/e)
>>>>> exten => s-ERROR,9,Playback(digits/9)
>>>>> exten => s-ERROR,10,Playback(digits/0)
>>>>> exten => s-ERROR,11,Playback(digits/0)
>>>>> exten => s-ERROR,12,Set(i=$[${i} + 1])
>>>>> exten => s-ERROR,13,EndWhile
>>>>> exten => s-ERROR,14,Hangup()
>>>>> exten => s-OK,1,MacroExit
>>>>>
>>>>> ... on callee:
>>>>>    -- Executing NoOp("IAX2/216.187.142.203:4569-5", "QUEUE
>>>> DONE") in new stack
>>>>>    -- Executing Hangup("IAX2/216.187.142.203:4569-5", "")
>>>> in new stack
>>>>>
>>>>> ... on the caller:
>>>>>    -- Hungup 'IAX2/acdserver1-3'
>>>>>
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Aaron Daniel [mailto:amdtech at shsu.edu]
>>>>>> Sent: Friday, March 24, 2006 3:52 PM
>>>>>> To: Asterisk Users Mailing List - Non-Commercial Discussion
>>>>>> Subject: RE: [Asterisk-Users] Transferring a call with IAX
>>>>>>
>>>>>>
>>>>>> My bad, sorry, one of those days.
>>>>>>
>>>>>> Change priority 4 on the ACD server to a Hangup and ignore
>>>>>> what I said
>>>>>> before about putting in priority 5.  Put the macro call you
>>>>>> had on the ACD
>>>>>> server on the PBX server, and that should fix your problem.
>>>>>> Since you're
>>>>>> having the ACD server do a macro of it's own, it's not
>>>>>> getting sent back
>>>>>> directly to the PBX server.
>>>>>>
>>>>>> Let me know how that works.
>>>>>>
>>>>>> Aaron
>>>>>>
>>>>>> On Fri, 24 Mar 2006, Douglas Garstang wrote:
>>>>>>
>>>>>>> Aaron.
>>>>>>>
>>>>>>> Uhm... yes. I thought you picked up on that.
>>>>>>> It's like this:
>>>>>>>
>>>>>>> PBX Server -> ACD Server(queue times out) -> VM Server
>>>>>>>
>>>>>>> I'd like it to go like this:
>>>>>>>
>>>>>>> PBX Server -> ACD Server(queue times out) -> PBX Server
>>>> -> VM Server
>>>>>>>
>>>>>>> So, after the pbx server dials the acd server, and the
>>>>>> queue times out, I wanted to have control returned to the pbx
>>>>>> server where _it_ could dial the VM server, instead of the
>>>>>> ACD server doing it. I thought you where doing something similar?
>>>>>>>
>>>>>>> Douglas.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> -----Original Message-----
>>>>>>>> From: Aaron Daniel [mailto:amdtech at shsu.edu]
>>>>>>>> Sent: Friday, March 24, 2006 2:51 PM
>>>>>>>> To: Asterisk Users Mailing List - Non-Commercial Discussion
>>>>>>>> Subject: RE: [Asterisk-Users] Transferring a call with IAX
>>>>>>>>
>>>>>>>>
>>>>>>>> Hhhmmm... I missed something... You're jumping from one
>>>>>>>> calling server
>>>>>>>> through a "callee" server, and then from there to another
>>>>>> server for
>>>>>>>> voicemail?
>>>>>>>>
>>>>>>>> Aaron
>>>>>>>>
>>>>>>>> On Fri, 24 Mar 2006, Douglas Garstang wrote:
>>>>>>>>
>>>>>>>>> Thanks Aaron, but nope... that didn't do it. I put an
>>>>>>>> explicit hangup right after the Queue app on the ACD server,
>>>>>>>> and I see this when it times out:
>>>>>>>>> Executing Hangup("IAX2/216.187.142.203:4569-2", "")
>> in new stack
>>>>>>>>>
>>>>>>>>> However, the calling server never regained control. Ahhh
>>>>>>>> Asterisk a marvelous thing... I can see myself spending days
>>>>>>>> on trying to get this to work.
>>>>>>>>>
>>>>>>>>> Doug
>>>>>>>>>
>>>>>>>>>> -----Original Message-----
>>>>>>>>>> From: Aaron Daniel [mailto:amdtech at shsu.edu]
>>>>>>>>>> Sent: Friday, March 24, 2006 1:43 PM
>>>>>>>>>> To: Asterisk Users Mailing List - Non-Commercial Discussion
>>>>>>>>>> Subject: RE: [Asterisk-Users] Transferring a call with IAX
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Heh, lots of voodoo... I've got a drawer full of dolls shaped
>>>>>>>>>> like servers
>>>>>>>>>> that we stick pins into when something's not working :)
>>>>>>>>>>
>>>>>>>>>> Anyway... um, let's see if I can piece this together,
>>>> it's kinda
>>>>>>>>>> scattered...
>>>>>>>>>>
>>>>>>>>>> A call comes from SCM2 (the secondary call server) and it
>>>>>>>>>> starts looking
>>>>>>>>>> for the phone with this:
>>>>>>>>>>                  Dial(SIP/${info_forwardto},25);
>>>>>>>>>> then using the DIALSTATUS, if it finds that it's in
>>>>>>>>>> CHANUNAVAIL, it sends
>>>>>>>>>> it to the primary server:
>>>>>>>>>>                  case "CHANUNAVAIL":
>>>>>>>>>>
>>>>>>>>>>
>>>>>>
>> Dial(IAX2/asterisk:password at scm1.shsu.edu/${info_forwardto},25,wW);
>>>>>>>>>>                          &uvm(${ext});
>>>>>>>>>>                          Hangup;
>>>>>>>>>>                          break;
>>>>>>>>>>
>>>>>>>>>> In order to keep the call compartmentalized, on SCM1,
>>>> we've got:
>>>>>>>>>> context from-scm2 {
>>>>>>>>>>          _4XXXX => {
>>>>>>>>>>                  NoOp(DIALING SIP EXTENSION ${EXTEN} - FROM
>>>>>>>>>> ${CALLERIDNUM});
>>>>>>>>>>                  Dial(SIP/${EXTEN},20,wW);
>>>>>>>>>>                  Hangup;
>>>>>>>>>>          };
>>>>>>>>>>
>>>>>>>>>>          _6XXXX => {
>>>>>>>>>>                  NoOp(DIALING SIP EXTENSION ${EXTEN} - FROM
>>>>>>>>>> ${CALLERIDNUM});
>>>>>>>>>>                  Dial(SIP/${EXTEN},20,wW);
>>>>>>>>>>                  Hangup;
>>>>>>>>>>          };
>>>>>>>>>> };
>>>>>>>>>>
>>>>>>>>>> I think your problem is that the other server isn't hanging
>>>>>>>>>> up the line
>>>>>>>>>> when it runs out of the queue.  Add this, and it should
>>>>>>>> work for you:
>>>>>>>>>>
>>>>>>>>>> exten => oe_custcare,5,Hangup
>>>>>>>>>>
>>>>>>>>>> Let me know if that works :)
>>>>>>>>>>
>>>>>>>>>> Aaron
>>>>>>>>>>
>>>>>>>>>> P.S. It's the same on both servers, just the server names are
>>>>>>>>>> switched.
>>>>>>>>>> Either server can be the primary.  If you want it in
>>>>>>>> extensions.conf
>>>>>>>>>> language, let me know.
>>>>>>>>>>
>>>>>>>>>> On Fri, 24 Mar 2006, Douglas Garstang wrote:
>>>>>>>>>>
>>>>>>>>>>> Aaron,
>>>>>>>>>>>
>>>>>>>>>>> That's not what I'm seeing. I'd like to know how your
>>>> doing it.
>>>>>>>>>>> Here's what the calling system has:
>>>>>>>>>>>
>>>>>>>>>>> exten => 2944000,1,Dial(SIP/2944030,15,tr)
>>>>>>>>>>> exten => 2944000,2,Answer
>>>>>>>>>>> exten => 2944000,3,Wait,1
>>>>>>>>>>> exten => 2944000,4,Playback(thank-you-for-calling)
>>>>>>>>>>> exten => 2944000,5,Playback(customer-service)
>>>>>>>>>>> exten =>
>>>>>>>>>> 2944000,6,Macro(DialIAX,acdserver1,oe_custcare,oneeighty_acd)
>>>>>>>>>>>
>>>>>>>>>>> and on the callee system(acd box) I have:
>>>>>>>>>>> exten => oe_custcare,1,Answer
>>>>>>>>>>> exten => oe_custcare,2,Queue(oe_custcare||||120)
>>>>>>>>>>> exten => oe_custcare,3,NoOP(QUEUE DONE)
>>>>>>>>>>> exten =>
>>>>>> oe_custcare,4,Macro(DialIAX,vmserver1,2944002,vmdeposit)
>>>>>>>>>>>
>>>>>>>>>>> and here's the Macro on the calling system:
>>>>>>>>>>> exten => s,1,Dial(IAX2/pbxuser@${ARG1}/${ARG2}@${ARG3})
>>>>>>>>>>> exten => s,2,Goto(s-${DIALSTATUS},1)
>>>>>>>>>>> exten => s-ANSWER,1,Goto(s-OK,1)
>>>>>>>>>>> exten => s-NOANSWER,1,Goto(s-ERROR,1)
>>>>>>>>>>> exten => s-CONGESTION,1,Goto(s-ERROR,1)
>>>>>>>>>>> exten => s-CHANUNAVAIL,1,Goto(s-ERROR,1)
>>>>>>>>>>> exten => s-ERROR,1,Answer()
>>>>>>>>>>> exten => s-ERROR,2,Wait,1
>>>>>>>>>>> exten => s-ERROR,3,Set(i=1)
>>>>>>>>>>> exten => s-ERROR,4,While($[${i} < 4])
>>>>>>>>>>> exten => s-ERROR,5,Playback(cannot-complete-network-error)
>>>>>>>>>>> exten => s-ERROR,6,Playback(message-number)
>>>>>>>>>>> exten => s-ERROR,7,Playback(letters/o)
>>>>>>>>>>> exten => s-ERROR,8,Playback(letters/e)
>>>>>>>>>>> exten => s-ERROR,9,Playback(digits/9)
>>>>>>>>>>> exten => s-ERROR,10,Playback(digits/0)
>>>>>>>>>>> exten => s-ERROR,11,Playback(digits/0)
>>>>>>>>>>> exten => s-ERROR,12,Set(i=$[${i} + 1])
>>>>>>>>>>> exten => s-ERROR,13,EndWhile
>>>>>>>>>>> exten => s-ERROR,14,Hangup()
>>>>>>>>>>> exten => s-OK,1,MacroExit
>>>>>>>>>>>
>>>>>>>>>>> The callee system executes the NoOP(QUEUE DONE) when the
>>>>>>>>>> queue times out, but does not return control to the calling
>>>>>>>>>> system. I have to dial the VM server from the ACD box. I
>>>>>>>>>> don't understand how that could work anyways. Once you've
>>>>>>>>>> transferred the call, you've transferred it.
>>>>>>>>>>>
>>>>>>>>>>> What voodoo are you using?
>>>>>>>>>>>
>>>>>>>>>>> Doug.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Aaron Daniel
>>>>>>>>>> Computer Systems Technician
>>>>>>>>>> Sam Houston State University
>>>>>>>>>> amdtech at shsu.edu
>>>>>>>>>> (936) 294-4198
>>>>>>>>>> _______________________________________________
>>>>>>>>>> --Bandwidth and Colocation provided by Easynews.com --
>>>>>>>>>>
>>>>>>>>>> Asterisk-Users mailing list
>>>>>>>>>> To UNSUBSCRIBE or update options visit:
>>>>>>>>>>    http://lists.digium.com/mailman/listinfo/asterisk-users
>>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> --Bandwidth and Colocation provided by Easynews.com --
>>>>>>>>>
>>>>>>>>> Asterisk-Users mailing list
>>>>>>>>> To UNSUBSCRIBE or update options visit:
>>>>>>>>>   http://lists.digium.com/mailman/listinfo/asterisk-users
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Aaron Daniel
>>>>>>>> Computer Systems Technician
>>>>>>>> Sam Houston State University
>>>>>>>> amdtech at shsu.edu
>>>>>>>> (936) 294-4198
>>>>>>>> _______________________________________________
>>>>>>>> --Bandwidth and Colocation provided by Easynews.com --
>>>>>>>>
>>>>>>>> Asterisk-Users mailing list
>>>>>>>> To UNSUBSCRIBE or update options visit:
>>>>>>>>    http://lists.digium.com/mailman/listinfo/asterisk-users
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> --Bandwidth and Colocation provided by Easynews.com --
>>>>>>>
>>>>>>> Asterisk-Users mailing list
>>>>>>> To UNSUBSCRIBE or update options visit:
>>>>>>>   http://lists.digium.com/mailman/listinfo/asterisk-users
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> Aaron Daniel
>>>>>> Computer Systems Technician
>>>>>> Sam Houston State University
>>>>>> amdtech at shsu.edu
>>>>>> (936) 294-4198
>>>>>> _______________________________________________
>>>>>> --Bandwidth and Colocation provided by Easynews.com --
>>>>>>
>>>>>> Asterisk-Users mailing list
>>>>>> To UNSUBSCRIBE or update options visit:
>>>>>>    http://lists.digium.com/mailman/listinfo/asterisk-users
>>>>>>
>>>>> _______________________________________________
>>>>> --Bandwidth and Colocation provided by Easynews.com --
>>>>>
>>>>> Asterisk-Users mailing list
>>>>> To UNSUBSCRIBE or update options visit:
>>>>>   http://lists.digium.com/mailman/listinfo/asterisk-users
>>>>>
>>>>
>>>> --
>>>> Aaron Daniel
>>>> Computer Systems Technician
>>>> Sam Houston State University
>>>> amdtech at shsu.edu
>>>> (936) 294-4198
>>>> _______________________________________________
>>>> --Bandwidth and Colocation provided by Easynews.com --
>>>>
>>>> Asterisk-Users mailing list
>>>> To UNSUBSCRIBE or update options visit:
>>>>    http://lists.digium.com/mailman/listinfo/asterisk-users
>>>>
>>> _______________________________________________
>>> --Bandwidth and Colocation provided by Easynews.com --
>>>
>>> Asterisk-Users mailing list
>>> To UNSUBSCRIBE or update options visit:
>>>   http://lists.digium.com/mailman/listinfo/asterisk-users
>>>
>>
>> --
>> Aaron Daniel
>> Computer Systems Technician
>> Sam Houston State University
>> amdtech at shsu.edu
>> (936) 294-4198
>> _______________________________________________
>> --Bandwidth and Colocation provided by Easynews.com --
>>
>> Asterisk-Users mailing list
>> To UNSUBSCRIBE or update options visit:
>>    http://lists.digium.com/mailman/listinfo/asterisk-users
>>
> _______________________________________________
> --Bandwidth and Colocation provided by Easynews.com --
>
> Asterisk-Users mailing list
> To UNSUBSCRIBE or update options visit:
>   http://lists.digium.com/mailman/listinfo/asterisk-users
>

-- 
Aaron Daniel
Computer Systems Technician
Sam Houston State University
amdtech at shsu.edu
(936) 294-4198



More information about the asterisk-users mailing list