Телефония стала незаменимым инструментом в обеспечении эффективной коммуникации между персоналом клиники, а также с пациентами и сторонними учреждениями. В случае если клиника использует сервис телефонии, с которым нет разработанной интеграции - его можно подключить самостоятельно с помощью открытых методов API.
В данной статье рассмотрим методы и сценарии отправки запросов, которые позволят быстрее интегрировать своего провайдера телефонии.
Подключение
Для того чтобы подключить свою телефонию необходимо перейти в раздел Интеграции/Телефония и выбрать пункт "Свой провайдер"
После этого появятся инструкции к методам для входящих обращений в МИС и возможность указать Адрес обращения для исходящих запросов - это необходимо для того чтобы осуществлять исходящие звонки и прослушивать записи разговоров прямо из МИС.
Далее необходимо нажать кнопку Сохранить.
Для того чтобы работа интеграции происходила корректно, в разделе Звонки/Номера необходимо заполнить информацию:
- Добавочные номера - внутренние SIP номера сотрудников клиники, под которыми они принимают звонки (необходимо указывать все номера, которые могут принять звонок).
- Виртуальные номера - внешние номера клиники, по которым может дозвониться пациент. Таких номеров может быть несколько, в случае если клиника приобретает разные номера под разные рекламные каналы (необходимо указывать все номера, на которые может прийти звонок)
Входящие звонки в МИС
Для создания звонков в МИС используются следующие методы:
1. CALL
Поступление нового звонка на телефонию
На данном этапе звонок фиксируется в базе данных МИС и уже может отображаться в детализации, но еще не поступил на добавочный номер сотрудника, поэтому карточка звонка не появляется.
Параметры | Пример запроса |
event - Название события (call) id - Идентификатор звонка Может быть как буквенным, так и численным значением type - Направление звонка - in - входящие - out - исходящие contact_phone_number - Номер абонента clinic_phone_number - Номер телефона клиники Это виртуальный номер клиники, по которому звонит абонент |
POST https://app.rnova.org/api/ calls?api_key={API ключ клиники} Content-Type: application/json { "event": "call", "id": "1", "type": "in", "contact_phone_number": "79211234567", "clinic_phone_number": "78001002030" } |
2. WAITING
Звонок на добавочный номер сотрудника
На данном этапе происходит звонок на трубку конкретного сотрудника и в МИС появляется карточка звонка.
Параметры | Пример запроса |
event - Название события (waiting) id - Идентификатор звонка Это идентификатор именно этого звонка на добавочный, он не может совпадать с ID из события CALL Если звонок идет сразу на несколько добавочных - необходимо отправлять несколько событий waiting с разными id. parent_id Идентификатор родительского звонка Идентификатор звонка из события CALL type Направление звонка - in - входящие - out - исходящие contact_phone_number Номер абонента clinic_phone_number Номер телефона клиники Это виртуальный номер клиники, по которому звонит абонент employee_phone_number Добавочный сотрудника Это внутренний номер телефона сотрудника, которому приходит звонок |
POST https://app.rnova.org/api/ calls?api_key={API ключ клиники} Content-Type: application/json { "event": "waiting", "id": "2", "parent_id": "1", "type": "in", "contact_phone_number": "79211234567", "clinic_phone_number": "78001002030", "employee_phone_number": "1" } |
3. UP
Начало разговора
Означает что сотрудник клиники или абонент подняли трубку и началось общение.
Параметры | Пример запроса |
event - Название события (up) id - Идентификатор звонка Используется id звонка из события WAITING employee_phone_number - Добавочный сотрудника Это внутренний номер сотрудника, по которому происходит разговор Используется из события WAITING |
POST https://app.rnova.org/api/ calls?api_key={API ключ клиники} Content-Type: application/json { "event": "up", "id": "2", "employee_phone_number": "1" } |
4. HANGUP
Завершение разговора
На данном этапе сотрудник клиники или абонент кладет трубку и фиксируется завершение разговора.
Параметры | Пример запроса |
event Название события (hangup) id Идентификатор звонка Используется id звонка из события WAITING employee_phone_number - Добавочный сотрудника Это внутренний номер сотрудника, по которому происходит разговор Используется из события WAITING |
POST https://app.rnova.org/api/ calls?api_key={API ключ клиники} Content-Type: application/json { "event": "hangup", "id": "2", "employee_phone_number": "1" } |
5. HOLD
Удержание вызова
Необходим в случае если сотрудник клиники ставит разговор на удержание.
Параметры | Пример запроса |
event Название события (hold) id Идентификатор звонка Используется id звонка из события WAITING status Статус on - включение удержания off - отключение удержания При включении удержания необходимо также повторно передавать запрос на отключение |
POST https://app.rnova.org/api/ calls?api_key={API ключ клиники} Content-Type: application/json { "event": "hold", "id": "2", "status": "on" } |
💡 Для отправки запросов используется адрес обращения к системе
- для SAAS/On-Cloud версии адрес - https://app.rnova.org/
- для OnPremise/Local версии берется адрес сервера клиники
💡 В качестве ответа МИС может вернуть:
Успешный ответ | Ответ с ошибкой |
{ "error": 0, "data": null } |
{ "error": 1, "data": { "code": "404", "desc": "Event not found" } } |
Порядок обращения к методам
Для фиксации звонка в МИС необходимо использовать методы в следующем порядке:
Когда в телефонии появляется звонок, МИС необходимо в любом случае (исходящий или входящий) получить событие call: фактически идет запись информации о звонке в базу данных МИС.
— WAITING
Когда идет дозвон между добавочным и абонентом, нам нужны события waiting - по ним в МИС у сотрудников появляются карточки звонка.
— Если дозвона до добавочных номеров нет (например, если абонента по правилам времени не пускают в очередь) - события waiting может и не произойти. В этом случае необходимо сразу направлять событие HANGUP - в качестве ID использовать идентификатор звонка из метода CALL, а в параметре employee_phone_number оставлять пустое значение.
Пример:
CALL | HANGUP |
POST https://app.rnova.org/api/ calls?api_key={API ключ клиники} Content-Type: application/json { "event": "call", "id": "1", "type": "in", "contact_phone_number": "79211234567", "clinic_phone_number": "78001002030" } |
POST https://app.rnova.org/api/ calls?api_key={API ключ клиники} Content-Type: application/json { "event": "hangup", "id": "1", "employee_phone_number": } |
— Если событие WAITING произошло - могут быть две ситуации:
- Не взял трубку либо абонент, либо добавочный:
В этом случае передается событие HANGUP без события UP. - Трубку взяли, начался разговор:
Тогда передается событие UP, а по завершению разговора - событие HANGUP.
❗Обращаем внимание, что если у вас в рамках диалплана звонок идет сразу на несколько добавочных номеров (сценарий входящего звонка), то необходимо будет отправить в МИС нескольких событий WAITING, далее, если один из добавочных начал разговор, то по нему событие UP, по остальным - событие HANGUP.