====== Краткое пошаговое руководство по работе с сервисом зачитывания текстовых сообщений ====== В качестве клиента используем бесплатную программу [[https://www.soapui.org|SOAP UI]], но принцип работы сохраняется и при использовании других продуктов. В том числе и при разработке ПО на .NET ([[https://en.wikipedia.org/wiki/SOAP#History|Microsoft придумала стандарт SOAP]] и их средства как никакие другие подходят для этого). Программа существует под все популярные платформы и не имеет ограничений использования.\\ \\ Руководство по программе можно найти [[https://www.soapui.org/soap-and-wsdl/getting-started.html|на официальном сайте]]\\ \\ В SOAP UI создаём новый проект и в качестве Initial WSDL используем ссылку из [[products:kmis:project_documentation:server|документации]]: [[http://kmis.callbox.biz/?wsdl]]\\ \\ В этот момент SOAP UI (как и библиотека .NET) выгрузит из WSDL все приложения. Их три: - //get_report// - получение статистики - //notification// - оповещение абонента - //upload_audio// - загрузка файла на сервис Также программа выгрузит все методы для всех приложений. На текущий момент в каждом приложении 1 метод.\\ \\ При переходе к редактированию метода //Request// приложения //notification// откроется полный текст запроса с комментариями к нему: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Вопросительные знаки требуют ввода данных.\\ \\ Метод описывает сразу три возможных оповещения: посылка СМС (раздел sms_notifications), звонок абоненту с зачитыванием текста (ts_notifications) и звонок абоненту с проигрыванием файла (audio_notifications). В запросе должен быть использовано хотя бы одно оповещение. При этом, можно в одном запросе рассылать оповещения всех типов разным абонентам.\\ \\ Нас интересует зачитывание текста абонента. Для его создания удаляем из запроса секции sms_notifications и audio_notification и приводим запрос к виду: ? ? ? ? ? ? ? ? ? ? ? ? Далее необходимо построчно заполнить данный запрос.\\ Первая строка с вопросительным знаком идентифицирует пользователя системы: ? Вместо вопросительного знака необходимо в данную строку подставить UUID, выданный администратором системы. Пример корректного заполнения: 394ffb3b-20f5-4046-b6b2-758103698fe7 Вторая строка с вопросительным знаком идентифицирует запрос. ? В данную строку необходимо сгенерить и подставить UUID. В случае дублирование UUID (некорректная генерация) сервер выдаст сообщение об ошибке. Пример корректного заполнения: edeb4385-a7c5-4b1e-862c-bbf4b8b73abe Следующая строка с вопросительным знаком, требующая заполнения определяет номер телефона пользователя, на который будет совершён звонок и будет зачитано сообщение. Номер принимается в формате Е164. В качестве исключения код страны +7 может быть заменён на 8. При этом в данном случае в системе номер будет преобразован в формат Е164 и отчётная информация будет выводится именно по такому номеру. ? Пример корректного заполнения: +77778897158 Следующая строка, требующая заполнения определяет является ли рассылка персонализированной или нет. ? Данное поле обязательно для заполнения (комментарий Optional перед ним в WSDL введён на момент отладки системы). В случае, если флаг установлен в False сообщение отсылается в том виде, в каком оно передано в запросе. В случае, если флаг установлен в True система воспринимает передаваемый текст как шаблон и ищет в запросе поля для его заполнения. Корректно заполнение поля для зачитывания не адресного сообщения: false Следующий блок используется для создания шаблонных сообщений и в данном примере не используется. Более подробно этот блок описан в [[servers:kmis:server|документации к системе]] ? ? В нашем примере он должен быть удалён.\\ Следующая строка, требующая заполнения определяет дату начала начала обзвона абонента. ? Дата указывается в формате YYYY-MM-DD и может быть произвольной. При этом хотя бы один день из диапазона дат должен быть в будущем. Пример корректного заполнения (показана дата в прошлом на момент написания статьи): 2017-08-01 Следующая строка, требующая заполнения определяет дату окончания обзвона абонента. ? Дата указывается в формате YYYY-MM-DD и может быть произвольной. При этом хотя бы один день из диапазона дат должен быть в будущем. Пример корректного заполнения: 2017-08-03 Следующие две строки, требующие заполнения определяют время начала и время окончания обзвона абонента. Временной интервал применяется к одним суткам. То есть, например, если нам необходимо пытаться дозвониться до абонента каждый день только с полудня и до конца рабочего дня то в данных полях можно указать 12:00:00 и 17:00:00 и во вне этого интервала система не будет звонить абонентам из данного запроса. ? ? При этом если время начала больше чем время окончания (например, с 18:00:00 до 09:00:00) то система проверяет что диапазон дат содержит несколько дней и будет пытаться дозвониться до абонента в ночное время.\\ Указание временного диапазона необязательно. В случае, если временной диапазон не указан, то система будет пытаться дозвониться до абонента с 9:00:00 до 17:00:00. Пример корректного заполнения: 00:00:00 23:59:59 Следующая строка содержит текст непосредственно зачитываемого сообщения ? В случае, если указан флаг персональных сообщений данная строка воспринимается как шаблон. Описание шаблона смотрите в полной документации к работе сервера. Пример корректного заполнения: Здравствуйте, Вам звонят из городской поликлиники города Караганда по вопросу прохождения обследования Система поддерживает зачитывание сообщений только на русском языке! Следующая строка определяет количество попыток дозвона до абонента. Система считает что попытка дозвона до абонента была неудачной если абонент не поднял трубку либо если продолжительность зачитывания сообщения была меньше 5 секунд (то есть абонент не дослушал наше сообщение до конца и бросил трубку). В таком случае через 30 минут система предпримет следующую попытку дозвона до абонента. Временной интервал второй (и последующих) попытки может больше если в момент наступления времени повтора все доступные телефонные каналы для данного клиента заняты. ? Параметр может принимать любое целочисленное значение от 1 до 65535. Указание параметра не обязательно. В случае, если параметр не указан система предпримет одну попытку доставки сообщения. Пример корректного заполнения: 3 Итого, с учётом всех необязательных полей простейшей запрос для звонка абоненту с зачитыванием текста будет иметь следующий вид: 00c0bfb0-09b5-4bcc-a5da-abc5c7737f35 8e10b8d5-0f5c-4850-ad8e-7d21f1ea7ed8 +77212921006 false 2017-08-01 2017-08-31 Здравствуйте, Вам звонят из городской поликлиники города Караганда по вопросу прохождения обследования 3