3. Примеры


3.1. Отправка единичного сообщения без шаблона по каналам
Push -> Viber -> SMS


  • В данном примере демонстрируется использование протокола для отправки сообщения по каналу Push с альтернативными каналами Viber и SMS без использования шаблонов.
  • Если Push сообщение в течение 60 секунд (значение параметра ttl) не доставится по каналу Push (система не получит статус Delivered или получит ошибочный статус), система отправит сообщения по каналу Viber.
  • Если Viber сообщение в течение 120 секунд (значение параметра ttl) не доставится по каналу Viber (система не получит статус Delivered или получит ошибочный статус), система отправит сообщения по каналу SMS.
  • Если сообщение в течение 300 секунд (значение параметра ttl) не доставится по каналу SMS (система не получит статус Delivered для данного сообщения), данному сообщению присваивается статус Expired.
{
   	 "messages":
   		 [
   		 {
   		 "recipient": "79990009900",
   		 "message-id": "2016-11-07-18-29-31",
 "push": {
   			 "application": "pushApp",
   			 "ttl": "60",
   			 "content": {
   				"title": "Test message",
   				"text": "This is test message"
   				}
   			},
   		 "viber": {
   			 "originator": "viberSender",
 "ttl": "120",
   			 "content": {
   				 "text" : "This is test message",
   				 "image-url": "test.domain/picture.jpg",
   				 "button-name": "button",
   				 "button-url": "test.domain"
   				 }
   			 },
   		 "sms": {
   			 "originator": "smsSender",
 "ttl": "300",
   			 "content": {
   				 "text": "This is test message"
   				 }
   			 }
   		 }
   		 ]
}
JSON

3.2. Отправка единичного сообщения без шаблона по каналам
Viber -> SMS


{
   	 "messages":
   		 [
   		 {
   		 "recipient": "79990009900",
   		 "message-id": "2016-11-07-18-29-31",
   		 "viber": {
   			 "originator": "viberSender",
 "ttl": "300",
   			 "content": {
   				 "text" : "Test text",
   				 "image-url": "test.domain/picture.jpg",
   				 "button-name": "button",
   				 "button-url": "test.domain"
   				 }
   			 },
   		 "sms": {
   			 "originator": "smsSender",
 "ttl": "300",
   			 "content": {
   				 "text": "Test text"
   				 }
   			 }
   		 }
   		 ]
}
JSON

3.3. Отправка единичного сообщения без шаблона по каналу Email


{
	 "messages":
   		 [
   		 {
   		 "email-address": "test@example.com",
   		 "message-id": "2016-11-07-18-29-30",
   		 "email": {
   			"originator": "<Sender Name>emailSender@example.com",
   			"content": {
   				"subject": "Hello, world",
   				"text": "HTML-body",
   	"attached-files": [{"file.pdf": "YxuJsafH"}, {"file.pdf": "http://domain.com/file.pfd"}]
   					 }
   		}
   		 ]
}
JSON

3.4. Отправка единичного сообщения по шаблону


{
   	 "messages":
   		 [
   		 {
   		 "template-id": "111",
 "recipient": "79990009900",
   		 "message-id": "2016-11-07-18-29-32",
 "variables": {"NAME":"IVAN", "SURNAME":"IVANOV"}
   		 }
   		 ]
}
JSON

3.5. Отправка массовой рассылки без шаблона


{
   	 "priority": "4",
   	 "timing": {
   	 	"start-datetime": "2016-11-05 10:00",
   	 	"end-datetime": "2016-11-25 19:00",
   		"allowed-starttime": "10:00",
   		"allowed-endtime": "19:00"
},
"viber": {
"originator": "viberSender",
"ttl": "300",
   		"content": {
   			 "text" : "Test text",
   			 "image-url": "test.domain/picture.jpg",
   			 "button-name": "button",
   			 "button-url": "test.domain"
   			 }
   		 },
   	 "sms": {
   		"originator": "smsSender",
"ttl": "300",
   		"content": {
   			"text": "Test text"
   			}
   		},
   	 "messages":
   		 [
   		 {
   		 "recipient": "79990009900",
   		 "message-id": "2016-11-07-18-29-34"
   		 }
		 {
   		 "recipient": "79990009901",
   		 "message-id": "2016-11-07-18-29-35"
   		 }
   		 ]
}
JSON

3.6. Отправка массовой рассылки по шаблону


{
   	 “template-id": "112",
   	 "messages":
   		 [
   		 {
   		 "recipient": "79990009900",
   		 "message-id": "2016-11-07-18-29-33",
		 "variables": {"NAME":"PETR", "SURNAME":"KUZIN"}
   		 },
		 {
   		 "recipient": "79990009901",
   		 "message-id": "2016-11-07-18-29-34",
		 "variables": {"NAME":"VLADIMIR", "SURNAME":"NESTEROV"}
   		 }
   		 ]
}
JSON

3.7. Запрос статуса сообщения


Запрос:

{
	"message-id": [2016-11-07-18-29-33]
}

Ответ содержит информацию по сообщению для канала, по которому был получен финальный статус:
{
"messages":
[
{
	"message-id": "2016-11-07-18-29-33",
	"status": "Delivered",
"status-date": "2016-11-07 18:42:02",
	"description": "",
	"channel": "SMS"
	}
]
}
CODE

3.8. Запрос статуса нескольких сообщений


Запрос:

{
	"message-id": [12314, 42325]
}
JSON

Ответ содержит информацию по сообщению для канала, по которому был получен финальный статус:

{
"messages":
[
{
	"message-id": "12314",
	"status": "Delivered",
"status-date": "2016-11-07 18:42:02",
	"description": "",
	"channel": "SMS"
	},
{
	"message-id": "42325",
	"status": "Finished",
"status-date": "2016-11-07 19:22:02",
	"description": "",
	"channel": "Call"
	}
]
}
JSON

4. Входящие сообщения


4.1 Отправить информацию о входящем SMS-сообщении


URL: http://stream.ibatelecom.ru:8083/broker-api/sendSmsInfo

При получении входящего SMS сообщения от абонента, Система выполняется данный запрос на URL внешней системы.

4.1.1 Пример запроса JSON


{
	"message-id": "",
"date": "2018-05-13 13:30",
"msisdn": "79991234567",
"service-number": "1234",
"message": "This is message"
}
JSON

4.1.2 Параметры запроса


Название

Тип

Обязательность

Описание

1

message-id

string

Да

Идентификатор сообщения

2

date

string

Да

Дата получения сообщения в формате: 2018-05-13 13:30

3

msisdn

string

Да

Номер абонента, приславшего сообщение

4

service-number

string

Да

Номер, на который получено сообщение

5

message

string

Да

Текст сообщения