> ## Documentation Index
> Fetch the complete documentation index at: https://developers.nlpearl.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom VoIP Integration

> Learn how to integrate your own VoIP service with NLPearl.AI.

<div className="block dark:hidden">
  <Frame>
    <div className="p-1">
      <img src="https://mintcdn.com/nlpearl/zHQFKodWEnahK9ly/images/dark_mode/custom-voip-cover.svg?fit=max&auto=format&n=zHQFKodWEnahK9ly&q=85&s=de77cae40715df9748c4490bc14be274" alt="Custom VoIP Integration cover" className="rounded-[14px]" width="1048" height="720" data-path="images/dark_mode/custom-voip-cover.svg" />
    </div>
  </Frame>
</div>

<div className="hidden dark:block">
  <Frame>
    <div className="p-1">
      <img src="https://mintcdn.com/nlpearl/zHQFKodWEnahK9ly/images/dark_mode/custom-voip-cover.svg?fit=max&auto=format&n=zHQFKodWEnahK9ly&q=85&s=de77cae40715df9748c4490bc14be274" alt="Custom VoIP Integration cover" className="rounded-[14px]" width="1048" height="720" data-path="images/dark_mode/custom-voip-cover.svg" />
    </div>
  </Frame>
</div>

Integrate your own VoIP service with NLPearl to use your existing phone numbers for inbound and outbound calls. This flexibility allows you to leverage your current VoIP infrastructure while benefiting from NLPearl.AI’s advanced features.

***

### How to Integrate Your Custom VoIP Service

To integrate your custom VoIP service, follow these steps:

