Занятое ламповое поле (BLF)

  1. Как это работает?
  2. Процесс подписки
  3. Процесс уведомления
  4. Процесс отмены подписки
  5. Распространенные коды ошибок подписки на события.

Busy Lamp Field (BLF) - это индикатор на IP-телефоне, который сообщает вам, занят ли другой добавочный номер, подключенный к той же УАТС, или нет Busy Lamp Field (BLF) - это индикатор на IP-телефоне, который сообщает вам, занят ли другой добавочный номер, подключенный к той же УАТС, или нет. Это должно быть настроено вручную от пользователя телефона, и обычно это делается с использованием веб-интерфейса. Когда настроено, телефон подписывается на список ресурсов, доступных на IP-АТС получать уведомления с такой информацией о других расширениях. BLF работает через ГЛОТОК протокол с использованием сообщений ПОДПИСАТЬСЯ и УВЕДОМИТЬ. В обычном сценарии телефон является абонентом, а IP-АТС является уведомителем.

Как это работает?

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

Процесс подписки

В этом сценарии у нас есть телефон, который настроен для регистрации в УАТС по добавочному номеру 106 . Ниже приведен пример захвата SUBSCRIBE SIP- сообщения этого телефона при подписке на уведомление о статусе добавочного номера 136 . Обратите внимание, что образец был сокращен для целей документирования.

ПОДПИСЫВАЙТЕ sip: [email protected]; пользователь = телефон SIP / 2.0
Через: SIP / 2.0 / UDP 10.130.130.58:2051;branch=z9hG4bK-0u81ot32wxh9;rport
От: <sip: [email protected]>; tag = 4fog9tlb9d
Кому: <sip: [email protected]; пользователь = телефон>
Call-ID: qov573
CSeq: 2 ПОДПИСАТЬСЯ
Макс-Форвардс: 70
Контакт: <sip: [email protected]: 2051; строка = 1ofdyu7v>; идентификатор потока = 1
Событие: диалог
Принять: application / dialog-info + xml
Истекает: 3600
Длина контента: 0

Из приведенного выше примера видно, что:

  1. ПОДПИСАТЬСЯ sip: [email protected]; пользователь = телефон SIP / 2.0 - SIP-сообщение SUBSCRIBE, отправленное на добавочный номер монитора 136, зарегистрированный на IP-АТС 10.130.130.4.
  2. От: <sip: [email protected]> - Абонент, в данном случае добавочный номер 106, зарегистрирован на IP PBX 10.130.130.4.
  3. Accept: application / dialog-info + xml - Приложение будет принимать диалоговое окно в формате XML.
  4. Истекает: 3600 - Заголовок Истекает, где указана продолжительность подписки в секундах. Поэтому в любое время до 3600 секунд подписчик должен отправить сообщение SUBSCRIBE SIP, используя тот же заголовок события и параметр ID, чтобы обновить подписку. Обратите внимание, что сервер IP-УАТС может ответить обратно с более коротким тайм-аутом истечения, но не может удлинить тайм-аут.
  5. Content-Length: 0 - указывает, что к этому пакету SIP не прикреплено тело сообщения XML.

Как только сообщение SUBSCRIBE SIP получено от сервера IP PBX и успешно обработано, сообщение 200 SIP OK отправляется обратно абоненту, как показано в примере ниже.

SIP / 2.0 200 OK
Через: SIP / 2.0 / UDP 10.130.130.58:2051;branch=z9hG4bK-0u81ot32wxh9;rport=2051
Контакт: <sip: [email protected]; пользователь = телефон>
Кому: <sip: [email protected]; пользователь = телефон>; тег = 9e6f1e0e
От: <sip: [email protected]>; tag = 4fog9tlb9d
Call-ID: 3c491603553e-z27emqqov573
CSeq: 2 ПОДПИСАТЬСЯ
Истекает: 3600
Длина контента: 0

Процесс уведомления

Приведенный ниже пример показывает, как отслеживаемое расширение меняет статус. SIP- сообщение NOTFIY, включающее в себя тело XML, отправляется подписчику, информирующему абонента о статусе отслеживаемого добавочного номера. Обратите внимание, что образец был сокращен для целей документирования.

УВЕДОМЛЕНИЕ sip: [email protected]: 2051; линия = 1ofdyu7v SIP / 2.0 Через: SIP / 2.0 / UDP 10.130.130.4:5060; Контакт: <[email protected]; пользователь = телефон>
Кому: <sip: [email protected]>; tag = 4fog9tlb9d From: <sip: [email protected]; user = phone>; tag = 9e6f1e0e Call-ID: 3c491603553e-z27emqqov573 CSeq: 5 NOTIFY Тип содержимого: приложение / dialog-info + xml Subscription-State: active; expires = 3521 Событие: dialog Content-Length: 507 <? xml version == ”1.0 encoding =” UTF-8 ″?>
<dialog-info xmlns = ”urn: ietf: params: xml: ns: dialog-info” entity = ”sip: [email protected]; пользователь = телефон”> <идентификатор диалога = ”0000145 ″ call-id = cfd5aad5a5bea3be @ 10.130.130.42 local-tag = ”7ad7d2e7c1f3d62b” direction = ”инициатор”> <состояние> подтверждено </ state> <local> <identity> sip: [email protected] <target uri = ”sip: [email protected] ″ /> </ local> <remote> <identity> sip: [email protected] <target uri = ”sip: [email protected] ″ /> </ remote> </ dialog> </ dialog-info>

