Техническая база знаний

Заказать консультацию


Материал от эксперта

SIP

Параметры протокола

НаименованиеПо-умолчаниюОписание
RTP Timeout60Устанавливает ограничение по времени ожидания активности потока RTP в секундах. Если нет активности потока RTP (т.е. не передаются пакеты в течении указанного количества секунд), соединение разрывается.
Timer B32000Устанавливает ограничение по времени ожидания ответа от вызываемой стороны при инициализации вызова (INVITE) в миллисекундах. Если не был получен ответ на отправленный пакет INVITE в течении указанного времени, попытка вызова узла прекращается, канал имеет статус CONGESTION.
FromuserasteriskУказывает значение, которое будет подставляться в качестве "номера" абонента А (вызывающего), при вызове удалённого узла.
DefaultuserasteriskУказывает имя пользователя, которое будет использоваться при ответе сервером телефонии на запрос авторизации от оператора связи.

Параметры канала связи

Если параметр имеет пустое значение, то его не нужно писать в конфигурационный файл.

НаименованиеЗначенияОписание

[name]

не может быть пустым

Имя канала. Также используется для аутентификации входящих запросов, соответствует имени пользователя при проверке аутентификации удалённого узла.

type

"peer", "friend", не может быть пустым

Тип подключаемого канала.Устанавливается в зависимости от значения параметра `insecure`. В частности, если параметр `insecure` принимает значение "no", то данный параметр принимает значение "friend". В других случаях данный параметр принимает значение "peer".

host

 

"Домен", или адрес удалённого SIP узла, для которого создаётся канал, задаётся пользователем. Не может быть пустым.

port

 

Порт, на котором удалённый узел слушает входящие подключения. Не может быть пустым. Может быть в диапазоне 1000 - 65536

defaultuser

 

"Имя пользователя", используемое для аутентификации на удалённом узле. Задаётся пользователем. Может быть пустым.

secret

 

"Пароль" используемый для аутентификации на удалённом узле. Задаётся пользователем. Может быть пустым.

remotesecret

 

Пароль для регистрации на удалённом узле. Принимает значение равное значению параметра secret. Устанавливается только в том случае, если пользователь поставил галку "Регистрироваться в домене".

callbackextension

 

Номер, куда должны поступать входящие вызовы. Задаётся пользователем. Устанавливается только в том случае, если пользователь поставил галку "Регистрироваться в домене".

insecure

 

Параметр проверки аутентификации входящего запроса на подключение. Устанавливается пользователем. Может принимать значение "port,invite", "no", "port", "invite". Автоматически принимает значение "no", если параметру host устанавлно значенеи "dynamic"

fromuser

 

Подстановка "номера" в адресе вызывающего при исходящем вызове. Задаётся пользователем. Может быть пустым.

fromdomain

 

подстановка "домена" в адресе вызывающего при исходящем вызове. Задаётся пользователем. Может быть пустым.

disallow

 

Прописывается для всех каналов перед списком разрешенных кодеков

allow

 

Строка из списка разрешенных голосовых кодеков, по одной строке для каждого кодека. Значение не может быть пустым.

dtmfmode

 

Метод сигнализации DTMF, не может быть пустым, задаётся пользователем.

context

 

Часть номерного плана (контекст), в котором обрабатываются входящие вызовы по данному каналу. Задаётся пользователем, не может быть пустым.

nat

"yes", "no", "force_rport", "comedia", "auto_force_rport", "auto_comedia", "force_rport,comedia"

Параметр NAT, указывает, является ли соединение между узлами за NAT. Устанавливается пользователем, не может быть пустым.

  • no - не выполнять никакой специальной обработки NAT, кроме той что указана в RFC 3581.
  • force_rport - даже если ни одного параметра rport не было указано, действовать, так, как если бы он был.
  • comedia - отправлять RTP пакеты обратно к порту с которого они были получены, игнорируя требуемый порт в SDP заголовке.
  • auto_force_rport - если Asterisk сможет определить, что устройство находится за NAT, установить опцию force_rport. Значение по умолчанию, если не указана опция nat.
  • auto_comedia - если Asterisk сможет определить, что устройство находится за NAT, установить опцию comedia.
  • force_rport,comedia - опция заменяющая nat=yes в более новых версия Asterisk.

