[reSIProcate] PRACK with early media
Scott Godin
sgodin at sipspectrum.com
Wed Aug 31 13:57:46 CDT 2016
It is not legal to repeat the SDP answer in a subsequent reliable 18x.
Technically this should be treated as a new offer. However that flow that
flow is highly discouraged. Subsequent offer/answer exchanges are
recommended to be done via UPDATE messaging instead.
Here are comments from the MasterProfile header file about the UAC PRACK
support:
// UAC PRACK support. UPDATE must be enabled(currently defaults to
on, do
// not disable w/out disabling UAC PRACK support).
//
// Flows where an an answer is received in a 180rel and subsequent O/A
// exchanges using UPDATE occur in the early dialog
// have been tested.
//
// A subsequent O/A exchange using 180rel/PRACK is also supported.
This is
// a really bad idea, as an answer must be generated; the offer
cannot be
// rejected. UPDATE should always be used for O/A exchanges once the
// dialog is established.
//
// Invite/18x(offer)/PRACK(ans) also works
//
// Invite(offer)/18x(ans)/PRACK(offer)/200P(ans) issupported, but not
recommended.
// The UAC MUST call provideOffer from the onAnswer callback in order
to generate
// the offer in the PRACK.
//
// Explicit limitations are:
// - Overlapping reliable provisional responses that contain a body
are not
// handled.
//
// Note: Using SupportedEssential is exactly the same as using
Supported,
// SupportedEssential only effects UAS Prack implementation
All that being said - the text doesn't seem to indicate explicitly that
your scenario isn't support (assuming the 2nd reliable 183 SDP is treated
as a new offer) - it is just discouraged. If this is the case I suspect
you can pin point the issue in the code, by following the log file output
and the code logic in ClientInviteSession to track down exactly what is
happening (hint: look at dispatchEarlyWithAnswer). If indeed the 2nd 183
is not intended to be a new offer, then I would say your scenario is
invalid.
Scott
On Wed, Aug 31, 2016 at 6:15 AM, Jan Granqvist via resiprocate-devel <
resiprocate-devel at resiprocate.org> wrote:
> _______________________________________________
> resiprocate-devel mailing list
> resiprocate-devel at resiprocate.org
> https://list.resiprocate.org/mailman/listinfo/resiprocate-devel
>
> ---------- Forwarded message ----------
> From: Jan Granqvist <jan_granqvist at yahoo.com>
> To: "resiprocate-devel at resiprocate.org" <resiprocate-devel at resiprocate.org
> >
> Cc:
> Date: Wed, 31 Aug 2016 09:43:05 +0000 (UTC)
> Subject: PRACK with early media
> Hi all,
>
> I've run into some problem(?) with PRACK towards a SIP trunk which support
> early media.
> The SIP trunk(UAS) responds to an INVITE with a 183 Session Progress to
> which the SIP trunk requires PRACK.
> The DUM acknowledge this and sends a PRACK to which the SIP trunk responds
> with a 200 OK.
>
> At this point the SIP trunk sends a new 183 Session Progress including the
> previous SDP as well as stepping up the RSeq.
> This signal the DUM doesn't PRACK, and so the SIP trunk keeps
> re-transmitting the signal.
>
>
> UAC UAS(Sip trunk)
> |------------------INVITE(offer)-------------->|
> |<------------------100 Trying-----------------|
> |<----183 Session Progress(answer)---|
> |--------------------PRACK------------------->|
> |<------------------200 OK---------------------|
> |<----183 Session Progress(answer)---|
> |<----183 Session Progress(answer)---|
> |<-----------504 Server Time-out-----------|
> |-----------------------ACK-------------------->|
>
> Now is this a valid case? What am I missing?
>
> I'm using version 1.10.0.
>
> BR
> /Janne
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20160831/cd36f687/attachment.htm>
More information about the resiprocate-devel
mailing list