-Sat May 09 16:04:04 UTC 2020
+Tue May 12 18:04:14 UTC 2020
for (m = sip->sip_contact; m; m = m->m_next) {
if (m->m_url->url_type == url_sip ||
+ m->m_url->url_type == url_urn ||
m->m_url->url_type == url_sips)
break;
}
url_sanitize(dp);
- if (dp == NULL || dp->url_type == url_sip || dp->url_type == url_sips) {
+ if (dp == NULL || dp->url_type == url_sip || dp->url_type == url_sips || dp->url_type == url_urn) {
if (agent->sa_default_proxy)
su_free(home, agent->sa_default_proxy);
agent->sa_default_proxy = dp;
}
if (!(url = url_hdup(self->sa_home, uri->us_url)) ||
- (url->url_type != url_sip && url->url_type != url_sips)) {
+ (url->url_type != url_sip && url->url_type != url_sips && url->url_type != url_urn)) {
if (url_string_p(uri))
SU_DEBUG_1(("nta: %s: invalid bind URL\n", uri->us_str));
else
tpn->tpn_host = url->url_host;
tpn->tpn_port = url_port(url);
- if (url->url_type == url_sip) {
+ if (url->url_type == url_sip || url->url_type == url_urn) {
tpn->tpn_proto = "*";
tports = tports_sip;
if (!tpn->tpn_port || !tpn->tpn_port[0])
}
if (url->url_type != url_sip &&
+ url->url_type != url_urn &&
url->url_type != url_sips &&
url->url_type != url_im &&
url->url_type != url_pres) {
enum url_type_e type = (enum url_type_e)m->m_url->url_type;
return
type == url_sip ||
+ type == url_urn ||
type == url_sips ||
(type == url_tel &&
(method == sip_method_invite || method == sip_method_message)) ||
for (m = sip->sip_contact; m; m = m->m_next) {
if (m->m_url->url_type != url_sip &&
+ m->m_url->url_type != url_urn &&
m->m_url->url_type != url_sips)
continue;
switch (sip->sip_request->rq_url->url_type) {
case url_sip:
+ case url_urn:
case url_sips:
case url_im:
case url_pres:
srs->srs_url = u = url_hdup(srs->srs_home, (url_t *)uri);
if (u == NULL)
return sres_sip_fatal(srs, SRES_SIP_ERR_BAD_URI);
- if (u->url_type != url_sip && u->url_type != url_sips)
+ if (u->url_type != url_sip && u->url_type != url_urn && u->url_type != url_sips)
return sres_sip_fatal(srs, SRES_SIP_ERR_BAD_URI);
/* RFC 3263:
url_any = 0, /**< "*" */
url_sip, /**< "sip:". @sa @RFC3261 */
url_sips, /**< "sips:". @sa @RFC3261 */
+ url_urn, /**< "urn:". @sa @RFC6061 */
url_tel, /**< "tel:" @sa RFC3966 */
url_fax, /**< "fax:". @note Obsolete. @sa @RFC2806 */
url_modem, /**< "modem:". @note Obsolete. @sa @RFC2806 */
BEGIN();
TEST_S(url_scheme(url_sip), "sip");
+ TEST_S(url_scheme(url_urn), "urn");
TEST_S(url_scheme(url_sips), "sips");
memset(url, 255, sizeof url);
case url_cid: return "cid";
case url_msrp: return "msrp";
case url_msrps: return "msrps";
+ case url_urn: return "urn";
case url_wv: return "wv";
default:
assert(url_type == url_unknown);
test_scheme(sip); test_scheme(sips); break;
case 't': case 'T':
test_scheme(tel); break;
+ case 'u': case 'U':
+ test_scheme(urn); break;
case 'w': case 'W':
test_scheme(wv); break;
return "9999"; /* XXXX */
case url_tel:
+ case url_urn:
case url_fax:
case url_modem:
case url_im:
case url_im:
case url_pres:
case url_cid:
+ case url_urn:
case url_wv:
default: /* Unknown scheme */