Настройка SIP в Asterisk - sip.conf

asterisk sip.conf Файл 'sip.conf' отвечает за настройку внутренних и внешних каналов SIP в Asterisk. Объекты конфигурации - пиры, описываются в отдельных секциях, которые обозначаются именами в [квадратных скобках]. Действует принцип наследования, как и в большинстве конфигов Asterisk: все что задано после имени в квадратных скобках, относится к одному объекту, пока не будет объявлен следующий.
Предопределенная категория - [general], задает глобальные настройки драйвера SIP Asterisk, которые распространяются на все объекты, но могут быть переопределены для отдельных пиров в их категориях.

Asterisk SIP trunk

SIP транк в Asterisk, это совокупность объектов для совершения исходящих и приема входящих вызовов по протоколу SIP. Выделим три основных объекта настроек транков в Asterisk:

  • register - формирует запрос SIP REGISTER для аутентификации на сервере провайдера.
  • peer - SIP объект, через который совершаются вызовы. Формирует запросы OPTIONS, INVITE и тд.
  • user - SIP объект для создания канала входящего вызова , его аутентификации и определения контекста транка.

Соединение обозначенное как user, это определение любой системы или оконечной точки (endpoint), которой мы разрешаем входящие вызовы на наш сервер Asterisk. Соединение type=user не обозначает никакого пользователя, а только создает канал и указывает контекст, для входа в диалплан аутентифицированных входящих вызовов.
Через соединение обозначенное как peer совершаются исходящие вызовы.

Asterisk Register String

Register string - строка регистрации определяющая параметры SIP запроса REGISTER.
В секции [general] добавьте определение register:

register ⇒ sipuser[:secret[:authuser]]@host[:port][/extension]

  • sipuser - идентификатор пользователя на SIP сервере провайдера.
  • authuser - не обязательное имя пользователя для авторизации на SIP сервере
  • secret - пароль пользователя.
  • host - домен или ip адрес SIP сервера.
  • port - на какой порт посылать запросы регистрации серверу host. Если не задано, то по умолчанию - 5060
  • /extension - расширение для обработки вызовов в диалплане Asterisk. Extension - подставляется в SIP заголовок <contact>. Это значение используется удаленным SIP сервером, когда ему необходимо совершить вызов в сторону Asterisk. Задайте в контексте транка соответствующее расширение, для обработки входящих вызовов, например: exten ⇒ _1234567,1,Queue(queuename), где 1234567 - extension.
    • Если данный параметр не указан в строке регистрации, удаленный SIP сервер, вероятнее всего, использует параметр sipuser в качестве идентификатора вызова.

Вышеприведенный пример, упрощенный вариант строки регистрации. Полный вариант содержит больше информации:
register => [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry]

Обратите внимание на параметр transport, например tls:
register => tls://user:password@host


Строка регистрации имеет напрямую связанные с ней параметры [general]:

  • registertimeout=20 - повторять попытки регистрации каждые 20 секунд (по умолчанию)
  • registerattempts=10 - кол-во неудачных попыток регистрации. По умолчанию - 0 (т.е. продолжать бесконечно)

Для контроля SIP сообщений, статуса пиров и регистраций удобно использовать команды Asterisk CLI.
Вот некоторые из них:

  • sip show peers - Отобразить все пиры и их статус.
  • sip show peer <имя пира> - Показать конфигурацию определенного пира.
  • sip show registry - Отобразить статус регистраций на удаленном UAS.
  • sip set debug on - Показывать все SIP сообщения.
  • sip reload - Перечитать конфигурационный файл.
  • sip show settings - Показать текущую конфигурацию chan_sip.

Для получения подробной информации о командах смотрите Asterisk CLI - интерфейс командной строки.

Пример вывода команды sip show registry в консоли Asterisk:

#asterisk -rx 'sip show registry'
Host          dnsmgr   Username   Refresh   State        Reg.Time
sip.server:5060  N    1234567       105     Registered    Mon, 19 Dec 2016 11:48:03

