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

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


faq:pt1c_dnd

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
faq:pt1c_dnd [2019/06/14 06:50]
Портнов Алексей
faq:pt1c_dnd [2023/03/27 07:57] (текущий)
Портнов Алексей [Изменени статуса с телефона]
Строка 1: Строка 1:
-====== ​Askozia ​+ DND в панели телефонии для 1С ======+====== ​MikoPBX ​+ DND в панели телефонии для 1С ======
 [[:​faq|Обратно,​ к основному разделу... ]] [[:​faq|Обратно,​ к основному разделу... ]]
- 
-<note important>​Инструкции подойдут для **Askozia 7.1**+ </​note>​ 
  
 В панели телефонии есть возможность установки статуса сотрудника:​ В панели телефонии есть возможность установки статуса сотрудника:​
Строка 17: Строка 15:
  
   * **0** - Доступен   * **0** - Доступен
-  * **2** - DND +  * **2** или **4** - DND 
-  * **32** - Отошел +  * **32** или **8** - Отошел
 ====== Настройка 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"​]?​Goto(all_peers,​${fw_unav},​1)) +    ​same => n,​ExecIf($["​${fw_unav}x"​ != "​x"​]?​Set(peer_mobile=1)) 
-    same => n,Return()+    ​same => n,​ExecIf($["​${fw_unav}x"​ != "​x"​]?​Goto(internal,​${fw_unav},​1)) 
 +    same => n,return
 </​code>​ </​code>​
-  - После этих правок все вызовы на внутренний номер со статусом ​**2** - **DND** будут завершаться с сигналом "​**Занято**"​. ​ +  - После этих правок все вызовы на внутренний номер со статусом **DND** будут завершаться с сигналом "​**Занято**"​. ​
 ====== Настройка переадресации "На мобильном"​ ====== ====== Настройка переадресации "На мобильном"​ ======
  
 +<note important>​**При звонке на Очередь**:​ Eсли телефон пользователя отключен,​ то вызов не будет направлен на его номер и не сработает переадресация на мобильный. **Это особенность очереди**. </​note>​
   - Перейдите к редактированию карточки сотрудника {{ :​faq:​statuses_pt1c_4.jpg |}}   - Перейдите к редактированию карточки сотрудника {{ :​faq:​statuses_pt1c_4.jpg |}}
   - Назначьте сотруднику мобильный номер телефона {{ :​faq:​statuses_pt1c_2.jpg |}}   - Назначьте сотруднику мобильный номер телефона {{ :​faq:​statuses_pt1c_2.jpg |}}
   - Настройте переадресацию {{ :​faq:​statuses_pt1c_3.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>​
 +  - Сохраните приложение
 +
 +Приложение позволит менять статус набором внутреннего номера:​
 +  * **DND** / Не беспокоить - позвоните на **8881**
 +  * **На мобильном** / Отошел - позвоните на **8882**
 +  * **На месте** / Доступен - позвоните на **8880**
  
  
 [[:​faq|Обратно,​ к основному разделу... ]] [[:​faq|Обратно,​ к основному разделу... ]]
faq/pt1c_dnd.1560495028.txt.gz · Последние изменения: 2019/06/14 06:50 — Портнов Алексей