<div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote">This is likely a matter of semantics, but I think the RFC might favour the current behaviour since the Contact endpoint is expected to be global (i.e. function outside of the current dialog).</div></div></blockquote><div><br></div><div>Not sure how it can be expected behavior to use a SIP UDP 5060 contact over a WSS interface that has no way of talking to SIP UDP 5060. </div></div></div></blockquote><div><br></div><div>Hence the global scope of the Contact endpoint, I guess especially so in a historical context ... for devices limited to a handful of connectivity options, such as WSS, it _might_ be expected to follow a rport approach. As with some SIP concepts, there's a big gap between original spec/RFC intent and the field implementations. Not really sure where this one stands!</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div>How did you modify SIP.js? </div></div></div></blockquote><div><br></div><div>I've only modified the linked demo (<a href="https://sipjs.com/guides/full-demo-app/" target="_blank">https://sipjs.com/guides/full-demo-app/</a>) to see how it behaves with a stock FS install, here's the resulting fiddle: <a href="http://jsfiddle.net/o890yfs7/" target="_blank">http://jsfiddle.net/o890yfs7/</a> -- line #3 is the host on which the Sofia profile is listening to requests. I've tested against a Docker instance (using host network mode) as follows:</div><div><br></div><div>FROM debian:buster<br><br>RUN apt-get update && apt-get install -y gnupg2 wget lsb-release<br>RUN wget -O - <a href="https://files.freeswitch.org/repo/deb/debian-release/fsstretch-archive-keyring.asc">https://files.freeswitch.org/repo/deb/debian-release/fsstretch-archive-keyring.asc</a> | apt-key add -<br>RUN echo "deb <a href="http://files.freeswitch.org/repo/deb/debian-release/">http://files.freeswitch.org/repo/deb/debian-release/</a> `lsb_release -sc` main" > /etc/apt/sources.list.d/freeswitch.list<br>RUN echo "deb-src <a href="http://files.freeswitch.org/repo/deb/debian-release/">http://files.freeswitch.org/repo/deb/debian-release/</a> `lsb_release -sc` main" >> /etc/apt/sources.list.d/freeswitch.list<br>RUN apt-get update && apt-get install -y freeswitch-meta-all<br><br>RUN rm -rf /etc/freeswitch/sip_profiles/*ipv6*<br><br>COPY files /<br><br>CMD ["freeswitch", "-nonat"]<br></div><div><br></div><div>There's an intentional 10 seconds delay in the default dialplan you can use to test the CANCEL behaviour while the other extension is ringing.</div></div></div>