Возможные состояния (state):

  • Registered - зарегистрирован.
  • Request Sent - запрос отправлен, ожидает ответа.
  • No Authentication - ответ отрицательный, регистрация отвергнута.

Пример SIP запроса REGISTER

Пример SIP запроса REGISTER

Reliably Transmitting (NAT) to sip.server:5060:
REGISTER sip:sip.server SIP/2.0
Via: SIP/2.0/UDP asterisk.externip:5060;branch=z9hG4bK6eec0290;rport
Max-Forwards: 70
From: <sip:userid@sip.server>;tag=as6e3f5edb
To: <sip:userid@sip.server>
Call-ID: 6c3aef7a75d50db930fae9040cef6cf0@192.168.0.231
CSeq: 102 REGISTER
Supported: replaces, timer
User-Agent: Asterisk 13.9.0
Expires: 120
Contact: <sip:extension@asterisk.externip:5060>
Content-Length: 0


Регистрация необходима, чтобы принимать входящие вызовы от провайдера, если используется SIP транк с аутентификацией. Как правило, это касается услуг связи предоставляемых через публичную сеть. Но могут быть и другие варианты SIP транков, без аутентификации, через серую сеть провайдера, например. Или для связи двух доверенных серверов Asterisk в корпоративной сети. В этом случае регистрация не требуется, аутентификация, обычно, происходит по ip адресу. Для такого транка достаточно создать пир friend с минимумом параметров. Например:

[siptrunk-no-auth]
host=172.16.0.1
type=friend
disallow=all
allow=alaw
allow=opus
context=from-trunk
qualify=yes

Asterisk SIP peer

Для совершения исходящих вызовов должен быть создан объект type=peer.

Нажмите, чтобы отобразить

Нажмите, чтобы скрыть

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

Конфигурация пиров осуществляется при помощи текстовых блоков, отделенных друг от друга квадратными скобками. Имя в квадратных скобках может совпадать с параметром 'defaultuser', но не обязательно.

[имя_пира]
type=peer, user или friend
параметр1=значение
параметр2=значение

Где имя_пира - это произвольное имя SIP устройства, на которое можно ссылаться из других конфигурационных файлов. Параметр type может принимать одно из трех значений: type = value

  • peer: SIP объект, через который совершаются исходящие вызовы.
  • user: SIP объект, через который принимаются входящие Asterisk .
  • friend: Запись, которая одновременно и user и peer. Этот тип, как правило, задается телефонам и другим оконечным устройствам. Для SIP пользователей этого типа Asterisk создаёт два объекта, один type=peer и один type=user, с одинаковыми именами.

Приведенный пример, являет собой типовой, самый распространенный вариант конфигурации sip транка с регистрацией через публичную сеть:

[siptrunk]
type=friend               ;peer и user в одном флаконе
host=sip.server.tld       ;sip сервер провайдера
port=5060                 ;порт сигнализации sip сервера
transport=udp             ;транспорт для sip протокола

defaultuser=sipuser       ;имя пользователя
secret=password           ;пароль

fromuser=sipuser          ;переопределяет user в sip заголовке From: <sip:user@domain>;
fromdomain=sip.server.tld ;переопределяет domain в sip заголовке From: <sip:user@domain>;
insecure=port,invite      ;port - не требовать совпадения порта в инвайте
                          ;invite - не требовать аутентификации в инвайте
nat=force_rport,comedia   ;политики работы через nat
canreinvite=no            ;не соединять медиа потоки peer-to-peer в обход сервера
directmedia=nonat         ;тоже что canreinvite в новой редакции

dtmfmode=rfc2833          ;использовать спецификацию rfc2833 для передачи DTMF сигналов
context=from-siptrunk     ;контекст обработки входящих вызовов в extensions.conf.

disallow=all              ;запретить использование всех кодеков, чтобы затем разрешить определенные.
allow=alaw
allow=ulaw
allow=g729

