Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
faq:pt1c_dnd [2019/07/18 07:47] Портнов Алексей [Askozia + DND в панели телефонии для 1С] |
faq:pt1c_dnd [2023/03/27 07:57] (текущий) Портнов Алексей [Изменени статуса с телефона] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Askozia + DND в панели телефонии для 1С ====== | + | ====== MikoPBX + DND в панели телефонии для 1С ====== |
[[:faq|Обратно, к основному разделу... ]] | [[:faq|Обратно, к основному разделу... ]] | ||
- | |||
- | <note important>Инструкции подойдут для **Askozia 7.1**+ </note> | ||
В панели телефонии есть возможность установки статуса сотрудника: | В панели телефонии есть возможность установки статуса сотрудника: | ||
Строка 21: | Строка 19: | ||
====== Настройка dialplan ====== | ====== Настройка dialplan ====== | ||
- | АТС по умолчанию никак не реагирует на смену статуса. Но мы можем повлиять на поведение Askozia и заставить ее завершать вызов при статусе сотрудника DND. | + | АТС по умолчанию никак не реагирует на смену статуса. Но мы можем повлиять на поведение MikoPBX и заставить ее завершать вызов при статусе сотрудника DND. |
- Перейдите в раздел "**Система**" - "**Кастомизация системных файлов**"{{ :faq:askozia7_custom_extension_dnd_1.jpg |}} | - Перейдите в раздел "**Система**" - "**Кастомизация системных файлов**"{{ :faq:askozia7_custom_extension_dnd_1.jpg |}} | ||
- Откройте файл extensions.conf на редактирование | - Откройте файл extensions.conf на редактирование | ||
- Выберите режим "**Добавлять в конец файла**" {{ :faq:askozia7_custom_extension_dnd_2.jpg |}} | - Выберите режим "**Добавлять в конец файла**" {{ :faq:askozia7_custom_extension_dnd_2.jpg |}} | ||
- | - Добавьте текст dialplan, будут кастомизированы "**all_peers**" и "**internal**" <code> | + | - Добавьте текст dialplan, <code> |
- | [all_peers-custom] | + | [internal-users-custom] |
- | include => internal-custom | + | |
- | + | ||
- | [internal-custom] | + | |
exten => _.!,1,NoOp(Start custom context) | exten => _.!,1,NoOp(Start custom context) | ||
- | same => n,Set(fw_status=${DB(UserBuddyStatus/SIP/${EXTEN})}) | + | same => n,Set(fw_status=${DB(UserBuddyStatus/PJSIP/${EXTEN})}) |
; DND | ; DND | ||
- | same => n,ExecIf($["${fw_status}" == "2"]?Busy()) | + | same => n,ExecIf($["${fw_status}" == "2" || "${fw_status}" == "4"]?Busy()) |
; On mobile | ; On mobile | ||
- | same => n,ExecIf($["${fw_status}" == "32"]?Set(fw_unav=${DB(FW_UNAV/${EXTEN})}):Set(fw_unav=${UNDEFINED})) | + | 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(pt1c_UNIQUEID=${UNDEFINED})) | ||
same => n,ExecIf($["${fw_unav}x" != "x"]?Set(peer_mobile=1)) | 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,ExecIf($["${fw_unav}x" != "x"]?Goto(internal,${fw_unav},1)) | ||
- | same => n,Return() | + | same => n,return |
</code> | </code> | ||
- | - После этих правок все вызовы на внутренний номер со статусом **2** - **DND** будут завершаться с сигналом "**Занято**". | + | - После этих правок все вызовы на внутренний номер со статусом **DND** будут завершаться с сигналом "**Занято**". |
====== Настройка переадресации "На мобильном" ====== | ====== Настройка переадресации "На мобильном" ====== | ||
Строка 52: | Строка 47: | ||
- Опишем на АТС новое "**Приложение dialplan**" {{ :faq:statuses_pt1c_5.jpg |}} | - Опишем на АТС новое "**Приложение dialplan**" {{ :faq:statuses_pt1c_5.jpg |}} | ||
- Заполните "Название приложения" | - Заполните "Название приложения" | ||
- | - Укажите "**Номер для вызова приложения**", его мы опишем шаблоном "**888[0-2]**" | + | - Укажите "**Номер для вызова приложения**", его мы опишем шаблоном "**888X**" |
- | - "**Тип кода**" - **Диалплан Asterisk** {{ :faq:statuses_pt1c_6.jpg |}} | + | - "**Тип кода**" - **Диалплан Asterisk** |
- Заполните вкладку "**Программный код**" <code>1,ExecIf($["${CHANNEL(channeltype)}" == "Local"]?Hangup()) | - Заполните вкладку "**Программный код**" <code>1,ExecIf($["${CHANNEL(channeltype)}" == "Local"]?Hangup()) | ||
n,Set(ext=${EXTEN:3}) | n,Set(ext=${EXTEN:3}) | ||
Строка 60: | Строка 55: | ||
n,ExecIf($["${ext}" == "2"]?Set(new_status=32)) | n,ExecIf($["${ext}" == "2"]?Set(new_status=32)) | ||
n,ExecIf($["${new_status}x" == "x"]?Hangup()) | n,ExecIf($["${new_status}x" == "x"]?Hangup()) | ||
- | n,Set(DB(UserBuddyStatus/SIP/${CHANNEL(peername)})=${new_status}) | + | 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,Answer() | ||
n,Hangup | n,Hangup | ||
Строка 67: | Строка 65: | ||
Приложение позволит менять статус набором внутреннего номера: | Приложение позволит менять статус набором внутреннего номера: | ||
- | * **DND** / Не беспокоить - позвоните на **8882** | + | * **DND** / Не беспокоить - позвоните на **8881** |
- | * **На мобильном** / Отошел - позвоните на **8881** | + | * **На мобильном** / Отошел - позвоните на **8882** |
* **На месте** / Доступен - позвоните на **8880** | * **На месте** / Доступен - позвоните на **8880** | ||
[[:faq|Обратно, к основному разделу... ]] | [[:faq|Обратно, к основному разделу... ]] |