Оглавление

Подключение своего провайдера телефонии

Телефония стала незаменимым инструментом в обеспечении эффективной коммуникации между персоналом клиники, а также с пациентами и сторонними учреждениями. В случае если клиника использует сервис телефонии, с которым нет разработанной интеграции - его можно подключить самостоятельно с помощью открытых методов 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

Когда в телефонии появляется звонок, МИС необходимо в любом случае (исходящий или входящий) получить событие 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 произошло - могут быть две ситуации:

  1. Не взял трубку либо абонент, либо добавочный:  
    В этом случае передается событие HANGUP без события UP.
  2. Трубку взяли, начался разговор:
    Тогда передается событие UP, а по завершению разговора - событие HANGUP. 

❗Обращаем внимание, что если у вас в рамках диалплана звонок идет сразу на несколько добавочных номеров (сценарий входящего звонка), то необходимо будет отправить в МИС нескольких событий WAITING, далее, если один из добавочных начал разговор, то по нему событие UP, по остальным - событие HANGUP.