Настройка телефона SNOM 370 и панели расширения к нему в качестве "системного телефона"

Администратор,

В мире "традиционных" IP АТС есть такое понятие системного телефона. Это такие специальные телефоны, которые подключаются к АТС не обычной "лапшой", а по особым интерфейсам и протоколам (именно по этому он называется системным), благодаря которым на таких телефонах доступен дополнительный функционал АТС. Связано это с тем, что обычный телефонный аппарат обладает беднейшим функционалом. Поэтому системный телефон обладает дополнительными индикаторами и кнопками, предоставляющими некоторым сотрудникам (секретарю или менеджеру) больше функций, таких как индикация статуса линии, перехват вызова, перевод одной кнопкой, и другие. Заменить такие системные телефоны невозможно, чем обычно пользуется производитель АТС, поставляя его по завышенной стоимости.

Такой IP телефон обычно ставится секретарю и выполняет следующие задачи:

  • осуществляет индикацию статуса абонента (свободен, занят, звонит);
  • позволяет "перехватить" звонок, идущий на внутреннего абонента;
  • позволяет вызвать внутреннего абонента нажатием одной кнопки;
  • позволяет перевести на абонента нажатием "его кнопки".
    Дополнительными возможностями могут быть:
  • открытие двери по нажатию кнопки;
  • широковещательный вызов
  • вызов WEB скрипта и отображение результатов его работы на телефоне (курс валют, погода, и тд).

В этой статье мы ограничимся наиболее распространенными функциями, а эти рассмотрим позднее.

Итак.

Немного теории

В мире Asterisk все построено по открытым стандартам. Стандартом де-факто можно считать BLF - Busy Line Feed, поддерживаемый большинством IP телефонов. Существует большой выбор SIP телефонов с BLF, благодаря чему администратор может выбирать телефоны, точно соответствующие его требованиям по цене (бюджетные или VIP), а также по числу линий (от 2-х до сотен). Важным является отсутствие привязки к какому-то одному производителю, поэтому телефоны с поддержкой BLF практически не отличаются по стоимости от обычных, и скорее, поддержка BLF уже стала нормой для SIP телефона.

Однако, одного BLF нам будет мало. Необходимо не только мониторить состояние внутренних абонентов, но также управлять ими - речь идет о функциях call pick-up (перехват) и speed dial (быстрый набор). Для этого мы применим телефон SNOM 370 и панель расширения к нему.


Задача

Нашей целью является программирование доп. кнопок SNOM 370 на выполнение следующих функций:

  • отображать статус
  • перехватывать вызов
  • набирать абонента одной кнопкой

Настройка SNOM 370

В нашем примере применяется Firmware-Version: snom370-SIP 7.1.35 14552. Для настройки требуемых функций используется меню Function Keys.

Выбрать линию

Выбрать тип функции

Указать номер

Основной "трюк" заключает в указании номера. В нашем случае мы программируем кнопку №1 на номер 220, а кнопку №2 на номер 221. Цель выглядит так:

  • для 220: {{ <sip:220@demo.pbxware.ru;user=phone>|** }}
  • для 221: {{ <sip:221@demo.pbxware.ru;user=phone>|** }}

Пояснения. Используется система FreePbx, в которой по умолчанию для перехвата (directed pickup) используется префикс {{ ** }} .

Лог звонка

В нашем примере мы будем звонить с номера 220 на номер 221. По логике, индикатор номера 220 должен гореть (статус "на линии"), а индикатор 221 
- моргать ("звонит").
Так как 221 долго не берет трубку, секретарь нажимает его кнопку, и перехватывает вызов.

snowflake*CLI> Extension Changed 220[ext-local] new state InUse for Notify User 210 
-- 
Executing [221@from-internal:1] 
Macro("SIP/220-0821a140", "exten-vm|novm|221") in new stack ******** 
Пропущено много лишних строк лога *********** 
-- Executing [s@macro-dial:7] 
Dial("SIP/220-0821a140", "SIP/221||tr") in new stack 
Extension Changed 221[ext-local] new state Ringing for Notify User 210 --
 Called 221 -- 
SIP/221-0821b6d0 is ringing 
snowflake*CLI> 
snowflake*CLI> 
-- Executing [**221@from-internal:1] 
NoOp("SIP/210-08286c20", "Attempt to Pickup 221 by 210") in new stack 
-- Executing [**221@from-internal:2] Pickup("SIP/210-08286c20", "221") in new stack --
 Executing [**221@from-internal:3] Pickup("SIP/210-08286c20", "221@ext-local") 
in new stack 
-- SIP/210-08286c20 answered SIP/220-0821a140 
Extension Changed 221[ext-local] new state Idle for Notify User 210 
-- Executing [h@from-internal:1] 
Macro("SIP/221-0821b6d0<ZOMBIE>", "hangupcall") in new stack snowflake*CLI> 

Обратите внимание на:

  • уведомляем 210 о том, что звонит 221: Extension Changed 221 ext-local new state Ringing for Notify User 210
  • жмем на кнопку 221 и вызываем directed call pickup: Executing **221@from-internal:1 [NOoP]("SIP/210-08286c20", "Attempt to Pickup 221 by 210") in new stack
  • завершаем разговор, индикатор гаснет: Extension Changed 221 ext-local new state Idle for Notify User 210