Re: [reSIProcate-users] onEarlyMedia()
Hi John,
There are six legal offer/answer combinations in SIP:
INVITE / 200 to INVITE (RFC 3261)
200 to INVITE / ACK (RFC 3261)
INVITE / reliable 18x (RFC 3262)
reliable 18x / PRACK (RFC 3262)
PRACK / 200 to PRACK (RFC 3262)
UPDATE / 200 to UPDATE (RFC 3311)
A UA is not allowed to start a new offer/answer exchange until the
previous offer/answer exchange is completed and acknowledged. In the
call flow you show below, the UPDATE MUST NOT contain a new offer,
because the previous offer answer exchange has not been completed and
acknowledged. The correct thing for UA to do in A is to ignore any
SDP in the UPDATE.
If you had any of the flows below, you could provide an answer to an
UPDATE:
INVITE (offer) ->
<- reliable 183 (answer)
PRACK ->
<- 200 (PRACK)
<- UDPATE (offer>
200 (UPDATE - answer) ->
INVITE ->
<- reliable 183 (offer)
PRACK (answer) ->
<- 200 (PRACK)
<- UDPATE (offer>
200 (UPDATE - answer) ->
INVITE (offer) ->
<- 183 (courtesy SDP)
...
<- 200 (INVITE - answer)
ACK ->
<- UDPATE (offer>
200 (UPDATE - answer) ->
I hope this helps.
thanks,
-rohan
On May 30, 2008, at 1:16 AM, John Gilman (johng) wrote:
Hi, this is somewhat related to Nicholas L's PRACK issue.
I'm trying to handle early media messages, and can't figure out
quite how to respond to an UPDATE from
MyInviteSessionHandler::onEarlyMedia().
The Call Flow is:
A B
Invite ---------->
<--------------- 100 Trying
<---------------- 183 Session Progress
<---------------- 101 UPDATE
I want A to respond with a 200 OK.
I tried calling ClientInviteSession::provideAnswer(), but since the
state is UAC_Early nothing happens.
Can anyone point me in the right direction?
Thanks,
-John G.
_______________________________________________
resiprocate-users mailing list
resiprocate-users@xxxxxxxxxxxxxxx
List Archive: http://list.resiprocate.org/archive/resiprocate-users/