Hi,
I have a very specific situation that the implementation of a customer
SIP user agent is absolutely not standards conform. Therefore, I use
Kamailio as a SIP protocol adapter between the non-standard conform user
agent(s) and the typical RFC3261 compliant user agents. Most conversions
are working fine. But in a very specific scenario I have to
change/convert a SIP response message to a SIP request message and
change the SIP method´s name. This conversion is no problem for the SIP
header fields. However, I haven't found a way for adapting the
response-/request line of a SIP message. This line seems to be protected.
The described situation of the perverse conversion I try to realize is
following (please do not ask "why?" or think I'm mad...):
(mad) UA1 == INVITE ==> SIP-Prot-Adapter(Kamailio) == INVITE ==> (typ.)UA2
UA1 <== BYE == SIP-Prot-Adapter(Kamailio) <== 488 == (typ.)UA2
UA1 == BYE ==> SIP-Prot-Adapter(Kamailio) == ACK ==> (typ.)UA2
I use the "textops" module for substitution and/or replacement in SIP
header fields. But the "subst" and "replace" functions cannot be used
for the request-/response line on top of the SIP messages. I was a
little bit irritated, as the "search" function is still working on these
lines, but not the subst/replace function. Creating a new SIP message
with the UAC module (as alternative) is not okay, as this new message
does not use the same values for Call-ID, From-tag a.s.o. and these
values can't be changed before sending the message.
Does anybody know a way / function / method for manipulating the
request-/response line of a message? It would be perfect using a
function á la "sed"/subst.
Thanks
Klaus
P.S. I tested with kamailio-3.3.3