Asterisk в andLinux - настройка сети - тонкости.

обсуждение вопросов по IP-PBX Asterisk

Asterisk в andLinux - настройка сети - тонкости.

Сообщение Дима77 » Пн авг 04, 2008 1:43 am

По сути сетевая задачка:
Постараюсь объяснить.
Вчера успешно водрузил asterisk в AndLinux,т.е. в Windows как описано тут внизу:
http://www.voipinfo.ru/forum/viewtopic.php?t=11219

Схема сети:
192.168.0.1 255.255.255.0 -роутер
192.168.0.2 255.255.255.0 -компьютер с XP и с AndLinux
192.168.0.X 255.255.255.0 -все подопытное Voip-хозяйство находится на этих адресах

Andlinux же находится по адресу
192.168.11.150 255.255.255.0
связан с PC c XP через независимый сетевой интерейс TAP-Colinux
PC с XP имеетна этом интерфейсе адрес
192.168.11.1 255.255.255.0

Т.е. имеем нечто типа
192.168.11.150->192.168.11.1 ==???==192.168.0.2->192.168.0.1->WAN-LAN
AndLinux и Asterisk прекрасно видят интернет, а также сеть 192.168.0.X,
192.168.0.2=192.168.11.1 (PC c XP) тоже прекрасно видит Asterisk,
а скажем AP200B с адресом 192.168.0.4 или другой PC с адресом 192.168.0.3 его(Asteriska) ни хрена не видят, а для внутренних опытов очень бы не повредило.
Читал форум AndLinux.
есть там файл settings.txt
если написать
Код: Выделить всё
eth0=slirp,,tcp:7220:7220/tcp:5066:5060/udp:5066:5060

то появляется некая прозрачность.
Т.е.
сделав telnet 192.168.0.2 7220
я попадаю на IAXmodem, т.е.на линукс
сделав звонок по sip на 192.168.0.2:5066 я попадаю на правильный порт астериска 192.168.11.150:5060 и звонок проходит, при этом ничего не слышно, но понятно что проброс портов работает грамотно.
пробовал писать так:
Код: Выделить всё
eth0=slirp,,tcp:7220:7220/tcp:5066:5060/udp:5066:5060/udp:10000-20000:10000-20000

но тогда не работает ничего, видимо не угадал синтаксис для диапазона портов

1) Какие порты нужны астериску кроме 5060 ? 10000-20000 для rtp и все?(хотя бы для SIP)
2) Какой правильный синтаксис для проброса диапазона в приведенной конструкции? Может есть соображения...?
3) Может можно это все средствами виндов пробросить? Как?
Сдуру сделал "сетевой мост", мост не заработал, а после его отключения пришлось делать реанимацию Wind-ам "Загрузка последней удачной конфигурации".

P.S. В принципе, у меня Астериск успешно взаимодействует с внешней сетью и со всем Voip-хозяйством не напрямую, а через AXON PBX, кот. стоит на другом PC 192.168.0.A win2003 (мне так удобно, ибо Asterisk это тестовая система, а AXON-рабочая), если я перенеcу его вместе с AndLinuxom на 2003 сервер -есть кстати соображения, что даже не надо будет собирать с нуля, а можно будет извратиться и скопировать, что кстати будет ценно,если получится, то проблема исчезнет, ибо Asterisk и axon должны будут увидеть друг друга прозрачно, и все остальное оборудование также получит доступ... но хочется пока решить задачу как есть.
Последний раз редактировалось Дима77 Чт авг 14, 2008 4:46 pm, всего редактировалось 1 раз.
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm

Сообщение firebug » Пн авг 04, 2008 2:21 pm

такой вариант не пробовал?
http://colinux.wikia.com/wiki/Network#WinPcap
Аватара пользователя
firebug
Администратор
 
Сообщения: 3369
Зарегистрирован: Пн фев 16, 2004 3:00 am

