Inbound calling on BYOC
# support
k
A few months ago, I set up a BYOC SIP trunk. Outbound worked fine, but inbound failed. I sent packet exchanges to support to investigate. Support responded that it was a known issue, and I notice that the documentation (https://docs.vapi.ai/advanced/sip/sip-trunk) changed since I started to include
Copy code
"inboundEnabled": false
I tired again a few days ago. There is no way for me to get the "credential_id" for an existing trunk via the web front end, which seems to be required for inbound calling as I need to include it in the SIP contact? When creating a new trunk via API as described in the documentation, I was unable get to it to create a trunk if I set
Copy code
"inboundEnabled": true
. It seems that I NEEDED to set inbound to false to create the trunk. Is inbound actually supported for BYOC SIP trunks?
v
Inbound calling is supported for BYOC SIP trunks if configured as described in the documentation. When creating a new trunk via the API, save the returned
credential_id
and use it in your SIP URI for inbound routing:
Copy code
json
{
  "provider": "byo-sip-trunk",
  "name": "Your Trunk Name",
  "gateways": [
    {
      "ip": "YOUR_SIP_GATEWAY_IP",
      "inboundEnabled": true
    }
  ],
  "outboundAuthenticationPlan": {
    "authUsername": "YOUR_SIP_USERNAME",
    "authPassword": "YOUR_SIP_PASSWORD"
  }
}
Ensure your SIP provider forwards calls to
{phoneNumber}@<credential_id>.sip.vapi.ai
and that all signaling IPs are allowlisted.
For existing trunks, the documentation does not specify a way to retrieve the credential ID; you may need to recreate the trunk to obtain it. See the [Vapi SIP trunk documentation](https://docs.vapi.ai/advanced/sip/sip-trunk) for full details. Source: - [Vapi SIP trunk documentation](https://docs.vapi.ai/advanced/sip/sip-trunk)
m
Yeah, what you’re hitting is real — inbound for BYOC trunks isn’t fully exposed yet, so the flow feels broken. That’s why you can only create with "inboundEnabled": false and can’t access the credential_id from the UI. Inbound is partially supported, but usually needs backend provisioning from support to actually work. Which provider are you using, and how are you trying to pass the credential (Contact header or URI)? @Key
k
We're using Bizvoip.co.za When I tested initially I was using the URI to pass the credentials, as the docs recommend. {phoneNumber}@.sip.vapi.ai This was a few months ago now. My recent tests never got that far, as I wasn't able to get a trunk configured via API with "inboundEnabled" : true, and I'm not able to get the credentials for our existing trunks to test with them. Is there perhaps an API available to list existing trunks and their credential_ids, or is this only available at creation?
m
Yeah your Bizvoip setup is actually right — that URI format is still correct. The problem is you can’t fetch the credential_id after creation (API or UI), it’s only returned when the trunk is created. Also inbound via API is still a bit rough, so the usual flow is create with "inboundEnabled": false then get support to enable inbound + attach credentials. At this point, either recreate the trunk and save the credential_id, or ask support to pull it for you. If you want, I can help you sort this out faster, easier to just run through it together 👍 Kindly let's discuss more privately @Key
k
No need for a private discussion, You've given me enough information that I think I understand. 👍 I'll get some time to test again in the next few days, and I'll reach out to support with the specifics to be enabled when I do. Thank you so much for your response.
m
Sounds like a solid plan 👍 once you recreate the trunk and have the credential_id, it should fall into place. When you test, just make sure Bizvoip is hitting the right SIP URI and share a trace with support if needed. If anything feels off, drop it here and I’ll help you take a look. @Key