[Devel] ERROR:forward_request: unable to compute branch

Gaurav Kulshreshtha gaurav at sunrocket.com
Tue Mar 6 15:33:56 CET 2007


Bogdan,
    This is what we have done as a patch.
Thanks
Gaurav

Bogdan-Andrei Iancu wrote:
> 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