Сообщение Дима77 » Вт авг 05, 2008 12:01 pm

Мои благодарности to KriTiK@work: :-D

1)скачиваем WinPCap
http://www.winpcap.org/install/bin/WinPcap_4_0_2.exe
2)в WIN устанавливаем(опции отсутствуют)
3)читаем умную литературу:
http://www.andlinux.org/forum/viewtopic.php?t=196
проблемы товарища нас особо не интересуют, но он привел структуру файлов, поэтому:
4)запускаем andLinux,правим файл /etc/network/interfaces
У меня там стало вот что:
Код: Выделить всё
# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
# /usr/share/doc/ifupdown/examples for more information.

auto lo eth0 eth1
iface lo inet loopback

iface eth0 inet dhcp
#iface eth0 inet static
#     address 10.0.2.15
#     gateway 10.0.2.2
#     netmask 255.255.255.0

iface eth1 inet static
     address 192.168.11.150
     netmask 255.255.255.0
#     gateway 192.168.11.1

4)в WIN переименовываем "Подключение по локальной сети" в "Ethernet connector", дабы не думать в какой кодировке писать русское название в следующем пункте
5)в WIN правим файл settings.txt, откуда andLinux при запуске берет свои настройки
было:
Код: Выделить всё
eth0=slirp

стало:
Код: Выделить всё
eth0=pcap-bridge,"Ethernet connector",,
windows IP address : 192.168.0.2 / Mask 255.255.255.0 / GW 192.168.0.1
shared directory : andLinux ( F:\linux\andLinux)

6)запускаем andLinux.
7)заходим в роутер (192.168.0.1), идем в dhcp, наблюдаем, что там появился новый device andLinux ip=192.168.0.7, осуществляем привязку этого девайса к этому адресу (в роутере,static dhcp).
8)с другого pc (скахем 192.168.0.3),делаем
ping 192.168.0.7, с удовлетворением получаем ответ.
9)запускаем asterisk на 192.168.0.7, все, он полноценно взаимодействует с любым voip-devisom 192.168.0.X и с внешним миром, как будто 192.168.0.7 это отдельный PC.
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm

Сообщение firebug » Вт авг 05, 2008 1:12 pm

браво! :)
Аватара пользователя
firebug
Администратор
 
Сообщения: 3369
Зарегистрирован: Пн фев 16, 2004 3:00 am

Сообщение Дима77 » Пн авг 11, 2008 11:57 am

Сделал то же самое (winpcap) на win2003, сеть рушится через какое-то время.
В принципе, как я уже писал, там даже не обязательно это делать, т.е. сети 192.168.11.1(win2003)->192.168.11.150(andlinux) достаточно(такой вариант по умолчанию работает стабильно), но при звонке с AXON PBX (win2003) на asterisk (andlinux) получаю отсутствие слышимости, хотя при использовании IAXmodem все OK. Если бы это была федора, я бы тупо открыл все порты на файрволе, как это сделать здесь не знаю.
При использовании winpcap и адресации 192.168.0.X со слышимостью проблем нет, все работает хорошо, но как я уже сказал рушится сеть, т.е. скорее всего какой-то кратковременный сбой, а после этого она(сеть) не восстанавливается.
Куда бы покопать?
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm

Сообщение Дима77 » Вт авг 12, 2008 3:00 am

Дима77 писал(а):...но при звонке с AXON PBX (win2003) на asterisk (andlinux) получаю отсутствие слышимости...

не совсем так
когда звоню на служебный номер астериска (тетушка) то ее слышу
звоню на rx_fax tx_fax -позывных факса не слышу, звоню через астериск на внешний номер-не слышу
и это только при схеме
192.168.11.1->192.168.11.150
при схеме
192.168.0.X->192.168.0.Y все что надо во всех направлениях слышу,
но решение с WINPCAP в данном случае неустойчиво и необходимости в нем нет.
первое работает стабильно-мучаю уже сутки через 2 iaxmodem-а
мысли об открытых-закрытых портах меня не радуют, я бы открыл их все чтоб не мучится
и где они интересно закрыты? на win 2003(192.168.11.1) или на linux(192.168.11.150)? и где и как это вообще смотреть? на win2003 firewall==off.
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm

