Syed Jahanzaib Personal Blog to Share Knowledge !

July 30, 2015

playSMS Send SMS via Script/CLI using webservices token and PHP

Filed under: Linux Related — Tags: , , — Syed Jahanzaib / Pinochio~:) @ 10:56 AM


If you want to send SMS via playSMS using bash script or CLI, use the WEB SERVICES options in playSMS to facilitate this function. Its very useful in many scenarios.


I wanted to schedule a bash script which should run daily twice , this script collects various information of different servers, routers and then summarize it and send to admin via SMS. I could do it with GAMMU or other sms tools too, but the issue was that the server already have KANNEL with gsm modem configured and (in general standard) Kannel dont accept message with special characters, spaced, and strange formats that this script output, (with urlencoding possible but i dont want to do it) or I had to use sed awk and other tools to proper format them which was overhead work. and I wanted to utilized KANNEL or playSMS.

Mr. Anton from playSMS suggested to use web-services of playSMS and it worked beautifully 🙂

This is how it was done.



Goto My Account > User Configuration

Select YES from drop down menu for “Enable webservices” and “Renew webservices token

Click on SAVE.

As showed in the following image below …


1- token


Now on same page you will now see the TOKEN number as showed in the following image below …

2 token

Copy / note down this this number, It will serve as a kind of password to let us send sms via php script.


2- Create & schedule  PHP script to execute your shell script

Now we have to create a PHP script which will use the above TOKEN to let us run the bash script and send it’s output to admin mobile number 🙂

mkdir /temp
touch /temp/dailysms.php
chmod +x /temp/dailysms.php
nano /temp/dailysms.php

now paste the following date , but be sure to modify the token number as per your own setup, and the script which you want to execute via php.

#!/usr/bin/php -q
# Script provided by mr.anton
# Dated: 30th July, 2015
# Syed Jahanzaib


 * cli2sms.php by Anton Raharja (
 * Example script to get data from shell script and send it as SMS via playSMS
 * You need to have a configured and working playSMS
 * In this example playSMS is accessible from http://localhost/playsms
 * Don't forget to chmod +x cli2sms.php to use it from Linux shell
 * You may modify this script to suit your needs
 * Example usage:
 * - get stat data (eg: uptime) and send it periodically (using cron) to admin's mobile phones
 * -

// suppress error message

// playSMS username/account for sending SMS
$username = 'admin';

// Webservices token for above username
$token = '1194df9e20d06c3790f0c6fef49f174a';

// playSMS Webservices URL
$playsms_ws = 'http://localhost/playsms/index.php?app=ws';

// destination numbers, comma seperated or use #groupcode for sending to group
// $destinations = '#devteam,+6200123123123,+6200456456456';
// $destinations = '+6200123123123,+6200456456456'; # for multiple recipients</pre>
<pre>$destinations = '03333021909';</pre>
// get message to send from another shell script or Linux command, for example 'uptime'
// $message = trim(shell_exec('uptime'));
$message = trim(shell_exec('/temp/'));</pre>
// send via playSMS HTTP API
if ($message) {
    $ws = $playsms_ws . '&u=' . $username . '&h=' . $token . '&op=pv';
    $ws .= '&to=' . urlencode($destinations) . '&msg='.urlencode($message) . '&nofooter=1';
    $ret = @file_get_contents($ws);

    // echo $ret;
    echo "OK: message sent" . PHP_EOL;
} else {
    echo "ERROR: message is empty" . PHP_EOL;

// end of script




Now test by running the php file we just created above.


and you should see something like below if every thing goes smoothly as planned

root@radius:/temp# ./dailysms.php

OK: message sent


and you will soon receive the SMS on your Mobile.

3- mobile

Update: / TIPS
Later I found howto submit sms via kannel CLI as well. Described in the below link.

How to Send SMS via HTTP command

Open your browser and paste the following command.

Howto send SMS via GAMMU CLI

gammu sendsms TEXT 03333021909 -text "Test Msg from GAMMU  .."


For balance check (below example is for zong balacne check)

gammu --getussd *222#

Howto send sms via CLI using KANNEL

curl "http://localhost:13013/cgi-bin/sendsms?username=kannel&password=KANNELPASS&to=03333021909&text=Welcome+Jahanzaib+Test+Message"

Sending mesage with new line using %0A code using KANNEL

curl "http://localhost:13013/cgi-bin/sendsms?username=kannel&password=KANNELPASS&to=03333021909&text=Welcome+Jahanzaib+Test+Message%0ANew+line"

Howto send sms using FILE via CLI using KANNEL

curl "" -G --data-urlencode text@/temp/message.txt

Howto send command output  sms via CLI using KANNEL

ls -l | curl "" -G --data-urlencode text@-



Syed Jahanzaib


  1. Salam Sayed bhai i would like to discuss something with you regarding the SMS portal based sending and receiving text message please do write back to mailbox9369@gmail or you can whatsap me on +971501293963


    Comment by abprince — August 1, 2015 @ 6:10 PM

  2. This can be implemented on DMA radius Manager as,


    Comment by Arjun Neupane — May 14, 2018 @ 8:55 AM

  3. I have implemented this for DMA radius manager. From this, we can view whom and when the messages are sent


    Comment by Arjun Neupane — May 14, 2018 @ 8:58 AM

  4. Any Body have a complete configuration of PlaySMS. How we send and recieverd SMS kindy send me


    Comment by Abdul Rehman — May 20, 2019 @ 2:47 AM

  5. How many maximum destination numbers can I set at a time for Bulk SMS? I need to send SMS to around 60k destination.


    Comment by Santosh Shrestha — July 6, 2020 @ 10:30 AM

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: