APIs and documentation

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 NameCustom parametersData
originator%oThe sender's number
destination%dThe destination number
message%mThe message body
time%tMessage timestamp in YYYY-MM-DD HH:MM:SS format
unix_time%xMessage timestamp as a Unix timestamp
udh%uThe UDH header, eg: for decoding concatenated messages
id%iA 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

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

?>

Back to Documentation and APIs

Follow us on Twitter

Like us on Facebook

Connect to us on LinkedIn

Where we are

aql
13-15 Hunslet Road
Leeds
LS10 1JQ
Telephone 01133 20 30 40