Настройка IP-АТС Asterisk (SIP и PJSIP) на линию сети Телфин с возможностью резервирования входящей и исходящей связи и возможностью самостоятельно передавать АОН
Мы предлагаем два варианта настройки с возможностью резервирования входящей и исходящей связи и самостоятельной передачи АОНа
1. Вариант — статическое взаимодействие (рекомендуемый)
2. Вариант — динамическое взаимодействие
В обоих вариантах во входящем вызове от серверов Телфин на АТС вызываемый номер будет передаваться в формате E.164, например 78123364242.
Оба варианта подключения подразумевают наличие в личном кабинете Телфин(переход на работу через) только одной(у) линии(ю) вида 000ААААА с подключением(переносом) на неё всех ваших номеров. Для того, чтобы наш сервер начал доверят указываемому вашей АТС АОН-у, необходимо написать соответствующий запрос в нашу тех. поддержку support@telphin.ru с указанием ваших доверенных статисческих IP-адресов и номера линии, на которую нужно поместить все ваши номера.
Вариант 1 — статическое взаимодействие (рекомендуемый)
Статическое взаимодействие подразумевает создание статического SIP транка, используя в качестве транспорта сеть Интернет, между:
а) Серверами Телфин — общий адрес sip.telphin.com . В данном домене доступны SIP SRV записи: vip1.sip.telphin.com (213.170.92.166) и vip2.sip.telphin.com (46.229.221.86) для обеспечения резервирования.
Для обеспечения резервирования домену sip. telphin. com присвоена SRV запись:
- vip1.sip.telphin.com — адрес основного сервера телефонии
- vip2.sip.telphin.com — адрес резервного сервера телефонии
НО!, в случае с Asterisk , даже при включении параметра «srvlookup», он неправильно обрабатывает приоритеты SRV записей , что приводит к ситуации не правильного использования адресов серверов телефонии. Поэтому, если оборудовании не поддерживает / не корректно поддерживает работу с SRV, необходимо отключить её(SRV) поддержку и, при настройке транков, использовать доменные адреса: vip1.sip.telphin.com и vip2.sip.telphin.com , как это описано ниже.
б) Клиентской IP-ATC — IP адрес должен быть публичным (внешним), доступным из сети Интернет. Это либо на АТС должен использоваться публичный IP-адрес, либо, если АТС находится в локальный сети / за NAT, внешний IP-адрес вашего маршрутизатора. НО, для корректности работы необходимо настроить проброс портов на маршрутизаторе в сторону АТС.
Варианты настройки конфигурации Asterisk с использованием модулей SIP и PJSIP
- А.А.А.А — внешний статический IP-адрес сервера Asterisk, с которого должны уходить и приниматься вызовы Телфин
- TELPHIN_LINE — линия сети Телфин вида 000АААААА
- TELPHIN_PASSWORD — пароль от линии Телфин
- 7ABCXXXXXXX и 7DEFXXXXXXX — выделенные номера, которые привязаны к линии Телфин TELPHIN_LINE
Настройка с использованием модуля SIP
Настройка с использованием модуля PJSIP (16.3.0)
Данная схема уже протестирована и является абсолютно рабочим вариантом
- Куда: на адрес нашей тех. поддержки support@telphin.ru
- От кого: ОБЯЗАТЕЛЬНО с контактного эл. адреса указанного в вашем личном кабинете
- Тело запроса: Прошу для линии 000ХХХХХХ задать статический маршрут входящих вызовов с резервированием входящей связи на адрес(а) моей АТС (выберите один из вариантов)
- sip:ALIAS-REGVIP1@IP-вашей-АТС-1:порт — основной и sip:ALIAS-REGVIP2@IP-вашей-АТС-1:порт — резервный (если у вашей АТС только один внешний IP-адрес)
- sip:ALIAS-REGVIP1@IP-вашей-АТС-1:порт — основной и sip:ALIAS-REGVIP2@IP-вашей-АТС-2:порт — резервный (если у вашей АТС несколько внешних IP-адресов)
Вариант 2 — динамическое взаимодействие
Динамическое взаимодействие подразумевает создание динамического SIP транка, используя в качестве транспорта сеть Интернет, между:
а) Серверами Телфин — общий адрес sip.telphin.com . В данном домене доступны SIP SRV записи: vip1.sip.telphin.com (213.170.92.166) и vip2.sip.telphin.com (46.229.221.86) для обеспечения резервирования.
Для обеспечения резервирования домену sip.telphin.com присвоена SRV запись:
- vip1.sip.telphin.com — адрес основного сервера телефонии
- vip2.sip.telphin.com — адрес резервного сервера телефонии
НО!, в случае с Asterisk , даже при включении параметра «srvlookup», он неправильно обрабатывает приоритеты SRV записей , что приводит к ситуации не правильного использования адресов серверов телефонии. Поэтому, если оборудовании не поддерживает / не корректно поддерживает работу с SRV, необходимо отключить её(SRV) поддержку и, при настройке транков, использовать доменные адреса: vip1.sip.telphin.com и vip2.sip.telphin.com , как это описано ниже.
б) Клиентской ATC — на АТС необходимо настроить отправку на сервера Телфин запросов на регистрацию (REGISTER) выданной вам линии, где параметрами АТС задаётся нужное значение заголовка Contact:
- для регистрации на vip1.sip.telphin.com (213.170.92.166) заголовок Contact должен иметь значение ALIAS-REGVIP1
- для регистрации на vip2.sip.telphin.com (46.229.221.86) заголовок Contact должен иметь значение ALIAS-REGVIP2
Варианты настройки конфигурации Asterisk с использованием модулей SIP и PJSIP
- А.А.А.А — внешний статический IP-адрес сервера Asterisk, с которого должны уходить и приниматься вызовы Телфин
- TELPHIN_LINE — линия сети Телфин вида 000АААААА
- TELPHIN_PASSWORD — пароль от линии Телфин
- 7ABCXXXXXXX и 7DEFXXXXXXX — выделенные номера, которые привязаны к линии Телфин TELPHIN_LINE
Настройка с использованием модуля SIP
Настройка с использованием модуля PJSIP (16.3.0)
Обязательно нужно проверить:
- Установлено ли в вашем Firewall-е разрешающее правило для приема входящих вызовов с сервера телефонии.
1. Firewall должен разрешать весь UDP траффик для vip1.sip.telphin.com (213.170.92.166) и vip2.sip.telphin.com (46.229.221.86) и не блокировать его по портам, указанным в настройках вашего rtp. conf, т.к. обмен голосовым трафиком осуществляется напрямую с терминирующими узлами вышестоящих операторов.
2. В целях безопасности, настоятельно рекомендуется использовать голосовые порты, указанные в rtp.conf, ИСКЛЮЧИТЕЛЬНО для обмена голосовым RTP трафиком! В этом случае для них можно без ущерба безопасности разрешить весь UDP трафик.
Рекомендации
1. Используйте параметр qualify значения yes/xxx(секунды), если модуль SIP, и параметр «qualify_frequency», если используете PJSIP, только при нахождении Asterisk за NAT-ом и только для поддержания открытым NAT соединения, если этого не удается достигнуть корректной работой проброса портов на роутере/маршрутизаторе.
Использование этих параметра для тестирования доступности сервера Телфин пакетами OPTIONS может привести к полному расходованию ограниченного количества доступных SIP сообщений с одного IP-адреса и как следствие ко временной блокировке вашего IP-адреса за SIP флуд.
2. На случай недоступности маршрута от Астериска до SIP сервера sip.telphin.com, в этом руководстве описано, как настроить работу с SIP сервером sip.telphin.com используя резервирование как входящей, так и исходящей связи.
- Входящие звонки будут приходить в контекст Астериска [telphin_in] на экстеншн равный DID номера, через который поступил входящий вызов.
- В случае блокировок со стороны роутера/провайдера можно использовать порт 5068 для работы с адресами vip1.sip.telphin.com: 5068 и vip2.sip.telphin.com: 5068 .
В этом случае не забудьте указать его в том числе и в файле sip.conf в описании входящих каналов [telphin_TELPHIN_LINE_a] и [telphin_TELPHIN_LINE_b] в параметре «port» если используйте SIP или в файле pjsip.conf записи [aor-telphin-trunk-vip1] и [aor-telphin-trunk-vip2] в параметре «Contact» если используете модуль PJSIP.
Защита от взломов и мошенничества
Обращайте внимание на настройки безопасности вашей АТС.
Система фрод-мониторинга Телфин работает над выявлением случаев взлома и производит блокировку используемых мошенниками аккаунтов абонентов, однако для повышения защиты от злоумышленников, мы настоятельно рекомендуем Вам в том числе и САМОСТОЯТЕЛЬНО снижать риски, обращая внимание на настройки безопасности вашей АТС.
При использовании бесплатного программного продукта Asterisk, ответственность по поиску и устранению любых ошибок в работе и защите Asterisk-а лежит на его администраторе, т.к. данные вопросы относятся исключительно к настройке Asterisk-а, а не к настройкам на сервере телефонии.
Для любого клиента сети Телфин существует возможность запретить все вызовы за пределы РФ, что лишает злоумышленника возможности совершать вызовы через ваш аккаунт на МН направление даже в том случае, когда он смог получить ваши конфиденциальные SIP данные. Для этого необходимо написать соответствующий запрос на адрес info@telphin.ru с вашего контактного эл. адреса, указанного в данных личного кабинета.
Если за безопасное использование виртуальной АТС «Телфин.Офис» отвечают наши технические специалисты, то позаботиться о защищенном использовании телефонной станции других решений, вам придется самостоятельно. Поэтому рекомендуем ознакомиться с тем:
Минимальный список действий по предотвращению взлома(рекомендации приведены на примере программной АТС Asterisk, как самой распространенной):
- Обязательно измените номер порта SIP, на котором происходит взаимодействие Asterisk с оборудованием Телфин и вашими внутренними телефонами. Оборудование Телфин поддерживает любой номер порта со стороны абонента. Также измените порты IAX и SSH.
- SIP: Настройка порта производится в файле sip.conf в секции general, например для того чтобы настроить порт 6655 необходимо указать: bindport=6655
- SSH: Новый порт не должен конфликтовать с уже открытыми в системе портами. Изменить его можно в файле /etc/ssh/sshd_config. Укажите новый номер порта SSH в настройке Port и раскомментируйте строку путем удаления знака #(решетка). Затем перезапите sshd командой: service sshd restart
- IAX: Настройка порта производится в файле iax.conf. Измените порт на любой свободный и перезапустите Asterisk командой /etc/ininit. d/asterisk restart
213.170.92.166 и 46.229.221.86 — адреса сервера регистрации Telphin,
192.168.X.0/24 — пример диапазона IP адресов вашей локальной сети, из которой будет происходить подключение телефонов
Использование сильных паролей — это шаг, возможно, наиболее важный в организации защиты любой сети! Если бы вы видели на сколько сложны и интеллектуальны средства подбора паролей, вы бы поняли, на сколько легко обходят тривиальное запутывание современные процессоры! Поэтому:
На обычных линиях сети Телфин есть возможность авторизовывать вызовы по IP-адресу, с которого они приходят(в случае наличия у АТС статического внешнего IP-адреса) и полю «From», соответствующему номеру линии клиента. Это дает возможность вообще не указывать пароль устройства в настройках АТС(и тогда его невозможно будет выкрасть). Также можно попросить тех.поддержку Тефлин сменить текущий пароль линии для работы оборудования и не сообщать вам новый. Т.о. именно Телфин будет нести ответственность за сохранность текущего пароля ваших линий — до тех пор, пока вы не попросите сообщить вам снова пароль вашей линии. Для этого необходимо написать соответствующий запрос на адрес support@telphin.ru с вашего контактного эл.адреса, указанного в данных личного кабинета https://cabinet.telphin.ru/.
В виртуальной АТС Телфин.Офис есть возможность жестко определить IP-адреса, с которых разрешена регистрация на добавочных. Настройка выполняется индивидуально для каждого добавочного. Данная настройка будет полезна в том числе и при настройке других АТС на добавочные «Телфин.Офиса». В случае необходимости выполнения данной настройки, необходимо написать соответствующий запрос на адрес support@telphin.ru с вашего контактного эл.адреса, указанного в данных личного кабинета https://cabinet.telphin.ru/.
ОБРАЩАЕМ ВАШЕ ВНИМАНИЕ, что описанное выше не является панацеей и/или полным описанием всех возможных мер безопасности по защите вашей АТС. Но их соблюдение точно сведет к минимуму возможность позвонить через ваш аккаунт у оператора телефонии и тем самым сохранить ваши деньги.
Если вы желаете получить еще большую защиту, вы можете воспользоваться нашим решением Телфин.VoiceVPN.
Источник
Настройка 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 которые содержат действующий номер телефона:
Источник