[SR-Users] Add Reason Header to kamailio generated CANCEL

Denys Pozniak denys.pozniak at gmail.com
Wed Nov 18 21:57:12 CET 2020


Hello!
Thanks!
*msg_apply_changes()* works for me!

PS. Maybe it is worth adding this to the documentation, as it is not
entirely trivial?

ср, 18 нояб. 2020 г. в 12:46, David Villasmil <
david.villasmil.work at gmail.com>:

> Isn’t “message_apply_changes” applied automatically?
>
> But I think Alfonso is talking specifically about CANCELs generated by
> Kamailio on timeouts.
>
> On Wed, 18 Nov 2020 at 09:58, Daniel-Constantin Mierla <miconda at gmail.com>
> wrote:
>
>> Hello,
>> On 18.11.20 10:39, Denys Pozniak wrote:
>>
>> Hello!
>>
>> Call flow: FreeSWITCH --> SBC --> Edge Proxy
>>
>> In my case, the problem is related to the fact that the SBC deletes the
>> Reason header from FreeSWITCH and I am trying to recover it on the Kamailio
>> side (Edge Proxy).
>> It is especially important to recover the message: "Call completed
>> elsewhere" because this disables the missed call notification on the
>> destination phone in case of hunt-groups.
>> The option to forward the call through the stateless loop works well but
>> it complicates the logic unnecessarily.
>>
>> So would be great to have a tm function to setup custom Reason, like
>> below:
>> *...*
>>
>> *t_cancel_reason("Reason: SIP ;cause=200 ;text=\"Call completed
>> elsewhere\"\r\n"); t_relay();*
>> *....*
>>
>> iirc, the Reason header should be propagated if it is in incoming CANCEL,
>> so for this particular case, it should work if you do:
>>
>>
>> if(is_method("CANCEL")) {
>>
>> append_hf("Reason: ...\r\n");
>>
>> msg_apply_changes();
>>
>> t_realy();
>>
>> exit;
>>
>> }
>>
>> Cheers,
>> Daniel
>>
>>
>> ср, 18 нояб. 2020 г. в 11:16, Daniel-Constantin Mierla <miconda at gmail.com
>> >:
>>
>>> Same question here like in my other reply:
>>>
>>>   *
>>> https://lists.kamailio.org/pipermail/sr-users/2020-November/111123.html
>>>
>>> How do you expect to fill the value of the header?
>>>
>>> Cheers,
>>> Daniel
>>> On 17.11.20 19:20, David Villasmil wrote:
>>>
>>> And on internally generated CANCELs
>>>
>>> On Tue, 17 Nov 2020 at 14:20, Denys Pozniak <denys.pozniak at gmail.com>
>>> wrote:
>>>
>>>> Hello!
>>>>
>>>> We need to append our own Reason header for the "relayed" CANCEL
>>>> message, if it is not on the input.
>>>> Like below:
>>>>
>>>>
>>>> *if ( is_method("CANCEL") && !is_present_hf("Reason") ) { *
>>>> *  append_hf("Reason: ....);*
>>>> *  t_relay();*
>>>> *...*
>>>>
>>>>
>>>>
>>>>
>>>> вт, 17 нояб. 2020 г. в 13:00, Daniel-Constantin Mierla <
>>>> miconda at gmail.com>:
>>>>
>>>>> Hello,
>>>>>
>>>>> what is exactly the problem? The header is not added if you enable:
>>>>>
>>>>>   *
>>>>> http://kamailio.org/docs/modules/stable/modules/tm.html#local_cancel_reason
>>>>>
>>>>> Cheers,
>>>>> Daniel
>>>>> On 16.11.20 20:43, Denys Pozniak wrote:
>>>>>
>>>>> Hello guys,
>>>>>
>>>>> We have faced almost the same problem adding *Reason:
>>>>> SIP;cause=200;text="Call completed elsewhere"* to the t_relayed
>>>>> CANCEL request.
>>>>> Is there an elegant solution to add this header?
>>>>>
>>>>> PS. Switching to the stateless mode does not look pretty for us...
>>>>>
>>>>>
>>>>> сб, 1 февр. 2020 г. в 06:04, Alfonso Pinto <alfonso.pinto at gmail.com>:
>>>>>
>>>>>> Hi guys,
>>>>>>
>>>>>> Thanks for your answers.
>>>>>> I did try local_cancel_reason and it’s not doing anything for the
>>>>>> CANCELs generated by kamailio. Isn’t that parameter intended for the
>>>>>> CANCELs received and then relayed?
>>>>>>
>>>>>> As Alex and David mentioned, what I need is to add my own reason
>>>>>> header. There are some cases that requires to set the Reason header to
>>>>>> something specific. IE: terminal supported call waiting in IMS.
>>>>>>
>>>>>> Thanks for the piece of code, I will check what can be done here.
>>>>>>
>>>>>> Regards,
>>>>>> Alfonso
>>>>>>
>>>>>> El El vie, 31 ene 2020 a las 22:10, Henning Westerholt <
>>>>>> hw at skalatan.de> escribió:
>>>>>>
>>>>>>> Hi Alex,
>>>>>>>
>>>>>>> ok, I was reading that he wants to get just one reason header, not
>>>>>>> one dynamic generated.
>>>>>>>
>>>>>>> Just looked briefly, this seems to be the code:
>>>>>>>
>>>>>>> t_msgbuilder.c
>>>>>>> /* Build a local request based on a previous request; main
>>>>>>>  * customers of this function are local ACK and local CANCEL
>>>>>>>  */
>>>>>>> char *build_local(struct cell *Trans,unsigned int branch,
>>>>>>>         unsigned int *len, char *method, int method_len, str *to
>>>>>>>         , struct cancel_reason* reason
>>>>>>>         )
>>>>>>>
>>>>>>> Cheers,
>>>>>>>
>>>>>>> Henning
>>>>>>>
>>>>>>> --
>>>>>>> Henning Westerholt – https://skalatan.de/blog/
>>>>>>> Kamailio services – https://gilawa.com
>>>>>>>
>>>>>>> -----Original Message-----
>>>>>>> From: sr-users <sr-users-bounces at lists.kamailio.org> On Behalf Of
>>>>>>> Alex Balashov
>>>>>>> Sent: Friday, January 31, 2020 9:45 PM
>>>>>>> To: sr-users at lists.kamailio.org
>>>>>>> Subject: Re: [SR-Users] Add Reason Header to kamailio generated
>>>>>>> CANCEL
>>>>>>>
>>>>>>> I understood Alfonso's question to implicitly be: how can I add a
>>>>>>> dynamic and variable Reason header to outgoing CANCELs?
>>>>>>>
>>>>>>> Perhaps I was mistaken. But if I'm not, as far as I know there is no
>>>>>>> means of doing that. Right?
>>>>>>>
>>>>>>> On Fri, Jan 31, 2020 at 08:37:48PM +0000, Henning Westerholt wrote:
>>>>>>>
>>>>>>> > Hello,
>>>>>>> >
>>>>>>> > have you tried to use this parameter:
>>>>>>> >
>>>>>>> >
>>>>>>> http://kamailio.org/docs/modules/stable/modules/tm.html#local_cancel_r
>>>>>>> > eason
>>>>>>> >
>>>>>>> > Cheers,
>>>>>>> >
>>>>>>> > Henning
>>>>>>> >
>>>>>>> > --
>>>>>>> > Henning Westerholt – https://skalatan.de/blog/ Kamailio services
>>>>>>>>>>>>>> > https://gilawa.com<https://gilawa.com/>
>>>>>>> >
>>>>>>> > From: sr-users <sr-users-bounces at lists.kamailio.org> On Behalf Of
>>>>>>> > Alfonso Pinto
>>>>>>> > Sent: Wednesday, January 29, 2020 8:04 PM
>>>>>>> > To: Kamailio (SER) - Users Mailing List <
>>>>>>> sr-users at lists.kamailio.org>
>>>>>>> > Subject: [SR-Users] Add Reason Header to kamailio generated CANCEL
>>>>>>> >
>>>>>>> > Hi everyone,
>>>>>>> >
>>>>>>> > I've got a specific case: when the inv_fr times out, I need to add
>>>>>>> a Reason header to the CANCEL generated by kamailio. I've tried to see if I
>>>>>>> could do it in the onsend_route, but that one is not triggered for the
>>>>>>> generated CANCEL. I also checked event_route[tm:local-request], but that
>>>>>>> one isn't triggered either for the generated CANCEL.
>>>>>>> >
>>>>>>> > Is there any way to do it? Or maybe to have any pointer about
>>>>>>> where to look in the code so I may try to trigger
>>>>>>> event_route[tm:local-request] for these generated CANCELs?
>>>>>>> >
>>>>>>> > Regards,
>>>>>>> > Alfonso
>>>>>>>
>>>>>>> > _______________________________________________
>>>>>>> > Kamailio (SER) - Users Mailing List
>>>>>>> > sr-users at lists.kamailio.org
>>>>>>> > https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Alex Balashov | Principal | Evariste Systems LLC
>>>>>>>
>>>>>>> Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free)
>>>>>>> Web: http://www.evaristesys.com/, http://www.csrpswitch.com/
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Kamailio (SER) - Users Mailing List
>>>>>>> sr-users at lists.kamailio.org
>>>>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>>>>>
>>>>>> _______________________________________________
>>>>>> Kamailio (SER) - Users Mailing List
>>>>>> sr-users at lists.kamailio.org
>>>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> BR,
>>>>> Denys Pozniak
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Kamailio (SER) - Users Mailing Listsr-users at lists.kamailio.orghttps://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>>>
>>>>> --
>>>>> Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
>>>>> Funding: https://www.paypal.me/dcmierla
>>>>>
>>>>>
>>>>
>>>> --
>>>>
>>>> BR,
>>>> Denys Pozniak
>>>>
>>>>
>>>> _______________________________________________
>>>> Kamailio (SER) - Users Mailing List
>>>> sr-users at lists.kamailio.org
>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>>
>>> --
>>> Regards,
>>>
>>> David Villasmil
>>> email: david.villasmil.work at gmail.com
>>> phone: +34669448337
>>>
>>> --
>>> Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
>>> Funding: https://www.paypal.me/dcmierla
>>>
>>> _______________________________________________
>>> Kamailio (SER) - Users Mailing List
>>> sr-users at lists.kamailio.org
>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>
>>
>>
>> --
>>
>> BR,
>> Denys Pozniak
>>
>>
>> --
>> Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
>> Funding: https://www.paypal.me/dcmierla
>>
>> --
> Regards,
>
> David Villasmil
> email: david.villasmil.work at gmail.com
> phone: +34669448337
>


-- 

BR,
Denys Pozniak
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20201118/00d50bd1/attachment.htm>


More information about the sr-users mailing list