# SMPP ESME Trunk

An SMPP ESME (External Short Messaging Entity) trunk lets your application connect directly to the DIDWW SMSC (Short
Message Service Center) to send and receive SMS. This provides a fast, reliable solution for real-time
application-to-person (A2P) messaging. Two-way communication is supported when you assign one or more DIDs with inbound
SMS to the SMPP ESME trunk.

**Create Trunk**

Create and configure a new SMPP ESME Trunk.

[Create SMPP ESME Trunk](#user-panel-sms-smpp-esme-create)

**View or Regenerate Credentials**

Access or update your System ID and password.

[View or Regenerate Credentials](#user-panel-sms-smpp-esme-credentials)

**Bind SMPP ESME Trunk**

Connect your application using the trunk credentials.

[Bind SMPP ESME Trunk](#user-panel-sms-smpp-esme-bind)

**Edit Trunk**

Update the settings of an existing trunk.

[Edit SMPP ESME Trunk](#user-panel-sms-smpp-esme-edit)

**Delete Trunk(s)**

Remove one or more trunks from your account.

[Delete SMPP ESME Trunk(s)](#user-panel-sms-smpp-esme-delete)

---



## Create SMPP ESME Trunk

### Step 1: Start Creating SMPP ESME Trunk

In the user panel menu, navigate to **SMS > SMS Trunks**. Click the **Create New** button and select **SMPP ESME** from
the dropdown menu.

[![Navigating to create a new SMPP ESME Trunk.](../../_images/fig165.png)](../../_images/fig165.png)


**Fig. 1.** Navigating to create a new SMPP ESME Trunk.

### Step 2: Configure SMPP ESME Trunk

Enter the general information required to configure your SMPP ESME trunk. Provide a unique friendly name, select the
**Server location**, specify which IP addresses are authorized to connect, and optionally define a system type to
categorize your ESME binding.

[![The Create SMPP ESME Trunk configuration page with Server location in the General section.](../../_images/fig22.webp)](../../_images/fig22.webp)


**Fig. 2.** The SMPP ESME Trunk configuration page.

#### General Settings

> | Setting | Description |
> | --- | --- |
> | **Friendly name** | A unique name to identify this trunk. |
> | **Server location** | The DIDWW SMPP server location for the trunk: **US, NY** or **NL, AMS**.   The location determines the host your application binds to. The host is shown in the trunk's [Credentials](#user-panel-sms-smpp-esme-credentials) window. |
> | **Allowed IP addresses** | IP addresses from which access to the API is allowed in the format (IPv4|IPv6)[/mask] (not mandatory).   Allow all IP addresses if empty. |
> | **System type** | The system\_type parameter is used to categorize the type of ESME that is binding to the SMSC.   Examples include "VMS" (voice mail system) and "OTA" (over-the-air activation system). |

Important

Your application connects to the DIDWW SMPP server of the trunk's **Server location**. Your firewall must allow your
application to open connections to that server's IP address. See [Server locations and IP
addresses](technical-data/smpp-specification.html#smpp-endpoints).

#### Source Address Settings

The **Source Address Settings** section controls which DID numbers can be used as the sender ID for outbound SMS.

Use the **Allow any DID(s) for SMS OUT** toggle to choose how sender IDs are assigned:

> - **Toggle on (default):** All DIDs with Outbound P2P SMS enabled in your account can be used as the sender ID.
> - **Toggle off:** You can specify which DIDs are allowed. To do this, select numbers from the **Available Source Addresses** list and add them to the **Allowed Source Addresses** list. Only the numbers you add will be available as sender IDs.

[![Selecting and allowing specific DIDs to be used as source addresses.](../../_images/gif18.gif)](../../_images/gif18.gif)


**Fig. 3.** Authorizing specific DIDs as sender IDs.

Note

When the **Allow any DID(s) for SMS OUT** toggle is turned off, the **Available Sender IDs** list shows only DIDs that
support outbound P2P SMS.

#### Trunk Group Configuration (Optional)

You may assign the trunk to an existing trunk group in order to enable failover or load-balancing. Within the trunk
group, you can also define the trunk's **priority**, which determines the order in which trunks will be used.

Note

The system attempts to contact the target SMS trunk with the highest-numbered priority first.

[![Trunk Group configuration section for SMPP ESME Trunk.](../../_images/fig334.png)](../../_images/fig334.png)


**Fig. 4.** Trunk Group configuration section for SMPP ESME Trunk.

### Step 3: Create the SMPP ESME Trunk

Once you have entered all required fields, click **Create** at the bottom of the page to save the new trunk. The trunk
credentials (System ID, Password, Host, and Port) will then be available for you to use when binding your application to
the DIDWW SMSC. The **Host** matches the **Server location** defined in the trunk settings.

Note

For detailed instructions on how to connect, see [Bind SMPP ESME Trunk](#user-panel-sms-smpp-esme-bind).

### Step 4: Assign the SMPP ESME Trunk to DIDs (Inbound SMS Only)

Note

You only need to assign DIDs if you want to receive inbound SMS. For outbound SMS, DID assignment is not required.

To receive SMS on this trunk, assign one or more DIDs that support inbound SMS. Messages sent to those DIDs are then
delivered to your SMPP connection. For detailed steps, see [Assign an SMS
trunk](../../phone-numbers/my-numbers/how-to-guides/assign-sms-trunk.html#assigning-sms-trunk).

---

## View or Regenerate Credentials

> 1. Navigate to **SMS > SMS Trunks** in the user panel.
> 2. Locate the SMPP ESME trunk.
> 3. Click the ![Credentials button](../../_images/key.png) key icon in the **Credentials** column to open the credentials window.

![The credentials button in the SMS Trunks list.](../../_images/credentials_button.png)


**Fig. 5.** Credentials button.

*View Credentials*

In the credentials pop-up window, you can view the SMPP ESME connection details. Click the **eye** icon to show the
password.

The **Host** depends on the trunk's **Server location**:

| Server location | Host |
| --- | --- |
| **US, NY** | `us.sms-out.didww.com` |
| **NL, AMS** | `eu.sms-out.didww.com` |

![Viewing credentials for an SMPP ESME Trunk.](../../_images/credentials.png)


**Fig. 6.** Viewing credentials for a trunk with **Server location** set to **US, NY**.


*Regenerate Credentials*

Important

The password is updated immediately when you regenerate credentials. Update all integrations right away to avoid
authentication failures.

1. In the credentials pop-up window, click **Regenerate** next to the **Password** field to generate new credentials.
2. Copy the new **System ID** and **Password**, and update all systems that use these credentials.

![Regenerating the password for an SMPP ESME Trunk.](../../_images/credentials-regenerate.png)


**Fig. 7.** Regenerating credentials.

---

## Bind SMPP ESME Trunk

Configure your application to connect (or "bind") to the DIDWW SMSC gateway using the credentials of your SMPP ESME
trunk.



### Before You Begin

> 1. Make sure you have an SMPP ESME trunk configured in the DIDWW User Panel. If you don't have one yet, see instruction in [Create an SMPP ESME Trunk](#user-panel-sms-smpp-esme-create).
> 2. Have the trunk's credentials ready (Host, Port, System ID, Password, and System Type).
> 3. Make sure your firewall allows your application to open connections to the IP address of the trunk's **Server location**. See [Server locations and IP addresses](technical-data/smpp-specification.html#smpp-endpoints).

### Mandatory SMPP ESME Bind Parameters

> | Parameter | Value |
> | --- | --- |
> | **host** | The **Host** from the trunk's [Credentials](#user-panel-sms-smpp-esme-credentials). It matches the trunk's **Server location**: `us.sms-out.didww.com` for **US, NY** or `eu.sms-out.didww.com` for **NL, AMS**. |
> | **port** | `2775` for SMPP over plain TCP, or `2776` for SMPP over TLS. Both ports use the same credentials. |
> | **system\_id** | The **System ID** from the trunk's [Credentials](#user-panel-sms-smpp-esme-credentials). |
> | **password** | The **Password** from the trunk's [Credentials](#user-panel-sms-smpp-esme-credentials). |
> | **system\_type** | The value you defined in the trunk's **System type** field. |

Note

- On port `2776`, your application establishes the TLS connection before it sends the bind request. For the certificate hostname to verify, see [SMPP over TLS](technical-data/smpp-specification.html#smpp-tls).
- For complete technical details, including encoding, concatenated messages, and all available endpoints, refer to our [SMPP Specifications](technical-data/smpp-specification.html#service-incoming-sms) guide.

### Check SMPP ESME Bind Status

After configuring your application to bind, you can verify the connection status directly from the user panel:

> 1. Navigate to the **SMS > SMS Trunks** list page.
> 2. Locate the trunk and click the ![Actions button](../../_images/three_dots_action_button1.png) button next to it.
> 3. Select **Check Status** from the dropdown menu.

A pop-up will display the current connection status of your trunk (e.g., "Connected" or "Not Connected").

[![Check bind status button.](../../_images/check_status.png)](../../_images/check_status.png)


**Fig. 8.** Check bind status button.



---

## Edit SMPP ESME Trunk

> 1. In the user panel menu, navigate to **SMS > SMS Trunks**.
> 2. Locate the trunk you wish to edit and click the ![Actions button](../../_images/three_dots_action_button1.png) button next to it.
> 3. Select **Edit** from the dropdown menu.
> 4. On the **Edit SMPP ESME Trunk** page, modify the settings as needed.
> 5. Click **Submit** to apply your changes.

To move the trunk to another DIDWW SMPP server location, select a different **Server location** and click **Submit**.
The trunk's credentials then show the host for the new location. Update your application to bind to that host.

Important

Before you save a new **Server location**, make sure your firewall allows your application to open connections to the IP
address of the new location. See [Server locations and IP
addresses](technical-data/smpp-specification.html#smpp-endpoints).

[![Edit action for SMPP ESME Trunk.](../../_images/fig_actions_edit.png)](../../_images/fig_actions_edit.png)


**Fig. 9.** Edit action for SMPP ESME Trunk.



---

## Delete SMPP ESME Trunk(s)

You can delete a single SMPP ESME trunk or multiple trunks at once by using batch actions.

*Delete a Single Trunk*

1. Navigate to the **SMS Trunks** list page.
2. Locate the trunk you wish to remove and click the ![Actions button](../../_images/three_dots_action_button1.png) button next to it.
3. Select **Delete** from the dropdown menu.
4. In the confirmation pop-up window, click **Delete** to permanently remove the trunk.

[![Delete action for SMPP ESME Trunk.](../../_images/fig914.png)](../../_images/fig914.png)


**Fig. 10.** Delete action for SMPP ESME Trunk.


*Delete Multiple Trunks*

1. Navigate to the **SMS Trunks** list page.
2. Select the trunks you wish to delete by checking the boxes next to them.
3. At the bottom of the page, click **Batch Actions** and select **Delete Trunks**.
4. In the confirmation pop-up window, click **Delete** to permanently remove the selected trunks.

![Batch delete action for SMPP ESME Trunks.](../../_images/fig108.png)


**Fig. 11.** Batch delete action for SMPP ESME Trunks.

---

## Related Resources

**SMPP Specification**

Review detailed protocol information, including encoding, concatenation, and all available DIDWW endpoints.

[SMPP Specifications](technical-data/smpp-specification.html#service-incoming-sms)

**Assign an SMS trunk**

Learn how to assign your newly created trunk to one or more DID numbers to start receiving messages.

[Assign an SMS trunk](../../phone-numbers/my-numbers/how-to-guides/assign-sms-trunk.html#assigning-sms-trunk)

**Send and receive SMS with OpenSIPS**

Connect OpenSIPS 4.0 to an SMPP ESME trunk to send SMS, receive SMS, and receive delivery receipts.

[SMS over SMPP](../../integrations/opensips/sms.html#opensips-sms-integration)

**Sender ID Verifications**

Register sender IDs for Application-to-Person (A2P) messaging.

[Sender ID Verifications](../sender-id-verifications/index.html#user-panel-sms-campaign)

On this page