<Steps>
  <Step title="Go to Phone Numbers Settings">
    Start by clicking your **profile card** at the bottom-left corner of the sidebar, then open **Settings**.

    <Frame>
      <img src="https://mintcdn.com/nlpearl/5aa5Rk7qHypaYdNc/images/dark_mode/go-to-settings.png?fit=max&auto=format&n=5aa5Rk7qHypaYdNc&q=85&s=dfc9db0b75112fe19e8e8212903ca193" alt="Open Settings from the profile card" className="rounded-[14px]" width="5120" height="2880" data-path="images/dark_mode/go-to-settings.png" />
    </Frame>

    From there, open the **Phone Numbers** tab to manage the numbers linked to your account.

    <Frame>
      <img src="https://mintcdn.com/nlpearl/zHQFKodWEnahK9ly/images/dark_mode/choose-phone-number-in-settings.png?fit=max&auto=format&n=zHQFKodWEnahK9ly&q=85&s=24c047eabb48b8ff854c0e7e56bfb678" alt="Phone Numbers tab in Settings" className="rounded-[14px]" width="5120" height="2880" data-path="images/dark_mode/choose-phone-number-in-settings.png" />
    </Frame>
  </Step>

  <Step title="Click on Custom VoIP">
    In the **Phone Numbers** tab, locate the **Custom VoIP** row and click **Add Custom VoIP** to start setting up your own provider.

    <Frame>
      <img src="https://mintcdn.com/nlpearl/zHQFKodWEnahK9ly/images/dark_mode/custom-voip-choose.png?fit=max&auto=format&n=zHQFKodWEnahK9ly&q=85&s=4b9e2bc0165de65846eef21725cf267a" alt="Add Custom VoIP from the Phone Numbers settings" className="rounded-[14px]" width="5120" height="2880" data-path="images/dark_mode/custom-voip-choose.png" />
    </Frame>
  </Step>

  <Step title="Add Phone Number">
    Enter the phone number you want to associate with this custom VoIP configuration.

    <Note>
      Enter it in **E.164 format** (digits only, with an optional leading `+`). This label is mainly for display (DID number, extension, etc.) and doesn't have to be a routable number, but it must be numeric.
    </Note>

    <Frame>
      <img src="https://mintcdn.com/nlpearl/zHQFKodWEnahK9ly/images/dark_mode/custom-voip-enter-phone-number.png?fit=max&auto=format&n=zHQFKodWEnahK9ly&q=85&s=035aeb60015bf3540d929935cfa7d549" alt="Enter the phone number for your custom VoIP configuration" className="rounded-[14px]" width="5120" height="2880" data-path="images/dark_mode/custom-voip-enter-phone-number.png" />
    </Frame>
  </Step>

  <Step title="Configure Inbound and/or Outbound">
    After adding the number, you land on a setup screen with two cards — **Inbound Configuration** and **Outbound Configuration** — each showing a **Configured** / **Not Configured** badge. Configure the direction(s) you need (one or both), then click **Finish Setup**.

    <Frame>
      <img src="https://mintcdn.com/nlpearl/zHQFKodWEnahK9ly/images/dark_mode/custom-voip-choose-inbound-outbound.png?fit=max&auto=format&n=zHQFKodWEnahK9ly&q=85&s=0ba52b45289f2f68ac159fe0782582b7" alt="Choose to configure inbound and/or outbound" className="rounded-[14px]" width="5120" height="2880" data-path="images/dark_mode/custom-voip-choose-inbound-outbound.png" />
    </Frame>
  </Step>

  <Step title="Configure Your VoIP Settings">
    <Card>
      ### Inbound Configuration Settings

      <Steps>
        <Step title="TLS (SRTP) Encryption">
          Secures your VoIP traffic by encrypting both the signaling (via TLS) and media (via SRTP). Activate this toggle **only** if your VoIP provider requires it.

          <Tip>
            **When to Enable It:**

            * Your SIP provider specifically mentions TLS or SRTP support.
            * You want to ensure secure, encrypted voice communication (e.g., for compliance or privacy reasons).

            **When to Leave It Off:**

            * Your provider doesn’t support TLS/SRTP, enabling it may block calls or cause failed connections.
            * You’re using basic test environments or local SIP servers without encryption.
          </Tip>

          <Frame>
            <img src="https://mintcdn.com/nlpearl/zHQFKodWEnahK9ly/images/dark_mode/custom-voip-inbound-tls.png?fit=max&auto=format&n=zHQFKodWEnahK9ly&q=85&s=ac874412daa9bea73fd2f5dcff5a860c" alt="Inbound TLS (SRTP) encryption toggle" className="rounded-[14px]" width="5120" height="2880" data-path="images/dark_mode/custom-voip-inbound-tls.png" />
          </Frame>
        </Step>

        <Step title="Authentication Methods">
          <Info>
            Inbound calls require **at least one** authentication method. Enable **IP Address** and/or **Credentials** authentication (you can use both).
          </Info>

          **IP Address Authentication:**

          Allow traffic from specific IP addresses, ideal if your VoIP infrastructure has a static IP.

          IP Address:
          Enter the public IP address(es) of your SIP servers so we can accept and process requests from them.

          <Frame>
            <img src="https://mintcdn.com/nlpearl/zHQFKodWEnahK9ly/images/dark_mode/custom-voip-inbound-ip-auth.png?fit=max&auto=format&n=zHQFKodWEnahK9ly&q=85&s=195463e3ad5d304a288e01067dda8ca2" alt="Inbound IP-based authentication" className="rounded-[14px]" width="5120" height="2880" data-path="images/dark_mode/custom-voip-inbound-ip-auth.png" />
          </Frame>

          ***

          **Credentials Authentication:**

          Use a username and password to authenticate each incoming SIP request.

          Username: 2–32 characters, using letters, digits, hyphens (`-`) and underscores (`_`) only. <br />
          Password: At least 12 characters, with at least one uppercase letter, one lowercase letter, and one digit. Letters and digits only — **special characters are not allowed**.

          <Tip>
            This method is useful if your infrastructure is cloud-based and IPs can change, or you want multi-tenant control.
          </Tip>

          <Frame>
            <img src="https://mintcdn.com/nlpearl/zHQFKodWEnahK9ly/images/dark_mode/custom-voip-inbound-credential-auth.png?fit=max&auto=format&n=zHQFKodWEnahK9ly&q=85&s=a511ae12ab2ff651e939c42ab3e6100b" alt="Inbound credential-based authentication" className="rounded-[14px]" width="5120" height="2880" data-path="images/dark_mode/custom-voip-inbound-credential-auth.png" />
          </Frame>
        </Step>

        <Step title="Copy Your SIP Domain">
          After you save the inbound configuration, NLPearl generates a **SIP Domain** for this number. This is what tells your provider where to send incoming calls so they reach the platform.

          <Info>
            The SIP Domain isn't something you type. It's created automatically and shown **read-only** at the top of the **Inbound Configuration** card, with a **Copy** button. It only appears **once the inbound configuration has been saved**, so reopen the card afterward to retrieve it.
          </Info>

          <Frame>
            <img src="https://mintcdn.com/nlpearl/zHQFKodWEnahK9ly/images/dark_mode/custom-voip-inbound-sip-domain.png?fit=max&auto=format&n=zHQFKodWEnahK9ly&q=85&s=6f602626c50d5e2b8354ee0fdc67933b" alt="SIP Domain shown read-only with a Copy button in the Inbound Configuration" className="rounded-[14px]" width="5120" height="2880" data-path="images/dark_mode/custom-voip-inbound-sip-domain.png" />
          </Frame>

          <Warning>
            **To finish connecting inbound calls:**

            1. Save the inbound configuration, then reopen the **Inbound Configuration** card.
            2. Copy the generated **SIP Domain**.
            3. Add it to your VoIP provider / PBX as the **destination for inbound calls**, so your operator routes incoming calls to NLPearl.
            4. If you enabled **Credentials Authentication**, also add the **username and password** you defined here to your VoIP settings so authentication succeeds.
          </Warning>
        </Step>
      </Steps>
    </Card>

    ***

    <Card>
      ### Outbound Configuration Settings

      <Steps>
        <Step title="TLS (SRTP) Encryption">
          Secures your VoIP traffic by encrypting both the signaling (via TLS) and media (via SRTP). Activate this toggle **only** if your VoIP provider requires it.

          <Tip>
            **When to Enable It:**

            * Your SIP provider specifically mentions TLS or SRTP support.
            * You want to ensure secure, encrypted voice communication (e.g., for compliance or privacy reasons).

            **When to Leave It Off:**

            * Your provider doesn’t support TLS/SRTP, enabling it may block calls or cause failed connections.
            * You’re using basic test environments or local SIP servers without encryption.
          </Tip>

          <Frame>
            <img src="https://mintcdn.com/nlpearl/zHQFKodWEnahK9ly/images/dark_mode/custom-voip-outbound-tls.png?fit=max&auto=format&n=zHQFKodWEnahK9ly&q=85&s=4a1aec9f4800fabc13df5a643493bde2" alt="Outbound TLS (SRTP) encryption toggle" className="rounded-[14px]" width="5120" height="2880" data-path="images/dark_mode/custom-voip-outbound-tls.png" />
          </Frame>
        </Step>

        <Step title="SIP Trunk URL">
          This is the address your outbound calls will be sent to, typically provided by your VoIP provider. Enter it as a **domain or IP address** (this is where your calls will be routed).

          <Frame>
            <img src="https://mintcdn.com/nlpearl/zHQFKodWEnahK9ly/images/dark_mode/custom-voip-outbound-sip-trunk-url.png?fit=max&auto=format&n=zHQFKodWEnahK9ly&q=85&s=5a4e4f2efc9bf42e1345f5bbdce032f6" alt="Outbound SIP Trunk URL field" className="rounded-[14px]" width="5120" height="2880" data-path="images/dark_mode/custom-voip-outbound-sip-trunk-url.png" />
          </Frame>
        </Step>

        <Step title="User Part">
          This is the SIP user identity used in the “From” header of your outbound SIP requests. It's how your VoIP system identifies the origin of the call.

          What to enter:
          You can use one of the following formats depending on your provider:

          * A SIP username (e.g. `caller01`)
          * A DID or phone number in `E.164` format (e.g. `+1234567890`)
          * An extension (e.g. `201`)
          * A SIP URI (e.g. `caller01@example.com`), less common

          <Frame>
            <img src="https://mintcdn.com/nlpearl/zHQFKodWEnahK9ly/images/dark_mode/custom-voip-outbound-user-part.png?fit=max&auto=format&n=zHQFKodWEnahK9ly&q=85&s=828721d3cecf842fa0f8216e3532361a" alt="Outbound User Part field" className="rounded-[14px]" width="5120" height="2880" data-path="images/dark_mode/custom-voip-outbound-user-part.png" />
          </Frame>
        </Step>

        <Step title="Data Center">
          Select the network edge closest to your VoIP infrastructure to optimize call routing and reduce latency. Eight regions are available:

          | Region        | Location  |
          | ------------- | --------- |
          | North America | Virginia  |
          | North America | Oregon    |
          | Europe        | Ireland   |
          | Europe        | Frankfurt |
          | Asia Pacific  | Singapore |
          | Asia Pacific  | Tokyo     |
          | Asia Pacific  | Sydney    |
          | South America | São Paulo |

          <Frame>
            <img src="https://mintcdn.com/nlpearl/zHQFKodWEnahK9ly/images/dark_mode/custom-voip-outbound-datacenter.png?fit=max&auto=format&n=zHQFKodWEnahK9ly&q=85&s=4297790602bba2f687eee1e0a33a330a" alt="Outbound Data Center selection" className="rounded-[14px]" width="5120" height="2880" data-path="images/dark_mode/custom-voip-outbound-datacenter.png" />
          </Frame>
        </Step>

        <Step title="Transfer Call Using SIP Refer">
          This toggle enables or disables call transfers using the SIP REFER method. It is **enabled by default**.

          When enabled, it allows:

          * Transferring a live call from one destination to another without media proxying
          * Offloading media streams directly between endpoints
          * Reducing latency and server load

          <Warning>
            If you **disable** SIP REFER, NLPearl's servers stay in the media path during transfers, which results in **additional costs**. Leave it on unless your provider doesn't support SIP REFER.
          </Warning>

          <Frame>
            <img src="https://mintcdn.com/nlpearl/zHQFKodWEnahK9ly/images/dark_mode/custom-voip-outbound-transfer-call-sip.png?fit=max&auto=format&n=zHQFKodWEnahK9ly&q=85&s=30492e3e9ec23363b75d0a9101dc01c0" alt="Outbound Transfer Call Using SIP REFER toggle" className="rounded-[14px]" width="5120" height="2880" data-path="images/dark_mode/custom-voip-outbound-transfer-call-sip.png" />
          </Frame>
        </Step>

        <Step title="Authentication Methods (optional based on your VoIP)">
          **Credentials Authentication:**

          Use this method if your VoIP provider requires username/password credentials to authenticate outbound calls.

          Username:
          This is the identifier associated with your SIP account.

          Password:
          A secure password used to authenticate the SIP user.
          Make sure it meets your provider’s security requirements (e.g. minimum 12 characters, including upper/lowercase letters, a number, and a special character).

          <Frame>
            <img src="https://mintcdn.com/nlpearl/zHQFKodWEnahK9ly/images/dark_mode/custom-voip-outbound-credential-auth.png?fit=max&auto=format&n=zHQFKodWEnahK9ly&q=85&s=c44af55036b036469365abeb1a6b68c7" alt="Outbound credential-based authentication" className="rounded-[14px]" width="5120" height="2880" data-path="images/dark_mode/custom-voip-outbound-credential-auth.png" />
          </Frame>

          **Header-Based Authentication:**

          Use this method if your VoIP provider requires custom headers for SIP request authentication.

          Header Key:
          This is the name of the custom SIP header field expected by your provider (e.g., X-Custom-Auth, X-Access-Token, etc.).

          Header Value:
          The corresponding value used to validate the request (e.g., a token, API key, or static secret).
          Example: AuthZ-87!t!link

          <Note>
            Header-based auth is typically used for advanced integrations or when SIP gateways are behind proxies/firewalls that don’t support IP or credential-based auth.
            Ensure this matches exactly what your provider expects, as even small typos (like case or symbols) can lead to rejections.
          </Note>

          <Info>
            You can add several key-value pairs if needed, for example, to meet multi-token security policies.
          </Info>

          <Frame>
            <img src="https://mintcdn.com/nlpearl/zHQFKodWEnahK9ly/images/dark_mode/custom-voip-outbound-header-auth.png?fit=max&auto=format&n=zHQFKodWEnahK9ly&q=85&s=6f7f696e70f9e548b721bf2e5a53bb6b" alt="Outbound header-based authentication" className="rounded-[14px]" width="5120" height="2880" data-path="images/dark_mode/custom-voip-outbound-header-auth.png" />
          </Frame>

          * **IP Address Allow List:**\
            **IP Address:** See [Twilio's SIP Trunking IP Addresses](https://www.twilio.com/docs/sip-trunking/ip-addresses).
        </Step>
      </Steps>
    </Card>
  </Step>

  <Step title="Managing Your Custom VoIP Phone Numbers">
    Once integrated:

    * **Assign to Inbound/Outbound:**\
      You can assign your custom VoIP phone numbers to inbound or outbound campaigns within NLPearl.AI.

    <Frame>
      <img src="https://mintcdn.com/nlpearl/zHQFKodWEnahK9ly/images/dark_mode/choose-campaign-phone.png?fit=max&auto=format&n=zHQFKodWEnahK9ly&q=85&s=7e2a1e0f5a88eebafd31c322f8664f73" alt="Assign a custom VoIP number to a campaign" className="rounded-[14px]" width="5120" height="2880" data-path="images/dark_mode/choose-campaign-phone.png" />
    </Frame>

    * **Update Configuration:**\
      If any changes are needed, you can edit the VoIP settings by accessing the phone number in the Phone Numbers tab.
  </Step>
</Steps>

***

<Tip>
  ### Troubleshooting Tips

  **Connection Issues**: Double-check all configuration settings, especially SIP URLs, usernames, passwords, and IP addresses.

  **Authentication Failures**: Make sure the authentication method you've selected matches the one supported by your VoIP provider.

  **Provider Support**: If you're unsure about specific requirements, contact your VoIP provider for assistance with configuration.
</Tip>

<Info>
  ### Advantages of Custom VoIP Integration

  **Flexibility**: Leverage your existing VoIP infrastructure without switching providers or modifying your current setup.

  **Global Reach**: Access phone numbers and make calls in any region your VoIP provider supports, ideal for international teams.
</Info>

***

<Card title="Explore Other Options" icon="circle-info" iconType="light">
  <br />

  <CardGroup cols={2}>
    <Card title="NLPearl Phone Numbers" icon="mobile" iconType="light" href="/pages/nlpearl_phones">
      Purchase and manage your **NLPearl-hosted phone numbers** directly, with instant activation and native support.
    </Card>

    <Card title="Twilio Integration" icon="object-intersect" iconType="light" href="/pages/twilio_integration">
      Explore our **Twilio Integration** to access a broader range of international phone numbers.
    </Card>
  </CardGroup>

  <Info>
    **Need Assistance?**\
    If you require help with the integration process, please refer to our support resources or contact our support team for guidance.
  </Info>
</Card>
