[Asterisk-Users] Transferring a call with IAX

Douglas Garstang dgarstang at oneeighty.com
Fri Mar 24 16:19:40 MST 2006


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
> 



More information about the asterisk-users mailing list