[Asterisk-Users] Transferring a call with IAX

Aaron Daniel amdtech at shsu.edu
Fri Mar 24 13:42:38 MST 2006


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



More information about the asterisk-users mailing list