SIP 489 Bad Event: ошибки пакетов подписки SUBSCRIBE и NOTIFY
Отказ в работе сервисных функций IP-телефонов без нарушения базовой голосовой связи:
- Индикаторы кнопок быстрого набора и занятости линий (BLF) светятся серым, мигают красным или не меняют статус.
- Не работает индикатор голосовых сообщений (MWI / Message Waiting Indication).
- В ответ на запрос
SUBSCRIBEилиPUBLISHсервер возвращаетSIP/2.0 489 Bad Event. - В теле ответа присутствует или отсутствует заголовок
Allow-Eventsс перечнем поддерживаемых сервером пакетов событий.
1. Проверка поддерживаемых пакетов событий (Allow-Events)
Захватите ответ 489 и найдите заголовок Allow-Events:
SIP/2.0 489 Bad Event
Via: SIP/2.0/UDP 192.168.1.100:5060;branch=z9hG4bK89a87d
To: <sip:101@pbx.local>;tag=as321
From: <sip:101@pbx.local>;tag=987123
Call-ID: c890b-12345
CSeq: 1 SUBSCRIBE
Allow-Events: dialog, message-summary, presence
Content-Length: 0Если телефон шлет запрос Event: dialog-info, а сервер понимает только dialog (или наоборот), запрос будет отвергнут.
2. Настройка подписок BLF в FreePBX / Asterisk
Убедитесь, что в конфигурации Asterisk включена генерация событий присутствия и диалогов:
; В sip.conf (для старого канала chan_sip):
allowsubscribe=yes
subscribecontext=blf_subscriptions
notifyringing=yes
notifyhold=yes
; В pjsip.conf:
[101]
type=endpoint
allow_subscribe=yes
[101]
type=subscription_persistence3. Конфигурация типа события на телефонных аппаратах (Yealink / Fanvil)
В веб-интерфейсе телефона (раздел Account -> Advanced / Advanced SIP Settings):
- Найдите параметр BLF Event Package.
- Измените значение с
Event: dialogнаEvent: dialog-info(или выберите RFC 4235). - Для MWI убедитесь, что параметр Subscribe for MWI установлен в соответствии с возможностями сервера (в большинстве случаев используется пакет
message-summary).
4. Перезапуск модуля генерации событий в Asterisk
asterisk -rx "module reload res_pjsip_pubsub.so"
asterisk -rx "pjsip show subscriptions" Частые вопросы (FAQ)
Что сообщает код SIP 489 Bad Event?
Этот статус генерируется согласно RFC 6665, если сервер получил запрос SUBSCRIBE, NOTIFY или PUBLISH, содержащий заголовок Event с именем пакета событий, который сервер не понимает или не поддерживает.
Какие пакеты событий являются стандартными для IP-телефонии?
Наиболее распространены: 'presence' (статус пользователя), 'dialog' / 'dialog-info' (состояние телефонной линии для BLF), 'message-summary' (MWI, новые сообщения на автоответчике), 'as-feature-event' (синхронизация DND/Forwarding).
Влияет ли ошибка 489 на совершение обычных звонков?
Нет, ошибка 489 касается исключительно подсистемы событий SIP Event Framework (RFC 6665) и не блокирует прохождение диалогов INVITE для аудио- и видеозвонков.
Почему 489 возникает при интеграции SIP-домофонов?
Многие вызывные панели пытаются подписаться на обновления конфигурации через кастомные события вендора (например, 'cisco-service-control' или 'talk'). Если АТС их не знает, она корректно отвечает 489.