[svn-commits] russell: branch 1.2 r61862 - /branches/1.2/channels/chan_iax2.c

svn-commits at lists.digium.com svn-commits at lists.digium.com
Wed Apr 25 14:06:23 MST 2007


Author: russell
Date: Wed Apr 25 16:06:22 2007
New Revision: 61862

URL: http://svn.digium.com/view/asterisk?view=rev&rev=61862
Log:
Ensure that callerid settings are reset on a reload.

Modified:
    branches/1.2/channels/chan_iax2.c

Modified: branches/1.2/channels/chan_iax2.c
URL: http://svn.digium.com/view/asterisk/branches/1.2/channels/chan_iax2.c?view=diff&rev=61862&r1=61861&r2=61862
==============================================================================
--- branches/1.2/channels/chan_iax2.c (original)
+++ branches/1.2/channels/chan_iax2.c Wed Apr 25 16:06:22 2007
@@ -324,8 +324,8 @@
 	char inkeys[80];				/*!< Key(s) this peer can use to authenticate to us */
 
 	/* Suggested caller id if registering */
-	char cid_num[AST_MAX_EXTENSION];		/*!< Default context (for transfer really) */
-	char cid_name[AST_MAX_EXTENSION];		/*!< Default context (for transfer really) */
+	char cid_num[AST_MAX_EXTENSION];
+	char cid_name[AST_MAX_EXTENSION];
 	
 	int expire;					/*!< Schedule entry for expiry */
 	int expiry;					/*!< How soon to expire */
@@ -8324,6 +8324,9 @@
 		peer->pokefreqnotok = DEFAULT_FREQ_NOTOK;
 		peer->context[0] = '\0';
 		peer->peercontext[0] = '\0';
+		ast_clear_flag(peer, IAX_HASCALLERID);
+		peer->cid_name[0] = '\0';
+		peer->cid_num[0] = '\0';
 		while(v) {
 			if (!strcasecmp(v->name, "secret")) {
 				ast_copy_string(peer->secret, v->value, sizeof(peer->secret));
@@ -8409,9 +8412,11 @@
 			} else if (!strcasecmp(v->name, "disallow")) {
 				ast_parse_allow_disallow(&peer->prefs, &peer->capability, v->value, 0);
 			} else if (!strcasecmp(v->name, "callerid")) {
-				ast_callerid_split(v->value, peer->cid_name, sizeof(peer->cid_name),
+				if (!ast_strlen_zero(v->value)) {
+					ast_callerid_split(v->value, peer->cid_name, sizeof(peer->cid_name),
 									peer->cid_num, sizeof(peer->cid_num));
-				ast_set_flag(peer, IAX_HASCALLERID);	
+					ast_set_flag(peer, IAX_HASCALLERID);
+				}
 			} else if (!strcasecmp(v->name, "sendani")) {
 				ast_set2_flag(peer, ast_true(v->value), IAX_SENDANI);	
 			} else if (!strcasecmp(v->name, "inkeys")) {
@@ -8510,6 +8515,9 @@
 		ast_copy_string(user->name, name, sizeof(user->name));
 		ast_copy_string(user->language, language, sizeof(user->language));
 		ast_copy_flags(user, &globalflags, IAX_USEJITTERBUF | IAX_FORCEJITTERBUF | IAX_CODEC_USER_FIRST | IAX_CODEC_NOPREFS | IAX_CODEC_NOCAP);	
+		ast_clear_flag(user, IAX_HASCALLERID);
+		user->cid_num[0] = '\0';
+		user->cid_name[0] = '\0';
 		while(v) {
 			if (!strcasecmp(v->name, "context")) {
 				con = build_context(v->value);
@@ -8571,8 +8579,10 @@
 				} else
 					ast_copy_string(user->secret, v->value, sizeof(user->secret));
 			} else if (!strcasecmp(v->name, "callerid")) {
-				ast_callerid_split(v->value, user->cid_name, sizeof(user->cid_name), user->cid_num, sizeof(user->cid_num));
-				ast_set_flag(user, IAX_HASCALLERID);	
+				if (!ast_strlen_zero(v->value)) {
+					ast_callerid_split(v->value, user->cid_name, sizeof(user->cid_name), user->cid_num, sizeof(user->cid_num));
+					ast_set_flag(user, IAX_HASCALLERID);
+				}
 			} else if (!strcasecmp(v->name, "accountcode")) {
 				ast_copy_string(user->accountcode, v->value, sizeof(user->accountcode));
 			} else if (!strcasecmp(v->name, "language")) {



More information about the svn-commits mailing list