В приведенном выше примере, для простоты, использован type=friend. Как уже было сказано, в этом случае будут созданы два SIP объекта peer и user с одинаковыми именами и одинаковыми общими параметрами. Для объекта user два ключевых параметра, это host и context. В некоторых случаях, хост пира через который совершаются исходящие вызовы,через провайдера и хост user, через который принимаются вызовы, могут отличаться. В этом случае требуется создавать два типа объектов - peer и user соответственно, для одного транка. Но в большинстве случаев, можно использовать тип friend.
Параметры host и port те же, что и в строке регистрации, если провайдером не оговорено другое.
Транспорт, как правило UDP, задан по умолчанию в секции [general]. Укажите только если требуется задать специфический транспорт.
defaultuser и secret параметры аутентификации для исходящих вызовов, обычно те же, что и userid и password в строке регистрации.
Параметры fromuser и fromdomain принудительно подставляют в поле From: исходящего инвайта, указанные значения, что позволяет избежать отправки в сторону провайдера данных из инвайта пользователя.
Параметр insecure выключает аутентификацию входящих вызовов. В большинстве случаев, провайдер не посылает параметры аутентификации в инвайте, поэтому надо указывать insecure=invite.
Если сервер Asterisk находится за NAT, а сервер провайдера в публичной сети интернет, то требуется указать тип nat=force_rport,comedia, чтобы Asterisk указывал в качестве обратного адреса параметры назначенные в [general] - externip. Смотрите подробнее: NAT, SIP и Asterisk
Спецификация dtmfmode должна совпадать со стороной провайдера.
В указанном контексте будет определено, куда поступают входящие вызовы. Рассмотрим маршрутизацию вызовов в следующем разделе.

Входящая и исходящая маршрутизация sip транка в диалплане Asterisk

В диалплане (extensions.conf ) можно использовать разнообразный синтаксис для вызова (dial ) SIP устройств.

SIP/devicename
SIP/username@domain   (SIP uri)
SIP/username[:password[:md5secret[:authname[:transport]]]]@host[:port]
SIP/devicename/extension
SIP/devicename/extension/IP или Host
SIP/username@domain/IP или Host

В файле extensions.conf, для совершения исходящих вызовов, у Вас должно присутствовать правило набора, примерно такого вида:

exten => _9.,1,Dial(SIP/${EXTEN:1}@siptrunk-peer-name,30,r)

Где siptrunk-peer-name имя SIP пира, назначенное транку. Переменная ${EXTEN:1} получает номер екстеншена и удаляет первую цифру- '9'. Подробная информация приведена в Asterisk Dialplan - extensions.conf.

Пример контекста для входящих вызовов в файле 'extensions.conf':

[from-siptrunk]
exten => _1234567,1,Dial(SIP/100&SIP101,180,tr) ; вызвать внутренние номера 100 и 101 одновременно.
exten => _1234568,1,Queue(queuename) ; поместить вызов в очередь
exten => _1234569,1,Dial(PJSIP/89219981138@pjsiptrunk,60,tr) ; перенаправить вызов на внешний номер

Где from-siptrunk контекст заданный user или friend объекту.

Настройка SIP пира для регистрации внутренних абонентов

Как уже отмечалось Asterisk не делает особых различий между транками и абонентами, поэтому конфиг телефона будет похож на SIP транк, но все же немного другой.

[777]
host=dynamic
type=friend
secret=**password**
qualify=yes
nat=no
port=5061
directmedia=no
context=from-internal
disallow=all
allow-alaw
allow=ulaw
alow=gsm
deny=0.0.0.0/0.0.0.0
permit=192.168.0.0/255.255.0.0
username=777
fromuser=777
dial=SIP/777
mailbox=777@device
call-limit=2
callcounter=yes
faxdetect=no
callgroup=1
pickupgroup=1

