That scheme is not quite correct.
From the UAC perspective you should be opening your port for
listening as soon as you send the INVITE request. Media can make it to
your endpoint before any SIP messaging. You should start sending media as
soon as you receive the 200 with SDP answer in it. The only time you should
care about the ACK is if the original INVITE does not contain an offer.
As a UAS you can start sending media any time after the INVITE
is received, but usually this is not done until the 200 (sdp answer) is sent
out, at which time you should also start listening.
Scott
From:
resiprocate-users-bounces@xxxxxxxxxxxxxxx
[mailto:resiprocate-users-bounces@xxxxxxxxxxxxxxx] On Behalf Of Mykhailo
Parfeniuk
Sent: Monday, November 12, 2007 4:54 AM
To: resiprocate-users@xxxxxxxxxxxxxxx
Subject: [reSIProcate-users] How properly establish media connections?
As far as I understand media
connection should start like this:
INVITE
---------------------->
making decision about call, accepting
200
OK
opening <--------------------
openning port for listenning for incoming send 200
port for
listenning
for incoming
media and
starting
transfer
media
ACK
send ACK --------------------> starting transfer
media
For session instantiation there are callbacks in resiprocate, and if sdp is
sent with first
invite it is possible to implement such a scheme. But for re-INVITE or UPDATE
there are only 2 callbacks onOffer and onAnswer. I can't properly decide when
start
transfer media if you are the side that answer for offer. Is there in
resiprocate callback
for this purpose (as I know onConnectionConfirmed is not called)? Or what are
other
schemes for implementing media transfer properly (in synchronous
way, without
situation "destination unreachable").