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

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


faq:pt1c_dnd

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
faq:pt1c_dnd [2019/06/13 13:42]
Портнов Алексей
faq:pt1c_dnd [2023/03/27 07:57] (текущий)
Портнов Алексей [Изменени статуса с телефона]
Строка 1: Строка 1:
-====== ​Askozia ​+ DND в панели телефонии для 1С ======+====== ​MikoPBX ​+ DND в панели телефонии для 1С ======
 [[:​faq|Обратно,​ к основному разделу... ]] [[:​faq|Обратно,​ к основному разделу... ]]
  
Строка 15: Строка 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,Set(fw=${DB(UserBuddyStatus/​SIP/​${EXTEN})}) +exten => _.!,1,NoOp(Start custom context) 
- same => n,​ExecIf($["​${fw}" == "​2"​]?​Busy()) ; 2=DND 32=Отошел +    same => n,Set(fw_status=${DB(UserBuddyStatus/​PJSIP/​${EXTEN})}) 
- same => n,Return(+    ; DND 
- +    ​same => n,​ExecIf($["​${fw_status}" == "2" || "​${fw_status}"​ == "4"​]?​Busy()) 
-[internal-custom] +    ​On mobile 
-exten => _XXX,1,Set(fw=${DB(UserBuddyStatus/​SIP/​${EXTEN})}) +    same => n,ExecIf($["​${fw_status}" ​== "​8"​ || "​${fw_status}"​ == "​32"​ ]?Set(fw_unav=${DB(FW_UNAV/${EXTEN})}):​Set(fw_unav=${UNDEFINED})
- same => n,​ExecIf($["​${fw}" ​== "2"]?Busy()) ; 2=DND 32=Отошел +    same => n,​ExecIf($["​${fw_unav}x" ​!= "x"]?Set(pt1c_UNIQUEID=${UNDEFINED})) 
- same => n,Return()+    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 =_XXXX,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>​ </​code>​
-  - После этих правок все вызовы на внутренний номер со статусом **2** - **DND** будут завершаться с сигналом "​**Занято**"​. ​+  - Сохраните ​приложение
  
 +Приложение позволит менять статус набором внутреннего номера:​
 +  * **DND** / Не беспокоить - позвоните на **8881**
 +  * **На мобильном** / Отошел - позвоните на **8882**
 +  * **На месте** / Доступен - позвоните на **8880**
  
  
 [[:​faq|Обратно,​ к основному разделу... ]] [[:​faq|Обратно,​ к основному разделу... ]]
faq/pt1c_dnd.1560433328.txt.gz · Последние изменения: 2019/06/13 13:42 — Портнов Алексей