[asterisk-commits] mmichelson: branch 1.4 r205775 - /branches/1.4/channels/chan_sip.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Fri Jul 10 10:51:41 CDT 2009
Author: mmichelson
Date: Fri Jul 10 10:51:36 2009
New Revision: 205775
URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=205775
Log:
Ensure that outbound NOTIFY requests are properly routed through stateful proxies.
With this change, we make note of Record-Route headers present in any SUBSCRIBE
request that we receive so that our outbound NOTIFY requests will have the proper
Route headers in them.
(closes issue #14725)
Reported by: ibc
Modified:
branches/1.4/channels/chan_sip.c
Modified: branches/1.4/channels/chan_sip.c
URL: http://svn.asterisk.org/svn-view/asterisk/branches/1.4/channels/chan_sip.c?view=diff&rev=205775&r1=205774&r2=205775
==============================================================================
--- branches/1.4/channels/chan_sip.c (original)
+++ branches/1.4/channels/chan_sip.c Fri Jul 10 10:51:36 2009
@@ -7314,8 +7314,11 @@
snprintf(tmp, sizeof(tmp), "%d %s", ++p->ocseq, sip_methods[sipmethod].text);
add_header(req, "Via", p->via);
- /* SLD: FIXME?: do Route: here too? I think not cos this is the first request.
- * OTOH, then we won't have anything in p->route anyway */
+ /* This will be a no-op most of the time. However, under certain circumstances,
+ * NOTIFY messages will use this function for preparing the request and should
+ * have Route headers present.
+ */
+ add_route(req, p->route);
/* Build Remote Party-ID and From */
if (ast_test_flag(&p->flags[0], SIP_SENDRPID) && (sipmethod == SIP_INVITE)) {
build_rpid(p);
@@ -15768,6 +15771,7 @@
copy_request(&p->initreq, req);
check_via(p, req);
+ build_route(p, req, 0);
} else if (ast_test_flag(req, SIP_PKT_DEBUG) && ast_test_flag(req, SIP_PKT_IGNORE))
ast_verbose("Ignoring this SUBSCRIBE request\n");
More information about the asterisk-commits
mailing list