Hello, I’m trying to build a voice agent capable to make sip outbound calls. Do I need it to be enabled by an authority? If so, please, could you enable it for my project p_2jchfdfjkw5 ? Or, how to make my project to be authorized to? I’m not a robot and will not spam. So far exploring possibilities with LiveKit telephony. Thank you.
@Zbynek_Tychtl, That 403 is a LiveKit Cloud project-level gate, not a trunk or config problem. Outbound PSTN is authorized per project, and until LiveKit turns it on for yours, the CreateSIPParticipant call that dispatches an outbound call (outbound calls) returns “project is not authorised to initiate outbound calls”:
{
"sip_trunk_id": "<your-trunk-id>",
"sip_call_to": "<phone-number-to-dial>",
"room_name": "my-sip-room"
}
lk sip participant create sip-participant.json
Nothing in that request or your trunk config changes the outcome; the same call works unchanged once the project is enabled.
It is also a different error from the Twilio-side 403 Forbidden that some outbound setups hit, which is fixed by adding LiveKit’s SIP IP ranges to the Twilio ACL (#209); yours is the LiveKit authorization gate, so that IP-ACL fix will not help until the project is enabled.
Thank you Muhammad. I do not know how and where to ask LiveKit to enable my project to make outbound calls.
Please, could you (or anybody else) point me where I can ask LiveKit?
Thank you.
That’s a confusing error since nobody at LiveKit needs to authorise your project to make outbound calls.
Looking at the code, the most likely reason you are seeing this error is because you are not specifying the trunk ID in your call to create SIP participant. We have an example similar to your use case, and the relevant line is:
@Zbynek_Tychtl As it has been said; every Livekit project is able to make outbound calls by default, you don’t need a Livekit staff to enable anything.
The resource that @darryncampbell shared is a good start. Also have a look at the official docs on outbound calling here. Also make good use of the “Ask AI” feature on the docs page.
If if still fails, then share your code so that we can take a look.
Thank you @Kamal_Moha very much! Originally I omitted trunk_id… Thanks!