Inbound SMS to UK landline numbers API
HTTP GET/POST variables
If you choose to have the messages delivered by HTTP, you may either use our standard parameters, or create a custom format for compatibility with any existing application.
If you do not specify any custom parameters, we will deliver the message using the default names.
Default Name | Custom parameters | Data |
---|---|---|
originator | %o | The sender’s number |
destination | %d | The destination number |
message | %m | The message body |
time | %t | Message timestamp in YYYY-MM-DD HH:MM:SS format |
unix_time | %x | Message timestamp as a Unix timestamp |
udh | %u | The UDH header, e.g.: for decoding concatenated messages |
id | %i | A unique identifier for the message |
Once you have successfully purchased your geographical number you will need to follow these steps:
- Select Text-In -> Inbound Geographic SMS -> Configure Numbers
- Select Edit on the chosen number
- Specify “HTTP POST” as the action
- Enter distination of the script that will handle your POST. E.g. http://www.example.com/script.php
Relay IP address
MO messages to these numbers are relayed from this IP: 194.145.190.4
Example code
Here are some examples of code that can be used with HTTP GET/POST:
PHP
//include the database handling class include(“mysqlclass.php”);
//Assign POSTED variables
$originator = $_POST[‘originator’];
$destination = $_POST[‘destination’];
$message = $_POST[‘message’];
$time = $_POST[‘time’];
$unixTime = $_POST[‘unix_time’];
$udh = $_POST[‘udh’];
$id = $_POST[‘id’];
//Create a new instance of the mysql class and write data to database
$mysql = New mysql(0);
$sql = “
INSERT INTO
inbound
(varOriginator, varDestination, varMessage, dtTime, varUnixTime, varUDH, intId)
VALUES
(‘$originator’,’$destination’, ‘$message’, ‘$time’, ‘$unixTime’, ‘$udh’, ‘$id’)”;
$mysql->query($sql);
ASP
org = Request.QueryString(“originator”);
dest = Request.QueryString(“destination”);
msg = Request.QueryString(“message”);
time = Request.QueryString(“time”);
unix = Request.QueryString(“unix_time”);
udh = Request.QueryString(“udh”);
id = Request.QueryString(“id”);
Response.Write(“Originator: ” & org & “<br />”);
Response.Write(“Destination: ” & dest & “<br />”);
Response.Write(“Message: ” & msg & “<br />”);
Response.Write(“Time: ” & time & “<br />”);
Response.Write(“Unix Time: ” & unix & “<br />”);
Response.Write(“UDH: ” & udh & “<br />”);
Response.Write(“ID: ” & id & “<br />”);
%>
Create MySQL database to store the data
//include the database handling class
include(“mysqlclass.php”);
//Assign POSTED variables
$originator = $_POST[‘originator’];
$destination = $_POST[‘destination’];
$message = $_POST[‘message’];
$time = $_POST[‘time’];
$unixTime = $_POST[‘unix_time’];
$udh = $_POST[‘udh’];
$id = $_POST[‘id’];
//Create a new instance of the mysql class and write data to database
$mysql = New mysql(0);
$sql = “
INSERT INTO
inbound
(varOriginator, varDestination, varMessage, dtTime, varUnixTime, varUDH, intId)
VALUES
(‘$originator’,’$destination’, ‘$message’, ‘$time’, ‘$unixTime’, ‘$udh’, ‘$id’)”;
$mysql->query($sql);
MySQL class – manages the connection and actions on the database
<?
//————————————————
class mysql {
//————————————————
/* public: connection parameters */
var $debug;
var $hostname;
var $databaseName;
var $username;
var $password;
/* private: connection parameters */
var $conn;
var $rstemp;
var $record;
/**
* mysql::mysql()
* Constructor this class – define public connection parameters and
* call the connect method
*
* @param $hostname
* @param $username
* @param $password
* @param $databaseName
*/
function mysql ($debug=0) {
$this->debug = $debug;
if ($this->debug) echo “\n\nDebug On <br>\n”;
$this->hostname = ‘localhost’;
$this->username = ‘root’;
$this->password = ”;
$this->databaseName = ‘crmProject’;
/**
/**
* open connection
*/
$this->connect();
}
/**
* mysql::connect()
* Open connection with the server
*
* @return id da conexao
*/
function connect () {
/**
* Open connection
*/
if ($this->debug) echo “Connecting to $this->hostname <br>\n”;
$this->conn = @mysql_connect($this->hostname,$this->username,$this->password)
or die(“Connection to $server failed <br>\n”);
/**
* Select to database
*/
if ($this->debug) echo “Selecting to $this->databaseName <br>\n”;
@mysql_select_db($this->databaseName,$this->conn)
or die(“Error:” . mysql_errno() . ” : ” . mysql_error() . “<br>\n”);
return $this->conn;
}
/** * mysql::query()
* Execute SQL
*
* @param $sql
* @return
*/
function query($sql) {
if ($this->debug) echo “Run SQL: $sql <br>\n\n”; $this->rstemp = @mysql_query($sql,$this->conn) or die(“Error:” . mysql_errno() . ” : ” . mysql_error() . “<br>\n”);
return $this->rstemp;
}
/**
* mysql::num_rows()
* return number of records in current select
*
* @param $rstemp
* @return
*/
function num_rows() {
$num = @mysql_num_rows($this->rstemp); if ($this->debug) echo “$num records returneds <br>\n\n”;
return $num;
}
/**
* mysql::movenext()
* fetch next record in result
*
* @return
*/
function movenext(){
if ($this->debug) echo “Fetching next record … “;
$this->record = @mysql_fetch_array($this->rstemp);
$status = is_array($this->record);
if ($this->debug && $status) echo “OK <br>\n\n”;
elseif ($this->debug) echo “EOF <br>\n\n”;
return($status);
}
/**
* mysql::getfield()
* get field value from the current record
*
* @param $field
* @return
*/
function getfield($field){
if ($this->debug) {
echo “Getting $field … “;
//this resource require PHP 4.1 or righter
if (phpversion() >= 4.1) {
if (array_key_exists($field,$this->record)) echo “OK <br>\n\n”;
else echo “Not found <br>\n\n”;
} else echo ” <br>\n\n”;
}
return($this->record[$field]);
}
}
?>
Inbound action – script which is actioned
<?php
include(“mysqlclass.php”);
$originator = $_POST[‘originator’];
$destination = $_POST[‘destination’];
$message = $_POST[‘message’];
$time = $_POST[‘time’];
$unixTime = $_POST[‘unix_time’]; $udh = $_POST[‘udh’];
$id = $_POST[‘id’];
$mysql = New mysql(0);
$sql=”INSERT INTO inbound (varOriginator, varDestination, varMessage, dtTime, varUnixTime, varUDH, intId) VALUES (‘$originator’, ‘$destination’, ‘$message’, ‘$time’, ‘$unixTime’, ‘$udh’, ‘$id’) “;
$mysql->query($sql);
?>
Inbound view – view inbound SMS
<?php
include(“mysqlclass.php”);
$mysql = New mysql(0);
$sql=”SELECT * FROM inbound”;
$mysql->query($sql);
if ($mysql->num_rows() > 0){
echo “<table cellpadding=’1′ cellspacing=’1′ border=’0′ <tr bgcolor=’#cccccc’>”;
echo “<tr bgcolor=’#e4e4e4′><td><a>intEntryID</a>
</td><td><a>Originator</a>
</td><td><a>Destination</a>
</td><td><a>Message</a>
</td><td><a>Time</a>
</td><td><a>Unix Time</a>
</td><td><a>UDH</a>
</td><td><a>Id</a>
</td></tr>”;
// Fetch each of the query rows in $result array
while ($mysql->movenext()) {
// Print one row of results
echo “\n<tr bgcolor=’#e4e4e4′>” .
“\n\t<td>” . $mysql->getfield(“intEntryID”) . “</td>” .
“\n\t<td>” . $mysql->getfield(“varOriginator”) . “</td>” .
“\n\t<td>” . $mysql->getfield(“varDestination”) . “</td>” .
“\n\t<td>” . $mysql->getfield(“varMessage”) . “</td>” .
“\n\t<td>” . $mysql->getfield(“dtTime”) . “</td>” .
“\n\t<td>” . $mysql->getfield(“varUnixTime”) . “</td>” .
“\n\t<td>” . $mysql->getfield(“varUDH”) . “</td>” .
“\n\t<td>” . $mysql->getfield(“intId”) . “</td>”;
“</tr>”;
} // end while loop body
// Finish the <table>
echo “\n</table>”;
} // end if $rowsFound body
?>