Сообщение Дима77 » Чт авг 14, 2008 12:08 am

Подразобрался немножко.
Во-первых в отсутствии слышимости скорее всего виноват AXON PBX. При описанной конфигурации сети, когда asterisk не имеет ip-адреса основной локальной сети (т.е.его адрес 192.168.11.150, и адреса 192.168.0.* у него нет), AXON играет роль своеобразного Voip-моста, связующего asterisk c внешней и локальной (192.168.0.*) voip-сетью. И при взаимодействии двух подсетей axon с некоторыми соединениями справляется, а с некоторыми нет, ну нельзя от него столько хотеть.
А скажем x-lite(x-pro) на том же PC что и AXON (win2003), будучи зарегистрированным на астериск, ведет себя корректно, и все там слышно, т.е. закрытые на andLinux порты тут ни причем -они там скорее всего все открыты, т.е. дело ни в *, ни в погрешности сети, а в неспособности AXON PBX корректно взаимодействовать со всеми при данной конфигурации сети.

Но тем не менее хочется, чтобы и овцы были целы(AXON) и волки сыты (Asterisk).
Т.к. winpcap в боевых условиях показал себя не очень хорошо (по крайней мере в моем конкретном случае), то надо придумать что нибудь другое, желательно используя стандартные средства Windows.

Успешными получилось две схемы,они обе используют стандартный сетевой мост:

Схема № 1. Подстраиваем AndLinux под существующую сеть.
Файл settings.txt в win не трогаем!
1) /etc/network/interfaces
Код: Выделить всё
 iface eth1 inet static
      address 192.168.11.150
      netmask 255.255.255.0
#     gateway 192.168.11.1

заменяем на
Код: Выделить всё
 iface eth1 inet static
      address 192.168.0.20
      netmask 255.255.255.0
#     gateway 192.168.0.1

2) /etc/hosts
Код: Выделить всё
192.168.11.1  windows-host

заменяем на
Код: Выделить всё
192.168.0.W  windows-host

, где 192.168.0.W -текущий адрес WIN
--------------------------
3)/etc/profile
Код: Выделить всё
# set DISPLAY env variable
export DISPLAY=192.168.11.1:0.0
export ESPEAKER=192.168.11.1:16001
export PULSE_SERVER=192.168.11.1

заменяем на
Код: Выделить всё
# set DISPLAY env variable
export DISPLAY=192.168.0.W:0.0
export ESPEAKER=192.168.0.W:16001
export PULSE_SERVER=192.168.0.W

, где 192.168.0.W -текущий адрес WIN--------------------------
4) В WIN создаем сетевой мост между сетевой картой PC и адаптером Tap-Colinux. Присваеваем этому мосту тот же адрес, что был у сетевой карты 192.168.0.W (например через static-dhcp в роутере).
5) В WIN в файле \andLinux\Xming\X0.hosts
заменяем localhost 192.168.11.150 на localhost 192.168.0.20 (то же что пиcали в network/interfaces)
6) В WIN \andLinux\Launcher\menu.exe в самом exe соотв. программой (я использую dos-овскую hiew.exe═ Hacker's view ═Patch editor with built-in 80386 disassembler for binary files of arbitrary length.== by SEN, 1991-92 ═) вручную правим: адрес 192.168.11.150 меняем на 192.168.0.20 .(я сам правил на 192.168.12.150, но думаю,можно забить пробелами, когда символов меньше)

Получаем полностью работособную систему, но основное неудобство в том, что мы теряем доступ к KDE и единственный способ залезть в AndLinux это Console (NT или FLTK). Чтобы все прибамбасы заработали, надо видимо вручную править exe-шники в WIN (ибо адрес 192.168.11.150 в них забит в явном виде), и наверно ковыряться в самом AndLinux, чтобы слал ответы не на 192.168.11.1, а на 192.168.0.W.
Выполнение пунктов 3) 5) 6) решает эту проблему.