t38pt_udptl

"yes", "no"

Параметр "Факсы в Т.38", принимает значения yes или no. Устанавливается пользователем, не может быть пустым.

Отладка в asterisk

Команда CLIНазначение
sip set debug ip 192.168.1.5

Включить в CLI отладку по SIP протоколу для IP 192.168.1.5.

После выполнения этой команды в CLI будут отображаться пакеты, которыми обменивается твой сервер с 192.168.1.5 по SIP протоколу (на уровне приложения, конечно, а не ядра системы, т.е. те пакеты, которые были обработаны сервисом asterisk).

sip set debug offОтключить отладку по протоколу SIP.

 

При входящем звонке в CLI отображается множество информации, простыня будет начинаться со строк:

<--- SIP read from UDP:192.168.1.5:5060 --->
INVITE sip:198@192.168.1.79:5060 SIP/2.0

Сообщение "SIP read from" пишет asterisk о том, что получил входящий пакет от 192.168.1.5 Начиная со строки INVITE идёт описание самого полученного пакета.

Пакет INVITE говорит о том, что инициируется звонок. По заголовкам можно понять откуда и куда (From:, To:) - всё довольно читаемо, очень схоже с HTTP заголовками.  

Всё что идёт после строк пакета INVITE

Content-Type: application/sdp
Content-Length: 261

называется SDP информацией (session description protocol), тут отображены сведения куда и на какой порт нужно слать голосовой трафик, по каким кодекам, какой длительностью голос в одном пакете и т.п. Нам пока это не интересно.

Итересно то, что после пакета INVITE, который заканчивается строкой <-------------> идёт процесс парсинга астериском полученных данных. В частности, сразу после окончания INVITE пакета Asterisk пишет, какому описанному каналу он определил этот входящий вызов

Found peer 'trunk1' for '104' from 192.168.1.5:5060

А затем и пишет то, что он будет искать и где по входящему звонку:

Looking for 198 in incoming (domain 192.168.1.79)

 

Нужна строка "Found peer", остальное не важно.

Задаётся пользователем, не может быть пустым.

Наши клиенты

ЦОВ на базе IP АТС FBX :: Core для группы компаний ERG
Система автоматического информирования должников на базе IP АТС FBX :: Core
Автоматизация колл-центра на базе системы IP АТС FBX :: Core с модулем FBX :: Autodialer
Модернизации телефонной сети «Национальной фруктовой компании»
Реорганизация IP телефонии для федеральной сети аптек Здоров.ру
Телефонная сеть для компании Кухонный двор на базе IP АТС FBX :: Core
Телефонная сеть на базе IP АТС FBX :: Core для АО «Теплоэнергосервис»
Автоматизация отдела продаж и миграция с аналоговой телефонии на VoIP
Организация ЦОВ для онлайн-кинотеатра IVI
Автоматизация работы операторов колл-центра поставщика кофейной продукции, компании КофеКАП
ЦОВ для ОФД Казахстана на базе IP АТС FBX :: Core
Система управляемых телеконференций
Система автодозвона и информирования для администрации района
Система IP АТС на базе программного продукта IP АТС FBX :: Core
Объединение территориально распределенных офисов и Call-центров
Система VOIP-телефонии на базе программного продукта IP АТС FBX :: Core
Миграция с аналоговой телефонии на VoIP для стоматологического центра
Автоматизация отдела продаж, путем интеграции VoIP телефонии с CRM
Автоматизации работы операторов на базе FBX :: Call-center
Организована VoIP телефония для трех филиалов медицинского центра
Автоматизация колл-центра на базе FBX :: Call-center
IP АТС FBX :: Core для филиала компании Баусервис

раскажите нам о своей задаче