SIP Error 429 Provide Referrer Identity: траблшутинг трансфера вызовов (RFC 3892)
- Сбой при попытке слепого (Blind) или консультативного (Attended) перевода вызова с кодом
SIP/2.0 429 Provide Referrer Identity. - Запрос
REFERотклоняется сервером, в результате чего абонент не перенаправляется и остается на удержании (On-Hold). - В логах маршрутизации регистрируется отсутствие или невалидность токена
Referred-By.
1. Анализ запроса REFER в соответствии с RFC 3892
Найдите транзакцию перевода звонка в дампе трафика:
REFER sip:callee@pbx.local SIP/2.0
Refer-To: <sip:102@pbx.local>
# Отсутствует заголовок Referred-By или передан без криптографического токена безопасностиОшибка 429 генерируется узлом, когда политика безопасности запрещает безусловный перевод звонка без подтверждения личности инициатора перевода через заголовок Referred-By.
2. Настройка обработки REFER в Asterisk
Если софтсвитч не требует обязательной аутентификации инициатора перевода, разрешите локальную обработку трансфера в pjsip.conf:
[endpoint-internal]
type=endpoint
allow_transfer=yes
# Разрешить АТС самой выполнять ре-маршрутизацию без требования Referred-By подписи
refer_blind_progress=yes3. Конфигурация FreeSWITCH для вставки Referred-By
В диалплане или настройках профиля включите генерацию валидного идентификатора инициатора:
<action application="set" data="sip_refer_referred_by=<sip:${user_name}@${domain_name}>"/>
<action application="transfer" data="${destination_number}"/>4. Исправление настроек на IP-телефонах (Cisco / Yealink)
В параметрах телефона переключите режим трансфера:
- Если сервер не поддерживает внешние REFER, включите Local Transfer (перевод через создание второго канала силами телефона) вместо Server-based Transfer (SIP REFER).
- Активируйте опцию Send Referred-By Header -> Enabled.
Частые вопросы (FAQ)
Какую роль выполняет заголовок Referred-By по RFC 3892?
Он удостоверяет личность абонента, инициировавшего перевод звонка, чтобы принимающая сторона знала, кто именно выполнил переадресацию, и могла применить правила авторизации.
Как обойти ошибку 429, если софтсвитч не поддерживает REFER?
Настройте IP-телефоны на выполнение трансфера средствами встроенных функций PBX (DTMF feature codes, например *2 для Asterisk), не отправляя SIP-метод REFER.
Может ли заголовок Referred-By содержать цифровую подпись?
Да, RFC 3892 предусматривает возможность включения S/MIME сигнатуры (Referrer-Identity) для гарантированной защиты от подделки инициатора трансфера.
В чем разница между слепым переводом и консультативным при обработке 429?
При слепом переводе (Blind Transfer) запрос REFER отправляется сразу. При консультативном (Attended) сначала устанавливается второй диалог, и в Refer-To передается заголовок Replaces, что снижает вероятность получения 429 на многих АТС.