All pastes #900043 Raw Edit

Someone

public text v1 · immutable
·published 2008-02-11 17:05 UTC
rendered paste body
diff -Naur asterisk-1.4.18-orig/channels/chan_sip.c asterisk-1.4.18/channels/chan_sip.c
--- asterisk-1.4.18-orig/channels/chan_sip.c	2008-01-31 17:52:49.000000000 -0200
+++ asterisk-1.4.18/channels/chan_sip.c	2008-02-11 14:54:02.000000000 -0200
@@ -1087,6 +1087,7 @@
 	int amaflags;			/*!< AMA Flags (for billing) */
 	char tohost[MAXHOSTNAMELEN];	/*!< If not dynamic, IP address */
 	char regexten[AST_MAX_EXTENSION]; /*!< Extension to register (if regcontext is used) */
+	char peerexten[32]; 		/*!< Extension to register on ast_db */
 	char fromuser[80];		/*!< From: user when calling this peer */
 	char fromdomain[MAXHOSTNAMELEN];	/*!< From: domain when calling this peer */
 	char fullcontact[256];		/*!< Contact registered with us (not in sip.conf) */
@@ -10369,6 +10370,7 @@
 		ast_cli(fd, "  Defaddr->IP  : %s Port %d\n", ast_inet_ntoa(peer->defaddr.sin_addr), ntohs(peer->defaddr.sin_port));
 		if (!ast_strlen_zero(global_regcontext))
 			ast_cli(fd, "  Reg. exten   : %s\n", peer->regexten);
+		ast_cli(fd, "  Peer Exten   : %s\n", peer->peerexten);
 		ast_cli(fd, "  Def. Username: %s\n", peer->username);
 		ast_cli(fd, "  SIP Options  : ");
 		if (peer->sipoptions) {
@@ -10450,6 +10452,7 @@
 		astman_append(s, "Default-Username: %s\r\n", peer->username);
 		if (!ast_strlen_zero(global_regcontext))
 			astman_append(s, "RegExtension: %s\r\n", peer->regexten);
+		astman_append(s, "Extension: %s\r\n", peer->peerexten);
 		astman_append(s, "Codecs: ");
 		ast_getformatname_multiple(codec_buf, sizeof(codec_buf) -1, peer->capability);
 		astman_append(s, "%s\r\n", codec_buf);
@@ -11739,6 +11742,8 @@
 		ast_copy_string(buf, peer->language, len);
 	} else  if (!strcasecmp(colname, "regexten")) {
 		ast_copy_string(buf, peer->regexten, len);
+	} else  if (!strcasecmp(colname, "peerexten")) {
+		ast_copy_string(buf, peer->peerexten, len);
 	} else  if (!strcasecmp(colname, "limit")) {
 		snprintf(buf, len, "%d", peer->call_limit);
 	} else  if (!strcasecmp(colname, "curcalls")) {
@@ -11795,6 +11800,7 @@
 	"- codecs                The configured codecs.\n"
 	"- status                Status (if qualify=yes).\n"
 	"- regexten              Registration extension\n"
+	"- peerexten             Peer extension\n"
 	"- limit                 Call limit (call-limit)\n"
 	"- curcalls              Current amount of calls \n"
 	"                        Only available if call-limit is set\n"
@@ -16404,6 +16410,7 @@
 	peer->fromdomain[0] = '\0';
 	peer->fromuser[0] = '\0';
 	peer->regexten[0] = '\0';
+	peer->peerexten[0] = '\0';
 	peer->mailbox[0] = '\0';
 	peer->callgroup = 0;
 	peer->pickupgroup = 0;
@@ -16585,6 +16592,9 @@
 			ast_copy_string(peer->language, v->value, sizeof(peer->language));
 		} else if (!strcasecmp(v->name, "regexten")) {
 			ast_copy_string(peer->regexten, v->value, sizeof(peer->regexten));
+		} else if (!strcasecmp(v->name, "peerexten")) {
+			ast_copy_string(peer->peerexten, v->value, sizeof(peer->peerexten));
+			ast_db_put("SIP/peerexten", ast_strdup(v->value), ast_strdup(peer->name));
 		} else if (!strcasecmp(v->name, "call-limit") || !strcasecmp(v->name, "incominglimit")) {
 			peer->call_limit = atoi(v->value);
 			if (peer->call_limit < 0)