SIP и RTP
저자: Кожемякин Юрий
1. Кодеки передачи голоса Кодек - алгоритм кодировния и декодирования сигнала
1.1. Кодеки бывают со сжатием(G729 G723 GSM iLBC)
1.2. и без сжатия (G711)
2. Настройка драйвера канала PJSIP (пользователи)
3. Идентифицировать абонента по ip адресу позволяет bind и expire
4. IAX2 - это проприетарный протокол который может использоваться для соединения 2х и более систем на базе Asterisk работает на порту 4569 UDP
4.1. он пробивает NAT и заворачивает сигнализацию и полезный трафик в одно соединение, в отличии от SIP и PJSIP которые используют один протокол для передачи и один для сигнализации
5. ВОТ ЭТО ОПИСЫВАЕТ ВОТ ЭТО
6. SIP (Session Initiation Protocol) — это протокол, используемый для установления, управления и завершения мультимедийных сессий между пользователями в сети. Однако он не отвечает за доставку пакетов внутри сессии. Работает на порту - 5060 UDP
6.1. Зачастую может быть такое, что сессия между двумя устройствами существует, но возникает ошибка при передаче самого звука, проблема лежит на стороне RTP
6.1.1. 4 основные задачи SIP
6.1.1.1. 1 согласование параметров вызова, кодеков, ip адресов, rtp портов
6.1.1.2. 2 поиск абонентов имеющих динамические адреса
6.1.1.3. 3 авторизация абонентов (система проверяет что абонент действительно тот за кого себя выдаёт)
6.1.1.4. 4 проверка доступности SIP канала
6.2. Объекты SIP
6.2.1. 1 UA (user agent) - оконечное оборудование - телефоны, софтфоны, компьютеры
6.2.2. 2 Registrar Server - сервер с БД о всех UA
6.2.3. 3 Proxy Server - сервер через который устанавливаются и проходят вызовы
6.2.4. 4 Redirect Server - сервер который предназначен для маршрутизации вызовов в другие домены
6.2.5. 5 SIP Gateway - сервер или шлюз конвертирующий вызовы из протокола SIP в протоколы или технологии других сетей, например в аналоговые линии или Е1
7. RTP (Real-time Transport Protocol) — это сетевой протокол, используемый для передачи аудио и видео данных в реальном времени. Работает на ранее заданном порту
7.1. Функция B2BUA (Back-to-back user agent) для установки прямого соединения между хостами
8. Asterisk объединяет эти функции
8.1. В конкретных случаях Asterisk может выступать как UA для регистрации на серверах операторов связи
9. SDP (Session Description Protocol) — сетевой протокол прикладного уровня, предназначенный для описания сессии передачи потоковых данных
9.1. Он согласует ip адреса порты кодеки
10. Ответы SIP
10.1. 100 - информационные ответы (запрос обрабатывается) 180 местоположение вызываемого пользователя определено выдан сигнал о входящем вызове 181 прокси, сервер переадресует вызов к другому пользователю 183 используется для того, чтобы заранее получить описание сеанса информационного обмена от шлюзов на пути к вызываемому пользователю
10.2. 2хх - ответы о завершении вызова 200 - ОК успешное завершение 202 - запрос принят для обработки, используется для справки о состоянии обработки
10.3. 3хх - сообщения о переадресации 300 - указывает несколько SIP адресов, по которым можно найти вызывемого пользователя 301 - вызываемый пользователь больше не находится по адресу, указанному в запросе 302 - пользователь временно сменил местоположение
10.4. 4хх - ошибки связанные с невозможность обработать запрос 400 запрос не понят из за синтаксических ошибок в нём, ошибка в сигнализации, скорее всего что то с настройками оборудования 401 - нормальный ответ сервера о том что пользователь ещё не авторизовался, обычно после этого абонентское оборудование отправляет на сервер новый запрос, содержащий логин и пароль 403 - нет такого пользователя, ошибка в номере, логине или пароле 403 - пользователь отключен 403 - абонент не зарегистрирован 404 - вызываемый абонент не найден, нет такого SIP номера 406 - неправильная конфигурация кодеков 406 - пользователь недоступен 407 - необходима аутентификация на прокси сервере
10.5. 5хх - ошибки сервера 500 внутренняя ошибка сервера 500 неопределенная причина 501 в сервере е реализованы какие либо функции, необходимые для обслуживания запроса: метод запроса SIP не поддерживается 502 сервер функционирующий в качестве шлюза или прокси сервера, принимает некорректный ответ от сервера, к которому он направил запрос 503 сервер не может в данный момент обслужить вызов вследствие перезагрузки или проведения тех обслуживания 513 сервер не в состоянии обработать запрос из за боьшой длины сообщения
10.6. 6хх - глобальные ошибки 600 вызываемый пользователь занят в текущий момент и не желает принимать вызов 603 пользователь не принимает вызовы причина неизвестна 604 вызываемого пользователя не существует 606 соединение с сервером было установлено, но отдельные параметры, такие как тип запрашиваемой информации, полоса пропускания, вид адресации не доступны