ShareIT — поделись знаниями!
Содержание
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Настройка внутренних номеров на Elastix
- Маршрутизация вызовов в Elastix 4
- Обработка вызова по времени в Elastix
- Настройка Follow Me в Elastix 4
- Настройка транка на Elastix 4
- FreePBX 13 — настройка SIP транка
- General
- Dial Number Manipulation Rules
- sip Settings
- Asterisk SIP trunk
- Входящая и исходящая маршрутизация sip транка в диалплане Asterisk
- Настройка SIP пира для регистрации внутренних абонентов
- Настройка нескольких SIP пиров по шаблону
- allowexternalinvites
- allowguest
- allowoverlap
- allowsubscribe
- allowtransfers
- alwaysauthreject
- autodomain
- bindaddr and bindport
- buggymwi
- callevents
- checkmwi
- compactheaders
- defaultexpiry
- directrtpsetup
- domain
- dumphistory
- externhost
- externip
- externrefresh
- g726nonstandard
- ignoreregexpire (global)
- jbenable
- jbforce
- jbimpl
- jblog
- jbmaxsize
- jbresyncthreshold
- icesupport
- limitonpeers
- localnet
- matchexterniplocally
- maxexpiry
- minexpiry
- notifymimetype
- notifyringing
- notifyhold
- pedantic
- realm
- recordhistory
- registerattempts
- registertimeout
- relaxdtmf
- rtautoclear
- rtcachefriends
- rtsavesysname
- rtupdate
- sipdebug
- sendrpid
- srvlookup
- transport
- tcpenable
- tcpbindaddr
- tcpauthtimeout
- tcpauthlimit
- t1min
- subscribecontext
- t38pt_udptl
- tos_sip, tos_audio, andtos_video
- trustrpid
- useragent
- usereqphone
- Рекомендуем к прочтению
Полезно
Узнать IP — адрес компьютера в интернете
Онлайн генератор устойчивых паролей
Онлайн калькулятор подсетей
Калькулятор инсталляции IP — АТС Asterisk
Руководство администратора FreePBX на русском языке
Руководство администратора Cisco UCM/CME на русском языке
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Популярное и похожее
Настройка внутренних номеров на Elastix
Маршрутизация вызовов в Elastix 4
Обработка вызова по времени в Elastix
Настройка Follow Me в Elastix 4
Настройка транка на Elastix 4
Простой процесс подключения к провайдеру
3 минуты чтения
В данной статье пойдет речь о модуле создания SIP — транков в Elastix последней версии (4.0). Процесс создания подключения проиллюстрируем на примере оператора Celecom.
Настройка в интерфейсе Elastix 4
Если вы когда-нибудь настраивали SIP — транк в FreePBX, то вы не найдете для себя ничего нового – интерфейс практически идентичен.
Для начала необходимо зайти на веб-интерфейс, и далее нужно пройти по следующему пути: PBX → PBX Configuration → Trunks → Add SIP Trunk
После клика на кнопку создания нового транка (Add SIP Trunk) появятся поля настройки подключения по протоколу SIP:
Рассмотрим поля по порядку:
- Trunk Name – название вашего транка, лучше всего выбирать наиболее понятное и простое название, например – такое же как и название вашего оператора. По сути это поле является просто описанием, с помощью которого, вам будет проще ориентироваться во множественных подключениях.
- Outbound CallerID – ваш исходящий CID, чаще всего номер, выданный вам оператором
- CID Options – типы CID, которые могут выходить из этого транка, например, при звонке из-за границы, который был переведен на другой номер. Для базовой настройки можно оставить по умолчанию.
- Maximum Channels – количество каналов, можно оставить по умолчанию
- Asterisk Trunk Dial Options – правила набора номера через этот транк, для изменения необходимо кликнуть чекбокс. Можно оставить по умолчанию.
- Continue if Busy – по умолчанию вызов будет идти через другой транк только в случае возникновения коллизии (congestion). Если кликнуть чекбокс, то звонок будет уходить на другой транк, даже если номер был занят или был неверно набран. Можно оставить по умолчанию.
- Disable Trunk – выключение транка. Опция, полезная при траблшутинге (решении проблем с подключением) или при необходимости отключения определенного SIP — транка.
Дальнейшие поля при базовой настройке транка можно пропустить, перейдем к исходящим и входящим настройкам SIP — транка
Рассмотрим подробнее поля:
- Trunk Name – уникальное название вашего транка, например mytrunk1
- PEER Details — настройки, выданные вашим оператором
- USER Context — как правило, это номер, выданный вашим оператором, но часто данную строку оставляют пустой
- USER Details – настройки, выданные вашим оператором
- Register String – строка регистрации, часто может быть различна у каждого оператора или не требоваться вовсе
Кнопка Duplicate Trunk – копирует транк и все его настройки, удобно использовать при создании нескольких транков у одного оператора. Далее приведем пример настройки транка на примере оператора Celecom:

