Инструменты пользователя

Инструменты сайта


faq:pt1c_dnd

MikoPBX + DND в панели телефонии для 1С

Обратно, к основному разделу...

В панели телефонии есть возможность установки статуса сотрудника:

  • DND / Не беспокоить
  • На мобильном / Отошел
  • На месте / Доступен

При смене статуса в панели телефонии на АТС в базе данных устанавливается соответствующая настройка в виде числового идентификатора:

  • 0 - Доступен
  • 2 или 4 - DND
  • 32 или 8 - Отошел

Настройка dialplan

АТС по умолчанию никак не реагирует на смену статуса. Но мы можем повлиять на поведение MikoPBX и заставить ее завершать вызов при статусе сотрудника DND.

  1. Перейдите в раздел «Система» - «Кастомизация системных файлов»
  2. Откройте файл extensions.conf на редактирование
  3. Выберите режим «Добавлять в конец файла»
  4. Добавьте текст dialplan,
    [internal-users-custom]
    exten => _.!,1,NoOp(Start custom context)
        same => n,Set(fw_status=${DB(UserBuddyStatus/PJSIP/${EXTEN})})
        ; DND
        same => n,ExecIf($["${fw_status}" == "2" || "${fw_status}" == "4"]?Busy())
        ; On mobile
        same => n,ExecIf($["${fw_status}" == "8" || "${fw_status}" == "32" ]?Set(fw_unav=${DB(FW_UNAV/${EXTEN})}):Set(fw_unav=${UNDEFINED}))
        same => n,ExecIf($["${fw_unav}x" != "x"]?Set(pt1c_UNIQUEID=${UNDEFINED}))
        same => n,ExecIf($["${fw_unav}x" != "x"]?Set(peer_mobile=1))
        same => n,ExecIf($["${fw_unav}x" != "x"]?Goto(internal,${fw_unav},1))
        same => n,return
    
  5. После этих правок все вызовы на внутренний номер со статусом DND будут завершаться с сигналом «Занято».

Настройка переадресации "На мобильном"

При звонке на Очередь: Eсли телефон пользователя отключен, то вызов не будет направлен на его номер и не сработает переадресация на мобильный. Это особенность очереди.
  1. Перейдите к редактированию карточки сотрудника
  2. Назначьте сотруднику мобильный номер телефона
  3. Настройте переадресацию

Изменени статуса с телефона

  1. Опишем на АТС новое «Приложение dialplan»
  2. Заполните «Название приложения»
  3. Укажите «Номер для вызова приложения», его мы опишем шаблоном «888X»
  4. «Тип кода» - Диалплан Asterisk
  5. Заполните вкладку «Программный код»
    1,ExecIf($["${CHANNEL(channeltype)}" == "Local"]?Hangup())
    n,Set(ext=${EXTEN:3})
    n,ExecIf($["${ext}" == "0"]?Set(new_status=0))
    n,ExecIf($["${ext}" == "1"]?Set(new_status=2))
    n,ExecIf($["${ext}" == "2"]?Set(new_status=32))
    n,ExecIf($["${new_status}x" == "x"]?Hangup())
    n,Set(device_status=${IF($["${new_status}" == "0"]?NOT_INUSE:BUSY)})
    n,Set(DEVICE_STATE(Custom:${CHANNEL(endpoint)})=${device_status})
    n,Set(DB(UserBuddyStatus/PJSIP/${CHANNEL(endpoint)})=${new_status})
    n,UserEvent(DB_UserBuddyStatus,chan1c:PJSIP/${CHANNEL(endpoint)},key:PJSIP/${CHANNEL(endpoint)},val:${new_status}})
    n,Answer()
    n,Hangup
    
  6. Сохраните приложение

Приложение позволит менять статус набором внутреннего номера:

  • DND / Не беспокоить - позвоните на 8881
  • На мобильном / Отошел - позвоните на 8882
  • На месте / Доступен - позвоните на 8880

Обратно, к основному разделу...

faq/pt1c_dnd.txt · Последние изменения: 2023/03/27 07:57 — Портнов Алексей