From: Olle Johansson Date: Mon, 27 Mar 2006 23:13:31 +0000 (+0000) Subject: Issue #6409 - Make calls to URI without username go to "s" extension (imported from... X-Git-Tag: 1.4.0-beta1~2312 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=450bc8dad6d8311808634b2d06f5727af84bafb7;p=thirdparty%2Fasterisk.git Issue #6409 - Make calls to URI without username go to "s" extension (imported from 1.2) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@15375 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 0e47c6ecc9..bf236f853b 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -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];