Hi Klaus,
Thanks! It really works great!
Carsten
Klaus Darilion schrieb:
Hi Carsten!
First I would differ between ACK and CANCEL.
If you use statefull forwarding, then it is sufficient to just
t_relay, as tm will take care of hop-by-hop canceling. There is no
need to rewrite the R-URI. There is only one problem: If the INVITE
processing takes more time, than it may happen that the CANCEL hits
the tm module before the tm module created a transaction. Thus, I
discard CANCEL without existing transactions.
ACK: There are 3 kinds of possible ACK.
1. stateless, e.g. if you use sl_send_reply("404",""), then the
client
will send a "stateless" ACK. This ACK will be absorbed by openser as
soon as it is received and will never enter the routing logic. Thus,
we do not have to care about them.
2. statefull, sucessful call: The INVITE was answered with 200, thus
the caller sends an ACK to the callee. This ACK is in-dialog, and thus
should be routed by the loose_route block (no need to rewrite any URI)
3. statefull, unsuccessful call: The call was rejected or cancelled.
Thus, we have hop-by-hop ACKs. Thus, the ACK must be handled to the tm
moudle, which takes care of it (no need to rewrite any URI).