rendered paste bodydiff -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)