Hello, reporting a few issues with the SIP APIs.
- Looks like the Open AI SIP servers require some level of TLS signalling but reject RTP encryption leaving us with unencrypted audio over the open internet. And to top it off OpenAI server is sending a Contact header without
transport=tlsand further optionally could use asips:URI as per the SIP RFC (especially when the endpoint only supports TLS). Here is what OpenAI sends in Contact now:
Contact: <sip:OAI@sip.api.openai.com:5061>
This breaks some SIP implementations that would send unencrypted signals to port 5061 when the socket dies for some reason. I suggest you either encrypt everything or don’t encrypt anything, ideally letting the users choose in the admin panels plus allowing configurable transport. I understand that transport param is deprecated but it was used in the document here https://platform.openai.com/docs/guides/realtime-sip and is still widely used as a hint to the stack. Both sips and transport can cause compatibility issues so it is advised to support any permutation.
- The bigger issue I have is that the OpenAI doesn’t send useful error message, either in SIP or TLS. It just sends error codes 400, 408 interchangeably and occasionally just hangs up with no Reason header. A helpful error header would help a lot. And ideally there should be debug logs available in the admin panels.
- Last but not least we need IP ranges to configure firewalls properly, IPs change often, media is one subnet, signalling is another, we need both ranges.
Thank you.