[svn-commits] rizzo: branch rizzo/astobj2 r51230 - /team/rizzo/astobj2/channels/chan_sip.c

svn-commits at lists.digium.com svn-commits at lists.digium.com
Thu Jan 18 09:49:26 MST 2007


Author: rizzo
Date: Thu Jan 18 10:49:25 2007
New Revision: 51230

URL: http://svn.digium.com/view/asterisk?view=rev&rev=51230
Log:
merge from trunk 48983, 48986, 48990,
Add support for buggy Cisco MWI firmware > 8.0.3 (issue 8575 - flewid)


Modified:
    team/rizzo/astobj2/channels/chan_sip.c

Modified: team/rizzo/astobj2/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/channels/chan_sip.c?view=diff&rev=51230&r1=51229&r2=51230
==============================================================================
--- team/rizzo/astobj2/channels/chan_sip.c (original)
+++ team/rizzo/astobj2/channels/chan_sip.c Thu Jan 18 10:49:25 2007
@@ -823,10 +823,12 @@
 #define SIP_PAGE2_CALL_ONHOLD		(3 << 23)	/*!< Call states */
 #define SIP_PAGE2_CALL_ONHOLD_ONEDIR	(1 << 23)	/*!< 23: One directional hold */
 #define SIP_PAGE2_CALL_ONHOLD_INACTIVE	(1 << 24)	/*!< 24: Inactive  */
-#define SIP_PAGE2_RFC2833_COMPENSATE    (1 << 25)
+#define SIP_PAGE2_RFC2833_COMPENSATE    (1 << 25)	/*!< 25: ???? */
+#define SIP_PAGE2_BUGGY_MWI		(1 << 26)	/*!< 26: Buggy CISCO MWI fix */
 
 #define SIP_PAGE2_FLAGS_TO_COPY \
-	(SIP_PAGE2_ALLOWSUBSCRIBE | SIP_PAGE2_ALLOWOVERLAP | SIP_PAGE2_VIDEOSUPPORT | SIP_PAGE2_T38SUPPORT | SIP_PAGE2_RFC2833_COMPENSATE)
+	(SIP_PAGE2_ALLOWSUBSCRIBE | SIP_PAGE2_ALLOWOVERLAP | SIP_PAGE2_VIDEOSUPPORT | \
+	SIP_PAGE2_T38SUPPORT | SIP_PAGE2_RFC2833_COMPENSATE | SIP_PAGE2_BUGGY_MWI)
 
 /* T.38 set of flags */
 #define T38FAX_FILL_BIT_REMOVAL		(1 << 0)	/*!< Default: 0 (unset)*/
@@ -7430,7 +7432,12 @@
 	ast_str_append(&out, 0, "Messages-Waiting: %s\r\n", newmsgs ? "yes" : "no");
 	ast_str_append(&out, 0, "Message-Account: sip:%s@%s\r\n",
 		S_OR(vmexten, default_vmexten), S_OR(p->fromdomain, ast_inet_ntoa(p->ourip)));
-	ast_str_append(&out, 0, "Voice-Message: %d/%d (0/0)\r\n", newmsgs, oldmsgs);
+        /* Cisco has a bug in the SIP stack where it can't accept the
+	 (0/0) notification. This can temporarily be disabled in
+	 sip.conf with the "buggymwi" option */
+	ast_str_append(&out, 0, "Voice-Message: %d/%d%s\r\n",
+		newmsgs, oldmsgs, (ast_test_flag(&p->flags[1], SIP_PAGE2_BUGGY_MWI) ? "" : " (0/0)"));
+  	 
 	if (p->subscribed) {
 		if (p->expiry)
 			add_header(&req, "Subscription-State", "active");
@@ -16216,6 +16223,8 @@
 #endif
 	} else if (!strcasecmp(v->name, "rfc2833compensate")) {
 		CO_SF(1, SIP_PAGE2_RFC2833_COMPENSATE);
+	} else if (!strcasecmp(v->name, "buggymwi")) {
+		CO_SF(1, SIP_PAGE2_BUGGY_MWI);
 	} else
 		return 0;	/* not found */
 



More information about the svn-commits mailing list