I know that it is an untypical way and that a B2BUA would be the best
solution - that is absolutely clear. But because of a missing framework
and time I decided to try it with Kamailio that I've used in many other
projects, too.
Textops is still used and working fine for any headers (except request
line). But UAC (as you´ve recommended) didn't satisfy me. I missed a
possibility for setting dialog-specific settings á la Call-ID, from-tag,
to-tag and CSeq. When I´ve tried setting the CSeq header with the function
$uac_req(hdrs)="CSeq: 123 INVITEr\n";
it has only added a second CSeq header to the outgoing message, but
didn't replace the original CSeq header that was created by the UAC
module. Is there a way to influence the listed id´s, too?
Klaus
At the risk of sounding unhelpful, if you are having
to modify the
request/status line, there's probably something more deeply wrong here,
and you should probably endeavour to fix the problem in a somewhat more
realistic manner.
Furthermore, it must be said that proxies do not make a particularly
good "protocol adaptor"; in contrast to "thicker" back-to-back user
agents (B2BUAs), which build out two logically independent call legs and
bridge signaling events between them selectively, as they see fit,
proxies are more or less obligated, in principle, to pass on what they
receive, in unadulterated form. Kamailio does offer some hacks around
that, in the form of textops and so on, but it doesn't really mean that
it is the right tool for the job.
That said, if you are dead-set on doing this, your best for
regenerating a reply into a request is the 'uac' module and
uac_req_send() functionality:
http://kamailio.org/docs/modules/3.3.x/modules_k/uac.html#id2494432
-- Alex