Как настроить westcall asterisk voip транк

Записки на память. Интересные моменты.

Интересные и актуальные комментарии.

26.08.2014

Настройка SIP телефона от WESTCALL на ASTERISK новая версия настроек от августа 2014

WESTCALL изменили 20/08/2014 регистрационные данные для телефонных соединений.

После длительного и плодотворного положительного общения с техподдержкой WESTCALL составлен и работает — ниже приведенные настройки телефона WESTCALL для ASTERISK.

Вообщем ниже результат

sip.conf для ASTERISK

На файрволе отрыть доступ для ip 84.52.103.50 порт 9955 для WESTCALL

Настройка телефонов WESTCALL
Настройка телефонов SIPNET
Настройка телефонов MULTIFON

[general]
externip=*.*.*.* ; ваш внешний ip
localnet=192.168.0.0/255.255.255.0
canreinvite=no
;canreinvite=nonat
externrefresh=60
allowguest=no ;Разрешить или отклонить гостей вызовов
alwaysauthreject = yes ; При входящем INVITE или REGISTER должна быть отклонена,по любой причине, всегда отвергает с одинаковой ответ Эквивалентные действительные имя пользователя и неверный пароль / хэшто того, чтобы запрашивающая знать, существует ли Для пользователей или сверстников для их просьбе. Это снижает Возможность злоумышленнику для поиска действительно SIP пользователей.
transport=udp
udpbindaddr=0.0.0.0
tcpenable=yes ;включил ,т.к. было надо для мультифона
tcpbindaddr=0.0.0.0
srvlookup=yes
context=default ;контекст по умолчанию
allowguest=no ;никаких гостей
allowoverlap=no ;разрешаем или нет передачу вызова с дополнительными цифрами
alwaysauthreject=yes ;все ошибки для внешнего клиента выглядят одинаково – ошибка авторизации

rtptimeout=90 ;Сколько времени клиент может не откликаться, прежде чем будет кикнут из системы
rtpholdtimeout=340
defaultexpiry=150 ;интервал обязательной перерегистрации клиентов

disallow=all
allow=ulaw
allow=alaw

sdpsession=****
useragent=****
sdpowner=*@mail.ru

language=ru
callevents=yes ;разрешить music on hold
cachertclasses=yes ;это позволяет не запускать каждый раз музыку сначала, плюс
; снижает нагрузку на процессор
; Для всех будет играться музыка из одного
; процесса/источника.
bindport=5060 ; управляющий SIP порт. Это значение по-
; умолчанию
srvlookup=no ; эта функция позволяет набирать номер
; по доменному имени пользователя
; я ее отключил от греха подальше.

qualify=300 ; если ответ от телефона идет более,
; чем 0.2 секунды — считаем его
; неработающим.

register => 0038******:pass@sipnet.ru/0038****** ;sipnet
register => 7812*******$home:pass:7812*******$home@84.52.103.50:9955/7812*******
register => 7921*******@multifon.ru:pass:7921*******@sbc.megafon.ru:5060/7921*******

; Проверка и включение мультифона ********
;https://sm.megafon.ru/sm/client/routing?login=7921*******@multifon.ru&password=******
;https://sm.megafon.ru/sm/client/routing/set?login=7921*******@multifon.ru&password=******&routing=2
;https://sm.megafon.ru/sm/client/routing/set? login=7921*******&password=******&routing=
; **********

[westcall]
type=friend
host=84.52.103.50
port=9955
context=westcall
insecure=port,invite
fromuser=7812*******$home
username=7812*******$home
secret=pass*******
;fromdomain=home.uc.westcall.net
nat=no
canreinvite=no
qualify=yes
dtmfmode=rfc2833

[multifon-out]
secret=pass*******
;host=multifon.ru
host=sbc.megafon.ru
type=peer
context=incoming_mobil
insecure=port,invite
username=7921*******
fromuser=7921*******
fromdomain=multifon.ru
nat=yes
dtmfmode=inband
port=5060

[sipnet_out]
secret=pass*******
defaultuser=003*******
;trunkname=sipnet_out
host=sipnet.ru
type=friend
context=phones
insecure=port,invite
callbackextension=003*******
fromuser=003*******
fromdomain=sipnet.ru
nat=yes
canreinvite=no
qualify=yes
dtmfmode=RFC2833
port=5060

; внутренние номера
[22]
directmedia=no
host=dynamic
type=friend
allowsubscribe=yes
deny=0.0.0.0/0.0.0.0
permit=192.168.0.134/255.255.255.0
callgroup=1
pickupgroup=1
context=phones
nat=no
callerid=home
username=22
secret=pass*******

Источник

Разбираю как настроить транки

Развернут консольный Asterisk и я хочу для себя разобрать как же все-таки настраивается транк.

Транк — это метод настройки провайдера (IP-телефонии) для совершения звонков с Вашей АТС во вне.

В роли провайдера выступит аккаунт зарегистированный на сайте zadorma.com, регистрируемся (и выбираем бесплатный тарифный план для теста), авторизуемся, Настройки — SIP-настройки:

  • Сервер: sip.zadarma.com
  • Логин: 424733 (у Вас будет свой логин)
  • Пароль: S1Y4sph4kz (у Вас будет Свой пароль)
  • Отображаемое имя: я изменил с SIP на zadarma
  • Количество линий: 3

