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?