[OpenSIPS-Users] B2BUA REFER scenario

Bogdan-Andrei Iancu bogdan at opensips.org
Thu Mar 6 19:13:28 CET 2014


Hello Tony,

You may consider this a side effect of how the OpenSIPS B2BUA works. As 
we want to be transparent from media point of view, OpenSIPS does not 
get involved into SDP negotiation -> it is transparent, passing the SDPs 
between the end points. This is mainly based on the late-SDP negotiation 
- and combining this with normal SDP negation may lead into ACK delays.

In this particular case the ACK for Call1 is delaied because the B2BU is 
waiting for the 200 OK on Call3 - because the SDP from the 200 OK in 
Call3 must be pushed in the ACK for Call1 (to allow direct SDP 
negotiation between the end points involved in call1 and call3). So the 
ACK for call1 will be delayed until Call3 gets answered - there is no 
work around this at this point. In most of the cases the UA are a bit 
flexible in waiting for ACK, like at least performing 200OK 
retransmission (as per RFC3261). I would say your PSTN device is a bit 
picky ;) when comes to firing the BYE in 6 sec (no retransmission, short 
period of time).

Regards,

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

On 05.03.2014 20:06, Tony Ward wrote:
> Hello,
> I currently have this configuration:
> PSTN <====> SIP/ALG Router <====> OpenSips 1.10 <====> IVR
> OpenSips has a single IP on the private network.
>
> I have configured opensips using top hiding in the dialog module and it
> works fine for calls to ptsn  and calls from pstn.
> I have also configured opensips using B2BUA top hiding and it also works
> fine for calls to ptsn  and calls from pstn.
>
> Now I want to test B2BUA REFER scenario (where calls from PSTN are
> answered by IVR, then IVR does a REFER to another PSTN number).
>
> When the IVR sends REFER the call is dropped after .6 seconds.  The flow
> that I've seen in the trace is below:
> PSTN			     opensips			IVR	
> 	invite+SDP (Call1) ---->  |	
> 	<----- Trying (Call1)	|
> 			    	|	invite+SDP (Call2)----->
> 			    	|	<----- OK+SDP (Call2)
> 	<----- OK+SDP (Call1)   	|
> 	Ack (Call1) ---->    	|
> 			    	| 	ACK (Call2) 	----->
>
> 		<Ivr dialog take place here>
>
> 				|	<----- REFER (Call2)
> 	<----- Invite (Call1)	|
> 			    	|	Accepted (Call2) -----> 		
> 			    	|	BYE (Call2) 	----->
> 	Trying (Call1) ---->           |
> 	OK+SDP (Call1) ---->       |
> 	<----- Invite+SDP(Call3)|
> 			    	|	<----- OK (Call2)
> 	Trying (Call3) ----->  	|
> 	OK+SDP (Call1) ----->  	|
> 	OK+SDP (Call1) ----->  	|
>
> 		<0.6 seconds elapse here>
>
> 	Bye (Call1) ----->	|
> 	<----- OK (Call1)   	|
> 	<----- Cancel (Call3)   	|
> 	OK (Call3) ----->	|
> 	Req Termd (Call3) ----->|
> 	<----- Ack (Call3)   	|
>
> It looks as though the PSTN times out waiting for an ACK after sending
> OK+SDP(Call1) a couple times and then waiting .6 seconds.
> The question is - what should the flow look like?  According to this
> post:  http://lists.opensips.org/pipermail/users/2012-April/021352.html,
>
> things appear to be working as expected up to the point where we receive
> Trying (Call3).  Should I be seeing the OK+SDP from call 3 next?
> I'd like to troubleshoot further but I'm not sure where to look.
>
> Thanks!
> Tony
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>




More information about the Users mailing list