[OpenSIPS-Devel] CANCELs and negative ACKs are constructed from the outgoing INVITE ?
Noman Siddiqui
nomansi at hotmail.com
Mon Oct 6 15:34:45 CEST 2008
Hi All,
Does anyone know if the support for reparse_invite tm configuration and
tm_relay_cancel is present in openSER-1.3.1 or later releases.
I found the related patch SER-212
(http://lists.iptel.org/pipermail/serdev/2007-May/010212.html) to fix the
issue with CANCEL and negative ACK being built using the incoming INVITE
instead of outgoing INVITE. However, I searched through the 1.3.1 openSER
codebase and couldn't find this or similar feature. If its covered through
some other feature then kindly provide more details. If its not already
there then is there any enhancement request already in place to cover this
or does it require new feature request to be opened ?
Here is the pacth detail of SER-212:
http://lists.iptel.org/pipermail/serdev/2007-May/010212.html
===================
SER CVS Repository
Modified files:
modules/tm t_cancel.c t_fwd.c t_fwd.h t_msgbuilder.c
t_msgbuilder.h t_reply.c tm.c
Added files:
modules/tm lw_parser.c lw_parser.h
Log:
CANCELs and negative ACKs are constructed from the INVITE which was sent
out
instead of building them from the received one. The disadvantage is
that the outgoing INVITE has to be partially reparsed, the advantage is
that
the CANCEL/ACK is always RFC-compliant, it always contains the same
route-set
as the INVITE message. (closes SER-212)
build_local_reparse() function can be used to construct a CANCEL or ACK,
it
reparses the outgoing INVITE and applies the modifications specified by
the RFC.
new module parameters:
- reparse_invite: set it to 0 in order to revert to the old behaviour)
- ac_extra_hdrs: prefix for additional headers which are kept by
build_local_reparse()
new script function:
- t_relay_cancel() - can be used to catch CANCEL requests at the
beginning of the script
and bypass the rest of the script processing:
if (!t_relay_cancel()) { # implicit drop if relaying was successful,
# nothing to do
# corresponding INVITE transaction found but error occurred
sl_reply("500", "Internal Server Error");
drop;
}
# bad luck, corresponding INVITE transaction is missing,
# do the same as for INVITEs
...
Revision Changes Path
1.1 +258 -0 sip_router/modules/tm/lw_parser.c (new)
http://cvs.berlios.de/cgi-bin/viewcvs.cgi/ser/sip_router/modules/tm/lw_parser.c?rev=1.1&content-type=text/plain
1.1 +46 -0 sip_router/modules/tm/lw_parser.h (new)
http://cvs.berlios.de/cgi-bin/viewcvs.cgi/ser/sip_router/modules/tm/lw_parser.h?rev=1.1&content-type=text/plain
1.23 +12 -3 sip_router/modules/tm/t_cancel.c
http://cvs.berlios.de/cgi-bin/viewcvs.cgi/ser/sip_router/modules/tm/t_cancel.c.diff?r1=1.22&r2=1.23
1.87 +64 -2 sip_router/modules/tm/t_fwd.c
http://cvs.berlios.de/cgi-bin/viewcvs.cgi/ser/sip_router/modules/tm/t_fwd.c.diff?r1=1.86&r2=1.87
1.15 +2 -1 sip_router/modules/tm/t_fwd.h
http://cvs.berlios.de/cgi-bin/viewcvs.cgi/ser/sip_router/modules/tm/t_fwd.h.diff?r1=1.14&r2=1.15
1.46 +161 -1 sip_router/modules/tm/t_msgbuilder.c
http://cvs.berlios.de/cgi-bin/viewcvs.cgi/ser/sip_router/modules/tm/t_msgbuilder.c.diff?r1=1.45&r2=1.46
1.18 +7 -1 sip_router/modules/tm/t_msgbuilder.h
http://cvs.berlios.de/cgi-bin/viewcvs.cgi/ser/sip_router/modules/tm/t_msgbuilder.h.diff?r1=1.17&r2=1.18
1.140 +14 -3 sip_router/modules/tm/t_reply.c
http://cvs.berlios.de/cgi-bin/viewcvs.cgi/ser/sip_router/modules/tm/t_reply.c.diff?r1=1.139&r2=1.140
1.153 +23 -1 sip_router/modules/tm/tm.c
http://cvs.berlios.de/cgi-bin/viewcvs.cgi/ser/sip_router/modules/tm/tm.c.diff?r1=1.152&r2=1.153
=============================
Thanks and appreciate your help.
More information about the Devel
mailing list