SIP-шлюзы

Материал из Call Office Wiki
Перейти к навигации Перейти к поиску

SIP-шлюзы — это устройства, работающие по протоколу SIP.

SIP-серверы могут быть аппаратными (отдельная железка), программными (один из распространенных — Asterisk) или предоставляться в виде сервиса.

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

  • Promosms. Для передачи SMS используются прямые подключения к SMS-центрам операторов, благодаря чему достигается стабильность и высокая скорость доставки. Существует возможность получения входящего SMS-номера для приёма входящих сообщений. Предоставляется гарантия защиты и конфиденциальности информации. Возможность тестового доступа.
  Настройки Call Office для отправки сообщений через PromoSMS.
  Возможности: Исходящие SMS.
  • Sipnet. Поддерживает любое оборудование и программы, которые работают по этому протоколу. Предоставляется возможность звонить одновременно по нескольким номерам. Можно указать, какой номер будет определяться у абонента при звонке, или скрыть его. Есть возможность тестового доступа.
  Настройки Call Office для звонка через Sipnet.
  Возможности: Входящие звонки, Исходящие звонки.
  • ГлобалТелеком. Представляет ссвязь по протоколу SIP с неограниченным количеством линий для исходящей связи со 100% передачей АОН. Существует возможность предоставления бесплатного теста услуг.
  Возможности: Входящие звонки, Исходящие звонки.
  • MTT. На сети МТТ установлены 6 международных транзитных узлов связи, организованы международные точки присутствия МТТ во Франкфурте-на-Майне, Стокгольме, Лондоне, Париже, Амстердаме, Брюсселе, Нью-Йорке, Гонконге, а также в Узбекистане, Кыргызстане, Таджикистане. Предоставляется возможность подключения номера 8-800-ХХХ-ХХХХ.
  Возможности: Входящие звонки, Исходящие звонки.

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

Если вы пишете свой скрипт с использованием нашего COM-объекта, номер для большинства SIP-шлюзов следует набирать в формате:

  <номер телефона>@<адрес SIP-шлюза>

Дополнительные параметры настройки SIP

Call Office позволяет указывать дополнительные параметры протокола SIP. Параметры указываются в 32-битной версии реестра в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Wentor\Call Office\SIP (если раздел не существует, его нужно просто создать). В этом разделе можно указывать следующие параметры:

  • BindToAddress (строка) - указать ip-адрес интерфейса через который нужно отправлять запросы к SIP-шлюзу. Эта возможность необходима, если на вашем компьютере несколько ip-адресов и запросы к SIP-шлюзу нужно отправлять через указанный адрес.
  • StunServer (строка) - позволяет задать имя STUN-сервера. STUN-сервера используются для автоматического определения топологии сети. Это позволяет автоматически определить маршрут до SIP-шлюза через сетевые устройства различного вида (NAT, шлюзы, маршрутизаторы). Этот параметр следует указывать, если программа не получает ответа от SIP-сервера. В качестве значения можно указать общедоступный STUN-сервер: stun.ekiga.net.
  • UserId (строка) - позволяет задать имя пользователя User ID, в случае, если он отличается от Auth ID. Перекрывается параметром LineURL.
  • CallerId (строка) - позволяет указать имя/номер телефона (Display Name) для исходящих звонков. Перекрывается параметром LineURL и функцией SetCallerId.
  • LineURL (строка) - позволяет задать идентификационную информацию клиента в стандартном виде: "<CallerId>" <sip:<user>@<ip>;transport=UDP>. Перекрывает параметр UserId и CallerId.
  • Proxy (строка) - позволяет указать адрес прокси-сервера.
  • TCPPort (DWORD) - позволяет указать номер порта TCP.
  • UDPPort (DWORD) - позволяет указать номер порта UDP.
  • EnableDNS (DWORD) - использование DNS (0 - запрещено, 1 - разрешено (по умолчанию)).
  • UseRport (DWORD) - позволяет указать использование rport (0 - запрещено, 1 - разрешено).
  • KeepAliveTime (DWORD) - ненулевое значение включает отправку запросов поддержки соединения. Время между посылками запросов указывается в секундах (по умолчанию отправка запросов выключена). Тип запросов определяется параметром KeepAliveType, если не указан используется тип 2.
  • KeepAliveType (DWORD) - тип отправки запросов поддержки соединения:
    • 0 - отправка символов CR/LF;
    • 1 - отправка запроса STUN;
    • 2 - отправка запроса PING протокола SIP;
    • 3 - отправка запроса OPTIONS протокола SIP;
  • WaitForAnswer (DWORD) - позволяет включить программное распознавание голосового ответа абонента (0 - выключено, 1 - включено). Некоторые SIP-шлюзы сигнализируют о том, что абонент снял трубку сразу после набора номера. Как правило, это связано с особенностями настройки шлюза или его подключения к телефонной сети. В этом случае программа всегда будет определять, что трубка снята, сразу после набора номера, не дожидаясь реального ответа абонента. Лучшим способом решить эту проблему является правильное подключение или настройка шлюза, но в некоторых случаях это невозможно. Именно для таких случаев и предназначен этот параметр. При ненулевом значении, после набора номера программа будет определять ответ абонента программным способом.
  • AudioCodec (строка) - позволяет задать аудио кодеки и порядок их использования. Кодеки задаются в виде строки разделенной запятыми, например: pcma,pcmu,speex,gsm.

Помимо указания параметров в реестре их можно указать в строке открытия устройства в виде:

 <имя параметра>=<значение>;
 например: SIP\SIP;BindToAddress=192.168.0.1;

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 - пользователь временно сменил местоположение

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 Expired Authorization - время регистрации истекло

SIP/2.0 402 Payment Required - требуется оплата (зарезервирован для использования в будущем)

SIP/2.0 403 No Such User - нет такого пользователя, ошибка в номере, логине или пароле

SIP/2.0 403 User Disabled - пользователь отключен

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 408 Request Timeout - время обработки запроса истекло: Абонента не удалось найти за отведенное время

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 - временно недоступное направление попробуйте позвонить позже

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 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 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 - соединение с сервером было установлено, но отдельные параметры, такие как тип запрашиваемой информации, полоса пропускания, вид адресации не доступны


(оригинал находится в базе знаний Sipnet)