Уведомление о занятости, Call Waiting

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

  1. Добавьте в конец файла следующий код:

load => func_extstate.so
  1. Перейдите к редактированию файла "extensions.conf"

  1. Добавьте в конец файла следующий код:

[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
  1. В карточке сотрудника, в поле «Расширенные настройки» - «Дополнительные параметры» установите значение

[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