# Accept SMPP SMSC bind requests

Configure your SMSC to accept the bind requests from DIDWW. With an SMPP SMSC
trunk, DIDWW connects to your SMSC as an ESME, with the connection details and
credentials that you entered in the trunk. After the trunk is created, DIDWW
starts the bind process automatically. You do not need to initiate the
connection.

To connect your own application to DIDWW instead, see [Bind an SMPP ESME
trunk](../../smpp-esme/how-to-guides/bind-smpp-esme-trunk.html#user-panel-sms-smpp-esme-bind).

## Before you begin

- An active DIDWW account is required. [Sign in to DIDWW](https://my.didww.com/users/sign_in).
- An SMPP SMSC trunk is required. If you do not have one, see [Create an
  SMPP SMSC trunk](create-smpp-smsc-trunk.html).
- Your SMSC must run an SMPP service that accepts bind requests from external
  ESMEs.

## Step 1: Allow connections from DIDWW

DIDWW connects to your SMSC from the DIDWW SMPP server of the trunk's
**Server location**.

1. In [Server locations and IP addresses](../../technical-data/smpp-specification.html#smpp-endpoints), find the IP
   address of the trunk's **Server location**.
2. Configure your firewall to accept connections from that IP address on the
   **TX port** of your SMSC. When **Transceiver mode** is off, also accept
   them on the **RX port**.

## Step 2: Configure your SMSC to accept the bind

DIDWW binds to your SMSC with the parameters listed in [Mandatory SMPP
SMSC bind parameters](#smpp-smsc-bind-parameters).

1. Configure your SMSC to accept the bind requests that DIDWW sends to the
   **Host** and ports of the trunk. When **Transceiver mode** is off, accept
   `bind_transmitter` on the **TX port** and `bind_receiver` on the **RX
   port**. When **Transceiver mode** is on, accept `bind_transceiver` on the
   **TX port**.
2. Configure your SMSC to validate the bind requests with the **System ID** and
   **Password** that you entered in the trunk. If the trunk has a **System
   type**, DIDWW also sends it as `system_type`.
3. If **Use SSL** is on, configure your SMSC to accept TLS connections on these
   ports. DIDWW establishes TLS before it sends the bind request.

For the PDUs exchanged over the bind, encoding, and concatenated messages, see
the [SMPP specification](../../technical-data/smpp-specification.html#service-incoming-sms).

### Mandatory SMPP SMSC bind parameters

DIDWW uses these parameters when it binds to your SMSC as an ESME. For the
field definitions, defaults, and ranges, see [General
settings](../smpp-smsc-trunk-settings-reference.html#smpp-smsc-settings-general).

| Parameter | Description |
| --- | --- |
| **system\_id** | The System ID that your SMSC requires for authentication. |
| **password** | The password that your SMSC requires for authentication. |
| **host** | The public hostname or IP address of your SMSC server. |
| **TX port** | The port of your SMSC for the transmitter session, or for the transceiver session when **Transceiver mode** is on. |
| **RX port** | The port of your SMSC for the receiver session. Used only when **Transceiver mode** is off. |
| **system\_type** | Optional. The trunk's **System type**, for example `VMS` (voice mail system) or `OTA` (over-the-air activation). |

## Step 3: Confirm the bind

1. In the logs of your SMSC, check that the bind requests from the IP address
   of the trunk's **Server location** are answered with the `ESME_ROK`
   (`0x00000000`) command status. If a connection attempt fails, DIDWW
   retries it after the trunk's **Connection timeout**.
2. In the DIDWW User Panel, check the trunk's connection status. See
   [Check SMPP SMSC trunk connection status](check-smpp-smsc-trunk-connection-status.html). The status shows one session
   per port: **TX** and **RX** when **Transceiver mode** is off, or one
   transceiver session when it is on. While DIDWW cannot bind to your SMSC,
   **Status** shows `CONNECTING` and **Last Error** shows the reason, for
   example `Connection timed out`.

## Next steps

- To receive SMS, [assign the trunk](../../../../phone-numbers/my-numbers/how-to-guides/assign-sms-trunk.html#assigning-sms-trunk) to one or more
  DIDs that support inbound SMS. DIDWW then delivers messages sent to those
  DIDs to your SMSC.
- To send A2P messages with a verified Sender ID, associate an active
  [Sender ID Verification](../../../sender-id-verifications/index.html) with the
  trunk.

## Related resources

- [SMPP specification](../../technical-data/smpp-specification.html#service-incoming-sms) - Review the protocol,
  message flow, encoding, and other technical details.
- [Server locations and IP addresses](../../technical-data/smpp-specification.html#smpp-endpoints) - Look up the IP
  address of each DIDWW SMPP server location.
- [SMPP SMSC trunk settings reference](../smpp-smsc-trunk-settings-reference.html) -
  Look up the trunk fields that define these bind parameters.
- [Manage SMPP SMSC trunks](manage-smpp-smsc-trunk.html) - Change the
  connection settings or credentials of the trunk.
- [SMPP SMSC trunk](../smpp-smsc-trunk.html) - Understand the bind direction
  and message exchange.
