api.cti Интеграция с IP-телефонией
Общие методы для интеграции с IP-телефонией
Методы api.cti работают при подключенном модуле CTI.
-
api.cti.isListenMessages(login)
Проверяет, что сотрудник находится в командах, ответственных за телефонию, авторизован в системе и находится в интерфейсе оператора.
Параметр метода:
- login — логин оператора телефонии (сотрудника).
-
api.cti.open(login, url, mode)
Открытие URL в браузере оператора телефонии.
Параметры метода:
- login — логин оператора телефонии (сотрудника), в браузере которого будет открыта ссылка;
-
url — URL карточки контрагента, формируется через api.web
def url = api.web.getBaseUrl() + "#search:101";
- mode — режим открытия карточки контрагента: в текущем окне (вкладке) — "current", в новом — "new". Место, где открывается карточка: вкладка или окно, зависит от настройки браузера
Пример 1. Открытие карточки контрагента в новом окне (вкладке):
api.cti.open('user101', api.web.open('ou$1601'), 'new')
Пример 2. Открытие карточки контрагента на текущей вкладке (окне):
api.cti.open('user205', api.web.open('ou$401'), 'current')
Методы для интеграции с Asterisk
Методы api.cti работают при подключенном модуле CTI.
-
api.cti.makeCall(src, dst)
api.cti.makeCall(src, dst, 'context':'ext-group')
Обращается к серверу IP-телефонии и организует звонок от src к dst на сервере телефонии, добавляя звонок в очередь вызовов.
Параметры метода:
- src — номер звонящего абонента;
- dst — номер телефона, на который совершается вызов;
- 'context':'ext-group' — групповой номер телефона в контексте ext-group, на который совершается вызов.
Результат выполнения:
- Если звонок добавлен в очередь вызовов успешно, то метод ничего не возвращает и инициирует вызов. На сервер IP-телефонии передается номер телефона, в котором удалены все пробелы, дефисы и/или тире, открывающие и закрывающие скобки, все знаки + (кроме первого в номере). На сервере IP-телефонии инициируется звонок.
- Если сработал таймаут обращения к серверу или сервер ответил ошибкой IOException, IllegalArgumentException или IllegalStateException, то метод возвращает эту ошибку.
- Если сервер ответит какой-то другой ошибкой (например, если нет очереди, либо номер не числится в качестве абонента), то метод ничего не возвращает.
-
api.cti.reconnect()
Переподключение к серверу телефонии, например, для перезагрузки интеграции.
-
api.cdr.search(filter)
Получение информации о звонке с сервера IP-телефонии. Запись разговора хранится на сервере. Сервер телефонии предоставляет возможность получить доступ к файлу по ссылке.
Метод возвращает с сервера IP-телефонии информацию о звонках, которые удовлетворяют заданным критериям.
Для каждого звонка возвращается следующая информация — идентификатор звонка, время начала разговора (время поднятие трубки), продолжительность разговора в секундах, номер абонента, с которым звонящий вел разговор, номер телефона, на который звонящий совершал вызов, номер звонящего абонента и ссылка на запись разговора.
Параметры метода:
-
filter — ассоциативный список критериев для поиска звонков.
Доступные ключи:
- id — идентификатор звонка на сервере телефонии;
- src — номер звонящего абонента;
- dst — номер телефона, на который звонящий совершал вызов;
- connected — номер абонента, с которым звонящий вел разговор;
- dateFrom — дата совершения звонка "C";
- dateTo — дата совершения звонка "По"
Форматы дат: yyyy.MM.dd HH:mm:ss, yyyy.MM.dd HH:mm, yyyy.MM.dd.
Пример.
api.cdr.search([dateFrom": "2014.01.29 06:00:00", "dateTo": "2014.01.30 06:00:00"])
-