Рассмотрим некоторые опции:

  • host - dynamic или ip адрес с которого подключается абонент.
  • type - для абонентского пира это обычно friend
  • secret - пароль, использование сложных паролей убережет вас от многих неприятностей, даже если вы считаете сеть безопасной, в дальнейшем все может измениться и ваша предусмотрительность окажется очень кстати.
  • qualify - посылать SIP запросы OPTIONS для проверки доступности устройства (возможно это является избыточным, т.к. большинство устройств сами обновляют регистрацию, через заданный в настройках интервал)
  • nat - если телефон находится в локальной сети то 'no', если регистрируется из интернет или другой интра сети, то 'force_rport'
    • nat = no - без NAT RFC3581
    • nat = force_rport - использовать rport, даже если его нет
    • nat = comedia - отправить медиа поток на порт Asterisk 12, независимо от указаний SDP.
    • nat = auto_force_rport - установить 'force_rport' параметр если Asterisk обнаружил NAT (по умолчанию)
    • nat = auto_comedia - установить 'comedia' параметр если Asterisk обнаружил NAT
  • directmedia - направлять медиа поток (RTP трафик) через сервер или напрямую между каналами (пирами).

см. также по теме:NAT, SIP и Asterisk

  • port - порт SIP сигнализации устройства (не путайте c bindport asterisk, который для данного драйвера SIP в Asterisk может быть только один, 5060 по умолчанию, но для нового драйвера Asterisk pjsip.conf, может, или даже должен, быть назначен уникальный порт для каждого транспорта)
  • deny - сети из которых запрещено подключение
  • permit - сети из которых разрешено подключение (если абонент находится в локальной сети, назначьте ему параметр permit=192.168.1.0/255.255.255.0 и регистрация на этом пире будет разрешена только из этой подсети. ACL очень действенная мера безопасноcти. См. также Asterisk:acl.conf
  • call-limit -сколько одновременных вызовов (concurrent calls) может производится через данный канал. Хорошая идея, как для локальных так и для удаленных абонентов. Если пир взломан, злоумышленники не смогут пропустить через канал больше указанного кол-ва вызовов зараз(ы).

'call-limit' опция признана устаревшей и заменена на 'callcounter'. Установить ограничение одновременных вызовов теперь можно переменной канала function 'GROUP_COUNT'
пример использования данного метода можно помотреть здесь: Ограничение количества одновременных вызовов по набранному номеру.

  • callgroup - Группа вызова
  • pickupgroup - Группа перехвата. Назначьте одинаковый номер группы для телефонов, которые должны перехватывать вызовы друг у друга при помощи featurecode - pickupexten, назначенного в features.conf

Настройка нескольких SIP пиров по шаблону

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

[local_pattern](!)
host=dynamic
type=friend
context=from-internal
nat=no
disallow=all
allow=ulaw
allow=alaw

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

[776](local_pattern)
username=776
secret=super_puper_secret_1
callerid=8123216111
[777](local_pattern)
username=777
secret=super_puper_secret_2
callerid=8121234567

Asterisk sip.conf General SIP Options

Полный список параметров general sip.conf

Следующие параметры используются в общей [general] секции sip.conf:

allowexternalinvites

Если установлено 'no', запрещает INVITE и REFER от внешних (не из localnet) доменов. См domain

 allowexternalinvites=yes|no

allowguest

Если 'no', запрещает гостевые(без аутентификации) подключения. По умолчанию sipguest подключения разрешены.

 allowguest=no|yes

allowoverlap

Вкл. или Выкл набор по одной цифре (т.е. каждая набранная цифра будет сразу отправляться в канал)

 allowoverlap=no|yes

allowsubscribe

Разрешить ли внешним устройствам подписку (SUBSCRIBE) на информацию о статусе екстеншена. По умолчанию - 'yes':

 allowsubscribe=yes|no

allowtransfers

Когда установлено 'no', запрещает любые трансферы, если не переопределено в настройках пира.

 allowtransfers=no|yes

alwaysauthreject

Если включено, всегда отвечает на INVITE и REGISTER, SIP сообщением 401 Unauthorized, вместо того чтобы сообщить вызывающему о существовании запрашиваемого user или peer. Важная настройка безопасности

alwaysauthreject=no|yes

autodomain

Установите эту опцию 'yes', чтобы добавить локальное HOSTNAME и локальный IP адрес в список доменов:

 autodomain=yes|no

bindaddr and bindport

Эти параметры определяют IP адрес и порт на которых Asterisk будет слушать SIP запросы. Для драйвера канала SIP Asterisk 'chan_sip' можно назначить только один адрес и порт для всех подключений для UDP и один порт для TCP транспорта, в отличии от нового драйвера PJSIP. По умолчанию адрес не задан и лучше так и оставить. Некоторые рекомендуют изменять порт по умолчанию 5060, на другой, в целях безопасности. Но помните, что это только одна из мер безопасности, не самая важная, и не гарантирует вам полной защиты от злоумышленников.

bindaddr=0.0.0.0
bindport=5060

Вы можете задать независимые для UDP, TCP и TLS транспорта значения udpbindadd, tcpbindaddr и tlsbindaddr

buggymwi

Вкл. эту опцию, чтобы избежать ошибок при сообщении с некоторыми ip телефонами при отправке MWI сообщений.

buggymwi=no|yes

callevents

Установите 'yes', если хотите генерировать информацию о SIP событиях для AMI (asterisk manager interface)

 callevents=yes

checkmwi

Время в секундах, между проверками голосовой почты :

 checkmwi=30

compactheaders

Использовать или нет компактные SIP заголовки.

 compactheaders=yes|no

defaultexpiry

Срок действия регистрации в секундах для входящих и исходящих регистраций. При входящей регистрации, этот параметр задается клиентской стороной, и заданное здесь значение используется, только если клиент не сообщил свое занчение. Для исходящих регистраций этот параметр сообщается удаленной стороне UAS (user agent server)

 defaultexpiry=300

directrtpsetup

Данная опция позволяет управлять RTP соединением между двумя оконечными точками без re-INVITE(экспериментальная опция, используйте на свой страх и риск).

 directrtpsetup=yes|no

domain

Задает имя домена сервера Asterisk по умолчанию. Командой CLI 'sip show domains' выводится список локальных доменов.

 domain=example.com

dumphistory

Вкл. или Выкл. отчет в завершении SIP диалога. SIP history выводится в DEBUG лог канала.

 dumphistory=yes|no

externhost

Когда Asterisk находится за NAT, SIP заголовок обычно использует IP адрес сервера. Если включить данную опцию, Asterisk будет производить периодические DNS опросы для определения имени хоста и заменять IP адрес на 'externhost'.

 externhost=my.hostname.tld

Используйте externip.

externip

externip содержит IP адрес в качестве аргумента. Если Asterisk находится за NAT, SIP заголовок Contact: содержит внутренний IP адрес сервера, тогда удаленная сторона не знает куда отправлять ответы. Параметр externip вкупе с параметром nat=force_rport модифицирует SIP заголовок, сообщая удаленному SIP серверу адрес на который надо слать ответы:

 externip=123.123.123.123

externrefresh

Если все же используется 'externhost', указывает промежуток времени в секундах между запросами DNS.

 externrefresh=30

g726nonstandard

Значения: yes/no, по умолчанию: no. Если клиент собирается для сеанса связи «договориться» использовать звуковой кодек G726-32, с использованием компрессии AAL2, вместо RFC3551 (что требуется для аппаратов фирмы Sipura и шлюзов от Grandstream, и может другим). То это противоречит спецификации RFC3551, клиент должен вместо этого «договориться» использовать AAL2-G726-32

 g726nonstandard=yes

ignoreregexpire (global)

Если ignoreregexpire установлен 'yes', Asterisk сделает одно из двух, в зависимости от настроек пиров: 1)Non-realtime peer Когда регистрация истекает, информация не удаляется из памяти или БД Asterisk и вызовы будут разрешены несмотря на то, что время регистрации истекло.

