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

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


faq:pt1c_dnd

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
faq:pt1c_dnd [2019/06/13 13:41]
Портнов Алексей создано
faq:pt1c_dnd [2023/03/27 07:57] (текущий)
Портнов Алексей [Изменени статуса с телефона]
Строка 1: Строка 1:
-====== ​Askozia ​+ DND в панели телефонии для 1С ======+====== ​MikoPBX ​+ DND в панели телефонии для 1С ====== 
 +[[:​faq|Обратно,​ к основному разделу... ]]
  
 В панели телефонии есть возможность установки статуса сотрудника:​ В панели телефонии есть возможность установки статуса сотрудника:​
Строка 14: Строка 15:
  
   * **0** - Доступен   * **0** - Доступен
-  * **2** - DND +  * **2** или **4** - DND 
-  * **32** - Отошел+  * **32** или **8** - Отошел 
 +====== Настройка 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>​[all_peers-custom]+  - Добавьте текст dialplan, ​<​code>​ 
 +[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 
 +</​code>​ 
 +  - После этих правок все вызовы на внутренний номер со статусом ​**DND** будут завершаться с сигналом ​"**Занято**".  
 +====== Настройка переадресации "На мобильном"​ ======
  
-exten =_.!,1,Set(fw=${DB(UserBuddyStatus/​SIP/​${EXTEN})}) +<note important>**При звонке на Очередь**:​ Eсли телефон пользователя отключен,​ то вызов не будет направлен на его номер и не сработает переадресация на мобильный**Это особенность очереди**. </​note>​ 
- same => n,​ExecIf($["​${fw}" == "2"]?Busy()) 2=DND 32=Отошел +  - Перейдите к редактированию карточки сотрудника {{ :​faq:​statuses_pt1c_4.jpg |}} 
- same =n,Return()+  - Назначьте сотруднику мобильный номер телефона {{ :​faq:​statuses_pt1c_2.jpg |}} 
 +  - Настройте переадресацию {{ :​faq:​statuses_pt1c_3.jpg |}} 
 +====== Изменени статуса с телефона ====== 
 +  - Опишем на АТС новое "​**Приложение dialplan**"​ {{ :​faq:​statuses_pt1c_5.jpg |}} 
 +  - Заполните "​Название приложения"​ 
 +  - Укажите "​**Номер для вызова приложения**"​его мы опишем шаблоном "​**888X**"​ 
 +  - "​**Тип кода**"​ - **Диалплан Asterisk** 
 +  - Заполните вкладку "​**Программный код**"​ <​code>​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 
 +</​code>​ 
 +  - Сохраните приложение
  
-[internal-custom] +Приложение позволит менять статус набором внутреннего номера:​ 
-exten => _XXX,​1,​Set(fw=${DB(UserBuddyStatus/​SIP/${EXTEN})}) +  * **DND** ​Не беспокоить - позвоните на **8881** 
- same => n,​ExecIf($["​${fw}"​ == "​2"​]?​Busy()) ; 2=DND 32=Отошел +  * **На мобильном** / Отошел ​- позвоните на **8882** 
- same => n,Return()+  * **На месте** / Доступен - позвоните на **8880**
  
-exten => _XXXX,​1,​Set(fw=${DB(UserBuddyStatus/​SIP/​${EXTEN})}) + 
- same => n,ExecIf($["​${fw}"​ == "​2"​]?​Busy()) ; 2=DND 32=Отошел +[[:faq|Обратно, к основному разделу... ]]
- same => n,Return() +
-</​code>​ +
-  - После этих правок все вызовы на внутренний ​номер со статусом **2** - **DND** будут завершаться с сигналом "​**Занято**"​+
faq/pt1c_dnd.1560433290.txt.gz · Последние изменения: 2019/06/13 13:41 — Портнов Алексей