Busy Lamp Field (BLF) – Что это и как это работает (Subscribe, Notify)

Опубликовано в Новые технологии VoIP

Busy Lamp Field (BLF) – Что это и как это работает (Subscribe, Notify)

Busy Lamp Field (BLF) это индикация программируемых клавишей набора IP-телефона, отображающих статус состояния абонента, очереди или внешней линии IP-АТС. Необходимые данные подписки, вносятся в настройки конкретного телефона. После этого телефон подписывается на информацию определенных номеров рассылаемых АТС. Сообщения состояния BLF передаются посредством SIP протокола, с помощью запросов SUBSCRIBE и NOTIFY. Обычно аппарат запрашивает состояние (сообщение SUBSCRIBE) и получает ответ от IP-АТС (сообщение NOTIFY).

Процедура обмена сообщениями выглядит следующим образом, VoIP телефон отсылает запрос SUBSCRIBE к своей IP-АТС. Если в АТС разрешена подписка, то она отвечает сообщением 200 OK. Сообщения NOTIFY передает необходимые данные в XML формате IP-телефону. Как только происходит изменения состояния номера подписки (занятость, удержание, вызов), АТС посылает телефону сообщение NOTIFY. На это сообщение подписчик отвечает 200 ОК. Точно таким образом IP-телефон может отказаться от подписки, отправив АТС сообщение SUBSCRIBE, содержащее значение 0 в заголовке Expires.

Запрос SUBSCRIBE

IP-телефон с номером 106 зарегистрирован в АТС, отправляет запрос SUBSCRIBE, для получение подписки о номере 136.

 Запрос SUBSCRIBE

Разберем это сообщение:

  • SUBSCRIBE sip:136@10.130.130.4;user=phone SIP/2.0 – сообщение SUBSCRIBE отправлено для получение информации по номеру 136, зарегистрированного на АТС c IP адресом 10.130.130.4
  • From: ; – это поле содержит информацию о подписчике, номер 106, зарегистрированный на АТС с IP адресом 10.130.130.4
  • Accept: application/dialog-info+xml – поле указывает, что разрешен прием информации dialog-info в XML формате
  • Expires: 3600 – время истечения подписки. По истечении этого времени, подписчик должен послать еще одно сообщение SUBSCRIBE в сторону АТС, чтобы продолжить получать интересующую его информацию
  • Content-Length: 0 – в поле указывается, что в этом SIP сообщении нету информации в XML формате

После получения сообщения SUBSCRIBE АТС отправляет сообщение ответ подписчику 200 OK.

200 OK

Запрос NOTFIY

В сообщении NOTFIY показано, что происходит изменение статуса номера 136, информация передается в формате XML от АТС, в сторону подписчика.

Запрос NOTFIY

Разберем это сообщение:

  • NOTIFY sip:106@10.130.130.58:2051;line=1ofdyu7v SIP/2.0 – в этом поле мы видим, что сообщение NOTIFY предназначается внутреннему номеру 106, имеющему IP адрес 10.130.130.58
  • Subscription-State: active;expires=3521 – в этом поле мы видим, сколько времени осталось до конца подписки
  • Content-Length: 507 – в этом поле мы видим размер XML файла в байтах
  • entity=”sip:136@10.130.130.4;user=phone” – в этом поле представлена, информация о абоненте, на которого телефон подписался
  • direction=”initiator” – в этом поле показано, что наблюдаемый внутренний номер, стал инициатором звонка. Если бы наблюдаемый внутренний номер принял входящий вызов, то в значении поля было бы указано “recipient”
  • confirmed – в этом поле указан статус вызова, в этом примере вызов установлен, т.е. принят другой стороной. Если вызов еще не обработан (принят), удаленным абонентом, то в поле было бы указано “early”, а если бы вызов был закончен, то в поле было бы указано “void”
  • in , – в этом поле показано, что внутренний номер 136 вызывает номер 117

После получения сообщения NOTIFY подписчик отправляет в сторону АТС сообщение 200 OK.

200 OK

Отказ от подписки, запрос SUBSCRIBE

IP-телефон (подписчик) отказывается от подписки, отправляя АТС сообщение SUBSCRIBE с параметр 0 в поле Expire.

Отказ от подписки, запрос SUBSCRIBE

Разберем это сообщение:

  • SUBSCRIBE sip:136@10.130.130.4;user=phone SIP/2.0 - сообщение SUBSCRIBE направлено на получение информации по номеру 136, зарегистрированного на АТС c IP адресом 10.130.130.4
  • From: 106@10.130.130.4>;;tag=4fog9tlb9d – это поле содержит информацию о подписчике, номер 106, зарегистрированный на АТС с IP адресом 10.130.130.4
  • Expires: 0 – это поле указывает, что подписчик отказывается от дальнейшего получения информации о внутреннем номере 136. тоесть указывается, что время подписки равно 0

После получения сообщения SUBSCRIBE АТС, отправляет подписчику сообщение 200 OK.

200 OK

Часто встречающиеся ошибки

  • 403 – Forbidden. Сервер не зарегистрировал запрос
  • 423 – Interval to small. Время жизни Expires, указанное в SIP сообщение, очень мало
  • 481 – Подписки не существует
  • 489 – Bad event. Данное событие не поддерживается

Коментарии: