[SR-Users] modify To header, prefix + ip, using dispacher module.

Carsten Bock carsten at ng-voice.com
Thu Feb 13 14:42:55 CET 2014


Hi Helena,

we do it the following way:

In the main route:
t_on_branch("some_route");

branch_route[some_route] {
 uac_replace_to(....);
}

This way, the uac_* functions get executed for each branch individually.

Kind regards,
Carsten

2014-02-13 13:40 GMT+01:00 Helena Garcia-Nieto <helena.gnieto at morodo.co.uk>:
> Hi,
>
> Thanks for the tip, but  I cannot manage it to work...
>
> I hadn't uac module loaded, I loaded it and added
>
> #MORODO TEST TO MODIFICATION
> loadmodule "uac.so"
> modparam("uac","restore_mode","none")
>
> The uac function cannot be used on the failure rutine (it gives an error
> when restarting) so I chaged the order:
>
> That is the default routing
> route[FROMPHONE] {
> [...]
>         if(!ds_select_domain("1", "8"))
>         {
>                 send_reply("404", "No destination");
>                 exit;
>         }
>         t_on_failure("RTF_DISPATCH");
>
>        #MORODO Add profix to ISKRATEL: 0199
>                 subst_uri('/^sip:(.*)/sip:0199\1/i'); # add prefix to URI
>         uac_replace_to("","sip:0199$rU@$rd");
>
>         route(RELAY);
>         exit;
>
> }
>
> That is the failure function
>
> failure_route[RTF_DISPATCH] {
>         if (t_is_canceled()) {
>                 exit;
>         }
>
>         #marking the gw as failed and set state proving, to send options
>         ds_mark_dst("p");
>
>         # next DST - only for 500 or local timeout
>         if (t_check_status("500") or (t_branch_timeout() and
> !t_branch_replied()))
>         {
>                 if(ds_next_domain())
>                 {
>                         t_on_failure("RTF_DISPATCH"); #in case of fail again
> it would try the next option
>
>                 #MORODO, update IP on TO header
>
>                 subst_hf("To", "/(.*)@(.*)$/\1@$rd>/", "a");
>                         route(RELAY);
>                         exit;
>                 }
>         }
> }
>
> But the result TO header is the same strange thing... mix of what it was on
> normal routine + what I wanted after the failure...
>
> To: <sip:0199XXXXX10 at 10.X.X.39>sip:0199XXXXX10 at 10.X.X.38
>
> It is like once the TO is modified, It does not modify it ok anymore...
>
> Would you do it any other way that could be better?
>
> Helena
>
>
> -----Original Message-----
> From: sr-users-bounces at lists.sip-router.org
> [mailto:sr-users-bounces at lists.sip-router.org] On Behalf Of Daniel Tryba
> Sent: miércoles, 12 de febrero de 2014 18:30
> To: sr-users at lists.sip-router.org
> Subject: Re: [SR-Users] modify To header, prefix + ip, using dispacher
> module.
>
> On Wednesday 12 February 2014 17:37:46 Helena Garcia-Nieto wrote:
>> I tried modifying again the TO header with:
>> subst_hf("To", "/(.*)@(.*)$/\1@$rd>/", "a")
>>
>> before the route(relay) on the failure routine, but it does not work
>> properly, I am getting strange TO header like:
>>
>> To: <sip:0199XXXX at 10.X.X.39> <sip:XXXXXX at 10.X.X.38>
>>
>> It looks like it is not parsing the to header it has before but adding
>> a parsed version of the original header at the end of the other one....
>> I tried with subst as well but the result is more or less the same.
>>
>> Probably there is a better way to set the prefix and the correct IP on
>  the to header... I'll appreciate any help with this issue.
>
> How about just using uac_replace_to()?
>
> http://kamailio.org/docs/modules/stable/modules/uac.html#uac.f.uac_replace_t
> o%28display,uri%29
>
> 4.4.  uac_replace_to(display,uri)
>
> Replace in TO header the display name and the URI part.
>
> display and URI parameters can include pseudo-variables.
>
> This function can be used from REQUEST_ROUTE and from BRANCH_ROUTE.
>
> --
>
> POCOS B.V. - Croy 9c - 5653 LC Eindhoven
> Telefoon: 040 293 8661 - Fax: 040 293 8658
> http://www.pocos.nl/   - http://www.sipo.nl/
> K.v.K. Eindhoven 17097024
>
> _______________________________________________
> 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



-- 
Carsten Bock
CEO (Geschäftsführer)

ng-voice GmbH
Schomburgstr. 80
D-22767 Hamburg / Germany

http://www.ng-voice.com
mailto:carsten at ng-voice.com

Office +49 40 34927219
Fax +49 40 34927220

Sitz der Gesellschaft: Hamburg
Registergericht: Amtsgericht Hamburg, HRB 120189
Geschäftsführer: Carsten Bock
Ust-ID: DE279344284

Hier finden Sie unsere handelsrechtlichen Pflichtangaben:
http://www.ng-voice.com/imprint/



More information about the sr-users mailing list