--- chan_sip.c 2014/01/12 13:50:24 1.1 +++ chan_sip.c 2014/01/12 14:01:06 @@ -17887,7 +17887,7 @@ uri = ast_strdupa(get_in_brackets(tmp)); - if (parse_uri_legacy_check(uri, "sip:,sips:", &uri, &unused_password, &domain, NULL)) { + if (parse_uri_legacy_check(uri, "sip:,tel:,sips:", &uri, &unused_password, &domain, NULL)) { ast_log(LOG_WARNING, "Not a SIP header (%s)?\n", uri); return SIP_GET_DEST_INVALID_URI; } @@ -17915,7 +17915,7 @@ ast_copy_string(tmpf, sip_get_header(req, "From"), sizeof(tmpf)); if (!ast_strlen_zero(tmpf)) { from = get_in_brackets(tmpf); - if (parse_uri_legacy_check(from, "sip:,sips:", &from, NULL, &domain, NULL)) { + if (parse_uri_legacy_check(from, "sip:,tel:,sips:", &from, NULL, &domain, NULL)) { ast_log(LOG_WARNING, "Not a SIP header (%s)?\n", from); return SIP_GET_DEST_INVALID_URI; } @@ -18799,6 +18799,8 @@ char *t = uri2; if (!strncasecmp(t, "sip:", 4)) t+= 4; + else if (!strncasecmp(t, "tel:", 4)) /* TEL URI INVITE */ + t+= 4; else if (!strncasecmp(t, "sips:", 5)) t += 5; ast_string_field_set(p, exten, t); @@ -18815,7 +18817,7 @@ /* save the URI part of the From header */ ast_string_field_set(p, from, of); - if (parse_uri_legacy_check(of, "sip:,sips:", &name, &unused_password, &domain, NULL)) { + if (parse_uri_legacy_check(of, "sip:,tel:,sips:", &name, &unused_password, &domain, NULL)) { ast_log(LOG_NOTICE, "From address missing 'sip:', using it anyway\n"); }