Well, the first branch is disposed of with a 5xx reply. But the UAC cancels 
nothing, in spite of getting two different early responses from two different 
dialogs.

Granted, I haven't tried waiting around for 3 minutes or whatever the maximum 
prescribed early/alerting state is. 

On July 16, 2018 6:24:35 PM EDT, Paul Kyzivat <pkyzi...@alum.mit.edu> wrote:
>On 7/16/18 2:00 PM, Alex Balashov wrote:
>> It should be noted that the UA with which I am testing (Freeswitch)
>does
>> not CANCEL or otherwise hang up the first dialog.
>
>In this case, since the proxy did the forking, it SHOULD (MUST?) send a
>
>CANCEL. So it will probably be ok.
>
>       Thanks,
>       Paul
>
>> On Mon, Jul 16, 2018 at 01:56:34PM -0400, Alex Balashov wrote:
>> 
>>> Oh, yes — they're different dialogs, for sure. I just wasn't sure if
>>> that would nevertheless pose a problem for some low-budget UAs.
>>>
>>> On Mon, Jul 16, 2018 at 01:47:32PM -0400, Paul Kyzivat wrote:
>>>
>>>> On 7/16/18 1:17 PM, Alex Balashov wrote:
>>>>> Hi,
>>>>>
>>>>> I have a scenario where a call is forked through a proxy to an
>early
>>>>> media announcement server and then subsequently to a SIP provider
>for
>>>>> actual termination.
>>>>>
>>>>> Due to the way the RTP relay works on the server side, this
>results in
>>>>> two different SDP offers from the two respective outgoing branches
>being
>>>>> sent back to the caller:
>>>>>
>>>>> 1. 183+SDP on branch #1.
>>>>>
>>>>> 2. 183+SDP' on branch #2.
>>>>>      200 OK+SDP' on branch #2.
>>>>
>>>> These are both sent back to the UAC?
>>>>
>>>> If so, these should arrive with different to-tags, and so will
>establish
>>>> distinct early dialogs. Those can coexist. Then when the 200
>arrives,
>>>> (regardless of which dialog it comes on), the UAC should send a
>CANCEL on
>>>> the other dialog (to the Contact URI for that dialog. Or it can
>send a BYE.
>>>>
>>>> There is a race condition where you get a 200 on *both* early
>dialogs. In
>>>> that case you have two separate calls to deal with. Then you can
>send a BYE
>>>> on one of them, or manage them both separately, or treat them as a
>>>> conference, or whatever you want.
>>>>
>>>> OTOH, if perchance the two 183 responses have the *same* to-tag,
>then you
>>>> have an error situation.
>>>>
>>>>    Thanks,
>>>>    Paul
>>>>
>>>>> I am not sure offhand whether this is a protocol semantics
>violation. On
>>>>> the one hand, RFC 3261 § 13.2.1 ("Creating the Initial INVITE")
>says:
>>>>>
>>>>>      If the initial offer is in an INVITE, the answer MUST be in a
>>>>>      reliable non-failure message from UAS back to UAC which is
>>>>>      correlated to that INVITE.  For this specification, that is
>>>>>      only the final 2xx response to that INVITE.  That same exact
>>>>>      answer MAY also be placed in any provisional responses sent
>>>>>      prior to the answer.  The UAC MUST treat the first session
>>>>>      description it receives as the answer, and MUST ignore any
>>>>>      session descriptions in subsequent responses to the initial
>>>>>      INVITE.
>>>>>
>>>>> So, I always understood that the first answer is the final answer,
>>>>> absent a session-updating request cycle. On the other hand, RFC
>3960
>>>>> ("Early Media and Ringing Tone Generation in the Session
>Initiation
>>>>> Protocol (SIP)") Section 4 says:
>>>>>
>>>>>      The application server model consists of having the UAS
>behave as an
>>>>>      application server to establish early media sessions with the
>UAC.
>>>>>      The UAC indicates support for the early-session disposition
>type
>>>>>      (defined in [2]) using the early-session option tag.  This
>way, UASs
>>>>>      know that they can keep offer/answer exchanges for early
>media
>>>>>      (early-session disposition type) separate from regular media
>(session
>>>>>      disposition type).
>>>>>
>>>>> I take this, along with RFC 3959 Section 3, to imply an amendment
>to
>>>>> 3261 § 13.2.1, but I'm not sure. Regardless, I'm not convinced all
>UAs
>>>>> will handle this situation.
>>>>>
>>>>> Any insight would be appreciated!
>>>>>
>>>>
>>>> _______________________________________________
>>>> Sip-implementors mailing list
>>>> Sip-implementors@lists.cs.columbia.edu
>>>> https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors
>>>
>>> -- 
>>> Alex Balashov | Principal | Evariste Systems LLC
>>>
>>> Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free)
>>> Web: http://www.evaristesys.com/, http://www.csrpswitch.com/
>>> _______________________________________________
>>> Sip-implementors mailing list
>>> Sip-implementors@lists.cs.columbia.edu
>>> https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors
>> 
>
>_______________________________________________
>Sip-implementors mailing list
>Sip-implementors@lists.cs.columbia.edu
>https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors


-- Alex

--
Sent via mobile, please forgive typos and brevity. 
_______________________________________________
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors

Reply via email to