When sending a message through Panacea Mobile, you have the option to track the delivery of these messages.
If using HTTP, you need to add two additional fields to your request, as below.
| Field name | Purpose |
|---|---|
| report_url | The HTTP URL to request when the status changes |
| report_mask | Which status’ messages do you want to receive |
So what is the report_mask ?
The report mask is what is known as a bit mask field indicating which status messages you want to receive.
What are the different delivery status’?
| Status code | Meaning |
|---|---|
| 1 | Delivered |
| 2 | Failed (invalid number) |
| 4 | Queued at network |
| 8 | Sent to network |
| 16 | Failed at network |
View flow chart for delivery report process
How do I calculate the report mask ?
To calculate the report mask, you need to pick the status codes you want to receive, and then add them together, voila! That’s your report mask.
For example: I want to receive whether my message was delivered or failed. (1, 2 and 16).
report_mask = 1 + 2 + 16 = 19
So in your next request, send report_mask=19 and we’ll send you these status’ messages where applicable.
Seems simple enough, what about getting some extra data in the request?
We provide you with some extra fields which you can specify and we’ll replace them for you before we send the messages back to your server.
| String we replace | What it’s replaced with |
|---|---|
| %d | The status code (see above) of the message |
I’m still confused! Give me an example!
Ok, so we want to send a message, and receive status reports to our server when the message is delivered, or fails.
Our request parameters will look like this
| Parameter | Value |
|---|---|
| username | myusername |
| password | mypassword |
| to | 27111256849 |
| from | 271112221113 |
| text | Hello there, we are testing delivery reports! |
| report_mask | 19 |
| report_url | http://myserver.com/receive_report.php?myMessageId=12345&status=%d |
The resulting URL (once we encode the data) for the request will look like this:
Some extra stuff
We built this URL in PHP, so here the example is below.
$params = array(
'username' => 'myusername',
'password' => 'mypassword',
'to' => '27111256849',
'from' => '271112221113',
'text' => 'Hello there, we are testing delivery reports!',
'report_mask' => 19,
'report_url' => 'http://myserver.com/receive_report.php?myMessageId=12345&status=%d'
);
$url = "http://api.panaceamobile.com/json?action=message_send";
foreach($params as $key => $val) {
$url .= "&".urlencode($key)."=".urlencode($val);
}
echo $url;