--- chan_sip.c 2011/06/05 20:51:31 1.1 +++ chan_sip.c 2011/06/05 20:58:56 @@ -4447,8 +4447,8 @@ if ((c = strchr(uri, '@')) == NULL) { /* domain-only URI, according to the SIP RFC. */ - dom = uri; - name = ""; + dom = ""; + name = uri; } else { *c++ = '\0'; dom = c; @@ -13374,6 +13374,8 @@ if (!strncasecmp(uri, "sip:", 4)) { uri += 4; + } else if (!strncasecmp(uri, "tel:", 4)) { + uri += 4; } else if (!strncasecmp(uri, "sips:", 5)) { uri += 5; } else { @@ -13395,6 +13397,8 @@ if (!ast_strlen_zero(from)) { if (!strncasecmp(from, "sip:", 4)) { from += 4; + } else if (!strncasecmp(from, "tel:", 4)) { + from += 4; } else if (!strncasecmp(from, "sips:", 5)) { from += 5; } else { @@ -14206,6 +14210,8 @@ char *t = uri2; if (!strncasecmp(t, "sip:", 4)) t+= 4; + if (!strncasecmp(t, "tel:", 4)) + t+= 4; else if (!strncasecmp(t, "sips:", 5)) t += 5; ast_string_field_set(p, exten, t); @@ -14219,7 +14225,7 @@ ast_string_field_set(p, from, of); /* ignore all fields but name */ - if (parse_uri(of, "sip:,sips:", &of, &dummy, &domain, &dummy, &dummy, NULL)) { + if (parse_uri(of, "sip:,tel:,sips:", &of, &dummy, &domain, &dummy, &dummy, NULL)) { ast_log(LOG_NOTICE, "From address missing 'sip:', using it anyway\n"); }