Sip логин и пароль. Настройка программы Zoiper

SIP/2.0 100 Trying - Запрос обрабатывается, например, сервер обращается к базам данных, но местоположение вызываемого пользователя в настоящий момент не определено.

SIP/2.0 180 Ringing - Местоположение вызываемого пользователя определено. Ему дается сигнал о входящем вызове.

SIP/2.0 181 Call Is Being Forwarded - Прокси-сервер переадресует вызов к другому пользователю.

SIP/2.0 182 Queued - Вызываемый пользователь временно не доступен, но входящий вызов поставлен в очередь. Когда вызываемый пользователь станет доступным, он передаст финальный ответ.

SIP/2.0 200 OK - Команда успешно выполнена. На запрос INVITE означает, что вызываемое оборудование согласно на участие в сеансе связи; в теле ответа указываются функциональные возможности этого оборудования; На запрос BYE означает завершение сеанса связи, в теле ответа никакой информации не содержится; На запрос CANCEL означает отмену поиска, в теле ответа никакой информации не содержится; на запрос REGISTER означает, что регистрация прошла успешно; На запрос OPTION служит для передачи сведений о функциональных возможностях оборудования, эти сведения содержатся в теле ответа.

SIP/2.0 300 Multiple Choices - Вызываемый пользователь доступен по нескольким адресам. Вызывающий пользователь может выбрать любой из них. В ответе указывается несколько SIP-адресов, по которым можно найти вызываемого пользователя, и вызывающему пользователю предлагается выбрать один из них.

SIP/2.0 301 Moved Permanently - Пользователь изменил свое местоположение, его новый адрес указан в поле Contact.

SIP/2.0 302 Moved Temporarily - Пользователь временно изменил свое местоположение (промежуток времени может быть указан в поле Expires), его новый адрес указан в поле Contact.

SIP/2.0 305 Use Proxy - Вызываемая сторона может принять входящий вызов только в том случае, когда он проходит через прокси-сервер. Вызывающей стороне рекомендуется обратиться к прокси-серверу, адрес которого указан в поле Contact. Ответ передается только терминальным оборудованием (UAS).

SIP/2.0 380 Alternative Service - Вызов не достиг адресата, но существует альтернативный вариант обслуживания, который указан в теле ответа. Например, вызов может быть переадресован к речевому почтовому ящику.

SIP/2.0 400 Bad Bequest - Запрос не понят из-за наличия в нем синтаксических ошибок.

SIP/2.0 401 Unauthorised - Запрос требует проведения процедуры аутентификации пользователя. Существуют разные варианты аутентификации, и в ответе может быть указано, какой из них использовать в данном случае.

SIP/2.0 402 Payment Required - Требуется предварительная оплата услуг.

SIP/2.0 403 Forbidden - Запрос не будет обслуживаться сервером и не должен передаваться повторно.

SIP/2.0 404 Not Found - Сервер не обнаружил вызываемого пользователя в домене, указанном в поле Request-URI.

SIP/2.0 405 Method Not Allowed - Не разрешается передавать запрос этого типа на адрес, указанный в поле Request-URI. В поле Allow ответа указываются разрешенные типы запросов

SIP/2.0 406 Not Acceptable - Ответы, генерируемые вызываемой стороной, не будут поняты вызывающей стороной.

SIP/2.0 407 Proxy Authentication Required - Клиент должен подтвердить свое право доступа к прокси-серверу.

SIP/2.0 408 Request Timeout - Сервер не может передать ответ, например, указать местоположение вызываемого пользователя, в течение промежутка времени, специфицированного в поле Expires запроса. Вызывающий пользователь может повторно передать запрос через некоторое время.

SIP/2.0 409 Conflict - Обработка запроса REGISTER не может быть завершена из-за конфликта между действием, определенным в параметре action запроса, и текущим состоянием ресурсов.

SIP/2.0 410 Gone - Сервер больше не имеет доступа к запрашиваемому ресурсу и не знает, куда переадресовать запрос.

SIP/2.0 411 Length Required - Требуется указать длину тела сообщения в поле Content-Length.

SIP/2.0 413 Request Entity Too Large - Размер запроса слишком велик для обработки.

SIP/2.0 414 Request-URI Too Large - Адрес, указанный в поле Request-URI, оказался слишком большим, поэтому его интерпретация невозможна.

SIP/2.0 415 Unsupported Media Type - Запрос содержит не поддерживаемый формат тела сообщения.

SIP/2.0 420 Bad Extension - Сервер не понял расширение протокола, специфицированное в поле Require.

SIP/2.0 480 Temporarily not available - Вызываемый пользователь временно недоступен.