2)Realtime peers Когда peer сконфигурирован в режиме реального времени, информация о регистрации используется независимо от defaultexpiry

 ignoreregexpire=yes|no

jbenable

Вкл. поддержку RTP jitter buffer на принимающей стороне канала SIP. По умолчанию 'no'. Будет работать, только если удаленная сторона поддерживает эту функцию. подробнее о Джиттер

 jbenable=yes|no

jbforce

Принудительное использование jitter buffer принимающей стороной SIP канала.

 jbforce=yes|no

jbimpl

Использовать фиксированный или подстраиваемый (адаптивный) jitter buffer. fixed jitter buffer всегда использует значение из jbmaxsize adaptive может принимать значение больше jbmaxsize По умолчанию 'fixed':

 jbimpl=fixed|adaptive

Из личного опыта, вкл. 'adaptive' может приводить к весьма плачевным результатам.

jblog

Вкл./выкл jitter buffer frame лог. По умолчанию 'no':

 jblog=yes|no

jbmaxsize

Установите максимальную длину буфера в миллисекундах:

 jbmaxsize=200

jbresyncthreshold

Джиттер буфер порог синхронизации. По умолчанию 1000:

 jbresyncthreshold=1000

icesupport

Использовать Interactive Connectivity Establishment (ICE) в Asterisk

 icesupport=no

