Звонки завершаются с кодом ошибки SIP
Этот перевод выполнен автоматически и ещё не вычитан. Читать английскую версию
Каждый неудачный звонок завершается кодом: SIP-ответом от коммутатора или вендора либо отрицательным внутренним кодом, когда звонок отклонил сам коммутатор. Код показывает, на каком этапе прохождения звонка его остановили, а это подсказывает, какой экран открыть.
Симптом
Заголовок раздела «Симптом»- Абонент слышит короткие гудки или объявление, либо устройство показывает ошибку.
- Call Records (CDRs) (записи о звонках) показывают звонок с красной меткой, например
403,503или-20, в столбце статуса; подсказка содержит описание. - Reports → Calls показывает звонок с Diagnosis (диагноз), например
Rejected before routing: …илиAll 3 vendor attempt(s) failed.
Быстрые проверки
Заголовок раздела «Быстрые проверки»- Откройте звонок в Reports → Calls и прочитайте Diagnosis: там назван этап и последний код.
- Отрицательный код означает, что звонок отклонил коммутатор: найдите его в таблице внутренних кодов ниже.
- Положительный код при наличии Vendor attempts (попытки к вендорам) в карточке звонка пришёл от вендора; без попыток — от коммутатора ещё до маршрутизации.
- Повторите тот же звонок в Tools & Debugs → Test Dialplan с CLI, CLD и удалённым адресом звонка: ошибка там означает проблему конфигурации, успех — что проблема в сети или на стороне вендора.
Причина 1: звонок не аутентифицирован (401, 403, 407)
Заголовок раздела «Причина 1: звонок не аутентифицирован (401, 403, 407)»Как подтвердить: у звонка нет Vendor attempts и нет аккаунта в CDR, либо он виден только в SIP Logs Viewer. 401 и 407 — это запросы digest-учётных данных; устройство, которое получает их постоянно, использует неверный пароль. 403 означает, что ни одно Authentication Rule (правило аутентификации) не совпало с IP-адресом источника и номерами или что два правила совпали одинаково хорошо.
Решение:
- Для зарегистрированного устройства проверьте VoIP Login и VoIP Password аккаунта, а также то, что отмечено Registration Allowed (регистрация разрешена).
- Для транка откройте Authentication Rules аккаунта и сравните Remote IP Address, Incoming CLI/ANI и Incoming CLD/DNIS с INVITE.
- Если устройство отправляет CLI, который отличается от его логина, проверьте Trust Caller Info (доверять данным абонента) в аккаунте.
Смотрите Аутентификация.
Причина 2: коммутатор отклонил звонок (отрицательный код)
Заголовок раздела «Причина 2: коммутатор отклонил звонок (отрицательный код)»Как подтвердить: CDR показывает отрицательный код. Самые распространённые — -20 Insufficient Balance, -14 / -22 No Rate Found, -21 Destination Is Forbidden, -23 Loss Protection и -25 No Routes Found.
Решение: найдите нужный экран по таблице ниже. Денежные коды исправляются через Add Balance (пополнить баланс) или Credit Limit (кредитный лимит), коды ставок — в тарифе аккаунта или реселлера над ним, коды маршрутов — в группе маршрутизации и её маршрутах терминации.
Причина 3: ни один вендор не смог принять звонок (480, 486, 503, 408)
Заголовок раздела «Причина 3: ни один вендор не смог принять звонок (480, 486, 503, 408)»Как подтвердить: карточка звонка содержит Vendor attempts, и все они неудачные. 503 Service Unavailable от всех вендоров обычно означает, что они недоступны или отклоняют ваш IP-адрес; 480 Temporarily Unavailable и 486 Busy Here — обычные ответы о состоянии вызываемого абонента; 408 Request Timeout означает, что вендор не ответил в пределах тайм-аутов.
Решение:
- Откройте Vendors Call Records (записи звонков вендоров) для задействованных вендоров и проверьте, не проходят ли все их звонки или только на эти номера.
- Уменьшите Reply Timeout (тайм-аут ответа) на подключениях, которые не отвечают, чтобы следующий вендор пробовался раньше; добавьте в группу маршрутизации второго вендора для резервирования.
- Добавьте коды типа «занято», например
486, в Huntstop SIP Codes подключения, чтобы занятого абонента не пробовали повторно через всех остальных вендоров.
Смотрите Маршрутизация и Тайм-ауты звонков.
Причина 4: не удаётся согласовать медиа (488, -5, -7, -43)
Заголовок раздела «Причина 4: не удаётся согласовать медиа (488, -5, -7, -43)»Как подтвердить: код 488 Not Acceptable Here, -7 Unacceptable Codec, -5 Malformed SDP или -43 Media Relay Error. SDP Records в Call Details (детали звонка) показывают предложенные кодеки.
Решение: согласуйте Preferred Codec (предпочтительный кодек) аккаунта с тем, что принимает вендор, или снимите Use Preferred Codec Only (только предпочтительный кодек); проверьте Use Media Relay (использовать медиа-реле) в подключении. Смотрите Управление кодеками.
Причина 5: достигнут лимит (-4, -16, -18, -19, -26, -31 до -34)
Заголовок раздела «Причина 5: достигнут лимит (-4, -16, -18, -19, -26, -31 до -34)»Как подтвердить: в описании назван лимит Capacity, Max Sessions или CPS аккаунта, клиента, правила аутентификации, подключения или всей системы.
Решение: повысьте лимит на объекте, названном в описании, или распределите трафик на большее число подключений. Системный лимит CPS задаётся для инсталляции; обратитесь в поддержку.
Коды ответов SIP
Заголовок раздела «Коды ответов SIP»Коды 1xx — промежуточные, 2xx — успех, 3xx — перенаправление, 4xx — ошибки запроса, 5xx — ошибки сервера, 6xx — глобальные сбои, которые нельзя повторять в другом месте.
| Код | Значение | Обычная причина в FlySIP |
|---|---|---|
100 Trying |
Запрос получен | Действует только между соседними узлами; никогда не пересылается дальше |
180 Ringing, 183 Session Progress |
Абонента вызывают; раннее медиа | Обычный ход звонка; их получение останавливает 1xx Timeout |
200 OK |
Звонок принят | Норма |
301, 302, 305, 380 |
Перенаправление на другой адрес | Выполняется только с Accept 3xx Redirects в подключении |
400 Bad Request |
Некорректный запрос | Устройство или вендор отправляет повреждённые заголовки |
401 Unauthorized, 407 Proxy Authentication Required |
Нужны учётные данные | Digest-запрос; если повторяется — неверный пароль |
403 Forbidden |
Отказано | Нет совпадающего правила аутентификации, аккаунт заблокирован или вендор отклоняет ваш IP-адрес |
404 Not Found |
Неизвестное направление | DID не настроен, нераспределённый номер в диапазоне DID или вендор без этого маршрута |
408 Request Timeout |
Нет окончательного ответа вовремя | Вендор не ответил в пределах тайм-аутов |
480 Temporarily Unavailable |
Абонент недоступен | Незарегистрированное устройство, нет ответа на другом конце |
484 Address Incomplete |
Номер слишком короткий | Набранный номер неполный; соответствует -24 |
486 Busy Here, 600 Busy Everywhere |
Занято | Норма; кандидаты для Huntstop SIP Codes |
487 Request Terminated |
Отменено | Абонент положил трубку до ответа |
488 Not Acceptable Here |
Медиа неприемлемо | Несоответствие кодеков или SDP |
500 Server Internal Error |
Ошибка сервера | Сбой на стороне вендора или другого конца |
502 Bad Gateway, 503 Service Unavailable |
Шлюз недоступен или перегружен | Сбой или нехватка ёмкости у вендора; попробуйте другого вендора |
603 Decline |
Отклонено вызываемым абонентом | Норма |
Внутренние коды
Заголовок раздела «Внутренние коды»Коммутатор записывает отрицательные коды, когда сам отклоняет звонок. Описание отображается в подсказке CDR, в Call Details и в фильтре Result (результат).
| Код | Описание | Где смотреть |
|---|---|---|
-1 |
External Translator Rejected The Call | Rules & Lists |
-2, -5, -6 |
Body-less INVITE, Malformed SDP, Unsupported Content-Type | Звонящее устройство |
-3 |
Account Expired | Lifetime (days) аккаунта |
-4 |
Connection Capacity Exceeded | Capacity подключения |
-7 |
Unacceptable Codec | Кодеки аккаунта и вендора |
-8 до -11, -13, -27, -29, -35, -36 |
Некорректное правило трансляции в правиле аутентификации, аккаунте, DID или правиле после аутентификации | Правило, названное в описании; проверьте его синтаксис |
-12 |
Cannot Find The Session To Bind To | Перевод или перехват звонка на уже завершившуюся сессию |
-14 |
No Rate Found In Tariff | Ставки тарифа аккаунта |
-15 |
Call Loop Detected | Маршрутизация, которая возвращает звонок обратно на коммутатор |
-16, -32, -34 |
Too Many Sessions для аккаунта, клиента или правила аутентификации | Max Sessions этого объекта |
-17 |
Account Is In Use | Аккаунт допускает только один звонок одновременно |
-18, -19, -26, -31, -33 |
Лимит CPS на аккаунте, системе, подключении, клиенте или правиле аутентификации | Max Calls Per Second этого объекта |
-20 |
Insufficient Balance | Balance и Credit Limit аккаунта и каждого клиента над ним |
-21 |
Destination Is Forbidden | Ставка с отметкой Forbidden |
-22 |
No Rate Found In Customer’s Tariff | Ставки тарифа реселлера над аккаунтом |
-23 |
Loss Protection | Max Loss тарифа; цена вендора выше вашей |
-24 |
Address Is Incomplete | Номер слишком короткий |
-25 |
No Routes Found | Маршруты терминации в группе маршрутизации аккаунта |
-28, -37 |
CLD or CLI is in the Do Not Call List | DNC List, DNC CLI List |
-30 |
Call has been canceled by calling party | Абонент положил трубку |
-40 |
Anonymity Disallowed | Block Incoming Anonymous в аккаунте |
-41, -44, -45 |
STIR/SHAKEN verification failed, Identity Required, Authentication failed | SIP Features → STIR/SHAKEN |
-42, -43 |
Internal Server Error, Media Relay Error | Обратитесь в поддержку с Call-ID |
Изменение кода, который получают ваши клиенты
Заголовок раздела «Изменение кода, который получают ваши клиенты»Tools & Debugs → Result Code Internal сопоставляет внутренний код с SIP-кодом и причиной, которые отправляются абоненту; Result Code External сопоставляет коды, полученные от вендоров, при необходимости отдельно для каждого Account Class (класс аккаунта). Каждая запись имеет In Code, Out Code и Reason. Используйте их, когда оборудование клиента плохо реагирует на определённый код, например чтобы возвращать 503 вместо -20 и коммутатор клиента пробовал другого оператора.
Всё ещё не работает?
Заголовок раздела «Всё ещё не работает?»Соберите следующую информацию и создайте обращение на support.flysip.com:
- Call-ID, время звонка и код.
- Имена аккаунта и клиента, CLI и CLD.
- SIP-лог звонка из SIP Logs Viewer. Смотрите Звонок не прошёл, и CDR не объясняет почему.