SIP/2.0 481 Call Beg/Transaction Does Not Exist - Посылается в ответ на получение запроса ВYЕ, не относящегося к текущим соединениям, или запроса CANCEL, не относящегося к текущим запросам.

SIP/2.0 482 Loop Detected - Сервер обнаружил, что принятый им запрос передается по замкнутому маршруту (в поле Via уже имеется адрес этого сервера).

SIP/2.0 483 Too Many Hops - Сервер обнаружил в поле Via, что принятый им запрос прошел через большее количество прокси-сервером, чем разрешено в поле Max-Forwards.

SIP/2.0 484 Address Incomplete - Сервер принял запрос с неполным адресом в поле То или Request-URI. Требуется дополнительная адресная информация.

SIP/2.0 485 Ambiguous - Адрес вызываемого пользователя неоднозначен. В заголовке Contact ответа может содержаться список адресов, по которым этот запрос можно передать.

SIP/2.0 486 Busy Here - Вызываемый пользователь в настоящий момент не может принять входящий вызов по данному адресу. Ответ не исключает возможности связаться с пользователем по другому адресу или, к примеру, оставить сообщение в речевом почтовом ящике.

SIP/2.0 500 Internal Server Error - Cервер не имеет возможности обслужить запрос из-за внутренней ошибки. Клиент может попытаться повторно послать запрос через некоторое время.

SIP/2.0 501 Not Implemented - В сервере не реализованы функции, необходимые для обслуживания этого запроса. Ответ передается, например в том случае, когда сервер не может распознать тип запроса.

SIP/2.0 502 Bad Gateway - Сервер, функционирующий в качестве шлюза или прокси-сервера, принимает некорректный ответ от сервера, к которому он направил запрос.

SIP/2.0 503 Service Unavailable - Сервер не может в данный момент обслужить вызов вследствие перегрузки или проведения технического обслуживания.

SIP/2.0 504 Gateway Timeout - Сервер, функционирующий в качестве шлюза или прокси-сервера, в течение установленного интервала времени не получил ответ от сервера (например, от сервера определения местоположения), к которому он обратился для завершения обработки запроса.

SIP/2.0 505 SIP Version not supported - Сервер не поддерживает данную версию протокола SIP.

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 - Вызываемый пользователь не может принять входящий вызов из-за того, что вид информации, указанный в описании сеанса связи в формате SDP, полоса пропускания и т.д. неприемлемы.

SIP - свободный стандарт IP-телефонии. Широко используется как коммерческими VoIP операторами, так и бесплатными сервисами типа Google Voice, Voxalot, Ekiga.net, Sipnet.ru итд., поддерживается множеством софт/хард телефонов и адаптеров, поддерживает видеотелефонию. В отличии от скайпа является утвержденным, общепризнанным и открытым сигнальным протоколом систем VoIP.

В SIP нет единого глобального узла управления и регистрации. существует множество различных сервис провайдеров - регистраторов. Можно провести аналогию с еmail, или что еще точнее, jabber серверами.
Кроме того, любой пользователь или организация может запустить свой собственный сервер.

Любой SIP адрес (sip uri) состоит из логина пользователя и адреса сервера и имеет вид , например " ". В принципе в логине допускаются и буквы, но я бы советовал ограничиться только цифрами, чтобы потом не возникло проблем с набором такого номера с телефонов без алфавитной клавиатуры. Можно иметь неограниченное кол-во SIP аккаунтов на одном или разных серверах, для разных целей.
Поскольку SIP - открытый стандарт, существует множество программных или аппаратных SIP клиентов, все они совместимы друг с другом и с любыми серверами. Для установления связи клиентам не обязательно находиться на одном и том же сервере. При этом, во время разговора они будут автоматически соединены между собой напрямую.

Для присоединения к SIP-телефонии нужно выбрать регистратора и клиент. Начинающим можно порекомендовать sipnet.ru или comtube.ru. Пользователям Windows Сипнет предлагает свой софтфон с предустановками. Он может работать только с этим регистратором, но его почти не надо настраивать. Еще один популярный софтфон для этой ОС - X-lite.
Для *Nix систем неплохой вариант - Ekiga или SFLphone с теми же регистраторами. (Ekiga доступна также для Windows)

Не используйте предлагаемый в Ekiga регистратор ekiga.net. Oн был протестирован и обнаружил проблемы с входящими звонками. Откажитесь от него при первом запуске, затем в менеджере аккаунтов выберите "добавить учетную запись SIP".

Разные регистраторы могут предоставлять разный набор услуг и удобств. Некоторые больше ориентированы на звонки в телефонную сеть (PSTN termination), некоторые - на различные онлайн сервисы. Выберите то что вам больше всего подходит или пользуйтесь сразу несколькими, в SIP это вполне нормальная практика. Географическое положение регистратора большого значения не имеет, поскольку медиатрафик между клиентами в большинстве случаев всё равно будет идти напрямую.
Регистрация как правило бесплатна, ни к чему не обязывает и производится прямо с сайта, после чего вы получаете номер, пароль, данные для подключения (или скачиваете программу с предустановками) и можете сразу пользоваться вашим SIP аккаунтом. Звонки внутри сети, в другие сети и из них, из обычной телефонной сети через шлюзы - бесплатны. Вам не нужно указывать при регистрации никаких платежных средств, если вы не предполагаете звонить на обычные городские/сотовые номера, содержать персональный прямой номер доступа или пользоваться какими-то другими экзотическими услугами.

При ручной настройке основные параметры это ваш номер (логин), адрес сервера для подключения и пароль. Часто указывается еще STUN сервер. Не пренебрегайте им, в некоторых случаях работа без него невозможна.

После успешного подключения вам захочется протестировать работу вашего клиента. Почти все регистраторы имеют служебные номера для проверки, список которых есть у них на сайте. В данном случае самым полезным является "эхотест" или автоответчики с записью и последующим воспроизведением. Часто такие номера работают только внутри сети, но есть и открытые, доступные отовсюду, например:

В завершение несколько слов про криптографию.
SIP-телефония включает в себя 2 протокола - сигнальный sip (управление, набор номера и информация о статусе соединения) и транспортный rtp (непосредственно аудио/видео потоки). Если оба клиента имеют поддержку шифрования потока (SRTP/zRTP), то разговор можно вести по шифрованному каналу. Если сервер и клиент поддерживают TLS, то и сигнальный трафик будет защищенным.

Наиболее актуальные SIP софтфоны:

Ekiga (GPL, *nix/windows) http://ekiga.org/
Qutecom (GPL, *nix/windows/osx) http://www.qutecom.org/
SIP Communicator (LGPL, java) http://www.sip-communicator.org/
SFLphone (GPL, *nix) http://www.sflphone.org/
Linphone (GPL, *nix/windows/osx/android/iphone) http://www.linphone.org/
SipDroid (GPL, android) http://sipdroid.org/
X-Lite (proprietary, windows) http://www.counterpath.com/x-lite.html
fring (freeware, mobile devices) http://www.fring.com/

Пример аппаратного SIP решения: шлюз, позволяющий подключить 2 обычных телефона к 2-м независимым SIP аккаунтам и пользоваться ими без связи с ПК. Очень удобная и богатая возможностями вещь. Поддерживает CallerID. Позволяет использовать SipBroker вне зависимости от регистратора (dial plan support).
http://voips.ru/Linksys-by-Cisco-PAP2T.html

С полным спектром выпускаемого SIP-совместимого оборудования можно ознакомиться например тут: http://www.sipnet.ru/orderandpay/hardware.php
(для обычного пользователя, вероятно, самыми полезными будут категории "SIP телефоны" и "VoIP шлюзы"). При выборе следует отдавать предпочтение известным и зарекомендовавшим себя маркам (Linksys, D-link, Cisco, Grandstream итп)

Несколько известных sip voip провайдеров:
http://www.sipnet.ru
http://www.comtube.ru
http://zadarma.com/ru
http://www.voxalot.com
http://www.ideasip.com
http://www.voipbuster.com

Сравнение цен на звонки в телефонную сеть по разным направлениям:
http://www.voipratetracker.com/compare_rates
http://www.voip-catalog.com/voip_routes.html

Возможные проблемы.
Если ваш клиент зарегистрировался на сервере нормально, но звонки в одну или обе стороны не проходят или наблюдается односторонняя слышимость, источником проблем скорее всего является плохо настроенный firewall или жестко закрытый NAT, не поддерживающий "из коробки" прозрачную работу с такими сервисами. Вначале убедитесь, что у вас всё в порядке с микшером и микрофоном, как было описано ранее. Попробуйте отключить firewall. Проверьте, указан ли STUN. Ниже приводятся несколько ссылок, в которых всё это описано лучше, чем это можно сделать в рамках данной статьи.
Отдельно можно выделить ситуацию, когда входящие звонки работают сразу после подключения, но перестают проходить после нескольких минут простоя. В этом случае решение сводится к подбору времени keepalive в клиенте и тоже хорошо описано в первой ссылке.
После каждого шага не забывайте переподключиться к серверу (если это софтфон - просто перезапустите его)
http://wiki.sipnet.ru/index.php/Подключение_через_маршрутизатор_с_NAT
http://wiki.sipnet.ru/index.php/Трансляция_сетевых_адресов_%28NAT%29_и_SIP

Перечень действий до начала использования оборудования VoIP
Для настройки VoIP-телефонов или VoIP-шлюзов требуется выполнить ряд предварительных действий:

  1. Получить пароль к каждой учетной записи SIP. Пароли необходимы для настройки оборудования. Для получения паролей выполнить следующие действия:
  • Сменить пароль к учетной записи SIP и распечатать настройки при смене пароля.
  • Отправить себе текущие настройки SIP по электронной почте.
  • Настроить учетную запись SIP:
    • Привязать учетную запись SIP к продукту;
    • Привязать учетную запись SIP к IP-адресу.

    Получение пароля к учетной записи SIP
    Перед началом использования VoIP-телефона или VoIP-шлюза администратору следует получить в электронном или печатном виде пароль к учетной записи SIP. Пароль необходим для последующей настройки оборудования.
    Получение пароля возможно одним из следующих способов:

    1. Смена пароля и вывод нового пароля на печать.
    2. Отправка текущего пароля на указанные адреса электронной почты.

    Смена пароля к учетной записи SIP

    Для смены пароля к учетной записи SIP и вывода пароля на печать требуется выполнить следующие действия:

    Отправка пароля по электронной почте

    Для того, чтобы отправить себе текущий пароль к учетной записи SIP по электронной почте, выполните следующие действия:

    Привязка учетной записи SIP к продукту
    Для того, чтобы выполнить привязку учетной записи SIP к продукту, выполните следующие действия:


    Привязка учетной записи SIP к IP-адресу

    После того, как вы выбрали объект, с которым будет связана учетная запись SIP, необходимо также выполнить привязку учетной записи к IP-адресу или подсети. Привязка к IP-адресу настраивается в группе параметров «Привязка»:

    Примечание
    Опции привязки учетной записи SIP к IP-адресу недоступны при установленном флажке «Не изменять».

    1. Выберите тип привязки:
    • Нет - учетная запись SIP не будет связана ни с каким IP-адресом.
    • Внимание!
      Выбор опции «Нет» может навредить безопасности, так как допускается возможность взлома учетной записи SIP. Привязка к IP-адресу делает невозможным доступ к учетной записи с других IP-адресов.

    • Авто - учетная запись SIP привязывается автоматически. Обычно это происходит при первой регистрации учетной записи
    • Да - при выборе данной опции требуется добавить необходимое количество IP-адресов или подсеть в поле ввода IP-адреса. Поле становится доступным только при выборе опции «Да». Введите IP-адрес и нажмите «Добавить». Затем введите следующий IP-адрес или маску сети вида 1.2.3.4/24 , через / указывается маска сети.
      Добавьте таким образом все нужные IP-адреса.
  • Нажмите .
  • Групповая привязка учетных записей SIP к продукту и IP-адресу

    Для вашего удобства в системе предусмотрена возможность выполнить привязку одновременно нескольких учетных записей к продукту или IP-адресу. Для групповой привязки учетных записей выполните следующие действия:


    В данном разделе приведено описание Протокола инициирования сеансов связи - SIP, его принципы, адресация, архитектура, приведено сравнение с протоколом H323. За основу взята 7 глава книги Б.С. Гольдштейн IP-Телефония .

    Сообщения протокола SIP

    В настоящей версии протокола SIP определено шесть типов запросов. Каждый из них предназначен для выполнения довольно широкого круга задач, что является явным достоинством протокола SIP, так как благодаря этому число сообщений, которыми обмениваются терминалы и серверы, сведено к минимуму. С помощью запросов клиент сообщает о текущем местоположении, приглашает пользователей принять участие в сеансах связи, модифицирует уже установленные сеансы, завершает их и т.д. Сервер определяет тип принятого запроса по названию, указанному в стартовой строке. В той же строке в поле Request-URI указан SIP-адрес оборудования, которому этот запрос адресован. Содержание полей То и Request-URI может различаться, например, в поле То может быть указан публикуемый адрес абонента, а в поле Request-URI - текущий адрес пользователя.

    Запросы SIP

    Запрос INVITE приглашает пользователя принять участие в сеансе связи. Он обычно содержит описание сеанса связи, в котором указывается вид принимаемой информации и параметры (список возможных вариантов параметров), необходимые для приема информации, а также может указываться вид информации, которую вызываемый пользователь желает передавать. В ответе на запрос типа INVITE указывается вид информации, которая будет приниматься вызываемым пользователем, и, кроме того, может указываться вид информации, которую вызываемый пользователь собирается передавать (возможные параметры передачи информации).

    В этом сообщении могут содержаться также данные, необходимые для аутентификации абонента, и, следовательно, доступа клиентов к SIP-серверу. При необходимости изменить характеристики уже организованных каналов передается запрос INVITE с новым описанием сеанса связи. Для приглашения нового участника к уже установленному соединению также используется сообщение INVITE.

    Запрос АСК подтверждает прием ответа на запрос INVITE. Следует отметить, что запрос АСК используется только совместно с запросом INVITE, т.е. этим сообщением оборудование вызывающего пользователя показывает, что оно получило окончательный ответ на свой запрос INVITE. В сообщении АСК может содержаться окончательное описание сеанса связи, передаваемое вызывающим пользователем.

    Запрос CANCEL отменяет обработку ранее переданных запросов с теми же, что и в запросе CANCEL, значениями полей Call-ID, To, From и CSeq, но не влияет на те запросы, обработка которых уже завершена. Например, запрос CANCEL применяется тогда, когда прокси-сервер размножает запросы для поиска пользователя по нескольким направлениям и в одном из них его находит. Обработку запросов, разосланных во всех остальных направлениях, сервер отменяет при помощи сообщения CANCEL.

    Запросом BYE оборудование вызываемого или вызывающего пользователя завершает соединение. Сторона, получившая запрос BYE, должна прекратить передачу речевой (мультимедийной) информации и подтвердить его выполнение ответом 200 ОК.

    При помощи запроса типа REGISTER пользователь сообщает свое текущее местоположение. В этом сообщении содержатся следующие поля:

    • Поле То содержит адресную информацию, которую надо сохранить или модифицировать на сервере;
    • Поле From содержит адрес инициатора регистрации. Зарегистрировать пользователя может либо он сам, либо другое лицо, например, секретарь может зарегистрировать своего начальника;
    • Поле Contact содержит новый адрес пользователя, по которому должны передаваться все дальнейшие запросы INVITE. Если в запросе REGISTER поле Contact отсутствует, то регистрация остается прежней. В случае отмены регистрации здесь помещается символ;
    • В поле Expires указывается время в секундах, в течение которого регистрация действительна. Если данное поле отсутствует, то по умолчанию назначается время - 1 час, после чего регистрация отменяется. Регистрацию можно также отменить, передав сообщение REGISTER с полем Expires, которому присвоено значение О, и с соответствующим полем Contact.
    Запросом OPTIONS вызываемый пользователь запрашивает информацию о функциональных возможностях терминального оборудования вызываемого пользователя. В ответ на этот запрос оборудование вызываемого пользователя сообщает требуемые сведения. Применение запроса OPTIONS ограничено теми случаями, когда необходимо узнать о функциональных возможностях оборудования до установления соединения. Для установления соединения запрос этого типа не используется.

    После испытаний протокола SIP в реальных сетях оказалось, что для решения ряда задач вышеуказанных шести типов запросов недостаточно. Поэтому возможно, что в протокол будут введены новые сообщения. Так, в текущей версии протокола SIP не предусмотрен способ передачи информации управления соединением или другой информации во время сеанса связи. Для решения этой задачи был предложен новый тип запроса - INFO . Он может использоваться в следующих случаях:

    • Для переноса сигнальных сообщений ТФОП/ISDN/сотовых сетей между шлюзами в течение разговорной сессии;
    • Для переноса сигналов DTMF в течение разговорной сессии;
    • Для переноса биллинговой информации.
    Завершив описание запросов протокола SIР, рассмотрим, в качестве примера, типичный запрос типа INVITE (рис. 6). INVITE sip: [email protected] SIP/2.0 Via: SIP/2.0/UDP kton.bell-tel.com From: A. Bell To: T. Watson Call-ID: [email protected] Cseq: 1 INVITE Content-Type: application/sdp Content-Length: ... v=0 o=bell 53655765 2353687637 IN IР4 12&.3.4.5 C=IN IP4 kton.bell-tel.com m=audio 3456 RTP/AVP 0345

    Рис. 6 Пример запроса INVITE

    В этом примере пользователь Bell ([email protected]) вызывает пользователя Watson ([email protected]). Запрос передается к прокси-серверу (boston.bell-tel.com). В полях То и From перед адресом стоит запись, которую вызывающий пользователь желает вывести на дисплей вызываемого пользователя. В теле сообщения оборудование вызывающего пользователя указывает в формате протокола SDP, что оно может принимать в порту 3456 речевую информацию, упакованную в пакеты RTP и закодированную по одному из следующих алгоритмов кодирования: 0 - PCMU, 3 - GSM, 4 - G.723 и 5 - DVI4.

    При передаче сообщений протокола SIP, упакованных в сигнальные сообщения протокола UDP, существует вероятность того, что размер запроса или ответа окажется больше максимально допустимого для данной сети, и произойдет фрагментация пакета. Чтобы избежать этого, используется сжатый формат имен основных заголовков, подобно тому, как это делается в протоколе SDP, Ниже приведен список таких заголовков (Таблица 3).

    Таблица 3. Сжатые имена заголовков SIP


    При написании имен заголовков в сжатом виде сообщение INVITE, показанное ранее на рисунке 6, будет выглядеть следующим образом (рис. 7): INVITE sip: [email protected] SIP/2.0 v: SIP/2.0/UDP kton.bell-tel.com f: A. Bell t: T. Watson i: [email protected] Cseq: 1 INVITE с: application/sdp l: ... v=0 o=bell 53655765 2353687637 IN IP4 128.3.4.5 C=IN IP4 kton.bell-tel.com m=audio 3456 RTP/AVP 0345

    Рис. 7 Пример запроса INVITE с сокращенными заголовками

    Тип запроса Описание запроса
    INVITE Приглашает пользователя к сеансу связи. Содержит SDP-описание сеанса
    АСК Подтверждает прием окончательного ответа на запрос INVITE
    BYE Завершает сеанс связи. Может быть передан любой из сторон, участвующих в сеансе
    CANCEL Отменяет обработку запросов с теми же заголовками Call-ID, То, From и CSeq, что и в самом запросе CANCEL
    REGISTER Переносит адресную информацию для регистрации пользователя на сервере определения местоположения
    OPTION Запрашивает информацию о функциональных возможностях терминала

    Ответы на запросы SIP

    После приема и интерпретации запроса, адресат (прокси-сервер) передает ответ на этот запрос. Содержание ответов бывает разным: подтверждение установления соединения, передача запрошенной информации, сведения о неисправностях и т.д. Структуру ответов и их виды протокол SIP унаследовал от протокола HTTP.

    Определено шесть типов ответов, несущих разную функциональную нагрузку. Тип ответа кодируется трехзначным числом. Самой важной является первая цифра, которая определяет класс ответа, остальные две цифры лишь дополняют первую. В некоторых случаях оборудование даже может не знать все коды ответов, но оно обязательно должно интерпретировать первую цифру ответа.

    Все ответы делятся на две группы: информационные и финальные. Информационные ответы показывают, что запрос находится в стадии обработки. Они кодируются трехзначным числом, начинающимся с единицы, - 1хх . Некоторые информационные ответы, например, 100 Trying , предназначены для установки на нуль таймеров, которые запускаются в оборудовании, передавшем запрос. Если к моменту срабатывания таймера ответ на запрос не получен, то считается, что этот запрос потерян и может (по усмотрению производителя) быть передан повторно. Один из распространенных ответов - 180 Ringing ; по назначению он идентичен сигналу в ТфОП и означает, что вызываемый пользователь получает сигнал о входящем вызове.

    Финальные ответы кодируются трехзначными числами, начинающимися с цифр 2, 3, 4, 5 и 6. Они означают завершение обработки запроса и содержат, когда это нужно, результат обработки запроса. Назначение финальных ответов каждого типа рассматривается ниже.

    Ответы 2хх означают, что запрос был успешно обработан. В настоящее время из всех ответов типа 2хх определен лишь один -200 ОК. Его значение зависит от того, на какой запрос он отвечает:

    • ответ 200 OK на запрос INVITE означает, что вызываемое оборудование согласно на участие в сеансе связи; в теле ответа указываются функциональные возможности этого оборудования;
    • ответ 200 OK на запрос BYE означает завершение сеанса связи, в теле ответа никакой информации не содержится;
    • ответ 200 OK на запрос CANCEL означает отмену поиска, в теле ответа никакой информации не содержится;
    • ответ 200 OK на запрос REGISTER означает, что регистрация прошла успешно;
    • ответ 200 OK на запрос OPTION служит для передачи сведений о функциональных возможностях оборудования, эти сведения содержатся в теле ответа.
    Ответы Зхх информируют оборудование вызывающего пользователя о новом местоположении вызываемого пользователя или переносят другую информацию, которая может быть использована для нового вызова:
    • в ответе 300 Multiple Choices указывается несколько SIP-адресов, по которым можно найти вызываемого пользователя, и вызывающему пользователю предлагается выбрать один из них;
    • ответ 301 Moved Permanently означает, что вызываемый пользователь больше не находится по адресу, указанному в запросе, и направлять запросы нужно на адрес, указанный в поле Contact;
    • ответ 302 Moved Temporary означает, что пользователь временно (промежуток времени может быть указан в поле Expires) находится по другому адресу, который указывается в поле Contact.
    Ответы 4хх информируют о том, что в запросе обнаружена ошибка. После получения такого ответа пользователь не должен передавать тот же самый запрос без его модификации:
    • ответ 400 Bad Request означает, что запрос не понят из-за наличия в нем синтаксических ошибок;
    • ответ 401 Unauthorized означает, что запрос требует проведения процедуры аутентификации пользователя. Существуют разные варианты аутентификации, и в ответе может быть указано, какой из них использовать в данном случае;
    • ответ 403 Forbidden означает, что сервер понял запрос, но отказался его обслуживать. Повторный запрос посылать не следует. Причины могут быть разными, например, запросы с этого адреса не обслуживаются и т.д.;
    • ответ 485 Ambiguous означает, что адрес в запросе не определяет вызываемого пользователя однозначно;
    • ответ 486 Busy Here означает, что вызываемый пользователь в настоящий момент не может принять входящий вызов по данному адресу. Ответ не исключает возможности связаться с пользователем по другому адресу или, к примеру, оставить сообщение в речевом почтовом ящике.
    Ответы 5хх информируют о том, что запрос не может быть обработан из-за отказа сервера:
    • ответ 500 Server Internal Error означает, что сервер не имеет возможности обслужить запрос из-за внутренней ошибки. Клиент может попытаться повторно послать запрос через некоторое время;
    • ответ 501 Not Implemented означает, что в сервере не реализованы функции, необходимые для обслуживания этого запроса. Ответ передается, например в том случае, когда сервер не может распознать тип запроса;
    • ответ 502 Bad Gateway информирует о том, что сервер, функционирующий в качестве шлюза или прокси-сервера, принял некорректный ответ от сервера, к которому он направил запрос;
    • ответ 503 Service Unavailable говорит от том, что сервер не может в данный момент обслужить вызов вследствие перегрузки или проведения технического обслуживания.
    Ответы 6хх информируют о том, что соединение с вызываемым пользователем установить невозможно:
    • ответ 600 Busy Everywhere сообщает, что вызываемый пользователь занят и не может принять вызов в данный момент ни по одному из имеющихся у него адресов. Ответ может указывать время, подходящее для вызова пользователя;
    • ответ 603 Decline означает , что вызываемый пользователь не может или не желает принять входящий вызов. В ответе может быть указано подходящее для вызова время;
    • ответ 604 Does Not Exist Anywhere означает, что вызываемого пользователя не существует.
    Запросы и ответы на них образуют SIP-транзакцию. Она осуществляется между клиентом и сервером и включает в себя все сообщения, начиная с первого запроса и заканчивая финальным ответом. При использовании в качестве транспорта протокола TCP все запросы и ответы, относящиеся к одной транзакции, передаются по одному TCP-соединению.

    На рисунке 8 представлен пример ответа на запрос INVITE:

    SIP/2.0 200 OK Via: SIP/2.0/UDP kton.bell-tel.соm From: A. Bell To: ; Call-ID: [email protected] Cseq: 1 INVITE Content-Type: application/sdp Content-Length: ... v=0 o=watson 4858949 4858949 IN IP4 192.1.2.3 t=3149329600 0 c=IN IP4 bostcon.bell-tel.com m=audio 5004 RTP/AVP 0 3 a=rtpmap:0 PCMU/8000 a=rtpmap:3 GSM/8000

    Рис. 8 Пример SIP-ответа 200 OK

    В этом примере приведен ответ пользователя Watson на приглашение принять участие в сеансе связи, полученное от пользователя Bell. Наиболее вероятный формат приглашения рассмотрен нами ранее (рис. 7). Вызываемая сторона информирует вызывающую о том, что она может принимать в порту 5004 речевую информацию, закодированную в соответствии с алгоритмами кодирования PCMU, GSM. Поля From, To, Via, Call-ID взяты из запроса, показанного на рисунке 7. Из примера видно, что это ответ на запрос INVITE с полем CSeq:1.

    После того, как мы рассмотрели запросы и ответы на них, можно отметить, что протокол SIP предусматривает разные алгоритмы установления соединения. При этом стоит обратить внимание, что одни и те же ответы можно интерпретировать по-разному в зависимости от конкретной ситуации. В таблицу 5 сведены все ответы на запросы, определенные протоколом SIP.

    Таблица 5. Ответы на Запросы SIP

    Код ответа Пояснение Назначение
    100 Trying Запрос обрабатывается, например, сервер обращается к базам данных, но местоположение вызываемого пользователя в настоящий момент не определено
    180 Ringing Местоположение вызываемого пользователя определено. Ему дается сигнал о входящем вызове
    181 Call Is Being Forwarded Прокси-сервер переадресует вызов к другому пользователю
    182 Queued Вызываемый пользователь временно не доступен, но входящий вызов поставлен в очередь. Когда вызываемый пользователь станет доступным, он передаст финальный ответ
    200 OK Команда успешно выполнена
    300 Multiple Choices Вызываемый пользователь доступен по нескольким адресам. Вызывающий пользователь может выбрать любой из них
    301 Moved Permanently Пользователь изменил свое местоположение, его новый адрес указан в поле Contact
    302 Moved Temporarily Пользователь временно изменил свое местоположение, его новый адрес указан в поле Contact
    305 Use Proxy Вызываемая сторона может принять входящий вызов только в том случае, когда он проходит через прокси-сервер. Вызывающей стороне рекомендуется обратиться к прокси-серверу, адрес которого указан в поле Contact. Ответ передается только терминальным оборудованием (UAS)
    380 Alternative Service Вызов не достиг адресата, но существует альтернативный вариант обслуживания, который указан в теле ответа. Например, вызов может быть переадресован к речевому почтовому ящику
    400 Bad Bequest В запросе обнаружена синтаксическая ошибка
    401 Unauthorised Требуется проведение процедуры авторизации пользователя
    402 Payment Required Требуется предварительная оплата услуг
    403 Forbidden Запрос не будет обслуживаться сервером и не должен передаваться повторно
    404 Not Found Сервер не обнаружил вызываемого пользователя в домене, указанном в поле Request-URI
    405 Method Not Allowed Не разрешается передавать запрос этого типа на адрес, указанный в поле Request-URI. В поле Allow ответа указываются разрешенные типы запросов
    406 Not Acceptable Ответы, генерируемые вызываемой стороной, не будут поняты вызывающей стороной
    407 Proxy Authentication Required Клиент должен подтвердить свое право доступа к прокси-серверу
    408 Request Timeout Сервер не может передать ответ, например, указать местоположение вызываемого пользователя, в течение промежутка времени, специфицированного в поле Expires запроса. Вызывающий пользователь может повторно передать запрос через некоторое время
    409 Conflict Обработка запроса REGISTER не может быть завершена из-за конфликта между действием, определенным в параметре action запроса, и текущим состоянием ресурсов
    410 Gone Сервер больше не имеет доступа к запрашиваемому ресурсу и не знает, куда переадресовать запрос
    411 Length Required Требуется указать длину тела сообщения в поле Content-Length
    413 Request Entity Too Large Размер запроса слишком велик для обработки
    414 Request-URI Too Large Адрес, указанный в поле Request-URI, оказался слишком большим, поэтому его интерпретация невозможна
    415 Unsupported Media Type Запрос содержит не поддерживаемый формат тела сообщения
    420 Bad Extension Сервер не понял расширение протокола, специфицированное в поле Require
    480 Temporarily not available Вызываемый пользователь временно недоступен
    481 Call Beg/Transaction Does Not Exist Посылается в ответ на получение запроса ВYЕ, не относящегося к текущим соединениям, или запроса CANCEL, не относящегося к текущим запросам
    482 Loop Detected Сервер обнаружил, что принятый им запрос передается по замкнутому маршруту (в поле Via уже имеется адрес этого сервера)
    483 Too Many Hops Сервер обнаружил в поле Via, что принятый им запрос прошел через большее количество прокси-сервером, чем разрешено в поле Max-Forwards
    484 Address Incomplete Сервер принял запрос с неполным адресом в поле То или Request-URI. Требуется дополнительная адресная информация
    485 Ambiguous Адрес вызываемого пользователя неоднозначен. В заголовке Contact ответа может содержаться список адресов, по которым этот запрос можно передать
    486 Busy Here В настоящий момент вызываемый пользователь не желает или не может принять вызов на этот адрес. Ответ не исключает возможности связаться с пользователем по другому адресу
    500 Internal Server Error Внутренняя ошибка сервера
    501 Not Implemented В сервере не реализованы функции, необходимые для обслуживания запроса. Ответ передается в том случае, когда сервер не может распознать тип полученного им запроса
    502 Bad Gateway Сервер, функционирующий в качестве шлюза или прокси-сервера, принимает некорректный ответ от сервера, к которому он направил запрос
    503 Service Unavailable Сервер не может в данный момент обслужить вызов вследствие перегрузки или проведения технического обслуживания
    504 Gateway Timeout Сервер, функционирующий в качестве шлюза или прокси-сервера, в течение установленного интервала времени не получил ответ от сервера (например, от сервера определения местоположения), к которому он обратился для завершения обработки запроса
    505 SIP Version not supported Сервер не поддерживает данную версию протокола SIP
    600 Busy Everywhere Вызываемый пользователь занят и не желает принимать вызов в данный момент. Ответ может указывать подходящее для вызова время
    603 Decline Вызываемый пользователь не может или не желает принимать входящие вызовы. В ответе может быть указано подходящее для вызова время
    604 Does not exist anywhere Вызываемого пользователя не существует
    606 Not Acceptable Вызываемый пользователь не может принять входящий вызов из-за того, что вид информации, указанный в описании сеанса связи в формате SDP, полоса пропускания и т.д. неприемлемы