The Intis telecom gateway lets you send SMS messages worldwide via its API. This program sends HTTP(s) requests and receives information as a response in JSON and/or XML. The main functions of our API include:
- sending SMS messages (including scheduling options);
- receiving status reports about messages that have been sent previously;
- requesting lists of authorised sender names;
- requesting lists of incoming SMS messages;
- requesting current balance status;
- requesting lists of databases;
- requesting lists of numbers within particular contact list;
- searching for a particular number in a stop list;
- requesting lists of templates;
- adding new templates;
- requesting monthly statistics;
- making HLR request;
- HLR запрос
- receiving HLR request statistics;
- requesting an operator’s name by phone number;
To begin using our API please apply for your account at our website where you can get your login and API key.
composer require "intis/sdk: ~1.0.0"
class IntisClient - The main class for SMS sending and getting API information
There are three mandatory parameters that you have to provide the constructor in order to initialize. They are:
- $login - user login
- $apiKey - user API key
- $apiHost - API address
<?php
require __DIR__ . '/vendor/autoload.php';
use Intis\SDK\IntisClient;
$client = new IntisClient($login, $apiKey, $apiHost);
Use the getBalance()
method to request your balance status
$balance = $client->getBalance();
$amount = $balance->getAmount(); // Getting amount of money
$currency = $balance->getCurrency(); // Getting name of currency
To get a list of all the contact databases you have use the function getPhoneBases()
$phoneBases = $client->getPhoneBases();
foreach($phoneBases as $oneBase){
$oneBase->getBaseId(); // Getting list ID
$oneBase->getTitle(); // Getting list name
$oneBase->getCount(); // Getting number of contacts in list
$oneBase->getPages(); // Getting number of pages in list
$birthday = $oneBase->getBirthdayGreetingSettings(); // Getting settings of birthday greetings
$birthday->getEnabled(); // Getting key that is responsible for sending greetings, 0 - do not send, 1 - send
$birthday->getDaysBefore(); // Getting the number of days to send greetings before
$birthday->getOriginator(); // Getting name of sender for greeting SMS
$birthday->getTimeToSend(); // Getting time for sending greetings. All SMS will be sent at this time.
$birthday->getUseLocalTime(); // Getting variable that indicates using of local time while SMS sending.
$birthday->getTemplate(); // Getting text template that will be used in the messages
}
Our gateway supports the option of having unlimited sender’s names. To see a list of all senders’ names use the method getOriginators()
$originators = $client->getOriginators();
foreach($originators as $originator){
$originator->getOriginator(); // Getting sender name
$originator->getState(); // Getting sender status
}
To get a list of phone numbers from a certain contact list you need the getPhoneBaseItems($baseId, $page)
method. For your convenience, the entire list is split into separate pages.
The parameters are: $baseId
- the ID of a particular database (mandator), and $page
- a page number in a particular database (optional).
$items = $client->getPhoneBaseItems($baseId, $page);
foreach($items as $item){
$item->getPhone(); // Getting subscriber number
$item->getFirstName(); // Getting subscriber first name
$item->getMiddleName(); // Getting subscriber middle name
$item->getLastName(); // Getting subscriber last name
$item->getBirthDay(); // Getting subscriber birthday
$item->getGender(); // Getting gender of subscriber
$item->getNetwork(); // Getting operator of subscriber
$item->getArea(); // Getting region of subscriber
$item->getNote1(); // Getting subscriber note 1
$item->getNote2(); // Getting subscriber note 2
}
To receive status info for an SMS you have already sent, use the function getDeliveryStatus($messageId)
where $messageId
- is an array of sent message IDs.
$deliveryStatus = $client->getDeliveryStatus($messageId);
foreach($deliveryStatus as $message){
$message->getMessageId(); // Getting message ID
$message->getMessageStatus(); // Getting a message status
$message->getCreatedAt(); // Getting a time of message
}
To send a message (to one or several recipients), use the function sendMessage($phone, $originator, $text)
,
where $phone
- is a set of numbers you send your messages to,
$originator
is a sender’s name and $text
stands for the content of the message.
An array includes MessageSendingSuccess
if the message was successfully sent or MessageSendingError
in case of failure.
$messages = $client->sendMessage($phone, $originator, $text);
foreach($messages as $one){
if($one->isOk()) { // A flag of successful dispatch of a message
$one->getPhone(); // Getting phone number
$one->getMessageId(); // Getting message ID
$one->getCost(); // Getting price for message
$one->getCurrency(); // Getting name of currency
$one->getMessagesCount(); // Getting number of message parts
}
else{
$one->getPhone(); // Getting phone number
$one->getMessage(); // Getting error message
$one->getCode(); // Getting code error in SMS sending
}
}
To add a number to a stoplist run addToStopList($phone)
where $phone
is an individual phone number
$id = $client->addToStopList($phone); // return ID in stop list
To check if a particular phone number is listed within a stop list use the function checkStopList($phone)
, where $phone
is an individual phone number.
$stopList = $client->checkStopList($phone);
$stopList->getId(); // Getting ID in stop list
$stopList->getDescription(); // Getting reason of adding to stop list
$stopList->getTimeAddedAt(); // Getting time of adding to stop list
Our gateway supports the option of creating multiple templates of SMS messages. To get a list of templates use the function getTemplates()
.
As a response you will get a list of all the messages that a certain login has set up.
$templates = $client->getTemplates();
foreach ($templates as $template) {
$template->getId(); // Getting template ID
$template->getTitle(); // Getting template name
$template->getTemplate(); // Getting text of template
$template->getCreatedAt(); // Getting the date and time when a particular template was created
}
To add a new template to a system run the function addTemplate($title, $template)
where $title
is a name of a template, and $template
is the text content of a template
$templteId = $client->addTemplate($title, $text); // return ID user template
To get stats about messages you have sent during a particular month use the function getDailyStatsByMonth($year, $month)
where $year
and $month
- are the particular date you need statistics for.
$result = $client->getDailyStatsByMonth($year, $month);
foreach($result as $one){
$one->getDay(); // Getting day of month
$stats = $one->getStats(); // Getting daily statistics
foreach($stats as $i){
$i->getState(); // Getting status of message
$i->getCost(); // Getting prices of message
$i->getCurrency(); // Getting name of currency
$i->getCount(); // Getting number of message parts
}
}
HLR (Home Location Register) - is the centralised databas that provides detailed information regarding the GSM mobile network of every mobile user.
HLR requests let you check the availability of a single phone number or a list of numbers for further clean up of unavailable numbers from a contact list.
To perform an HLR request, our system supports the function makeHLRRequest($phone)
where $phone
is the array of phone numbers.
$result = $client->makeHLRRequest($phone);
foreach ($result as $hlr) {
$hlr->getId(); // Getting ID
$hlr->getDestination(); // Getting recipient
$hlr->getIMSI(); // Getting IMSI
$hlr->getMCC(); // Getting MCC of subscriber
$hlr->getMNC(); // Getting MNC of subscriber
$hlr->getOriginalCountryName(); // Getting the original name of the subscriber's country
$hlr->getOriginalCountryCode(); // Getting the original code of the subscriber's country
$hlr->getOriginalNetworkName(); // Getting the original name of the subscriber's operator
$hlr->getOriginalNetworkPrefix(); // Getting the original prefix of the subscriber's operator
$hlr->getPortedCountryName(); // Getting name of country if subscriber's phone number is ported
$hlr->getPortedCountryPrefix(); // Getting prefix of country if subscriber's phone number is ported
$hlr->getPortedNetworkName(); // Getting name of operator if subscriber's phone number is ported
$hlr->getPortedNetworkPrefix(); // Getting prefix of operator if subscriber's phone number is ported
$hlr->getRoamingCountryName(); // Getting name of country if the subscriber is in roaming
$hlr->getRoamingCountryPrefix(); // Getting prefix of country if the subscriber is in roaming
$hlr->getRoamingNetworkName(); // Getting name of operator if the subscriber is in roaming
$hlr->getRoamingNetworkPrefix(); // Getting prefix of operator if the subscriber is in roaming
$hlr->getStatus(); // Getting status of subscriber
$hlr->getPricePerMessage(); // Getting price for message
$hlr->isInRoaming(); // Determining if the subscriber is in roaming
$hlr->isPorted(); // Identification of ported number
}
Besides, you can can get HLR requests statistics regarding a certain time range. To do that, use the function getHlrStats($from, $to)
where $from
and $to
are the beginning and end of a time period.
$result = $client->getHlrStats($from, $to);
foreach($result as $hlr){
$hlr->getId(); // Getting ID
$hlr->getPhone(); // Getting phone number
$hlr->getMessageId(); // Getting message ID
$hlr->getTotalPrice(); // Getting final price of request
$hlr->getDestination(); // Getting recipient
$hlr->getIMSI(); // Getting IMSI
$hlr->getMCC(); // Getting MCC of subscriber
$hlr->getMNC(); // Getting MNC of subscriber
$hlr->getOriginalCountryName(); // Getting the original name of the subscriber's country
$hlr->getOriginalCountryCode(); // Getting the original code of the subscriber's country
$hlr->getOriginalNetworkName(); // Getting the original name of the subscriber's operator
$hlr->getOriginalNetworkPrefix(); // Getting the original prefix of the subscriber's operator
$hlr->getPortedCountryName(); // Getting name of country if subscriber's phone number is ported
$hlr->getPortedCountryPrefix(); // Getting prefix of country if subscriber's phone number is ported
$hlr->getPortedNetworkName(); // Getting name of operator if subscriber's phone number is ported
$hlr->getPortedNetworkPrefix(); // Getting prefix of operator if subscriber's phone number is ported
$hlr->getRoamingCountryName(); // Getting name of country if the subscriber is in roaming
$hlr->getRoamingCountryPrefix(); // Getting prefix of country if the subscriber is in roaming
$hlr->getRoamingNetworkName(); // Getting name of operator if the subscriber is in roaming
$hlr->getRoamingNetworkPrefix(); // Getting prefix of operator if the subscriber is in roaming
$hlr->getStatus(); // Getting status of subscriber
$hlr->getPricePerMessage(); // Getting price for message
$hlr->isInRoaming(); // Determining if the subscriber is in roaming
$hlr->isPorted(); // Identification of ported number
$hlr->getRequestId(); // Getting request ID
$hlr->getRequestTime(); // Getting time of request
}
To get information regarding which mobile network a certain phone number belongs to, use the function getNetworkByPhone($phone)
, where $phone
is a phone number.
$network = $client->getNetworkByPhone($phone);
$network->getTitle(); // Getting operator of subscriber
Please bear in mind that this method has less accuracy than HLR requests as it uses our internal database to check which mobile operator a phone numbers belongs to.
To get a list of incoming messages please use the function getIncomingMessages($date)
, where $date
stands for a particular day in YYYY-mm-dd format.
$result = $client->getIncomingMessages($date);
foreach($result as $one){
$one->getMessageId(); // Getting message ID
$one->getOriginator(); // Getting sender name of the incoming message
$one->getPrefix(); // Getting prefix of the incoming message
$one->getReceivedAt(); // Getting date of the incoming message
$one->getText(); // Getting text of the incoming message
}
- Send sms, balance, delivery src/examples/send.php
- Phone bases src/examples/base.php
- Phone bases items src/examples/baseItems.php
- Senders src/examples/senders.php
- Incoming messages src/examples/incoming.php
- Get network by phone src/examples/network.php
- Hlr requests and statistics src/examples/hlr.php
- Statistics usage src/examples/statistics.php
- Manage blocked phones src/examples/stopList.php
- Manage templates src/examples/template.php