Примечание: для данного провайдера заполнять поля в разделе Incoming Settings необязательно, но для различных операторов настройки отличаются, всю данную информацию должен предоставить оператор после покупки аккаунта.
Пожалуйста, расскажите почему?
Нам жаль, что статья не была полезна для вас 🙁 Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!
Подпишитесь на нашу еженедельную рассылку, и мы будем присылать самые интересные публикации 🙂 Просто оставьте свои данные в форме ниже.
FreePBX 13 — настройка SIP транка
Настройки поделены на три основных секции:
General
Определяет основные параметры SIP транка: 
Trunk name
Имя транка для веб интерфейса. Сугубо описательное значение, для идентификации транка в веб интерфейсе FreePBX. Не используется непосредственно для вызовов. Назначьте удобное для вас имя, для легкого распознавания среди других транков.
Hide CallerID
Не сообщать удаленной стороне исходящий CallerID.
В большинстве случаев требуется передавать CallerID, но если вдруг понадобиться…
Yes No
Outbound CallerID
Задайте исходящий CallerID для данного транка. Во FreePBX Outbound CallerID может быть задан или модифицирован, в нескольких местах по пути обработки исходящего вызова.
CID Options
Но если выбрано другое значение CID Options, то Outbound CallerID внутреннего номера, или переназначенный в Outbound Routes, может быть модифицирован одним из перечисленных ниже значений в настройках транка.
Maximum Channels
Максимальное количество одновременных соединений через данный транк.
Asterisk Trunk Dial Options
Опции команды Dial для исходящих вызовов, через транк. По умолчанию, значение заданное в Asterisk Dial Options. Переопределяет системные опции, если выбрано override на заданные здесь.
Override System
Continue if Busy
Искать следующий доступный транк, если этот переполнен.
Yes No
Disable Trunk
Выключить, т.е. вывести транк из обслуживания. Обратите внимание, что на Register String этот триггер не распространяется.
Yes No
Dial Number Manipulation Rules
Преобразование набираемого номера
Преобразование набираемого номера в транке, происходит по тем же правилам, что и в Dial Patterns исходящей маршрутизации. Сначала выполняется преобразование в Outbound Routes, затем вызов попадает в модуль транка и выполняется последнее преобразование, если задано. Рассмотрим пример использования двух-этапного преобразования: Задан маршрут с шаблоном _8[09]XXXXXXXXX, который обслуживают несколько транков от разных провайдеров.
Один требует набирать ‘8’, а в другом надо отправлять ‘+7’.
Оставим транк требующий ‘8’, без преобразования.
В транке же, требующем ‘+7’, заменим 8-ку.
| Prepend | Prefix | Match Pattern | Caller ID |
|---|---|---|---|
| +7 | 8 | [09]XXXXXXXXX |
Вариантов может быть масса, но общий принцип, надеюсь ясен.
sip Settings
И, наконец, ключевые наcтройки sip пира. Во FreepBX они разделены на Outgoing и Incoming
Которые отвечают за исходящие type=peer и входящие вызовы type=user, соответственно.
Подробно с настройками sip.conf в Asterisk вы можете ознакомиться по ссылке
Здесь же рассмотрим основные параметры.
Outgoing
Большинство параметров указываются здесь. 
username и secret
Основные параметры sip аутентификации, имя пользователя и пароль, как правило сообщаются провайдером.
Предполагается, что здесь должно быть peer — набор свойств для исходящих вызовов.
Однако можно написать и friend и не назначать никакие параметры в секции Incoming (кроме register string, которая хоть и расположена во FreePBX в секции incoming настроек транка, прямой связи с ним не имеет и может существовать вообще без sip пира, хоть и нуждается в нем, для аутентификации входящего вызова, как доверенного, а не анонимного).
Так тоже будет работать.
Также здесь могут быть заданы любые параметры, доступные SIP пиру:
context
— контекст обработки входящих вызовов. Стандартный контекст входящих вызовов Freepbx для цифровых транков- from-trunk. Вызовы из него обрабатываются в модуле FreePBX 13 входящая маршрутизация. Но вы можете указать собственный контекст и написать его в extensions_custom.conf. См. также FreePBX custom context
Для многих новичков значение контекста по отношению к транку и к внутреннему номеру вызывает некоторую путаницу. Для простоты можно сказать, что контекст транка определяет, как обрабатывать входящие вызовы, а контекст внутреннего номера — исходящие. Когда внутренний абонент куда-то звонит, в назначенном ему контексте определяется, через какие транки и на какие екстеншены он может позвонить. Исходящая связь через транк определяется в контекстах внутренних номеров и никак не упоминается в контексте, назначенном непосредственно транку. Напротив, когда внешняя система, связанная с транком, вызывает некий екстеншен (расширение), тогда и используется контекст, назначенный транку.
Но если несколько углубиться в данный вопрос, можно вспомнить, что для Asterisk, по сути, нет разницы между внутренним номером и транком. Когда внешняя система вызывает некий номер, она является sip устройством, которое совершает исходящий вызов через контекст, назначенный транку, так же, как телефон совершает исходящий вызов через контекст, назначенный пиру. Поэтому, как нет разницы между sip транком и внутренним номером, так нет разницы и между использованием контекстов, им назначенных.
insecure
insecure=invite — практически обязательное условие, для приема входящих вызовов.
disallow
— запретить использование кодеков, чтобы назначить разрешенные в параметром allow.
allow
— разрешить перечисленные через запятую кодеки.
— задать свойства использования rport , media при работе за nat. Если не указано, будут использованы настройки из модуля FreePBX Asterisk SIP Settings.
qualify
— Посылать запросы Options = yes/no
qualifyfreq
— частота запросов в секундах. и тд.
Incoming
Данная секция должна иметь уникальное название, т.к. является, в некотором роде, независимым объектом, не пиром, но часовым пира, который требует пароль (secret) и указывает путь (context), если проверка пройдена. Не отображается в консоли, при вводе команды sip show peers, так как type=user. Как и следует из названия, отвечает за входящие вызовы. Основные параметры: context и secret те же, что указаны в outgoing.
Здесь же задается строка регистрации, которая в чистом Asterisk, вынесена в категорию sip.conf — [general].
Это очень важный параметр, отвечающий за посылку Register SIP серверу регистраций. Если вы подключаетесь к SIP серверу провайдера и требуется получать входящие вызовы, в большинстве случаев, надо посылать Register. 
Файл ‘sip.conf’ отвечает за настройку внутренних и внешних каналов SIP в Asterisk. Объекты конфигурации — пиры, описываются в отдельных секциях, которые обозначаются именами в [квадратных скобках]. Действует принцип наследования, как и в большинстве конфигов Asterisk: все что задано после имени в квадратных скобках, относится к одному объекту, пока не будет объявлен следующий.
Предопределенная категория — [general], задает глобальные настройки драйвера SIP Asterisk, которые распространяются на все объекты, но могут быть переопределены для отдельных пиров в их категориях.
Asterisk SIP trunk
Соединение обозначенное как user, это определение любой системы или оконечной точки (endpoint), которой мы разрешаем входящие вызовы на наш сервер Asterisk. Соединение type=user не обозначает никакого пользователя, а только создает канал и указывает контекст, для входа в диалплан аутентифицированных входящих вызовов.
Через соединение обозначенное как peer совершаются исходящие вызовы.
Asterisk Register String
register ⇒ sipuser[:secret[:authuser]]@host[:port][/extension]
Вышеприведенный пример, упрощенный вариант строки регистрации. Полный вариант содержит больше информации:
register => [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][
Обратите внимание на параметр transport, например tls:
register => tls://user:password@host
Строка регистрации имеет напрямую связанные с ней параметры [general]:
Для получения подробной информации о командах смотрите Asterisk CLI — интерфейс командной строки.
Пример вывода команды sip show registry в консоли Asterisk:
Возможные состояния (state):
Asterisk SIP peer
Для совершения исходящих вызовов должен быть создан объект type=peer.
Нажмите, чтобы отобразить
Нажмите, чтобы скрыть
Asterisk не делает различий между внутренними и внешними линиями, любой вызов совершается через какой-либо канал. Когда SIP сервер провайдера, вызывает Asterisk, то он совершает вызов через peer, проходя аутентификацию у user.
Конфигурация пиров осуществляется при помощи текстовых блоков, отделенных друг от друга квадратными скобками. Имя в квадратных скобках может совпадать с параметром ‘defaultuser’, но не обязательно.
Приведенный пример, являет собой типовой, самый распространенный вариант конфигурации sip транка с регистрацией через публичную сеть:
Входящая и исходящая маршрутизация sip транка в диалплане Asterisk
В диалплане (extensions.conf ) можно использовать разнообразный синтаксис для вызова (dial ) SIP устройств.
В файле extensions.conf, для совершения исходящих вызовов, у Вас должно присутствовать правило набора, примерно такого вида:
Пример контекста для входящих вызовов в файле ‘extensions.conf’:
Где from-siptrunk контекст заданный user или friend объекту.
Настройка SIP пира для регистрации внутренних абонентов
Как уже отмечалось Asterisk не делает особых различий между транками и абонентами, поэтому конфиг телефона будет похож на SIP транк, но все же немного другой.
Рассмотрим некоторые опции:
‘call-limit’ опция признана устаревшей и заменена на ‘callcounter’. Установить ограничение одновременных вызовов теперь можно переменной канала function ‘GROUP_COUNT’
пример использования данного метода можно помотреть здесь: Ограничение количества одновременных вызовов по набранному номеру.
Настройка нескольких SIP пиров по шаблону
А затем определить уникальные свойства пиров, добавив рядом с именем каждого пира, имя общего шаблона в круглых скобках:
Полный список параметров general sip.conf
Следующие параметры используются в общей [general] секции sip.conf:
allowexternalinvites
Если установлено ‘no’, запрещает INVITE и REFER от внешних (не из localnet) доменов. См domain
allowguest
Если ‘no’, запрещает гостевые(без аутентификации) подключения. По умолчанию sipguest подключения разрешены.
allowoverlap
Вкл. или Выкл набор по одной цифре (т.е. каждая набранная цифра будет сразу отправляться в канал)
allowsubscribe
Разрешить ли внешним устройствам подписку (SUBSCRIBE) на информацию о статусе екстеншена. По умолчанию — ‘yes’:
allowtransfers
Когда установлено ‘no’, запрещает любые трансферы, если не переопределено в настройках пира.
alwaysauthreject
autodomain
Установите эту опцию ‘yes’, чтобы добавить локальное HOSTNAME и локальный IP адрес в список доменов:
bindaddr and bindport
Эти параметры определяют IP адрес и порт на которых Asterisk будет слушать SIP запросы. Для драйвера канала SIP Asterisk ‘chan_sip’ можно назначить только один адрес и порт для всех подключений для UDP и один порт для TCP транспорта, в отличии от нового драйвера PJSIP. По умолчанию адрес не задан и лучше так и оставить. Некоторые рекомендуют изменять порт по умолчанию 5060, на другой, в целях безопасности. Но помните, что это только одна из мер безопасности, не самая важная, и не гарантирует вам полной защиты от злоумышленников.
Вы можете задать независимые для UDP, TCP и TLS транспорта значения udpbindadd, tcpbindaddr и tlsbindaddr
buggymwi
Вкл. эту опцию, чтобы избежать ошибок при сообщении с некоторыми ip телефонами при отправке MWI сообщений.
callevents
Установите ‘yes’, если хотите генерировать информацию о SIP событиях для AMI (asterisk manager interface)
checkmwi
Время в секундах, между проверками голосовой почты :
compactheaders
Использовать или нет компактные SIP заголовки.
defaultexpiry
Срок действия регистрации в секундах для входящих и исходящих регистраций. При входящей регистрации, этот параметр задается клиентской стороной, и заданное здесь значение используется, только если клиент не сообщил свое занчение. Для исходящих регистраций этот параметр сообщается удаленной стороне UAS (user agent server)
directrtpsetup
domain
Задает имя домена сервера Asterisk по умолчанию. Командой CLI ‘sip show domains’ выводится список локальных доменов.
dumphistory
externhost
externip
externrefresh
Если все же используется ‘externhost’, указывает промежуток времени в секундах между запросами DNS .
g726nonstandard
Значения: yes/no, по умолчанию: no. Если клиент собирается для сеанса связи «договориться» использовать звуковой кодек G726-32, с использованием компрессии AAL2, вместо RFC3551 (что требуется для аппаратов фирмы Sipura и шлюзов от Grandstream, и может другим). То это противоречит спецификации RFC3551, клиент должен вместо этого «договориться» использовать AAL2-G726-32
ignoreregexpire (global)
Если ignoreregexpire установлен ‘yes’, Asterisk сделает одно из двух, в зависимости от настроек пиров: 1)Non-realtime peer Когда регистрация истекает, информация не удаляется из памяти или БД Asterisk и вызовы будут разрешены несмотря на то, что время регистрации истекло.
2)Realtime peers Когда peer сконфигурирован в режиме реального времени, информация о регистрации используется независимо от defaultexpiry
jbenable
jbforce
Принудительное использование jitter buffer принимающей стороной SIP канала.
jbimpl
Использовать фиксированный или подстраиваемый (адаптивный) jitter buffer. fixed jitter buffer всегда использует значение из jbmaxsize adaptive может принимать значение больше jbmaxsize По умолчанию ‘fixed’:
Из личного опыта, вкл. ‘adaptive’ может приводить к весьма плачевным результатам.
jblog
Вкл./выкл jitter buffer frame лог. По умолчанию ‘no’:
jbmaxsize
Установите максимальную длину буфера в миллисекундах:
jbresyncthreshold
Джиттер буфер порог синхронизации. По умолчанию 1000:
icesupport
limitonpeers
Применять call-limit только для type=peer Это улучшит использование call-limit для устройств настроенных, как type=friend, отделив ограничение call-limit от входящих вызовов.
localnet
укажет серверу Asterisk какие подсети являются локальными, прозрачными для использования IP адресов сервера, SIP запросы к которым не требуют модификации поля Contact: c использованием externip или externhost
matchexterniplocally
Сверять ‘externip’ с ‘localnet’ и производить подстановку, только если ‘externip’ из локальной подсети. Не совсем ясно, зачем это может понадобиться? Возможно при очень нестандартной топологии сети.
maxexpiry
Максимальная продолжительность регистрации в секундах.
minexpiry
Минимальная продолжительность регистрации в секундах.
notifymimetype
Указывает MIME тип используемый для message-waiting indication (MWI) в SIP NOTIFY сообщении.
notifyringing
Сообщать подписчикам о состоянии вызов (RINGING):
notifyhold
Сообщать подписчикам (subscribers) о состоянии удержание (HOLD):
pedantic
realm
recordhistory
Вкл. или Выкл историю sip для всех каналов.
registerattempts
Сколько попыток внешних регистраций произведет Asterisk, прежде чем откажется от продолжения. По умолчанию стоит ‘0’, что значит бесконечно.
registertimeout
Таймаут между попытками регистрации на другом устройстве.
relaxdtmf
rtautoclear
(global) Конфигурация Realtime Peers Указывает должен ли Asterisk обнулять созданные на лету friends по истечении времени регистрации. Если установлено ‘yes’, по истечении срока регистрации, удалять friends до нового запроса. Если задано число, то оно используется вместо обычного времени регистрации.
rtcachefriends
Если rtcachefriends включен, Asterisk будет кэшировать friends(реалтайм пиры), которые приходят из realtime engine, так же, как если бы они сконфигурированы в «sip.conf».
rtsavesysname
(global) Определяет, должен ли Asterisk сохранить SystemName в базе данных в режиме реального времени во время регистрации:
rtupdate
(global) Если установлено ‘yes’ Asterisk будет обновлять IP-адрес, порт и период регистрации пиров при регистрации. По умолчанию ‘yes’:
sipdebug
sendrpid
ОТправлять или нет Remote-Party-ID header:
srvlookup
transport
Задает транспорт по умолчанию. По умолчанию ‘udp’, но может быть ‘tcp’, ‘tls’, ‘ws’ или ‘wss’. Если задано TCP а tcpenable=no будет использован UDP транспорт.
tcpenable
Включить поддержку TCP транспорта chan_sip Asterisk.
tcpbindaddr
Адрес на котором Asterisk «слушает» TCP подключения.
tcpauthtimeout
tcpauthtimeout указывает максимальное время в секундах данное клиенту на аутентификацию. Если за заданное время клиент не прошел проверку он отключается. (По умолчаннию 30 секунд)
tcpauthlimit
Максимальное кол-во неаутентифицированных сессий в момент любой времени.
t1min
Минимальная задержка туда-обратно (minimum round-trip) для сообщения контролируемого хоста. По умолчанию 100 миллисеунд:
subscribecontext
Ограничить запросы SUBSCRIBE только указанным контекстом, если не переопределено в настройках пира.
t38pt_udptl
tos_sip, tos_audio, andtos_video
trustrpid
Доверять или нет Remote-Party-ID header: Asterisk SIP trustrpid
useragent
Если вы не желаете сообщать, что используете Asterisk, напишите Cisco или Avaya, или abyrvalg v2.0.
usereqphone
usereqphone опция говорит Asterisk добавить «user=phone» в SIP URIs которые содержат действующий номер телефона:






