3CX API

REST API для 3CX

Наша компания предлагает REST API для 3CX собственной разработки (за ценами обращайтесь по телефону или e-mail). Особенность нашего предложения в том, что набор http-запросов, логика, а также формат ответов могут составляться индивидуально под задачу клиента.

Непосредственно сама компания 3СХ предоставляет программное API, которое работает только на сервере, на котором установлена АТС 3CX. Программное API от 3CX достаточно обширное, и с его помощью можно решать очень широкий круг задач. Наша компания разработала веб-службу, которая запускается на сервере, где установлена 3CX. Эта служба получает http-запросы, отрабатывает их с использованием программного API 3СХ и в формате json предоставляет ответы на полученные http-запросы.

Мы включили в базовую версию нашего REST API наиболее востребованные запросы к 3CX. Но конкретные задачи клиентов могут требовать реализации более специфичных запросов к 3CX. Мы готовы по заявке клиента разработать и внедрить REST API, решающее индивидуальные задачи компании, использующей 3CX.

Вы можете прямо сейчас протестировать базовую версию предлагаемого REST API. Для этого воспользуйтесь демо-ключом qRQi5xQj8SvI и описанием запросов, приведенным ниже. URL запроса: https://demo-pbx.3cx.ru/webapi/qRQi5xQj8SvI/

 

Список GET-запросов базовой версии REST API 3CX

Получить текущее количество вызовов, проходящих через АТС
pbx.calls.get

 

Получить подробную информацию обо всех текущих активных соединениях
pbx.ac.get

ответ:
count – суммарное количество активных соединений (вызовов, проходящих через АТС)
AConnByCallID – список активных соединений:

callID – ID звонка
direction – направление вызова. Возможные значения:

    • FromExternal – звонок пришел с внешней линии, но пока еще никуда не распределен
    • FromInternal – звонок пришел c внутреннего номера, но пока еще никуда не распределен
    • Inbound – звонок с внешней линии на внутренний номер
    • Outbound – звонок с внутреннего номера на внешнюю линию
    • External – звонок с внешней линии на внешнюю линию
    • Internal - звонок с внутреннего номера на внутренний

did – для звонка с внешней линии название DID-правила, если таковое есть
AConnList – список составляющих звеньев звонка (см. описание программного API 3CX, ActiveConnection Interface)

 

Получить подробную информацию обо всех текущих звонках. Информация, по сути, близка той, которую предоставляет предыдущая команда pbx.calls.get?key={секретный ключ}, только информация предоставляется несколько в ином срезе и логике.
pbx.callsinfo.get

ответ:
count – суммарное количество звонков
callsInfo – список звонков, проходящих через АТС в данный момент

callID – ID звонка
state – состояние звонка: Unknown, Initiating, Routing, Talking, Transferring, Rerouting
startedAt
– время начала звонка
answeredAt
– время начала разговора (может быть равно null)
owner – информация о владельце звонка. Соответствует данным из класса OMCallCollector.ActiveConnectionFields
talkTo – информация с кем разговаривает владелец звонка (если разговаривает), список. Соответствует данным из класса OMCallCollector.ActiveConnectionFields
routingTo – информация на кого направляется вызов (если направляется), список. Соответствует данным из класса OMCallCollector.ActiveConnectionFields

Описание класса OMCallCollector.ActiveConnectionFields смотрите в документации по API 3CX. Также там смотрите описание свойства PhoneSystem.CallStorage, которое является первичным источником всей информации, предоставляемой для реализации данной команды. В архиве с документацией вы найдете примеры на C#, использующие данные сущности.

 

Получить список всех добавочных номеров пользователей
all.ext.get

 

Получить список всех зарегистрированных добавочных номеров пользователей
all.registered.get

 

Получить список всех групп вызова
all.group.get

 

Получить список всех очередей вызова
all.queue.get

 

Получить список всех IVR
all.ivr.get

 

Получить список всех внешних линий (тракнов)
all.line.get

 

Получить информационные поля добавочного номера пользователя
ext.info.get?num={номер добавочного}

 

Получить статусы добавочного номера пользователя
ext.state.get?num={номер добавочного}

ответ:
num - добавочный номер пользователя
registered - зарегистрирован или нет данный добавочный на АТС
status - Free - абонент не находится в разговоре, Busy - абонент в разговоре или ему поступает звонк или совершает звонок
fwdName - текущий статус переадресации
qGlobalStatus - глобальный статус входа/выхода из всех очередей
qStatus - статусы входа/выхода из конкретных очередей (num - номер очереди, status - статус)

 

Получить список всех операторов очереди
queue.members.get?num={номер очереди}

 

Получить список всех свободных операторов очереди
queue.free.get?num={номер очереди}

 

Узнать есть ли хотя бы одни свободный оператор очереди, готовый принять звонок
queue.isfree.get?num={номер очереди}

 

Получить список всех операторов группы вызова
group.members.get?num={номер группы вызова}

 

Получить список всех свободных операторов группы вызова
group.free.get?num={номер группы вызова}

 

Следующие запросы работают только в коммерческой версии REST API:

Совершить звонок
makecall?first={номер первого плеча вызова}&second={номер второго плеча вызова}

 

У добавочного номера пользователя сменить статус переадресации
ext.fwd.set?num={номер добавочного}&status={название статуса переадресации на английском}

ответ: успешно/неуспешно завершилось выполнение команды, команда завершается неуспехом, если переданы некорректные данные (добавочный номер пользователя и/или название статуса)

 

У добавочного номера пользователя установить опцию глобального входа/выхода из всех очередей
ext.queueglobal.set?num={номер добавочного}&log={on/off}

ответ: успешно/неуспешно завершилось выполнение команды
Если за глобальный вход/выход из очередей отвечают статусы переадресации, то результат будет false – вход/выход из очередей не произойдет. В этом случае используйте смену статуса переадресации.

 

Ввести/вывести оператора очереди в конкретную очередь
ext.queue.set?num={номер добавочного}&queue={номер очереди}&log={on/off}

ответ: успешно/неуспешно завершилось выполнение команды. Команда завершается неуспехом, если переданы некорректные данные (добавочный номер пользователя и/или номер очереди)

 

Задать опции добавочного номера пользователя
ext.options.set?num={номер добавочного}&enabled={on/off}&external={on/off} &recording={off/external/all}

При использовании команды можно использовать не все 3-и опции, а только одну или две по выбору.

Значение опций:
enabled – включен или выключен добавочный номер
external – разрешены ли звонки на внешние номера
recording – режим записи разговоров (выключено/только внешние вызовы/все вызовы)