Using Zentrunk, Plivo’s SIP trunking platform, you can terminate calls from Twilio using Plivo as the carrier. This guide will help you to set up Plivo as a BYOC trunk on the Twilio platform, and whenever you terminate calls from Twilio using the BYOC trunk, Plivo will act as the carrier for those calls.To implement this functionality, you must:
Create a Plivo outbound trunk on the Plivo platform
You need to set up the trunk authentication on the Plivo Console to use Zentrunk to terminate calls. Authentication of your trunk ensures that Zentrunk only accepts traffic that your infrastructure sends securely. You can configure your trunk to be authenticated by an IP Access Control List, a Credentials List, or both. For more information, please check the step-by-step GIF & instructions below.
On the Outbound Trunks page in your Plivo Console, click “Create New Outbound Trunk”.
In the New Trunk window, enter a name for your trunk (for example, Twilio Termination).
Note: By default, the trunk is enabled.
Under Trunk Authentication, to Create an IP Access Control List:
Click ”+ Add New IP ACL”.
In the ‘Create New IP Access Control List’ window, enter the name for your IP Access Control List (for example, Twilio IPs) and then provide the following IP addresses to be whitelisted in the IP Address List field.
54.244.51.0
54.244.51.1
54.244.51.2
54.244.51.3
Note: In the “IP Access Control List” you can specify the list of IP addresses from which the SIP Invite will be accepted for this trunk.
Click “Create ACL” to save and add your IP Access Control List.
Select the IP Group, and click “Create Trunk”. Your Outbound trunk will be created.
Once the trunk is created, copy and store the Termination SIP Domain URI that ends with .zt.plivo.com. This will be useful while creating the BYOC trunk on the Twilio Platform in the next section.
You can follow the below GIF and instructions set to create a BYOC trunk on the Twilio platform and set up the Plivo Zentrunk which you created in the previous step as the BYOC trunk.
On the BYOC Trunk page, click on the ”+” button to create a new trunk.
Give a name for the trunk and click the “Create BYOC Trunk” button.
In the “Origination Connection Policy (to your Carrier)” section, click on the ”+” button to create a new Origination Connection Policy
Provide a name for the origination connection policy and click on the “create” button.
Click on the ”+” button to create a new origination target and provide the previously copied Plivo’s Termination SIP Domain URI with “sip:” as a prefix.
Click on the “Create” button to create a new Origination Target.
Click on “Save” in the BYOC Trunks page to save the new create BYOC Trunk.
Also, if you are interested in integrating your PBX/SBC with Plivo outbound trunks, you can click here to sign up for free and create your first SIP trunk today!
Using the Plivo SIP-trunking platform, you can use your Plivo numbers to route calls to the Twilio voice platform. In this guide, we will walk you through how to set up a Plivo number for voice origination via Twilio’s BYON (Bring Your Own Number) service for routing the calls to a Twilio SIP Domain.To achieve this functionality, you must complete the following two configurations on the Twilio and the Plivo platforms:
Create a Twilio SIP domain with an ACL (with Plivo IPs).
Create a Plivo inbound trunk and assign it to a Plivo number.
Create an ACL to authenticate Plivo IPs with Twilio
To send traffic to a Twilio SIP domain from Plivo, the traffic must be first authenticated with an IP whitelist or username and password.To create an IP whitelist:
Navigate to the IP Access Control Lists page here.
In the “New Access Control List” page, Enter a friendly name that will help you remember the IP group and then add in the following Plivo IPs:
Create a SIP domain and choose the ACL (with Plivo IPs)
You need to follow the below instructions to complete the configuration on the Twilio side:
You can navigate to the Twilio SIP Domains page here and provide a domain name for the new SIP domain.
Choose the IP ACL (with Plivo IPs) you created in the previous step.
Copy and store the SIP URI. This will be helpful while creating the trunk on the Plivo platform (next step).
Note: Twilio SIP domain is a custom DNS host name associated with your Twilio account that can accept SIP traffic. This maps a domain name to the IP address (IPv4) of the computer hosting the domain.
Create a Plivo inbound trunk and assign it to a Plivo number.
To create an Inbound Trunk:
On the Inbound Trunks page in your Plivo Console, click Create New Inbound Trunk.
On the New Trunk window, enter a name for your trunk (for example, Twilio Origination).
Note: The Enabled checkbox is selected by default.
Select the Primary URI and Fallback URI of your PBX.
Note: The Primary URI is the FQDN or IP address to which all calls are forwarded first. If the Primary URI is unresponsive, the calls will be forwarded to the Fallback URI. Please note that the Fallback URI is optional.
To add a new Primary or Fallback URI, click Add new URI.
On the Create URI window, enter a name for your URI (for example, Twilio_origin), and then enter the SIP URI of the Twilio SIP domain (the one which you stored while configuring the SIP domain in the previous section).
To enable Authentication, click on the Authentication option and provide username & password.
Click Create URI to save and add your URI.
Once you have created and selected your Primary and Fallback URI, click Create Trunk. Your inbound trunk will be created.
To assign an inbound trunk to a Plivo Number:
Once you click on Create Trunk, in the next window you can link your trunk with Phone numbers.
You can either link the trunk with your existing phone numbers in your account or buy a new phone number and link the trunk.
If you wish to use your existing numbers, select the phone numbers under the Current Phone Numbers section, and click Link Selected Numbers.
If you wish to use a new number, navigate to the Buy New Number section and choose the country, prefix, type, capability, and click on Search.
Select a Phone number and click Buy Number.
Once you click on Buy Number, the number will be added to your account and the same will be linked with your inbound trunk.
To know more about buying a Plivo Phone number, please navigate to the Buy a number section.
Now, your setup is complete. You can make calls to the Plivo number and see that the calls are routed to the Twilio SIP domain to execute the webhook or the application set up at Twilio end.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Plivo","colors":{"primary":"#323dfe","light":"#5b6bff","dark":"#2830cc"},"logo":{"light":"https://mintcdn.com/plivo/nlRVupwxTfmW2fPy/logo/newlogodark.svg?fit=max\u0026auto=format\u0026n=nlRVupwxTfmW2fPy\u0026q=85\u0026s=60816eb957f6b8962ef15eddde76449a","dark":"https://mintcdn.com/plivo/nlRVupwxTfmW2fPy/logo/newlogolight.svg?fit=max\u0026auto=format\u0026n=nlRVupwxTfmW2fPy\u0026q=85\u0026s=27bd82e8f16bad829a0536c7a8fa9374","href":"https://www.plivo.com/"},"favicon":"https://mintcdn.com/plivo/dmvKeqcj6my-kDvH/favicon.svg?fit=max\u0026auto=format\u0026n=dmvKeqcj6my-kDvH\u0026q=85\u0026s=1416a3d8d3d1f8f94fb88979b6b327e9","background":{"decoration":"grid"},"navbar":{"links":[{"href":"https://support.plivo.com/hc/en-us","label":"Support"},{"href":"https://cx.plivo.com/home","label":"Console"},{"href":"https://cx.plivo.com/signup","label":"Sign Up"}]},"footer":{"socials":{"x":"https://twitter.com/plivo","github":"https://github.com/plivo","linkedin":"https://www.linkedin.com/company/plivo-inc","facebook":"https://fb.com/plivo"}},"fonts":{"family":"Inter"},"icons":{"library":"lucide"},"integrations":{"ga4":{"measurementId":"G-YLW0ZWN2T7"},"posthog":{"apiKey":"phc_5ISIYiMfoaGh9TVGt9ydU6g91tlKvvj1qrDIcC4vKGP","apiHost":"https://f.plivo.com"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"plivo","hasAudioNarration":false,"actualSubdomain":"plivo","customDomains":["plivo.com"],"gitSource":{"type":"github","owner":"plivo-dev","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ada0d89b052f87fe57ecc7d","collectionId":"aab34c57-2955-491f-9bfc-225c783e9a94","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ada0d89b052f87fe57ecc7d"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ada0d89b052f87fe57ecc7d","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"Programmable APIs","count":284},{"language":"default","tag":"Voice API","count":91},{"language":"default","tag":"Concepts","count":64},{"language":"default","tag":"Messaging API","count":61},{"language":"default","tag":"Integrations","count":44},{"language":"default","tag":"All integrations","count":43},{"language":"default","tag":"API Reference","count":42},{"language":"default","tag":"SIP Trunking","count":38},{"language":"default","tag":"Audio Streaming","count":30},{"language":"default","tag":"Voice Tutorials","count":28}]},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Sora';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/sora/v17/xMQ9uFFYT72X5wkB_18qmnndmSdSnh2BAfO5mnuyOo1lfiQwWa-xsaQ.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Sora';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/sora/v17/xMQ9uFFYT72X5wkB_18qmnndmSdSnh2BAfO5mnuyOo1lfiQwV6-x.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Sora';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/sora/v17/xMQ9uFFYT72X5wkB_18qmnndmSdSnh2BAfO5mnuyOo1lfiQwWa-xsaQ.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Sora';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/sora/v17/xMQ9uFFYT72X5wkB_18qmnndmSdSnh2BAfO5mnuyOo1lfiQwV6-x.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Sora';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/sora/v17/xMQ9uFFYT72X5wkB_18qmnndmSdSnh2BAfO5mnuyOo1lfiQwWa-xsaQ.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Sora';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/sora/v17/xMQ9uFFYT72X5wkB_18qmnndmSdSnh2BAfO5mnuyOo1lfiQwV6-x.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Sora';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/sora/v17/xMQ9uFFYT72X5wkB_18qmnndmSdSnh2BAfO5mnuyOo1lfiQwWa-xsaQ.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Sora';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/sora/v17/xMQ9uFFYT72X5wkB_18qmnndmSdSnh2BAfO5mnuyOo1lfiQwV6-x.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n@keyframes dcon-scroll{to{transform:translateX(-240px)}}@keyframes dcon-ping{0%{opacity:.8;transform:scale(1)}75%,to{opacity:0;transform:scale(2.2)}}:root{--plivo-blue:#323dfe;--plivo-blue-text:var(--plivo-blue);--plivo-font-mono:'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;--plivo-font-display:'Sora', ui-sans-serif, system-ui, sans-serif;--plivo-ink:rgba(0, 0, 0, 0.55)}.dark{--plivo-ink:rgba(255, 255, 255, 0.5);--plivo-blue-text:#6b7cff}.card,.prose *,[class*=rounded],blockquote,button,code,img,input,pre,table,td,th{border-radius:2px!important}.rounded-full,[class*=rounded-full],[style*=\"border-radius: 50%\"],[style*=\"border-radius:50%\"]{border-radius:9999px!important}code,kbd,pre{font-family:var(--plivo-font-mono)!important}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em!important}main h1,main h2,main h3,main h4{font-weight:600!important}.card [class*=title],.card h2,.card h3,.nav-tabs-item,a[class*=nav-tabs],h1,h2,h3,h4,h5,h6{font-family:var(--plivo-font-display)!important}div:has(>.nav-tabs){height:2.25rem!important}.nav-tabs{gap:1.25rem!important}.nav-tabs-item{font-size:13px!important}.nav-tabs-item>div[class*=bg-primary]{background-color:var(--plivo-ink)!important}main h1::after{content:'';display:block;width:2.75rem;height:2px;margin-top:.75rem;background:var(--plivo-blue)}.prose>p:first-of-type+h2,nav[aria-label=Breadcrumb]{font-family:var(--plivo-font-mono)!important}.card{position:relative;transition:border-color 160ms ease,box-shadow 160ms ease,transform 120ms ease!important}.card::after,.card::before{content:'';position:absolute;width:11px;height:11px;pointer-events:none;transition:border-color 160ms ease;z-index:1}.card::before{top:6px;left:6px;border-left:1px solid var(--plivo-ink);border-top:1px solid var(--plivo-ink)}.card::after{right:6px;bottom:6px;border-right:1px solid var(--plivo-ink);border-bottom:1px solid var(--plivo-ink)}.card:hover{transform:translateY(1px)}.card:hover::after,.card:hover::before{border-color:var(--plivo-blue)}.card .card-icon,.card svg[class*=text-primary]{color:var(--plivo-blue)!important}.card [data-component-part=card-content]{font-size:.8rem!important;line-height:1.5!important;margin-top:.55rem!important}.prose pre,pre{border:0!important}.mdx-content a[href]:not([class*=not-prose]):not([class*=card]){text-decoration-line:underline!important;text-decoration-thickness:1px!important;text-underline-offset:2px!important}.mdx-content a[href]:not([class*=not-prose]):not([class*=card]),.mdx-content a[href]:not([class*=not-prose]):not([class*=card]):hover{color:inherit!important;text-decoration-color:currentColor!important;border-bottom:0!important}a.button,a[class*=bg-primary-]:not([class*=\"/\"]):not([class*=text-]),a[role=button],button.button{font-family:var(--plivo-font-mono)!important;letter-spacing:.06em}#sidebar a[class*=bg-primary],[class*=sidebar] a[class*=bg-primary]{background-color:color-mix(in srgb,var(--plivo-ink) 8%,transparent)!important;color:var(--plivo-blue-text)!important}#sidebar a.nav-anchor,#sidebar ul li a,#sidebar ul li button{padding-top:3px!important;padding-bottom:3px!important;font-size:13px!important;line-height:20px!important}#sidebar a.nav-anchor>div:first-child{padding:2px!important;background:0 0!important;box-shadow:none!important;border:0!important;color:inherit!important}#sidebar a.nav-anchor>div:first-child svg{color:inherit!important;background-color:currentColor!important}#sidebar a.nav-anchor:hover>div:first-child svg{background-color:currentColor!important}#sidebar .sidebar-group-header{margin-bottom:.4rem!important}#sidebar div:has(>.sidebar-group-header){margin-top:1rem!important}#table-of-contents a{padding-top:2px!important;padding-bottom:2px!important;font-size:13px!important;line-height:20px!important}#table-of-contents a[aria-current=location]{color:rgba(15,16,20,.95)!important;font-weight:700!important;text-shadow:none!important}.dark #table-of-contents a[aria-current=location]{color:rgba(255,255,255,.92)!important}#sidebar a:focus-visible,#sidebar button:focus-visible,#table-of-contents a:focus-visible,.card:focus-visible,.mdx-content a[href]:focus-visible,.nav-tabs-item:focus-visible,a.button:focus-visible,a[role=button]:focus-visible{outline:2px solid var(--plivo-blue-text)!important;outline-offset:2px!important;border-radius:2px}.dcon-frame::before{content:'';position:absolute;inset:-10px;pointer-events:none;opacity:.55;background-repeat:no-repeat;background-image:linear-gradient(var(--plivo-ink),var(--plivo-ink)),linear-gradient(var(--plivo-ink),var(--plivo-ink)),linear-gradient(var(--plivo-ink),var(--plivo-ink)),linear-gradient(var(--plivo-ink),var(--plivo-ink)),linear-gradient(var(--plivo-ink),var(--plivo-ink)),linear-gradient(var(--plivo-ink),var(--plivo-ink)),linear-gradient(var(--plivo-ink),var(--plivo-ink)),linear-gradient(var(--plivo-ink),var(--plivo-ink));background-size:12px 1px,1px 12px,12px 1px,1px 12px,12px 1px,1px 12px,12px 1px,1px 12px;background-position:left top,left top,right top,right top,left bottom,left bottom,right bottom,right bottom}.dcon{--dcon-ph:64%;position:relative;overflow:hidden;border:1px solid rgba(0,0,0,.14);border-radius:2px;background:#fff;box-shadow:0 1px 0 rgba(0,0,0,.02),0 30px 60px -30px rgba(0,0,0,.28);font-family:var(--plivo-font-mono)}.dark .dcon{border-color:rgba(255,255,255,.16);background:#0d0f16;box-shadow:0 1px 0 rgba(0,0,0,.2),0 30px 60px -30px rgba(0,0,0,.6)}.dcon__bar{display:flex;align-items:center;gap:8px;height:30px;padding:0 10px;border-bottom:1px solid rgba(0,0,0,.1);font-size:10px;letter-spacing:.08em;color:rgba(0,0,0,.55)}.dark .dcon__bar{color:rgba(255,255,255,.6)}.dcon__bar-name{flex:1}.dcon__bar-tag{color:var(--plivo-blue-text)}.dcon__led{position:relative;flex:none;width:6px;height:6px;border-radius:1px;background:var(--plivo-blue);box-shadow:0 0 6px rgba(50,61,254,.5)}.dcon__led::after{content:'';position:absolute;inset:-1px;border:1px solid var(--plivo-blue);border-radius:1px;animation:dcon-ping 2.4s cubic-bezier(0,0,.2,1) infinite}.dcon__scope{position:relative;height:120px;overflow:hidden;border-bottom:1px solid rgba(0,0,0,.1)}.dark .dcon__bar,.dark .dcon__scope{border-color:rgba(255,255,255,.12)}.dcon__scope::after,.dcon__scope::before{content:'';position:absolute;left:0;right:0}.dcon__scope::before{top:57px;height:1px;background:rgba(0,0,0,.1)}.dark .dcon__scope::before{background:rgba(255,255,255,.1)}.dcon__scope::after{bottom:0;height:14px;border-top:1px solid rgba(0,0,0,.08);background-image:repeating-linear-gradient(to right,rgba(0,0,0,.35) 0 1px,transparent 1px 28px),repeating-linear-gradient(to right,rgba(0,0,0,.16) 0 1px,transparent 1px 7px);background-size:100% 6px,100% 3px;background-repeat:no-repeat;background-position:0 0,0 0}.dark .dcon__scope::after{border-color:rgba(255,255,255,.08);background-image:repeating-linear-gradient(to right,rgba(255,255,255,.35) 0 1px,transparent 1px 28px),repeating-linear-gradient(to right,rgba(255,255,255,.16) 0 1px,transparent 1px 7px)}.dcon__litmask,.dcon__trace{position:absolute;left:0;top:8px;bottom:14px}.dcon__trace{width:calc(100% + 240px);background-image:url(\"data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20240%2056'%3E%3Cg%20fill='%23111114'%20fill-opacity='0.32'%3E%3Crect%20x='0'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='3'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='6'%20y='18'%20width='2'%20height='20'/%3E%3Crect%20x='9'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='12'%20y='25'%20width='2'%20height='6'/%3E%3Crect%20x='15'%20y='12'%20width='2'%20height='32'/%3E%3Crect%20x='18'%20y='4'%20width='2'%20height='48'/%3E%3Crect%20x='21'%20y='3'%20width='2'%20height='50'/%3E%3Crect%20x='24'%20y='11'%20width='2'%20height='34'/%3E%3Crect%20x='27'%20y='23'%20width='2'%20height='10'/%3E%3Crect%20x='30'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='33'%20y='18'%20width='2'%20height='20'/%3E%3Crect%20x='36'%20y='20'%20width='2'%20height='16'/%3E%3Crect%20x='39'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='42'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='45'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='48'%20y='21'%20width='2'%20height='14'/%3E%3Crect%20x='51'%20y='11'%20width='2'%20height='34'/%3E%3Crect%20x='54'%20y='5'%20width='2'%20height='46'/%3E%3Crect%20x='57'%20y='6'%20width='2'%20height='44'/%3E%3Crect%20x='60'%20y='16'%20width='2'%20height='24'/%3E%3Crect%20x='63'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='66'%20y='14'%20width='2'%20height='28'/%3E%3Crect%20x='69'%20y='10'%20width='2'%20height='36'/%3E%3Crect%20x='72'%20y='13'%20width='2'%20height='30'/%3E%3Crect%20x='75'%20y='20'%20width='2'%20height='16'/%3E%3Crect%20x='78'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='81'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='84'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='87'%20y='15'%20width='2'%20height='26'/%3E%3Crect%20x='90'%20y='11'%20width='2'%20height='34'/%3E%3Crect%20x='93'%20y='14'%20width='2'%20height='28'/%3E%3Crect%20x='96'%20y='24'%20width='2'%20height='8'/%3E%3Crect%20x='99'%20y='18'%20width='2'%20height='20'/%3E%3Crect%20x='102'%20y='7'%20width='2'%20height='42'/%3E%3Crect%20x='105'%20y='4'%20width='2'%20height='48'/%3E%3Crect%20x='108'%20y='9'%20width='2'%20height='38'/%3E%3Crect%20x='111'%20y='19'%20width='2'%20height='18'/%3E%3Crect%20x='114'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='117'%20y='25'%20width='2'%20height='6'/%3E%3Crect%20x='120'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='123'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='126'%20y='18'%20width='2'%20height='20'/%3E%3Crect%20x='129'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='132'%20y='25'%20width='2'%20height='6'/%3E%3Crect%20x='135'%20y='12'%20width='2'%20height='32'/%3E%3Crect%20x='138'%20y='4'%20width='2'%20height='48'/%3E%3Crect%20x='141'%20y='3'%20width='2'%20height='50'/%3E%3Crect%20x='144'%20y='11'%20width='2'%20height='34'/%3E%3Crect%20x='147'%20y='23'%20width='2'%20height='10'/%3E%3Crect%20x='150'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='153'%20y='18'%20width='2'%20height='20'/%3E%3Crect%20x='156'%20y='20'%20width='2'%20height='16'/%3E%3Crect%20x='159'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='162'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='165'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='168'%20y='21'%20width='2'%20height='14'/%3E%3Crect%20x='171'%20y='11'%20width='2'%20height='34'/%3E%3Crect%20x='174'%20y='5'%20width='2'%20height='46'/%3E%3Crect%20x='177'%20y='6'%20width='2'%20height='44'/%3E%3Crect%20x='180'%20y='16'%20width='2'%20height='24'/%3E%3Crect%20x='183'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='186'%20y='14'%20width='2'%20height='28'/%3E%3Crect%20x='189'%20y='10'%20width='2'%20height='36'/%3E%3Crect%20x='192'%20y='13'%20width='2'%20height='30'/%3E%3Crect%20x='195'%20y='20'%20width='2'%20height='16'/%3E%3Crect%20x='198'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='201'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='204'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='207'%20y='15'%20width='2'%20height='26'/%3E%3Crect%20x='210'%20y='11'%20width='2'%20height='34'/%3E%3Crect%20x='213'%20y='14'%20width='2'%20height='28'/%3E%3Crect%20x='216'%20y='24'%20width='2'%20height='8'/%3E%3Crect%20x='219'%20y='18'%20width='2'%20height='20'/%3E%3Crect%20x='222'%20y='7'%20width='2'%20height='42'/%3E%3Crect%20x='225'%20y='4'%20width='2'%20height='48'/%3E%3Crect%20x='228'%20y='9'%20width='2'%20height='38'/%3E%3Crect%20x='231'%20y='19'%20width='2'%20height='18'/%3E%3Crect%20x='234'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='237'%20y='25'%20width='2'%20height='6'/%3E%3C/g%3E%3C/svg%3E\");background-repeat:repeat-x;background-position:0 50%;background-size:240px 56px;animation:dcon-scroll 16s linear infinite}.dark .dcon__trace{background-image:url(\"data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20240%2056'%3E%3Cg%20fill='%23ffffff'%20fill-opacity='0.35'%3E%3Crect%20x='0'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='3'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='6'%20y='18'%20width='2'%20height='20'/%3E%3Crect%20x='9'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='12'%20y='25'%20width='2'%20height='6'/%3E%3Crect%20x='15'%20y='12'%20width='2'%20height='32'/%3E%3Crect%20x='18'%20y='4'%20width='2'%20height='48'/%3E%3Crect%20x='21'%20y='3'%20width='2'%20height='50'/%3E%3Crect%20x='24'%20y='11'%20width='2'%20height='34'/%3E%3Crect%20x='27'%20y='23'%20width='2'%20height='10'/%3E%3Crect%20x='30'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='33'%20y='18'%20width='2'%20height='20'/%3E%3Crect%20x='36'%20y='20'%20width='2'%20height='16'/%3E%3Crect%20x='39'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='42'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='45'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='48'%20y='21'%20width='2'%20height='14'/%3E%3Crect%20x='51'%20y='11'%20width='2'%20height='34'/%3E%3Crect%20x='54'%20y='5'%20width='2'%20height='46'/%3E%3Crect%20x='57'%20y='6'%20width='2'%20height='44'/%3E%3Crect%20x='60'%20y='16'%20width='2'%20height='24'/%3E%3Crect%20x='63'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='66'%20y='14'%20width='2'%20height='28'/%3E%3Crect%20x='69'%20y='10'%20width='2'%20height='36'/%3E%3Crect%20x='72'%20y='13'%20width='2'%20height='30'/%3E%3Crect%20x='75'%20y='20'%20width='2'%20height='16'/%3E%3Crect%20x='78'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='81'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='84'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='87'%20y='15'%20width='2'%20height='26'/%3E%3Crect%20x='90'%20y='11'%20width='2'%20height='34'/%3E%3Crect%20x='93'%20y='14'%20width='2'%20height='28'/%3E%3Crect%20x='96'%20y='24'%20width='2'%20height='8'/%3E%3Crect%20x='99'%20y='18'%20width='2'%20height='20'/%3E%3Crect%20x='102'%20y='7'%20width='2'%20height='42'/%3E%3Crect%20x='105'%20y='4'%20width='2'%20height='48'/%3E%3Crect%20x='108'%20y='9'%20width='2'%20height='38'/%3E%3Crect%20x='111'%20y='19'%20width='2'%20height='18'/%3E%3Crect%20x='114'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='117'%20y='25'%20width='2'%20height='6'/%3E%3Crect%20x='120'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='123'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='126'%20y='18'%20width='2'%20height='20'/%3E%3Crect%20x='129'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='132'%20y='25'%20width='2'%20height='6'/%3E%3Crect%20x='135'%20y='12'%20width='2'%20height='32'/%3E%3Crect%20x='138'%20y='4'%20width='2'%20height='48'/%3E%3Crect%20x='141'%20y='3'%20width='2'%20height='50'/%3E%3Crect%20x='144'%20y='11'%20width='2'%20height='34'/%3E%3Crect%20x='147'%20y='23'%20width='2'%20height='10'/%3E%3Crect%20x='150'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='153'%20y='18'%20width='2'%20height='20'/%3E%3Crect%20x='156'%20y='20'%20width='2'%20height='16'/%3E%3Crect%20x='159'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='162'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='165'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='168'%20y='21'%20width='2'%20height='14'/%3E%3Crect%20x='171'%20y='11'%20width='2'%20height='34'/%3E%3Crect%20x='174'%20y='5'%20width='2'%20height='46'/%3E%3Crect%20x='177'%20y='6'%20width='2'%20height='44'/%3E%3Crect%20x='180'%20y='16'%20width='2'%20height='24'/%3E%3Crect%20x='183'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='186'%20y='14'%20width='2'%20height='28'/%3E%3Crect%20x='189'%20y='10'%20width='2'%20height='36'/%3E%3Crect%20x='192'%20y='13'%20width='2'%20height='30'/%3E%3Crect%20x='195'%20y='20'%20width='2'%20height='16'/%3E%3Crect%20x='198'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='201'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='204'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='207'%20y='15'%20width='2'%20height='26'/%3E%3Crect%20x='210'%20y='11'%20width='2'%20height='34'/%3E%3Crect%20x='213'%20y='14'%20width='2'%20height='28'/%3E%3Crect%20x='216'%20y='24'%20width='2'%20height='8'/%3E%3Crect%20x='219'%20y='18'%20width='2'%20height='20'/%3E%3Crect%20x='222'%20y='7'%20width='2'%20height='42'/%3E%3Crect%20x='225'%20y='4'%20width='2'%20height='48'/%3E%3Crect%20x='228'%20y='9'%20width='2'%20height='38'/%3E%3Crect%20x='231'%20y='19'%20width='2'%20height='18'/%3E%3Crect%20x='234'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='237'%20y='25'%20width='2'%20height='6'/%3E%3C/g%3E%3C/svg%3E\")}.dcon__litmask{width:var(--dcon-ph);overflow:hidden}.dcon__litmask .dcon__trace{top:0;bottom:0}.dcon__trace.dcon__trace--lit{background-image:url(\"data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20240%2056'%3E%3Cg%20fill='%23323dfe'%20fill-opacity='0.95'%3E%3Crect%20x='0'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='3'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='6'%20y='18'%20width='2'%20height='20'/%3E%3Crect%20x='9'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='12'%20y='25'%20width='2'%20height='6'/%3E%3Crect%20x='15'%20y='12'%20width='2'%20height='32'/%3E%3Crect%20x='18'%20y='4'%20width='2'%20height='48'/%3E%3Crect%20x='21'%20y='3'%20width='2'%20height='50'/%3E%3Crect%20x='24'%20y='11'%20width='2'%20height='34'/%3E%3Crect%20x='27'%20y='23'%20width='2'%20height='10'/%3E%3Crect%20x='30'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='33'%20y='18'%20width='2'%20height='20'/%3E%3Crect%20x='36'%20y='20'%20width='2'%20height='16'/%3E%3Crect%20x='39'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='42'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='45'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='48'%20y='21'%20width='2'%20height='14'/%3E%3Crect%20x='51'%20y='11'%20width='2'%20height='34'/%3E%3Crect%20x='54'%20y='5'%20width='2'%20height='46'/%3E%3Crect%20x='57'%20y='6'%20width='2'%20height='44'/%3E%3Crect%20x='60'%20y='16'%20width='2'%20height='24'/%3E%3Crect%20x='63'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='66'%20y='14'%20width='2'%20height='28'/%3E%3Crect%20x='69'%20y='10'%20width='2'%20height='36'/%3E%3Crect%20x='72'%20y='13'%20width='2'%20height='30'/%3E%3Crect%20x='75'%20y='20'%20width='2'%20height='16'/%3E%3Crect%20x='78'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='81'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='84'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='87'%20y='15'%20width='2'%20height='26'/%3E%3Crect%20x='90'%20y='11'%20width='2'%20height='34'/%3E%3Crect%20x='93'%20y='14'%20width='2'%20height='28'/%3E%3Crect%20x='96'%20y='24'%20width='2'%20height='8'/%3E%3Crect%20x='99'%20y='18'%20width='2'%20height='20'/%3E%3Crect%20x='102'%20y='7'%20width='2'%20height='42'/%3E%3Crect%20x='105'%20y='4'%20width='2'%20height='48'/%3E%3Crect%20x='108'%20y='9'%20width='2'%20height='38'/%3E%3Crect%20x='111'%20y='19'%20width='2'%20height='18'/%3E%3Crect%20x='114'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='117'%20y='25'%20width='2'%20height='6'/%3E%3Crect%20x='120'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='123'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='126'%20y='18'%20width='2'%20height='20'/%3E%3Crect%20x='129'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='132'%20y='25'%20width='2'%20height='6'/%3E%3Crect%20x='135'%20y='12'%20width='2'%20height='32'/%3E%3Crect%20x='138'%20y='4'%20width='2'%20height='48'/%3E%3Crect%20x='141'%20y='3'%20width='2'%20height='50'/%3E%3Crect%20x='144'%20y='11'%20width='2'%20height='34'/%3E%3Crect%20x='147'%20y='23'%20width='2'%20height='10'/%3E%3Crect%20x='150'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='153'%20y='18'%20width='2'%20height='20'/%3E%3Crect%20x='156'%20y='20'%20width='2'%20height='16'/%3E%3Crect%20x='159'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='162'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='165'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='168'%20y='21'%20width='2'%20height='14'/%3E%3Crect%20x='171'%20y='11'%20width='2'%20height='34'/%3E%3Crect%20x='174'%20y='5'%20width='2'%20height='46'/%3E%3Crect%20x='177'%20y='6'%20width='2'%20height='44'/%3E%3Crect%20x='180'%20y='16'%20width='2'%20height='24'/%3E%3Crect%20x='183'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='186'%20y='14'%20width='2'%20height='28'/%3E%3Crect%20x='189'%20y='10'%20width='2'%20height='36'/%3E%3Crect%20x='192'%20y='13'%20width='2'%20height='30'/%3E%3Crect%20x='195'%20y='20'%20width='2'%20height='16'/%3E%3Crect%20x='198'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='201'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='204'%20y='22'%20width='2'%20height='12'/%3E%3Crect%20x='207'%20y='15'%20width='2'%20height='26'/%3E%3Crect%20x='210'%20y='11'%20width='2'%20height='34'/%3E%3Crect%20x='213'%20y='14'%20width='2'%20height='28'/%3E%3Crect%20x='216'%20y='24'%20width='2'%20height='8'/%3E%3Crect%20x='219'%20y='18'%20width='2'%20height='20'/%3E%3Crect%20x='222'%20y='7'%20width='2'%20height='42'/%3E%3Crect%20x='225'%20y='4'%20width='2'%20height='48'/%3E%3Crect%20x='228'%20y='9'%20width='2'%20height='38'/%3E%3Crect%20x='231'%20y='19'%20width='2'%20height='18'/%3E%3Crect%20x='234'%20y='26'%20width='2'%20height='4'/%3E%3Crect%20x='237'%20y='25'%20width='2'%20height='6'/%3E%3C/g%3E%3C/svg%3E\")}.dcon__playhead{position:absolute;left:var(--dcon-ph);top:4px;bottom:14px;width:1px;background:var(--plivo-blue)}.dcon__playhead::before{content:'';position:absolute;top:-2px;left:-2px;width:5px;height:5px;border-radius:1px;background:inherit}.dcon__foot{display:flex;justify-content:space-between;align-items:center;height:24px;padding:0 10px;border-top:1px solid rgba(0,0,0,.1);font-size:10px;letter-spacing:.08em;color:rgba(0,0,0,.55);font-variant-numeric:tabular-nums}.dark .dcon__foot{border-color:rgba(255,255,255,.12);color:rgba(255,255,255,.6)}.dcon__foot-v{color:rgba(0,0,0,.6)}.dark .dcon__foot-v{color:rgba(255,255,255,.65)}@media (prefers-reduced-motion:reduce){.dcon__trace{animation:none}.dcon__led::after{display:none}}#content-container>span[class*=\"h-[64rem]\"]{display:none!important}*{scrollbar-width:thin;scrollbar-color:rgba(120,124,140,.35) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:rgba(120,124,140,.32);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:rgba(120,124,140,.55)}::-webkit-scrollbar-corner{background:0 0}.dark *{scrollbar-color:rgba(180,186,204,.24) transparent}.dark ::-webkit-scrollbar-thumb{background:rgba(180,186,204,.22)}.dark ::-webkit-scrollbar-thumb:hover{background:rgba(180,186,204,.4)}#integrately-widget{width:40rem!important;margin:2rem auto!important;max-width:100%!important}:root{--sipflow-surface:#f8f8fa;--sipflow-node:#ffffff;--sipflow-border:#e3e4e8;--sipflow-border-strong:#c8cace;--sipflow-text:#09090b;--sipflow-muted:#67676f;--sipflow-accent-text:var(--plivo-blue-text)}.dark{--sipflow-surface:#111317;--sipflow-node:#0a0c0f;--sipflow-border:#272b38;--sipflow-border-strong:#40444f;--sipflow-text:#f4f4f5;--sipflow-muted:#a0a0a7}.sipflow{margin:1.75rem 0;border:1px solid var(--sipflow-border);background:var(--sipflow-surface);overflow:hidden;container-type:inline-size}.sipflow__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem .75rem;border-bottom:1px solid var(--sipflow-border);font-family:var(--plivo-font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--sipflow-muted)}.sipflow__head-right{display:inline-flex;align-items:center;gap:.4rem}.sipflow__led{width:5px;height:5px;flex:none;background:var(--plivo-blue);border-radius:1px!important}.sipflow .sipflow__body>li,.sipflow__body{margin:0!important;list-style:none!important}.sipflow__body{padding:1.25rem .75rem!important;display:flex;flex-direction:column}.sipflow .sipflow__body>li{display:contents;padding:0!important}.sipflow__body>li::marker{content:''}.sipflow__node,.sipflow__node-body{display:flex;align-items:center;min-width:0}.sipflow__node{flex:none;width:100%;max-width:26rem;margin:0 auto;justify-content:center;gap:.75rem;padding:.85rem 1rem;background:var(--sipflow-node);border:1px solid var(--sipflow-border-strong)}.sipflow__node-body{flex-direction:column;text-align:center;gap:.2rem}.sipflow__title{font-family:var(--plivo-font-mono);font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--sipflow-text)}.sipflow__sub{font-size:12px;line-height:1.5;color:var(--sipflow-muted)}.sipflow__chips{display:flex;flex-wrap:wrap;justify-content:center;gap:.3rem;margin-top:.4rem}.sipflow__chip{padding:.15rem .4rem;font-family:var(--plivo-font-mono);font-size:10px;letter-spacing:.06em;color:var(--sipflow-muted);border:1px solid var(--sipflow-border)}.sipflow__link{flex:none;position:relative;display:flex;flex-direction:column;align-items:center;padding:.4rem 0}.sipflow__rail{flex:none;width:1px;height:2.25rem;background:var(--sipflow-border-strong)}.sipflow__arrow{flex:none;width:6px;height:6px;margin:-5px 0 0;border-right:1px solid var(--sipflow-border-strong);border-bottom:1px solid var(--sipflow-border-strong);border-radius:0!important;transform:rotate(45deg)}.sipflow__arrow--back{margin:0 0 -5px;transform:rotate(225deg)}.sipflow__edge-label{position:absolute;top:50%;left:50%;margin-left:.6rem;transform:translateY(-50%);white-space:nowrap;font-family:var(--plivo-font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--sipflow-accent-text)}.sipflow__link--bi .sipflow__rail{height:3rem}.sipflow__link--bi .sipflow__edge-label{transform:translateY(-150%)}.sipflow__edge-label--return{color:var(--sipflow-muted)}.sipflow__link--bi .sipflow__edge-label--return{transform:translateY(50%)}@container (min-width: 38rem){.sipflow:not(.sipflow--vertical) .sipflow__body{flex-direction:row;align-items:stretch;padding:1.5rem 1rem!important}.sipflow:not(.sipflow--vertical) .sipflow__node{flex:1 1 0;width:auto;max-width:none;margin:0}.sipflow:not(.sipflow--vertical) .sipflow__link{flex:0 0 5.5rem;flex-direction:row;align-items:center;padding:0 .35rem}.sipflow:not(.sipflow--vertical) .sipflow__link--bi .sipflow__rail,.sipflow:not(.sipflow--vertical) .sipflow__rail{flex:1;width:auto;height:1px}.sipflow:not(.sipflow--vertical) .sipflow__arrow{margin:0 0 0 -5px;transform:rotate(-45deg)}.sipflow:not(.sipflow--vertical) .sipflow__arrow--back{margin:0 -5px 0 0;transform:rotate(135deg)}.sipflow:not(.sipflow--vertical) .sipflow__edge-label,.sipflow:not(.sipflow--vertical) .sipflow__link--bi .sipflow__edge-label{top:auto;bottom:calc(50% + .5rem);left:50%;margin-left:0;transform:translateX(-50%)}.sipflow:not(.sipflow--vertical) .sipflow__edge-label--return,.sipflow:not(.sipflow--vertical) .sipflow__link--bi .sipflow__edge-label--return{top:calc(50% + .5rem);bottom:auto;transform:translateX(-50%)}}.alert,.notice-box{margin:1.25rem 0;padding:.75rem 1rem;border:1px solid color-mix(in srgb,var(--plivo-ink) 28%,transparent);border-left:2px solid var(--plivo-blue);background:color-mix(in srgb,var(--plivo-ink) 4%,transparent);font-size:.875rem;line-height:1.6}.alert strong:first-child,.notice-box strong:first-child{color:var(--plivo-blue-text)}#sidebar a.nav-anchor{margin-bottom:1px!important}.mdx-content h3,.mdx-content hr{margin-top:1.75rem!important;margin-bottom:1.75rem!important}.mdx-content h2{margin-top:2rem!important;margin-bottom:.75rem!important}.mdx-content h3{margin-bottom:.625rem!important}.mdx-content .code-block{margin-top:1rem!important;margin-bottom:1.25rem!important}.mdx-content li{margin-top:.25rem!important;margin-bottom:.25rem!important}.mdx-content ol,.mdx-content ul{margin-bottom:1rem!important}"}],"page":{"pagePath":"sip-trunking/interconnection-guides/twilio-byoc","slug":"/sip-trunking/interconnection-guides/twilio-byoc","pageMetadata":{"title":"Twilio","sidebarTitle":"Twilio","description":"Use Plivo as a BYOC carrier with Twilio — outbound and inbound setup","href":"/sip-trunking/interconnection-guides/twilio-byoc"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Use Plivo as a BYOC carrier with Twilio — outbound and inbound setup\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,Note,OptimizedImage,Tab,Table,Tabs}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);return _jsxs(Tabs,{children:[_jsxs(Tab,{title:`Secure Outbound BYOC`,id:`secure-outbound-byoc`,\"data-child-heading-ids\":`[\"set-up-voice-termination-with-twilio-bring-your-own-carrier-byoc-trunking-service\",\"overview\",\"create-a-plivo-outbound-trunk\",\"to-create-an-outbound-trunk%3A\",\"create-a-twilio-byoc-trunk\",\"make-an-outbound-call-using-the-byoc-trunk\"]`,children:[_jsx(Heading,{level:`1`,id:`set-up-voice-termination-with-twilio-bring-your-own-carrier-byoc-trunking-service`,children:`Set up Voice Termination with Twilio Bring Your Own Carrier (BYOC) Trunking Service`}),_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),_jsx(_components.p,{children:`Using Zentrunk, Plivo’s SIP trunking platform, you can terminate calls from Twilio using Plivo as the carrier. This guide will help you to set up Plivo as a BYOC trunk on the Twilio platform, and whenever you terminate calls from Twilio using the BYOC trunk, Plivo will act as the carrier for those calls.`}),_jsx(_components.p,{children:`To implement this functionality, you must:`}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Create a Plivo outbound trunk on the Plivo platform`}),`\n`,_jsx(_components.li,{children:`Create a Twilio BYOC trunk on the Twilio platform`}),`\n`]}),_jsx(Heading,{level:`2`,id:`create-a-plivo-outbound-trunk`,children:`Create a Plivo Outbound Trunk`}),_jsx(_components.p,{children:`You need to set up the trunk authentication on the Plivo Console to use Zentrunk to terminate calls. Authentication of your trunk ensures that Zentrunk only accepts traffic that your infrastructure sends securely. You can configure your trunk to be authenticated by an IP Access Control List, a Credentials List, or both. For more information, please check the step-by-step GIF \u0026 instructions below.`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/twilio_termination.gif?s=527c9df4aadd863929f74b1a2bbcfc24`,alt:``,\"data-og-width\":`1024`,width:`1024`,\"data-og-height\":`576`,height:`576`,\"data-path\":`images/twilio_termination.gif`,\"data-optimize\":`true`,\"data-opv\":`3`})}),_jsx(Heading,{level:`4`,id:`to-create-an-outbound-trunk`,children:`To create an Outbound Trunk:`}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`On the `,_jsx(_components.a,{href:`https://cx.plivo.com/sip-trunking`,children:`Outbound Trunks`}),` page in your Plivo Console, click `,_jsx(_components.strong,{children:`“Create New Outbound Trunk”`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`In the New Trunk window, enter a name for your trunk (for example, Twilio Termination).`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Note:`}),` By default, the trunk is enabled.`]})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Under Trunk Authentication, to Create an IP Access Control List:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`”+ Add New IP ACL”`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`In the ‘Create New IP Access Control List’ window, enter the name for your IP Access Control List (for example, Twilio IPs) and then provide the following `,_jsx(`a`,{href:`https://www.twilio.com/docs/voice/bring-your-own-carrier-byoc#sip-domain-uri`,rel:`nofollow`,children:`IP addresses`}),` to be whitelisted in the IP Address List field.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`54.244.51.0`}),`\n`,_jsx(_components.li,{children:`54.244.51.1`}),`\n`,_jsx(_components.li,{children:`54.244.51.2`}),`\n`,_jsx(_components.li,{children:`54.244.51.3`}),`\n`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Note:`}),` In the “IP Access Control List” you can specify the list of IP addresses from which the SIP Invite will be accepted for this trunk.`]})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`“Create ACL”`}),` to save and add your IP Access Control List.`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Select the IP Group, and click `,_jsx(_components.strong,{children:`“Create Trunk”`}),`. Your Outbound trunk will be created.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Once the trunk is created, copy and store the `,_jsx(_components.strong,{children:`Termination SIP Domain URI`}),` that ends with `,_jsx(_components.em,{children:`.zt.plivo.com`}),`. This will be useful while creating the BYOC trunk on the Twilio Platform in the next section.`]}),`\n`]}),`\n`]}),_jsx(Heading,{level:`2`,id:`create-a-twilio-byoc-trunk`,children:`Create a Twilio BYOC Trunk`}),_jsx(_components.p,{children:`You can follow the below GIF and instructions set to create a BYOC trunk on the Twilio platform and set up the Plivo Zentrunk which you created in the previous step as the BYOC trunk.`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/plivo/NFI9_HRHTMInDf93/images/byoc_trunk.gif?s=d93af7d67df870035f61139f3e1b39ec`,alt:``,\"data-og-width\":`1024`,width:`1024`,\"data-og-height\":`562`,height:`562`,\"data-path\":`images/byoc_trunk.gif`,\"data-optimize\":`true`,\"data-opv\":`3`})}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`On the `,_jsx(`a`,{href:`https://www.twilio.com/console/voice/byoc-trunking/trunks`,rel:`nofollow`,children:`BYOC Trunk page`}),`, click on the `,_jsx(_components.strong,{children:`”+”`}),` button to create a new trunk.`]}),`\n`,_jsxs(_components.li,{children:[`Give a name for the trunk and click the `,_jsx(_components.strong,{children:`“Create BYOC Trunk”`}),` button.`]}),`\n`,_jsxs(_components.li,{children:[`In the “Origination Connection Policy (to your Carrier)” section, click on the `,_jsx(_components.strong,{children:`”+”`}),` button to create a new Origination Connection Policy`]}),`\n`,_jsxs(_components.li,{children:[`Provide a name for the origination connection policy and click on the `,_jsx(_components.strong,{children:`“create”`}),` button.`]}),`\n`,_jsxs(_components.li,{children:[`Click on the `,_jsx(_components.strong,{children:`”+”`}),` button to create a new origination target and provide the previously copied Plivo’s Termination SIP Domain URI with “sip:” as a prefix.`]}),`\n`,_jsxs(_components.li,{children:[`Click on the `,_jsx(_components.strong,{children:`“Create”`}),` button to create a new Origination Target.`]}),`\n`,_jsxs(_components.li,{children:[`Click on `,_jsx(_components.strong,{children:`“Save”`}),` in the BYOC Trunks page to save the new create BYOC Trunk.`]}),`\n`,_jsx(_components.li,{children:`Copy the BYOC Trunk SID.`}),`\n`]}),_jsx(Heading,{level:`2`,id:`make-an-outbound-call-using-the-byoc-trunk`,children:`Make an Outbound call using the BYOC Trunk`}),_jsx(_components.p,{children:`You can terminate calls via your BYOC trunk by using the below cURL code snippet.`}),_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'https://api.twilio.com/2010-04-01/Accounts/{Your Account SID}/Calls.json'`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data-urlencode`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'To=your_destination_number'`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`--data-urlencode`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'From=your_source_number'`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data-urlencode`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Url={Your Twilio App URL}'`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data-urlencode`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Byoc={your_BYOC_Trunk_SID}'`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -u`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{Your Account SID}:{Your Auth Token}`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Also, if you are interested in integrating your PBX/SBC with Plivo outbound trunks, you can click `,_jsx(_components.a,{href:`https://cx.plivo.com/signup`,children:`here`}),` to sign up for free and create your first SIP trunk today!`]})]}),_jsxs(Tab,{title:`Secure Inbound BYON`,id:`secure-inbound-byon`,\"data-child-heading-ids\":`[\"set-up-voice-origination-with-twilio-bring-your-own-number-byon-service\",\"overview-2\",\"create-a-twilio-sip-domain-with-an-acl\",\"create-an-acl-to-authenticate-plivo-ips-with-twilio\",\"create-a-sip-domain-and-choose-the-acl-with-plivo-ips\",\"create-a-plivo-inbound-trunk-and-assign-it-to-a-plivo-number\",\"test-%26-validate\"]`,children:[_jsx(Heading,{level:`1`,id:`set-up-voice-origination-with-twilio-bring-your-own-number-byon-service`,children:`Set up Voice Origination with Twilio Bring Your Own Number (BYON) Service`}),_jsx(Heading,{level:`2`,id:`overview-2`,children:`Overview`}),_jsx(_components.p,{children:`Using the Plivo SIP-trunking platform, you can use your Plivo numbers to route calls to the Twilio voice platform. In this guide, we will walk you through how to set up a Plivo number for voice origination via Twilio’s BYON (Bring Your Own Number) service for routing the calls to a Twilio SIP Domain.`}),_jsx(_components.p,{children:`To achieve this functionality, you must complete the following two configurations on the Twilio and the Plivo platforms:`}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Create a Twilio SIP domain with an ACL (with Plivo IPs).`}),`\n`,_jsx(_components.li,{children:`Create a Plivo inbound trunk and assign it to a Plivo number.`}),`\n`]}),_jsx(Heading,{level:`2`,id:`create-a-twilio-sip-domain-with-an-acl`,children:`Create a Twilio SIP Domain with an ACL`}),_jsx(_components.p,{children:`Follow the steps below to create a Twilio SIP domain and authenticate the calls routed through Plivo.`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Create an Access Control List (ACL) to authenticate Plivo IPs with Twilio`}),`\n`,_jsx(_components.li,{children:`Create a SIP domain and choose the ACL with Plivo IPs`}),`\n`]}),_jsx(Heading,{level:`3`,id:`create-an-acl-to-authenticate-plivo-ips-with-twilio`,children:`Create an ACL to authenticate Plivo IPs with Twilio`}),_jsx(_components.p,{children:`To send traffic to a Twilio SIP domain from Plivo, the traffic must be first authenticated with an IP whitelist or username and password.`}),_jsx(_components.p,{children:`To create an IP whitelist:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Navigate to the `,_jsx(_components.strong,{children:`IP Access Control`}),` Lists page `,_jsx(_components.a,{href:`https://www.twilio.com/console/voice/sip/ip-acls`,children:`here`}),`.`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/new_acl.png?fit=max\u0026auto=format\u0026n=M2NzHE_bNZbCm0gd\u0026q=85\u0026s=5a9022b68b9d854e35ec80f4e59c8119`,alt:``,\"data-og-width\":`1397`,width:`1397`,\"data-og-height\":`684`,height:`684`,\"data-path\":`images/new_acl.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/new_acl.png?w=280\u0026fit=max\u0026auto=format\u0026n=M2NzHE_bNZbCm0gd\u0026q=85\u0026s=8f20e8c2e34bb5079fe211b28fb609f0 280w, https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/new_acl.png?w=560\u0026fit=max\u0026auto=format\u0026n=M2NzHE_bNZbCm0gd\u0026q=85\u0026s=66249d69936292bb58aab1c1f97b57ed 560w, https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/new_acl.png?w=840\u0026fit=max\u0026auto=format\u0026n=M2NzHE_bNZbCm0gd\u0026q=85\u0026s=a7b23f0dc82929b35a3012db58c20641 840w, https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/new_acl.png?w=1100\u0026fit=max\u0026auto=format\u0026n=M2NzHE_bNZbCm0gd\u0026q=85\u0026s=731b19eb74eab33cc174b6d3a5ae37b2 1100w, https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/new_acl.png?w=1650\u0026fit=max\u0026auto=format\u0026n=M2NzHE_bNZbCm0gd\u0026q=85\u0026s=ff09b3714bd361627595088907812a4c 1650w, https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/new_acl.png?w=2500\u0026fit=max\u0026auto=format\u0026n=M2NzHE_bNZbCm0gd\u0026q=85\u0026s=7b070a49189952ad2f2ee7537fcb9815 2500w`})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`In the “New Access Control List” page, Enter a friendly name that will help you remember the IP group and then add in the following Plivo IPs:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Regions`}),_jsx(_components.th,{children:`IP Addresses`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`North California, USA`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`13.52.9.0/25`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Virginia, USA\t18.214.109.128/25`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`18.215.142.0/26`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Frankfurt, Germany`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`3.120.121.128/26`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Sao Paulo, Brazil`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`18.228.70.64/26`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Sydney, Australia`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`13.238.202.192/26`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Singapore`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`18.136.1.128/26`})]})]})]}),`\n`]}),`\n`]}),_jsx(Heading,{level:`3`,id:`create-a-sip-domain-and-choose-the-acl-with-plivo-ips`,children:`Create a SIP domain and choose the ACL (with Plivo IPs)`}),_jsx(_components.p,{children:`You need to follow the below instructions to complete the configuration on the Twilio side:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`You can navigate to the Twilio `,_jsx(_components.strong,{children:`SIP Domains`}),` page `,_jsx(_components.a,{href:`https://www.twilio.com/console/voice/sip/endpoints`,children:`here`}),` and provide a domain name for the new SIP domain.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Choose the IP ACL (with Plivo IPs) you created in the previous step.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Copy and store the SIP URI. This will be helpful while creating the trunk on the Plivo platform (next step).`}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/new_sip_domain.png?fit=max\u0026auto=format\u0026n=M2NzHE_bNZbCm0gd\u0026q=85\u0026s=c0e7a0f39316797a721b40b15b079108`,alt:``,\"data-og-width\":`1397`,width:`1397`,\"data-og-height\":`798`,height:`798`,\"data-path\":`images/new_sip_domain.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/new_sip_domain.png?w=280\u0026fit=max\u0026auto=format\u0026n=M2NzHE_bNZbCm0gd\u0026q=85\u0026s=e7333ee794f9cdef0d15dfee15a51790 280w, https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/new_sip_domain.png?w=560\u0026fit=max\u0026auto=format\u0026n=M2NzHE_bNZbCm0gd\u0026q=85\u0026s=2ee7929d2e62306e162689a0ec00a32f 560w, https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/new_sip_domain.png?w=840\u0026fit=max\u0026auto=format\u0026n=M2NzHE_bNZbCm0gd\u0026q=85\u0026s=52eaef3251dedc0c2f7d5eb45221672d 840w, https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/new_sip_domain.png?w=1100\u0026fit=max\u0026auto=format\u0026n=M2NzHE_bNZbCm0gd\u0026q=85\u0026s=b11d8bc8801fa2828d1d1b7ffb6e27f1 1100w, https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/new_sip_domain.png?w=1650\u0026fit=max\u0026auto=format\u0026n=M2NzHE_bNZbCm0gd\u0026q=85\u0026s=da351d868f3a77cbd536b7b5861a4971 1650w, https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/new_sip_domain.png?w=2500\u0026fit=max\u0026auto=format\u0026n=M2NzHE_bNZbCm0gd\u0026q=85\u0026s=a38d9eae86e032e6d2bbdae966a6a5f6 2500w`})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Note`}),`: Twilio SIP domain is a custom DNS host name associated with your Twilio account that can accept SIP traffic. This maps a domain name to the IP address (IPv4) of the computer hosting the domain.`]})}),`\n`]}),`\n`]}),_jsx(Heading,{level:`2`,id:`create-a-plivo-inbound-trunk-and-assign-it-to-a-plivo-number`,children:`Create a Plivo inbound trunk and assign it to a Plivo number.`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/plivo/sqGJ0ONkT5kTuesy/images/twilio_origination.gif?s=31bb209d5175a761b20943e06f6b5f7d`,alt:``,\"data-og-width\":`1024`,width:`1024`,\"data-og-height\":`562`,height:`562`,\"data-path\":`images/twilio_origination.gif`,\"data-optimize\":`true`,\"data-opv\":`3`})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`To create an Inbound Trunk:`})}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`On the `,_jsx(_components.a,{href:`https://cx.plivo.com/sip-trunking`,children:`Inbound Trunks`}),` page in your Plivo Console, click `,_jsx(_components.strong,{children:`Create New Inbound Trunk`}),`.`]}),`\n`,_jsx(_components.li,{children:`On the New Trunk window, enter a name for your trunk (for example, Twilio Origination).`}),`\n`]}),_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Note`}),`: The Enabled checkbox is selected by default.`]})}),_jsxs(_components.ol,{start:`3`,children:[`\n`,_jsx(_components.li,{children:`Select the Primary URI and Fallback URI of your PBX.`}),`\n`]}),_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Note`}),`: The Primary URI is the FQDN or IP address to which all calls are forwarded first. If the Primary URI is unresponsive, the calls will be forwarded to the Fallback URI. Please note that the Fallback URI is optional.`]})}),_jsxs(_components.ol,{start:`4`,children:[`\n`,_jsxs(_components.li,{children:[`To add a new Primary or Fallback URI, click `,_jsx(_components.strong,{children:`Add new URI`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`On the `,_jsx(_components.strong,{children:`Create URI window`}),`, enter a name for your URI (for example, Twilio_origin), and then enter the SIP URI of the Twilio SIP domain (the one which you stored while configuring the SIP domain in the previous section).`]}),`\n`,_jsxs(_components.li,{children:[`To enable Authentication, click on the `,_jsx(_components.strong,{children:`Authentication`}),` option and provide username \u0026 password.`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Create URI`}),` to save and add your URI.`]}),`\n`,_jsxs(_components.li,{children:[`Once you have created and selected your Primary and Fallback URI, click `,_jsx(_components.strong,{children:`Create Trunk`}),`. Your inbound trunk will be created.`]}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`To assign an inbound trunk to a Plivo Number:`})}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Once you click on `,_jsx(_components.strong,{children:`Create Trunk`}),`, in the next window you can link your trunk with Phone numbers.`]}),`\n`,_jsx(_components.li,{children:`You can either link the trunk with your existing phone numbers in your account or buy a new phone number and link the trunk.`}),`\n`,_jsxs(_components.li,{children:[`If you wish to use your existing numbers, select the phone numbers under the `,_jsx(_components.strong,{children:`Current Phone Numbers`}),` section, and click `,_jsx(_components.strong,{children:`Link Selected Numbers`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`If you wish to use a new number, navigate to the `,_jsx(_components.strong,{children:`Buy New Number`}),` section and choose the country, prefix, type, capability, and click on `,_jsx(_components.strong,{children:`Search`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Select a Phone number and click `,_jsx(_components.strong,{children:`Buy Number`}),`.`]}),`\n`,_jsx(_components.li,{children:`Once you click on Buy Number, the number will be added to your account and the same will be linked with your inbound trunk.`}),`\n`]}),_jsxs(_components.p,{children:[`To know more about buying a Plivo Phone number, please navigate to the `,_jsx(_components.a,{href:`/numbers/phone-numbers#buy-a-phone-number`,children:`Buy a number section`}),`.`]}),_jsx(Heading,{level:`2`,id:`test-\u0026-validate`,children:`Test \u0026 Validate`}),_jsx(_components.p,{children:`Now, your setup is complete. You can make calls to the Plivo number and see that the calls are routed to the Twilio SIP domain to execute the webhook or the application set up at Twilio end.`})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Twilio","sidebarTitle":"Twilio","description":"Use Plivo as a BYOC carrier with Twilio — outbound and inbound setup","href":"/sip-trunking/interconnection-guides/twilio-byoc"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Set up Voice Termination with Twilio Bring Your Own Carrier (BYOC) Trunking Service","slug":"set-up-voice-termination-with-twilio-bring-your-own-carrier-byoc-trunking-service","depth":1,"children":[],"tabId":"secure-outbound-byoc"},{"title":"Overview","slug":"overview","depth":2,"children":[],"tabId":"secure-outbound-byoc"},{"title":"Create a Plivo Outbound Trunk","slug":"create-a-plivo-outbound-trunk","depth":2,"children":[{"title":"To create an Outbound Trunk:","slug":"to-create-an-outbound-trunk","depth":4,"children":[],"tabId":"secure-outbound-byoc"}],"tabId":"secure-outbound-byoc"},{"title":"Create a Twilio BYOC Trunk","slug":"create-a-twilio-byoc-trunk","depth":2,"children":[],"tabId":"secure-outbound-byoc"},{"title":"Make an Outbound call using the BYOC Trunk","slug":"make-an-outbound-call-using-the-byoc-trunk","depth":2,"children":[],"tabId":"secure-outbound-byoc"},{"title":"Set up Voice Origination with Twilio Bring Your Own Number (BYON) Service","slug":"set-up-voice-origination-with-twilio-bring-your-own-number-byon-service","depth":1,"children":[],"tabId":"secure-inbound-byon"},{"title":"Overview","slug":"overview-2","depth":2,"children":[],"tabId":"secure-inbound-byon"},{"title":"Create a Twilio SIP Domain with an ACL","slug":"create-a-twilio-sip-domain-with-an-acl","depth":2,"children":[{"title":"Create an ACL to authenticate Plivo IPs with Twilio","slug":"create-an-acl-to-authenticate-plivo-ips-with-twilio","depth":3,"children":[],"tabId":"secure-inbound-byon"},{"title":"Create a SIP domain and choose the ACL (with Plivo IPs)","slug":"create-a-sip-domain-and-choose-the-acl-with-plivo-ips","depth":3,"children":[],"tabId":"secure-inbound-byon"}],"tabId":"secure-inbound-byon"},{"title":"Create a Plivo inbound trunk and assign it to a Plivo number.","slug":"create-a-plivo-inbound-trunk-and-assign-it-to-a-plivo-number","depth":2,"children":[],"tabId":"secure-inbound-byon"},{"title":"Test \u0026 Validate","slug":"test-\u0026-validate","depth":2,"children":[],"tabId":"secure-inbound-byon"}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/plivo/65a712f3b49f9843/hubspot.js"],"subdomain":"plivo","siteName":"Plivo","title":"Twilio - Plivo","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-04-30T15:50:32.078Z","originalFileLocation":"sip-trunking/interconnection-guides/twilio-byoc.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Use Plivo as a BYOC carrier with Twilio — outbound and inbound setup\">\u003cmeta data-mint-head name=\"application-name\" content=\"Plivo\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/plivo/jE_tEXMmXghIL4xh/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/plivo/jE_tEXMmXghIL4xh/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/plivo/jE_tEXMmXghIL4xh/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/plivo/jE_tEXMmXghIL4xh/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/plivo/jE_tEXMmXghIL4xh/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/plivo/jE_tEXMmXghIL4xh/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/plivo/jE_tEXMmXghIL4xh/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/plivo/jE_tEXMmXghIL4xh/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/plivo/jE_tEXMmXghIL4xh/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Twilio - Plivo\">\u003cmeta data-mint-head property=\"og:description\" content=\"Use Plivo as a BYOC carrier with Twilio — outbound and inbound setup\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Plivo\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://plivo.com/docs/sip-trunking/interconnection-guides/twilio-byoc\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://plivo.mintlify.app/_mintlify/api/og/v2?division=Supported+Platforms\u0026amp;title=Twilio\u0026amp;description=Use+Plivo+as+a+BYOC+carrier+with+Twilio+%E2%80%94+outbound+and+inbound+setup\u0026amp;theme=0904848171be9743c76b0ea8\u0026amp;signature=4af801436fd3999e9fc307240be571b0f6020aeb38036ade12fc3ca6cf215465\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Twilio - Plivo\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Use Plivo as a BYOC carrier with Twilio — outbound and inbound setup\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://plivo.mintlify.app/_mintlify/api/og/v2?division=Supported+Platforms\u0026amp;title=Twilio\u0026amp;description=Use+Plivo+as+a+BYOC+carrier+with+Twilio+%E2%80%94+outbound+and+inbound+setup\u0026amp;theme=0904848171be9743c76b0ea8\u0026amp;signature=4af801436fd3999e9fc307240be571b0f6020aeb38036ade12fc3ca6cf215465\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/plivo/jE_tEXMmXghIL4xh/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Plivo\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#323dfe\">\u003clink data-mint-head rel=\"canonical\" href=\"https://plivo.com/docs/sip-trunking/interconnection-guides/twilio-byoc\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/sip-trunking/interconnection-guides/twilio-byoc.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://plivo.com/#organization\",\"name\":\"Plivo\",\"url\":\"https://plivo.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/plivo/nlRVupwxTfmW2fPy/logo/newlogodark.svg?fit=max\u0026auto=format\u0026n=nlRVupwxTfmW2fPy\u0026q=85\u0026s=60816eb957f6b8962ef15eddde76449a\"}},{\"@type\":\"WebSite\",\"@id\":\"https://plivo.com/docs#website\",\"name\":\"Plivo\",\"url\":\"https://plivo.com/docs\",\"publisher\":{\"@id\":\"https://plivo.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://plivo.com/docs/sip-trunking/interconnection-guides/twilio-byoc#webpage\",\"url\":\"https://plivo.com/docs/sip-trunking/interconnection-guides/twilio-byoc\",\"name\":\"Twilio\",\"description\":\"Use Plivo as a BYOC carrier with Twilio — outbound and inbound setup\",\"dateModified\":\"2026-04-30T15:50:32.078Z\",\"isPartOf\":{\"@id\":\"https://plivo.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://plivo.com/docs/sip-trunking/interconnection-guides/twilio-byoc#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://plivo.com/docs/sip-trunking/interconnection-guides/twilio-byoc#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"PBX Integration\",\"item\":\"https://plivo.com/docs/sip-trunking/interconnection-guides/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Supported Platforms\",\"item\":\"https://plivo.com/docs/sip-trunking/interconnection-guides/freeswitch\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Twilio\",\"item\":\"https://plivo.com/docs/sip-trunking/interconnection-guides/twilio-byoc\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://plivo.com/docs/sip-trunking/interconnection-guides/twilio-byoc#article\",\"headline\":\"Twilio\",\"name\":\"Twilio\",\"description\":\"Use Plivo as a BYOC carrier with Twilio — outbound and inbound setup\",\"url\":\"https://plivo.com/docs/sip-trunking/interconnection-guides/twilio-byoc\",\"mainEntityOfPage\":{\"@id\":\"https://plivo.com/docs/sip-trunking/interconnection-guides/twilio-byoc#webpage\"},\"dateModified\":\"2026-04-30T15:50:32.078Z\",\"publisher\":{\"@id\":\"https://plivo.com/#organization\"},\"isPartOf\":{\"@id\":\"https://plivo.com/docs#website\"}}]}\u003c/script>","siteName":"Plivo","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/home"}]},{"tab":"SIP Trunking","pages":[{"title":"SIP Trunking","href":"/voice-agents/sip-trunking/overview"}]},{"tab":"Audio Streaming","pages":[{"title":"Audio Streaming","href":"/voice-agents/audio-streaming/overview"}]},{"tab":"Programmable APIs","anchors":[{"anchor":"Voice API","icon":"phone","pages":[{"title":"Voice API","href":"/voice/quickstart/quickstart"}]},{"anchor":"Messaging API","icon":"message-square-code","pages":[{"title":"Messaging API","href":"/messaging/sms-availability"}]},{"anchor":"SIP Trunking","icon":"utility-pole","groups":[{"group":"Concepts","pages":[{"title":"Quickstart Guide","sidebarTitle":"Overview","href":"/sip-trunking"},{"title":"Account limits","sidebarTitle":"Account Limits","href":"/sip-trunking/concepts/account-limits"},{"title":"Technical Specifications","sidebarTitle":"Technical Specs","href":"/sip-trunking/concepts/technical-specifications"}]},{"group":"SIP REFER","pages":[{"title":"SIP REFER","sidebarTitle":"Overview","href":"/sip-trunking/concepts/sip-refer"},{"title":"SIP REFER — Outbound Calls","sidebarTitle":"Outbound Transfer","href":"/sip-trunking/concepts/sip-refer-outbound"},{"title":"SIP REFER — Inbound Calls","sidebarTitle":"Inbound Transfer","href":"/sip-trunking/concepts/sip-refer-inbound"}]},{"group":"Security","pages":[{"title":"Zentrunk Geo Permissions","sidebarTitle":"Geo Permissions","href":"/sip-trunking/concepts/geo-permissions"},{"title":"Zentrunk STIR/SHAKEN (US/CA)","sidebarTitle":"STIR/SHAKEN (US/CA)","href":"/sip-trunking/concepts/stir-shaken"}]},{"group":"API Reference","pages":[{"title":"API Overview","href":"/sip-trunking/api/overview"},{"title":"Trunks","href":"/sip-trunking/api/trunks"},{"title":"Calls","href":"/sip-trunking/api/calls"},{"title":"Credentials","href":"/sip-trunking/api/credentials"},{"title":"Origination URIs","href":"/sip-trunking/api/origination-uris"},{"title":"IP Access Control Lists","href":"/sip-trunking/api/ip-access-control-lists"}]},{"group":"Troubleshooting","pages":[{"title":"Zentrunk Hangup Codes","mode":"wide","href":"/sip-trunking/troubleshooting/zentrunk-hangup-codes"},{"title":"Zentrunk Debug Logs","sidebarTitle":"Zentrunk Debug Logs","href":"/sip-trunking/troubleshooting/zentrunk-debug-logs"}]},{"group":"PBX Integration","pages":[{"title":"Interconnection Guides","sidebarTitle":"Overview","href":"/sip-trunking/interconnection-guides/overview"},{"title":"Configuring X-lite (Now Bria Solo)","sidebarTitle":"Configuring X-Lite","href":"/sip-trunking/interconnection-guides/configuring-x-lite"},{"group":"Supported Platforms","pages":[{"title":" Freeswitch","sidebarTitle":"Freeswitch","href":"/sip-trunking/interconnection-guides/freeswitch"},{"title":"Asterisk","sidebarTitle":"Asterisk","href":"/sip-trunking/interconnection-guides/asterisk"},{"title":"Configuring FreePBX to connect with Zentrunk","sidebarTitle":"FreePBX","href":"/sip-trunking/interconnection-guides/freepbx"},{"title":"Configuring 3CX to Connect With Zentrunk","sidebarTitle":"3CX","href":"/sip-trunking/interconnection-guides/3cx"},{"title":"Configuring FusionPBX to connect with Zentrunk","sidebarTitle":"FusionPBX","description":"Connect FusionPBX with Zentrunk — inbound and outbound gateway setup","href":"/sip-trunking/interconnection-guides/fusionpbx"},{"title":"Twilio","sidebarTitle":"Twilio","href":"/sip-trunking/interconnection-guides/twilio-byoc"},{"title":"Migration Guide: Easytrunk to Zentrunk Inbound Trunk","sidebarTitle":"Easytrunk to Zentrunk Migration","description":"Migrate from Easytrunk to Zentrunk — move trunks and phone numbers","href":"/sip-trunking/interconnection-guides/easytrunk-migration"}]}]}]},{"anchor":"Verify API","icon":"badge-check","pages":[{"title":"Verify API","href":"/programmable-api/verify/availability"}]},{"anchor":"Phone Numbers API","icon":"file-digit","pages":[{"title":"Phone Numbers API","href":"/numbers"}]},{"anchor":"WhatsApp API","icon":"message-circle","pages":[{"title":"WhatsApp API","href":"/messaging/concepts/whatsapp/prerequisites"}]},{"anchor":"Account API","icon":"building-2","pages":[{"title":"Account API","href":"/account/concepts/subaccounts"}]},{"anchor":"Number Masking","icon":"shield-half","pages":[{"title":"Number Masking","href":"/number-masking/concepts/overview"}]},{"anchor":"Lookup API","icon":"search","pages":[{"title":"Lookup API","href":"/lookup/overview"}]},{"anchor":"CLI","icon":"terminal","pages":[{"title":"CLI","href":"/cli/overview"}]},{"anchor":"Integrations","icon":"blocks","pages":[{"title":"Integrations","href":"/integrations/overview"}]}]},{"tab":"FAQ","pages":[{"title":"FAQ","href":"/faq/messaging/messaging-api"}]}]},"title":"Twilio - Plivo","buildId":"dpl_3rfzHPCtRhDFBbetXZ3oLkN5tjmA","deploymentId":"dpl_3rfzHPCtRhDFBbetXZ3oLkN5tjmA","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-Dit-D9cD.js","DynamicMarkdown-B3juXLG8.js","zoom-image-lightbox-D2y4WbiL.js","lightbox-handle-r17bVUz3.js"]}