[OpenSIPS-Users] Problem Opensips send two BYE

mickael at winlux.fr mickael at winlux.fr
Fri Jul 29 16:30:55 CEST 2011


  

Hi Razvan,

It's my opensips generate second BYE: 

First BYE not
generate, just transmit to provider: 

_U 1.1.1.1:5060 ->
3.3.3.3:5060_
_BYE sip:3.3.3.3:5060;transport=udp SIP/2.0._
_Via:
SIP/2.0/UDP 1.1.1.1;branch=z9hG4bK6f1e.1ae76cf3.0._
_Via: SIP/2.0/UDP
1.1.1.1:5060;received=1.1.1.1;rport=5060;branch=z9hG4bKc70647f52389844ecd8d1103e651514c._
_ROUTE:
._
_From: "Direction" ;tag=9592a99927b4cd21._
_To:
;tag=sip+1+347c0010+ea2ac41._
_Call-ID:
c2fb7803cb9af9e4d85b965d731259a0 at 192.168.254.200._
_CSeq: 1613414671
BYE._
_Contact: "Direction" ._
_Max-Forwards: 69._
_Allow: INVITE, ACK,
CANCEL, OPTIONS, BYE, REFER, NOTIFY, INFO, UPDATE._
_Supported:
timer._
_Content-Length: 0._
_._ 

Second BYE generate by my proxy:


_#_
_U 1.1.1.1:5060 -> 3.3.3.3:5060_
_BYE
sip:3.3.3.3:5060;transport=udp SIP/2.0._
_Via: SIP/2.0/UDP
1.1.1.1;branch=z9hG4bK6f1e.1ae76cf3.1._
_Via: SIP/2.0/UDP
1.1.1.1:5060;received=1.1.1.1;rport=5060;branch=z9hG4bKc70647f52389844ecd8d1103e651514c._
_From:
"Direction" ;tag=9592a99927b4cd21._
_To:
;tag=sip+1+347c0010+ea2ac41._
_Call-ID:
c2fb7803cb9af9e4d85b965d731259a0 at 192.168.254.200._
_CSeq: 1613414671
BYE._
_Contact: "Direction" ._
_Max-Forwards: 69._
_Allow: INVITE, ACK,
CANCEL, OPTIONS, BYE, REFER, NOTIFY, INFO, UPDATE._
_Supported:
timer._
_Content-Length: 0._ 

After this message, my provider (3.3.3.3)
send error 500 (SIP/2.0 500 Server Internal Error). 

The senario is
repeated at each call, even with different UAC.
 If the BYE is generated
by my provider (3.3.3.3) there is no error. 

Ex: 

My customer BYE -->
Proxy --> Provider = Not OK error 500 

Provider BYE --> Proxy --> My
customer = OK 

regards. 

On Fri, 29 Jul 2011 16:57:25 +0300, Razvan
Crainea wrote: 

