Tamkovich.com: Телеком/VoIP блог
Современные технологии: Asterisk, SIP, Kamailio, Linux, Cisco, Linksys
AddPac AP200D, SIP и Asterisk.
30 сентября, 2009 by Сергей Тамкович
Asterisk, Железо addpac, SIPДля связи с ТФОП лучше всего использовать цифровые шлюзы или провайдеров IP телефонии. К сожалению, эти опции не всегда доступны. С предоставлением номеров по IP Телефонии в России существуют определённые юридические трудности, а цифровые шлюзы для многих — непозволительная роскошь.
Подавляющее большинство аналоговых (FXO) шлюзов — отвратительные поделки. Качество аналоговых телефонных линий в России так же оставляет желать лучшего. Эти два фактора делают использование FXO железок крайне нежелательным.
Сегодня я бы хотел поговорить о простеньком шлюзе AddPac AP200D. Это Корейско-Китайское устройство выгодно отличается качеством своей работы от основной массы д-линков, эджкоров и прочего китайского хлама. Не сказать что устройство дешевое, на сентябрь 2009 года оно стоит 333$ (10300 рублей) — дороже многих китайцев, но существенно дешевле аналогов от Cisco.
Устройство имеет 2 порта Ethernet, 2 порта FXO и 1 консольный (RS232) Порт. Первоначальная настройка осуществляется с помощью консольного порта. Для доступа к устройству через последовательный порт, необходимо воспользоваться программой — эмулятором терминала. Под Linux мне нравится пользоваться программой picocom, но можно воспользоваться и любой другой: minicom, cu из пакета uucp, kermit и т.д. Под windows выбор тоже широк: SecureCRT, HyperTerminal и т.д. Лично мне нравится бесплатная PuTTY. Параметры последовательного порта, для подключения к устройству следующие:
- Speed 9600
- Data bits 8
- Parity none
- Stop bits 1
- Flow control no
Подключите устройство к компьютеру с помощь последовательного порта. Откройте порт в эмуляторе терминала. Включите устройство. После включения, вы увидите в терминале процесс загрузки операционной системы устройства — APOS. После загрузки устройство предложит ввести имя пользователя и пароль, для начала работы с устройством. Логин и пароль по умолчанию для AddPac AP200D:
- Login: root
- Password: router
Настройка Addpac AP200D
Синтаксис команд операционной системы APOS является точной копией синтаксиса Cisco IOS. Для того, что бы принимать звонки с этого устройства необходимо настроить несколько базовых параметров. Сперва, сконфигурируем ethernet интерфейс:
conf t interface ether0.0 ip address 172.16.92.11 255.255.255.0
Пропишем маршрут по умолчанию (шлюз для нашей сети):
route 0.0.0.0 0.0.0.0 172.16.92.1
Сохраним сделанные нами изменения:
Ctrl+z wr
Теперь, когда настроен сетевой интерфейс, к устройству можно подключаться не только через последовательный порт, но и по IP с помощью telnet. Следующим шагом необходимо настроить FXO порты, для этого используются следующие команды:
voice-port 0/0 connection plar 74842111111 ring detect-timeout 50 caller-id enable caller-id type etsi caller-id name disable voice-port 0/1 connection plar 74842111112 caller-id enable caller-id type etsi caller-id name disable
PLAR это Private Line Automatic Ringdown. С помощью директивы connection plar 74842111111 указывается номер, на который поступил вызов (телефонный номер линии присоединённой к данному порту). Я предпочитаю указывать все номера в формате е164, так с ними легче работать в дальнейшем. Директивы caller-id включают поддержку АОНа и устанавливают протокол, в котором ваш оператор передаёт вам CallerID.
Последний этап настройки AddPac AP200D — настройка маршрутизации звонков внутри устройства. В AddPac, так же как и в Cisco, маршрутизация звонков производится с помощью dial-peer. В каждом звонке участвуют 2 dial-peer: 1 на входящую «ногу» звонка и 1 на исходящую. Нас интересует, как реализовать простой шлюз IP телефонии для приёма вызовов из ТФОП. Т.е. нам необходимо смаршрутизировать все звонки, пришедшие из ТФОП в сеть IP телефонии. Для этого нам понадобится 3 dial-peer:
dial-peer voice 1 pots port 0/0 ! dial-peer voice 2 pots port 0/1 ! dial-peer voice 3 voip destination-pattern 7T session target 172.16.33.3 session protocol SIP codec g711alaw no vad dtmf-relay rtp-2833 fax protocol t38 redundancy 0 fax rate 9600
Диалпиры 1 и 2 — пустышки, они не присваивают никаких параметров ко входящим звонкам. Их наличие требуется для того, что бы звонок состоялся. Если на устройство приходит звонок, для которого не определен входящий dial-peer — звонок будет отбит. Диалпир 3, используется для направления звонков на сервер IP-телефонии 172.16.33.3 по протоколу SIP. В этот диалпир попадают все звонки, в которых вызываемые номера начинаются на 7 (это обусловлено директивой destination-pattern 7T). Вызываемые номера мы прописали у каждого порта с помощью директивы «connection plar» (таким образом можно направить разные порты на разные сервера, прописав для каждого номера отдельный dial-peer). Этот dial-peer так же устанавливает некоторые параметры ip-телефонии: кодек G711a (директива codec g711alaw), отключаем подавление тишины (директива no vad), устанавливаем протокол передачи DTMF — RFC2833 (директива dtmf-relay rtp-2833) и, наконец, устанавливаем параметры передачи факсов — протокол t38 (fax protocol t38 redundancy 0) и максимальную скорость передачи факса 9600 бит/с (fax rate 9600). Кстати, данный addpac изумительно работает с T38. На этом настройка шлюза заканчивается, осталось лишь сохранить изменения командой «wr».
Настройка Asterisk
Настройка Asterisk — ещё проще. Для приёма звонков достаточно создать запись в файле SIP.conf:
[mygw] type=friend host=172.16.92.11 disallow=all allow=alaw dtmfmode=rfc2833 context=default
Данная SIP friend не содержит логин/пароль, по этому аутентификация будет производиться по IP адресу. Все звонки, пришедшие с IP 172.16.92.11 будут присвоены пользователю «mygw» и направлены в контекст «default». Вот и всё!
Asterisk, Железо addpac, SIP
А есть мысли, как сделать исходящий вызов с AddPac, т.е. чтобы абонент Astersisk’a мог позвонить в ТфОП.
Для того что бы звонок ушел в ТФОП, надо в dial-peer voice 1 pots и dial-peer voice 2 pots прописать destination-pattern,
т.е. если мы пропишем вот так:
dial-peer voice 1 pots
destination-pattern 7495T
port 0/0
!
dial-peer voice 2 pots
destination-pattern 7812T
port 0/1
Все звонки на Москву пойдут через первый порт, а все звонки на Питер — через второй.
Благодарю за конфиг, мои настройки pots пира были практически аналогичными, а проблема оказалась в том, что АТС к которой подключена моя квартира не воспринимает тональный набор … а тут уже ничего не поделать =(
Александр, если ваш город имеет больше 100 000 жителей, почти наверняка ваша АТС понимает тоновый набор, вам следует сходить на ближайший узел связи и узнать что нужно для его активации. Чаще всего нужен паспорт владельца телефона + деньги.
Другой вариант, купит на радиорынке (в радиомагазине) конвертер dtmf <-> pulse. Обычно стоят очень недорого.
И еще раз спасибо )
Действительно за деньги можно все ) … и за +18 р. к тарифу СЗТ стал понимать тональный набор, за что ему спасибо, как бэкапный канал для дома очень даже пригодится. Теперь приступлю к настройкам AddPac’а.
Кстати, с каким еще опенсорс проектами (IPPBX) приходилось работать кроме астера?
Настроил работу AddPac1100F с IPPBX, все работает.
В вашем примере необходимо добавить строчку к pots диалпирам:
forward-digits from 0
Иначе на АТС (тфоп) AddPac пошлет номер без кода города (он будет обрезаться).
Использую как шлюз к факсу brother fax-236. Факсы, разговоры проходят (могу прислать настройки), НО! тоновый набор номера с fax-236 не идет! После любой цифры снова гудок (посылка вызова). С любых др. аппаратов набор через AP200 нормальный. fax-236 в PSTN набирает нормально. Не подскажете, где копать?
Яков, лично я никогда с таким не сталкивался. Можно попробовать покрутить сопротивление порта FXS, но от этого может появится эхо или другие артефакты. Начал бы я с того, что включил дебаг для данного порта и посмотрел что происходит когда вы пытаетесь набрать номер.
есть программа для легкой конфигурации addpac на офф сайте кому надо: http://www.addpac.com/down/VoIP_easy_setup_v2.35.exe
Помогите настроить постоянную переадресацию на облачный SIP ID
———————————————————————————
Command base-URL: /exec/show/running-config User ID: root
———————————————————————————
!
version 8.30W
!
hostname AP200
!
!
no bridge spanning-tree
!
dhcp-list 0 type server
dhcp-list 0 address server interface ether0.0
dhcp-list 0 option dhcp-lease-time 7200
!
dhcp-list 1 type server
dhcp-list 1 address server 10.1.1.2 10.1.1.254 255.255.255.0
dhcp-list 1 option dhcp-lease-time 600
!
!
ip-share enable
ip-share interface net-side ether0.0
ip-share interface local-side ether1.0
!
interface ether0.0
ip address 10.10.10.215 255.255.255.0
!
interface ether1.0
no ip address
ip dhcp-group 0
!
snmp name AP200E
!
no arp reset
!
route 0.0.0.0 0.0.0.0 10.10.10.1
!
dnshost domain 8.8.8.8
dnshost nameserver 8.8.8.8
!
auto-script autorun.inf
!
!
!
!
!
! VoIP configuration.
!
!
! Voice service voip configuration.
!
voice service voip
fax protocol t38 redundancy 0
fax rate 9600
h323 call start fast
h323 call tunnel enable
busyout monitor gatekeeper
busyout monitor voip-interface
!
!
! Voice port configuration.
!
! FXO
voice-port 0/0
connection plar 7495#######
ring detect-timeout 100
ring detect-timer 500
no caller-id enable
!
!
! FXS
voice-port 0/1
caller-id enable
!
!
!
!
! Pots peer configuration.
!
dial-peer voice 1 pots
port 0/0
!
!
!
! Voip peer configuration.
!
dial-peer voice 2 voip
destination-pattern T
session target name1@name2.mangosip.ru
session protocol SIP
codec g711alaw
voice-class codec 1
no vad
no dtmf-relay
!
!
!
dial-peer ipaddr-prefix n
dial-peer call-hold h
dial-peer call-transfer h
!
!
!
! Gateway configuration.
!
gateway
h323-id voip.10.10.10.215
no ignore-msg-from-other-gk
!
!
! SIP UA configuration.
!
SIP-ua
!
!
! MGCP configuration.
!
mgcp
no codec
vad
!
!
! Tones
!
!
!
!
———————————————————————————
Подскажите, а как адресовать входящий вызов на группу внутренних телефонов?