- Автор: daniil
- Распечатать
Оцените статью: Поделитесь с друзьями!
- 5
- 4
- 3
- 2
- 1
(0 голосов, среднее: 0 из 5)
Поскольку мы настроили внешний транк и нам могут позвонить из вне то сразу всплывает вопрос, как настроить входящие звонки по направлению, желательно к конкретному номеру, кому разрешить пользоваться внешней связью а кого ограничить только внутренней, ведь номеров у нас уже порядка 20. Рассмотрим более детально шаблоны и правила набора номера.
Итак, для того что бы астериск мог совершить звонок вне нашей IP-АТС он должен знать какой номер (в каком формате) по какому транку передать, для этого предназначен раздел Исходящая маршрутизация (Outbound Routes), в этом разделе мы можем создать несколько маршрутов в каждом маршруте может быть использовать несколько транков, маршруты астериск перебирает по порядку сверху вниз, как только находит совпадение в шаблоне номера использует транки в маршруте, перебирает их так же сверху вниз, если первый маршрут по какой-то причине не сработал (например занят, не работает, какой-то иной сбой) используется второй и так далее по списку.
Учитывая то что маршруты перебираются сверху вниз, первыми по списку лучше пускать более детальные маршруты, например с кодом города, после них пускать маршруты с более общей маской например мобильники, затем уже страну, потому что если сделать наоборот то сработает маршрут страны, но не сработают остальные, впрочем остановимся более подробно на шаблонах.
В шаблоне есть поля: приставка(prepend), префикс (prefix), совпадение шаблона (match pattern) и Caller ID, раньше были не поля, в какой-то момент времени использовалась запись как в конфиг файлах астериска.
Приставка это любые цифры которые Астериск подставит перед номером, префикс это цифры которые астериск уберёт из номера, шаблон это шаблон.
В шаблоне мы можем использовать следующие обозначения: X – одна цифра от 0 до 9, Z – одна цифра от 1 до 9, N – одна цифра от 2 до 9, ну и конечно мы можем использовать и сами цифры. Например, если нам нужен шаблон для номеров от 1000 до 1099 мы можем использовать 10XX.
Наш провайдер использует набор номера через 8, а определяет входящие как 7ХХХХХХХХХХ, в сотовых телефонах это +7 значит необходимо заменить 7 и +7 на 8 при наборе номера.
Здесь мы разрешаем прохождение вызова при наборе через 8, и заменяем +7 и 7 на 8 в случае их набора. В поле CallerID прописан диапазон номеров кому разрешено пользоваться транком. Если транк не один то выбираем последовательность их использования. Если занят первый то используется второй.
Махинации с префиксами и приставками можно делать не только в исходящей маршрутизации, но так же и в самом транке. Но если в исходящей маршрутизации шаблон используется для определения в какой транк запустить вызов, то в самом транке это уже на шаблон, а маска, т.е.
если астериск передаёт номер в транк который не соответствует маске, то вызов совершён не будет, если не задавать маску в транке, то и проверки никакой проводится не будет, астериск пропустит все номера.
В самом транке (в данном случае intelnetcom) введем правило позволяющее звонить на городские и мобильные номера.
А в транке Sipnet добавим эти правила:
Sipnet при наборе использует не 8 а 7, теперь при этих настройках в случае когда занят intelnetcom звонок уйдет на Sipnet и 8 поменяется на 7. здесь же указано конкретно что звонить только на Московские стационарные телефоны.
С исходящей маршрутизацией разобрались, теперь о входящей. Телефонов много и самый простой способ это донабрать внутренний номер. Сделать это можно при помощи интерактивного меню IVR. Создаем меню и называем его как нибудь.
Редактируем как удобно вам. В примере при поступлении звонка входящая маршрутизация направляет его на IVR, прокручивается приветствие, которое запишите сами, далее Прямой набор– наши внутренние номера, таймаут – время ожидания набора номера, если трижды был введен не правильный номер то звонок сбрасывается.
Если кто то не сообразил что от него хотели или не знает что делать то звонок будет переведен на номер 1001. С донабором тоже разобрались. А как быть с теми номерами которые должны дозваниваться до конкретного внутреннего номера в обход меню.
Делаем это так, добавляем Входящий маршрут в котором явным образом указываем кого подключать при совпадении входящего номера.
Гораздо проще разбираться если описание делать похожим на входящий номер. Caller ID – номер который надо перенаправить на конкретный телефон и активируем маршрут по приоритету CID
и устанавливаем конкретное направление на внутренний номер. На этом пока все. Система полностью работоспособна и у меня трудится уже с пол года без каких либо нареканий.
Статья ориентирована на начинающих пользователей Asterisk, которые, тем не менее,
имеют знания о работе компьютерных сетей на уровне CCNA и которые изучали основы IP-телефонии без специализированных курсов.
1. Вы не отключили анонимные звонки и использовали контекст по умолчанию для плана нумерации
Проблема
По умолчанию, в Asterisk включены анонимные звонки, чтобы вам могли звонить из любой точки планеты напрямую, указывая номер@вашдомен в качестве назначения звонка и опираясь на работу DNS.
Это очень полезная возможность, но она может сыграть с вами дурную шутку, если вы используете контекст по умолчанию для основной нумерации.
Получится, что любой желающий, отправивший запрос на номер_телефона@ваш_домен сможет за ваш счет позвонить по межгороду, например.
Решение
Первое правило, которому следовать нужно всегда: не использовать контекст по умолчанию для нумерации. Запомните, контекст default только для анонимных звонков из интернета, рассматривайте его как самый недоверенный из всех.
Если вы не планируете принимать анонимные звонки, обязательно отключите их.sip.conf
[general] allowguest=no
2.
Вы по-разному отвечаете на запрос регистрации с верным именем пользователя и неверным паролем и на запрос с несуществующим именем пользователя
Проблема
В интернете хватает желающих позвонить за чужой счет, поэтому надо максимально усложнять им жизнь.
Asterisk, по умолчанию (до недавних пор, но вдруг у вас не совсем свежая версия), по-разному отвечает на попытки регистрации с неверным именем пользователя и с верным именем, но неверным паролем.
Отсюда возникает возможность у атакующего выяснить существующие имена абонентов и уже целенаправленно подбирать пароли к ним.
Решение
sip.conf
[general] alwaysauthreject = yes
3. Вы не используете списки доступа ACL и/или средства динамического ограничения доступа Поскольку, несмотря на предпринятые в прошлом пункте усилия, все ещё сохраняется возможность подбора пароля, во всех случаях, когда возможно, следует использовать правила контроля доступа (acl)sip.conf
[my_user] deny=0.0.0.0/0 permit=172.16.0.0/12 ; указывайте сети, откуда может выполняться регистрация
Бывают случаи, когда невозможно использовать acl — абонент может регистрироваться из произвольной сети. В этом случае необходимо использовать средства динамической блокировки, например fail2ban — утилита для обработки логов Asterisk с целью выявления и блокировки адресов, с которых производилось много попыток неудачных регистрации.
4. В плане нумерации вы пропустили _ и удивляетесь тому, что звонки не идут
Довольно простая ошибка, но часто встречается среди начинающих.
Неправильно[citycalls] exten => XXXXXX,1,Dial(DAHDI/g1/${EXTEN})
Правильно[citycalls] exten => _XXXXXX,1,Dial(DAHDI/g1/${EXTEN})
В первом случае вы задали не шаблон, а звонок на номер XXXXXX (икс-икс-икс-икс-икс-икс). Просто не забывайте, что шаблоны задаются символом _
5. Вы используете nat и звук проходит только в одну сторону
Тема работы Asterisk и абонентов, между которыми в разных конфигурациях существует трансляция адресов настолько обширна, что выходит за рамки этой статьи, но все же дам несколько полезных советов:
Уже на этом шаге можно многое понять, особенно если вы знаете как работает NAT.
conf) и установите directmedia=nonat, если вам не нужно прохождение всего трафика через Asterisk, что может потребоваться для записи разговоров.
conf
Удачи в освоении Asterisk!
Самые большие возможности дает интеграция цифровых АТС на базе Asterisk с 1С. Кроме этого возможна интеграция 1С и АТС Panasonic.
Другие производители также имеют кое-какие возможности, однако работают они не так стабильно и результат некоторых внедрений не гарантированный.
100% результат и предсказуемость дает Asterisk, именно на него приходится большая доля работ.
Важное отличие нашего модуля интеграции Asterisk и 1С от других существующих в том, что мы не берем плату за каждого пользователя. Мы предоставляем весь функционал телефонии в безлимитное пользование и неважно сколько человек и филиалов у вас появится через год.
Кроме этого мы не продаем “нечто”, что вам потом нужно будет устанавливать самостоятельно или дополнительно платить за установку и внедрение.
Мы продаем именно готовую установку вместе с услугой и внедрением у вас на предприятии, а сам продукт вам предоставляется бесплатно. За сам продукт не берется никакой платы, т.к. наша цель не продать и забыть, а установить и чтобы у вас всё работало.
Это же является гарантией результата, т.к. если что-то не будет работать, вы просто нам не заплатите.
Интеграция Asterisk возможна с любой конфигурацией 1С версии 8: Предприятие, Торговля, УПП, ERP, неуправляемые и управляемые формы. После согласования функционала большинство внедрений происходит удаленно без выезда специалистов.
Таким образом, не важно из какого вы города или поселка – все работы будут выполнены без выезда.
Это существенно экономит средства, к тому же внедрение нашими специалистами производится намного быстрее и качественнее, чем сторонними программистами еще не сталкивающимися с интеграцией 1С и АТС.
И наконец, наша разработка не закрыта, а полностью открыта и в последствии вы сможете самостоятельно вносить в нее изменения и добавлять новые функции и отчеты. Это также оградит вас от крупных скрытых плат в будущем.
У нас вы платите только за время внедрения, получая все необходимые компоненты и модули бесплатно в открытом виде.
Поэтому на практике наши готовые внедрения оказываются в 2-3 раза дешевле других платных “готовых” пакетов для которых вам потребуется дополнительно оплачивать внедрение. А закрытые разработки вынуждают в течение двух лет совершать платы соизмеримые с первичным платежом.
Важным достоинством нашей разработки и модуля интеграции с Астериск является полная поддержка нового канального драйвера PJSIP Asterisk.
Приведем список функций, а затем рассмотрим каждую из функций подробно:
Подробная инструкция по настройке АТС Asterisk сервера для офиса. После настройки Вы получите базовую функциональность телефонной АТС.1. Создадим 5 номеров к которым можно будет подключить как softphone например 3CXPhone и MicroSIP так и железный радио sip телефон например GIGASET C610A IP, телефон Cisco 7492.
2. Подключим прямой московский номер у провайдера IP телефонии Zadarma, настроим прием звонков с прямого номера на наши внутренние номера телефонов.3. Настроим звонки с/на внутренние номера Zadarma провайдера телефонии которые не тарифицируются.4. Настроим звонки на внешние номера через Zadarma провайдера телефонии.
Регистрируемся на сайте zadarma.com, регистрируем прямой номер в нужной стране (обязательно потребуется прикрепить скан паспотра), в настройках sip выписываем логин пароль и сервер:
login: 08364
pass: sBfdf8Hja46dov
server: sip.zadarma.com
Если Вам нужно потренироватся, то можно не подключать прямой номер, а обойтись внутренним провайдера, чтобы проверить текущую конфигурацию телефонии в работе. Для имитации звонка на прямой номер, подключаетесь со смартфона к задарма по одному из сипов, стандартно дается 3 sip номера на аккаунт и позвонить на внутренний sip номер подключенный на Asterisk.
Исходные данные:
Установлен Asterisk 13 по инструкции Установка Asterisk PBX 13 в Debian и Ubuntu server либо по другой из множества инструкций по установке Asterisk на данном сайте.
После установки сервера мы имеем стандартные конфигурационные файлы Asterisk сервера которые находятся по пути /etc/asterisk/
Переходим в эту папку выполнив команду:
cd /etc/asterisk/
Создаем нужные конфигурационные файлы выполнив команды:
echo '
[general]
context=default
alwaysauthreject=yes
allowguest=no
match_auth_username=yes
allowoverlap=no
allowtransfer=yes bindport=5060 ; управляющий SIP порт 5060 по умолчанию
bindaddr=0.0.0.0
tcpenable=yes
udpbindaddr=0.0.0.0
tcpbindaddr=0.0.0.0 ;bindport=5171 ; управляющий SIP порт 5171 не стандартный, ставим при работе через интернет, чтобы отсечь основную массу ботов
;bindaddr=0.0.0.0:5171 ; расскоментировать этот блок и закоментировать блок выше со стандартным портом 5060
;tcpenable=yes
;udpbindaddr=0.0.0.0:5171
;tcpbindaddr=0.0.0.0:5171 videosupport=yes
useragent=csipsimple
pedantic=no
limitonpeers = yes callcounter=yes ; раскоментировать и изменить на свои айпи сервера при подключении через NAT роутера, ; и обязательно пробросить на этот сервер rtp и sip порты на файрволе роутера(сервера):
;localnet=192.168.1.0/255.255.255.0
;externip=36.49.23.69 disallow=all
allow=alaw
allow=ulaw language=ru
relaxdtmf=yes
dtmfmode=rfc2833
force_rport=yes #include peers_registered.conf
#include peers_templates.conf
#include peers_userall.conf
#include peers_trunks.conf
' > sip.conf
Создаем файл с шаблонами пользователя:
На данный момент существуют следующие варианты подключения Астериск к сети с использованием ОКС7
После изучения libpri и chan_ss7 был сделан вывод о “сырости” первого и готовности второго к коммерческому использованию. Далее речь пойдет о chan_ss7.
Данный драйвер был разработан для внутреннего использования и был выложен в открытый доступ по лицензии GPL в надежде на дальнейшее развитие активными участниками сообщества.
Основные функциональные возможности
Для работы chan_ss7 треубется работающий Астериск сервер с E1 картой и драйвером Dahdi. Драйвер протестирован с оборудованием Digium, asterisk 1.4.10 и chan_ss7-0.9. Лучше всего использовать ядро версии 2.
6 в связи с улучшенным временем реакции (lower latency), что позволяет избегать недогрузок буферов ОКС7 линка (MTP2 протокол является протоколом реального времени).
Однако возможно запускать решение и на более старом оборудовании путем увеличения значения NUM_ZAP_BUF в mtp.c.
chan_ss7 работает с сигнализацией напрямую, поэтому в zaptel.conf под b-каналы нужно отдавать все таймслоты. Пример zaptel.conf:
span=1,1,0,ccs,hdb3 – got this working!
span=1,0,0,ccs,hdb3
bchan=1-31 span=2,0,0,ccs,hdb3
bchan=32-62
Обратите внимение на отсутствующие декларации dchan!
Часто современные Linux дистрибутивы поставляются с активированными режимами вытесняющей многозадачности (preemption), предназанченными для desktop систем для улучшенной интерактивности. Ядро должно быть пересобрано со следующими настройками:
Processor type and features —> … Preemption Model (No Forced Preemption (Server)) —> [ ] Preempt The Big Kernel Lock … Timer frequency (100 HZ) —>
Конфигурационный файл для канала chan_ss7 называется ss7.conf и должен находится в папке с остальными конфигурационными файлами Астериск (обычно /etc/asterisk).
Конфигурационный файл содержит несколько секций.
chan_ss7 auto-configures by matching the machines host name with the host-
section in the configuration file. The same configuration file can thus be used on several hosts.
В данном примере используются следующие настройки ОКС7:
[linkset-siuc]
enabled => yes
enable_st => no
use_connect => no
hunting_policy => even_mru
context => ss7-in
language => en
subservice => auto [link-l1]
linkset => siuc
channels => 2-31
schannel => 1
firstcic => 1
enabled => yes [link-l2]
linkset => siuc
channels => 2-31
schannel => 1
firstcic => 33
enabled => yes [host-ivr]
enabled => yes
if-1 => 192.168.0.2
opc => 1
dpc => siuc:5003
links => l1:1,l2:2
Может ли один Asterisk сервер поддерживать несколько ОКС7 линков, т.е. иметь несколько OPC?
Нет, в текущей реализации chan_ss7 не может. В настройках ss7.conf возможно указать только один OPC. Таким образом, даже если у вас 4-х портовая карта и провайдер может подать на нее два логических ОКС7 линка, это невозможно.
Возможно ли иметь только один сигнальный таймслот на несколько потоков?
Да, возможно. Для этого не надо указывать значения для schannel. Например:
В версии Asterisk v13+ появилась поддержка SS7, позволяющая выполнять подключения к реальному оборудованию. Итак, рассмотрим последовательность шагов, необходимых для сборки Asterisk, поддерживающего работу с цифровыми каналами связи.
Планирование подключения
Нам надо определиться, будет ли у нас подключение к вышестоящему оператору связи (uplinks) телефонии, или мы будем заниматься исключительно обслуживанием наших downlinks. От этого будут зависеть как параметры настройки канального уровня (от кого и в каком порядке будет осуществляться синхронизация физических потоков), так и параметры сетевого уровня (см. ниже).
В нашем примере мы будем использовать следующие исходные данные:
– две 4-х портовые интерфейсные платы Digium TE 420;
– на первой плате 4 порта управляются по сигнализации ОКС-7 и собраны в один пучок (linkset). Параметры подключения: «точка-точка», наш pointcode 650, pointcode соседа 599, он же является конечной точкой. Это подключение к «uplink», т. е. физическую синхронизацию будем получать от него; — на второй плате к первому порту подключается потребитель, работающий по протоколу EuroISDN, которому мы даем 30 соединительных линий (т. е. задействуем все таймслоты в E1). Для этого потребителя мы являемся сетью (NET);
– на второй плате ко второму порту подключается другой потребитель, но также работающий по протоколу EuroISDN. Но ему мы даем только 10 соединительных линий (10 младших таймслотов в E1. Остальные таймслоты в потоке, за исключением сигнального, не задействованы);
– оставшиеся два порта второй платы пока не используются.
Установка интерфейсных плат
Я использую интерфейсные платы производства Digium на 1 (TE 131*), 2 (TE 235*), и 4 (TE 420*) канала. Сейчас в продаже имеются и 8-канальные платы, но как-то руки не доходили протестировать их работоспособность.
Перед установкой плат необходимо:— выставить джамперами требуемый тип интерфейса (T1 или E1) для каждого из портов на плате; — выставить переключатель, идентифицирующий порядковый номер платы в системе (при установке нескольких плат значения, выставленные на переключателях, должны быть уникальны для каждой карты); — при установке в систему нескольких карт рекомендуется также соединить их специальным шлейфом, который обеспечит единую синхронизацию для всех портов (хотя в действительности я не заметил каких-либо нарушений работоспособности при отсутствии этого шлейфа даже при передаче факсов между портами, расположенными на разных платах); Подробнее процесс установки оборудования см. в оригинальных datasheet от Digium.
Сборка драйверов уровня ядра и сопутствующих утилит
Так как мы установили дополнительное интерфейсное оборудование, то для его поддержки потребуются драйвера уровня ядра, которые отсутствуют в стандартных дистрибутивах linux. Поэтому нам придется собрать их самостоятельно, а для этого понадобятся исходные тексты ядра linux.
Если использовать исходные тексты именно той версии ядра, которая установлена в системе, то сборка и установка самого ядра нам не потребуется. Если версия не совпадает, то необходимо будет сначала собрать новое ядро, и только после этого собирать драйвера dahdi.
Итак, скачиваем с официального сайта asterisk и распаковываем последнюю версию драйверов dahdi. Кстати сразу же можно скачать и библиотеки libpri и libss7, которые будут необходимы для сборки chan_dahdi. В пакете tools для работы с dahdi есть две полезные утилиты, которые по умолчанию могут и не собраться.
Это dahdi_tool (позволяет в консольном режиме посмотреть состояние физических портов E1) и dahdi_pcap (позволяет сохранять трафик, проходящий через порт E1, для дальнейшего его анализа при помощи wireshark). Для сборки dahdi_tool требуется наличие в системе пакета newt-devel, а для dahdi_pcap требуется libpcap-devel.
Для работоспособности утилиты dahdi_pcap до сборки требуется отредактировать файл dahdi-linux-complete/linux/include/dahdi/dahdi_config.
h, в котором надо добавить строку #define CONFIG_DAHDI_MIRROR Далее приступаем к сборке и установке собственно драйверов: cd dahdi-linux-complete make clean make sudo -u root make install Утилита dahdi_pcap штатной системой сборки в любом случае не собирается, поэтому собираем ее вручную: cd dahdi-linux-complete/tools make dahdi_pcap После этого вручную копируем исполняемый файл dahdi_pcap в нужное нам место.
Создание конфигурации драйверов уровня ядра
Когда-то давно я разворачивал сервер VoIP в офисе, выбор был между Trixbox и Elastix, правда у Elastix был странный глюк со стабильностью работы транка к провайдеру, проблема была в том что транк падал по необъяснимой причине, в логах по данному поводу ничего вразумительного не было, в результате, после тестирования, предпочтения были отданы Trixbox, который, в тестовой среде, показал себя просто отлично, и результатом стало успешное использование более 2х лет. Тут мне на поддержку перешла новая компания, в планах которой было использовать VoIP в этот раз я решил еще раз протестировать Elastix. Визуально Elastix более функционален т.к. содержит больше функций из коробки, остальное можно добавлять с помощью модулей. В функционале Elastix есть, собственно PBX-сервер, mail-сервер, jabber (openfire), статистика. Все остальное можно добавить самому.
Я хочу настроить сервер Asterisk с тремя подключенными телефонами, мы будем использовать 2 провайдера VoIP — PCtel.ru и sipnet.ru
Первый обеспечивает дешевую телефонную связь по РФ 1 руб. за мин. второй позволяет звонить на прямые московские номера до 40 мин в день бесплатно, при условии что у вас на счету более 5 у.е., в общем для тестирования данные провайдеры легко настраиваются, а в дальнейшем, с небольшими изменениями, можно подключать к любому провайдеру с сохранением функционала.
Мы настроим диалплан, чтобы звонки на мобильные телефоны и городские телефоны в других городах автоматически шли через pctel.ru, а на городские Москвы через sipnet.
ru, при этом входящие звонки будут попадать на номер 100, если он недоступен или не отвечает, через 10 сек, перенаправлен на номер 200, если и он не отвечает то «пиликать» должны все телефоны — 100, 200, 300.
Я не буду рассматривать процесс установки системы, он весьма прост и нагляден.
Для работы нам понадобится дистрибутив Elastix, актуальную версию которого, можно скачать с сайта разработчика
Для начала обновим систему, зайдя под пользователем root и паролем который вы указали при установке системы:yum -y updateПерезагрузимся, чтобы применить обновления:rebootну и идем в web консоль, если случайно вы не задали статистический IP адрес вашему серверу, то IP можно узнать зайдя в консоль, под пользователем root( на скриншоте подчеркнуто красным):Если требуется настроить сеть то идем во вкладку System, а там в Network и жмем на кнопку Edit Network Parameters (на скриншоте обведено красным)
Редактируем настройки сети- если требуется, далее идем настраивать экстеншены- вкладка PBX.
Выбираем устройство SIP:
Первый пользователь с внутренним номером 100 у нас будет оператор (operator) в поле DisplayName, укажем его имя латиницей, тогда у того кому он звонит, будет высвечиваться его имя(при условии что телефон, у того кто принимает звонок, поддерживает данную функцию есть такие что не поддерживают, тогда высвечивается номер), также мы активируем функцию, Call Waiting, весьма полезная вещь, нужна она для того, если поступил новый звонок, во время того как пользователь уже разговаривает, а телефон имеет 2 канала, то пользователь может переключиться на вторую линию, а первый звонок будет находиться в режиме удержания и к нему можно будет вернуться, если телефон пользователя имеет только одну линию, то положив трубку, он будет переключен на новый входящий звонок. Для подключения экстеншена к VoIP серверу нам нужно придумать пароль, !!! для тестовых целей!!! я использовал 123456qw.
Современные инсталляции для унитазов становятся все более популярными благодаря эстетике, удобству и функциональности. С их…
Важный этап в процессе передачи владения недвижимостью – оформление соответствующих бумаг. От них зависит законность…
Значит, скважина на участке — штука реально нужная, без неё никуда. Вода, как-никак, вещь первой…
Подвесные светильники – осветительные приборы, которые правильно располагать на некотором расстоянии от потолка. В качестве…
Душевые кабины из стекла – удобная вещь для комфортного приема душа. Все больше людей устанавливают…
Проведение многих строительных работ связано с обработкой грунта. Для перемещения камней, песка и щебня привлекают…
This website uses cookies.