Skip to main content

I am experiencing issues with the createSIPRegistration API when attempting to register a SIP device using the following endpoint: createSIPRegistration API.

Issue Details:

  1. Error when passing device.id in the request body:

    • Request fails with the following error:

    {
    "errorCode": "SPR-123",
    "message": "device is not allowed for Web.",
    "errors": [
    {
    "errorCode": "SPR-123",
    "message": "device is not allowed for Web.",
    "applicationType": "Web",
    "parameterName": "device"
    }
    ],
    "applicationType": "Web",
    "parameterName": "device"
    }
  2. Error when not passing device.id and setting sipInfo.transport as TCP or TLS:

    • Response: 503 Service Unavailable.

  3. Error when setting sipInfo.transport as UDP:

    • Request fails with the following error:

    {
    "errorCode": "SPR-112",
    "message": "Client edition is not compatible with current Brand",
    "errors": [
    {
    "errorCode": "SPR-112",
    "message": "Client edition is not compatible with current Brand"
    }
    ]
    }
  4. Working case:

    • When using WSS as sipInfo.transport, the registration succeeds.

    • However, my third-party service (LiveKit) only supports TCP, TLS, and UDP.

Suspected Cause:

I believe these issues may be related to my device type, but I haven't found a way to modify or resolve the issue.

Questions & Assistance Needed:

  1. How can I change my device type to ensure compatibility with Web-based SIP registration?

  2. Is there a specific configuration required to use TCP, TLS, or UDP transport successfully?

  3. Are there any restrictions on device compatibility that prevent using non-WSS transports?

Any guidance or suggested solutions would be greatly appreciated. Thank you for your support!

 

I can confirm with you that currently we don’t support 3rd party app to register a SIP device using other protocols than the WSS. The non-supported protocols should be removed from the documentation though.


Thanks for answer ​@PhongVu . 
The goal is not register SIP device actually. The goal is, to ensure LiveKit can INVITE RingCentral phone number into its room. (See: https://docs.livekit.io/sip/making-calls/)

Livekit requires a SipTrunk for the number it will use to make an outbound call. So we simply need an oubound sip trunk of the RingCentral phone number. 
Twilio does support it, (see: https://docs.livekit.io/agents/quickstarts/outbound-calls/)


There is confusion about SIP trunk vs SIP client/device.

I believe the API is to create sip device/client, which is not a sip trunk.

If you need credentials for sip devices/client and you want TLS/TCP, you may refer to the readme file of https://github.com/ringcentral/ringcentral-softphone-ts?tab=readme-ov-file#where-to-get-credentials

Scroll down to the section with title: “where to get credentials”.

But again, this way you get credentials for SIP device. It may not work as a SIP trunk. You can try though.

 

Tyler


Perhaps we went down to a wrong road. Thus questions might be a bit confusing 🙂.

The ultimate question is, how can we make a call from LiveKit on behalf of RingCentral phone number? 

Here is a LiveKit + Twilio example: https://docs.livekit.io/sip/trunk-outbound/


I have confirmed with my colleagues that we don’t open SIP trunk to 3rd party developers.

If SIP trunk is the only way that livekit could work with existing telephony system, then there is no direct way to make livekit work with RingCentral.

 

Better redirect the question to livekit to let them clarify: is SIP trunk the only way that they support? What if SIP and media are handled by other library already? What is the way to integrate with livekit?


Reply