limitonpeers

Применять call-limit только для type=peer Это улучшит использование call-limit для устройств настроенных, как type=friend, отделив ограничение call-limit от входящих вызовов.

 limitonpeers=yes|no

localnet

укажет серверу Asterisk какие подсети являются локальными, прозрачными для использования IP адресов сервера, SIP запросы к которым не требуют модификации поля Contact: c использованием externip или externhost

 localnet=192.168.1.0/24
 localnet=172.16.0.0/16

matchexterniplocally

Сверять 'externip' с 'localnet' и производить подстановку, только если 'externip' из локальной подсети. Не совсем ясно, зачем это может понадобиться? Возможно при очень нестандартной топологии сети.

 matchexterniplocally=yes|no

maxexpiry

Максимальная продолжительность регистрации в секундах.

 maxexpiry=3600

minexpiry

Минимальная продолжительность регистрации в секундах.

 minexpiry=60

notifymimetype

Указывает MIME тип используемый для message-waiting indication (MWI) в SIP NOTIFY сообщении.

 notifymimetype=text/plain

notifyringing

Сообщать подписчикам о состоянии вызов (RINGING):

 notifyringing=yes|no

notifyhold

Сообщать подписчикам (subscribers) о состоянии удержание (HOLD):

 notifyhold=yes|no

pedantic

Скурпулезная проверка SIP сообщений. Устанавливает более строгую проверку по стандартам SIP RFC.

 pedantic=yes

realm

Данная установка используется для аутентификации в SIP. Задайте realm полное доменное имя вашего сервера. Имя должно быть совершенно уникальным.

 realm=mybox.example.com

recordhistory

Вкл. или Выкл историю sip для всех каналов.

 recordhistory=yes|no

registerattempts

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

 registerattempts=0

registertimeout

Таймаут между попытками регистрации на другом устройстве.

 registertimeout=30

relaxdtmf

Если плохо распознаются DTMF сигналы, включите данную опцию.

 relaxdtmf=yes|no

rtautoclear

(global) Конфигурация Realtime Peers Указывает должен ли Asterisk обнулять созданные на лету friends по истечении времени регистрации. Если установлено 'yes', по истечении срока регистрации, удалять friends до нового запроса. Если задано число, то оно используется вместо обычного времени регистрации.

rtautoclear=yes|no|seconds

rtcachefriends

(global)

Если rtcachefriends включен, Asterisk будет кэшировать friends(реалтайм пиры), которые приходят из realtime engine, так же, как если бы они сконфигурированы в «sip.conf».

 rtcachefriends=yes|no

rtsavesysname

(global) Определяет, должен ли Asterisk сохранить SystemName в базе данных в режиме реального времени во время регистрации:

 rtsavesysname=yes|no

rtupdate

