sip 401 unauthorized что такое
SIP ответы и их значения
1xx – информационные ответы
SIP/2.0 100 Trying
Запрос обрабатывается.
SIP/2.0 180 Ringing
Местоположение вызываемого пользователя определено. Выдан сигнал о входящем вызове.
SIP/2.0 181 Call is Being Forwarded
Прокси-сервер переадресует вызов к другому пользователю.
SIP/2.0 182 Call is Queued
Вызываемый абонент временно не доступен. вызов поставлен в очередь.
SIP/2.0 183 Session Progress
Используется для того, чтобы заранее получить описание сеанса информационного обмена от шлюзов на пути к вызываемому пользователю.
2xx – ответы о завершении запроса
SIP/2.0 200 OK
Успешное завершение.
SIP/2.0 202 Accepted
Запрос принят для обработки. Используется для справки о состоянии обработки.
3xx – сообщения о переадресации
SIP/2.0 300 Multiple Choices
Указывает несколько SIP-адресов, по которым можно найти вызываемого пользователя.
SIP/2.0 301 Moved Permanently
Вызываемый пользователь больше не находится по адресу, указанному в запросе.
SIP/2.0 302 Moved Temporarily
Пользователь временно сменил местоположение. (Настроена переадресация по SIPUA в т.ч. с VOIP-телефона)
SIP/2.0 305 Use Proxy
Вызываемый пользователь не доступен непосредственно. Входящий вызов должен пройти через прокси-сервер.
SIP/2.0 380 Alternative Service
Запрошенная услуга недоступна, но доступны альтернативные услуги.
4xx – невозможность обработать запрос
SIP/2.0 400 Bad Request
Запрос не распознан из-за синтаксических ошибок или ошибок в сигнализации.
SIP/2.0 401 Unauthorized
Нормальный ответ сервера о том, что пользователь еще не авторизовался. Обычно после этого абонентское оборудование отправляет на сервер новый запрос, содержащий логин и пароль.
SIP/2.0 401 AUTH Error: Stall nonce
1.Разные данные в поле NONCE (шифр пароля), проверить дату/время или проблема с протоколом шифрования
2. П роверить на клиентской стороне не заблокирован ли sipnet.ru (212.53.40.40)
SIP/2.0 401 Expired Authorization
Время регистрации истекло.
SIP/2.0 402 Payment Required
Требуется оплата (зарезервирован для использования в будущем).
SIP/2.0 403 No Such User
Нет такого пользователя. Ошибка в номере, логине или пароле.
SIP/2.0 403 No license available
Кончились лицензия на SIP
SIP/2.0 403 You
Нет такого пользователя. Ошибка в номере, логине или пароле.
SIP/2.0 403 User Disabled
Пользователь отключен.
SIP/2.0 403 You do not have the required right
Не верный логин в поле FROM
SIP/2.0 403 Wrong Guess
Ошибка в пароле.
SIP/2.0 403 Conflict
Такой SIP-номер уже используется.
SIP/2.0 403 Forbidden
Абонент не зарегистрирован.
SIP/2.0 403 Empty Route Set
Нет ни одного шлюза в роутинге.
SIP/2.0 403 Caller Not Registered
Нет такого пользователя.
SIP/2.0 403 Out of Look-Ahead Retries
Перебор узлов закончен.
SIP/2.0 403 Invalid Phone Number
Нет такого направления.
SIP/2.0 403 No Money Left on RFC Account
На счету не достаточно денежных средств для совершения вызова.
SIP/2.0 404 Not found
Вызываемый абонент не найден, нет такого SIP-номера.
SIP/2.0 404 Undefined Reason
Неопределенное направление.
SIP/2.0 404 Unknown user account
Логин и пароль не найдены.
SIP/2.0 404 Out of Order
В заявке на маршрутизацию по этому направлению нет принимающих шлюзов.
SIP/2.0 405 Method Not Allowed
Метод не поддерживается. Может возникать если пользователь пытается отправлять голосовую почту и т.п.
SIP/2.0 406 No codecs match
Неправильная конфигурация кодеков.
SIP/2.0 406 Not Acceptable
Пользователь не доступен.
SIP/2.0 407 Proxy Authentication Required
Необходима аутентификация на прокси-сервере.
SIP/2.0 407 User not found
Проверить ID на CGP
SIP/2.0 408 Request Timeout
Время обработки запроса истекло. Абонента не удалось найти за отведенное время. (Проблема с firewall, нет ответ на Invite от сервера)
SIP/2.0 408 Login timed out
За отведенное время не получен ответ от сервера на запрос авторизации.
SIP/2.0 410 No Route
Вариант «SIP/2.0 403 Empty Route Set». Нет доступа к ресурсу или ресурс по указанному адресу больше не существует.
SIP/2.0 413 Request Entity Too Large
Размер запроса слишком велик для обработки на сервере.
SIP/2.0 415 No Media
Звонок совершается неподдерживаемым кодеком.
SIP/2.0 416 Unsupported Scheme
Сервер не может обработать запрос из-за того, что схема адреса не распознана.
SIP/2.0 420 Bad extension
Неизвестное расширение. Сервер не распознал расширение протокола SIP.
SIP/2.0 421 Extension Required
В заголовке запроса не указано, какое расширение сервер должен применить для его обработки.
SIP/2.0 423 Interval Too Brief
Сервер отклоняет запрос, так как время действия ресурса короткое.
SIP/2.0 480 Invalid Phone Number
Неправильный номер телефона, не соответствует количество цифр или неправильный код страны или города.
SIP/2.0 480 Destination Not Found In Client Plan
Направления нет в тарифном плане абонента.
SIP/2.0 480 Wrong DB Response
Проблемы с центральной базой данных.
SIP/2.0 480 DB Timeout
Проблемы с центральной базой данных.
SIP/2.0 480 Database Error
Проблемы с центральной базой данных.
SIP/2.0 480 Codec Mismatch
Несоответствие кодеков.
SIP/2.0 480 No Money Left on RFC Account
Не достаточно денежных средств на счету.
SIP/2.0 480 Empty Route Set
Пустое направление. Нет принимающих шлюзов.
SIP/2.0 480 No money left
Не достаточно денежных средств на счету.
SIP/2.0 480 Temporarily Unavailable
Временно недоступное направление. (Возможно статус DND)
SIP/2.0 481 Call Leg/Transaction Does Not Exist
Действие не выполнено. Нормальный ответ при поступлении дублирующего пакета.
SIP/2.0 482 Loop Detected
Обнаружен замкнутый маршрут передачи запроса.
SIP/2.0 483 Too Many Hops
Запрос на своем пути прошел через большее число прокси-серверов, чем разрешено.
SIP/2.0 484 Address Incomplete
Принят запрос с неполным адресом.
SIP/2.0 485 Ambiguous
Адрес вызываемого пользователя не однозначен.
SIP/2.0 486 Busy Here
Абонент занят.
SIP/2.0 487 Request Terminated
Запрос отменен. Обычно приходит при отмене вызова.
SIP/2.0 488 Codec Mismatch
Нет шлюзов с поддержкой заказанного кодека.
SIP/2.0 488 Private IP Address
Адрес RTP media из сетей RFC1918.
SIP/2.0 488 Not acceptable here
Не совпадают кодеки
SIP/2.0 491 Request Pending
Запрос поступил в то время, когда сервер еще не закончил обработку другого запроса, относящегося к тому же диалогу.
SIP/2.0 493 Undeciperable
Сервер не в состоянии подобрать ключ дешифрования. Невозможно декодировать тело S/MIME сообщения.
SIP/2.0 499 Codec Mismatch
Отсутствует кодек.
5xx – ошибки сервера
SIP/2.0 500 Internal Server Error
Внутренняя ошибка сервера.
SIP/2.0 500 DB Timeout
Нет ответа от базы данных.
SIP/2.0 500 Database Error
То же самое, но в другой момент.
SIP/2.0 500 Wrong DB Response
Неправильный ответ базы данных.
SIP/2.0 500 Undefined Reason
Неопределенная причина.
SIP/2.0 500 account has been moved to a remote system
Аккаунт перенесен в удаленную систему (дословно).
SIP/2.0 500 Call placing quota exceeded
Превышен CPS.
SIP/2.0 501 Method Not Supported Here
В сервере не реализованы какие-либо функции, необходимые для обслуживания запроса. Метод запроса SIP не поддерживается.
SIP/2.0 502 Bad Gateway
Сервер, функционирующий в качестве шлюза или прокси-сервера, принимает некорректный ответ от сервера, к которому он направил запрос.
SIP/2.0 503 Service Unavailable
Сервер не может в данный момент обслужить вызов вследствие перегрузки или проведения технического обслуживания.
SIP/2.0 504 Server time-out
Сервер не получил ответа в течение установленного промежутка времени от сервера, к которому он обратился для завершения вызова.
SIP/2.0 505 SIP Version not supported
Версия не поддерживается. Сервер не поддерживает эту версию протокола SIP.
SIP/2.0 513 Message too big
Сервер не в состоянии обработать запрос из-за большой длины сообщения.
6xx – глобальная ошибка
SIP/2.0 600 Busy everywhere
Вызываемый пользователь занят и не желает принимать вызов в данный момент.
SIP/2.0 603 Decline
Вызываемый пользователь не желает принимать входящие вызовы, не указывая причину отказа.
SIP/2.0 604 Does Not Exist Anywhere
Вызываемого пользователя не существует.
SIP/2.0 606 Not Acceptable
Соединение с сервером было установлено. Отдельные параметры, такие как тип запрашиваемой информации, полоса пропускания, вид адресации не доступны.
Анализ SIP пакета, на примерах рабочего вызова и со сбоем
В период работы с астериском рано или поздно задумываешься о том, почему не получается прозвониться и обычное чтение лога не помогает. На помощь приходит снятый дамп. В этой статье рассмотрим разные дампы SIP сообщений и постараемся разобрать на примерах причины неисправностей, а также найти виновника найденной неполадки. Структура SIP SIP – это структурированный многоуровневый протокол […]
В период работы с астериском рано или поздно задумываешься о том, почему не получается прозвониться и обычное чтение лога не помогает. На помощь приходит снятый дамп. В этой статье рассмотрим разные дампы SIP сообщений и постараемся разобрать на примерах причины неисправностей, а также найти виновника найденной неполадки.
Структура SIP
SIP – это структурированный многоуровневый протокол связи, который описывает тип установки и завершения сеанса связи, также включает обмен мультимедиа.
В одинарные запросы входят пакеты со следующими методами:
К диалоговым методам можно отнести:
Пакет INVITE
Структура сообщений в SIP одинакова. Стартовая строка → Заголовки → Пустая строка → Тело сообщения. Для примера рассмотрим Пакет INVITE:
Стартовая строка | INVITE sip:[email protected] SIP/2.0 |
Заголовки | Via: SIP/2.0/UDP 192.168.170.105:5060;rport;branch=z9hG4bKPjR1lZ8c09xesG.6AE497.qhlZlf2nwJxa Max-Forwards: 70 From: «102» ;tag=5EH8QhIiuvpzL62cHe9uhXXbQbsSg8-s To: Contact: «102» Call-ID: ks2EUm46cCnW9jlRCYfkIuXT0AdEaZzt CSeq: 31529 INVITE Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS Supported: replaces, 100rel, timer, norefersub Session-Expires: 1800 Min-SE: 90 User-Agent: Digium D40 1_3_0_1_53901 Content-Type: application/sdp Content-Length: 442 |
Пустая строка | |
SDP данные | v=0 o=- 240683915 240683915 IN IP4 192.168.170.105 s=digphn c=IN IP4 192.168.170.105 t=0 0 a=X-nat:0 m=audio 4062 RTP/AVP 9 8 0 18 58 118 58 111 96 a=rtcp:4063 IN IP4 192.168.170.105 a=rtpmap:9 G722/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:18 G729/8000 a=rtpmap:58 L16/16000 a=rtpmap:118 L16/8000 a=rtpmap:58 L16-256/16000 a=rtpmap:111 G726-32/8000 a=sendrecv a=rtpmap:96 telephone-event/8000 a=fmtp:96 0-15 |
Далее следует основное тело пакета с полями заголовков. В основной своей части используются заголовки:
В заголовоке Via записывается адрес устройства, отправившего сообщение, Транспортный протокол, номер порта на который нужно отправить обратно и идентификатор транзакции.
Поле Max-Forwards указывает максимальное количество полей Via может быть в пакете.
Заголовок From предназначен для обозначения инициатора запроса с указанием адреса uri и отображаемого имени.
В заголовок To подставляется информация о получателе сообщения. Зачастую формируется из значения Ruri. Т.к. в дальнейшем на клиентской стороне может быть изменена.
Заголовок Call—ID – это уникальный идентификатор, сохраняющийся на протяжении всего диалога.
В Cseq записывается порядковый номер запроса и имя метода, которое передается,
В поле Contact записывается URI адрес того устройства, на которое должен прийти ответ. Т.е. в приведенном выше примере, ответ прийдет из всех зарегистрированных устройств пользователя 102 на устройство
Т.е. сравните поля From и Contact в нашем примере:
From: «102» ;tag=5EH8QhIiuvpzL62cHe9uhXXbQbsSg8-s | Contact: «102» |
В поле From указан адрес сервера астериска, а в поле Contact указан адрес устройства.
Причины отбоя INVITE
Причиной данной неполадки может быть:
Если в дампе видите только запросы к оператору связи из этого вывод, что с их стороны работают указанные выше пункты. Или к вам не приходят ответные пакеты оператора. Проверяйте описанные выше пункты
Схема вызова в данном случае читается следующим образом:
Примеры вызовов
Рассмотрим корректный вызов:
Вызов на не зарегистрированного пользователя.
В пакете мы видим причину разъединения в полях X-Asterisk-HangupCause и X-Asterisk-HangupCauseCode (в данном примере это пользователь не найден).
7. Инициатор, подтверждает завершение вызова.
Пакет REGISTER
Рассмотрим пример пакета REGISTER и опишем его работу
Первая строка | REGISTER sip:192.168.170.220:5060 SIP/2.0 |
Заголовки | Via: SIP/2.0/UDP 192.168.170.105:5060;rport;branch=z9hG4bKPj.J5KVeS0GGU4BV3DE1Wk0YLCSGSGQzjq Max-Forwards: 70 From: «102» ;tag=J6Kk9pzb8UEm9uUgGMIZrwzdkuxw48f- To: «102» Call-ID: ARjJonSDAVAJADPRCdFlWj6Ww5jw3JU1 CSeq: 48583 REGISTER User-Agent: Digium D40 1_3_0_1_53901 Contact: «102» Expires: 0 Content-Length: 0 |
Заголовки пакета и их назначение
Основные заголовки пакета:
Поле Via содержит адреса устройств, через которые маршрутизировался этот пакет, это могут быть различные АТС, proxy сервера и т. д.
Max-Forwards – указывается максимальное колличество хопов (прыжков/переадресаций) которые может пройти пакет до пункта назначения
Заголовок From предназначен для обозначения инициатора запроса с указанием адреса uri и отображаемого имени.
В заголовок To подставляется информация о получателе сообщения. Зачастую формируется из значения Ruri.
Заголовок Call—ID – это уникальный идентификатор, сохраняющийся на протяжении всего диалога.
В Cseq записывается порядковый номер запроса и имя метода, которое передается.
Возможные причины отбоя регистрации
В этом блоке будем рассматривать самые распространенные причины сбоев в регистрации
Причинами этой ситуации может быть:
Смотреть лог или консоль астериска
Смотреть лог или консоль астериска.
Смотреть лог или консоль астериска.
Примеры регистрации
Рассмотрим корректную регистрацию:
Рассмотрим не верную авторизацию:
Коды ответа и их значения в протоколe SIP
Коды ответов сервера (коды состояния запроса) в протоколе SIP, согласно RFC2543
Код ответа от сервера (код состояния запроса) состоит из трех цифр и показывает информацию об обработке запроса сервером или оконечным устройством. Рядом с любым кодом, передается поясняющая фраза, краткое текстовое описание, кода ответа. Код ответа необходим для серверов и оконечных устройств, при этом, они не смотрят поясняющие фразы. А поясняющие фразы необходимы лишь для конечных пользователей.
Первая цифра кода состояния запроса определяет класс ответа. Последние две цифры не имеют определенной роли в классификации. Протокол SIP/2.0 определяет 6 значение для первой цифры:
Далее рассмотрим часто встречающиеся коды состояния запросов и поясняющие фразы к ним, используемые в SIP/2.0. Поясняющие фразы- это рекомендация, пользователи могут изменить их, без воздействия на протокол SIP/2.0. Обратите внимание, что много кодов ответов взято из протокола HTTP/1.1. В SIP/2.0 добавлены коды в диапазоне с x80, так же, в отличие от HTTP/1.1, добавлен новый класс кодов 6xx.
Коды ответов SIP являются расширяемыми. SIP приложению не требуется понимать смысл всех зарегистрированных кодов ответа, хотя такое понимание желательно. Тем не менее, приложения ДОЛЖНЫ понимать класс любого кода ответа, как это указано в первой цифре, и обрабатывать любой нераспознанный ответ как эквивалент кода ответа x00 этого класса. Например, если клиент получает незарегистрированный код ответа 431, он может смело предположить, что было что-то не так в его запросе, и должен обработать ответ, как если бы был получен код 400 (Bad Request). В таких случаях агентам пользователя СЛЕДУЕТ представить пользователю тело сообщения, возвращаемого с ответом, так как в теле сообщения, вероятно, включена информация, которая поясняет нестандартный ответ.
Успех выполнения запроса:
IP-Телефония: Сообщения протокола SIP
Сообщения протокола SIP
Запрос INVITE приглашает пользователя принять участие в сеансе связи. Он обычно содержит описание сеанса связи, в котором указывается вид принимаемой информации и параметры (список возможных вариантов параметров), необходимые для приема информации, а также может указываться вид информации, которую вызываемый пользователь желает передавать. В ответе на запрос типа INVITE указывается вид информации, которая будет приниматься вызываемым пользователем, и, кроме того, может указываться вид информации, которую вызываемый пользователь собирается передавать (возможные параметры передачи информации).
В этом сообщении могут содержаться также данные, необходимые для аутентификации абонента, и, следовательно, доступа клиентов к SIP-серверу. При необходимости изменить характеристики уже организованных каналов передается запрос INVITE с новым описанием сеанса связи. Для приглашения нового участника к уже установленному соединению также используется сообщение INVITE.
Запрос АСК подтверждает прием ответа на запрос INVITE. Следует отметить, что запрос АСК используется только совместно с запросом INVITE, т.е. этим сообщением оборудование вызывающего пользователя показывает, что оно получило окончательный ответ на свой запрос INVITE. В сообщении АСК может содержаться окончательное описание сеанса связи, передаваемое вызывающим пользователем.
Запрос CANCEL отменяет обработку ранее переданных запросов с теми же, что и в запросе CANCEL, значениями полей Call-ID, To, From и CSeq, но не влияет на те запросы, обработка которых уже завершена. Например, запрос CANCEL применяется тогда, когда прокси-сервер размножает запросы для поиска пользователя по нескольким направлениям и в одном из них его находит. Обработку запросов, разосланных во всех остальных направлениях, сервер отменяет при помощи сообщения CANCEL.
Запросом BYE оборудование вызываемого или вызывающего пользователя завершает соединение. Сторона, получившая запрос BYE, должна прекратить передачу речевой (мультимедийной) информации и подтвердить его выполнение ответом 200 ОК.
Рис. 6 Пример запроса INVITE
При передаче сообщений протокола SIP, упакованных в сигнальные сообщения протокола UDP, существует вероятность того, что размер запроса или ответа окажется больше максимально допустимого для данной сети, и произойдет фрагментация пакета. Чтобы избежать этого, используется сжатый формат имен основных заголовков, подобно тому, как это делается в протоколе SDP, Ниже приведен список таких заголовков (Таблица 3).
Таблица 3. Сжатые имена заголовков SIP
Сжатая форма имени | Полная форма имени |
---|---|
c | Content-Type |
e | Content- Encoding |
f | From |
i | Call-ID |
m | Contact ( от «moved») |
l | Content-Length |
s | Subject |
t | To |
v | Via |
При написании имен заголовков в сжатом виде сообщение INVITE, показанное ранее на рисунке 6, будет выглядеть следующим образом (рис. 7):
Рис. 7 Пример запроса INVITE с сокращенными заголовками
Таблица 4. Запросы SIP
Тип запроса | Описание запроса |
---|---|
INVITE | Приглашает пользователя к сеансу связи. Содержит SDP-описание сеанса |
АСК | Подтверждает прием окончательного ответа на запрос INVITE |
BYE | Завершает сеанс связи. Может быть передан любой из сторон, участвующих в сеансе |
CANCEL | Отменяет обработку запросов с теми же заголовками Call-ID, То, From и CSeq, что и в самом запросе CANCEL |
REGISTER | Переносит адресную информацию для регистрации пользователя на сервере определения местоположения |
OPTION | Запрашивает информацию о функциональных возможностях терминала |
После приема и интерпретации запроса, адресат (прокси-сервер) передает ответ на этот запрос. Содержание ответов бывает разным: подтверждение установления соединения, передача запрошенной информации, сведения о неисправностях и т.д. Структуру ответов и их виды протокол SIP унаследовал от протокола HTTP.
Определено шесть типов ответов, несущих разную функциональную нагрузку. Тип ответа кодируется трехзначным числом. Самой важной является первая цифра, которая определяет класс ответа, остальные две цифры лишь дополняют первую. В некоторых случаях оборудование даже может не знать все коды ответов, но оно обязательно должно интерпретировать первую цифру ответа.
Финальные ответы кодируются трехзначными числами, начинающимися с цифр 2, 3, 4, 5 и 6. Они означают завершение обработки запроса и содержат, когда это нужно, результат обработки запроса. Назначение финальных ответов каждого типа рассматривается ниже.
На рисунке 8 представлен пример ответа на запрос INVITE:
Рис. 8 Пример SIP-ответа 200 OK
В этом примере приведен ответ пользователя Watson на приглашение принять участие в сеансе связи, полученное от пользователя Bell. Наиболее вероятный формат приглашения рассмотрен нами ранее (рис. 7). Вызываемая сторона информирует вызывающую о том, что она может принимать в порту 5004 речевую информацию, закодированную в соответствии с алгоритмами кодирования PCMU, GSM. Поля From, To, Via, Call-ID взяты из запроса, показанного на рисунке 7. Из примера видно, что это ответ на запрос INVITE с полем CSeq:1.
После того, как мы рассмотрели запросы и ответы на них, можно отметить, что протокол SIP предусматривает разные алгоритмы установления соединения. При этом стоит обратить внимание, что одни и те же ответы можно интерпретировать по-разному в зависимости от конкретной ситуации. В таблицу 5 сведены все ответы на запросы, определенные протоколом SIP.