Автор:Сгибнев Михаил
v2010072100
Почему-то я не перенес эту статью со старого сайта, сейчас исправляю это досадное упущение, немного дополнив и переработав.
IP-телефония. Как много неизученного и странного скрыто под этим словосочетанием. В настоящее, весьма скудное на финансирование, время, системному администратору часто ставятся противоречивые задачи — обеспечить телефонную связь дешевую и вместе с тем надежную. Практически единственным вариантом, при таком раскладе, является внедрение OpenSource решений. Общепризнанным лидером в области передачи голосовой информации по сетям передачи данных является IP-АТС Asterisk.
Ввиду того, что создание системы IP-телефонии очень редко происходит полностью «с нуля», приходится подпирать IP-костылями имеющуюся систему аналоговой телефонии и скрещивать различные системы IP-телефонии, постепенно приводя ее к единому стройному виду вплоть до полной победы какой-либо одной системы. И в этом случае, на роль ядра данной разнородной системы стоит рассматривать IP-АТС Asterisk.
Основными плюсами, при реализации телефонии на данном решении, на мой взгляд, является легкость построения территориально-распределенной сети (завязывание ГО и филиалов в единое адресное пространство), возможность использования софт-фонов, ip-фонов и традиционных телефонных аппаратов, удешевление МГ/МН связи за счет подключения к провайдерам SIP-телефонии. В условиях дефицита средств возможно использование для установки ПО практически любого аппаратного обеспечения и, в этом случае, большую роль играет простота создания резервных копий и восстановления конфигурации.
Но, Asterisk бывает разный. Поскольку лично мне требовалось решение, максимально массовое и удобное в эксплуатации, то решено было остановиться на продуктах, позволяющих максимально сократить время установки, имеющих web-интерфейс для настройки и доступных для понимания даже не имеющему представления о телефонии персоналу.
Такого ПО достаточно много, в частности:
Как не сложно догадаться, выбор свой я остановил на TrixBox.
Итак, кратко пробежимся, зачем он мне вообще понадобился:
- Замена или модернизация устаревших АТС филиалов. В этом случае можно провести плавную замену имеющейся АТС на TrixBox или, к примеру, организовать взаимодействие абонентов Головного Офиса и филиала. Как показала практика, данный вариант возможен и дает прекрасные результаты только в случае наличия желания и необходимых знаний у администратора филиалов! В противном случае, все проблемы будут скинуты на Головной офис и до приведения системы к удовлетворяющему всех состоянию будет потрачено немало сил. Из 5 отправленных в рамках пилотного проекта TixBox-ов, привести его в изумляющее состояние смог только один администратор филиала, полностью освоив данное ПО и радуя нас, в дальнейшем, полезными советами.
- Установка в качестве АТС в новых филиалах и тех, у кого АТС вообще не было. Это самый простой вариант, который потребует закупки и/или плат в TrixBox и необходимого количества IP-телефонов.
- Также может быть реализован такой экстравагантный вариант, который может использоваться в случае, если администрирование аналоговой АТС не возможно. В этом случае TrixBox служит шлюзом для АТС и именно на нем прописываются все правила набора номера.
Для малых филиалов или доп. офисов имеет сысл использовать карты, аналогичные Sangoma B600 4FXO + 1FXS PCI — у данной модели имеется 4 порта FXO и 1 порт FXS, к которому можно подключить, например, факс. Не смотря на более высокую, чем карты Digium, цену, платы Sangoma имеют более высокие потребительские свойства 🙂
Еще одним примером бюджетного варианта подключения к городской телефонной сети через различные SIP адаптеры, например D-Link D7771S, который можно подключить к Trixbox (далее все конфигурации будут приведены именно для него) руководствуясь этой статьей.
Пример настройки вполне подходит и для D-Link DVG-7022S, с некоторой поправкой на различный web-интерфейс.
Подключение к таким SIP провайдерам, как sipnet.ru выглядит достаточно просто:
Outbound Caller ID: you_caller_id
Trunk Name: sipnet
Peer Details:
dtmfmode=rfc2833
type=friend
host=sipnet.ru
fromuser=you_caller_id
fromdomain=sipnet.ru
secret=you_password
username=you_caller_id
insecure=port,invite
conext=contex-internal
disallow=all
nat=yes
canreinvite=no
allow=g723&g723.1&gsm&ulaw&alaw
User Context: you_caller_id
User Detail:
secret=you_password
type=user
context=from-pstn
Register String: you_caller_id:you_password@sipnet.ru/you_caller_id
Конфигурация для sipgate.ru:
Trunk Name: sipgate
Peer Details:
type=peer
username=reg_number
fromuser=reg_number
secret=password
host=83.219.240.149
В обоих случаях, файл конфигурации sip_general_custom.conf должен выглядеть следующим образом:
externip=external_ip_address
localnet=lan/lan_mask
externrefresh=60
Если вы хотите регистрировать внешние устройства, то необходимо правильно настроить NAT на маршрутизаторе. Обычно, это не составляет проблемы, если провайдер выдает вам пол адресов, тогда делается просто татический NAT. В случае, если адрес всего один, а хочется всего и сразу, то можно сделать так:
ip nat inside source static tcp 188.100.44.1 22 188.100.44.1 22 extendable
ip nat inside source static udp 188.100.44.1 500 188.100.44.1 500 extendable
ip nat inside source static udp 188.100.44.1 4500 188.100.44.1 4500 extendable
ip nat inside source static 192.168.1.2 1188.100.44.1
При этом верхние три строки обеспечивают доступность нашей cisco по ssh и работу IPSec, а нижняя делает эдакий статический NAT. Учтите, что правила необходимо прописывать от частного к общему.
Возможно вам придется столкнуться с такой экзотикой, как подключение IP-АТС к аналоговой, уже имеющейся. Если порты FXO Tixbox подключены на внутренние линии аналоговой АТС, то создав соответствующий Outbound Routes мы получим возможность звонить на внутренние номера абонентов. Для того, чтобы получить возможность звонить в город, нам необходимо выполнить следующее преобразование:
- Пусть для абонентов, подключенных к Tixbox, выход на межгород осуществляется через 8
- На аналоговой АТС для выхода на ГТС используется префикс 9
- Таким образом, для выхода абонентов, подключенных к Tixbox, на ГТС, нам необходимо отрезать 8, код города и добавить 9
Для этого мы создаем Outbound Routes, в Dial Patterns которого указываем 83012|XXXXXX (Улан-Уде, в данном случае). После чего проследуем в Trunks, выберем соответствующий транк и в Dial Rules добавим строку 9+XXXXXX
Как это ни странно, но настройка SIP устройств — это самое легкое в TrixBox. А вот с подключением аналоговых плат у меня возникли небольшие проблемы.
В частности, установка и настройка плат Sangoma завершается ошибкой при установке модулей wanpipe-modules и wanpipe-util через web-интерфейс TrixBox. Для решения этой проблемы необходимо выполнить установку из консоли:
#>rpm -i wanpipe-modules-
#>rpm -i wanpipe-util-
#>wanrouter hwprobe
#>wanrouter hwprobe verbose (To check FXO/FXS modules for Analog cards)
#>setup-sangoma
Актуальную информацию по процессу установки Sangoma можно найти здесь.
Если перед вами стоит задача соединения маршрутизатора Cisco, выступающего в роли голосового шлюза, то всё тоже достаточно просто.
Конфигурация транка на Trixbox:
host=cisco_ip_address
nat=no
type=friend
insecure=port,invite
qualify=yes
canredirect=no
canreinvite=no
context=from-internal
disallow=all
allow=g729&alaw&ulaw
Конфигурация Cisco (в данном случае используется поток E1, установлена PVDM2-8):
network-clock-participate wic 3
network-clock-select 1 E1 0/3/0
!
isdn switch-type primary-4ess
isdn voice-call-failure 0
!
voice class codec 1
codec preference 1 g729br8
codec preference 2 g711alaw
codec preference 3 g711ulaw
!
controller E1 0/3/0
pri-group timeslots 1-8,16
!
interface Serial0/3/0:15
no ip address
isdn switch-type primary-net5
isdn overlap-receiving T302 2000
isdn protocol-emulate network
isdn incoming-voice voice
isdn send-alerting
no cdp enable
!
dial-peer voice 1 pots
destination-pattern 6T
port 0/3/0:15
!
dial-peer voice 2 voip
service session
destination-pattern T
voice-class codec 1
session protocol sipv2
session target sip-server
session transport udp
dtmf-relay rtp-nte
fax protocol t38 ls-redundancy 0 hs-redundancy 0 fallback cisco
!
sip-ua
retry invite 3
retry response 3
retry bye 3
retry cancel 3
retry register 10
retry subscribe 10
timers trying 1000
timers register 150
registrar dns:asterisk_hostname expires 3600
sip-server dns:asterisk_hostname
!
Для правильного составления паттернов обратитесь к этому документу.
Настоятельно рекомендую установить пакет tbm-backup, который поможет организовать резервное копирование всех настроек.
Так как по умолчанию Trixbox работает с кодеком g729 только в режиме passthrough, то необходимо руками добавить соответствующий модуль, найти который можно по этому адресу. Для моей машины подошел codec_g729-ast14-gcc4-glibc-pentium4.so. Его нужно скачать, переименовать в codec_g729.so и положить в /usr/lib/asterisk/modules/, после чего рестартовать Astirisk. Проверить можно введя команду:
core show translation
g729 - 7 4 4 4 4 3 7 - 16 20 4 -
Если строчка g729 имеет значения значит кодек выбран правильно и подцеплен. Кстати, просмотреть какой кодек используется каналом для соединения, удобно в GUI Trixbox — закладка Tools — слева Asterisk Info — справа Channels.
10.1.2.202 8035 3d54080f187 00102/00000 0x100 (g729) No Tx: ACK
10.199.99.99 1183 28591175241 00101/00002 0x8 (alaw) No Rx: ACK
В целях тотальной экономии средств, имел дело с двумя шлюзами SIP-GSM, в частности Mobigater S4 и Allvoip AV3402. От приобретения первого устройства сразу хочу предостеречь и не рассматривать вообще ни под каким предлогом несмотря на дешивизну, так как функционально он выполнен в виде mobilerack, с разъемом питания molex и торчащим хвостом USB. В системе он виден как 4 COM-порта и 4 звуковых карты, драйвера катастрофически не стабильны! Второе намного более проще в конфигурировании, есть web-интерфейс, функциональные возможности позволяют организовать не только исходящие, но и прием входящих звонков. Но! Возможно, это особенности тех двух(последовательно) устройств, которые попались лично мне, но при нагрузке (2-3 одновременных звонка, изредка 4 звонка) наблюдается отсутствие звука у GSM абонента. То есть мы его слышим, а он нас — нет. При этом никакого NAT и других, могущих помешать, факторов, обнаружено не было. Возможно, это исправлено в новых версиях прошивки, так как я взаимодействовал по данному вопросу с саппортом. Они повторить ситуацию не смогли, что меня опечалило и вынудило отказаться от использования такого рода устройств в принципе.
[ad name=»Google Adsense»]
Уважайте труд автора, сохраняйте копирайты.
Реклама на сайте висит не просто так и если статья Вам понравилась, с ее помощью Вы можете отблагодарить автора за проделанную работу. Спасибо!