[Asterisk-Dev] IAX protocol - how do I transfer a call?

Grzegorz Nosek blackfire at metal.art.pl
Fri Nov 21 00:40:12 MST 2003


Hi

Thanks very much for your quick reply

On Thu, 20 Nov 2003 09:06:31 -0600 (CST), Mark Spencer wrote
> there is an IAX_EVENT_TRANSFER which is a blind trasnfer and 
> hten you can also use TXREQ to handle supervised transfer.
> 
> IAX_COMMAND_TRANSFER just executes a blind transfer "send 
> whoever i'm talking to to extension foo".  Note that there 
> is no response, and processing on the call should continue 
> normally until a HANGUP is received.

Unfortunately, I can't seem to find IAX_COMMAND_TRANSFER in the source
(iax-0.2.2 downloaded from ftp.digium.com).

> 
> Supervised transfer is more complicated because (unlike SIP),
>  IAX is designed to be robust against NAT issues.  Therefore,
>  when you want to natively connect to asterisk calls 
> together, you send both sides a TXREQ to both sides asking 
> them to try to connect with their peers.  They each will 
> send a TXCNT to try to see the other side.  If they can see 
> the other side, it will send them a TXACC to say "yah i saw 
> you", then it sends a TXREADY back to the iax client trying 
> to make the transfer.  When both sides have sent a TXREADY,
>  a TXREL can be sent which causes them to go ahead and talk 
> directly to one another.  In the mean time, and if for any 
> reason the sides can't see one another, the iax client in 
> the middle must continue to handle the transfer.

 From the source, I see that I must send remip=%s;remport=%s;remcall=%s
(iax_header_to_event()) along with TXREQ. Is there a wrapper around
it? Haven't seen in the code... What exactly is remcall? Is it the
[d]callno with which the peer communicates with us?

What part of it is handled automagically by the IAX library? Where
does the "supervised" part take place (talking to the transfer
destination)? I understand it's before the TXREQ, right?

Thanks very much in advance

> 
> Mark
> 

Grzegorz Nosek




More information about the asterisk-dev mailing list