[SOLVED] Call Transfer


I’m having below setup on my platform.

SIP Provider 1 ----> My IVR (Asterisk box) ----> SIP Provider 2

SIP Provider 1 IP - x1.x2.x3.x4
My IVR IP - y1.y2.y3.y4
SIP Provider 2 IP - z1.z2.z3.z4

Call is coming from SIP Provider 1 to My IVR.

When there is a call to my platform, it sends calls to a vxml through Voiceglue. Let’s say vxml just transfer call to a sip address which is on SIP Provider 2.

For that my vxml transfer tag is as below;

My problem is when a call comes, My IVR sends REFER request to SIP Provider1 for transferring the call. I don’t want SIP Provider 1 to involve in call transfer but MY IVR transfer the call to the sip destination directly.

Please let me know a way to do this.

I checked even removing VXML and just putting Transfer() cmd in dialplan. It also sends REFER request to SIP Provider 1.


why are u using VXML, you can directly transfer call using DIAL command of Asterisk. For Example…

exten = _X.,1,Dial(SIP/Number@SipProviderIP)

Thanks for your reply.

Actually my IVR application is defined in VXML. When a condition meets, then only call will be transferred.

For that, I made voiceglue configuration blind_xfer_method=dial too.

Then i got below output in asterisk and no SIP packets are going out.
(IP address is masked in below content)

– AGI Script Executing Application: (Dial) Options: (sip/1234@z1.z2.z3.z4||)
== Everyone is busy/congested at this time (1:0/0/1)
– Playing ‘voiceglue/tts/Sorry__there_was_a_problem_processing_your_request_’

I can notice additional two “pipe” (|) signs coming with sip address above. but couldn’t find a way to avoid it and don’t know whether that is the issue.

Appreciate all your support.

I am not familiar with voiceglue. Can you do some R&D with asterisk. Dial it directly using Dial command of asterisk (With out using voice glue.) if it also do not work…Check whether this SIP provider is allowing your call or call from your ip. or you can also try directly using SJ phone. And if it is working there must be something wrong with your vxml code.

What is VXML? Who wrote the dialplan that implements the IVR application? Which version if Asterisk is being used? Is the C code unmodified?

I would consider the REFER method to be the “direct” one (and from our point of view normally the desirable one as it frees up network capacity to the Asterisk box and removes the Asterisk box as a possible point of failure). What you seem to be asking for is to insert your box as a tandem exchange, not to do a transfer. I would consider that straightforward compared with Transfer.

I would note that Asterisk outgoing REFER has poor error handling. That’s particularly true in, but I don’t think all the problems have been fixed since then.

Thanks for all your replies.

It is solved by doing;

  1. I made voiceglue configuration blind_xfer_method=dial.
    (vim /etc/voiceglue.conf)
  2. VXML file’s trasnfer tag is as below.
  3. I changed /usr/bin/phoneglue script by removing “|” pipe sign from Dial command construction ( AGI_CLIENT_MSG_DIAL)

Now SIP communication with destination sip address is working fine.