[SR-Users] modify FROM field in the "failure_route" block

Daniel-Constantin Mierla miconda at gmail.com
Thu Mar 22 18:23:15 CET 2012



On 3/22/12 6:12 PM, Alex Balashov wrote:
> On 03/22/2012 01:00 PM, Robert R wrote:
>
>> When I am trying to modify FROM field in the "failure_route" block I
>> get an error message:
>>
>> failure_route[1]
>> {
>>     ...
>> uac_replace_from("$avp(i:204)");
>>     append_branch();
>>     t_relay();
>> }
>>
>> Not starting openser: invalid configuration file!
>> Mar 22 10:51:39 [6457] CRITICAL:core:yyerror: parse error in config
>> file, line 662, column 32-33: Command cannot be used in the block
>> Mar 22 10:51:39 [6457] ERROR:core:main: bad config file (1 errors)
>
> You can probably get around it this way:
>
> failure_route[1]
> {
>    ...
>
>    append_branch();
>
>    route(STUFF);
>    t_relay();
> }
>
>
> route[STUFF]
> {
>     uac_replace_from(...);
> }
>
indeed this should work -- it is no reason of not being usable in 
failure_route, perhaps is so from the time of development. The function 
itself is allowed in branch_route which is called from inside t_relay() 
(when t_on_branch(...) is used), therefore we can relax the restriction 
for failure_route, imo.

One thing to take care of, if you use uac_replace_from() in request 
route and then in failure route, you may end in malformed format, so it 
is recommended to use it in branch_route, then the changes done by the 
function will be per each forwarded branch.

Cheers,
Daniel

-- 
Daniel-Constantin Mierla
Kamailio Advanced Training, April 23-26, 2012, Berlin, Germany
http://www.asipto.com/index.php/kamailio-advanced-training/




More information about the sr-users mailing list