- Записки на память. Интересные моменты.
- 26.08.2014
- Настройка SIP телефона от WESTCALL на ASTERISK новая версия настроек от августа 2014
- sip.conf для ASTERISK
- Разбираю как настроить транки
- Настройка SIP в Asterisk — sip.conf
- Asterisk SIP trunk
- Asterisk Register String
- Asterisk SIP peer
- Входящая и исходящая маршрутизация sip транка в диалплане Asterisk
- Настройка SIP пира для регистрации внутренних абонентов
- Настройка нескольких SIP пиров по шаблону
- Asterisk sip.conf General SIP Options
- 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
Записки на память. Интересные моменты.
Интересные и актуальные комментарии.
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
Предопределенная категория — [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 которые содержат действующий номер телефона:
Источник