SIP 501 Not Implemented: неподдерживаемые SIP-методы и заголовок Allow
Отказ сервера или шлюза выполнять специфические команды телефонии:
- Клиент получает ответ
SIP/2.0 501 Not Implemented. - Сбои при попытке перевода вызова методом
REFER, отправке текстовых сообщенийMESSAGEили обновлении параметров черезUPDATE. - В ответе 501 отсутствует или не содержит запрошенного метода заголовок
Allow. - Проблема часто наблюдается при сопряжении современных IP-АТС со старыми цифровыми/аналоговыми VoIP-шлюзами.
1. Проверка заголовка Allow в ответе сервера
Захватите пакет OPTIONS или ответ 501 для анализа списка поддерживаемых методов:
SIP/2.0 501 Not Implemented
Via: SIP/2.0/UDP 192.168.1.50:5060;branch=z9hG4bK8834
To: <sip:100@pbx.local>;tag=654
From: <sip:200@pbx.local>;tag=123
Call-ID: df83-12a-3
CSeq: 102 UPDATE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE
Content-Length: 0В данном примере сервер поддерживает только базовые методы и не умеет обрабатывать UPDATE.
2. Отключение неподдерживаемых методов в PJSIP (Asterisk)
Если шлюз или оператор возвращает 501 на запросы обновления сессии (Session Timers) через UPDATE, переключите метод на re-INVITE:
[gateway_endpoint]
type=endpoint
context=from-trunk
session_refresh_method=invite ; Использовать INVITE вместо UPDATE
timers=yes3. Настройка методов перевода вызова (Transfer)
Если шлюз не поддерживает метод REFER для слепого или консультативного перевода:
- Настройте выполнение перевода силами самой АТС (In-band DTMF Features) вместо SIP REFER.
- В
features.confактивируйте встроенные коды перевода:
[featuremap]
blindxfer => ##
atxfer => *2В диалплане добавьте опции t и T в команду Dial():
exten => _X.,1,Dial(PJSIP/${EXTEN}@trunk,30,tT)4. Корректировка работы с методом INFO (DTMF)
Если ошибка 501 возникает при нажатии кнопок в IVR, переключите режим передачи DTMF с SIP INFO на RFC 4733 / RFC 2833:
[my_endpoint]
type=endpoint
dtmf_mode=rfc4733 Частые вопросы (FAQ)
Что означает статус SIP 501 Not Implemented?
Согласно RFC 3261, статус 501 сообщает, что сервер или терминал не поддерживает функциональность, необходимую для выполнения полученного SIP-метода (например, сервер не знает, как обрабатывать PUBLISH или PRACK).
Обязан ли сервер реализовывать все методы стандарта SIP?
Нет. Базовый RFC 3261 требует обязательной поддержки только ключевых методов: INVITE, ACK, CANCEL, BYE, OPTIONS. Такие методы как REFER, SUBSCRIBE, NOTIFY, UPDATE, INFO определены отдельными расширениями и могут отсутствовать.
Почему при отправке SMS через софтфон приходит 501?
Это означает, что софтфон использует метод MESSAGE (RFC 3428), который не включен или не поддерживается в конфигурации вашей АТС.
Как проверить, какие методы поддерживает оборудование удаленной стороны?
Отправьте запрос SIP OPTIONS на адрес устройства с помощью утилиты sipsak: sipsak -v -s sip:target@ip_address. В ответе 200 OK изучите поле Allow.