All pastes #946309 Raw Edit

Unnamed

public text v1 · immutable
·published 2008-03-17 16:39 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)