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

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

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

BYE / 408 IP-Телефония и СКУД

Обрыв связи в Softphone.Pro: тайм-аут Session-Expires (RFC 4028)

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

Архитектура SIP сессий и симптомы обрыва

Проблема, когда звонок в софтфоне Softphone.Pro (или любом другом SIP-клиенте) обрывается ровно через определенный промежуток времени (чаще всего 15 или 30 минут), связана с механизмом SIP Session Timers (RFC 4028). Этот таймер используется SIP-сервером (PBX) для проверки, жив ли клиент. Если клиент за NAT не отвечает на Re-INVITE или UPDATE запросы от сервера из-за закрытия UDP-порта маршрутизатором, сервер считает сессию мертвой и отправляет пакет BYE. Бизнес-риски: обрыв важных переговоров, потеря клиентов колл-центра, искажение статистики CDR.

Анализ SIP-дампа при обрыве

Тип пакетаНаправлениеПричина возникновения
Re-INVITE / UPDATEPBX -> SoftphoneСервер запрашивает подтверждение сессии по истечении половины тайм-аута (например, через 900 сек).
408 Request TimeoutPBX (Внутренний лог)Клиент не ответил на Re-INVITE, так как NAT-маршрутизатор закрыл UDP-трансляцию.
BYEPBX -> SoftphoneСервер принудительно завершает диалог.

Устранение обрывов (Настройка Softphone.Pro и АТС)

Сценарий 1: Настройка Keep-Alive в Softphone.Pro

Чтобы NAT-маршрутизатор не закрывал порт, клиент должен регулярно отправлять «пинги».

  1. Откройте Softphone.Pro, перейдите в Настройки -> Учетные записи SIP.
  2. Выберите нужный аккаунт и перейдите на вкладку Дополнительные.
  3. Включите опцию Поддерживать NAT соединение (Keep-Alive).
  4. Установите интервал 20 или 30 секунд.
  5. Убедитесь, что протокол транспорта (Transport) установлен на TCP, если это поддерживает ваша АТС (TCP-сессии NAT держит дольше, чем UDP).

Сценарий 2: Отключение/Изменение Session-Timers в Asterisk (PJSIP)

Если проблема массовая, проще скорректировать настройки на стороне АТС.

 Настройка эндпоинта PJSIP (pjsip.conf)
[endpoint_name]
timers = no ; Полное отключение таймеров сессии (не рекомендуется для публичных сетей)
; ИЛИ увеличение тайм-аутов
timers = yes
timers_sess_expires = 3600 ; Тайм-аут 1 час
timers_min_se = 90 ; Минимальный порог

Типовые ошибки администраторов

  • Использование STUN при локальном подключении: Включение STUN-сервера при нахождении софтфона и АТС в одной локальной сети или VPN приводит к подмене локального IP на внешний, ломая маршрутизацию RTP и ломая таймеры.
  • Игнорирование ALG на роутерах: Функция SIP ALG на роутерах Mikrotik (SIP Helper) или TP-Link модифицирует заголовки Contact, что часто ломает маршрутизацию Re-INVITE. SIP ALG нужно отключать.
Звонки в колл-центре продолжают обрываться?
Траблшутинг SIP-протокола за NAT требует анализа дампов трафика (PCAP). Инженеры ITSTM настроят SBC (Session Border Controller), оптимизируют PJSIP/SIP профили и обеспечат 100% стабильность связи для ваших операторов.
💡 Практика специалистов: Практика ITSTM: Если используется FreePBX, перейдите в Settings -> Asterisk SIP Settings -> PJSIP Settings. Найдите параметр Session Timers. По умолчанию он 'Accept'. Для проблемных удаленных клиентов за NAT иногда безопаснее выставить 'Refuse', чтобы АТС вообще не использовала RFC 4028 с этим транком.

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

Почему звонок обрывается ровно через 15 минут?

По умолчанию параметр Session-Expires в Asterisk часто равен 1800 секундам. Проверка сессии (Re-INVITE) инициируется на половине этого времени (900 секунд = 15 минут). Если ответа нет, звонок рвется.

Поможет ли переход с UDP на TCP решить проблему?

Да, в 90% случаев. Маршрутизаторы закрывают трансляции UDP портов при отсутствии трафика (даже при наличии RTP) очень быстро (30-60 сек). TCP-соединения NAT-таблицы держат от 15 минут до нескольких часов.

Как проверить, отправляет ли АТС Re-INVITE?

В консоли Asterisk выполните команду 'pjsip set logger on' и совершите тестовый звонок. Наблюдайте за SIP-сообщениями в логе в момент обрыва.

Нужно ли включать ICE в софтфоне?

Interactive Connectivity Establishment (ICE) полезно использовать, если ваш сервер (PBX) также корректно настроен на поддержку ICE. Иначе это просто добавит лишние SDP-кандидаты в пакет INVITE, что может вызвать ошибки парсинга на старых АТС.

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