Perhaps you can get it with adding User-Agent header to $uac_req(hdrs):
$uac_req(hdrs)= $uac_req(hdrs) + "User-Agent: " + $ua + "\r\n";
And sent the global parameter:
user_agent_header=""
But then no local generated request has user agent, which probably is ok for you.
There are still ways to use event_route[tm:local-request] to set a custom user agent header, but would require something like: - add $us in $uac_req(hdrs) as X-UA header - in event_route[tm:local-request], remove User-Agent and X-UA headers and add again User-Agent taking the value from X-UA
Cheers, Daniel
On 07/10/14 23:06, Errol Samuels wrote:
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@gmail.com mailto:govoiper@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@gmail.com <mailto:ewsamuels@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@gmail.com <mailto:miconda@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@soho-piper.de <mailto:rainer.piper@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@soho-piper.de <mailto:rainer.piper@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 list sr-users@lists.sip-router.org <mailto:sr-users@lists.sip-router.org> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- *Rainer Piper* Integration engineer Koeslinstr. 56 53123 BONN GERMANY Phone: +49 228 97167161 <tel:%2B49%20228%2097167161> P2P: sip:rainer@sip.soho-piper.de:5072 (pjsip-test) XMPP: rainer@xmpp.soho-piper.de <mailto:rainer@xmpp.soho-piper.de> _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org <mailto:sr-users@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@lists.sip-router.org <mailto:sr-users@lists.sip-router.org> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- *Rainer Piper* Integration engineer Koeslinstr. 56 53123 BONN GERMANY Phone: +49 228 97167161 <tel:%2B49%20228%2097167161> P2P: sip:rainer@sip.soho-piper.de:5072 (pjsip-test) XMPP: rainer@xmpp.soho-piper.de <mailto:rainer@xmpp.soho-piper.de> _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org <mailto:sr-users@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@lists.sip-router.org <mailto:sr-users@lists.sip-router.org> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- Daniel-Constantin Mierla http://twitter.com/#!/miconda <http://twitter.com/#%21/miconda> -http://www.linkedin.com/in/miconda _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org <mailto:sr-users@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@lists.sip-router.org <mailto:sr-users@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@lists.sip-router.org <mailto:sr-users@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@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users