SIP 402
IP-Телефония и СКУД
SIP Error 402 Payment Required: причины и разблокировка транка
- Исходящие звонки на внешние номера мгновенно сбрасываются с кодом
SIP/2.0 402 Payment Required. - Внутрисетевые вызовы между внутренними номерами продолжают работать штатно.
- В логах биллинга оператора фиксируется нулевой баланс или превышение кредитного лимита.
1. Локализация источника ошибки через sip trace
sngrep -c "402 Payment Required"В теле ответа проверьте IP-адрес отправителя: ошибку 402 всегда генерирует SBC оператора связи или локальный биллинговый модуль (например, Asterisk Billing / FreePBX Prepaid Module).
2. Проверка состояния учетной записи оператора
- Проверьте текущий финансовый баланс в личном кабинете SIP-провайдера.
- Убедитесь, что направление вызова (междугородняя связь / международная связь) открыто в тарифном плане.
- Проверьте установленный лимит одновременных каналов (CPS / Concurrent Calls).
3. Настройка резервного транка (Failover Trunk) в FreePBX / Asterisk
Добавьте автоматическое переключение на запасного провайдера при получении ошибки 402 в extensions_override_freepbx.conf:
[macro-dialout-trunk-predial-hook]
exten => s,1,Set(HANGUPCAUSE_KEYS=402)
exten => s,n,Return()
Практический опыт инженера:
Настройте мониторинг баланса через API оператора в Prometheus/Zabbix, чтобы получать оповещения до того, как транк будет заблокирован по SIP 402.
Частые вопросы (FAQ)
Может ли АТС самостоятельно генерировать SIP 402?
Только если на ней развернут модуль биллинга или предоплатной тарификации (A2Billing, ASTPP, CGRates). В 99% случаев код 402 возвращается вышестоящим оператором связи.
Что делать, если баланс пополнен, но 402 сохраняется?
Многие операторы кэшируют статус блокировки на уровне пограничных контроллеров сессий (SBC). Выполните перерегистрацию транка: `asterisk -rx 'pjsip send register <trunk_name>'`.