Busy Lamp Field (BLF) — это функция SIP-телефонов, которая позволяет сотрудникам быстро отслеживать статусы коллег и управлять их вызовами. Индикатор показывает, занят ли абонент на звонке или доступен для общения, что экономит время как для клиентов бизнесов, так и для персонала компаний. Рассказываем подробнее, что такое и как работает BLF.
Busy Lamp Field (BLF) — что это?
Busy Lamp Field или BLF — это система индикаторов, представляющая собой световые лампочки на кнопках телефона. Задача BLF — показать, занята ли линия у другого абонента, подключённого к той же офисной автоматической телефонной системе — АТС. Индикаторы BLF могут быть видны как на интерфейсе программного телефона, так и на кнопках современных SIP-телефонов. Последние подключаются к интернету или локальной сети и используют IP-протокол для передачи голосовых данных.
Обычно настройка индикатора выполняется через веб-интерфейс устройства.
Далее телефон получает информацию о статусе нужных абонентов от АТС. BLF IP-телефония особенно полезна для менеджеров, которые часто взаимодействуют с ограниченным числом коллег. Она позволяет быстро определить, доступен ли сотрудник для разговора, и в случае его занятости переключить вызов на другого сотрудника или, например, на голосовую почту.
Как работает BLF
Объясним на примере: когда к Наталье поступает звонок, а её нет на месте, её коллега Дмитрий может «перенаправить» этот вызов на себя, просто нажав на мигающий индикатор, связанный с номером Натальи. Кроме того, Дмитрий может заранее узнать, свободна ли Наталья для разговора, просто взглянув на индикатор.
Механизм работы Busy Lamp Field можно описать так: в настройках телефона вводятся сведения для подписки на информацию о конкретных номерах, которые предоставляет офисная АТС. Статусы передаются с помощью SIP-протокола (Session Initiation Protocol), который используется для управления голосовыми и видеозвонками через интернет. Информация передаётся через специальные запросы: SUBSCRIBE (подписка на статус) и NOTIFY (уведомление о статусе).
VoIP-телефон, то есть телефон, использующий интернет для связи, он же телефон-подписчик, высылает команду SUBSCRIBE к своей IP-АТС. В случае когда подписка разрешена, АТС даёт ответ в виде сообщения 200 OK, что является подтверждением успешного сигнала. Затем команду NOTIFY транслируют актуальные сведения о статусе телефона подписчику в формате XML-языка разметки, который используется для передачи данных.
Когда статус меняется (например, сотрудник становится занятым или освобождается), АТС отправляет телефону-подписчику команду NOTIFY. На него телефон даёт ответ «200 OK». Также он может отменить подписку, передав АТС сообщение SUBSCRIBE с указанием значения 0 в строке Expires. Это будет означать, что подписка больше не нужна.
Статусы BLF
Клавиши BLF помогают определить статусы абонентов.
- Если индикатор светится зелёным, это означает, что пользователь свободен и может начать разговор.
- Красный цвет указывает на то, что пользователь в текущий момент разговаривает или поставил статус «Не беспокоить» (DND).
- Если индикатор мигает красным, это значит, что сотрудник получил входящий вызов, но ещё не ответил на него.
- Жёлтый цвет, который горит или мигает, сигнализирует о том, что пользователь пытается дозвониться кому-то.
Запрос SUBSCRIBE
Так может выглядеть команда SUBSCRIBE для индикатора Busy Lamp Field:
SUBSCRIBE sip:104@your-sip-server SIP/2.0
Via: SIP/2.0/UDP 192.168.1.10:5060;branch=z9hG4bK123456
Max-Forwards: 70
From: <sip:140@your-sip-server>;tag=abcd1234
To: <sip:104@your-sip-server>
Call-ID: 1234567890@your-sip-server
CSeq: 1 SUBSCRIBE
Contact: <sip:140@192.168.1.10>
Expires: 3600
Accept: application/simple-message-summary
В этом случае команда SUBSCRIBE позволяет телефону 140 подписаться на обновления о состоянии телефона 104 на SIP-сервере, чтобы знать, свободен ли он для разговора или нет.
Давайте рассмотрим, что значит каждая отдельная строка и основные символы подобного сигнала.
Первая строка: SUBSCRIBE sip:104@your-sip-server SIP/2.0. Это основная часть команды, которая говорит, что мы подписываемся на информацию о внутреннем номере 104 на указанном SIP-сервере. Вместо блока your-sip-server вставляется IP-адрес устройства, на котором зарегистрирован телефонный номер в сети IP-телефонии. Он может выглядеть вот так: 192.168.1.10.
Вторая: Via: SIP/2.0/UDP 192.168.1.10:5060;branch=z9hG4bK123456. Она указывает, через какой протокол (в данном случае UDP) и с какого IP-адреса (192.168.1.10) отправляется команду. branch — это уникальный идентификатор для отслеживания транзакции.
Третья выглядит так: Max-Forwards: 70. Она указывает максимальное количество промежуточных узлов (прокси), через которые может пройти сообщение, прежде чем оно будет отброшено.
Четвёртая строка: From: <sip:140@your-sip-server>;tag=abcd1234. Указан адрес отправителя, плюс добавляется уникальный тег для идентификации этой сессии.
Пятая: To: <sip:104@your-sip-server>. Здесь указан адрес, на который мы подписываемся.
Шестая: Call-ID: 1234567890@your-sip-server. В ней указан уникальный идентификатор вызова, который позволяет отслеживать все команды, относящиеся к одному вызову или подписке.
Седьмая: CSeq: 1 SUBSCRIBE. Единица здесь — это номер последовательности (CSeq). Она указывает, что это первый отправляемый сигнал SUBSCRIBE.
Восьмая: Contact: <sip:140@192.168.1.10>. Она несёт информацию о том, как можно связаться с отправителем команды.
Девятая: Expires: 3600. Из неё мы узнаём, на сколько секунд подписка будет действительна (3600 секунд или 1 час).
Десятая: Accept: application/simple-message-summary. Здесь указан тип информации, которую мы хотим получать в ответ. В данном случае это простое сообщение о состоянии.
Ответная команда АТС на запрос SUBSCRIBE для BLF может выглядеть следующим образом:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.10:5060;branch=z9hG4bK123456;received=192.168.1.10
From: <sip:140@your-sip-server>;tag=abcd1234
To: <sip:104@your-sip-server>;tag=xyz9876
Call-ID: 1234567890@your-sip-server
CSeq: 1 SUBSCRIBE
Contact: <sip:104@your-sip-server>
Expires: 3600
Content-Type: application/simple-message-summary
Content-Length: 0
Вот как расшифровывается эта команда построчно:
- SIP/2.0 200 OK — это статус ответа, который указывает на успешное выполнение сигнала.
- Via — содержит информацию о маршруте, по которому прошёл запрос, включая IP-адрес и порт отправителя.
- From — идентифицирует отправителя сигнала.
- To — идентифицирует получателя и может содержать тег для уникальной идентификации.
- Call-ID — уникальный идентификатор вызова, который связывает все команды в рамках одного сеанса.
- CSeq — последовательный номер запроса, который помогает отслеживать порядок сообщений.
- Contact — указывает, как можно связаться с пользователем.
- Expires — указывает время действия подписки (в секундах).
- Content-Type — указывает тип содержимого, которое будет передаваться (в нашем примере это application/simple-message-summary).
- Content-Length — длина содержимого сообщения. В данном случае это 0, так как нет тела команды.
Запрос NOTIFY
Сигнал NOTIFY для функции BLF будет выглядеть следующим образом.
NOTIFY sip:140@your-sip-server SIP/2.0
Via: SIP/2.0/UDP 192.168.1.20:5060;branch=z9hG4bK987654
Max-Forwards: 70
From: <sip:104@your-sip-server>;tag=xyz9876
To: <sip:140@your-sip-server>;tag=abcd1234
Call-ID: 1234567890@your-sip-server
CSeq: 1 NOTIFY
Contact: <sip:104@your-sip-server>
Content-Type: application/simple-message-summary
Content-Length: 403
State: active
Этот запрос NOTIFY будет отправлен абоненту 140 для уведомления о текущем состоянии абонента 104.
Рассмотрим значение каждой строки этого запроса:
- NOTIFY sip:140@your-sip-server SIP/2.0 — команда NOTIFY с адресом пользователя, который подписался на индикатор. На месте your-sip-server указывается IP-адрес конкретного номера.
- Via — информация о маршруте, по которому проходит команда, включая IP-адрес и порт отправителя (в данном случае это адрес устройства, отправляющего уведомление).
- Max-Forwards — максимальное количество пересылок сообщения.
- From — идентифицирует отправителя уведомления.
- To — идентифицирует получателя уведомления с соответствующим тегом.
- Call-ID — уникальный идентификатор вызова, который связывает все сообщения в рамках одного сеанса.
- CSeq — последовательный номер сигнала, который помогает отслеживать порядок сообщений.
- Contact — указывает, как можно связаться с отправителем уведомления.
- Content-Type — указывает тип содержимого, которое будет передаваться.
- Content-Length — длина содержимого сообщения. Здесь нужно указать размер MXL-файла в байтах.
- State: active — это пример содержимого, указывающий состояние индикатора занятости. В данном случае «active» означает, что абонент 104 в текущий момент активен (не занят).
В ответ на запрос NOTIFY сервер или устройство, получившее уведомление, должно отправить сообщение 200 OK, подтверждающее успешное получение и обработку уведомления.
Пример ответа может выглядеть так:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.20:5060;branch=z9hG4bK987654
From: <sip:104@your-sip-server>;tag=xyz9876
To: <sip:140@your-sip-server>;tag=abcd1234
Call-ID: 1234567890@your-sip-server
CSeq: 1 NOTIFY
Content - Length: 0
Отказ от подписки
Отказ от подписки (UNSUBSCRIBE) в SIP-протоколе обычно отправляется в виде сообщения, аналогичного сигналу SUBSCRIBE. В нашем случае отказ от подписки на BLF будет выглядеть следующим образом:
UNSUBSCRIBE sip:104@your-sip-server SIP/2.0
Via: SIP/2.0/UDP 192.168.1.10:5060;branch=z9hG4bK123456
Max-Forwards: 70
From: <sip:140@your-sip-server>;tag=abcd1234
To: <sip:104@your-sip-server>;tag=<tag_from_SUBSCRIBE> (если есть tag из предыдущего запроса)
Call-ID: 1234567890@your-sip-server
CSeq: 2 UNSUBSCRIBE
Contact: <sip:140@192.168.1.10>
Это сообщение будет отправлено на SIP-сервер, который должен обработать его и подтвердить отказ от подписки соответствующим ответом — сообщением 200 OK.
С какими консолями работает?
Вот несколько примеров телефонных консолей, с которыми может работать BLF:
- Cisco 8800 и 7900;
- модели Avaya, включая серии 9600 и 1600;
- модели Yealink T4 и T5
- Polycom Phones SoundPoint и VVX.
Индикатор может использоваться в передовых телефонных системах — виртуальных АТС. Они не требуют больших затрат на оборудование и имеют несколько важных дополнительных преимуществ, крайне актуальных для бизнеса.
Виртуальная АТС от МТТ — это современная телефонная система, которая предлагает городские номера, бесплатные номера 8-800, а также возможность звонить по междугородним и международным направлениям по низким ценам. Она легко настраивается под нужды бизнеса, позволяя сотрудникам работать удалённо.
Виртуальная АТС от МТТ также включает автоматическое распределение звонков, голосовую почту и инструменты для конференц-связи. Она может интегрироваться с другими системами, такими как CRM, которая расширяет функциональность BLF, добавляя дополнительные данные о статусе пользователей.
Коротко о главном
- Busy Lamp Field (BLF) — это система, которая помогает пользователям одной АТС видеть, доступны ли их коллеги для звонка. С помощью световых лампочек на кнопках телефона этот индикатор показывает, занят ли тот или иной абонент.
- BLF-телефония особенно полезна для колл-центров, служб поддержки, коллективов с сотрудниками на удалённой работе, а также менеджеров, которые непрерывно взаимодействуют друг с другом.
- Функция BLF настраивается через специальный интерфейс на телефоне, и таким образом в дальнейшем абонент может получать актуальную информацию из офисной телефонной системы о статусе коллег. Команды SUBSCRIBE и NOTIFY используются для подписки на статусы и получения уведомлений об их изменениях.
- Индикатор BLF работает на разных моделях телефонов, например Cisco, Avaya и Yealink, и может интегрироваться с виртуальными АТС, что расширяет его функциональность.
