[Asterisk-Dev] IAX2 Transfer Message Sequence?
Steven Sokol
ssokol at sokol-associates.com
Sun Jan 18 10:39:23 MST 2004
Yes! Thank you very much. This is exactly what I needed to see.
Thanks again!
Sokol
> -----Original Message-----
> From: asterisk-dev-admin at lists.digium.com [mailto:asterisk-dev-
> admin at lists.digium.com] On Behalf Of Mark Spencer
> Sent: Saturday, January 17, 2004 5:11 PM
> To: asterisk-dev at lists.digium.com
> Subject: Re: [Asterisk-Dev] IAX2 Transfer Message Sequence?
>
> > > Can anyone summarize the sequence of messages that need to be
> > > sent/received in order to execute an IAX2 native transfer?
> > > I just asked on IRC and was dutifully told "read the
> > > source". Duh. I have read the source. And googled the
> > > archive. The source tells me what all of the command are,
> > > and how Asterisk processes each of them. It just doesn't
> > > tell me anything about the sequence that Asterisk is
> > > expecting in order to execute either a blind or a
> > > consultative transfer.
>
> I would say that "read the iax2 debug" is perhaps a more helpful
mantra in
> this case than "read the source".
>
> Essentially it works like this (a little simplified):
>
> A -> B "NEW" (A sets up a call to B)
> A <- B "ACK" (B acknowledges)
> B -> C "NEW" (B sets up call to C)
> B <- C "ACK" (C acks)
> B <- C "RINGING" (C informs B of ringing if applicable)
> A <- B "RINGING" (B informs A of ringing if applicable)
> B <- C "ANSWER" (C informs B of answer condition)
> A <- B "ANSWER" (B informs A of answer condition)
>
> At this point, there are two calls setup, one from A->B and one from
B->C.
> Audio is passing both directions via "B". "B" then decides to
complete
> the transfer so that "A" and "C" talk directly:
>
> A <- B "TXREQ" (B requests A test connectivity to C)
> B -> C "TXREQ" (B requests C test connectivity to A)
> A -> C "TXCNT" (A attempts contact with C)
> A <- C "TXCNT" (C attempts contact with A)
> A <- C "TXACC" (C verifies connectivity with A)
> A -> C "TXACC" (A verifies connectivity with C)
>
> Note that if A can't see C or C can't see A, this the end... audio
> continues to be bridged through B, and the user is none-the-wiser.
This
> keeps IAX transfer robust across even the penultimately worst routers
> (although the ulitimately worst routers crash when you try to send to
two
> different destinations from the same source).
>
> A -> B "TXREADY" (A informs B that everything looks good)
> B <- C "TXREADY" (C informs B that everything looks good)
> A <- B "TXREL" (B releases A to talk to C)
> B -> C "TXREL" (B releases C to talk to A)
>
> And at this point, the sequence numbers and jitter buffer timers are
> reset, and A and C now talk happily ever after until HANGUP do them
part.
>
> Was that helpful?
>
> Mark
>
> _______________________________________________
> Asterisk-Dev mailing list
> Asterisk-Dev at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-dev
> To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-dev
More information about the asterisk-dev
mailing list