[Asterisk-cvs] asterisk/channels chan_sip.c,1.821,1.822

kpfleming kpfleming
Sat Aug 27 19:53:42 CDT 2005


Update of /usr/cvsroot/asterisk/channels
In directory mongoose.digium.com:/tmp/cvs-serv19278/channels

Modified Files:
	chan_sip.c 
Log Message:
preserve hint watchers and laststate across 'extensions reload' (issue #2522)


Index: chan_sip.c
===================================================================
RCS file: /usr/cvsroot/asterisk/channels/chan_sip.c,v
retrieving revision 1.821
retrieving revision 1.822
diff -u -d -r1.821 -r1.822
--- chan_sip.c	26 Aug 2005 20:04:28 -0000	1.821
+++ chan_sip.c	27 Aug 2005 23:55:14 -0000	1.822
@@ -5733,20 +5733,24 @@
 }
 
 /*--- cb_extensionstate: Part of thte SUBSCRIBE support subsystem ---*/
-static int cb_extensionstate(char *context, char* exten, int state, void *data)
+static int cb_extensionstate(char *context, char* exten, enum ast_extension_states state, void *data)
 {
 	struct sip_pvt *p = data;
-	if (state == -1) {
+
+	switch (state) {
+	case AST_EXTENSION_DEACTIVATED:
+	case AST_EXTENSION_REMOVED:
+		transmit_state_notify(p, state, 1);
 		sip_scheddestroy(p, 15000);
 		p->stateid = -1;
 		return 0;
+	default:
+		transmit_state_notify(p, state, 1);
+		
+		if (option_debug > 1)
+			ast_verbose(VERBOSE_PREFIX_1 "Extension Changed %s new state %d for Notify User %s\n", exten, state, p->username);
+		return 0;
 	}
- 
-	transmit_state_notify(p, state, 1);
-
-	if (option_debug > 1)
-		ast_verbose(VERBOSE_PREFIX_1 "Extension Changed %s new state %d for Notify User %s\n", exten, state, p->username);
-	return 0;
 }
 
 /*--- register_verify: Verify registration of user */




More information about the svn-commits mailing list