[OpenSIPS-Users] B2B in-dialog BYE

Bogdan-Andrei Iancu bogdan at opensips.org
Tue Jul 10 11:58:19 CEST 2012


Hi Arnold,

Just to summarize the discussion and conclusion we had via IRC on #opensips.

What you say is correct, on the other hand, B2B "abuses" the late media 
negotiation and because of that, there are some delays in ACK propagation

The ACK is not sent by b2b (to the 200 OK for re-INVITE), as the ACK is 
triggered only by the 200 OK on the callee side -so the entire ringing 
on the callee side will fit between the 200 OK and ACK on caller side
That's the way the B2B works in order to allow direct SDP exchange- on 
the caller side it uses late SDP negotiation (200 OK + ACK) and on 
callee normal negotiation (INVITE + 200 OK)
And you are right, that caller cannot hangup while callee in ringing, as 
caller have not received the ACK yet.

As a work around to this issue,use provisional media while calling to 
callee - so, instead of having the caller "waiting / stuck" for the 
callee to wait, you can "park" caller call into a media server, for a 
provisional media - you just need to to have the <provisional_media> 
node in your bridging:
Ex:

<bridge>
<client> <id>server1</id> </client>
<client> <id>client2</id> <destination> <value 
type="initial">server1</value> </destination> </client>
<provisional_media>sip:moh at asterisk</provisional_media>
</bridge>

Regards,

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com


On 07/04/2012 11:41 AM, Arnold Vriezekolk NETZOZEKER B.V. wrote:
> Hello,
>
> I'm using B2B to play a soundfile before connecting to an endpoint. My
> opensips is connected to a SIP provider for incoming calls.
>
> Whenever a call comes in from my provider the b2b will send an invite to
> asterisk to play a soundfile. Whenever the soundfile is done playing 
> the b2b
> will invite the endpoint.
>
> At packet 18 in the pcap dump[1] i hung up the call from the provider 
> side, but
> the provider keeps sending the "200 OK" to establish a dialog. Without 
> the ACK
> being sent from the opensips (or endpoint) side there will never be a 
> dialog. According to
> the RFC3261[2] a BYE must not be send while there hasn't been an ACK to
> establish the dialog.
>
> What happens now is that the caller hangs up the call and the callee 
> is still
> ringing. The callee will ring for 30 seconds or so before the provider 
> times
> out the call and sends a BYE. If the callee would pick up his ringing 
> phone,
> nobody would be on the other end because the caller had hung up the 
> phone. So
> my question is: how do i solve this problem. Should my provider send a 
> CANCEL
> when the caller hangs up the call? Should OpenSIPS send the ACK to 
> establish
> the dialog?
>
> Thanks in advance,
> Best Regards,
>
> Arnold Vriezekolk
>
> [1] Pcap Dump: http://vriezekolk.org/~tuxx/03-07-b2b.pcap
> [2] RFC3261: However, the callee's UA MUST NOT send a BYE on a 
> confirmed dialog until it has received an ACK for its 2xx response or 
> until the server transaction times out.
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20120710/0aff205b/attachment.htm>


More information about the Users mailing list