Из приведенного выше примера видно, что:

  1. NOTIFY sip: [email protected]: 2051; строка = 1ofdyu7v SIP / 2.0 - из этой строки видно, что это уведомление SIP, отправленное на добавочный номер 106, которое можно найти по IP 10.130.130.58.
  2. Subscription-State: active; expires = 3521 - Здесь указывается состояние подписки и количество секунд, оставшихся до истечения срока подписки.
  3. Content-Length: 507 - Размер тела сообщения XML в байтах, прикрепленного к этому сообщению SIF NOTIFY.
  4. entity = ”sip: [email protected]; user = phone” - отслеживаемое расширение указывается в теле сообщения XML.
  5. direction = ”initiator” - отслеживаемый добавочный номер начинает вызов в этом примере. Если отслеживаемый внутренний номер принимает вызов, направление будет установлено как «получатель».
  6. <состояние> подтверждено </ состояние> - статус вызова, в данном примере вызов был установлен. Если телефон все еще звонит, состояние будет установлено как «ранний», а если вызов будет прерван, состояние будет установлено как «void».
  7. в <remote>, <target uri = ”sip: [email protected] ″ /> - удаленный объект SIP, на который вызывает добавочный номер 136, в данном примере добавочный номер 117. Если отслеживаемый добавочный номер принимает вызов, удаленный добавочный номер будет звонить.

Как только SIP- сообщение NOTIFY получено от подписчика, он отправляет обратно SIP- сообщение 200 OK в уведомитель, как показано в примере ниже.

SIP / 2.0 200 Ok Через: SIP / 2.0 / UDP 10.130.130.4:5060;branch=z9hG4bK-d87543-1--d87543-;rport=5060 От: <sip: [email protected]; пользователь = телефон>; тег = 293c7668 Кому: <sip: [email protected]>; tag = mbkzgdctp5 Идентификатор вызова: 3c4916034968-2luuodukzci4 CSeq: 5 УВЕДОМЛЕНИЕ Длина контента: 0

Процесс отмены подписки

Ниже приведен пример сообщения SUBSCRIBE SIP, отправленного подписчиком уведомителю для отказа от подписки на ресурс. Единственная разница между сообщениями SUBSCRIBE и UNSUBSCRIBE SIP заключается в том, что при отмене подписки заголовок Expire устанавливается в 0 .

ПОДПИСЫВАЙТЕ sip: [email protected]; пользователь = телефон SIP / 2.0
Через: SIP / 2.0 / UDP 10.130.130.58:2051;branch=z9hG4bK-dg2jd5f8nd0p;rport
От: <sip: [email protected]>; tag = 4fog9tlb9d
Кому: <sip: [email protected]; пользователь = телефон>; тег = 9e6f1e0e
Call-ID: 3c491603553e-z27emqqov573
CSeq: 4 ПОДПИСАТЬСЯ
Макс-Форвардс: 70
Контакт: <sip: [email protected]: 2051; строка = 1ofdyu7v>; идентификатор потока = 1
Событие: диалог
Принять: application / dialog-info + xml
Истекает: 0
Длина контента: 0

Из приведенного выше примера видно, что:

  1. ПОДПИСАТЬСЯ sip: [email protected]; пользователь = телефон SIP / 2.0 - в этой строке мы видим, что сообщение SIP является сообщением ПОДПИСАТЬСЯ и что отслеживаемый добавочный номер 136 зарегистрирован на IP PBX 10.130.130.4
  2. From: <sip: [email protected]>; tag = 4fog9tlb9d - абонент, в данном примере добавочный номер 106, зарегистрирован для IP PBX 10.130.130.4.
  3. Срок действия истекает: 0 - указывает IP-УАТС, на которую подписчик отписывается от ресурса.

Как только сообщение SUBSCRIBE SIP получено и успешно обработано с IP-УАТС, сообщение 200 SIP отправляется обратно абоненту, как показано в примере ниже.

SIP / 2.0 200 OK Через: SIP / 2.0 / UDP 10.130.130.58:2051;branch=z9hG4bK-dg2jd5f8nd0p;rport=2051 Контакт: <sip: [email protected]; пользователь = телефон>
Кому: <sip: [email protected]; пользователь = телефон>; тег = 9e6f1e0e От: <sip: [email protected]>; tag = 4fog9tlb9d Идентификатор вызова: 3c491603553e-z27emqqov573 CSeq: 4 SUBSCRIBE Истекает: 0 Содержимое Длина: 0

Распространенные коды ошибок подписки на события.

  • 403 - Запрещено. Сервер не авторизовал запрос.
  • 423 - Интервал для малого. Значение Expires, указанное в сообщении SIP, слишком короткое.
  • 481 - Подписка не существует.
  • 489 - Плохое событие. Обозначенный пакет событий не поддерживается.

Как это работает?
Как это работает?
? encoding =” UTF-8 ″?