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

Daniel-Constantin Mierla miconda at gmail.com
Wed Nov 18 10:58:56 CET 2020


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 <mailto:miconda at gmail.com>>:
>
>     Same question here like in my other reply:
>
>       *
>     https://lists.kamailio.org/pipermail/sr-users/2020-November/111123.html
>     <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 <mailto: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 <mailto: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
>>             <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 <mailto: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 <mailto: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/
>>>                     <https://skalatan.de/blog/>
>>>                     Kamailio services – https://gilawa.com
>>>                     <https://gilawa.com>
>>>
>>>                     -----Original Message-----
>>>                     From: sr-users
>>>                     <sr-users-bounces at lists.kamailio.org
>>>                     <mailto: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
>>>                     <mailto: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
>>>                     <http://kamailio.org/docs/modules/stable/modules/tm.html#local_cancel_r>
>>>                     > eason
>>>                     >
>>>                     > Cheers,
>>>                     >
>>>                     > Henning
>>>                     >
>>>                     > --
>>>                     > Henning Westerholt – https://skalatan.de/blog/
>>>                     <https://skalatan.de/blog/> Kamailio services –
>>>                     > https://gilawa.com
>>>                     <https://gilawa.com><https://gilawa.com/
>>>                     <https://gilawa.com/>>
>>>                     >
>>>                     > From: sr-users
>>>                     <sr-users-bounces at lists.kamailio.org
>>>                     <mailto: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
>>>                     <mailto: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
>>>                     <mailto:sr-users at lists.kamailio.org>
>>>                     >
>>>                     https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>                     <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.evaristesys.com/>,
>>>                     http://www.csrpswitch.com/
>>>                     <http://www.csrpswitch.com/>
>>>
>>>                     _______________________________________________
>>>                     Kamailio (SER) - Users Mailing List
>>>                     sr-users at lists.kamailio.org
>>>                     <mailto:sr-users at lists.kamailio.org>
>>>                     https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>                     <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
>>>
>>>                 _______________________________________________
>>>                 Kamailio (SER) - Users Mailing List
>>>                 sr-users at lists.kamailio.org
>>>                 <mailto:sr-users at lists.kamailio.org>
>>>                 https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>                 <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
>>>
>>>
>>>
>>>             -- 
>>>
>>>             BR,
>>>             Denys Pozniak
>>>
>>>
>>>
>>>             _______________________________________________
>>>             Kamailio (SER) - Users Mailing List
>>>             sr-users at lists.kamailio.org <mailto:sr-users at lists.kamailio.org>
>>>             https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
>>
>>             -- 
>>             Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com>
>>             www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>
>>             Funding: https://www.paypal.me/dcmierla <https://www.paypal.me/dcmierla>
>>
>>
>>
>>         -- 
>>
>>         BR,
>>         Denys Pozniak
>>
>>
>>         _______________________________________________
>>         Kamailio (SER) - Users Mailing List
>>         sr-users at lists.kamailio.org <mailto:sr-users at lists.kamailio.org>
>>         https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>         <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
>>
>>     -- 
>>     Regards,
>>
>>     David Villasmil
>>     email: david.villasmil.work at gmail.com
>>     <mailto:david.villasmil.work at gmail.com>
>>     phone: +34669448337
>
>     -- 
>     Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com>
>     www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>
>     Funding: https://www.paypal.me/dcmierla <https://www.paypal.me/dcmierla>
>
>     _______________________________________________
>     Kamailio (SER) - Users Mailing List
>     sr-users at lists.kamailio.org <mailto:sr-users at lists.kamailio.org>
>     https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>     <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
>
>
>
> -- 
>
> BR,
> Denys Pozniak
>
>
-- 
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Funding: https://www.paypal.me/dcmierla

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20201118/da12d38e/attachment.htm>


More information about the sr-users mailing list