< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index  

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/