You better use t_reply("487", "Cancelled") in a failure_route.

Adding a proper Via header might be a tricky task.

Cheers,
Daniel

On 10/25/12 11:43 AM, Vassilis Radis wrote:
I have a situation where a far end SIP provider doesn't behave properly when sending 487 replies. The scenario is this:

I have a registered user calling into my kamailio which ,using lcr module, routes the call to a SIP provider. When the caller Cancels the call, my kamailio forwards the cancel message to the provider (along with a 200 Cancelling message to the caller). The problem is with the 487 sent by the provider to my kamailio: It does not contain all the two Via headers. It only contains the via header that names my kamailio. So when kamailio gets the 487, it removes its Via header and sends the 487 back to the caller, which now doesnt find any via header. 

Note that the far end provider, correctly sends all the Via Headers in other replies (183 etc). 

So now I am trying to "intercept" the 487 from this specific provider in the onreply route, and patch it with the header that the provider should have included. How can I do it? The problem is twofold:
1.I need to detect which header I should manually add (maybe store the Via Header set from the initial invites or the 183 replies, and get it from there? .I dont know how to do that)
2.I need to add it. (How can I manually add a Via header? .This seems easier

Can anyone help me, maybe with another solution? 


_______________________________________________
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://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio Advanced Training, Berlin, Nov 5-8, 2012 - http://asipto.com/u/kat
Kamailio Advanced Training, Miami, USA, Nov 12-14, 2012 - http://asipto.com/u/katu