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> 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" ;
}


BR,
Sammy


On Tue, Oct 7, 2014 at 11:20 AM, Errol Samuels <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> 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> 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> 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
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users


--
Rainer Piper
Integration engineer
Koeslinstr. 56
53123 BONN
GERMANY
Phone: +49 228 97167161
P2P: sip:rainer@sip.soho-piper.de:5072 (pjsip-test)
XMPP: rainer@xmpp.soho-piper.de

_______________________________________________
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




_______________________________________________
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


--
Rainer Piper
Integration engineer
Koeslinstr. 56
53123 BONN
GERMANY
Phone: +49 228 97167161
P2P: sip:rainer@sip.soho-piper.de:5072 (pjsip-test)
XMPP: rainer@xmpp.soho-piper.de

_______________________________________________
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




_______________________________________________
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

-- 
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda

_______________________________________________
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



_______________________________________________
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



_______________________________________________
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




_______________________________________________
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

-- 
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda