Уведомление о занятости, Call Waiting
Перейдите в раздел Кастомизация системных файлов

Перейдите к редактированию файла "modules.conf"

Добавьте в конец файла следующий код:
load => func_extstate.so

Перейдите к редактированию файла "extensions.conf"

Добавьте в конец файла следующий код:
[internal-users-custom]
exten => _X!,1,Progress()
same => n,ExecIf($["${EXTENSION_STATE(${EXTEN})@internal-hints}" = "INUSE" || "${EXTENSION_STATE(${EXTEN}@internal-hints)}" = "RINGINUSE"]?Playback(beep))
same => n,ExecIf($["${EXTENSION_STATE(${EXTEN})@internal-hints}" = "INUSE" || "${EXTENSION_STATE(${EXTEN}@internal-hints)}" = "RINGINUSE"]?Set(TRANSFER_OPTIONS=${TRANSFER_OPTIONS}m))
same => n,return

В карточке сотрудника, в поле «Расширенные настройки» - «Дополнительные параметры» установите значение
[endpoint]
device_state_busy_at = 3

Если сотрудник будет занят, то звонящему будет проигран файл beep (короткий гудок), затем вместо гудков будет проигрываться музыка, пока сотрудник не ответит на вызов
device_state_busy_at - это то количество разговоров, при котором следует считать сотрудника «занятым», в этом случае начнут работать правила «Настройки маршрутизации», описанные в карточке сотрудника.
В случае некорректной работы решения задачи, измените код в extensions.conf на:
[internal-users-custom]
exten => _X!,1,Progress()
same => n,NoOp(${EXTEN})
same => n,NoOp(${DEVICE_STATE(PJSIP/${EXTEN})})
same => n,ExecIf($["${DEVICE_STATE(PJSIP/${EXTEN})}" = "INUSE" || "${DEVICE_STATE(PJSIP/${EXTEN})}" = "RINGINUSE"]?Background(nomer&zanjat))
same => n,ExecIf($["${DEVICE_STATE(PJSIP/${EXTEN})}" = "INUSE" || "${DEVICE_STATE(PJSIP/${EXTEN})}" = "RINGINUSE"]?Set(TRANSFER_OPTIONS=${TRANSFER_OPTIONS}m(callwaiting)))
same => n,return
Last updated
Was this helpful?