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

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

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

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

SIP ошибка 400 Bad Request на IP-телефоне: причины и исправление

Обновлено: 26.08.2026 · Официальная документация ↗
  • При попытке набрать номер на экране IP-телефона появляется надпись 400 Bad Request.
  • В трубке раздаются частые короткие гудки ошибки сразу после нажатия кнопки вызова.
  • В логах АТС Asterisk регистрируется статус ответа SIP/2.0 400 Bad Request (Unable to parse SIP message).

1. Что означает ошибка SIP 400 Bad Request

Код ответа 400 Bad Request (Неверный запрос) означает, что телефон отправил серверу АТС (или провайдеру) SIP-пакет с синтаксической ошибкой, которую сервер не может прочитать и обработать. Это не поломка оборудования, а ошибка в настройках или в набранном номере.

2. Главные причины появления ошибки 400

  1. Недопустимые символы в набранном номере: В номере присутствуют пробелы, скобки, тире или русские буквы (например, скопированный номер из базы +7 (495) 123-45-67).
  2. Кириллица в поле CallerID / Display Name: В настройках телефона имя сотрудника написано русскими буквами (например, «Иван Иванов»), а сервер АТС не поддерживает кодировку UTF-8 в заголовках SIP.
  3. Слишком длинный SIP-заголовок (превышение MTU): В запрос включено слишком много поддерживаемых кодеков или громоздких заголовков, из-за чего размер UDP-пакета превысил 1500 байт и был поврежден при фрагментации.
  4. Неправильный SIP URI / Port: В настройках телефона указан неверный домен или порт назначения (например, пропущен символ @).

3. Пошаговый план устранения ошибки

  1. Проверьте имя учетной записи (CallerID): Откройте веб-интерфейс телефона, зайдите в настройки аккаунта и временно замените русское имя в поле Display Name на латиницу (например, Ivan Ivanov или просто номер 101).
  2. Настройте план набора (Dial Plan): Убедитесь, что телефон автоматически очищает номер от скобок и плюсов. В настройках Dial Plan телефона укажите стандартную маску: [x*#]+.
  3. Уменьшите список кодеков: В меню Account → Codec отключите все неиспользуемые кодеки, оставив только PCMA (alaw) и G.729. Это сократит размер пакета INVITE в несколько раз.
  4. Переключите транспорт с UDP на TCP: Если заголовки слишком большие, в настройках аккаунта измените Transport с UDP на TCP (при условии поддержки на стороне АТС).
💡 Практика специалистов: В 80% случаев ошибка 400 на бюджетных телефонах вызвана попыткой написать имя абонента кириллицей в поле Display Name. Замените русские буквы на транслит в настройках аккаунта — и телефон сразу начнет звонить.

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

Почему ошибка 400 возникает только при наборе внешних номеров через восьмерку?

Вероятно, в правилах исходящей маршрутизации (Outbound Routes) на АТС настроен жесткий шаблон набора (например, шаблон ожидает строго 11 цифр 7XXXXXXXXXX, а телефон отправляет 8XXXXXXXXXX без модификации префикса).

Может ли роутер быть причиной появления 400 Bad Request?

Да. Если на роутере включен кривой SIP ALG, он может исказить заголовки Via, Contact или Content-Length, превратив корректный SIP-запрос в невалидный с точки зрения сервера мусор.

Чем отличается ошибка 400 от ошибки 404?

400 Bad Request означает поврежденный или некорректно оформленный запрос, а 404 Not Found означает, что запрос понятен, но набранный номер или учетная запись не существуют на сервере.

Как увидеть тело некорректного SIP-пакета для точной диагностики?

В консоли Asterisk CLI выполните команду 'pjsip set logger on' (или 'sip set debug on') и сделайте звонок. В консоли отобразится точный текст отклоненного пакета с указанием проблемной строки.

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