[Devel] ERROR:forward_request: unable to compute branch

Bogdan-Andrei Iancu bogdan at voice-system.ro
Tue Mar 6 13:38:44 CET 2007


Andrew,

I already committed a patch that shoud maintain backward compatibility 
by using a default branch value of "0" if no other one is found.

please retest and see if works now.

regards,
bogdan


Andrew Newton wrote:
> Bogdan,
>
> Unfortunately, there are a lot of UAs in the field that do the wrong 
> thing here.  Going by the IETF principle of "be liberal in what you 
> accept, be conservative in what you send", allowing for UAs that are 
> not up to date when the effort to do so is not tremendous is a sign of 
> practical software.  If Gaurav can provide a reasonable patch to fix 
> this problem, will that be acceptable?
>
> -andy
>
> On Mar 5, 2007, at 4:57 PM, Bogdan-Andrei Iancu wrote:
>
>> Gaurav,
>>
>> RFC 3261 obsoletes (almost 5 years ago) RFC 2543 and my personal 
>> opinion is that 3261 should be followed. Of course, at some point I 
>> agree that old compatibility should be kept, but not encourage - all 
>> devices  (phones, proxies, gateways, etc) should be aligned (by now) 
>> to 3261 mostly because of performance, flexibility and strength reasons.
>>
>> regarding the email thread, the info is posted in the BUG 1510109
>>    
>> https://sourceforge.net/tracker/index.php?func=detail&aid=1510109&group_id=139143&atid=743020 
>>
>> Shortly, it refers to
>>    
>> https://lists.cs.columbia.edu/pipermail/sip-implementors/2006-January/011864.html 
>>
>>
>> regards,
>> bogdan
>>
>> Gaurav Kulshreshtha wrote:
>>> Bogdan,
>>>   I looked at RFC 2543 and RFC 3261. While 3261 mandates branch
>>> parameter for both UA and proxy, RFC 2543 only mandates it for proxies.
>>> The UA I am using seems to be RFC 2543 compliant.
>>> Also, we have been using the same UA for ser-0.8.14 and it didn't 
>>> really
>>> have an issue with branch parameter. We ran the same REGISTER test 
>>> against
>>> OpenSER 1.1.x and that didn't seem to have a problem either. On close
>>> inspection, things have been shuffled around a bit in forward_request()
>>> breaking the backward compatibility with RFC 2543 compliant UA.
>>>
>>> Also, your comment in forward_request( ) states - "According to the
>>> latest discussions on the topic, you should reuse the latest stateful
>>> branch". Can you forward me to this email thread. I would want to see
>>> what this discussion says about backward compatibility.
>>>
>>> Thanks
>>> Gaurav
>>> Bogdan-Andrei Iancu wrote:
>>>
>>>> Hi,
>>>>
>>>> the request is bogus as the VIA hdr has no branch param which is
>>>> mandatory. In stateless routing, the branch param for the next VIA is
>>>> build based on the previous VIA, so this trigger the error you got.
>>>>
>>>> regards,
>>>> bogdan
>>>>
>>>> Gaurav Kulshreshtha wrote:
>>>>
>>>>> Here is the packet coming into OpenSER that causes the problem:
>>>>>
>>>>> REGISTER sip:abc.com SIP/2.0
>>>>> Call-ID: 526bba62d-8d1df06-6d474-ac101d48 at abc.com
>>>>> From: Lab1<sip:7034850210 at abc.com>;tag=41784-1602
>>>>> To: Lab1<sip:7034850210 at abc.com>
>>>>> CSeq: 13707 REGISTER
>>>>> Via: SIP/2.0/UDP 172.16.9.132:5060
>>>>> Contact: sip:7034850210 at 172.16.9.132:5060
>>>>> Max-Forwards: 70
>>>>> Expires: 53
>>>>> Supported: timer,replaces
>>>>> Allow: REFER, UPDATE, INFO, OPTIONS, ACK, INVITE, BYE, CANCEL, NOTIFY
>>>>> Content-Length: 0
>>>>>
>>>>> Thanks
>>>>> Gaurav
>>>>>
>>>>>
>>>>> Bogdan-Andrei Iancu wrote:
>>>>>
>>>>>> I see....could you post the received request? the error appears only
>>>>>> if the request has no VIA at all or there was a parsing error....
>>>>>>
>>>>>> regards,
>>>>>> bogdan
>>>>>>
>>>>>> Gaurav Kulshreshtha wrote:
>>>>>>
>>>>>>> We are making use of forward and the proxy mode is stateless.
>>>>>>> Gaurav
>>>>>>> Bogdan-Andrei Iancu wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> are you using t_relay or forward()   / stateful or stateless ?
>>>>>>>>
>>>>>>>> regards,
>>>>>>>> bogdan
>>>>>>>>
>>>>>>>> Gaurav Kulshreshtha wrote:
>>>>>>>>
>>>>>>>>> All,
>>>>>>>>>  While trying to use openser version 1.2.0 on centos, we have 
>>>>>>>>> found
>>>>>>>>> that
>>>>>>>>> /forward_request() /function prints out error
>>>>>>>>> *"ERROR:forward_request: unable to compute branch"*
>>>>>>>>> We noticed this in the case of REGISTER message egressing out of
>>>>>>>>> OpenSER
>>>>>>>>> (using it as a proxy). Unless we are
>>>>>>>>> missing something in the big picture, we suspect that the code
>>>>>>>>> inside
>>>>>>>>> /if (msg->add_to_branch_len == 0)/  should try to compute the 
>>>>>>>>> branch
>>>>>>>>> parameter value (branch_builder()) if one is
>>>>>>>>> not found during invokation of get_sl_branch( ).
>>>>>>>>> In the whole code base there is only one invokation of
>>>>>>>>> branch_builder
>>>>>>>>> inside tm modules and we suspect that for case of
>>>>>>>>> message ingress'ing.
>>>>>>>>>
>>>>>>>>> If this is a bug, is there already an open ticket/issue for 
>>>>>>>>> this ?
>>>>>>>>>
>>>>>>>>> Thanks
>>>>>>>>> Gaurav Kulshrehstha
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Devel mailing list
>>>>>>>>> Devel at openser.org
>>>>>>>>> http://openser.org/cgi-bin/mailman/listinfo/devel
>>>>>>>>>
>>
>> _______________________________________________
>> Devel mailing list
>> Devel at openser.org
>> http://openser.org/cgi-bin/mailman/listinfo/devel
>
>




More information about the Devel mailing list