I've been working on Kamailio websocket integration and I believe I'm having issues with the IPv6 address representation in the Contact header's alias parameter. After Googling, it appears after https://github.com/kamailio/kamailio/commit/814c08f3 the IPv6 contact is represented in brackets []. However, it when using websockets, and the alias= parameter uses brackets [] around and IPv6 address, there are message parsing issues.
With a header such as the following Contact: sip:wstest1@example.com;gr=urn:uuid:26140e27-0ab7-4e65-98e3-3d0909b1434e;alias=[2001:db8:0:1]~48768~6
Asterisk 13.2.0 will give the following error: pjsip:0 <?>: sip_transport. Error processing 1855 bytes packet from UDP 10.77.79.3:5060 : PJSIP syntax error exception when parsing 'Request Line' header on line 12 col 129:
And when sipjs, or jssip are used with either Firefox or Chrome, they send garbage in the ACK request URI:
Kamailio logs something like the following and the ACK cannot be processed: WARNING: sanity [sanity.c:236]: check_ruri_scheme(): failed to parse request uri [�a�{1me▒s�na@50�9���1.�8:�2v0;i��a��=11>7�n7x>10O�2v0~1]
Is it proper to have [] brackets around the IPv6 alias address in the Contact header? Does the value need to be quoted?
If I force the browser to use IPv4, without changing anything else, both jssip and sipjs work perfectly in Firefox and Chrome.