Последние статьи
- Твердотельный датчик направления и скорости ветра. Эксперимент
- iPhone на стене в качестве панели управления домом
- MegaD-16M-XT - подсветка выключателей и не только
- Переделка выключателей в кнопки и мини-обзор текущего рынка
- RadSens - модульный счетчик Гейгера с интерфейсом I2C
- "U" - значит универсальный. Обзор модуля MegaD-16U-XT
- SCD4x - современная альтернатива для измерения концентрации CO2
- HTU31D - новый датчик температуры и влажности с нагревательным элементом
- Измерение коэффициента пульсации ламп с помощью MegaD-2561
- Использование солнечных панелей в качестве датчика освещенности
- Согласование датчиков с выходом типа TTL со стандартными входами контроллера
- DPS368 - датчик атмосферного давления индустриального класса повышенной точности
- DS18B20 Waterpoof - импортзамещение
- TMP117 - высокоточный датчик температуры с интерфейсом I2C
- MegaD-16R-XT - расширитель на 16 релейных выходов
- MegaD-2561-RTC V3 - больше портов, зуммер и ИОН
Подключение к городской АТС по протоколу SIP
02/05/2015 22:32:38
Весной 1944 году мой прадед, служивший в 127 отдельном батальоне связи на 1-м Украинском фронте, получил Орден Красной Звезды за то, 26 марта в районе поселка Гусятин Тернопольской области, цитата: "показал образцы отваги и решительности по наладке и обслуживанию линии связи". Далее в наградном листе (вся орфография сохранена): "Не смотря ни на какие трудности, под сильным артиллерийским и минометным огнем противника давал связь от командного пункта до 24-ой стрелковой дивизии. Связь работала устойчиво и бесперебойно. Порывы устранял в самый короткий срок, чем обеспечил командованию корпуса бесперебойную связь и своевременное руководство боем".
Семьдесят лет прошло с тех пор, как закончилась Великая Отечественная Война, мир окутан цифровыми оптоволоконными линиями связи, а космос буквально напичкан телекоммуникационными спутниками, но качественная и бесперебойная связь в нашей стране есть далеко не везде. Наверное, я не сильно ошибусь, если скажу, что в подавляющем большинстве случаев городские телефоны подключены к АТС обычными аналоговыми медными линиями, которые и сами по себе создают помехи и ловят их извне. Не скрою, и мой телефон был подключен традиционной медью. Аналоговая линия заходила через плату Digium TDM410 в моей медиа-сервер с установленной на нем программной PBX Asterisk. Такая схема подключения мне активно не нравилась. Ну какой, казалось бы, смысл цифровой сигнал на АТС конвертировать в аналоговый, передавать по медной, плохо защищенной линии ко мне, где снова оцифровывать и уже в цифровом виде отправлять на IP-телефон? Почему нельзя обойтись без всех этих конвертаций, тем более, имея высокоскоростное оптическое подключение к провайдеру на скорости 100Мбит/с?..
Можно! Многие провайдеры при наличии принципиальной технической возможности предоставляют такой сервис. Но к сожалению часто в виде: "вот вам китайский голосовой шлюз". Это, конечно, тоже неплохо, когда аналоговая линия вместо километра сокращается до 50 см, но по сути мы по-прежнему имеем дело с таким же двойным преобразованием. Кроме того, шлюзы эти часто настроены в режиме моста, должны быть подключены к цифровому каналу первыми, а пароль от конфигурирования провайдером не сообщается. Никогда не нравились такие вот черные ящики...
Нужны учетные данные (логин, пароль, IP-адрес сервера) для подключения по SIP-протоколу без аппаратного голосового шлюза, напрямую из Asterisk к АТС. За этим следует обратиться в техническую службу провайдера. Если это не типовая услуга, то круглые глаза с той стороны обеспечены. Если вам не повезло, и вы связались с каким-нибудь крупным провайдером, то сначала вам откажут в службе техподдержки, потом на уровне начальника отдела, а потом и на уровне регионального технического директора. Но мне повезло больше. Мой провайдер - небольшая местечковая компания с небольшим штатом сотрудников. Конечно же и здесь мне предоставили учетные данные далеко не сразу. Потребовалось время. Ведь такой клиент был у них впервые. Но все-таки мне пошли навстречу, за что отдельное спасибо директору компании.
Настройка SIP-транка в Asterisk оказалась неожиданно простой.
В sip.conf
register=0950000:password@172.16.3.2/0950000 [provider] username=0950000 type=friend secret=password context=from_provider host=172.16.30.2 trunkname=provider fromuser=0950000 fromdomain=172.16.3.249 realm=0950000 insecure=port,invite disallow=all allow=alaw qualify=200
А в extension.conf меняем маршрутизацию с аналогового транка DAHDI на SIP
;exten => _NXXXXX,1,Dial(DAHDI/2/${EXTEN:0}) exten => _NXXXXX,1,Dial(SIP/provider/${EXTEN},120)
Там же настройка входящих вызовов
[from_provider] exten => 0950000,1,Answer ; Входящие вызовы приходят на 950000 exten => 0950000,2,Dial(SIP/102,25,Ttr) ; Входящие перенаправляются на внутренний номер 102 exten => 0950000,3,Hangup
Собственно, все. Достаточно сделать перезагрузку настроек Asterisk. Но есть один нюанс. Для доступа к серверу 172.16.3.2 согласно конфигурации провайдера нужно настроить VLAN, обеспечивающий приоритезацию трафика.
В Debian делается это очень просто (необходимо установить пакет vlan) с помощью утилит vconfig или ip, но лучше сразу прописать конфигурацию в /etc/network/interfaces
auto eth0.45 iface eth0.45 inet static address 172.16.3.249 netmask 255.255.255.0 vlan_raw_device eth0 И далее запускаем ifup eth0.45
Провайдер мне выдал специальный адрес, который я прописал статически, хотя можно получить адрес и по DHCP.
Однако случилась одна маленькая сложность. Компьютер с установленным Asterisk у меня находится за маршрутизатором, роль которого выполняет основной сервер Умного Дома. Поэтому, чтобы все заработало, следует настроить VLAN Bridge на маршрутизаторе. А это еще проще. В /etc/network/interfaces маршрутизатора прописываем
auto br0 iface br0 inet manual bridge_ports eth0.45 eth1.45 up /sbin/brctl stp br0 on
Вот теперь, после того, как мы подняли "бридж", все сразу же и заработало. Посмотреть текущие регистрации в Asterisk можно командой "sip show registry".
Host dnsmgr Username Refresh State Reg.Time 172.16.3.2:5060 N 0950000 105 Registered Sat, 02 May 2015 17:58:24
Качество связи стало намного лучше. Исчезли треск и шумы. Из минусов - осталась проблема эха при звонках на некоторые номера. Связано оно с тем, что сигнал по цифровым каналам идет с небольшой задержкой, которая требуется для кодирования/декодирования. И если совокупная задержка всех элементов составляет более 50 мс, то при звонках на аналоговые телефоны может проявляться эхо. Давить его можно только на конечном оборудовании (так как Asterisk при таком подключении работает только как транспорт), но IP-телефоны (равно как и голосовые шлюзы) справляются с этой задачей не всегда хорошо. Как одно из решений - снижение чувствительности микрофона. Эхо остается, но его почти не слышно.
При эксплуатации сетевой конфигурации с VLAN'ами я заметил, что мою сеть видно из сети 172.16. Кроме того, мою сеть посещают всякие широковещательные пакеты и DHCP-запросы. И если с обычным IP трафиком достаточно легко справиться с помощью iptables, то вот запретить DHCP так просто не выйдет. Дело в том, что DHCP работает не на сетевом, а на канальном уровне. А значит нужно использовать специальную утилиту ebtables.
ebtables -A INPUT --in-interface eth1.45 --protocol ipv4 --ip-protocol udp --ip-source-port 67:68 -j DROP ebtables -A INPUT --in-interface eth1.45 --protocol ipv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP ebtables -A FORWARD --in-interface eth1.45 --protocol ipv4 --ip-protocol udp --ip-source-port 67:68 -j DROP ebtables -A FORWARD --in-interface eth1.45 --protocol ipv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP
Вот теперь проблема лишнего DHCP-трафика, приходящая из сети VLAN решена.
И как же здорово, что сегодня для того, чтобы обеспечить качественную связь не требуется лезть под минометный и артиллерийский обстрел. А все технические вопросы всегда решаются мирным путем.
Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.
Добавить комментарий:
Сортировка комментариев: Последние сверху | Первые сверху