Configuring Bandwidth for inbound SMS

From MiRTA PBX documentation
Jump to navigation Jump to search

Unfortunately, Bandwidth is not allowing me access to their platform to test and further develop any integration with their API due to I am not hosting any of their traffic (I am not a telecommunication company). I think the sales representative I talked too and refuse to grant me an account, even paying, has not understood it was for mutually beneficial. If you are using Bandwidth service, I invite you to contact your sales representative and express your concern about their position. This documentation will be no more maintained and it will be removed soon unless I get access to their services. Yes, I can use your account, but it will be not fair to work around their policy.

Inbound SMS can be received using several protocols. The easiest one to configure is the HTTP method. Using this method, the selected provider will perform an HTTP request to the PBX server and deliver the message. On the provider part, the URL to configure is your PBX web interface to web page receivesms.php

As example, let's configure the service on Bandwidth.com provider. In the Applications page you are going to create an application name, like for example "PBX" with callback method "GET" and the URL https://www.yourwebinterface.com/pbx/receivesms.php

Bandwidthcreateapplication.png

Still in Bandwidth web interface, you need to assign the "PBX" application to each of the numbers you want to receive SMS with.

Bandwidthassigntonumbers.png

Now it is the turn to configure the DID in your PBX to correctly process the request from Bandwidth. In the DID section you'll choose the HTTP GET/POST protocol and the name of the fields used by Bandwidth to deliver the message:

BandwidthDIDconfiguration.png

Bandwidth has upgraded its API to v2 and changed the way the SMS is delivered. So if you are using this kind of protocol, the configuration is different:

BandwidthDIDconfigurationV2.png

Bandwidth allows to receive SMS with multiple destinations, so you can see who else has been messaged with you. If you want to get them, you need to replace the "to" field with "0[message][to][${n:0:10}]" and you can get the list of the destinations in the ${SMSALLDESTS} variable