- Use systemname for realm in sip, if we have no configuration for realm
authorOlle Johansson <oej@edvina.net>
Thu, 11 May 2006 13:54:00 +0000 (13:54 +0000)
committerOlle Johansson <oej@edvina.net>
Thu, 11 May 2006 13:54:00 +0000 (13:54 +0000)
- Optionally send systemname in manager (cool when you have a manager proxy)
- Use systemname in CLI prompt

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@26884 65c4cc65-6c06-0410-ace0-fbb531ad65f3

asterisk.c
channels/chan_sip.c
configs/manager.conf.sample
configs/sip.conf.sample
doc/cliprompt.txt
manager.c

index 3704a9f..93eab8a 100644 (file)
@@ -1644,6 +1644,9 @@ static char *cli_prompt(EditLine *el)
                                        }
                                        break;
 #endif
+                               case 's': /* Asterisk system name (from asterisk.conf) */
+                                       strncat(p, ast_config_AST_SYSTEM_NAME, sizeof(prompt) - strlen(prompt) - 1);
+                                       break;
                                case 't': /* time */
                                        memset(&tm, 0, sizeof(tm));
                                        time(&ts);
index 0ed91d8..2b51265 100644 (file)
@@ -13260,7 +13260,10 @@ static int reload_config(enum channelreloadreason reason)
        global_allowsubscribe = FALSE;
        ast_copy_string(global_useragent, DEFAULT_USERAGENT, sizeof(global_useragent));
        ast_copy_string(default_notifymime, DEFAULT_NOTIFYMIME, sizeof(default_notifymime));
-       ast_copy_string(global_realm, DEFAULT_REALM, sizeof(global_realm));
+       if (ast_strlen_zero(ast_config_AST_SYSTEM_NAME))
+               ast_copy_string(global_realm, DEFAULT_REALM, sizeof(global_realm));
+       else
+               ast_copy_string(global_realm, ast_config_AST_SYSTEM_NAME, sizeof(global_realm));
        ast_copy_string(default_callerid, DEFAULT_CALLERID, sizeof(default_callerid));
        compactheaders = DEFAULT_COMPACTHEADERS;
        global_reg_timeout = DEFAULT_REGISTRATION_TIMEOUT;
index 1db1ef4..02f9e41 100644 (file)
@@ -21,6 +21,7 @@
 ; default is 60 seconds.
 ;
 [general]
+displaysystemname = yes
 enabled = no
 ;webenabled = yes
 port = 5038
index d44b3c5..c4cbf0e 100644 (file)
@@ -32,7 +32,8 @@ allowoverlap=no                       ; Disable overlap dialing support. (Default is yes)
 ;allowtransfer=no              ; Disable all transfers (unless enabled in peers or users)
                                ; Default is enabled
 ;realm=mydomain.tld            ; Realm for digest authentication
-                               ; defaults to "asterisk"
+                               ; defaults to "asterisk". If you set a system name in
+                               ; asterisk.conf, it defaults to that system name
                                ; Realms MUST be globally unique according to RFC 3261
                                ; Set this to your host name or domain name
 bindport=5060                  ; UDP Port to bind to (SIP standard port is 5060)
index 281d3df..fbd7dd9 100644 (file)
@@ -8,6 +8,7 @@ You may include the following variables, that will be replaced by
 the current value by Asterisk:
 
 %d     Date (year-month-date)
+%s     Asterisk system name (from asterisk.conf)
 %h     Full hostname
 %H     Short hostname
 %t     Time
index d096c06..0a6b794 100644 (file)
--- a/manager.c
+++ b/manager.c
@@ -158,6 +158,7 @@ static struct mansession {
        char inbuf[AST_MAX_MANHEADER_LEN];
        int inlen;
        int send_events;
+       int displaysystemname;          /*!< Add system name to manager responses and events */
        /* Queued events that we've not had the ability to send yet */
        struct eventqent *eventq;
        /* Timeout for ast_carefulwrite() */
@@ -772,6 +773,14 @@ static int authenticate(struct mansession *s, struct message *m)
                                while (v) {
                                        if (!strcasecmp(v->name, "secret")) {
                                                password = v->value;
+                                       } else if (!strcasecmp(v->name, "displaysystemname")) {
+                                               if (ast_true(v->value)) {
+                                                       if (ast_strlen_zero(ast_config_AST_SYSTEM_NAME)) {
+                                                               s->displaysystemname = 1;
+                                                       } else {
+                                                               ast_log(LOG_ERROR, "Can't enable displaysystemname in manager.conf - no system name configured in asterisk.conf\n");
+                                                       }
+                                               }
                                        } else if (!strcasecmp(v->name, "permit") ||
                                                   !strcasecmp(v->name, "deny")) {
                                                ha = ast_append_ha(v->name, v->value, ha);