MikoPBX
Модули
Перевод этой страницы:
MikoPBX
Модули
Это старая версия документа!
Обратно, к основному разделу...
В панели телефонии есть возможность установки статуса сотрудника:
При смене статуса в панели телефонии на АТС в базе данных устанавливается соответствующая настройка в виде числового идентификатора:
АТС по умолчанию никак не реагирует на смену статуса. Но мы можем повлиять на поведение Askozia и заставить ее завершать вызов при статусе сотрудника DND.
[all_peers-custom] include => internal-custom [internal-custom] exten => _.!,1,NoOp(Start custom context) same => n,Set(fw_status=${DB(UserBuddyStatus/SIP/${EXTEN})}) ; DND same => n,ExecIf($["${fw_status}" == "2"]?Busy()) ; On mobile same => n,ExecIf($["${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()
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(DB(UserBuddyStatus/SIP/${CHANNEL(peername)})=${new_status}) n,Answer() n,Hangup
Приложение позволит менять статус набором внутреннего номера: