Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

SIP_502_BAD_GATEWAY IP-Телефония и СКУД

SIP 502 Bad Gateway: недоступность вышестоящего шлюза и транков PSTN

Обновлено: 24.08.2026 · Официальная документация ↗

Сбой вызовов на внешние городские и мобильные направления через операторов связи:

  • При попытке звонка во внешнюю сеть абонент получает ответ SIP/2.0 502 Bad Gateway.
  • Промежуточный сервер (SBC или прокси) не смог получить корректный ответ от целевого медиашлюза или вышестоящей телефонной сети (PSTN/ТфОП).
  • В логах цифрового шлюза E1/ISDN PRI регистрируются аварии физического уровня: Red Alarm, Yellow Alarm, Loss of Signal (LOS).
  • Вышестоящий транзитный узел возвращает некорректный ответ (Invalid Response) или сбрасывает TCP/TLS соединение.

1. Проверка доступности вышестоящего шлюза / SBC

Проверьте сетевую связность и задержки до вышестоящего SIP-сервера:

ping -c 5 <IP_upstream_шлюза>
# Проверка прохождения SIP пакетов:
asterisk -rx "pjsip show endpoints" | grep -E "trunk|outbound"

2. Диагностика E1 / T1 PRI потоков на медиашлюзах

Если 502 генерируется шлюзом цифровых потоков (например, шлюзом Dinstar, Cisco или платой Digium/Sangoma):

# Для плат DAHDI в Linux:
dahdi_scan
dahdi_tool
asterisk -rx "pri show spans"

Убедитесь, что состояние потока находится в статусе Up, Active. При наличии Alarm проверьте кабель распиновки RJ-48 (витая пара 1-2 и 4-5) и согласование синхронизации (Master/Slave Clocking).

3. Анализ таймаутов прокси-сервера (Kamailio / OpenSIPS)

Если Kamailio выступает в роли балансировщика и не получает ответ от downstream серверов:

failure_route[FAIL_GW] {
    if (t_check_status("502|503")) {
        # Переключение на резервный транк оператора
        if (use_next_gw()) {
            t_relay();
            exit;
        } else {
            t_reply("502", "All Upstream Gateways Failed");
            exit;
        }
    }
}

4. Настройка Failover маршрутов в диалплане FreePBX

В веб-интерфейсе FreePBX (Connectivity -> Outbound Routes) добавьте несколько транков в список Trunk Sequence for Matched Routes. Если основной провайдер вернет 502, АТС автоматически направит вызов через резервный канал.

💡 Практика специалистов: При получении 502 от SIP-транка оператора всегда снимайте дамп sngrep со своей стороны: часто операторы отдают 502, если вы отправляете неверный формат CallerID в заголовке From или P-Asserted-Identity.

Частые вопросы (FAQ)

В чем разница между SIP 502 Bad Gateway и SIP 504 Server Time-out?

Код 502 означает, что вышестоящий сервер ответил, но прислал недопустимый или ошибочный ответ (Invalid/Bogus response), либо сообщил о физической недоступности своей сети. Код 504 означает полное отсутствие какого-либо ответа по таймауту.

Может ли DNS-сбой вызывать ошибку 502?

Да, если прокси-сервер пытается смаршрутизировать вызов на доменное имя оператора по SRV/NAPTR записям, но DNS возвращает некорректный хост или несуществующий IP-адрес.

Что означает 502 при звонках на аналоговые FXO шлюзы?

Это указывает на то, что шлюз зафиксировал обрыв физической телефонной линии (Line Unplugged / No Loop Current) и не может занять транк для набора номера.

Как перехватить 502 в диалплане Asterisk?

Используйте проверку переменной ${HANGUPCAUSE}: same => n,GotoIf($["${HANGUPCAUSE}" = "38"]?try_backup_trunk). (Код ISDN Cause 38 соответствует Network out of order / Bad Gateway).

Полезные материалы
Рекомендуем