[SR-Users] Setting Kamailio User-Agent dynamically

Errol Samuels ewsamuels at gmail.com
Tue Oct 7 23:06:16 CEST 2014


Hi Sammy,

Thanks for your response and the clarification.

What I am actually trying to do is to pass the real User-Agent info for
each device as the Registration is fowarded to Freeswitch so using your
code as an example instead of hardcoding the custom "User-Agent: My Server
SIP Server" which will show up in Freeswitch for ALL users I want to do
something like user_agent_header="User-Agent: $ua" ;

Where $ua as you are aware would be the Real User-Agent of the actual user
who registration is being forwarded to Freeswitch.

if($sel(contact.expires) != $null)
                $uac_req(hdrs)= $uac_req(hdrs) + "Expires: " +
$sel(contact.expires) + "\r\n";
        else
                $uac_req(hdrs)= $uac_req(hdrs) + "Expires: " +
$hdr(Expires) + "\r\n";
        event_route [tm:local-request] { # Handle locally generated requests
        xlog("L_INFO", "Routing locally generated $rm to <$ru> + Modify the
User-Agent Header \n");
        user_agent_header="User-Agent: $ua" ;
        }

        uac_req_send();
        exit;


I tried to add that code just before the "uac_req_send()" but I get errors
when starting Kamailio,  Is this compatible with Kamailio 4.0.6?

 0(44073) : <core> [cfg.y:3567]: yyerror_at(): parse error in config file
/etc/kamailio/kamailio.cfg, line 1034, column 2-12: syntax error
 0(44073) : <core> [cfg.y:3567]: yyerror_at(): parse error in config file
/etc/kamailio/kamailio.cfg, line 1034, column 2-12: bad command
 0(44073) : <core> [cfg.y:3567]: yyerror_at(): parse error in config file
/etc/kamailio/kamailio.cfg, line 1034, column 2-12: bad command
 0(44073) : <core> [cfg.y:3570]: yyerror_at(): parse error in config file
/etc/kamailio/kamailio.cfg, line 1034, column 14: bad command
 0(44073) : <core> [cfg.y:3567]: yyerror_at(): parse error in config file
/etc/kamailio/kamailio.cfg, line 1034, column 15-30: bad command
 0(44073) : <core> [cfg.y:3570]: yyerror_at(): parse error in config file
/etc/kamailio/kamailio.cfg, line 1034, column 31: bad command
 0(44073) : <core> [cfg.y:3570]: yyerror_at(): parse error in config file
/etc/kamailio/kamailio.cfg, line 1034, column 33: bad command

regards,

Errol


On Tue, Oct 7, 2014 at 9:28 PM, SamyGo <govoiper at gmail.com> wrote:

> Hey Errol,
>
> What I get from Daniel's email is that you only need to add this route in
> your script and it will trigger itself automatically when "uac_req_send()"
> function is executed.
>
> event_route [tm:local-request] { # Handle locally generated requests
>       xlog("L_INFO", "Routing locally generated $rm to <$ru> + Modify the
> User-Agent Header \n");
>       user_agent_header="User-Agent: My Super SIP Server" ;
> }
>
> Reference:
> http://www.kamailio.org/wiki/cookbooks/4.1.x/core?s[]=event&s[]=route#event_route
>
> BR,
> Sammy
>
>
> On Tue, Oct 7, 2014 at 11:20 AM, Errol Samuels <ewsamuels at gmail.com>
> wrote:
>
>> Thanks for your input Daniel but pardon my ignorance as I am not 100%
>> clear where I need to add that event_route[tm:local-request].
>>
>> Here is the point where the REGISTER is being sent to Freeswitch.  So are
>> you able to provide an example of where I send the real User-Agent of the
>> device to Freeswitch?
>>
>> # Forward REGISTER to FreeSwitch
>> route[REGFWD] {
>>
>>         if(!is_method("REGISTER"))
>>         {
>>                 return;
>>         }
>>
>>         route(DISPATCH);
>>         $uac_req(method)="REGISTER";
>>         $uac_req(ruri)=$du;
>>         $uac_req(furi)=$fn + "<sip:" + $au + "@" + $ar + ">";
>>         $uac_req(turi)=$tn + "<sip:" + $au + "@" + $ar + ">";
>>         $uac_req(hdrs)="Contact: <sip:" + $au + "@"
>>                                 + $ar
>>                                 + ";fs_path=sip:"
>>                                 + $sel(cfg_get.kamailio.bindip)
>>                                 + ":" + $sel(cfg_get.kamailio.bindport)
>>                                 + ">"
>>                                 + "\r\n";
>>         if($sel(contact.expires) != $null)
>>                 $uac_req(hdrs)= $uac_req(hdrs) + "Expires: " +
>> $sel(contact.expires) + "\r\n";
>>         else
>>                 $uac_req(hdrs)= $uac_req(hdrs) + "Expires: " +
>> $hdr(Expires) + "\r\n";
>>         uac_req_send();
>>         exit;
>> }
>>
>> Thanks
>>
>> Errol
>>
>>
>>
>> On Tue, Oct 7, 2014 at 9:07 AM, Daniel-Constantin Mierla <
>> miconda at gmail.com> wrote:
>>
>>>  You have to use event_route[tm:local-request] if you use uac module to
>>> send out new REGISTER.
>>>
>>> Cheers,
>>> Daniel
>>>
>>>
>>> On 03/10/14 18:32, Errol Samuels wrote:
>>>
>>>  I also tried your last suggestion at the point when the registeris
>>> being forwarded to FS but it had no effect
>>>
>>> # Forward REGISTER to Freeswitch
>>> route[REGFWD] {
>>>         if(!is_method("REGISTER"))
>>>         {
>>>                 return;
>>>         }
>>>
>>>         #if ( is_present_hf("User-Agent")) {
>>>
>>> * remove_hf("User-Agent");         append_hf("User-Agent: $ua\r\n");*
>>>         #}
>>>
>>>  BR
>>>
>>>  Errol
>>>
>>>
>>> On Fri, Oct 3, 2014 at 5:08 PM, Rainer Piper <rainer.piper at soho-piper.de
>>> > wrote:
>>>
>>>>  Am 03.10.2014 um 17:52 schrieb Errol Samuels:
>>>>
>>>>   Hi Rainer,
>>>>
>>>>  Yes I did try user_agent_header = "User-Agent: $ua"; but it just
>>>> passes "$ua" to Freeswitch rather than the value of $ua.
>>>>
>>>>  regards,
>>>>
>>>>  Errol
>>>>
>>>>
>>>>
>>>> On Fri, Oct 3, 2014 at 4:32 PM, Rainer Piper <
>>>> rainer.piper at soho-piper.de> wrote:
>>>>
>>>>>  Am 03.10.2014 um 17:04 schrieb Errol Samuels:
>>>>>
>>>>>    Hello All,
>>>>>
>>>>>  I am using Kamailio in front of Freeswitch and Kamailio is handling
>>>>> the registrations then forwarding to Freeswitch and everything is working
>>>>> for the most part.
>>>>>
>>>>> However, there is niggling pain in the neck issue where the user's
>>>>> User-Agent shows in Freeswitch as kamailio (4.0.6 (x86_64/linux))  instead
>>>>> of the user's Real User-Agent I am trying to get Kamailio to pass the real
>>>>> User-Agent of the user without success.
>>>>>
>>>>>  I am able to set a static User-Agent by doing this in the global
>>>>> section.
>>>>>
>>>>> *user_agent_header = "User-Agent:  We love beer";*
>>>>>
>>>>>  However, I am unable to set it dynamically for example:
>>>>>
>>>>>
>>>>> *user_agent_header = "User-Agent: " + $ua; *
>>>>>
>>>>>
>>>>>
>>>>> *have you tried ... *
>>>>>
>>>>>
>>>>> *user_agent_header = "User-Agent: $ua"; ? *
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>> *Have you tried to remove the original hf (User-Agent) and set the new
>>>> one like: remove_hf("User-Agent"); append_hf("User-Agent: $ua\r\n"); *
>>>>
>>>>
>>>>
>>>> * ? *
>>>>
>>>>
>>>>>  With is one Kamailio doesn't even start so my syntax is probably
>>>>> wrong.
>>>>>
>>>>> I also tried playing around with the textops module so I have ran out
>>>>> of ideas
>>>>>
>>>>> Any ideas?
>>>>>
>>>>>  Thanks in advance.
>>>>>
>>>>>  regards,
>>>>>
>>>>> Errol
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>  _______________________________________________
>>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing listsr-users at lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Rainer Piper*
>>>>> Integration engineer
>>>>> Koeslinstr. 56
>>>>> 53123 BONN
>>>>> GERMANY
>>>>> Phone: +49 228 97167161 <%2B49%20228%2097167161>
>>>>> P2P: sip:rainer at sip.soho-piper.de:5072 (pjsip-test)
>>>>> XMPP: rainer at xmpp.soho-piper.de
>>>>>
>>>>> _______________________________________________
>>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>>>> sr-users at lists.sip-router.org
>>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>>>
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing listsr-users at lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>>
>>>>
>>>>
>>>> --
>>>> *Rainer Piper*
>>>> Integration engineer
>>>> Koeslinstr. 56
>>>> 53123 BONN
>>>> GERMANY
>>>> Phone: +49 228 97167161 <%2B49%20228%2097167161>
>>>> P2P: sip:rainer at sip.soho-piper.de:5072 (pjsip-test)
>>>> XMPP: rainer at xmpp.soho-piper.de
>>>>
>>>> _______________________________________________
>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>>> sr-users at lists.sip-router.org
>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>>
>>>>
>>>
>>>
>>> _______________________________________________
>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing listsr-users at lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>
>>>
>>> --
>>> Daniel-Constantin Mierlahttp://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
>>>
>>>
>>> _______________________________________________
>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>> sr-users at lists.sip-router.org
>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>
>>>
>>
>> _______________________________________________
>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>> sr-users at lists.sip-router.org
>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>
>>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20141007/7a56f565/attachment.html>


More information about the sr-users mailing list