[SR-Users] event_route[tm:branch-failure] question

Daniel-Constantin Mierla miconda at gmail.com
Wed Apr 16 18:30:20 CEST 2014


by looking at the code, I would say that keeping the same behaviour as 
now is the easiest way to go. Changing the attributes in the request 
would require a lot of backups and restores of values.

It might be easier to add a special class of pvs to access branch 
attributes, like:


On 16/04/14 18:07, Hugh Waite wrote:
> Hello,
> Sorry for being slow to join the discussion.
> The requirements I had for the branch-failure route was to be able to run
> t_next_contact_flow() etc. and also to retrieve the usrloc RUID so that the
> entry could be de-registered. The latter can be done with $T_reply_ruid.
> As you and Daniel saw from the code, I replicated the behaviour of the
> 'failure-route' but with the current branch index. I didn't deliberately
> choose the behaviour of $ru etc. so I'm happy with it being classed as a bug
> if that's what's expected in this situation.
> Does $T_req($ru) give something different in this situation?
> Regards,
> Hugh
> -----Original Message-----
> From: sr-users-bounces at lists.sip-router.org
> [mailto:sr-users-bounces at lists.sip-router.org] On Behalf Of
> Daniel-Constantin Mierla
> Sent: 14 April 2014 22:56
> To: Juha Heinanen
> Cc: Kamailio (SER) - Users Mailing List
> Subject: Re: [SR-Users] event_route[tm:branch-failure] question
> On 14/04/14 21:15, Juha Heinanen wrote:
>> Daniel-Constantin Mierla writes:
>>> To get the branch attributes, the code should be similar to execution
>>> of failure_route. In failure_route, the attributes are taken from
>>> winning branch. In branch-failure, the attributes should be taken
>>> from current branch. But in both cases is dealing with a branch
> structure.
>> the code in t_reply.c for branch failure handling already looks very
>> similar to failure handling.  run_failure_handlers() use branch
>> 	on_failure = t->uac[picked_branch].on_failure;
>> whereas run_branch_failure_handlers() use branch
>> 	on_branch_failure = t->uac[picked_branch].on_branch_failure;
>> then both create faked request environment, run the route handler, and
>> restore the original environment.
>> why the faked request in case of branch failure does not include
>> correct $ru goes beyond my knowledge of tm module.
> indeed, looking at the code, the failure-route and branch-failure events are
> using only the request in the uas side of the transaction. It will require
> writing some c code to get the attributes from uac structure.
> Most of them are stored there (uri, branch flags, path, ...) but some are
> not (dst_uri) ...
> Cheers,
> Daniel
> --
> Daniel-Constantin Mierla - http://www.asipto.com
> http://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

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

More information about the sr-users mailing list