(global) Если установлено 'yes' Asterisk будет обновлять IP-адрес, порт и период регистрации пиров при регистрации. По умолчанию 'yes':

 rtupdate=yes|no

sipdebug

Указывает, должен или нет Asterisk включать SIP debug сразу при загрузке драйвера канала SIP.

 sipdebug=yes|no

sendrpid

ОТправлять или нет Remote-Party-ID header:

 sendrpid=yes|no

srvlookup

Записи DNS SRV являются одним из способов указания адреса для связи сервером. Используя записи SRV, вы получаете многие преимущества DNS, в то время как отключения SRV DNS лишает вас возможности принимать SIP вызовы на основании доменных имен. В настоящее время поддержка записей SRV в Asterisk несколько хромает. Если несколько записей SRV возвращаются, Asterisk будет использовать только первую запись. Чтобы включить, установите srvlookup = yes в секции [general] файла sip.conf:

 srvlookup=yes

transport

Задает транспорт по умолчанию. По умолчанию 'udp', но может быть 'tcp', 'tls', 'ws' или 'wss'. Если задано TCP а tcpenable=no будет использован UDP транспорт.

transport=udp

tcpenable

Включить поддержку TCP транспорта chan_sip Asterisk.

 tcpenable=yes

tcpbindaddr

Адрес на котором Asterisk «слушает» TCP подключения.

  IPv4 example: bindaddr=0.0.0.0:5062
  IPv6 example: bindaddr=[::]:5062

tcpauthtimeout

tcpauthtimeout указывает максимальное время в секундах данное клиенту на аутентификацию. Если за заданное время клиент не прошел проверку он отключается. (По умолчаннию 30 секунд)

 tcpauthtimeout = 30

tcpauthlimit

Максимальное кол-во неаутентифицированных сессий в момент любой времени.

 tcpauthlimit = 100

t1min

Минимальная задержка туда-обратно (minimum round-trip) для сообщения контролируемого хоста. По умолчанию 100 миллисеунд:

 t1min=100

subscribecontext

Ограничить запросы SUBSCRIBE только указанным контекстом, если не переопределено в настройках пира.

 subscribecontext=internal

t38pt_udptl

Установка t38pt_udptl 'yes' вкл. T.38 fax (UDPTL) насквозь (passthrough) для SIP-to-SIP вызовов с поддержкой T.38. Эта настройка включается глобально для всех устройств, но вы можете отключить её для конкретного устройства.

 t38pt_udptl=yes|no

T.38 fax passthrough работает только для SIP-to-SIP вызовов, любые local или agent каналы не могут быть использованы.

tos_sip, tos_audio, andtos_video

Asterisk может установить TOS bits в IP заголовках для помощи маршрутизаторам приотеризации трафика. tos_sip, tos_audio, и tos_video установки управляют TOS битами для SIP сообщений, RTP аудио и RTP видео, соответственно. Поддерживаются: CS0, CS1, CS2, CS3, CS4, CS5, CS6, CS7, AF11, AF12, AF13, AF21, AF22, AF23, AF31, AF32, AF33, AF41, AF42, AF43. Можно также использовать цифровые значения для TOS битов.

trustrpid

Доверять или нет Remote-Party-ID header: Asterisk SIP trustrpid

 trustrpid=yes|no

useragent

Значение поля useragent в SIP заголовке. По умолчанию версия Asterisk:

 useragent=Asterisk PBX v14.6.0

Если вы не желаете сообщать, что используете Asterisk, напишите Cisco или Avaya, или abyrvalg v2.0.

usereqphone

usereqphone опция говорит Asterisk добавить «user=phone» в SIP URIs которые содержат действующий номер телефона:

usereqphone 

videosupport

(both) Вкл. или выкл поддержку видео.

 videosupport=yes|no

Настройка SIP в Asterisk - sip.conf

Файлы конфигурации Asterisk

Настройка Asterisk

Файлы конфигурации Asterisk

Настройка Asterisk

  • asterisk/cf/chan_sip.txt
  • Последние изменения: 2018/03/12