This documentation provides a basic configuration to get FreeSwitch up and running with Plivo as the external SIP gateway. This documentation was written using a Debian Jessie GNU/Linux System running FreeSwitch 1.6.6.To get started with Zentrunk using FreeSwitch you would need to do the following:
To configure Freeswitch to connect to your Plivo Zentrunk, locate the root configuration of FreeSwitch on your machine. These locations vary from platform to platform.
For Debian Jessie GNU/Linux System, the root configuration is present at /etc/freeswitch/.
For Windows, the root configuration is located at C:\Program Files\FreeSWITCH\conf.
For Linux systems, it could be either of the following depending on your installation:
/usr/local/freeswitch/conf
/opt/freeswitch/conf
With the root configuration directory located, you must complete the following configurations:
Next, you should setup a Dial Plan to use the Plivo SIP Profile created in Step 1.
Create a new file named “02_zentrunk.xml” at /etc/freeswitch/dialplan/default/. If you already have a dialplan prefixed by 02, you can choose the another number.
The above dial plan has defined an extension for 11 digit US numbers like +1-(222)-(222)-2222. The outbound_caller_id_number field is inherited from vars.xml which would be set as the caller ID while making outbound calls. This extension is set to bridge to your SIP Profile “Plivo-outbound”.
FreeSwitch instances have default users and SIP passwords preconfigured. To prevent being hacked, we recommend you change the default password.Open vars.xml located at /etc/freeswitch/ and edit the following line:
<X-PRE-PROCESS cmd="set" data="default_password=set your password here"/>
This change is applicable to all users under /etc/freeswitch/directory/default/. If you want to change the password per user, then navigate to /etc/freeswitch/directory/default/ and edit 1000.xml (or any user of your choice).
<param name="password" value="set your password here"/>
Execute reloadxml in fs_cli utility after making changes to users xml.Note: Freeswitch has to be restarted if any changes were made to vars.xml.
When the account is successfully enabled on X-Lite, it is ready to make calls. Enter any valid 11 digit US number in your X-Lite and hit on the call button. This call would hit your freeswitch server first, then go through Plivo Zentrunk and finally reach the destination number.To know more about configuring X-lite for outbound calls, check the X-lite configuration guide
To configure the Freeswitch to connect to your Plivo inbound Zentrunk, first locate the root configuration of FreeSwitch on your machine. These locations vary from platform to platform.
For Debian Jessie GNU/Linux System, the root configuration is present at /etc/freeswitch/.
For Windows, the root configuration is located at C:\Program Files\FreeSWITCH\conf.
For Linux systems, it could be either of the following depending on your installation -
/usr/local/freeswitch/conf
/opt/freeswitch/conf
With the root configuration directory located, there are three major configurations that needs to done:
Create a new file named “03_zentrunk.xml” at /etc/freeswitch/dialplan/default/. If you already have a dialplan prefixed by 03, you can choose the another number. Use the XML Under the context =public
<extension name="inboundbridge" continue="true"> <condition field="destination_number" expression="^(\+)?your_destination_number$"> <action application="log" data=" Pleasewait we are connecting to plivo inbound NMS"/> <action application="set" data="bypass_media=true"/> <action application="export" data="sip_from_uri=${sip_from_uri}"/> <action application="bridge" data="user/1000"/> </condition></extension>
Values to be replaced:
^your_destination_number$= The destination number on which you want to receive the incoming call
Note: User ID & Authorization name will be `1000` and Value of Default password will be `1234`.
FreeSwitch instances have default users and SIP passwords preconfigured. To prevent being hacked, we recommend you change the default password.
Open vars.xml located at /etc/freeswitch/ and edit the following line:
<X-PRE-PROCESS cmd="set" data="default_password=set your password here"/>
This change is applicable to all users under /etc/freeswitch/directory/default/. If you want to change the password per user, navigate to /etc/freeswitch/directory/default/ and edit 1000.xml (or any user of your choice).
<param name="password" value="set your password here"/>
Execute reloadxml in fs_cli utility after making changes to users xml.
Note: Freeswitch has to be restarted if any changes were made to `vars.xml`.
When the account is successfully enabled on X-Lite, it is ready to receive calls. Dial the number provided in the “your_destination_number$” field and the calls will first hit the Plivo inbound zentrunk and then go through your FreeSWITCH to reach your endpoint.To know more about configuring X-lite for Inbound calls, check the X-lite configuration guide
This documentation provides configuration for secure and reliable data transfer between your SIP device and Zentrunk infrastructure. This documentation was written using a Debian 9 Stretch GNU/Linux system running FreeSwitch latest release version.To get started with Zentrunk Secure Trunking using FreeSwitch you would need to do the following:
Configuring a Secure Outbound Trunk (TLS and SRTP)
To configure FreeSwitch to connect to your Plivo Secure Zentrunk, locate the root configuration of FreeSwitch on your machine. For Debian 9 Stretch GNU/Linux System, the root configuration is present at /etc/freeswitch/.With the root configuration directory located at /etc/freeswitch/, you must complete the following configurations:
FreeSwitch creates a certain set of default dialplan xml files post installation which are not relevant for setup. Please ensure a SIP profile has been created before proceeding to create a dial plan.
FreeSwitch creates a set of default xml configuration files during installation that we won’t need. We are removing them with the following commands:
rm -rf /etc/freeswitch/dialplan/default/
rm -rf /etc/freeswitch/dialplan/skinny-patterns*
rm /etc/freeswitch/dialplan/features.xml
Replace the public dialplan /etc/freeswitch/dialplan/public.xml with the following xml:
You could generate the certificate as described here1 - Generate the CA (Root) CertificateTo use TLS/SSL you need at least two certificates: the root (CA) certificate and a certificate for every server. There is a script at
_/{prefix}/freeswitch/bin/gentls_cert _or within the source tarball _{tarball}/scripts/gentls_cert
that helps generate these files. Assuming that the DNS name of your FreeSWITCH PBX is pbx.mydomain.tld, with
This will create CA certificate and key along with in /etc/freeswitch/tls/CA directory and certificate in the /etc/freeswitch/tls folder.
Output: root@ip-x.x.x.x:/etc/freeswitch/dialplan# /usr/bin/gentls_cert setup -cn pbx.freeswitch.org -alt DNS:pbx.freeswitch.org -org freeswitch.orgCreating new CA...Generating a RSA private key...................................................................writing new private key to '/etc/freeswitch/tls/CA/cakey.pem'DONE
Note: The name given for -cn and -alt should be the same as the DNS name of your FreeSwitch installation and used as the registrar name on the phone (at least on Polycom devices). ] You can change the “DAYS=2190” line in the gentls_cert file to make the certificate valid for a longer time. However making it too long has some wrap around problem, it appears.
Output:root@ip-x.x.x.x:/etc/freeswitch/dialplan# /usr/bin/gentls_cert create_server -cn pbx.freeswitch.org -alt DNS:pbx.freeswitch.org -org freeswitch.orgGenerating new certificate...--------------------------------------------------------CN: "pbx.freeswitch.org"ORG_NAME: "freeswitch.org"ALT_NAME: "DNS:pbx.freeswitch.org"Certificate filename "agent.pem"[Is this OK? (y/N)]yGenerating a RSA private key.............................................................................................writing new private key to '/tmp/fs-ca-15020-20190920094519.key'Signature oksubject=CN = pbx.freeswitch.org, O = freeswitch.orgGetting CA Private KeyDONE
This creates the server certificate at /etc/freeswitch/tls/agent.pem. This file contains the certificate and the private key. It should contain the domain name in the common and alternate name. If you need to generate certificates for other servers use the -out flag for gentls_cert to specify the output certificate/key file name and copy this to the remote server.In order for the new certificate to take effect (the only way for FreeSWITCH to use it), FreeSWITCH must be restarted.
Note: The name given for -cn and -alt should be the same as the DNS name of your FreeSwitch installation and used as the registrar name on the phone (required for Polycom devices and Eyebeam softphone).
Verify your certificateYou can review your certificate details with the following command:
FreeSwitch only requires the agent.pem file to act as a TLS server. It contains the certificate and the key).
Note: It is extremely important that your agent.pem (and optionally cafile.pem) have read permissions for the user FreeSwitch will run as.
For example, if you are starting FreeSwitch with the following option_ -u freeswitch,_ you have to give read permissions to the “freeswitch” user with the following command:
chown root.freeswitch agent.pem cafile.pem
chmod 640 agent.pem cacert.pem
3 - Enable TLS
$ vim /etc/freeswitch/vars.xml :_<X-PRE-PROCESS cmd="set" data="external_ssl_enable=true"/>_
$ vim /etc/freeswitch/sip_profiles/external.xml :_<param name="tls-cert-dir" value="/etc/freeswitch/tls/"/>_
FreeSwitch instances have default users and SIP passwords preconfigured. To prevent any intrusion, we highly recommend you to change the default password.Open vars.xml located at /etc/freeswitch/ and edit the following line:
<X-PRE-PROCESS cmd="set" data="default_password=set your password here"/>
This change is applicable for all users under /etc/freeswitch/directory/default/. If you want to change the password per user, then navigate to /etc/freeswitch/directory/default/ and edit 1000.xml (or any user of your choice).
When the account is successfully enabled on X-Lite, it is ready to make calls. Enter any valid 11 digit US number in your X-Lite and click on the call button. This call would go to your freeswitch server first, then through Plivo Secure Zentrunk and finally reach the destination number.To know more about configuring X-lite for outbound calls, check the X-lite configuration guide
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.4045","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":"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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"turbopuffer-dual-write","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},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":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/freeswitch","slug":"/sip-trunking/interconnection-guides/freeswitch","pageMetadata":{"title":" Freeswitch","sidebarTitle":"Freeswitch","description":"Configure FreeSwitch with Zentrunk — regular and secure SIP trunking","href":"/sip-trunking/interconnection-guides/freeswitch"},"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: \"Configure FreeSwitch with Zentrunk — regular and secure SIP trunking\"\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`,br:`br`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,Note,OptimizedImage,Tab,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(!Tabs)_missingMdxReference(`Tabs`,true);return _jsxs(Tabs,{children:[_jsxs(Tab,{title:`Regular Trunking`,id:`regular-trunking`,\"data-child-heading-ids\":`[\"zentrunk-%26-freeswitch-regular-trunking\",\"overview\",\"installation-of-freeswitch\",\"configuring-an-outbound-trunk\",\"step-1%3A-sip-profile\",\"termination-sip-domain-of-your-plivo-trunk%3A\",\"testauthgroup-credentials%3A\",\"step-2%3A-dialplan\",\"step-3%3A-reload-configurations\",\"test-your-setup\",\"make-an-outbound-call\",\"configuring-an-inbound-trunk\",\"step-1%3A-dialplan\",\"step-2%3A-access-control-list\",\"step-3%3A-create-a-user\",\"step4%3A-reload-configurations\",\"receive-an-inbound-call\"]`,children:[_jsx(Heading,{level:`1`,id:`zentrunk-\u0026-freeswitch-regular-trunking`,children:`Zentrunk \u0026 Freeswitch - Regular Trunking`}),_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),_jsx(_components.p,{children:`This documentation provides a basic configuration to get FreeSwitch up and running with Plivo as the external SIP gateway. This documentation was written using a Debian Jessie GNU/Linux System running FreeSwitch 1.6.6.`}),_jsx(_components.p,{children:`To get started with Zentrunk using FreeSwitch you would need to do the following:`}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/sip-trunking/interconnection-guides/freeswitch/#installation-of-freeswitch`,children:`Install FreeSwitch on your environment`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/sip-trunking/#create-an-outbound-trunk`,children:`Create a Trunk on Zentrunk using Plivo Console`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/sip-trunking/interconnection-guides/freeswitch/#configuring-an-outbound-trunk`,children:`Configure an Outbound Trunk`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/sip-trunking/interconnection-guides/freeswitch/#configuring-an-inbound-trunk`,children:`Configure the Inbound Trunk`}),`.`]}),`\n`]}),_jsx(Heading,{level:`2`,id:`installation-of-freeswitch`,children:`Installation of Freeswitch`}),_jsx(_components.p,{children:`On your Debian system, execute the following commands in the terminal:`}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Update the Package Manager.`}),`\n`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`apt-get`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` update`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026\u0026 `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`apt-get`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -y`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` curl`})]}),`\n`]})})}),_jsxs(_components.ol,{start:`2`,children:[`\n`,_jsx(_components.li,{children:`Add the Public Key of FreeSwitch package to local Package Manager.`}),`\n`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,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:`1`,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://files.freeswitch.org/repo/deb/debian/freeswitch_archive_g0.pub`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` apt-key`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` -`})]}),`\n`]})})}),_jsxs(_components.ol,{start:`3`,children:[`\n`,_jsx(_components.li,{children:`Add the FreeSwitch repository URL to the source list of local Package Manager.`}),`\n`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`echo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"deb http://files.freeswitch.org/repo/deb/freeswitch-1.6/ jessie main\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` /etc/apt/sources.list.d/freeswitch.list`})]}),`\n`]})})}),_jsxs(_components.ol,{start:`4`,children:[`\n`,_jsx(_components.li,{children:`Install the FreeSwitch package.`}),`\n`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`apt-get`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` update`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026\u0026 `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`apt-get`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -y`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` freeswitch-all`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` freeswitch-all-dbg`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` gdb`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`To install Freeswitch on CentOS, follow the instructions given `,_jsx(_components.a,{href:`https://freeswitch.org/confluence/display/FREESWITCH/Installation`,children:`here`})]}),_jsxs(_components.p,{children:[`To install Freeswitch on Windows, follow the instructions given `,_jsx(_components.a,{href:`https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Installation/Windows-Install_1966780/`,children:`here`})]}),_jsx(Heading,{level:`2`,id:`configuring-an-outbound-trunk`,children:`Configuring an Outbound Trunk`}),_jsx(_components.p,{children:`To configure Freeswitch to connect to your Plivo Zentrunk, locate the root configuration of FreeSwitch on your machine. These locations vary from platform to platform.`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`For Debian Jessie GNU/Linux System, the root configuration is present at `,_jsx(_components.strong,{children:`/etc/freeswitch/`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`For Windows, the root configuration is located at `,_jsx(_components.strong,{children:`C:\\\\Program Files\\\\FreeSWITCH\\\\conf`}),`.`]}),`\n`]}),_jsx(_components.p,{children:`For Linux systems, it could be either of the following depending on your installation:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`/usr/local/freeswitch/conf`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`/opt/freeswitch/conf`})}),`\n`]}),_jsx(_components.p,{children:`With the root configuration directory located, you must complete the following configurations:`}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Create a new SIP Profile.`}),`\n`,_jsx(_components.li,{children:`Create a Dial Plan.`}),`\n`]}),_jsx(Heading,{level:`3`,id:`step-1-sip-profile`,children:`Step 1: Sip Profile`}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Create a new file named “zentrunk.xml” at `,_jsx(_components.strong,{children:`/etc/freeswitch/sip_profiles/external/`}),`.`]}),`\n`,_jsx(_components.li,{children:`In zentrunk.xml, create a new gateway with your Plivo Zentrunk details (refer the below given images to get your Plivo Trunk details).`}),`\n`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`xml`,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:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`include`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`gateway`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Plivo-outbound\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`param`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"username\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Username for TestAuthGroup\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`param`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"password\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Password for TestAuthGroup\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` />`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`param`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"proxy\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Termination SIP Domain of your Plivo Trunk\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`param`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"register\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"false\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`gateway`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`include`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`]})})}),_jsx(Heading,{level:`4`,id:`termination-sip-domain-of-your-plivo-trunk`,children:`Termination SIP Domain of your Plivo Trunk:`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/Trunk4.png?fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=93b180484b05f330f144682fd9720e60`,alt:``,\"data-og-width\":`2864`,width:`2864`,\"data-og-height\":`1612`,height:`1612`,\"data-path\":`images/Trunk4.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/Trunk4.png?w=280\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=53e6375ece82ee5053b234c02796d17e 280w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/Trunk4.png?w=560\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=ac80e517b251ceada3050654b51005df 560w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/Trunk4.png?w=840\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=e312d17a867e4301e1fb630485b69c51 840w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/Trunk4.png?w=1100\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=95804b11383d44c96ebb64e6968d7a2d 1100w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/Trunk4.png?w=1650\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=8c2effb6002a032457f7cfbe1f461545 1650w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/Trunk4.png?w=2500\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=3afc05fb32b15ac1b92a89f14387d0ec 2500w`})}),_jsx(Heading,{level:`4`,id:`testauthgroup-credentials`,children:`TestAuthGroup Credentials:`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/AuthGroup3.png?fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=337a0c839f17d4cdd91feac12f298e22`,alt:``,\"data-og-width\":`2862`,width:`2862`,\"data-og-height\":`1608`,height:`1608`,\"data-path\":`images/AuthGroup3.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/AuthGroup3.png?w=280\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=60936dd76adcc40703546c134bfad9c9 280w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/AuthGroup3.png?w=560\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=cde63023f1f692e00da3f731ba5ddd74 560w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/AuthGroup3.png?w=840\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=e84eff1d8cee73738f655320f40b178e 840w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/AuthGroup3.png?w=1100\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=365a4c86057f6affb7f241835433b15f 1100w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/AuthGroup3.png?w=1650\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=fb0f97406af38a918aec30daeda45cf9 1650w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/AuthGroup3.png?w=2500\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=22119387c21c47298f6cde8038b5de63 2500w`})}),_jsx(Heading,{level:`3`,id:`step-2-dialplan`,children:`Step 2: Dialplan`}),_jsx(_components.p,{children:`Next, you should setup a Dial Plan to use the Plivo SIP Profile created in Step 1.`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Create a new file named “02_zentrunk.xml” at `,_jsx(_components.strong,{children:`/etc/freeswitch/dialplan/default/`}),`. If you already have a dialplan prefixed by 02, you can choose the another number.`]}),`\n`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`xml`,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:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`extension`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"plivo\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`condition`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` field`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"destination_number\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` expression`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"^(\\\\d{11})$\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\t\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`action`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` application`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"set\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:'\"effective_caller_id_number=${outbound_caller_id_number}\"'}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\t\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`action`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` application`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bridge\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sofia/gateway/Plivo-outbound/$1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`condition`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`extension`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`The above dial plan has defined an extension for 11 digit US numbers like +1-(222)-(222)-2222. The `,_jsx(_components.strong,{children:`outbound_caller_id_number`}),` field is inherited from `,_jsx(_components.strong,{children:`vars.xml`}),` which would be set as the caller ID while making outbound calls. This extension is set to bridge to your SIP Profile “Plivo-outbound”.`]}),_jsx(Heading,{level:`3`,id:`step-3-reload-configurations`,children:`Step 3: Reload Configurations`}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Load the fs_cli utility. Execute `,_jsx(_components.strong,{children:`fs_cli`}),` in your terminal.`]}),`\n`,_jsxs(_components.li,{children:[`Reload the dialplan. Execute `,_jsx(_components.strong,{children:`reloadxml`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Add the new SIP Profile, Execute `,_jsx(_components.strong,{children:`sofia profile external rescan`})]}),`\n`]}),_jsx(Heading,{level:`2`,id:`test-your-setup`,children:`Test your setup`}),_jsx(_components.p,{children:`FreeSwitch instances have default users and SIP passwords preconfigured. To prevent being hacked, we recommend you change the default password.`}),_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`vars.xml`}),` located at `,_jsx(_components.strong,{children:`/etc/freeswitch/`}),` and edit the following line:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`xml`,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:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`X-PRE-PROCESS`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` cmd`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"set\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"default_password=set your password here\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`This change is applicable to all users under `,_jsx(_components.strong,{children:`/etc/freeswitch/directory/default/`}),`. If you want to change the password per user, then navigate to `,_jsx(_components.strong,{children:`/etc/freeswitch/directory/default/`}),` and edit 1000.xml (or any user of your choice).`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`xml`,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:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`param`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"password\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"set your password here\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Execute `,_jsx(_components.strong,{children:`reloadxml`}),` in fs_cli utility after making changes to users xml.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Note:`}),` Freeswitch has to be restarted if any changes were made to `,_jsx(_components.strong,{children:`vars.xml`}),`.`]}),_jsx(Heading,{level:`3`,id:`make-an-outbound-call`,children:`Make an outbound call`}),_jsx(_components.p,{children:`When the account is successfully enabled on X-Lite, it is ready to make calls. Enter any valid 11 digit US number in your X-Lite and hit on the call button. This call would hit your freeswitch server first, then go through Plivo Zentrunk and finally reach the destination number.`}),_jsxs(_components.p,{children:[`To know more about configuring X-lite for outbound calls, check the `,_jsx(_components.a,{href:`/sip-trunking/interconnection-guides/configuring-x-lite/`,children:`X-lite configuration guide`})]}),_jsx(Heading,{level:`2`,id:`configuring-an-inbound-trunk`,children:`Configuring an Inbound Trunk`}),_jsx(_components.p,{children:`To configure the Freeswitch to connect to your Plivo inbound Zentrunk, first locate the root configuration of FreeSwitch on your machine. These locations vary from platform to platform.`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`For Debian Jessie GNU/Linux System, the root configuration is present at `,_jsx(_components.strong,{children:`/etc/freeswitch/`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`For Windows, the root configuration is located at `,_jsx(_components.strong,{children:`C:\\\\Program Files\\\\FreeSWITCH\\\\conf`}),`.`]}),`\n`]}),_jsx(_components.p,{children:`For Linux systems, it could be either of the following depending on your installation -`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`/usr/local/freeswitch/conf`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`/opt/freeswitch/conf`})}),`\n`]}),_jsx(_components.p,{children:`With the root configuration directory located, there are three major configurations that needs to done:`}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Create a Dial Plan.`}),`\n`,_jsx(_components.li,{children:`Create a User`}),`\n`,_jsx(_components.li,{children:`Change access control list`}),`\n`]}),_jsx(Heading,{level:`3`,id:`step-1-dialplan`,children:`Step 1: Dialplan`}),_jsxs(_components.p,{children:[`Create a new file named “03_zentrunk.xml” at `,_jsx(_components.strong,{children:`/etc/freeswitch/dialplan/default/`}),`. If you already have a dialplan prefixed by 03, you can choose the another number. Use the XML Under the context =public`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`xml`,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:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`extension`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"inboundbridge\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` continue`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"true\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \t\t\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`condition`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` field`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"destination_number\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` expression`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"^(\\\\+)?your_destination_number$\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`action`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` application`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"log\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\" Pleasewait we are connecting to plivo inbound NMS\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\t \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`action`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` application`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"set\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bypass_media=true\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \t\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`action`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` application`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"export\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:'\"sip_from_uri=${sip_from_uri}\"'}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`action`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` application`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bridge\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user/1000\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \t\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`condition`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`extension`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`]})})}),_jsx(_components.p,{children:`Values to be replaced:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`xml`,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:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`^your_destination_number$= The destination number on which you want to receive the incoming call`})}),`\n`]})})}),_jsx(Heading,{level:`3`,id:`step-2-access-control-list`,children:`Step 2: Access control list`}),_jsxs(_components.p,{children:[`Open the file acl.conf.xml at autoload_configs/acl.conf.xml. We will have to Whitelist Plivo outbound SIP IP found in `,_jsx(_components.a,{href:`/sip-trunking/`,children:`zentrunk`}),` page.`]}),_jsx(Heading,{level:`3`,id:`step-3-create-a-user`,children:`Step 3: Create a User`}),_jsx(_components.p,{children:`Open the file found at freeswitch/directory/default/1000.xml Use the below XML as a reference to edit the user 1000.`}),_jsx(CodeBlock,{filename:``,numberOfLines:`18`,language:`xml`,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:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`18`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`include`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`user`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1000\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`params`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`param`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"password\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:'\"${default_password}\"'}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`param`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"vm-password\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1000\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`params`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`variables`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`variable`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"to_allow\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"domestic,international,local\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`variable`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"accountcode\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1000\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`variable`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user_context\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"default\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`variable`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"effective_caller_id_name\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Extension 1000\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`variable`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"effective_caller_id_number\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1000\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`variable`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"outbound_caller_id_name\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:'\"$${outbound_caller_name}\"'}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`variable`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"outbound_caller_id_number\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:'\"$${outbound_caller_id}\"'}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`variable`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"callergroup\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"techsupport\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`variables`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`user`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`include`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`]})})}),_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Note:`}),\" User ID \u0026 Authorization name will be `1000` and Value of Default password will be `1234`.\"]})}),_jsxs(_components.p,{children:[`FreeSwitch instances have default users and SIP passwords preconfigured. To prevent being hacked, we recommend you change the default password.`,_jsx(_components.br,{}),`\n`,`Open `,_jsx(_components.strong,{children:`vars.xml`}),` located at `,_jsx(_components.strong,{children:`/etc/freeswitch/`}),` and edit the following line:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`xml`,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:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`X-PRE-PROCESS`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` cmd`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"set\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"default_password=set your password here\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`This change is applicable to all users under `,_jsx(_components.strong,{children:`/etc/freeswitch/directory/default/`}),`. If you want to change the password per user, navigate to `,_jsx(_components.strong,{children:`/etc/freeswitch/directory/default/`}),` and edit 1000.xml (or any user of your choice).`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`xml`,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:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`param`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"password\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"set your password here\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Execute `,_jsx(_components.strong,{children:`reloadxml`}),` in fs_cli utility after making changes to users xml.`]}),_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Note:`}),\" Freeswitch has to be restarted if any changes were made to `vars.xml`.\"]})}),_jsx(Heading,{level:`3`,id:`step4-reload-configurations`,children:`Step4: Reload Configurations`}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Load the fs_cli utility. Execute `,_jsx(_components.strong,{children:`fs_cli`}),` in your terminal.`]}),`\n`,_jsxs(_components.li,{children:[`Reload the the changes made to the XML’s. Execute `,_jsx(_components.strong,{children:`reloadxml`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Reload the ACL file. Execute `,_jsx(_components.strong,{children:`reloadacl`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Reload the dialplan Execute `,_jsx(_components.strong,{children:`Reload mod_dialplan_xml`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Restart the service . Execute `,_jsx(_components.strong,{children:`Service freeswitch restart`}),`.`]}),`\n`]}),_jsx(Heading,{level:`3`,id:`receive-an-inbound-call`,children:`Receive an inbound call`}),_jsx(_components.p,{children:`When the account is successfully enabled on X-Lite, it is ready to receive calls. Dial the number provided in the “your_destination_number$” field and the calls will first hit the Plivo inbound zentrunk and then go through your FreeSWITCH to reach your endpoint.`}),_jsxs(_components.p,{children:[`To know more about configuring X-lite for Inbound calls, check the `,_jsx(_components.a,{href:`/sip-trunking/interconnection-guides/configuring-x-lite/`,children:`X-lite configuration guide`})]})]}),_jsxs(Tab,{title:`Secure Trunking`,id:`secure-trunking`,\"data-child-heading-ids\":`[\"freeswitch-using-secure-trunking-for-outbound-calling\",\"overview-2\",\"installation-of-freeswitch-2\",\"configuring-a-secure-outbound-trunk-tls-and-srtp\",\"step-1%3A-creating-a-sip-profile-gateway\",\"step-2%3A-dialplan-2\",\"step-3-%3A-generate-ssl-certificate\",\"step-4%3A-restart-freeswitch\",\"test-your-setup-2\",\"make-an-outbound-call-2\"]`,children:[_jsx(Heading,{level:`1`,id:`freeswitch-using-secure-trunking-for-outbound-calling`,children:`FreeSwitch using Secure Trunking for Outbound calling`}),_jsx(Heading,{level:`2`,id:`overview-2`,children:`Overview`}),_jsx(_components.p,{children:`This documentation provides configuration for secure and reliable data transfer between your SIP device and Zentrunk infrastructure. This documentation was written using a Debian 9 Stretch GNU/Linux system running FreeSwitch latest release version.`}),_jsx(_components.p,{children:`To get started with Zentrunk Secure Trunking using FreeSwitch you would need to do the following:`}),_jsx(Heading,{level:`2`,id:`installation-of-freeswitch-2`,children:`Installation of FreeSwitch`}),_jsx(_components.p,{children:`On your Debian 9 Stretch system, execute the following commands in the terminal:`}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Update the Package Manager.`}),`\n`]}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`apt-get update \u0026\u0026 apt-get install -y gnupg2 wget`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.ol,{start:`2`,children:[`\n`,_jsx(_components.li,{children:`Add the Public Key of FreeSwitch package to local Package Manager.`}),`\n`]}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`wget -O - https://files.freeswitch.org/repo/deb/debian-release/fsstretch-archive-keyring.asc | apt-key add -`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.ol,{start:`3`,children:[`\n`,_jsx(_components.li,{children:`Add the FreeSwitch repository URL to the source list of local Package Manager.`}),`\n`]}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`echo \"deb http://files.freeswitch.org/repo/deb/debian-release/ stretch main\" > /etc/apt/sources.list.d/freeswitch.list`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`echo \"deb-src http://files.freeswitch.org/repo/deb/debian-release/ stretch main\" >> /etc/apt/sources.list.d/freeswitch.list`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.ol,{start:`4`,children:[`\n`,_jsx(_components.li,{children:`Install the FreeSwitch package.`}),`\n`]}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`apt-get update \u0026\u0026 apt-get install -y freeswitch-meta-all`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Heading,{level:`2`,id:`configuring-a-secure-outbound-trunk-tls-and-srtp`,children:`Configuring a Secure Outbound Trunk (TLS and SRTP)`}),_jsxs(_components.p,{children:[`To configure FreeSwitch to connect to your Plivo Secure Zentrunk, locate the root configuration of FreeSwitch on your machine. For Debian 9 Stretch GNU/Linux System, the root configuration is present at `,_jsx(_components.strong,{children:`/etc/freeswitch/`}),`.`]}),_jsxs(_components.p,{children:[`With the root configuration directory located at `,_jsx(_components.strong,{children:`/etc/freeswitch/`}),`, you must complete the following configurations:`]}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Create a new SIP Profile.`}),`\n`,_jsx(_components.li,{children:`Create a Dial Plan.`}),`\n`]}),_jsx(Heading,{level:`3`,id:`step-1-creating-a-sip-profile-gateway`,children:`Step 1: Creating a SIP Profile Gateway`}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Create a new file named “zentrunk.xml” at /etc/freeswitch/sip_profiles/external/.`}),`\n`]}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`touch /etc/freeswitch/sip_profiles/external/zentrunk.xml`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.ol,{start:`2`,children:[`\n`,_jsx(_components.li,{children:`In zentrunk.xml, create a new gateway with your Plivo Secure Zentrunk details (refer the below given images to get your Plivo Trunk details).`}),`\n`]}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`vim /etc/freeswitch/sip_profiles/external/zentrunk.xml`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`xml`,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:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`include`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`gateway`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Plivo\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`param`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"tls-version\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"tlsv1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`param`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"register-transport\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"tls\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`param`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"username\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Username for TestAuthGroup\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` />`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`param`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"password\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Password for TestAuthGroup\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` />`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`param`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"caller-id-in-from\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"true\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`param`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"proxy\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Termination SIP Domain of your Plivo Trunk\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`param`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"register\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"false\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`gateway`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`include`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`]})})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Termination SIP domain of your Plivo Outbound Trunk:`})}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/Trunk4.png?fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=93b180484b05f330f144682fd9720e60`,alt:``,\"data-og-width\":`2864`,width:`2864`,\"data-og-height\":`1612`,height:`1612`,\"data-path\":`images/Trunk4.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/Trunk4.png?w=280\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=53e6375ece82ee5053b234c02796d17e 280w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/Trunk4.png?w=560\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=ac80e517b251ceada3050654b51005df 560w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/Trunk4.png?w=840\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=e312d17a867e4301e1fb630485b69c51 840w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/Trunk4.png?w=1100\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=95804b11383d44c96ebb64e6968d7a2d 1100w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/Trunk4.png?w=1650\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=8c2effb6002a032457f7cfbe1f461545 1650w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/Trunk4.png?w=2500\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=3afc05fb32b15ac1b92a89f14387d0ec 2500w`})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Create the AUTH GROUP Credentials:`})}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/AuthGroup3.png?fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=337a0c839f17d4cdd91feac12f298e22`,alt:``,\"data-og-width\":`2862`,width:`2862`,\"data-og-height\":`1608`,height:`1608`,\"data-path\":`images/AuthGroup3.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/AuthGroup3.png?w=280\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=60936dd76adcc40703546c134bfad9c9 280w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/AuthGroup3.png?w=560\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=cde63023f1f692e00da3f731ba5ddd74 560w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/AuthGroup3.png?w=840\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=e84eff1d8cee73738f655320f40b178e 840w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/AuthGroup3.png?w=1100\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=365a4c86057f6affb7f241835433b15f 1100w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/AuthGroup3.png?w=1650\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=fb0f97406af38a918aec30daeda45cf9 1650w, https://mintcdn.com/plivo/Ac6PoKJHHxDx1U63/images/AuthGroup3.png?w=2500\u0026fit=max\u0026auto=format\u0026n=Ac6PoKJHHxDx1U63\u0026q=85\u0026s=22119387c21c47298f6cde8038b5de63 2500w`})}),_jsx(Heading,{level:`3`,id:`step-2-dialplan-2`,children:`Step 2: Dialplan`}),_jsx(_components.p,{children:`FreeSwitch creates a certain set of default dialplan xml files post installation which are not relevant for setup. Please ensure a SIP profile has been created before proceeding to create a dial plan.`}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`FreeSwitch creates a set of default xml configuration files during installation that we won’t need. We are removing them with the following commands:`}),`\n`]}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`rm -rf /etc/freeswitch/dialplan/default/`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`rm -rf /etc/freeswitch/dialplan/skinny-patterns*`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`rm /etc/freeswitch/dialplan/features.xml`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.ol,{start:`2`,children:[`\n`,_jsx(_components.li,{children:`Replace the public dialplan /etc/freeswitch/dialplan/public.xml with the following xml:`}),`\n`]}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`vim /etc/freeswitch/dialplan/public.xml`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(CodeBlock,{filename:``,numberOfLines:`15`,language:`xml`,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:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`15`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c?`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`xml`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` version`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1.0\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` encoding`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"utf-8\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`?>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`include`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`context`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"public\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`extension`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Plivo-Secure\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`condition`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` field`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"destination_number\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` expression`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"^(\\\\d+)$\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`action`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` application`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"set\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"proxy_media=false\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`action`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` application`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"set\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bypass_media=false\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`action`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` application`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"export\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"nolocal:rtp_secure_media=true:AES_CM_128_HMAC_SHA1_80\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`action`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` application`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"set\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"dialed_number=$1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`action`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` application`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"log\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:'\"INFO Processing for plivo Secure ${dialed_number}\"'}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`action`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` application`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bridge\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sofia/gateway/Plivo/$1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`condition`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`extension`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`include`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`]})})}),_jsx(Heading,{level:`3`,id:`step-3--generate-ssl-certificate`,children:`Step 3 : Generate SSL Certificate`}),_jsx(_components.p,{children:`You could generate the certificate as described here`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`1 - Generate the CA (Root) Certificate`})}),_jsx(_components.p,{children:`To use TLS/SSL you need at least two certificates: the root (CA) certificate and a certificate for every server. There is a script at`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`_/{prefix}/freeswitch/bin/gentls_cert _or within the source tarball _{tarball}/scripts/gentls_cert`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`that helps generate these files. Assuming that the DNS name of your FreeSWITCH PBX is pbx.mydomain.tld, with`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`/usr/bin/gentls_cert setup -cn pbx.mydomain.tld -alt DNS:pbx.mydomain.tld -org mydomain.tld`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`This will create CA certificate and key along with in /etc/freeswitch/tls/CA directory and certificate in the /etc/freeswitch/tls folder.`}),_jsx(CodeBlock,{numberOfLines:`8`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Output: `})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`root@ip-x.x.x.x:/etc/freeswitch/dialplan# /usr/bin/gentls_cert setup -cn pbx.freeswitch.org -alt DNS:pbx.freeswitch.org -org freeswitch.org`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Creating new CA...`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Generating a RSA private key`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`...................................................................`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`writing new private key to '/etc/freeswitch/tls/CA/cakey.pem'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`DONE`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Note:`}),` The name given for -cn and -alt should be the same as the DNS name of your FreeSwitch installation and used as the registrar name on the phone (at least on Polycom devices). ] You can change the “DAYS=2190” line in the gentls_cert file to make the certificate valid for a longer time. However making it too long has some wrap around problem, it appears.`]})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`2 - Generate the Server Certificate`})}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`/usr/bin/gentls_cert create_server -cn pbx.freeswitch.org -alt DNS:pbx.freeswitch.org -org freeswitch.org`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(CodeBlock,{numberOfLines:`18`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`18`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Output:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`root@ip-x.x.x.x:/etc/freeswitch/dialplan# /usr/bin/gentls_cert create_server -cn pbx.freeswitch.org -alt DNS:pbx.freeswitch.org -org freeswitch.org`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Generating new certificate...`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`--------------------------------------------------------`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`CN: \"pbx.freeswitch.org\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`ORG_NAME: \"freeswitch.org\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`ALT_NAME: \"DNS:pbx.freeswitch.org\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Certificate filename \"agent.pem\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`[Is this OK? (y/N)]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`y`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Generating a RSA private key`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`.............................................................................................`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`writing new private key to '/tmp/fs-ca-15020-20190920094519.key'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Signature ok`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`subject=CN = pbx.freeswitch.org, O = freeswitch.org`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Getting CA Private Key`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`DONE`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`This creates the server certificate at /etc/freeswitch/tls/agent.pem. This file contains the certificate and the private key. It should contain the domain name in the common and alternate name. If you need to generate certificates for other servers use the -out flag for gentls_cert to specify the output certificate/key file name and copy this to the remote server.`}),_jsx(_components.p,{children:`In order for the new certificate to take effect (the only way for FreeSWITCH to use it), FreeSWITCH must be restarted.`}),_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Note`}),`: The name given for -cn and -alt should be the same as the DNS name of your FreeSwitch installation and used as the registrar name on the phone (required for Polycom devices and Eyebeam softphone).`]})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Verify your certificate`})}),_jsx(_components.p,{children:`You can review your certificate details with the following command:`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`openssl x509 -noout -inform pem -text -in /etc/freeswitch/tls/agent.pem`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`cd /etc/freeswitch/tls`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`chmod 640 agent.pem cafile.pem`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`FreeSwitch only requires the agent.pem file to act as a TLS server. It contains the certificate and the key).`}),_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Note`}),`: It is extremely important that your agent.pem (and optionally cafile.pem) have read permissions for the user FreeSwitch will run as.`]})}),_jsx(_components.p,{children:`For example, if you are starting FreeSwitch with the following option_ -u freeswitch,_ you have to give read permissions to the “freeswitch” user with the following command:`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`chown root.freeswitch agent.pem cafile.pem`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`chmod 640 agent.pem cacert.pem`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`3 - Enable TLS`})}),_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:`$`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` vim`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` /etc/freeswitch/vars.xml`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` :`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`_`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u003cX-PRE-PROCESS `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`cmd=\"set\"`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` data=\"external_ssl_enable=true\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`/`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`_`})]}),`\n`]})})}),_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:`$`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` vim`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` /etc/freeswitch/sip_profiles/external.xml`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` :`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`_`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u003cparam `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`name=\"tls-cert-dir\"`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` value=\"/etc/freeswitch/tls/\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`/`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`_`})]}),`\n`]})})}),_jsx(Heading,{level:`3`,id:`step-4-restart-freeswitch`,children:`Step 4: Restart FreeSwitch`}),_jsx(_components.p,{children:`You have to restart FreeSwitch for the changes to take effect`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`service freeswitch start`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`To check freeswitch running status:`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`service freeswitch status`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Heading,{level:`2`,id:`test-your-setup-2`,children:`Test your setup`}),_jsx(_components.p,{children:`FreeSwitch instances have default users and SIP passwords preconfigured. To prevent any intrusion, we highly recommend you to change the default password.`}),_jsx(_components.p,{children:`Open vars.xml located at /etc/freeswitch/ and edit the following line:`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\u003cX-PRE-PROCESS cmd=\"set\" data=\"default_password=set your password here\"/>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`This change is applicable for all users under /etc/freeswitch/directory/default/. If you want to change the password per user, then navigate to /etc/freeswitch/directory/default/ and edit 1000.xml (or any user of your choice).`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`vim /etc/freeswitch/directory/default/1000.xml`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`xml`,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:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`param`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"password\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"set your password here\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`variable`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user_context\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"public\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`variable`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"effective_caller_id_name\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Extension 1000\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`variable`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"effective_caller_id_number\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Your Caller ID\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`]})})}),_jsx(_components.p,{children:`Execute reloadxml in fs_cli utility after making changes to any user’s xml.`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`fs_cli -x “reloadxml”`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Heading,{level:`3`,id:`make-an-outbound-call-2`,children:`Make an Outbound Call`}),_jsx(_components.p,{children:`When the account is successfully enabled on X-Lite, it is ready to make calls. Enter any valid 11 digit US number in your X-Lite and click on the call button. This call would go to your freeswitch server first, then through Plivo Secure Zentrunk and finally reach the destination number.`}),_jsxs(_components.p,{children:[`To know more about configuring X-lite for outbound calls, check the `,_jsx(_components.a,{href:`/sip-trunking/interconnection-guides/configuring-x-lite/`,children:`X-lite configuration guide`})]})]})]})}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":" Freeswitch","sidebarTitle":"Freeswitch","description":"Configure FreeSwitch with Zentrunk — regular and secure SIP trunking","href":"/sip-trunking/interconnection-guides/freeswitch"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Zentrunk \u0026 Freeswitch - Regular Trunking","slug":"zentrunk-\u0026-freeswitch-regular-trunking","depth":1,"children":[],"tabId":"regular-trunking"},{"title":"Overview","slug":"overview","depth":2,"children":[],"tabId":"regular-trunking"},{"title":"Installation of Freeswitch","slug":"installation-of-freeswitch","depth":2,"children":[],"tabId":"regular-trunking"},{"title":"Configuring an Outbound Trunk","slug":"configuring-an-outbound-trunk","depth":2,"children":[{"title":"Step 1: Sip Profile","slug":"step-1-sip-profile","depth":3,"children":[],"tabId":"regular-trunking"},{"title":"Termination SIP Domain of your Plivo Trunk:","slug":"termination-sip-domain-of-your-plivo-trunk","depth":4,"children":[],"tabId":"regular-trunking"},{"title":"TestAuthGroup Credentials:","slug":"testauthgroup-credentials","depth":4,"children":[],"tabId":"regular-trunking"},{"title":"Step 2: Dialplan","slug":"step-2-dialplan","depth":3,"children":[],"tabId":"regular-trunking"},{"title":"Step 3: Reload Configurations","slug":"step-3-reload-configurations","depth":3,"children":[],"tabId":"regular-trunking"}],"tabId":"regular-trunking"},{"title":"Test your setup","slug":"test-your-setup","depth":2,"children":[{"title":"Make an outbound call","slug":"make-an-outbound-call","depth":3,"children":[],"tabId":"regular-trunking"}],"tabId":"regular-trunking"},{"title":"Configuring an Inbound Trunk","slug":"configuring-an-inbound-trunk","depth":2,"children":[{"title":"Step 1: Dialplan","slug":"step-1-dialplan","depth":3,"children":[],"tabId":"regular-trunking"},{"title":"Step 2: Access control list","slug":"step-2-access-control-list","depth":3,"children":[],"tabId":"regular-trunking"},{"title":"Step 3: Create a User","slug":"step-3-create-a-user","depth":3,"children":[],"tabId":"regular-trunking"},{"title":"Step4: Reload Configurations","slug":"step4-reload-configurations","depth":3,"children":[],"tabId":"regular-trunking"},{"title":"Receive an inbound call","slug":"receive-an-inbound-call","depth":3,"children":[],"tabId":"regular-trunking"}],"tabId":"regular-trunking"},{"title":"FreeSwitch using Secure Trunking for Outbound calling","slug":"freeswitch-using-secure-trunking-for-outbound-calling","depth":1,"children":[],"tabId":"secure-trunking"},{"title":"Overview","slug":"overview-2","depth":2,"children":[],"tabId":"secure-trunking"},{"title":"Installation of FreeSwitch","slug":"installation-of-freeswitch-2","depth":2,"children":[],"tabId":"secure-trunking"},{"title":"Configuring a Secure Outbound Trunk (TLS and SRTP)","slug":"configuring-a-secure-outbound-trunk-tls-and-srtp","depth":2,"children":[{"title":"Step 1: Creating a SIP Profile Gateway","slug":"step-1-creating-a-sip-profile-gateway","depth":3,"children":[],"tabId":"secure-trunking"},{"title":"Step 2: Dialplan","slug":"step-2-dialplan-2","depth":3,"children":[],"tabId":"secure-trunking"},{"title":"Step 3 : Generate SSL Certificate","slug":"step-3--generate-ssl-certificate","depth":3,"children":[],"tabId":"secure-trunking"},{"title":"Step 4: Restart FreeSwitch","slug":"step-4-restart-freeswitch","depth":3,"children":[],"tabId":"secure-trunking"}],"tabId":"secure-trunking"},{"title":"Test your setup","slug":"test-your-setup-2","depth":2,"children":[{"title":"Make an Outbound Call","slug":"make-an-outbound-call-2","depth":3,"children":[],"tabId":"secure-trunking"}],"tabId":"secure-trunking"}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/plivo/65a712f3b49f9843/hubspot.js"],"subdomain":"plivo","siteName":"Plivo","title":" Freeswitch - Plivo","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-04-30T15:50:32.082Z","originalFileLocation":"sip-trunking/interconnection-guides/freeswitch.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=\"Configure FreeSwitch with Zentrunk — regular and secure SIP trunking\">\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=\" Freeswitch - Plivo\">\u003cmeta data-mint-head property=\"og:description\" content=\"Configure FreeSwitch with Zentrunk — regular and secure SIP trunking\">\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/freeswitch\">\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=+Freeswitch\u0026amp;description=Configure+FreeSwitch+with+Zentrunk+%E2%80%94+regular+and+secure+SIP+trunking\u0026amp;theme=0904848171be9743c76b0ea8\u0026amp;signature=7875d840f0b56923b3412e2bf77c17baacdc8b934324f3225cd04ec134a3384e\">\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=\" Freeswitch - Plivo\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Configure FreeSwitch with Zentrunk — regular and secure SIP trunking\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://plivo.mintlify.app/_mintlify/api/og/v2?division=Supported+Platforms\u0026amp;title=+Freeswitch\u0026amp;description=Configure+FreeSwitch+with+Zentrunk+%E2%80%94+regular+and+secure+SIP+trunking\u0026amp;theme=0904848171be9743c76b0ea8\u0026amp;signature=7875d840f0b56923b3412e2bf77c17baacdc8b934324f3225cd04ec134a3384e\">\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/freeswitch\">\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/freeswitch.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/freeswitch#webpage\",\"url\":\"https://plivo.com/docs/sip-trunking/interconnection-guides/freeswitch\",\"name\":\" Freeswitch\",\"description\":\"Configure FreeSwitch with Zentrunk — regular and secure SIP trunking\",\"dateModified\":\"2026-04-30T15:50:32.082Z\",\"isPartOf\":{\"@id\":\"https://plivo.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://plivo.com/docs/sip-trunking/interconnection-guides/freeswitch#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://plivo.com/docs/sip-trunking/interconnection-guides/freeswitch#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"PBX Integration\",\"item\":\"https://plivo.com/docs/sip-trunking/interconnection-guides/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\" Freeswitch\",\"item\":\"https://plivo.com/docs/sip-trunking/interconnection-guides/freeswitch\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://plivo.com/docs/sip-trunking/interconnection-guides/freeswitch#article\",\"headline\":\" Freeswitch\",\"name\":\" Freeswitch\",\"description\":\"Configure FreeSwitch with Zentrunk — regular and secure SIP trunking\",\"url\":\"https://plivo.com/docs/sip-trunking/interconnection-guides/freeswitch\",\"mainEntityOfPage\":{\"@id\":\"https://plivo.com/docs/sip-trunking/interconnection-guides/freeswitch#webpage\"},\"dateModified\":\"2026-04-30T15:50:32.082Z\",\"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","description":"Set up Bria Solo softphone with Zentrunk — test inbound and outbound calls","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","description":"Configure Asterisk with Zentrunk — regular and secure SIP trunking","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","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","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"}]}]},"basePath":"","title":" Freeswitch - Plivo","buildId":"dpl_Acry4NrQAgjcikyFgVE2eJ7XQCAv","deploymentId":"dpl_Acry4NrQAgjcikyFgVE2eJ7XQCAv","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-D9VvKFqQ.js","DynamicMarkdown-BCpKo5ib.js","zoom-image-lightbox-DBRtNxbY.js","lightbox-handle-r17bVUz3.js"]}