Issue #6409 - Make calls to URI without username go to "s" extension (imported from...
authorOlle Johansson <oej@edvina.net>
Mon, 27 Mar 2006 23:13:31 +0000 (23:13 +0000)
committerOlle Johansson <oej@edvina.net>
Mon, 27 Mar 2006 23:13:31 +0000 (23:13 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@15375 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 0e47c6e..bf236f8 100644 (file)
@@ -6704,6 +6704,7 @@ static int get_destination(struct sip_pvt *p, struct sip_request *oreq)
        char tmp[256] = "", *uri, *a;
        char tmpf[256], *from;
        struct sip_request *req;
+       char *colon;
        
        req = oreq;
        if (!req)
@@ -6735,20 +6736,27 @@ static int get_destination(struct sip_pvt *p, struct sip_request *oreq)
                ast_uri_decode(from);
        }
 
+       /* Skip any options */
+       if ((a = strchr(uri, ';'))) {
+               *a = '\0';
+       }
+
        /* Get the target domain */
        if ((a = strchr(uri, '@'))) {
-               char *colon;
                *a = '\0';
                a++;
                colon = strchr(a, ':'); /* Remove :port */
                if (colon)
                        *colon = '\0';
-               ast_string_field_set(p, domain, a);
-       }
-       /* Skip any options */
-       if ((a = strchr(uri, ';'))) {
-               *a = '\0';
+       } else {        /* No username part */
+               a = uri;
+               uri = "s";      /* Set extension to "s" */
        }
+       colon = strchr(a, ':'); /* Remove :port */
+       if (colon)
+               *colon = '\0';
+
+       ast_string_field_set(p, domain, a);
 
        if (!AST_LIST_EMPTY(&domain_list)) {
                char domain_context[AST_MAX_EXTENSION];