Adapt SMS connector to your SMPP provider

Applies to V7, V8

Learn how to adapt the SMS connector to your SMPP provider. Fine tune your SMS settings to handle connection limits, set up the maximum throughput, the sending window, and encryption with TLS.

Hello, and welcome to the third SMS setup video. I’m John-Matthieu, and I will teach you how to adapt the SMS connector to most SMS providers. So let’s get started. When working with SMS, always work with your SMS service provider. They are the most knowledgeable people about SMPP issues and the details of the protocol. They also know best about specificities of their own platforms. That being said, here’s what we are going to see in that video. First, we’ll see how to handle connection limits. Most providers have a really strict limit about how many connections you can do to their platform. Then we’ll see how to set up the maximum throughput. Then we’ll see how to set the sending window. Then we’ll have a look at TLS. And finally, various other settings that may be of interest.
So first, connection limit. If you have Adobe Campaign V7 or V8, or a later version, then you have separated transmitter and receiver connections. Because transmitter and receiver connections are done by different processes, the number of connection is not symmetrical. The number of transmitter connections is the number of MTA child connections. A number you can set in the external account multiplied by the number of MTA child processes, which is defined in the MTA serverConf.xml file, multiplied by the number of MTAs, which is basically the number of containers. If you have a hosted configuration, number of MTA child processes and number of MTAs is handled by Adobe. Please note that if you use the automatic reply feature, you will have to add one set of MTA child connections to the transmitter connection pool. These connections are dedicated to sending replies. About receiver connections, because there is a single process handling receiver connections, then the number of total receiver connections are the number of MTA child connections you can set up in the external account.
If you have Adobe Campaign Standard, things are a bit different. Most of the time, ACS will use transceiver connections, meaning connections able to both send and receive messages. In that case, a total number of connections is the simultaneous connection setting in the internal account multiplied by the number of SMPP threads, which is an internal setting handled by Adobe, multiplied by the number of MTAs, which is basically the number of containers. If you have separated transmitter receiver connections instead of transceiver mode, connections are simply paired, which translates to one connection equals one transmitter and one receiver connection.
Okay, so this is the same instance we had in the second video. The most basic settings are already okay. So server ports, account, and password are already correct. So the provider said we have maximum eight connections, and we know that this instance has two MTAs and two MTA child processes per MTA. If you have a hosted solution, these parameters are provided by Adobe. So we know we have two MTAs multiplied by two child processes, meaning four child processes total, and we are allowed to create eight connections. So we can create two connections per MTA child. So let’s set this up.
Two and save. This setting can take a few minutes to be applied, but what if we set up automatic reply? For example, if we have contact at replies, this is a demo.
Then remember, it will open a new set of connections.
So if we have two here, we will have two times four plus two, meaning 10 connections. This is above eight, so we have to switch to one if you enable automatic replies. Maybe you could ask the provider to have 10 connections, for example. In that case, let’s put two MTA child connections. Two MTAs multiplied by two MTA childs, multiplied by two connections, meaning eight connections to send actual messages, plus two for automatic replies, meaning 10 connections total. This perfectly fits what the provider allows. So here you have an optimal situation. Now that we know how many connections we have, let’s set up the maximum throughput per connection.
Because the SMS throughput is expressed in SMS per second and per connection, you will have to ask the provider this maximum throughput. For example, if you have four connections, and the maximum throughput is set to 100, it means that each connection will send 100 SMS per second, meaning 400 SMS per second total. So this one is pretty straightforward. Let’s see how to set it up in Campaign. Okay, we are back in the extended generic SMPP account, and we will have to set throughput and delays. So this provider supports 100 SMS per second per connection.
So we will have to set max MT throughput to 100. This is the simplest case, but some providers say you can send 100 SMS per second total across all connections.
In that case, simply divide by the number of connections. If you can send 100 SMS per second across 10 connections, then we divide 100 by 10, which means 10 SMS per second and per connection. So we set 10 here.
To maximize throughput, you will need to set up sending window. So what is the sending window exactly? The sending window is the number of SMS sent without waiting for an acknowledge.
For example, if your window is set to 10, you can send 10 messages without waiting for the acknowledge of the first message. This helps mitigating latency. This setting could be a bit tricky to set up. So work with the provider to find the best value. Campaign has no theoretical limit, so you can set up pretty much any figure you want, but the provider may have a limit on their side. In general, you want something roughly around 100 SMS in the window, but some providers cannot handle numbers that high. The default is pretty conservative with a default value of 10. So let’s see where it is in Campaign. To set up the sending window, let’s go back to throughput and delays. And sending window is simply mentioned here. For now, it’s 10 is the default value. Some providers just give a number.
Let’s say sending window equals 50, so we just put 50 here, no problem. Some other providers allow an unlimited window.
In that case, just start with 100 as a base value. Having a too small value will reduce throughput, but having a too large value will increase the amount of messages you will lose in case of a problem. Either connection gets during this time when the window is full, you may lose these messages or duplicate them. Usually, if you need more than 1000 messages in the sending window, there is probably something wrong. Work with the provider. They should have tools to measure the actual sending window usage to help you tune this value perfectly.
And now, let’s see how to set up TLS.
TLS allows encrypting the connection. Nowadays, many providers support this option. There are a few traps you have to know. First, TLS and non-TLS are incompatible. You will have to change host or port to switch from a non-encrypted to an encrypted connection. Again, the provider will help you with that. But simply checking the TLS checkbox is not enough.
Adobe Campaign uses open SSL to establish a TLS connection. Open SSL negotiates with the provider servers the best encryption system available automatically. And finally, disabling certificates in production is a big security issue, so don’t let that disable for too long. Okay, so how do we enable TLS exactly? Usually the provider in their documentation will specify a different port for TLS. For example, here, the unencrypted connection goes through port 2775, and encrypted TLS connection goes through port 2443. Some providers use the same host and different port. Some other providers will use different servers, so this can vary. But let’s apply TLS for this setting. So TLS is found in SMS specificities.
Enable TLS over SMPP.
You just check the box, and you change the port to match 2443, and save.
If you have problems connecting, this may be a certificate issue. You can temporarily disable some checks in the certificate process.
For example, you can skip only the host name verification. This can be handy if you need to connect temporarily using an IP address, or you can skip the entire verification altogether. Again, skipping certificates is not a good idea for production. So if skipping certificate or host name solves the problem, the issue is probably on the server side, meaning that you have to contact the provider. This setting must be set to full certificate verification in production, so you have maximum level of security.
Okay, so now let’s open the external account page and review a few of the settings.
First, use different parameters for the receiver. Some providers require using a different server for receiver and transmitter side, so this one is pretty straightforward. You just set transmitter side on the top here, and set up receiver side on the bottom.
Source number is the default source number used when it’s not specified in the delivery. In throughput and delays, enquire_link period is the period between pings sent by Campaign. If your provider needs to change enquire_link period, just set the value here. SMSC specificities is where you can adapt to your specific provider. Activate message payload makes the character choose the message payload field to send long messages instead of cutting it in many smaller parts and sending it UDH. Some providers prefer using message payload over UDH. Send full phone number enables sending all characters inside the mobile phone number. For example, if this is the phone number you want to send, SMPP will send actually only the numbers and omit the plus sign. If you tick that box, SMPP will also send the plus. Invalid ID acknowledge count helps flushing the provider’s queue in case of problem. Setting this to other than zero will acknowledge invalid messages anyway after they have been retried a certain amount of time. For example, if you set this to two, if an incoming SR fails after two attempts, it will be acknowledged anyway. Be careful with that setting because you can lose messages. This only helps for debug. And finally, automatic reply allows replying to MO. So for example, if you want to reply to contact MO, this will provide a reply. If you have multiple short codes inside the same connection, you can specify the short code, but usually you will leave it empty because you want to reply the same to all short codes. Additionally, you can send the recipient to quarantine if the keyword is matched. This is useful, for example, to reply to stop. So you would say stop. That will reply, we will stop sending you messages, and then will specify send to quarantine. Please note that this is effectively the quarantine mechanism and not the do not contact field, because at this point the message is not targeted to a profile, but only a phone number.
With the settings, you should have a properly working connection. Again, check with your provider that everything is okay on their side before going in production. So thanks for watching. -

See SMS connector protocol and settings for more information on the SMPP protocol, details about external account settings, or troubleshooting of the most common issues.