[Asterisk-Users] Transferring a call with IAX

Aaron Daniel amdtech at shsu.edu
Fri Mar 24 14:50:55 MST 2006


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



More information about the asterisk-users mailing list