The Polycom phone can be configured to use TCP for its SIP signaling by setting the Outbound Proxy Address (to the proxy) and Transport (to TCPpreferred), and for each Line, setting the Server Transport (to TCPpreferred). However, these settings do not correctly control how NOTIFYs for dialog events are sent.
Referring to the SIP messages listed in the attached merged.xml:
A SUBSCRIBE is sent via TCP as frameId 1. The phone sends the response (frameId 2) correctly via TCP, and the Contact header also specifies TCP: Contact: <sip:
173@10.1.1.189;transport=tcp>. So far, so good.
But the first NOTIFY of the subscription (frameId 3) uses incorrect transport: (1) the request-URI is "sip:
sipXrls@10.1.20.3:54021;transport=udp" even though the contact of the SUBSCRIBE request is "sip:
sipXrls@10.1.20.3:54021", and (2) the contact of the NOTIFY is "<sip:
173@10.1.1.189;transport=udp>" even though the phone is configured for TCP transport.
Since NOTIFY is a dialog-updating request, the subscriber sends all further SUBSCRIBEs to <sip:
173@10.1.1.189;transport=udp>.