From a1d9867038d3d1912d2e4bed71f9182b5d4301c7 Mon Sep 17 00:00:00 2001 From: bmac901 Date: Mon, 23 Mar 2015 20:46:15 -0500 Subject: [PATCH] Fix for secure websocket registrations. --- kamailio/registrar-role.cfg | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/kamailio/registrar-role.cfg b/kamailio/registrar-role.cfg index 7825e34..d1a9e5c 100644 --- a/kamailio/registrar-role.cfg +++ b/kamailio/registrar-role.cfg @@ -151,13 +151,22 @@ route[ATTEMPT_AUTHORIZATION] $var(Expires) = REGISTRAR_MAX_EXPIRES; } - if($(proto{s.tolower}) == "udp" || $(proto{s.tolower}) == "tcp" || $(proto{s.tolower}) == "tls") { + ## Fix for wss websockets. + ## RFC 7118 says transport MUST be "ws" not "wss" + ## http://tools.ietf.org/html/rfc7118#section-5.2 + if ($(proto{s.tolower}) == 'wss') { + $var(transport) = "ws"; + } else { + $var(transport) = $(proto{s.tolower}); + } + + if($var(transport) == "udp" ||$var(transport) == "tcp" || $var(transport) == "tls") { $var(return_port) = $Rp; } else { $var(return_port) = "5060"; } - $var(params) = "fs_path="; + $var(params) = "fs_path="; ## TODO: fix escaping, some phones send us -- reg-id=1;+sip.instance="urn:uuid:9b8bd513-0e6e-4660-ad5e-5e35d88cc68f"; ## and if we can store it but not use it because it looses the escapes (that weren't there...) @@ -168,7 +177,7 @@ route[ATTEMPT_AUTHORIZATION] if ($avp(AVP_RECV_PARAM) == $null) { $var(fs_contact) = "<" + $(ct{tobody.uri}) + ";" + $var(params) + ">"; } else { - $var(fs_contact) = ""; + $var(fs_contact) = ""; } $var(register_contants) = ' "Presence-Hosts" : "n/a", "Profile-Name" : "sipinterface_1", "Status" : "Registered", "Event-Timestamp" : "' + $TS + '", "Expires" : ' + $var(expires);