> Hi Mickael,
> 
> Try to start a ngrep on the proxy.
You will see exactly who sends the second BYE.
> Does this scenario
happen for every call?
> 
> Regards,
> 
> Razvan Crainea
> OpenSIPS
Developer
> 
> On 29.07.2011 16:33, mickael at winlux.fr [12] wrote: 
> 
>>
Hi Razvan,
>> 
>> I crated:
>> #The local route is executed
automatically when a new SIP request is generated by TM, internally (no
UAC side)
>> local_route {
>> xlog("L_INFO","Local Route Method $rm - fu
: $fu , ru : $ru , si : $si n");
>> if (is_method("BYE") ) {
>>
xlog("L_INFO","internally generated BYE");
>> }
>> }
>> 
>> But I see no
BYE sent by my proxy!
>> Function is working correctly because I see the
local OPTIONS drouting generated.
>> And yet, with wireskark, I see that
the second BYE, comes from my OpenSIPS .
>> I don't understand ...
>>

>> On Fri, 29 Jul 2011 15:38:47 +0300, Razvan Crainea wrote:
>>> Hi
Mickael,
>>> 
>>> The function was also added in OpenSIPS 1.6.4 in svn
revision 8195.
>>> If you script is dialog aware, then using this
function will work.
>>> You can catch the locally generated BYE in a
local_route. There you
>>> can use this function to test if the BYE has
already been relayed.
>>> 
>>> Regards,
>>> 
>>> Razvan Crainea
>>>
OpenSIPS Developer
>>> 
>>> 
>>> On 29.07.2011 15:20, mickael at winlux.fr
[1] wrote:
>>>> Thanks Razvan,
>>>> my version is 1.6.4-2-tls (svn
revision: 2:8151)
>>>> but this function will work in ? knowing that my
OpenSIPS generate this second BYE.
>>>> 
>>>> Ex:
>>>> - UAC --> BYE -->
Opensips --> BYE --> provider
>>>> after 0,01s
>>>> - Opensips --> BYE
--> provider
>>>> after
>>>> - provider --> 500 error -> opensips
>>>>

>>>> Regards,
>>>> 
>>>> On Fri, 29 Jul 2011 15:11:29 +0300, Razvan
Crainea wrote:
>>>>> Hi Mickael,
>>>>> 
>>>>> What version of OpenSIPS
are you using? You can find a useful
>>>>> function on trunk:
test_and_set_dlg_flag [1]
>>>>> This function is executed atomically, so
you can set a flag for the
>>>>> first BYE. When the second BYE comes,
if the flag is set you can
>>>>> ignore it.
>>>>> 
>>>>> Regards,
>>>>>

>>>>> [1]
>>>>>
http://www.opensips.org/html/docs/modules/devel/dialog.html#id294480
[2]
>>>>> [3]
>>>>> 
>>>>> Razvan Crainea
>>>>> OpenSIPS Developer
>>>>>

>>>>> On 29.07.2011 14:54, mickael at winlux.fr [3] [4] wrote:
>>>>>

>>>>>> I'm sorry if you receive this message twice, I had a problem
sending
>>>>>> mail to users mailing list
>>>>>> 
>>>>>> So ....
>>>>>>

>>>>>> I list,
>>>>>> 
>>>>>> I have a little problem with my
proxy
>>>>>> (OpenSIPS/1.6.4-2-tls/i386/freebsd) and my voip
provider
>>>>>> (CISCO-SBC/2.x and CS2000_NGSS/9.0).
>>>>>> 
>>>>>> In
fact, my opensips send 2 BYE (Screenshot below)
>>>>>> 
>>>>>> 2.2.2.2,
1.1.1.1, 3.3.3.3 are public IP
>>>>>> 
>>>>>> - My UAC (2.2.2.2) send
BYE to my proxy Opensips (1.1.1.1), Opensips
>>>>>> resend this BYE to
my provider (3.3.3.3).
>>>>>> - But after 0.01s my proxy send second BYE
to my provider.
>>>>>> - Therefore my provider answer with 500
error.
>>>>>> - I think my proxy hangup dial and transfer this error to
my UAC.
>>>>>> - But my provider send a 200OK after this error.
>>>>>>

>>>>>> Why my proxy send 2 BYE ? Timer is to short ? how to change
this
>>>>>> timer? Is T1 default value 500ms ?
>>>>>> 
>>>>>> -- BYE
configuration (simple configuration):
>>>>>> 
>>>>>> _if
(is_method("BYE"))_
>>>>>> _ {_
>>>>>> _ t_on_reply("4");_
>>>>>>
_
>>>>>> 
>>>>> 
>>>>>
xlog("L_INFO","################################################################################
>>>>>

>>>>>> n");_
>>>>>> _ xlog("L_INFO","END OF CALL : call-id $ci
n");_
>>>>>> _ if($avp(s:debugcall)=~"yes"){ xlog("L_INFO","In HAS_TOTAG
- Method
>>>>>> BYE - fu : $fu , ru : $ru , si : $si n"); }_
>>>>>>
_
>>>>>> 
>>>>> 
>>>>>
xlog("L_INFO","################################################################################
>>>>>

>>>>>> n");_____
>>>>>> 
>>>>>> _ setflag(1); # do accounting
..._
>>>>>> _ setflag(2); #missed call ..._
>>>>>> _ setflag(3); # ...
even if the transaction fails_
>>>>>> _ setflag(4); #flag
dialog___
>>>>>> 
>>>>>> _
if(is_present_hf("Proxy-Authorization"))_
>>>>>> _ {_
>>>>>> _
remove_hf("Proxy-Authorization");_
>>>>>> _ }_
>>>>>> 
>>>>>> _
t_relay();_
>>>>>> _ }_
>>>>>> 
>>>>>> -- On reply configuration (for a
test I wanted to delete the 500
>>>>>> message, but impossible to
remove) :
>>>>>> 
>>>>>> _onreply_route[4]_
>>>>>> _{_
>>>>>> _
xlog("L_INFO","$ci In ONREPLY ROUTE 4 - fu : $fu , ru : $ru , si
:
>>>>>> $si , status : $rs n");_
>>>>>> _ if( t_check_status("500")
){_
>>>>>> _ xlog("L_INFO","DROP 500n");_
>>>>>> _ drop();___
>>>>>> _
}_
>>>>>> _}_
>>>>>> 
>>>>>> After several days of searching, Im
stranded. So Id like your
>>>>>> opinion about it.
>>>>>> 
>>>>>> PS:
complete sip capture.
>>>>>> 
>>>>>> thank in advance
>>>>>> 
>>>>>>
Mickael
>>>>>> 
>>>>>>
_______________________________________________
>>>>>> Users mailing
list
>>>>>> Users at lists.opensips.org [4] [1]
>>>>>>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users [5] [2]
>>>>>

>>>>> 
>>>>> Links:
>>>>> ------
>>>>> [1]
mailto:Users at lists.opensips.org [6]
>>>>> [2]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users [7]
>>>>> [3]
http://www.opensips.org/html/docs/modules/devel/dialog.html#id294480
[8]
>>>>> [4] mailto:mickael at winlux.fr [9]
>>>> 
>>> 
>>>
_______________________________________________
>>> Users mailing
list
>>> Users at lists.opensips.org [10]
>>>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users [11]



Links:
------
[1] mailto:mickael at winlux.fr
[2]
http://www.opensips.org/html/docs/modules/devel/dialog.html#id294480
[3]
mailto:mickael at winlux.fr
[4] mailto:Users at lists.opensips.org
[5]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[6]
mailto:Users at lists.opensips.org
[7]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[8]
http://www.opensips.org/html/docs/modules/devel/dialog.html#id294480
[9]
mailto:mickael at winlux.fr
[10] mailto:Users at lists.opensips.org
[11]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[12]
mailto:mickael at winlux.fr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20110729/02c08f77/attachment-0001.htm>


More information about the Users mailing list