[OpenSIPS-Users] Ways of manipulating the From header of CANCEL
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Fri Jun 26 10:06:50 CEST 2009
Hi Ricardo,
checking your scenario, I found a bug in the UAC module (in setting some
internal flags) - the fix in now available on SVN, so please update and
give it another try.
Thanks and regards,
Bogdan
Bogdan-Andrei Iancu wrote:
> Hi Ricardo,
>
> I see....if I send you a small patch that will print some more info, can
> you apply it on your system ?
>
> Regards,
> Bogdan
>
> Ricardo Martins wrote:
>
>> Hi Bogdan, I tried with both "manual" and "auto". At the time this log
>> was generated, I didn't set this parameter, assuming the "auto" as
>> default.
>>
>> Rgrds, Ricardo.
>>
>>
>>
>> Bogdan-Andrei Iancu escreveu:
>>
>>> Hi Ricardo,
>>>
>>> What from_restore_mode are you using ?
>>> http://www.opensips.org/html/docs/modules/1.5.x/uac.html#id227233
>>>
>>> Because indeed, the CANCEL is still using the old FROM:
>>>
>>> Jun 21 02:32:51 [3171] DBG:tm:build_local: using FROM=<From:
>>> "tronco2" <sip:tronco2 at pabx1>;tag=as13631b36>, TO=<To:
>>> <sip:556139659184 at pabx1:5090>>, CSEQ_N=<CSeq: 102>
>>> Jun 21 02:32:51 [3171] DBG:tm:cancel_branch: sending cancel...
>>>
>>> Regards,
>>> Bogdan
>>>
>>> Ricardo Martins wrote:
>>>
>>>> Hi Bogdan! There is attached a log with debug 6 of the call. There
>>>> you can see the opensips using the original from to build the cancel
>>>> message before transmiting to the provider. And lots of
>>>> retransmissions without a response from the provider.
>>>>
>>>> The environment is quite simple: The opensips is running on a
>>>> machine with two network interfaces. It receives the INVITE by the
>>>> private network interface (192.168.200.246) and send it to a ppp0
>>>> interface with a fixed and public ip.
>>>>
>>>> For privacy reasons, I made the replacement of the public ip that
>>>> appears on log and trace, using xxx.xxx.xxx.xxx instead. The
>>>> original user at domain of the call is tronco2 at pabx1 and, after
>>>> replacement, 617056557 at nheen.net.br.
>>>>
>>>> Thanks for your help. I think that there is something tricky on my
>>>> environment that is making this cancel to skip working "automagicaly".
>>>>
>>>> Regards! Ricardo.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Bogdan-Andrei Iancu escreveu:
>>>>
>>>>> Hi Ricardo,
>>>>>
>>>>>
>>>>> Ricardo Martins wrote:
>>>>>
>>>>>> Guys, I've been reading a lot on the list and testing on our
>>>>>> servers (opensips 1.5) for some time but I still have a big issue!
>>>>>>
>>>>>> 1) If I use uac_replace_from on REQUEST route, the from header got
>>>>>> miswritten (truncates) when using it twice. Bad for me, when
>>>>>> intended to use it to provide backup routes on a call failure. But...
>>>>>>
>>>>>>
>>>>> yes, because the function can be called only once per branch - the
>>>>> correct approach is the 2)
>>>>>
>>>>>> 2) When I use uac_replace_from on BRANCH route, the replacement
>>>>>> works realy fine. In order to use a backup provider, I just arm
>>>>>> the branch_route and, on branch route, execute uac_replace_from
>>>>>> with the proper username/domain for that specific provider. The
>>>>>> result is ok. The from header is properly rewriten, many times I
>>>>>> need at the same transaction. But...
>>>>>>
>>>>>>
>>>>> so, no problems here, right ?
>>>>>
>>>>>> 3) When opensips receives a CANCEL, it do not rewrite the from
>>>>>> header, prior to send it to the provider. Neither using the
>>>>>> uac_replace_from function, neither using subst function (from
>>>>>> textops). I read that CANCEL is locally generated, and that's why
>>>>>> those funcions do not affect it. I read too that the
>>>>>> uac_replace_from used on INVITE was expected to work on CANCELs
>>>>>> automaticaly. But apears to not work when using uac_replace_from
>>>>>> on BRANCH routes. And I tryied it with from_restore_mode parameter
>>>>>> on 'manual' and on 'auto' mode.
>>>>>>
>>>>>>
>>>>> indeed, the CANCEL is internally generated, so whatever changes you
>>>>> do for the received CANCEL in script are useless. But TM does
>>>>> automagically update the FROM hdr in CANCELS (if the INVITE FROM
>>>>> was changes), in any mode... If this does not happen, please post
>>>>> traces and debug=6 logs for the call.
>>>>>
>>>>>
>>>>>> 4) Thats why I got a big of an issue! I MUST use the
>>>>>> uac_replace_from on BRANCH routes to work with backup providers.
>>>>>> And I MUST replace the from hdr of CANCEL, as my providers are
>>>>>> rejecting CANCELs with diferent from headers!
>>>>>>
>>>>>>
>>>>> you do not have to deal with the CANCELs - they automatically
>>>>> done.. see 3)
>>>>>
>>>>>> Do anybody could put this kind of environment to work? Have any
>>>>>> clue about it?
>>>>>>
>>>>>>
>>>>> see 3), about traces and logs..
>>>>>
>>>>> Regards,
>>>>> Bogdan
>>>>>
>>>>>> Regards!
>>>>>>
>>>>>> Ricardo.
>>>>>>
>>>>>>
More information about the Users
mailing list