Схема № 2. Подстраиваем существующую сеть под AndLinux
Файл settings.txt в win не трогаем!
Линукс вообще не трогаем!
Мы смиряемся с тем, что адрес нашего WIN-PC будет 192.168.11.1, а адрес нашего andLinux будет 192.168.11.150.
1)Идем в роутер и скрипя зубами пишем там:
LAN IP Address ==192.168.11.100
главное не 1 на конце, ибо 1 это наш обреченный WIN-AndLinux-PC
2)В WIN создаем сетевой мост между сетевой картой PC и адаптером Tap-Colinux. Присваеваем этому мосту адрес 192.168.11.1 (фиксируем этот адрес например через static-dhcp в роутере).
3) По сути это все. Присваеваем всей технике адреса вида 192.168.11.*, перекомпилируем все win-программы, в кот. явно использовались адреса старого вида 192.168.0.* с заменой на новые, переписываем конфиги в AP, перенастраиваем SIP-программы ну и т.п.

Однако,получаем рабочую безглючную конструкцию
192.168.11.100 роутер-gateway-основной шлюз
192.168.11.1 -единый win-адрес PC с andLinux
192.168.11.150 -адрес andLinux
192.168.11.* -адреса остального компьютерно-телефонного хлама
AndLinux работает как задумано со всей KDE-графикой и прибамбасами
Asterisk чувствует себя полноценно, все звонится и слышится во всех направлениях.

Минусов я вижу два.
1)необходима перестройка всех устоявшихся адресов в сети
2)Другой AndLinux на другом PC этой сети не будет чувствовать себя комфортно, ибо возникнут противоречия в ip-адресах.
Т.е.его придется ставить по варианту 1, что неинтересно. Скажу больше:KDE-меню на другом PC будет "дистанционно" вызывать запуск KDE-приложений на первом PC, ибо обращение идет по адресу 192.168.11.150 а этот адрес уже прозрачен для любого PC в сети.

Сейчас запустил тестирование по схеме номер 2 на предмет стабильности работы.
А заодно подумаю как довести до ума схему номер 1, exe-шники "отхакерить" не проблема, надо понять что еще менять в Линуксе, чтоб он работал с другим ip.


Схема № 3. Все-таки WINPcap (как описано выше).
Схемы 1 и 2 у меня успешно встают на
Windows Server 2003 R2 Enterprise Edition EN
В то же время при попытке сделать сетевой мост c Tap-Colinux адаптером на WIN XP SP3 RU на другом PC в моем случае вызывает синий экран смерти. (Способ восстановления WIN если это все-таки произошло такой: при загрузке жмем F8 и выбираем: Загрузка последней удачной конфигурации с работоспособными параметрами. И больше так не делать.)

Схема №2 на WIN2003 оказалась устойчиво работоспособной под нагрузкой, неплохо было бы проверить устойчивость с WinPcap на XP, есть предположение, что на XP будет нормально. У меня 2003 AMD, а XP -Intel, давно замечаю на AMD странные вещи, возможно здесь это критично.


P.S. Синий текст я добавил на след.день.
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm

Сообщение AngeLofDarknesS » Ср мар 25, 2009 7:53 pm

Попробуем разобраться..Пасиб...
AngeLofDarknesS
Новичок
 
Сообщения: 1
Зарегистрирован: Ср мар 25, 2009 7:36 pm

Сообщение Дима77 » Ср мар 25, 2009 8:10 pm

Дело хорошее, когда сделаете "начальную" настройку, не забудьте "зарезервировать" систему (файл 4гб) перед тем как приметесь ее ломать.
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm


Вернуться в Asterisk (*)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2