Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
faq:pt1c_dnd [2020/04/05 15:06] 127.0.0.1 внешнее изменение |
faq:pt1c_dnd [2023/03/27 07:57] (текущий) Портнов Алексей [Изменени статуса с телефона] |
||
---|---|---|---|
Строка 24: | Строка 24: | ||
- Откройте файл 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" || "${fw_status}" == "4"]?Busy()) | same => n,ExecIf($["${fw_status}" == "2" || "${fw_status}" == "4"]?Busy()) | ||
Строка 38: | Строка 35: | ||
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> | ||
- После этих правок все вызовы на внутренний номер со статусом **DND** будут завершаться с сигналом "**Занято**". | - После этих правок все вызовы на внутренний номер со статусом **DND** будут завершаться с сигналом "**Занято**". | ||
Строка 50: | Строка 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}) | ||
Строка 58: | Строка 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 | ||
Строка 65: | Строка 65: | ||
Приложение позволит менять статус набором внутреннего номера: | Приложение позволит менять статус набором внутреннего номера: | ||
- | * **DND** / Не беспокоить - позвоните на **8882** | + | * **DND** / Не беспокоить - позвоните на **8881** |
- | * **На мобильном** / Отошел - позвоните на **8881** | + | * **На мобильном** / Отошел - позвоните на **8882** |
* **На месте** / Доступен - позвоните на **8880** | * **На месте** / Доступен - позвоните на **8880** | ||
[[:faq|Обратно, к основному разделу... ]] | [[:faq|Обратно, к основному разделу... ]] |