With this change: ```diff diff --git a/src/core/kemi.c b/src/core/kemi.c --- a/src/core/kemi.c +++ b/src/core/kemi.c @@ -1570,6 +1570,7 @@ static int sr_kemi_core_to_proto_helper(sip_msg_t *msg) } } if(parse_uri(uri.s, uri.len, &parsed_uri)!=0) { + LM_ERR("failed to parse nh uri A [%s] len=%i\n", uri.s, uri.len); LM_ERR("failed to parse nh uri [%.*s]\n", uri.len, uri.s); return -1; }
``` Kamailio logs: ``` 20(21) ERROR: <core> [core/kemi.c:1573]: sr_kemi_core_to_proto_helper(): failed to parse nh uri A [Of^U<B2>dUa-li<FA>Uhb<F1>eFae<F1><98> e*rNd<FB>gr^K^X<A2>q<B2>uui<F4>*f2f5<F1>'cf7a6fb!^U1D7-<F2>X5076t^Ufb)bdc562<B3>n,i<FE>'^A4<B7>.11<B0>.15F115'~51<B1>2^U~1 SIP/2.0 Via: SIP/2.0/WSS 192.0.2.198;TH=dcv;branch=z9hG4bK6764789 Max-Forwards: 70 To: sip:abc@example.org;tag=Vbl3bND From: "Online https://sip.example.net" sip:online@example.org;tag=7emhabs13d Call-ID: r3lc3guuas27ja5acl2c CSeq: 8664 ACK Supported: outbound User-Agent: SIP.js/0.7.8 Content-Length: 0 TH: dch
] len=104 20(21) ERROR: <core> [core/kemi.c:1574]: sr_kemi_core_to_proto_helper(): failed to parse nh uri [Of^U<B2>dUa-li<FA>Uhb<F1>eFae<F1><98>e*rNd<FB>gr^K^X<A2>q<B2>uui<F4>*f2f5<F1>'cf7a6fb!^U1D7-<F2>X5076t^Ufb)bdc562<B3>n,i<FE>'^A4<B7>.11<B0>.15F115'~51<B1>2^U~1] ``` That is, to parse_uri(uri.s, uri.len, &parsed_uri) in uri.s is passed the whole message, not just the URI.
Regarding `Via: SIP/2.0/WSS` I want to add, that the SIP-client connects to the webserver over secured websockets. The webserver (nginx) forwards the request to Kamailio over insecured TCP/HTTP connection. Thus: the sip client thinks it is using WSS,, but Kamailio sees a WS-only connection.