|
|
РУКОВОДСТВО ПО
ИНТЕГРАЦИИ
HTTP API
SMPP
ТЕХНИЧЕСКАЯ ДОКУМЕНТАЦИЯ
Данный документ содержит инструкции по быстрой интеграции коммуникационных сервисов
Infobip в различные решения с использованием HTTP API или SMPP. Документ разделен на две
главы, первая рассказывает о взаимодействии с HTTP API, вторая глава освещает SMPP.
Используйте опцию «Содержание» для быстрой и легкой навигации по спецификациям,
ознакомления с примерами и инструкциями по подключению к HTTP API и SMPP.
Для получения более подробной информации, полномасштабных примеров на различных
языках программирования, а также тестирования, посетите наш ресурс для разработчиков:
2
СОДЕРЖАНИЕ
ТЕХНИЧЕСКАЯ ДОКУМЕНТАЦИЯ
2
ОЗНАКОМЛЕНИЕ С HTTP API
5
Базовый URL
5
Заголовки Content-Type & Accept
6
Авторизация
6
ОТПРАВКА SMS
7
Получение ответа от платформы Инфобип
8
ПОЛУЧЕНИЕ ОТЧЕТОВ О ДОСТАВКЕ
10
ПРОСМОТР ЛОГОВ
15
ПРОСМОТР ПОЛУЧЕННЫХ СООБЩЕНИЙ - PULL
19
ПЕРЕАДРЕСАЦИЯ ПОЛУЧЕННЫХ СООБЩЕНИЙ - PUSH
22
ТЕКСТОВОЕ СООБЩЕНИЕ с использованием дополнительных параметров
24
ПРОВЕРКА НОМЕРА
28
КОДЫ ОТВЕТОВ
30
Статусы групп
31
Статусы
31
Группы ошибок
35
Коды ошибок GSM
35
Дополнительные возможности при массовой рассылке
44
SMS для массовой рассылки
44
Персонализированные SMS для каждого абонента
46
Запланированная отправка и срок жизни SMS
47
Отчеты о доставке на URL для Оповещений
50
Промежуточные отчеты о доставке
55
Flash SMS
57
Сокращение и отслеживание URL
58
3
SMPP API
61
Параметры SMPP
61
Command status & Коды ошибок GSM
63
Запланированная отправка
63
ПРОВЕРКА НОМЕРА ЧЕРЕЗ SMPP
64
FLASH-УВЕДОМЛЕНИЯ ЧЕРЕЗ SMPP
68
SMPP COMMAND STATUS & КОДЫ ОШИБОК GSM
68
Command status
69
Коды ошибок
70
4
ОЗНАКОМЛЕНИЕ С HTTP API
Интерфейс программирования приложений HTTP (HTTP API) - это самый легкий способ
интеграции всех сервисов Infobip с помощью использования стандартного интерфейса REST.
HTTP API может применяться для отправки SMS-сообщений, получения отчетов о доставки,
осуществления запросов для проверки номера (валидации номера) и получения входящих
SMS-сообщений, отправленных с мобильных телефонов.
API компании Infobip основан на использовании REST. Чтобы осуществлять взаимодействие с
нашим API, можно использовать любой HTTP-клиент на любом языке программирования.
Внимание! Если у вас нет аккаунта в Infobip, посетите нашу страницу Регистрации и создайте
аккаунт бесплатно.
Базовый URL
Все запросы отправляются на базовый URL. Все запросы осуществляются посредством
методов HTTP POST, PUT или GET. Вы можете использовать протокол HTTP, однако мы
настоятельно рекомендуем отправлять все запросы к платформе Infobip через HTTPS с целью
шифрования трафика и сохранения конфиденциальности.
5
Заголовки Content-Type & Accept
Infobip SMS API поддерживает JSON и XML Content-Types, а также критерии Accept, которые
должны быть указаны в заголовке. Если Content-Type не указан, вы получите отчет об общей
ошибке (General error). В зависимости от выбранного типа заголовка в запросе такой же
заголовок будет применен в ответе.
Content-Type: application/json or application/xml
Accept header: application/json or application/xml
Авторизация
Мы поддерживаем авторизацию с использованием имени пользователя и пароля Base64 с
методом кодирования RFC2045-MIME. Тип авторизации: Basic.
Заголовок авторизации строится следующим образом:
1. Имя пользователя и пароль комбинируются в строку username:password.
2. Строка, получившаяся в результате этого, кодируется используя
64-битный
кодировщик.
Метод авторизации "Basic" и пробел помещаются перед кодированной строкой, как показано
на примере.
Пример:
Username: Aladdin
Password: open sesame
Authorization header: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
6
ОТПРАВКА SMS
За несколько простых шагов мы объясним принципы отправки SMS при использовании Infobip
HTTP API.
В первую очередь вам нужен действующий аккаунт в Infobip. После регистрации аккаунта, для
доступа к сервису вы получаете имя пользователя и пароль. Далее аутентификационные
данные кодируются в base64, как описано в Разделе Авторизации:
Сообщение отправляется только на действительный телефонный номер (номера), написанный
в международном формате, например,
79653215551. Мы настоятельно рекомендуем
использовать формат номера Е.164. Номера Е.164 стандартизируются по международному
образцу, который предполагает максимальную длину в пятнадцать цифр. Телефонные номера
обычно начинаются с + (знак плюс), за которым следует код страны, код сети и номер
абонента. Телефонные номера, которые не переведены в формат E.164, могут также работать,
но это зависит от конфигурации устройства и от сети.
Теперь вы готовы отправить первое SMS-сообщение, используя POST-запрос на:
Тело запроса содержит сообщение, которое вы хотите отправить, включая параметры
from, to и text (от кого, кому, текст).
Полный JSON-запрос приведен ниже:
JSON
POST /sms/1/text/single HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
7
Content-Type: application/json
Accept: application/json
{
"from":"InfoSMS",
"to":"41793026727",
"text":"My first Infobip SMS"
}
Получение ответа от платформы Инфобип
После того, как HTTP-запрос был отправлен на платформу Infobip, вы получите ответ,
содержащий дополнительную информацию. Если все сработало, вы получите ответ 200 OK с
деталями сообщения в теле ответа.
Ниже приведен пример запроса для отправки единичного SMS:
JSON
POST /sms/1/text/single HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
Accept: application/json
{
"from":"InfoSMS",
"to":"41793026727",
"text":"My first Infobip SMS"
}
Соответствующий ответ приведен ниже:
JSON
HTTP/1.1 200 OK
Content-Type: application/json
{
"messages":[
{
"to":"41793026727",
"status":{
"id":0,
"groupId":0,
8
"groupName":"ACCEPTED",
"name":"MESSAGE_ACCEPTED",
"description":"Message accepted"
},
"smsCount":1,
"messageId":"2250be2d4219-3af1-78856-aabe-1362af1edfd2"
}
]
}
messages - это массив всех SMS-сообщений, которые были отправлены в последнем
запросе. В нашем случае он содержит только одно сообщение.
to - это номер телефона, на который вы отправили SMS-сообщение
Каждое сообщение, успешно отправленное в платформу Infobip, уникальным образом
идентифицируется через messageId. Далее Message ID используется для проверки
статуса доставки или в журнале отправленных сообщений.
smsCount - это количество частей длинного сообщения
status - это объект, который далее описывает состояние отправленного сообщения.
Для полного списка доступных статусов ознакомьтесь с разделом значения статусов.
9
ПОЛУЧЕНИЕ ОТЧЕТОВ О ДОСТАВКЕ
После отправки пары сообщений вы сможете проверить факт их успешной доставки через
следующий запрос:
Доступными параметрами запроса (query parameters) являются:
bulkId: уникальный идентификатор SMS-рассылки. Этот фильтр позволяет вам
получать отчеты о доставке для всех сообщений, отправленных одним запросом. Вы
получите bulkId в ответе после отправки SMS-запроса. Вы так же можете задать свой
собственный ID.
messageId: уникальный идентификатор отправленного сообщения. Данный ID вы
получаете после отправки сообщения. Вы так же можете задать ID самостоятельно в
теле запроса.
limit: Максимальное количество отчетов о доставке, которое вы хотите получить.
Значение по умолчанию - 50.
В качестве ответа вы получите группу не просмотренных отчетов о доставке.
Важно: Отчеты о доставке могут быть извлечены только единожды. Если вы уже получили
отчет о доставке, вы не сможете получить тот же отчет снова посредством использования
данной конечной точки.
10
Ниже представлен пример JSON-запроса для получения отчетов без каких-либо
параметров запроса:
JSON
GET /sms/1/reports HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/json
Ниже приведен ответ на запрос отчетов о доставке:
JSON
HTTP/1.1 200 OK
Content-Type: application/json
{
"results":[
{
"bulkId":"80664c0c-e1ca-414d-806a-5caf146463df",
"messageId":"bcfb828b-7df9-4e7b-8715-f34f5c61271a",
"to":"41793026731",
"sentAt":"2015-02-12T09:51:43.123+0100",
"doneAt":"2015-02-12T09:51:43.127+0100",
"smsCount":1,
"price":{
"pricePerMessage":0.01,
"currency":"EUR"
},
"callbackData": "User defined data.",
"status":{
"groupId":3,
"groupName":"DELIVERED",
"id":5,
"name":"DELIVERED_TO_HANDSET",
"description":"Message delivered to handset"
},
"error":{
"groupId":0,
"groupName":"OK",
"id":0,
"name":"NO_ERROR",
"description":"No Error",
"permanent":false
}
},
{
"bulkId":"08fe4407-c48f-4d4b-a2f4-9ff583c985b8",
"messageId":"12db39c3-7822-4e72-a3ec-c87442c0ffc5",
"to":"41793026727",
"sentAt":"2015-02-12T09:50:22.221+0100",
11
"doneAt":"2015-02-12T09:50:22.232+0100",
"smsCount":1,
"price":{
"pricePerMessage":0.01,
"currency":"EUR"
},
"callbackData": "reset_password",
"status":{
"groupId":3,
"groupName":"DELIVERED",
"id":5,
"name":"DELIVERED_TO_HANDSET",
"description":"Message delivered to handset"
},
"error":{
"groupId":0,
"groupName":"OK",
"id":0,
"name":"NO_ERROR",
"description":"No Error",
"permanent":false
}
}
]
}
В ответе вы получите массив результатов, в который входит:
to - представляет телефонный номер получателя. Следовательно, вы можете
сопоставить отчет о доставке с телефонным номером.
bulkId и messageId - уникальные идентификаторы рассылки и сообщений.
sentAt и doneAt
smsCount представляет количество сообщений
price - объект с pricePerMessage (цена за сообщение) и параметрами currency
(валюта)
callbackData - параметр, выставленный пользователем
12
status and error - обозначение статуса и ошибка
Внимание: Если вы пытаетесь заново осуществить такой запрос, вы получите пустой ответ, так как
все отчеты о доставке были прочитаны.
JSON
HTTP/1.1 200 OK
Content-Type: application/json
{
"results":[]
}
Если вы отправляете массовые рассылки, но хотите просмотреть отчет о доставке только для
одного сообщения, задайте параметр запроса.
Добавьте параметр и значение messageid ?messageId=ff4804ef-6ab6-4abd-984d-
ab3b1387e852 в url запрос, и вы получите отчет о доставке только одного конкретного
сообщения.
Помимо messageId, вы можете использовать bulkId или просто заданный limit по количеству
отчетов, которые вы хотите получить. Ниже приведен пример JSON-запроса для получения
отчетов с параметрами запроса.
JSON
GET /sms/1/reports?messageId=ff4804ef-6ab6-4abd-984d-ab3b1387e852 HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/json
13
Следующий JSON будет представлен в качестве ответа:
JSON
HTTP/1.1 200 OK
Content-Type: application/json
{
"results":[
{
"bulkId":"8c20f086-d82b-48cc-b2b3-3ca5f7aca9fb",
"messageId":"ff4804ef-6ab6-4abd-984d-ab3b1387e852",
"to":"41793026731",
"sentAt":"2015-02-12T09:58:20.323+0100",
"doneAt":"2015-02-12T09:58:20.337+0100",
"smsCount":1,
"price":{
"pricePerMessage":0.01,
"currency":"EUR"
},
"status":{
"id":5,
"groupId":3,
"groupName":"DELIVERED",
"name":"DELIVERED_TO_HANDSET",
"description":"Message delivered to handset"
},
"error":{
"groupId":0,
"groupName":"OK",
"id":0,
"name":"NO_ERROR",
"description":"No Error",
"permanent":false
}
}
]
}
Как вы видите, данное сообщение было успешно доставлено без каких-либо ошибок. В отличие
от единовременных отчетов о доставке, логи могут использоваться для просмотра истории
всех сообщений, которые вы отправляли. В следующем разделе данного документа вы узнаете,
как при использование нашего API получить информацию из логов журнала.
14
Просмотр логов ЖУРНАЛА SMS
Логи с историей отправленных SMS-сообщений могут быть запрошены для всех сообщений
посредством одного запроса:
GET https://api.infobip.com/sms/1/logs.
В отличие от отчетов о доставке, данные логи могут запрашиваться столько раз, сколько вам
может потребоваться.
Посмотрим, что происходит, когда вы делаете запрос всех ваших логов без какого-либо
дополнительного фильтра:
JSON
GET /sms/1/logs HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/json
В качестве ответа вы получите следующий результат:
JSON
HTTP/1.1 200 OK
Content-Type: application/json
{
"results":[
{
"bulkId":"bafdeb3d-719b-4cce-8762-54d47b40f3c5",
"messageId":"07e03aae-fabc-44ad-b1ce-222e14094d70",
"to":"41793026727",
"from":"InfoSMS",
"text":"Test SMS.",
"sentAt":"2015-02-23T17:41:11.833+0100",
"doneAt":"2015-02-23T17:41:11.843+0100",
"smsCount":1,
"mccmnc":"22801",
"price":{
"pricePerMessage":0.01,
"currency":"EUR"
},
"status":{
"groupId":3,
15
"groupName":"DELIVERED",
"id":5,
"name":"DELIVERED_TO_HANDSET",
"description":"Message delivered to handset"
},
"error":{
"groupId":0,
"groupName":"OK",
"id":0,
"name":"NO_ERROR",
"description":"No Error",
"permanent":false
}
},
{
"bulkId":"06479ba3-5977-47f6-9346-fee0369bc76b",
"messageId":"1f21d8d7-f306-4f53-9f6e-eddfce9849ea",
"to":"41793026727",
"from":"InfoSMS",
"text":"Test SMS.",
"sentAt":"2015-02-23T17:40:31.773+0100",
"doneAt":"2015-02-23T17:40:31.787+0100",
"smsCount":1,
"mccmnc":"22801",
"price":{
"pricePerMessage":0.01,
"currency":"EUR"
},
"status":{
"groupId":3,
"groupName":"DELIVERED",
"id":5,
"name":"DELIVERED_TO_HANDSET",
"description":"Message delivered to handset"
},
"error":{
"groupId":0,
"groupName":"OK",
"id":0,
"name":"NO_ERROR",
"description":"No Error",
"permanent":false
}
}
]
}
Логи содержат практически ту же информацию, что и отчеты о доставке, а, так же, имеют
дополнительные поля. Если вам потребуется подробная информация в отношении данных
полей ответа, ознакомьтесь с разделом Коды ответов.
16
Важно: логи хранят информацию за последние 48 часов!
Поскольку данный пример лога приведен для всех сообщений, которые вы отправили через
платформу Infobip за последние 48 часов, вам могут потребоваться фильтры для поиска. Вы
можете использовать следующие параметры:
Параметр
Тип
Описание
from
Строка
Адрес отправителя.
to
Строка
Адрес назначения.
bulkId
Строка
ID рассылки
messageId
Строка
ID сообщения, для которого запрашивается лог.
generalStatus
Строка
Статус отправленного SMS.
sentSince
Дата
Нижний предел по дате и времени отправки SMS.
sentUntil
Дата
Верхний предел по дате и времени отправки SMS.
Максимальное количество сообщений в возвращаемых логах журнала.
limit
Целое число
Значение по умолчанию - 50.
mcc
Строка
Код страны.
mnc
Строка
Код сети.
17
Теперь мы попробуем запросить лог, указав "from", "to" и "limit" в качестве значений
фильтра:
JSON
GET /sms/1/logs?from=InfoSMS&to=41793026727&limit=1 HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/json
Формат ответа:
JSON
HTTP/1.1 200 OK
Content-Type: application/json
{
"results":[
{
"bulkId":"82d1d36e-e4fb-4194-8b93-caeb053bd327",
"messageId":"fc0cbfb8-7a72-40da-a76d-e2c2d9400835",
"to":"41793026727",
"from":"InfoSMS",
"text":"Test SMS.",
"sentAt":"2015-02-23T17:42:05.390+0100",
"doneAt":"2015-02-23T17:42:05.390+0100",
"smsCount":1,
"mccmnc":"22801",
"price":{
"pricePerMessage":0,
"currency":"EUR"
},
"status":{
"groupId":5,
"groupName":"REJECTED",
"id":6,
"name":"REJECTED_NETWORK",
"description":"Network is forbidden",
"action":"Contact account manager"
},
"error":{
"groupId":0,
"groupName":"OK",
"id":0,
"name":"NO_ERROR",
"description":"No Error",
"permanent":false
}
}
]
}
18
ПОЛУЧЕНИЕ ВХОДЯЩИХ СООБЩЕНИЙ - метод
PULL
Infobip предлагает разные методы для получения и просмотра входящих SMS-сообщений,
отправленных с мобильных устройств, которые принадлежат вашим клиентам. Мы можем
предоставить хостинг вашим GSM SIM-картам в нашей sim-ферме, либо выделенный
виртуальный номер. Когда ваш клиент отправляет SMS-сообщение, оно приходит в нашу
систему. Чтобы получать входящие сообщения, вам в первую очередь понадобится
телефонный номер и использование метода (pull). По извлечении полученного сообщения
вы не сможете просмотреть то же самое сообщение снова, используя данный способ.
Для более подробной информации свяжитесь с вашим аккаунт-менеджером или с нашей
службой поддержки.
Для просмотра SMS-сообщений воспользуйтесь следующим URL для отправки запроса:
Параметр
Тип
Описание
limit
Целое число
Максимальное количество полученных сообщений, которые необходимо
просмотреть.
Пример просмотра полученного сообщения (Pull)
JSON
GET /sms/1/inbox/reports HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/json
19
Ответ:
JSON
{
"results":[
{
"messageId":"ff4804ef-6ab6-4abd-984d-ab3b1387e823",
"from":"38598111",
"to":"41793026727",
"text":"KEY Test message",
"cleanText":"Test message",
"keyword":"KEY",
"receivedAt":"2015-02-15T11:43:20.254+0100",
"smsCount":1
}
]
}
Значение параметров ответа
При успешном запросе, значение статуса ответного заголовка HTTP будет выглядеть как 200
OK, а сообщения будут возвращены в теле ответа.
Если вы попытаетесь просмотреть полученные сообщения без авторизации, вы получите ответ
с кодом статуса HTTP 401 Unauthorized
Ответ
Параметр
Тип
Описание
results
Сообщения []
Группа отчетов, один на каждое полученное сообщение
20
Сообщения
Параметр
Тип
Описание
messageId
Строка
ID, которое уникальным образом идентифицирует полученное сообщение.
from
Строка
ID отправителя, которое может быть буквенно-числовым или числовым.
to
Строка
Адрес пункта назначения сообщения.
text
Строка
Полный текст полученного сообщения.
cleanText
Строка
Текст полученного сообщения без ключевого слова (в случае отправки ключевого
слова).
keyword
Строка
Ключевое слово, извлеченное из текста сообщения.
receivedAt
Дата
Показывает, когда сообщение было получено платформой Infobip. Имеет следующий
формат: yyyy-MM-dd'T'HH:mm:ss.SSSXXX.
smsCount
int
Количество сегментов отправленного сообщения.
21
ПЕРЕНАПРАВЛЕНИЕ ПОЛУЧЕННЫХ СООБЩЕНИЙ
(PUSH)
После того, как сообщение поступило в нашу систему, оно может быть перенаправлено на ваш
сервер при помощи запроса HTTP GET, который используется по умолчанию. Также можно
использовать POST, однако это делается по запросу клиента. В таком случае, необходимо
предоставить URL, который мы могли бы использовать для перенаправления входящих
сообщений. Это означает, что вам необходимо создать таковой URL на вашем веб-сервере.
Параметры
Параметр
Тип
Описание
Sender
Строка
Отправитель SMS-сообщения (номер телефона GSM)
Receiver
Строка
Номер получателя (при наличии)
Text
Строка
Текст полученного сообщения
Bin
Строка
Бинарный контент полученного сообщения
Datetime
Дата
Дата и время получения сообщения
MessageId
Дата
Идентификатор для специальных сообщений MO
Datacoding
Целое число
Кодирование данных сообщения
Esmclass
Целое число
Параметр сообщения ESM-класса
22
output
Строка
Желаемые выходные данные, поддерживаемыми значениями
являются (опционально):
xml: значения сформатированы как xml
json: значения сформатированы как json
В том случае, если вы предоставляете URL как с текстовыми параметрами, так и с параметрами
bin, позаботьтесь о следующем: если параметр кодирования данных “0”, тогда мы отправляем
вам только текст сообщения, bin-параметр задается как “” (пустая строка). Если кодирование
данных не равно “0” (к примеру, “8” = сообщение Unicode), мы отправляем вам только бинарный
контент, параметр текста задается как “” (пустая строка).
Однако если вы не поддерживаете оба параметра (bin и текст) в URL (конечно, вы должны
использовать как минимум один из них для получения содержимого сообщения), мы обеспечим
вам все необходимое безотносительно параметров кодирования данных. Мы используем
логику “отправка только бинарного контента или только текста”, чтобы запросы HTTP GET были
максимально короткими.
Например, если вы предоставляете следующий URL:
то наша система сделает следующий HTTP-запрос (после получения сообщения от
+38598123123, в котором говорится “ABC”):
Помните, что в поле «Отравитель» не имеется “+”. Если вы захотите использовать бинарный
параметр вместо текста, вы должны представить следующий URL:
23
чтобы можно было сделать следующий запрос:
ТЕКСТОВОЕ СООБЩЕНИЕ с дополнительными
параметрами
Для осуществления SMS-рассылок с заданием дополнительных параметров вы можете
использовать API, который помогает создавать текстовые сообщения, включающие все
возможные опции:
Параметры
Параметр
Тип
Описание
bulkId
Строка
ID, которое уникальным образом идентифицирует запрос. Массовый ID
- Bulk ID - будет получен только в том случае, если вы отправите
сообщение на более чем один адрес назначения.
from
Строка
Представляет ID отправителя, которое может быть буквенно-числовым
или числовым. Длина буквенно-числового ID отправителя должна
использовать от 3 до 11 символов. (Пример: CompanyName). Длина
числового ID отправителя должна использовать от 3 до 14 символов.
to
Строка
Адрес назначения сообщения. Адреса должны указываться и
международном формате (Пример: 41793026727).
messageId
Строка
ID, которое уникальным образом идентифицирует отправленное
сообщение.
24
text
Строка
Текст сообщения, которое будет отправлено.
flash
Булев
Может быть истинным или ложным. Если значение задано как
истинное, отправляется flash-SMS. В ином случае будет отправлено
обычное SMS. Значение по умолчанию считается ложным.
transliteration
Строка
Использование
транслитерации.
Возможные
значения:
"TURKISH", "GREEK", "CYRILLIC", "CENTRAL_EUROPEAN" и "NON_UNICODE"
languageCode
Строка
Код для символов в текстовом сообщении. Возможные
значения: TR для
турецкого, ES для
испанского
и
PT для
португальского.
singleShift
Булев
Таблица замены алфавитной таблицы GSM 7 бит, заданной по
умолчанию.
lockingShift
Булев
Locking Shift Table заменяет таблицу символов по умолчанию для
стандарта GSM 7
intermediateReport
Булев
Промежуточный отчет о доставке в реальном времени, который
отправляется в ваш сервер. Может быть истинным или ложным.
notifyUrl
Строка
URL на вашем сервере, на который отправляется отчет о доставке.
notifyContentType
Строка
Предпочитаемый тип контента для отчета о доставке. Может быть
application/json или application/xml.
callbackData
Строка
Дополнительные данные, которые будут отправлены на notifyUrl.
validityPeriod
Целое
Период действия сообщения в минутах. По истечении периода
число
действия отправка сообщения будет запрещена. Период действия,
превышающий 48 часов, не поддерживается (в данном случае он будет
автоматически переустановлен на 48 часов).
sendAt
Дата и
Дата и время, назначенное для отправки сообщения. Используется для
время
запланированной SMS рассылки в определенный момент времени по
графику (SMS отправляется не сразу же, а в установленное время).
25
track
Строка
Показывает, нужно ли отслеживать сообщение для Показателей
эффективности (конверсии). Возможные значения: SMS и URL
processKey
Строка
Ключ, который уникальным образом идентифицирует процесс
отслеживания эффективности (конверсии).
type
Строка
Определяемый пользователем тип процессов отслеживания
эффективности
(конверсии)
Например: ONE_TIME_PIN or SOCIAL_INVITES
Примеры
JSON·
POST /sms/1/text/advanced HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
{
"bulkId":"BULK-ID-123-xyz",
"messages":[
{
"from":"InfoSMS",
"destinations":[
{
"to":"41793026727",
"messageId":"MESSAGE-ID-123-xyz"
},
{
"to":"41793026731"
}
],
"text":"Artık Ulusal Dil Tanımlayıcısı ile Türkçe karakterli smslerinizi rahatlıkla i
letebilirsiniz.",
"flash":false,
"language":{
"languageCode":"TR",
"singleShift":true,
"lockingShift":false
},
"transliteration":"TURKISH",
"intermediateReport":true,
"notifyContentType":"application/json",
"callbackData":"DLR callback data",
"validityPeriod": 720
},
{
"from":"41793026700",
26
"destinations":[
{
"to":"41793026785"
}
],
"text":"A long time ago, in a galaxy far, far away... It is a period of civil war. Re
bel spaceships, striking from a hidden base, have won their first victory against the evil Gal
actic Empire.",
"sendAt":"2015-07-07T17:00:00.000+01:00"
}
],
"tracking":{
"track":"SMS",
"type":"MY_CAMPAIGN"
}
}
Формат ответа·
HTTP/1.1 200 OK
Content-Type: application/json
{
"bulkId": "BULK-ID-123-xyz",
"messages":[
{
"to":"41793026727",
"status":{
"groupId":0,
"groupName":"ACCEPTED",
"id":0,
"name":"MESSAGE_ACCEPTED",
"description":"Message accepted"
},
"smsCount":1,
"messageId":"MESSAGE-ID-123-xyz"
},
{
"to":"41793026731",
"status":{
"groupId":0,
"groupName":"ACCEPTED",
"id":0,
"name":"MESSAGE_ACCEPTED",
"description":"Message accepted"
},
"smsCount":1,
"messageId":"9304a5a3ab19-1ca1-be74-76ad87651ed25f35"
},
{
"to":"41793026785",
"status":{
"groupId":0,
"groupName":"ACCEPTED",
"id":0,
27
"name":"MESSAGE_ACCEPTED",
"description":"Message accepted"
},
"smsCount":2,
"messageId":"5f35f87a2f19-a141-43a4-91cd81b85f8c689"
}
]
}
ПРОВЕРКА НОМЕРА
Проверка номера служит для поддержания вашей базы данных в актуальном состоянии.
Мобильные абоненты часто меняют номера, оказываются в роуминге или меняют провайдеров,
сохраняя свой оригинальный номер. Знание того, какие именно номера продолжают
использоваться и оставаться доступными или какую сеть в данный момент использует ваш
клиент, существенно повышает точность работы и экономическую эффективность для многих
видов бизнеса.
С Проверкой номера вы можете определить:
Какие номера активны на данный момент
Находится ли мобильный номер в роуминге
Определение портированности мобильного номера абонента в другую сеть
Оптимальный маршрут для сообщений и голосовых звонков
Тип номера (например, стационарный, мобильный и т.п.)
Мы предлагаем различные пакеты Проверки Номера, и вы можете выбрать тот, который
оптимально соответствует потребностям вашего бизнеса:
28
Очистка базы данных: разработанный для компаний с огромным количеством баз
данных, наш Пакет по очистке баз данных позволяет идентифицировать
неиспользуемые и неактивные номера абонентов.
Портированность: разработанный для решения проблем с переносимостью номера
для различных типов компаний, данный пакет позволяет проверять перенос номера в
сеть другого мобильного оператора в реальном времени для оптимизации
маршрутизации сообщений и голосовых звонков. Он включает все опции из Пакета
очистки баз данных.
Роуминг: изначально созданный для обслуживания клиентов из финансового сектора,
данный пакет предоставляет информацию по роумингу для оптимизации
маршрутизации, предотвращения случаев мошенничества с банкоматами и многое
другое.
Следующий пример демонстрирует, каким образом можно получить информацию по Проверке
номера с использованием нашего API:
JSON
POST /number/1/query HTTP/1.1
Host: api.infobip.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
Accept: application/json
{
"to":["41793026727"]
}
Параметр to - это список всех номеров, которые вы хотите проверить. Результат представлен
ниже:
JSON
HTTP/1.1 200 OK
Content-Type: application/json
{
"results":[
29
{
"to":"41793026727",
"mccMnc":"22801",
"imsi":"228012120181810",
"originalNetwork":{
"networkPrefix":"79",
"countryPrefix":"41"
},
"ported":false,
"roaming":false,
"status":{
"groupId":3,
"groupName":"DELIVERED",
"id":5,
"name":"DELIVERED_TO_HANDSET",
"description":"Message delivered to handset"
},
"error":{
"groupId":0,
"groupName":"OK",
"id":0,
"name":"NO_ERROR",
"description":"No Error",
"permanent":false
}
}
]
}
Информация: в зависимости от типа пакета некоторая информация может быть недоступна.
Для изменения пакета свяжитесь с вашим аккаунт-менеджером.
КОДЫ ОТВЕТОВ
Ознакомьтесь со списком значения параметров кодов ответов по статусам и ошибкам GSM,
которые могут быть представлены компанией Infobip.
Пример статуса
JSON
{
"groupId":3,
"groupName":"DELIVERED",
"id":5,
"name":"DELIVERED_TO_HANDSET",
"description":"Message delivered to handset"
30
}
Статусы групп
Id группы
Имя группы
Описание
0
ACCEPTED
Сообщение принято.
1
PENDING
Сообщение в статусе ожидания.
2
UNDELIVERABLE
Сообщение не может быть доставлено.
3
DELIVERED
Сообщение доставлено.
4
EXPIRED
Период срока жизни сообщения истек.
5
REJECTED
Сообщение отклонено.
Статусы
Id
Id
Название
Описание
Действие
Группы
1
1
PENDING_TIME_VIOLATION
Нарушение временного окна
NULL
2
3
DELIVERED_TO_OPERATOR
Сообщение доставлено
NULL
оператору
31
Id
Id
Название
Описание
Действие
Группы
3
1
PENDING_WAITING_DELIVERY
Сообщение отправлено,
NULL
ожидается отчет о доставке
4
2
UNDELIVERABLE_REJECTED_OPER
Сообщение отклонено
NULL
ATOR
оператором
5
3
DELIVERED_TO_HANDSET
Сообщение доставлено на
NULL
устройство
6
5
REJECTED_NETWORK
Запрет сети
Свяжитесь с аккаунт-
менеджером
7
1
PENDING_ENROUTE
Сообщение отправлено в
NULL
следующую инстанцию
8
5
REJECTED_PREFIX_MISSING
Отсутствует префикс номера
NULL
9
2
UNDELIVERABLE_NOT_DELIVERED
Отправленное сообщение не
NULL
доставлено
10
5
REJECTED_DND
Адрес назначения в списке
NULL
DND
11
5
REJECTED_SOURCE
Недействительный адрес
NULL
источника
12
5
REJECTED_NOT_ENOUGH_CREDIT
Недостаточная сумма на
NULL
S
балансе.
32
Id
Id
Название
Описание
Действие
Группы
13
5
REJECTED_SENDER
Отклонено имя отправителя
Удалите отправителя
из черного списка
14
5
REJECTED_DESTINATION
Отклонено получателем
Удалите абонента из
черного списка
15
4
EXPIRED_EXPIRED
Период действия сообщения
NULL
истек
16
5
REJECTED_NOT_REACHABLE
Нет доступа к сети
NULL
17
5
REJECTED_PREPAID_PACKAGE_EX
Истек период действия
Пополните счет для
PIRED
предоплаченного пакета
продления периода
действия
18
5
REJECTED_DESTINATION_NOT_RE
Пункт назначения не
NULL
GISTERED
зарегистрирован
19
5
REJECTED_ROUTE_NOT_AVAILABL
Маршрут недоступен
Свяжитесь с аккаунт-
E
менеджером
20
5
REJECTED_FLOODING_FILTER
Отказ по причине флуда
Остановить спам
21
5
REJECTED_SYSTEM_ERROR
Системная ошибка
Попробуйте еще раз
22
4
EXPIRED_UNKNOWN
Неизвестная причина
NULL
23
5
REJECTED_DUPLICATE_MESSAGE_
Отказ, дубликат ID
NULL
ID
сообщения
33
Id
Id
Название
Описание
Действие
Группы
24
5
REJECTED_INVALID_UDH
Отказ, недействительный
NULL
UDH
25
5
REJECTED_MESSAGE_TOO_LONG
Отказ, слишком длинное
NULL
сообщение
26
1
PENDING_ACCEPTED
Ожидание принято
NULL
27
1
PENDING_APPROVAL
Ожидание одобрено
NULL
28
5
REJECTED_NOT_SENT
Отказ, не отправлено
NULL
29
4
EXPIRED_DLR_UNKNOWN
Истек период действия,
NULL
неизвестный DLR
30
3
DELIVERED
MO перенаправлено,
NULL
действие завершено
31
2
UNDELIVERABLE_NOT_SENT
Сообщение не отправлено
NULL
51
5
MISSING_TO
Отсутствует получатель
Проверьте параметр
to.
52
5
REJECTED_DESTINATION
Недействительный адрес
Проверьте параметр
назначения.
to.
Пример ошибки
34
JSON
{
"groupId":0,
"groupName":"OK",
"id":0,
"name":"NO_ERROR",
"description":"No Error",
"permanent":false
}
Группы ошибок
Id Группы
Название группы
Описание
0
OK
Ошибок нет.
1
HANDSET_ERRORS
Ошибка устройства.
2
USER_ERRORS
Ошибка пользователя.
3
OPERATOR_ERRORS
Ошибка оператора.
Коды ошибок GSM
Id
Id
Название
Описание
Значение
Группы
0
0
NO_ERROR
Нет ошибки
Ложно
1
1
EC_UNKNOWN_SUBSCRIBER
Неизвестный абонент
Истинно
5
1
EC_UNIDENTIFIED_SUBSCRIBER
Неопределенный абонент
Ложно
6
1
EC_ABSENT_SUBSCRIBER_SM
Отсутствующий абонент
Ложно
35
Id
Id
Название
Описание
Значение
Группы
9
1
EC_ILLEGAL_SUBSCRIBER
Абонент указан неверно
Ложно
10
3
EC_BEARER_SERVICE_NOT_PROVISIONED
Носитель сервиса не
Истинно
предоставлен
11
1
EC_TELESERVICE_NOT_PROVISIONED
Телесервис не
Истинно
представлен
12
1
EC_ILLEGAL_EQUIPMENT
Нелегальное
Истинно
оборудование
13
1
EC_CALL_BARRED
Запрет звонка
Ложно
20
3
EC_SS_INCOMPATIBILITY
Несоответствие SS
Ложно
21
1
EC_FACILITY_NOT_SUPPORTED
Оборудование не
Ложно
поддерживается
27
1
EC_ABSENT_SUBSCRIBER
Отсутствующий абонент
Ложно
31
1
EC_SUBSCRIBER_BUSY_FOR_MT_SMS
Абонент недоступен для
Ложно
приема входящих SMS
32
1
EC_SM_DELIVERY_FAILURE
Сбой доставки SM
Ложно
33
1
EC_MESSAGE_WAITING_LIST_FULL
Ожидание сообщения,
Ложно
список переполнен
34
1
EC_SYSTEM_FAILURE
Системный сбой
Ложно
36
Id
Id
Название
Описание
Значение
Группы
35
1
EC_DATA_MISSING
Отсутствие данных
Ложно
36
1
EC_UNEXPECTED_DATA_VALUE
Неожиданное значение
Ложно
данных
51
3
EC_RESOURCE_LIMITATION
Лимит ресурса
Истинно
71
3
EC_UNKNOWN_ALPHABET
Неизвестный алфавит
Ложно
72
1
EC_USSD_BUSY
Ussd занят
Истинно
255
1
EC_UNKNOWN_ERROR
Неизвестная ошибка
Ложно
256
1
EC_SM_DF_MEMORYCAPACITYEXCEEDED
Превышен объем памяти
Ложно
SM DF
257
1
EC_SM_DF_EQUIPMENTPROTOCOLERROR
Ошибка протокола
Ложно
оборудования SM DF
258
1
EC_SM_DF_EQUIPMENTNOTSM_EQUIPPED
Оборудование SM DF не
Ложно
оборудовано SM
259
1
EC_SM_DF_UNKNOWNSERVICECENTRE
Неизвестный сервис-
Ложно
центр SM DF
перегруженность
260
1
EC_SM_DF_SC_CONGESTION
Ложно
SM DF Sc
261
1
EC_SM_DF_INVALIDSME_ADDRESS
SM DF недействительный
Ложно
адрес SME
37
Id
Id
Название
Описание
Значение
Группы
262
1
EC_SM_DF_SUBSCRIBERNOTSC_SUBSCRI
SM DF абонент не
Ложно
BER
является абонентом SC
500
1
EC_PROVIDER_GENERAL_ERROR
Общая ошибка
Ложно
провайдера
501
3
EC_INVALID_RESPONSE_RECEIVED
Получен
Ложно
недействительный ответ
502
1
EC_NO_RESPONSE
Нет ответа
ложно
503
1
EC_SERVICE_COMPLETION_FAILURE
Сбой завершения сервиса
Ложно
504
1
EC_UNEXPECTED_RESPONSE_FROM_PEE
Неожиданный ответ от
Ложно
R
узла того же уровня
507
1
EC_MISTYPED_PARAMETER
Неправильно введенный
Ложно
параметр
508
1
EC_NOT_SUPPORTED_SERVICE
Не поддерживаемый
Ложно
сервис
509
1
EC_DUPLICATED_INVOKE_ID
Дубликат Id
Ложно
511
1
EC_INITIATING_RELEASE
Инициация релиза
Ложно
1024
1
EC_OR_APPCONTEXTNOTSUPPORTED
Контекст приложения не
Ложно
поддерживается
38
Id
Id
Название
Описание
Значение
Группы
1025
1
EC_OR_INVALIDDESTINATIONREFERENCE
Недействительная ссылка
Ложно
на абонента
1026
1
EC_OR_INVALIDORIGINATINGREFERENCE
Недействительная ссылка
Ложно
на источник
1027
1
EC_OR_ENCAPSULATEDAC_NOTSUPPORT
Капсулированный AC не
Ложно
ED
поддерживается
1028
1
EC_OR_TRANSPORTPROTECTIONNOTADE
Не соответствующая
Ложно
QUATE
безопасность передачи
данных
1029
1
EC_OR_NOREASONGIVEN
Причина не указана
Ложно
1030
1
EC_OR_POTENTIALVERSIONINCOMPATIBIL
Несовместимость с
Ложно
ITY
потенциальной версией
1031
1
EC_OR_REMOTENODENOTREACHABLE
Удаленный узел
Ложно
недоступен
1152
1
EC_NNR_NOTRANSLATIONFORANADDRES
Нет перевода для такого
Ложно
SOFSUCHNATURE
типа адреса
1153
1
EC_NNR_NOTRANSLATIONFORTHISSPECIF
Нет перевода для данного
Ложно
ICADDRESS
адреса
1154
1
EC_NNR_SUBSYSTEMCONGESTION
Перегруженность
Ложно
подсистемы
39
Id
Id
Название
Описание
Значение
Группы
1155
1
EC_NNR_SUBSYSTEMFAILURE
Сбой подсистемы
Ложно
1156
1
EC_NNR_UNEQUIPPEDUSER
Пользователь без
Ложно
оборудования
1157
1
EC_NNR_MTPFAILURE
Сбой MTP
Ложно
1158
1
EC_NNR_NETWORKCONGESTION
Загруженность сети
Ложно
1159
1
EC_NNR_UNQUALIFIED
Неквалифицировано
Ложно
1160
1
EC_NNR_ERRORINMESSAGETRANSPORTX
Ошибка в передаче
Ложно
UDT
сообщения XUDT
1161
1
EC_NNR_ERRORINLOCALPROCESSINGXU
Ошибка локальной
Ложно
DT
обработки XUDT
1162
1
EC_NNR_DESTINATIONCANNOTPERFORM
Абонент не может
Ложно
REASSEMBLYXUDT
выполнить повторную
сборку XUDT
1163
1
EC_NNR_SCCPFAILURE
Сбой SCCP
Ложно
1164
1
EC_NNR_HOPCOUNTERVIOLATION
Нарушение счетчика
Ложно
переходов
1165
1
EC_NNR_SEGMENTATIONNOTSUPPORTED
Сегментация не
Ложно
поддерживается
1166
1
EC_NNR_SEGMENTATIONFAILURE
Сбой сегментации
Ложно
40
Id
Id
Название
Описание
Значение
Группы
1281
1
EC_UA_USERSPECIFICREASON
Причина, связанная с
Ложно
пользователем
1282
1
EC_UA_USERRESOURCELIMITATION
Лимит ресурса
Ложно
пользователя
1283
1
EC_UA_RESOURCEUNAVAILABLE
Ресурс недоступен
Ложно
1284
1
EC_UA_APPLICATIONPROCEDURECANCEL
Отмена процедуры
Ложно
LATION
приложения
1536
1
EC_PA_PROVIDERMALFUNCTION
Сбой провайдера
Ложно
1537
1
EC_PA_SUPPORTINGDIALOGORTRANSACT
Выпущен
Ложно
IONREALEASED
поддерживающий диалог
транзакции
1538
1
EC_PA_RESSOURCELIMITATION
Лимит ресурса
Ложно
1539
1
EC_PA_MAINTENANCEACTIVITY
Работы по обслуживанию
Ложно
1540
1
EC_PA_VERSIONINCOMPATIBILITY
Несовместимость версии
Ложно
1541
1
EC_PA_ABNORMALMAPDIALOG
Аномальная карта
Ложно
диалога
1792
1
EC_NC_ABNORMALEVENTDETECTEDBYPE
Аномальное событие,
Ложно
ER
обнаруженное узлом того
же уровня
41
Id
Id
Название
Описание
Значение
Группы
1793
1
EC_NC_RESPONSEREJECTEDBYPEER
Отказ в ответе узлом того
Ложно
же уровня
1794
1
EC_NC_ABNORMALEVENTRECEIVEDFROM
Аномальное событие,
Ложно
PEER
полученное от узла того
же уровня
1795
1
EC_NC_MESSAGECANNOTBEDELIVEREDT
Сообщение не может
Ложно
OPEER
быть доставлено на узел
того же уровня
1796
1
EC_NC_PROVIDEROUTOFINVOKE
Провайдер вне зоны
Ложно
вызова
2048
3
EC_TIME_OUT
Time Out
Ложно
2049
2
EC_IMSI_BLACKLISTED
IMSI в черном списке
Ложно
2050
3
EC_DEST_ADDRESS_BLACKLISTED
DND в черном списке
Истинно
2051
3
EC_INVALIDMSCADDRESS
Текст в черном списке
Ложно
4096
2
EC_INVALID_PDU_FORMAT
Недействительный
Истинно
формат PDU
4097
3
EC_NOTSUBMITTEDTOGMSC
Не представлено в GMSC
Ложно
4100
2
EC_MESSAGE_CANCELED
Сообщение отменено
Истинно
4101
2
EC_VALIDITYEXPIRED
Истек период действия
Истинно
42
Id
Id
Название
Описание
Значение
Группы
4102
3
EC_NOTSUBMITTEDTOSMPPCHANNEL
Не передано в канал
Истинно
Smpp
5000
0
VOICE_ANSWERED
На звонок отвечает
Истинно
человек
5001
0
VOICE_ANSWERED_MACHINE
На звонок отвечает
Истинно
машина
5002
2
EC_VOICE_USER_BUSY
Пользователь был занят
Истинно
во время попытки звонка
5003
2
EC_VOICE_NO_ANSWER
Пользователь был
Истинно
оповещен, но не ответил
на звонок
5004
2
EC_VOICE_ERROR_DOWNLOADING_FILE
Файл для звонка не был
Истинно
загружен
5005
2
EC_VOICE_ERROR_UNSUPPORTED_AUDIO
Формат представленного
Истинно
_FORMAT
файла для звонка не
поддерживается
43
Дополнительные возможности при массовой
рассылке
SMS рассылка множеству абонентов
Для отправки одного и того же сообщения разным абонентам вам нужно выполнить:
В приведенном примере наш запрос будет содержать только два телефонных номера:
JSON
POST /sms/1/text/single HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
{
"from":"WineShop",
"to":[
"41793026727",
"41793026834"
],
"text":"Wine shop grand opening at Monday 8pm. Don't forget glasses."
}
Раздел Header данного запроса должен содержать authorization и content type:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
В теле запроса вы увидите три параметра:
Параметр from представляет отправителя SMS-сообщения - он может быть буквенно-
числовым и числовым. Длина ID буквенно-числового отправителя должна использовать
от 3 до 13 символов (например: CompanyName). Длина ID числового отправителя может
состоять от 3 до 14 символов.
44
Параметр to - параметр, включающий список абонентов, кому необходимо передать
сообщение. Адреса назначения должны указываться в международном формате
(например: 41793026727).
text: текст отправляемого сообщения.
Это поможет отправить SMS на два адреса с одним и тем же именем отправителя и контентом.
Формат ответа:
JSON
HTTP/1.1 200 OK
Content-Type: application/json
{
"bulkId":"f5c4322c-10e7-a41e-5528-34fa0b032134",
"messages":[
{
"to":"41793026727",
"status":{
"id":0,
"groupId":0,
"groupName":"ACCEPTED",
"name":"MESSAGE_ACCEPTED",
"description":"Message accepted"
},
"smsCount":1,
"messageId":"4a54f0242f19-b832-1c39-a7e7a2095f351ed2"
},
{
"to":"41793026834",
"status":{
"id":0,
"groupId":0,
"groupName":"ACCEPTED",
"name":"MESSAGE_ACCEPTED",
"description":"Message accepted"
},
"smsCount":1,
"messageId":"9404a69cef19-7a31-ba39-92ace76a5f351ed2"
}
]
}
В ответ, который вы получите, будут включены bulkId и массив сообщений (messages):
bulkId используется для получения отчетов о доставке SMS-сообщений,
отправленных по многочисленным адресам назначения.
Массив сообщений (messages состоит из деталей ответа на Send SMS:
45
o to - параметр, указывающий получателей
o status - статус сообщения
o smsCount - представляет количество SMS-сообщений, отправляемых одному
абоненту
o messageId - уникальным образом идентифицирует отправленное сообщение
Персонализированные SMS для каждого абонента
Отправляйте отдельные сообщения разным абонентам посредством единовременного вызова.
Ваш запрос будет выглядеть следующим образом:
JSON
POST /sms/1/text/multi HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
{
"messages":[
{
"from":"WineShop",
"to":"41793026727",
"text":"Привет, Майк, мы наконец получили восхитительное вино Istrian Malvazija. Посе
тите нас и попробуйте бесплатно!"
},
{
"from":"WineShop",
"to":"41793026834",
"text":"Привет, Дженни, на наших полках появилась новая коллекция французского Мерло.
Заходите к нам на бесплатную дегустацию!"
}
]
}
Таким образом вы отправляете разные SMS-сообщения на разные номера в рамках единого
запроса.
Ответ, который вы получите, будет содержать информацию обо всех отправленных
сообщениях:
JSON
46
HTTP/1.1 200 OK
Content-Type: application/json
{
"bulkId":"f5c4322c-10e7-a41e-5528-34fa0b032134",
"messages":[
{
"to":"41793026727",
"status":{
"id":0,
"groupId":0,
"groupName":"ACCEPTED",
"name":"MESSAGE_ACCEPTED",
"description":"Message accepted"
},
"smsCount":1,
"messageId":"4a54f0242f19-b832-1c39-a7e7a2095f351ed2"
},
{
"to":"41793026834",
"status":{
"id":0,
"groupId":0,
"groupName":"ACCEPTED",
"name":"MESSAGE_ACCEPTED",
"description":"Message accepted"
},
"smsCount":1,
"messageId":"9404a69cef19-7a31-ba39-92ace76a5f351ed2"
}
]
}
После рассылки таких сообщений вы сможете получить детализированную статистику и
осуществить анализ трафика. Например, вы сможете подсчитать количество клиентов,
получивших SMS-приглашение, просмотрев отчеты о доставке.
Запланированная отправка и срок жизни SMS
Если вы хотите создать запланированную отправку SMS, вы можете использовать параметр
sendAt в ранее описанном методе для текстового сообщения с использованием
дополнительных параметров. Вы установите конкретную дату и время отправки сообщения.
47
Дата и формат для запланированной отправки выглядят следующим образом: 2015-07-
07T17:00:00.000+01:00.
JSON
POST /sms/1/text/advanced HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
{
"messages":[
{
"from":"41793026700",
"destinations":[
{
"to":"41793026785"
}
],
"text":"Давным-давно, в одной далекой галактике…",
"sendAt":"2015-07-07T17:00:00.000+01:00"
}
]
}
Ниже представлен ответ, который вы получите от платформы Infobip:
JSON
HTTP/1.1 200 OK
Content-Type: application/json
{
"bulkId": "b86c5f0f-40ed-47b7-9b7f-57eb9707b104",
"messages": [
{
"to": "41793026785",
"status": {
"groupId": 1,
"groupName": "PENDING",
"id": 26,
"name": "PENDING_ACCEPTED",
"description": "Pending Accepted"
},
"messageId": "36397015-149a-41de-bccc-f7e365a7f89a"
}
]
}
Помимо создания графика сообщений, вы также можете задать срок жизни для каждого SMS
(см. метод отправки текстового сообщения с использованием дополнительных параметров).
48
Параметр validityPeriod (период действия) должен указываться в минутах. Отправка
сообщения будет остановлена после истечения данного временного интервала. Максимальный
период действия - 48 часов, поэтому если вы задаете больший период, он автоматически
изменяется на значение в 48 часов.
Ниже приведен пример того, каким образом задается срок жизни для ваших сообщений:
JSON
POST /sms/1/text/advanced HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
{
"messages":[
{
"from":"InfoSMS",
"destinations":[
{
"to":"41793026727",
},
{
"to":"41793026731"
}
],
"text":"В данный момент путешествия очень опасны. Я лучше займусь изучением другой ве
личайшей загадки вселенной - женщин!",
"validityPeriod": 1440
}
]
}
Ответ, который вы получите, будет выглядеть следующим образом:
JSON
HTTP/1.1 200 OK
Content-Type: application/json
{
"bulkId": "a6e6bf50-ade1-4dd5-8900-d5b3bb18c0cc",
"messages": [
{
"to": "41793026727",
"status": {
49
"groupId": 1,
"groupName": "PENDING",
"id": 7,
"name": "PENDING_ENROUTE",
"description": "Message sent to next instance"
},
"smsCount": 1,
"messageId": "239a1bed-91d0-4454-a437-6663938465aa"
},
{
"to": "41793026731",
"status": {
"groupId": 1,
"groupName": "PENDING",
"id": 7,
"name": "PENDING_ENROUTE",
"description": "Message sent to next instance"
},
"smsCount": 1,
"messageId": "77a6e601-c12d-4a66-8e16-d8ec8c5fbc03"
}
]
}
Отчеты о доставке на URL для Оповещений
В отличие от просмотра отчетов, где отчеты группируются и получаются в ответе, в данном
случае вы можете задать URL для Оповещений на вашем сервере обратного вызова, на
который мы перенаправим отчеты о доставке. URL для Оповещений задается как один из
параметров API-метода для Полномасштабных текстовых сообщений.
Как только отчеты о доставке отправленных сообщений поступают в систему Infobip, они
перенаправляются на указанный URL для Оповещений на вашем сервере. Помимо URL для
Оповещений, вы также можете указать тип контента для оповещений для отчетов о доставке.
Поддерживаемые типы контента:
application/json
application/xml
50
Для каждого отправленного сообщения вы можете задать особый bulk id и message id, чтобы
каждый отчет о доставке, отправляемый на URL для Оповещений, имел те же
атрибуты messageId и bulkId, что и сообщение, к которому они относятся. Если вы не
используете специальные messageId и bulkId, то атрибуты перенаправленных отчетов о
доставке будут созданы платформой Infobip.
Помимо специальных bulk id и message id, которые служат для идентификации отправленных
сообщений, вы можете задать callbackData как дополнительные, определяемые
пользователем данные, которые будут отправлены на URL для Оповещений (см. метод
отправки текстового сообщения с дополнительными параметрами).
На приведенном ниже примере показано, как задаются notifyURL, notifyContentType для
отчетов о доставке и пользовательских callbackData.
JSON
POST /sms/1/text/advanced HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
{
"bulkId":"BULK-ID-123-xyz",
"messages":[
{
"from":"InfoSMS",
"destinations":[
{
"to":"41793026727",
"messageId":"MESSAGE-ID-123-xyz"
},
{
"to":"41793026731"
}
],
"text":"Мама всегда говорила, что жизнь - это коробка с шоколадками. Никогда не знаеш
ь, какую вытащишь.",
"notifyContentType":"application/json",
"callbackData":"Нет ничего лучше родного дома."
51
}
]
}
Результаты, которые вы получите на ваш URL для Оповещений, будут такими же, как при
получении отчетов о доставке стандартным образом, за исключением имени XML корневого
элемента, которое будет одинаковым для всех отчетов - <reportResponse>.
JSON
{
"results": [
{
"bulkId": "BULK-ID-123-xyz",
"messageId": "c9823180-94d4-4ea0-9bf3-ec907e7534a6",
"to": "41793026731",
"sentAt": "2015-06-04T13:01:52.933+0000",
"doneAt": "2015-06-04T13:02:00.134+0000",
"smsCount": 1,
"price": {
"pricePerMessage": 0.0001000000,
"currency": "EUR"
},
"status": {
"groupId": 3,
"groupName": "DELIVERED",
"id": 5,
"name": "DELIVERED_TO_HANDSET",
"description": "Message delivered to handset"
},
"error": {
"groupId": 0,
"groupName": "OK",
"id": 0,
"name": "NO_ERROR",
"description": "No Error",
"permanent": false
},
"callbackData":" Нет ничего лучше родного дома."
},
{
"bulkId": "BULK-ID-123-xyz",
"messageId": "MESSAGE-ID-123-xyz",
"to": "41793026727",
"sentAt": "2015-06-04T13:01:52.937+0000",
"doneAt": "2015-06-04T13:02:01.204+0000",
"smsCount": 1,
"price": {
"pricePerMessage": 0.0001000000,
"currency": "EUR"
},
52
"status": {
"groupId": 3,
"groupName": "DELIVERED",
"id": 5,
"name": "DELIVERED_TO_HANDSET",
"description": "Нет ничего лучше родного дома"
},
"error": {
"groupId": 0,
"groupName": "OK",
"id": 0,
"name": "NO_ERROR",
"description": "No Error",
"permanent": false
},
"callbackData":"Нет ничего лучше родного дома."
}
]
}
Запуск цикла повторных попыток для Отчета о доставке
Если по каким-либо причинам ваш URL для Оповещений недоступен, дальнейшие попытки
будут предприниматься в соответствии с формулой: 1min
+
(1min
* <retryNumber/>
*
<retryNumber/>). Примеры первых нескольких попыток приведены в таблице ниже.
Максимальное количество попыток - 20, то есть последняя попытка будет сделана через 41:30
часов после первой. Если ваш URL недоступен в течение всего этого времени, отчеты о
доставке будут потеряны, и единственный способ получить их - через просмотр логов SMS.
Номер попытки
Интервал
Всего
0
01 min
00:01h
1
02 min
00:03h
53
2
05 min
00:08h
3
10 min
00:18h
4
17 min
00:35h
5
26 min
01:01h
6
37 min
01:38h
54
Промежуточные отчеты о доставке
До получения финального Отчета о доставке на ваш URL для Оповещений вы также можете
получать промежуточный отчет о доставке в реальном времени каждый раз, когда
случается непостоянная ошибка GSM.
Промежуточный отчет о доставке задается как один из параметров для отправки текстового
сообщения с дополнительными параметрами. Он отправляется на тот же URL для
Оповещений, что и Финальный отчет о доставке.
Как только платформа Infobip получает сообщение о какой-либо ошибке
(например, EC_ABSENT_SUBSCRIBER), она перенаправляет его на указанный URL для
Оповещений на вашем сервере. Помимо ошибок GSM, вы также получите информацию о
стоимости, статус сообщения, коды сети и страны в реальном времени.
Внимание: Для более подробной информации о кодах ошибок GSM и статусах сообщений
ознакомьтесь с разделом Ответы.
На примере, приведенном ниже, показано, как задавать intermediateReport для получения
моментальной информации по сообщению, а также notifyURL, notifyContentType для
отчетов и пользовательские callbackData.
JSON
POST /sms/1/text/advanced HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
{
"bulkId":"BULK-ID-123-xyz",
"messages":[
{
55
"from":"InfoSMS",
"destinations":[
{
"to":"41793026727",
"messageId":"MESSAGE-ID-123-xyz"
},
{
"to":"41793026731"
}
],
"text":"Мама всегда говорила, что жизнь - это коробка с шоколадками. Никогда не знаеш
ь, какую вытащишь.",
"intermediateReport":true,
"notifyContentType":"application/json",
"callbackData":" Нет ничего лучше родного дома."
}
]
}
Результат, который вы получите на ваш URL для Оповещений, будет иметь такую же структуру,
как и отчет о доставке.
JSON
{
"results": [
{
"bulkId": "BULK-ID-123-xyz",
"messageId": "c9823180-94d4-4ea0-9bf3-ec907e7534a6",
"to": "41793026731",
"sentAt": "2015-10-04T13:01:52.933+0000",
"doneAt": "2015-10-04T13:02:00.134+0000",
"smsCount": 1,
"price": {
"pricePerMessage": 0.0001000000,
"currency": "EUR"
},
"status": {
"groupId": 3,
"groupName": "PENDING",
"id": 1,
"name": "PENDING_WAITING_DELIVERY",
"description": "Message sent, waiting for delivery report"
},
"error": {
"groupId": 1,
"groupName": "HANDSET_ERRORS",
"id": 27,
"name": "EC_ABSENT_SUBSCRIBER",
"description": "Absent Subscriber",
"permanent": false
56
},
"callbackData":" Нет ничего лучше родного дома."
},
{
"bulkId": "BULK-ID-123-xyz",
"messageId": "MESSAGE-ID-123-xyz",
"to": "41793026727",
"sentAt": "2015-06-04T13:01:52.937+0000",
"doneAt": "2015-06-04T13:02:01.204+0000",
"smsCount": 1,
"price": {
"pricePerMessage": 0.0001000000,
"currency": "EUR"
},
"status": {
"groupId": 3,
"groupName": "PENDING",
"id": 1,
"name": "PENDING_WAITING_DELIVERY",
"description": "Message sent, waiting for delivery report"
},
"error": {
"groupId": 1,
"groupName": "HANDSET_ERRORS",
"id": 27,
"name": "EC_ABSENT_SUBSCRIBER",
"description": "Absent Subscriber",
"permanent": false
},
"callbackData":" Нет ничего лучше родного дома."
}
]
}
Flash SMS
Помимо стандартных SMS-сообщений, вы также можете отправлять flash-сообщения,
используя синтаксис и значение параметров, описанные в разделе текстовых сообщений с
дополнительными параметрами.
Flash SMS показываются на экране телефона пользователя сразу же при получении.
Сообщение может сохраняться на мобильном телефоне и имеет ID отправителя. Чтобы
отправить flash-сообщение, задайте параметр flash как true.
57
JSON
POST /sms/1/text/advanced HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
{
"messages":[
{
"from":"InfoSMS",
"destinations":[
{
"to":"41793026727"
}
],
"text":"Toto, I've got a feeling we're not in Kansas anymore.",
"flash":true
}
]
}
Сокращение URL и измерение конверсии
После разработки приложения вашим следующим шагом будет продвижение такого
приложения. Один из самых безопасных и надежных способов сделать это - через SMS, но как
поступить, если ваш URL - слишком длинный?
Решение для сокращения URL и измерения конверсии не только автоматически сократит
длину ваших ссылок, но также отследит коэффициент пользовательских переходов по кликам.
Вставьте оригинальный URL в тело сообщения, задайте параметр track, а все остальное
сделает платформа Infobip.
Эти опции (tracking) заданы в разделе отправки текстового сообщения с
дополнительными параметрами:
58
JSON·
POST /sms/1/text/advanced HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
{
"bulkId":"BULK-ID-123-xyz",
"messages":[
{
"from":"InfoSMS",
"destinations":[
{
"to":"41793026727",
"messageId":"MESSAGE-ID-123-xyz"
},
{
"to":"41793026731"
}
],
le.com/awesomeApp/someUserId"
}
],
"tracking":{
"track":"URL",
"type":"SOCIAL_INVITES"
}
}
Пользователь получит оригинальное SMS-сообщение с сокращенным URL:
Hey, take a look at this awesome app. Can you beat my score: http://eel.nu/NJxE/cJ9UH
Важно: Каждое отправленное сообщение получает уникальный короткий URL Infobip, и для
этого потребуется использовать 25 символов из вашего сообщения.
59
Как только пользователь перейдет по указанной в смс ссылке, мы сможем автоматически
идентифицировать его и отправить вам номер его мобильного телефона, чтобы вы
незамедлительно узнали о конверсии.
Также мы собираем CTR вместе с другой полезной информацией:
Номер мобильного телефона пользователя
Префикс сети
Префикс страны
Операционная система мобильного телефона
60
SMPP API
Short Message Peer-to-Peer (SMPP)
- это открытый стандартный протокол в
телекоммуникационной индустрии, используемый для обмена SMS-сообщениями. Протокол
является протоколом 7-го уровня TCP/IP, что позволяет осуществлять быструю доставку SMS-
сообщений.
Соединение между клиентом и сервером Infobip SMPP осуществляется через SMPP, версия
3.4 (версия 3.3 не поддерживается).
Параметры SMPP
Название
Описание
system_id
Требуется. Предоставляется для каждого клиента.
password
Требуется. Предоставляется для каждого клиента.
IP address
Требуется. Первичная точка соединения: smpp3.infobip.com
Вторичная точка соединения: smpp1.infobip.com
Точка соединения SSL: smpp2.infobip.com
port
Требуется. 8888 (первичное и вторичное) / 8887 (ssl)
timeout (keep alive or msg)
Требуется. 30 секунд
system_type
Опционально. <r:route_code>
61
Важно: Вы можете поддерживать сессию в режимах: transmitter, receiver или transceiver.
Для получения отчетов о доставке вы должны использовать transceiver или receiver.
Отчеты о доставке будут отправляться равномерно через все ваши текущие доступные сессии,
которые имеют возможность получать их (transceiver или receiver).
По умолчанию задаются 4 сессии связи.
Поддерживаемые PDUS:
bind_transmitter
bind_receiver
bind_transceiver
unbind
submit_sm
deliver_sm
enquire_link
ФОРМАТ ОТЧЕТА О ДОСТАВКЕ
ФОРМАТ
“id:<message_id> sub:<message_sub> dlvrd:<message_dlvrd>
submit date:<message_submit_date> done date:<message_done_date>
stat:<message_stat> err:<message_err>”
СТАТУСЫ ДОСТАВКИ (MESSAGE_STAT):
DELIVRD
EXPIRED
DELETED
UNDELIV
ACCEPTD
DELIVERY UNKNOWN
REJECTED
62
Кодировка
Если при отправке сообщений вы задаете DCS
0 или DCS
1, мы будем использовать
кодирование GSM7 по умолчанию (Алфавит по умолчанию - SMSC или IA5).
Для Latin1 (ISO-8859-1) используйте DCS 3 и DCS 8 для отправки сообщений в
Unicode (ISO/IEC-10646).
Command status & КОДЫ ОШИБОК GSM
Каждый запрос, отправленный в нашу систему, должен получить подтверждение в submit_sm
resp PDU и полностью соответствовать стандарту SMPP v 3.4. Несколько статусов ответа
платформы со специальными кодами ошибок доставки описаны в разделе SMPP command
status & Коды ошибок GSM.
Запланированная отправка
График доставки поддерживается протоколом SMPP с использованием формата
относительного времени.
ПРИМЕР
“070605040302100R” - это означает, что сообщение будет отправлено через 7 лет, 6 месяцев,
5 дней, 4 часа, 3 минуты, 2 секунды и одну десятую секунды, отсчитывая с настоящего момента.
63
ПРОВЕРКА НОМЕРА при подключении по SMPP
Используя аккаунт Infobip, вы можете запросить данные Проверки Номера (IMSI-check). Для
использования Проверки Номера вы можете использовать ваши system_id и password по
умолчанию, задав system_type = “HLR” (без кавычек) в Bind PDU.
SubmitSM PDU используется для выполнения запроса по Проверке номера, а
параметр destAddress задается для требуемого для проверки номера абонента. Все другие
параметры будут проигнорированы. (srcAddress, TON/NPI и т.д.).
Подсистема Infobip для Проверки Номера (Number Context) ответит с использованием
обычного SubmitSMResp, содержащего ссылку на message-id.
Как только запрос на Проверку номера полностью обработан и выполнен платформой Infobip,
вы получите DeliverSM PDU, в котором будет:
IMSI для требуемого destAddress или
error code в случае сбоя.
DeliverSM будет включать:
данные короткого сообщения с нашим обычным отчетом о доставке
IMSI часть (“IMSI:xxxxxxxxx”)
MSC
дополнительные опциональные поля информации, в зависимости от вашего пакета.
64
Опциональные поля для информации
Тип
Hex
Десятичный
Название начальной сети
TLVString
0x1412
5138
Префикс начальной сети
TLVString
0x140B
5131
Начальная страна
TLVString
0x1422
5154
Код начальной страны
TLVString
0x1423
5155
Префикс начальной страны
TLVString
0x1424
5156
Название перенесенной сети
TLVString
0x1413
5139
Префикс перенесенной страны
TLVString
0x1442
5186
Префикс перенесенной сети
TLVString
0x143e
5182
Название страны перенесенной сети
TLVString
0x143f
5183
Перенесен ли номер
TLVInt
0x1421
5153
Название сети роуминга
TLVString
0x1414
5140
Префикс сети роуминга
TLVString
0x1419
5145
Название страны роуминга
TLVString
0x1415
5141
Код страны роуминга
TLVString
0x1417
5143
Префикс страны роуминга
TLVString
0x1420
5152
MCCMNC
TLVString
0x1416
5142
65
Цена за сообщение
TLVInt
0x1418
5144
По причинам совместимости цена за сообщение
умножается на 100
Служебный HLR
TLVString
0x1409
5129
Корректен ли номер
TLVInt
0x1425
5157
Информация: по мимо DeliverSM.shortMessage, мы также включили IMSI как дополнительный
опциональный параметр:
SMPP_VENDOR_SPECIFIC_IMSI = 0x1403
Пример:
В случае, если запрос Проверки номера был успешным, DeliverSM будет следующим (IMSI
21910110053751):
66
Groovy
addr: 0 0 38591xxxxxxx
addr: 0 0 0000000000
msg: id:40072910491427628 sub:001 dlvrd:001 submit date:1007291049 done date:1007291049 stat:D
ELIVRD err:000
IMSI:219101100935850 MSC:38591016 HLR:38591xxxxxxx ORN:VipNet PON:VipNet RON:VipNet ROC:HR MCC
MNC:21910
opt: (oct: (tlv: 1059) 030000) (byte: (tlv: 1063) 2) (str: (tlv: 30) 40072910491427628) (str:
(tlv: 5129)38591xxxxxxx) (str: (tlv: 5138) VipNet) (str: (tlv: 5139) VipNet) (str: (tlv: 5140)
VipNet) (str: (tlv:5141) Croatia ) (str: (tlv: 5143) HR) (str: (tlv: 5142) 21910) (int: (tlv:
5144) 1) (str: (tlv: 5145) 91) (str: (tlv: 5152) 385) (int: (tlv: 5153) 1) (str: (tlv: 5154) C
roatia ) (str: (tlv: 5155) HR) (str: (tlv: 5156) 385) (int: (tlv: 5157) 1) ) (extraopt: (oct:
(tlv: 5123) 323139313031313030393335383530) (oct: (tlv: 5126) 3338353931303136) )
В случае ошибки DeliverSM будет следующим:
Groovy
addr: 0 0 385915369423
addr: 0 0 0000000000
msg: id:40072910491419819 sub:001 dlvrd:001 submit date:1007291049 done date:1007291049 stat:U
NDELIV err:001
IMSI: MSC: ORN:VipNet MCCMNC:
opt: (oct: (tlv: 1059) 030001) (byte: (tlv: 1063) 5) (str: (tlv: 30) 40072910491419819) (str:
(tlv: 5138) VipNet) (str: (tlv: 5142) ) (int: (tlv: 5144) 1) (int: (tlv: 5153) 0) (str: (tlv:
5154) Croatia ) (str: (tlv: 5155) HR) (str: (tlv: 5156) 385) (int: (tlv: 5157) 1) )
67
FLASH-уведомления через SMPP
Вы можете использовать аккаунт Infobip для отправки Flash-уведомлений по SMPP. Такие
уведомления немедленно показываются на экране мобильного телефона при получении и не
сохраняются в памяти устройства.
Чтобы применять Flash-уведомления, вы можете использовать ваши system_id и password по
умолчанию, задав system_type = “NSMS” (без кавычек) в Bind PDU.
Процедура представления Flash-уведомлений такая же, как и для обычных SMS, с
использованием SubmitSM PDU. Платформа Infobip автоматически конвертирует ваше
сообщение в Flash-уведомление с использованием представленных параметров сообщения.
Вам будут отправлены отчеты о доставке с использованием DeliverSM PDU.
Внимание: Опции длинных SMS не поддерживаются для Flash-уведомлений.
68
SMPP COMMAND STATUS & КОДЫ ОШИБОК GSM
SMPP COMMAND STATUS
Поле command_status в ответе SMPP указывает успех или неудачу запроса.
Статус возвращается как ответ для Submit_SM в случае особых событий, приведенных в
таблице ниже.
Значение (HEX/DEC)
Описание
0x00000022 / 34
Сеть не включена в покрытие
0x000000FF / 255
На аккаунте недостаточный баланс
0x0000000a
Недействительный адрес источника
0x0000000c
Дубликат ID сообщения
0x000004a1
Системная ошибка или повреждение канала
69
Коды ошибок GSM
Коды ошибок SMPP GSM, которые могут быть представлены Infobip.
Id
Краткое описание
Значение
0
NO_ERROR
NULL
1
EC_UNKNOWN_SUBSCRIBER
1
5
EC_UNIDENTIFIED_SUBSCRIBER
0
6
EC_ABSENT_SUBSCRIBER_SM
0
9
EC_ILLEGAL_SUBSCRIBER
1
10
EC_BEARER_SERVICE_NOT_PROVISIONED
0
11
EC_TELESERVICE_NOT_PROVISIONED
1
12
EC_ILLEGAL_EQUIPMENT
1
13
EC_CALL_BARRED
0
20
EC_SS_INCOMPATIBILITY
0
21
EC_FACILITY_NOT_SUPPORTED
0
27
EC_ABSENT_SUBSCRIBER
0
31
EC_SUBSCRIBER_BUSY_FOR_MT_SMS
0
32
EC_SM_DELIVERY_FAILURE
0
33
EC_MESSAGE_WAITING_LIST_FULL
0
70
Id
Краткое описание
Значение
34
EC_SYSTEM_FAILURE
0
35
EC_DATA_MISSING
1
36
EC_UNEXPECTED_DATA_VALUE
1
51
EC_RESOURCE_LIMITATION
0
71
EC_UNKNOWN_ALPHABET
1
72
EC_USSD_BUSY
1
255
EC_UNKNOWN_ERROR
1
256
EC_SM_DF_memoryCapacityExceeded
0
257
EC_SM_DF_equipmentProtocolError
0
258
EC_SM_DF_equipmentNotSM_Equipped
0
259
EC_SM_DF_unknownServiceCentre
0
260
EC_SM_DF_sc_Congestion
0
261
EC_SM_DF_invalidSME_Address
0
262
EC_SM_DF_subscriberNotSC_Subscriber
0
500
EC_PROVIDER_GENERAL_ERROR
0
502
EC_NO_RESPONSE
0
71
Id
Краткое описание
Значение
503
EC_SERVICE_COMPLETION_FAILURE
0
504
EC_UNEXPECTED_RESPONSE_FROM_PEER
0
507
EC_MISTYPED_PARAMETER
0
508
EC_NOT_SUPPORTED_SERVICE
0
509
EC_DUPLICATED_INVOKE_ID
0
511
EC_INITIATING_RELEASE
0
1024
EC_OR_appContextNotSupported
0
1025
EC_OR_invalidDestinationReference
0
1026
EC_OR_invalidOriginatingReference
0
1027
EC_OR_encapsulatedAC_NotSupported
0
1028
EC_OR_transportProtectionNotAdequate
0
1029
EC_OR_noReasonGiven
0
1030
EC_OR_potentialVersionIncompatibility
0
1031
EC_OR_remoteNodeNotReachable
0
1152
EC_NNR_noTranslationForAnAddressOfSuchNature
0
1153
EC_NNR_noTranslationForThisSpecificAddress
0
72
Id
Краткое описание
Значение
1154
EC_NNR_subsystemCongestion
0
1155
EC_NNR_subsystemFailure
0
1156
EC_NNR_unequippedUser
0
1157
EC_NNR_MTPfailure
0
1158
EC_NNR_networkCongestion
0
1159
EC_NNR_unqualified
0
1160
EC_NNR_errorInMessageTransportXUDT
0
1161
EC_NNR_errorInLocalProcessingXUDT
0
1162
EC_NNR_destinationCannotPerformReassemblyXUDT
0
1163
EC_NNR_SCCPfailure
0
1164
EC_NNR_hopCounterViolation
0
1165
EC_NNR_segmentationNotSupported
0
1166
EC_NNR_segmentationFailure
0
1281
EC_UA_userSpecificReason
0
1282
EC_UA_userResourceLimitation
0
1283
EC_UA_resourceUnavailable
0
73
Id
Краткое описание
Значение
1284
EC_UA_applicationProcedureCancellation
0
1536
EC_PA_providerMalfunction
0
1537
EC_PA_supportingDialogOrTransactionRealeased
0
1538
EC_PA_ressourceLimitation
0
1539
EC_PA_maintenanceActivity
0
1540
EC_PA_versionIncompatibility
0
1541
EC_PA_abnormalMapDialog
0
1792
EC_NC_abnormalEventDetectedByPeer
0
1793
EC_NC_responseRejectedByPeer
0
1794
EC_NC_abnormalEventReceivedFromPeer
0
1795
EC_NC_messageCannotBeDeliveredToPeer
0
1796
EC_NC_providerOutOfInvoke
0
2048
EC_TIME_OUT
0
2049
EC_IMSI_BLACKLISTED
1
2050
EC_DEST_ADDRESS_BLACKLISTED
1
2051
EC_InvalidMscAddress
0
74
Id
Краткое описание
Значение
4096
EC_invalidPduFurmat
1
4097
EC_NotSubmittedToGMSC
1
4100
EC_Cancelled
1
4101
EC_ValidityExpired
1
4102
EC_NotSubmittedToSmppChannel
0
75
Infobip
76
|