Re: [rtcweb] Forking - Re: SDP Offer/Answer draft-jennings-rtcweb-signaling

Christer Holmberg <> Wed, 19 October 2011 14:04 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 137D821F8C0A for <>; Wed, 19 Oct 2011 07:04:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.552
X-Spam-Status: No, score=-6.552 tagged_above=-999 required=5 tests=[AWL=0.047, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 9T+Ycx-ePtjH for <>; Wed, 19 Oct 2011 07:04:58 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 0CE4421F8BDB for <>; Wed, 19 Oct 2011 07:04:57 -0700 (PDT)
X-AuditID: c1b4fb39-b7bfdae000005125-9e-4e9ed908750b
Received: from (Unknown_Domain []) by (Symantec Mail Security) with SMTP id 5B.F0.20773.809DE9E4; Wed, 19 Oct 2011 16:04:57 +0200 (CEST)
Received: from ([]) by ([]) with mapi; Wed, 19 Oct 2011 16:04:56 +0200
From: Christer Holmberg <>
To: Cullen Jennings <>, Roman Shpount <>
Date: Wed, 19 Oct 2011 16:04:55 +0200
Thread-Topic: [rtcweb] Forking - Re: SDP Offer/Answer draft-jennings-rtcweb-signaling
Thread-Index: AcyNxabFlE2H069MTM2qpnNjuIBAmwAnLUPQ
Message-ID: <>
References: <> <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Brightmail-Tracker: AAAAAA==
Cc: Jonathan Rosenberg <>, "" <>
Subject: Re: [rtcweb] Forking - Re: SDP Offer/Answer draft-jennings-rtcweb-signaling
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 19 Oct 2011 14:04:59 -0000


>> Did we decide to explicitly not support forking which 
>> generates multiple final answers? If this is not the case, 
>> how is this supposed to be implemented using your model?
> I think that it is critical that we support what is needed to 
> make a call that goes to 1-800-go-fedex work. So consider the 
> following use case: A browser calls through a signaling GW to 
> a sip that forks the call to an SIP to PSTN gateway and also 
> to a voicemail server. The PSTN gateway generates an 180 with 
> ringback tone but the SIP call is eventually answered by the 
> voicemail server that sends a 200. 
> So 3264 supports forking by an single offer may result in say 
> two answers. In the case above, an single offer resulted in 
> two different answers. Roap would support this type of 
> transaction by allowing two answers to be received. There are 
> two ways this can happen - one is with different 
> answererSessionId in the the answers. Another is the use of 
> the More-coming flag. We think with these, one can support 
> the range of what 3264 allows for offer/ answer. 

- Assume my browser is communicating with a SIP gatway, and I use some non-SIP signalling protocol to transport ROAP messages between the browser and the gateway.

- The gateway maps ROAP into SIP, and a proxy forks the INVITE to multiple SIP UAs.

- When the gateway receives reliable 18x provisional responses, on different early SIP dialogs, it forwards them as final ANSWERs towards the browser.

- When the gateway receives the 200 OK, all other early dialogs are terminated. Now, from a pure ROAP perspective, the only way to inform the browser about that would be for the gateway to send new OFFERs for every terminated early SIP dialog, and e.g. indicate port=0.


Now, instead of mapping the 18x provisional responses to final ANSWERs, the gateway could of course map them to non-final ANSWERs, and then later send final ANSWERs with an error code. But, the problem then is that the browser is not able to (or, at least that's my assumption - see separate e-mail) send a new OFFER until it has received a final ANSWER.