Использовать данный SIP номер для приема факсов: отмечаю галочкой (я хочу разобрать как настраивать прием факсов в Asterisk — интересно для меня)

Меняю контекст правил для профиля SIP учеток:

$ sudo nano /etc/asterisk/sip.conf

;возможность совершать, как входящие так и исходящие звонки

;контекст правил вызова в файле /etc/asterisk/extensions.conf

Теперь когда настройки от провайдера получены их нужно добавить согласно определенному синтаксису в файл sip.conf

$ sudo nano /etc/asterisk/sip.conf

;если стоит yes, то сервер с Asterisk поддерживаем поиск в DNS srv-записей, обычно данный параметр предопределен по умолчанию, а потому можно его и не указывать.

Читайте также:  Сломался один наушник как вернуть по гарантии

;sip запись для подключения входящих и исходящих звонков

;имя пользователя выданное провайдером IP-телефонии

;пароль от пользователя выданного провайдером IP-телефонии

;нижеследующие два параметра используются для вызова исходящих от Asterisk

;в сторону SIP устройства

;имя домена или хоста SIP сервера

;установка соединения с peer‘ами, т. к. у меня они в локальной сети то нужно поставить no

;определяем как обрабатывать соединения с пирами. По умолчанию значение ‘no’ — (аутентификация для всех соединение включена)

;правила для входящих звонков

; Если инициируется вызов по протоколу SIP, тогда в сообщении INVITE содержиться информация, куда должен отправляться медиапоток

Сохраняем внесенные изменения, а после говорим Asterisk‘у чтобы он перечитал все свои конфигурационные файла на предмет изменений:

srv-host*CLI> core reload

[Mar 24 10:57:32] NOTICE[1002]: chan_sip.c:30746 build_peer: The ‘username’ field for sip peers has been deprecated in favor of the term ‘defaultuser’

а вот и информационный вывод, вроде как больше не используется параметр username — вместо него нужно defaultuser, заменяю в sip.conf и снова перечитываю настройки в конфигурационных файлах.

$ sudo nano /etc/asterisk/sip.conf

srv-host*CLI> core reload

Теперь смотрю произошла ли регистрация у SIP-провайдера:

srv-host*CLI> sip show registry

Host dnsmgr Username Refresh State Reg.Time

sip.zadarma.com:5060 N 424732 105 Registered Thu, 24 Mar 2016 11:03:03

1 SIP registrations.

Из вывода видно, что регистрация успешно прошла. Также внимательный читатель обнаружит что в личном кабинете zadorma.com в где указаны настройки подключения поменялся статус с offline на online (#424732 (zadarma) — online) и будет показа информация откуда произошла регистрация:

IP: port: 5060, useragent: Asterisk PBX 13.7.2

Теперь чтобы позвонить на данный Asterisk из вне нужно узнать, а какой же у меня внешний номер, для этого в личном кабинете переходим по меню: Настройки —

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

1) Используем бесплатных прямой номер с донабором: (переходим по ссылке: https://ss.zadarma.com/dirnum/

из большого списка находим, к примеру: Россия , Москва +7 (495) 777-66-75 (можно выбрать любой)

2) Где донабор это наш логин

Теперь нужно настроить DIAL-план для входящих и исходящих звонков:

$ sudo nano /etc/asterisk/extensions.conf

;правила для исходящих звонков

;звонки через бесплатный номер выше посредством транка с именем zadarma (из sip.conf в квадратных скобках) на номер который набираем.

;где X — количество 11 штук

;звонок на трехзначные номер через SIP протокол звонящего номера

;правила для входящих звонков

; _X. → любой входящий номер на абонентов 101 и 102, после подождать 60 секунд и потом звонок сбрасывается

  • X — цифра от 0 до 9
  • Z — цифра от 1 до 9
  • N — цифра от 2 до 9
  • 1234 — цифтра от 1,2,3,4,5,6

m — проигрывать звонящему абоненту музыку ожидания

t — разрешает ответившему пользователю перевести звонок

T — разрешает звонящему пользователю перевести звонок

Теперь чтобы позвонить из вне (к примеру с мобильного) на мою АТС, нужно

8-495-777-66-75 затем на предложение вводим номер абонента (Ваш логин в системе Zadarma.com), т. е. 424732 и начинают звонить оба телефонных аппарата с номерами 101 и 102

Теперь чтобы позвонить с внутреннего номера во вне, нужно

набираю свой мобильный с внутреннего номера 102

7-9XX-XXX-XX-XX ожидаю пока пройдет соединение будет несколько гудков (более 4 точно) а тем временем на мобильном телефоне отображается исходящий номер:

  • 7-495-776-29-87
  • 7-495-920-24-25

(я звонил пару раз).

Работает. На этом третья заметка завершена, с уважением автор блога — ekzorchik.

Источник

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

Файл ‘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 пиров по шаблону

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

Asterisk sip.conf General SIP Options

Полный список параметров 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 которые содержат действующий номер телефона:

Источник

Оцените статью