SMSTeam

Проверка статуса

Для проверки статуса доставки SMS необходимо вызвать методом GET или POST адрес:
http://cp.smsteam.ru/sys/status.php?login=<login>&psw=<password>&phone=<phone>&id=<sms_id>

Серверу передаются следующие параметры:

Параметр Значение
login Логин Клиента.
psw Пароль Клиента или MD5-хеш пароля в нижнем регистре.
phone Номер телефона.
id Идентификатор сообщения.
fmt Формат ответа сервера:
0 – (по умолчанию) в виде строки (Status = 1, check_time = 10.10.2010 10:10:10).
1 – в виде номера статуса и штампа времени через запятую (1,1286524541).
2 – в xml формате.
3 – в json формате.
all 0 – (по умолчанию) получить статус сообщения в обычном формате.
1 – получить полную информацию об отправленном сообщении.

В случае ошибки Сервер возвращает следующую строку:

  • При fmt = 0: ERROR = N (описание)
  • При fmt = 1: 0,-N
  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>
  • При fmt = 3:
    {
    «error»: «описание»,
    «error_code»: N
    }

N – номер ошибки, может принимать следующие значения:

Значение Описание
1 Ошибка в параметрах.
2 Неверный логин или пароль.
3 Сообщение не найдено.

В случае успешного запроса Сервер возвращает ответ в виде строки:

Ответы для SMS-сообщений:

  • при fmt = 0 и all = 0: Status = <status>, check_time = <last_date>, err = <err>
  • при fmt = 1 и all = 0: <status>,<last_timestamp>,<err>
  • при fmt = 2 и all = 0:
    <sms>
    <status>status</status>
    <last_date>last_date</last_date>
    <last_timestamp>last_timestamp</last_timestamp>
    <err>err</err>
    </sms>
  • при fmt = 3 и all = 0:
    {
    «status»: <status>,
    «last_date»: «<last_date>»,
    «last_timestamp»: <last_timestamp>,
    «err»: <err>
    }
  • при fmt = 0 и all = 1:
    Status = <status>, check_time = <last_date>, err = <err>, send_date = <send_date>, phone = <phone>,
    cost = <cost>, sender_id = <sender>, status_name = <status_name>, message = <message>
  • при fmt = 1 и all = 1: <status>,<last_timestamp>,<err>,<send_timestamp>,<phone>,<cost>,<sender>,<status_name>,<message>
  • при fmt = 2 и all = 1:
    <sms>
    <status>status</status>
    <last_date>last_date</last_date>
    <last_timestamp>last_timestamp</last_timestamp>
    <err>err</err>
    <send_date>send_date</send_date>
    <send_timestamp>send_timestamp</send_timestamp>
    <phone>phone</phone>
    <cost>cost</cost>
    <sender_id>sender</sender_id>
    <status_name>status_name</status_name>
    <message>message</message>
    </sms>
  • при fmt = 3 и all = 1:
    {
    «status»: <status>,
    «last_date»: «<last_date>»,
    «last_timestamp»: <last_timestamp>,
    «err»: <err>,
    «send_date»: «<send_date>»,
    «send_timestamp»: <send_timestamp>,
    «phone»: «<phone>»,
    «cost»: «<cost>»,
    «sender_id»: «<sender>»,
    «status_name»: «<status_name>»,
    «message»: «<message>»
    }

Где:
<status> – код статуса (список)
<last_date> – дата последнего изменения статуса. Формат DD.MM.YYYY hh:mm:ss.
<last_timestamp> – штамп времени последнего изменения статуса.
<err> – код ошибки, если сообщение не было доставлено.
<send_date> – дата отправки сообщения (формат DD.MM.YYYY hh:mm:ss).
<send_timestamp> – штамп времени отправки сообщения.
<phone> – номер телефона абонента.
<cost> – стоимость сообщения.
<sender> – имя отправителя.
<status_name> – название статуса.
<message> – текст сообщения.

Ответы для HLR-запросов:

  • при fmt = 0:
    Status = <status>, check_time = <check_time>, err = <err>, imsi = <imsi>, msc = <msc>, mcc = <mcc>, mnc = <mnc>, cn = <cn>, net = <net>, rcn = <rcn>, rnet = <rnet>
  • при fmt = 1: <status>,<last_timestamp>,<err>,<imsi>,<msc>,<mcc>,<mnc>,<cn>,<net>,<rcn>,<rnet>
  • при fmt = 2:
    <sms>
    <status>status</status>
    <last_date>last_date</last_date>
    <last_timestamp>last_timestamp</last_timestamp>
    <err>err</err>
    <imsi>imsi</imsi>
    <msc>msc</msc>
    <mcc>mcc</mcc>
    <mnc>mnc</mnc>
    <cn>cn</cn>
    <net>net</net>
    <rcn>rcn</rcn>
    <rnet>rnet</rnet>
    </sms>
  • при fmt = 3:
    {
    «status»: <status>,
    «last_date»: «<last_date>»,
    «last_timestamp»: <last_timestamp>,
    «err»: <err>,
    «imsi»: «<imsi>»,
    «msc»: «<msc>»,
    «mcc»: «<mcc>»,
    «mnc»: «<mnc>»,
    «cn»: «<cn>»,
    «net»: «<net>»,
    «rcn»: «<rcn>»,
    «rnet»: «<rnet>»
    }

Где:
<status> – код статуса (список)
<last_date> – дата последнего изменения статуса. Формат DD.MM.YYYY hh:mm:ss.
<last_timestamp> – штамп времени последнего изменения статуса.
<err> – код HLR-ошибки или статуса абонента (список).
<imsi> – уникальный код IMSI SIM-карты абонента.
<msc> – номер сервис-центра оператора, в сети которого находится абонент.
<mcc> – числовой код страны абонента.
<mnc> – числовой код оператора абонента.
<cn> – название страны регистрации абонента.
<net> – название оператора регистрации абонента.
<rcn> – название роуминговой страны абонента при нахождении в чужой сети.
<rnet> – название роумингового оператора абонента при нахождении в чужой сети.

Коды статусов

Возможные варианты кодов статусов SMS-сообщений или HLR-запросов (значения <status>):

Значение Описание
-1 Ожидает в очереди (если при отправке сообщения было задано время получения абонентом, то до этого времени сообщение будет находиться в данном статусе, в других случаях сообщение в этом статусе находится непродолжительное время перед отправкой на SMS-центр).
0 Передано оператору (сообщение было передано на SMS-центр для доставки).
1 Доставлено (сообщение было успешно доставлено абоненту).
2 Статус не получен (в течение суток статус доставки не был получен от оператора, в этом случае нельзя точно сказать, было сообщение доставлено или нет).
3 Просрочено (возникает, если время «жизни» сообщения истекло, а оно так и не было доставлено получателю, например, если абонент не был доступен в течение определенного времени или в его телефоне был переполнен буфер сообщений).
20 Невозможно доставить (попытка отправить сообщение закончилась неудачно, это может быть вызвано разными причинами, например, абонент заблокирован, не существует или на его номер не поддерживается отправка сообщений).
21 Неизвестный статус (может возникнуть в случае внутренней ошибки или появления нового статуса на SMS-центре).
22 Неверный номер (неверный формат номера телефона).
23 Запрещено (возникает при срабатывании спам фильтра, также запрещается рассылка нецензурных и оскорбительных сообщений и сообщений с запрещенным именем отправителя (Sender ID)).
24 Недостаточно средств (на счету Клиента недостаточная сумма для отправки сообщения).

Запрос статусов SMS-сообщений необходимо осуществлять в течение суток с момента отправки. По истечении данного времени сообщения помещаются в архивную базу. В 03:00 по московскому времени переносятся сообщения с конечным статусом, отправленные до 18:00 прошедшего дня. Для возможности получения статусов таких сообщений необходимо обратиться в службу поддержки.

Также сервер не принимает более пяти одинаковых запросов на получение статуса одного и того же SMS-сообщения в течение минуты для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.