T38modem: исследование вопроса.

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

T38modem: исследование вопроса.

Сообщение Дима77 » Чт июл 24, 2008 12:23 am

После долгих мучений собрал:
ptlib 2-0-1
h323plus 1-20-1
t38modem 1-0-1
астериск 1-4-21-1 был собран задолго до этого, с патчами и аддонсами как описано тут http://www.voipinfo.ru/forum/viewtopic.php?t=11180

Естественно есть желание прикрутить этот модем к астериск по h323 и честно, я не понимаю, есть ли у меня в * поддержка h323 или нет:файлы h323.conf и ooh323.conf в etc/asterisk присутствуют, в channels/h323 слазил,пытался там чего-то "покомпилировать", но безуспешно, здесь был: http://www.inaccessnetworks.com/projects/asterisk-oh323, понял что это что-то старое совсем и не подойдет, в общем такое ощущение, что либо в астериске что-то не хватает/не работает, то ли я чего-то не допонимаю, в принципе я с h323 ранее знаком вообще не был. Да еще установил на win openphone, но тоже не могу к астериск по h323 пристыковаться.

Модем точно собрался, запускается, и на at-команды из cu реагирует в точности как в файле readme к нему,бодался с ним долго.

Я кстати обратил внимание,что модем при запущенном asteriske не запускается, видимо конфликт на порту 1720,но все равно не знаю чего в астериске писать. :wink:
Последний раз редактировалось Дима77 Ср сен 10, 2008 3:05 am, всего редактировалось 9 раз(а).
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm

Сообщение anest » Чт июл 24, 2008 12:56 am

какой линукс?
Успехов!
anest
Специалист
 
Сообщения: 157
Зарегистрирован: Пн май 26, 2008 6:21 am

Сообщение ded » Чт июл 24, 2008 1:03 am

Разумеется конфликт! На одном адресе запускаешь два Н.323 модуля на том же порту, ooh323 и t38modem
Читай - http://www.asterisk-support.ru/forum/topics/3462/
и укажи другой порт в конфе для ooh323

openphone - плохо,
Ekiga - хорошо, универсальный.
ded
Специалист
 
Сообщения: 4010
Зарегистрирован: Сб май 03, 2008 2:47 am

Сообщение Дима77 » Чт июл 24, 2008 2:04 am

Конфликт устранил:
Код: Выделить всё
;The port asterisk should listen for incoming H323 connections.
;Default - 1720
port=1721

Что дальше делать с астериском пока идей нет.

Модем соотв. при запущенном астериске запускается.Звонок в приведенном ниже коде сделан на номер 2001 в никуда,но зато видно что модем живой,кстати конфликт пошел на пользу,ибо это нек.намек на то, что в астериске с h323 м.б.все и в порядке:
Код: Выделить всё
[root@localhost t38modem]# ./obj_linux_x86_r/t38modem -n -o trace.log -p +/dev/ttyx0 --route all@127.0.0.1
T38Modem Version 1.0.1
 by OpenH323 Project on Unix Linux (2.6.25-14.fc9.i686-i686)

Route O/G calls:
  all --> 127.0.0.1
Codecs (in preference order):
 Table:
   G.711-uLaw-64k <1>
   G.711-ALaw-64k <2>
   T.38-UDP <3>
   UserInput/basicString <4>
 Set:
   0:
     0:
       G.711-uLaw-64k <1>
       G.711-ALaw-64k <2>
       T.38-UDP <3>
       UserInput/basicString <4>

Waiting for incoming calls for "T38Modem v1.0.1"
I/C connection to 2001
O/G connection to 2001@127.0.0.1
Closing connection
Closing connection


[root@localhost ~]# cu -l /dev/ttyx0
Connected.
at
OK
atd2001
BUSY


Anest,версия 2.6.25-14.fc9.i686-i686, прогноз 2-х недель пока не оправдался,пока живая(с X-ми).Хотя был риск убить его сегодня, ибо не оказалось Legacy PTY Support,пытался компилировать ядро из исходников, мне это не понравилось и я прервал процесс командой ctrl+c, но вывернулся и сделал модем так
Код: Выделить всё
$ make USE_UNIX98_PTY=1 opt


Сейчас кстати закончилась очередная безуспешная попытка компиляции opal v/3.0.1 -увы:
Код: Выделить всё
gcc -shared -Wl,-soname,g726 -o g726_audio_pwplugin.so obj/g726codec.o obj/g711.o obj/g726_16.o obj/g726_24.o obj/g726_32.o obj/g726_40.o obj/g72x.o
make[2]: Leaving directory `/root/opal/plugins/audio/G726'
make[2]: Entering directory `/root/opal/plugins/audio/IMA_ADPCM'
gcc -I../../../include -fPIC  -g -O2 -c ima_adpcm.c -o obj/ima_adpcm.o
gcc -shared -Wl,-soname,ima_adpcm -o ima_adpcm_audio_pwplugin.so obj/ima_adpcm.o
make[2]: Leaving directory `/root/opal/plugins/audio/IMA_ADPCM'
make[2]: Entering directory `/root/opal/plugins/audio/gsm-amr'
gcc -g -c -fPIC -I../../../include -I./src -DIF2 -o obj/amrcodec.o amrcodec.c
amrcodec.c: В функции ‘amr_codec_encoder’:
amrcodec.c:176: предупреждение: несовместимая неявная декларация внутренней функции ‘memcpy’
gcc -g -c -fPIC -I../../../include -I./src -DIF2 -o obj/interf_enc.o ./src/interf_enc.c
gcc -g -c -fPIC -I../../../include -I./src -DIF2 -o obj/interf_dec.o ./src/interf_dec.c
gcc -g -c -fPIC -I../../../include -I./src -DIF2 -o obj/sp_dec.o ./src/sp_dec.c
gcc -g -c -fPIC -I../../../include -I./src -DIF2 -o obj/sp_enc.o ./src/sp_enc.c
gcc -shared -Wl,-soname,gsmamrcodec -o gsmamrcodec_pwplugin.so obj/amrcodec.o obj/interf_enc.o obj/interf_dec.o obj/sp_dec.o obj/sp_enc.o
make[2]: Leaving directory `/root/opal/plugins/audio/gsm-amr'
make[2]: Entering directory `/root/opal/plugins/video/H.261-vic'
g++ -I../../../include -I../common -fPIC  -g -O2 -c h261vic.cxx -o obj/h261vic.o
g++ -I../../../include -I../common -fPIC  -g -O2 -c ../common/trace.cxx -o obj/trace.o
../common/trace.cxx: In static member function ‘static std::ostream& Trace::Start(const char*, int)’:
../common/trace.cxx:60: ошибка: нет декларации ‘basename’ в этой области видимости
make[2]: *** [obj/trace.o] Ошибка 1
make[2]: Leaving directory `/root/opal/plugins/video/H.261-vic'
make[1]: *** [opt] Ошибка 2
make[1]: Leaving directory `/root/opal/plugins'
make: *** [opt] Ошибка 2
[root@localhost opal]#

Да не нужен мне этот видеокодек, я пытался делать что-то типа
./configure --disable-video ,но это по ходу не помогает избежать ошибки.
А с opal у меня связана слабая надежда на sip.
В принципе хотелось бы переместиться в виндоус со всей этой кухней, но там крайние коды вообще под эту дурацкую 2005.net написаны, а она у меня даже не установлена, с vc++6.0 в общем и в целом знаком, хотя пишу исключительно на vb6, ну т.е. в win с этими делами бардак похоже еще больший.
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm

Сообщение Дима77 » Чт июл 24, 2008 3:18 am

В общем, стали звонки проходить. Пока все очень сыро.
Из терминалки atd2001-набирается
Звоню с efax-gtk,фигня,попадаю "не туда",
поменял тоновый набор на импульсный, этот efax очевидно
слал atdt2001 и получалось,что звоню на T2001, а не на 2001, а с импульсным очевидно atdp2001,а p игнорируется.
Но факс-тона пока не слышал даже на ReceiveFax не получилось.
В общем,надо думать дальше.
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm

Сообщение Дима77 » Чт июл 24, 2008 10:32 am

Не пищит сволочь и все:
Добавил в extension.conf
Код: Выделить всё
exten => 803,1,Dial(OOH323/${EXTEN}@127.0.0.1:1720)

Модем запускаю:
Код: Выделить всё
[root@localhost t38modem]# ./obj_linux_x86_r/t38modem -n -o trace.log -p +/dev/ttyx0 --route all@127.0.0.1:1721


в конфе для ooh323 по существу
Код: Выделить всё
[general]
port=1721
bindaddr=0.0.0.0
....   
[t38modem]
type=friend
context=office
ip=127.0.0.1      ; UPDATE with appropriate ip address
port=1720      ; UPDATE with appropriate port
disallow=all
allow=ulaw
e164=12345
rtptimeout=60
dtmfmode=rfc2833


Звонил с X-lite туда-обратно, с AP200B по sip туда обратно,звонок проходит,везде тишина, в качестве факса efax-gtk, он с iax-modem и с PCI-Dlink пищит нормально, а здесь молчит,скотина. Порты все поголовно открыты т.е. udp/tcp 1000-64000,дабы не париться с ними.
Кодеки в x-lite тоже пробовал менять, без разницы.
В общем темный лес и под каждым деревом по свинье зарыто.
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm

Сообщение anest » Чт июл 24, 2008 12:48 pm

anest писал(а):какой линукс?
Успехов!
anest
Специалист
 
Сообщения: 157
Зарегистрирован: Пн май 26, 2008 6:21 am

Сообщение Дима77 » Чт июл 24, 2008 1:24 pm

anest писал(а):
anest писал(а):какой линукс?

Дима77 писал(а):Anest,версия 2.6.25-14.fc9.i686-i686, прогноз 2-х недель пока не оправдался,пока живая(с X-ми).

fc9 -Fedora Core 9
ded писал(а):Ekiga - хорошо, универсальный.

Да,поставил на Win, могу звонить на
h323:номер@192.168.0.5:1721, т.е. на астериск, тесты положительные, везде себя слышу в.т.ч. и при внешних звонках
ekiga(h323)asterisk(sip)
Также слышу факсы при звонках на Send-Receive fax, и голос тетеньки при звонках на служебные номера астериска.

При звонке на t38модем, через asterisk,или даже напрямую
h323:номер@192.168.0.5:1720 -трубку берет и тишина.

Отсюда вывод: чтой-то не то с "модемом", или efax-gtk с ним неправильно взаимодействует, что странно.
Можно конечно попробовать сразу пробросить его на Ventafax, как я это делал с IAXмодемом, но хотелось бы сначала понять что в линуксе все чисто.
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm

Сообщение ded » Чт июл 24, 2008 2:20 pm

Я может усложню, но опишу как я двигался 4 (?) года назад. Сразу скажу, что было нелегко, я даже списывался с автором Т38 модема.

Мне нехватало Н.323 дебага для аналитики что происходит между Н323 модулем Астериска и Т38 модемом. Я их оба забубенил в гейткипер, где всё конечно вербозно, но хоть можно разобрать.
Фишка в том, что гейткипер тоже на этой же машине, тоже на другом порту, немного трудно сначала для восприятия, но ничего.
В такой ситуации я добивался устойчивой регистрации Астериска (он как шлюз там) и Т38 модема (он как терминал с определённым номером.
Когда всё вот так сделано, то видно что происходит, можно было отловить лог такого соединения на гейткипере.
ded
Специалист
 
Сообщения: 4010
Зарегистрирован: Сб май 03, 2008 2:47 am

Сообщение Дима77 » Чт июл 24, 2008 3:39 pm

Ded, Ваш предылущий пост я с ходу переварить не могу, однако получил тут некоторые результаты, и они не есть утешительные.
Т.е. я пропустил шаг с тестом модема с efax-gtk и пристыковал к модему sredir, т.е. сделал одну замену(см.мой пост про iaxmodem):
server_args = 5 /dev/ttyIAX /var/lock/LCK..ttyIAX
на
server_args = 5 /dev/ttyx0 /var/lock/LCK..ttyx0

и вместо стройной конструкции получилась фигня, т.е.
если из линукса
telnet localhost 7220 дает доступ к модему,
и команда atd2001 работает корректно, т.е. 2001 звонит
то из windows
telnet 192.168.0.5 7220 также дает доступ к модему,
но
команда atd2001 работает некорректно, т.е. 2001 не звонит, а на экране видем NO CARRIER,
а при входящем звонке даже слова RING не видим, соотв. VentaFax с такой фигней работать не будет.

Т.е. с IAXModem -стройная красивая картинка
c .T38modem -глюки

Я был безумно рад, когда он наконец собрался, но сейчас я начал разочаровываться. Можно конечно еще
1)попробовать осилить hylafax, но мучут меня сомнения что увижу что-либо другое,да и не нужен этот hylafax
2)собрать-таки с opal, а с сипом м.б. будет проще-если я его там увижу (я описал на каком месте вылетает)
3)перекомпилировать ядро/заменить линукс и т.п.
напомню что я делал
$ make USE_UNIX98_PTY=1 opt
м.б. это и не есть гуд, но уж очень не хочется по этому пути идти раньше времени
4)попытаться собрать модем в windows тем или иным способом, тем более как подрубаться к астериску по h323 я уже знаю, Ekiga фурычит,h323 уже не так пугает. Но когда тебе из-за каких-то пропущенных скобок(и знать бы из-за каких) компилятор VC++6.0 выдает 46 errors, 205 предупреждений, то это не очень вдохновляет.
В общем, расстроен я.
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm

Сообщение anest » Чт июл 24, 2008 6:42 pm

Дима77 писал(а):...компилятор VC++6.0 выдает 46 errors, 205 предупреждений, то это не очень вдохновляет.

а что именно вы компилите под винду? астериск? :o
Успехов!
anest
Специалист
 
Сообщения: 157
Зарегистрирован: Пн май 26, 2008 6:21 am

Сообщение Дима77 » Чт июл 24, 2008 7:27 pm

Да нет конечно.
Ptlib (Pwlib)
openh323 (h323plus)
opal
t38modem
т.е. все то, о чем тут идет речь
и про все это в каждом readme написано, что это компилируется и под винды тоже.
ну не обязательно 46 ошибок,1-2 вполне хватает,чтобы ничего не получилось, 46 только в одном месте было

какая разница,или я модем через редирект в win из linux пробрасывать буду, или сам модем будет в линукс ходить по сети, VentaFax для линукса никто не изобрел, а ради навороченно-замороченых (скажем прямо неповоротливых и туповатых) факс-серверов городить огород поверьте смысла нету. У меня решение под Win (Microsoft Fax), достаточно хорошее, основано на COMISDN-T38 +собственный код на VB под Microsoft Api, я мог бы такое написать и для sendfax, тема обсуждалась на известном вам форуме, но споткнулись на выводе переменных наружу, просто решение основанное на VentaFax более качественное, +визуально и понимаем наблюдаем чего происходит.
Представьте себе монитор, разбитый скажем на 10 прямоугольников, каждый прямоугольник=это драйвер венты,соответствует одной линии, мы видим,как ползет факс, на какой скорости,как они договариваются, normal или fine, ecm или нет, видны короткие гудки, длинные гудки, время звонка, одного беглого взгляда на экран уже достаточно для объективной оценки текущей ситуации, и информации дает больше чем логи и дебаги, а с логами кстати порядок полный, в логах информации содержится больше чем в логах любого сервера, все что надо протоколируется в БД.

По сути интересуют ворота в sip для обычной факс программы, кот. знает только com-port. Формулу решения для G711 я таки вывел(IAXmodem+sredir), теперь интересуемся T38, а где и как чего будет компилироваться и будет ли там место астериску это дело техники, SIP-modem-T38-линию я хочу получить в виндах.
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm

Сообщение All is not what it seems » Чт июл 24, 2008 9:16 pm

а чем COMISDN-T38 не устраивает?
All is not what it seems
Специалист
 
Сообщения: 214
Зарегистрирован: Вт июл 11, 2006 2:39 pm

Сообщение Дима77 » Чт июл 24, 2008 11:47 pm

All is not what it seems писал(а):а чем COMISDN-T38 не устраивает?

Comisdn всем устраивает и я даже не пожалел денег и купил 2 года назад у них лицензию на несколько линий, правда сильно сбил цену, аргументировав это тем, что у меня уже есть рабочее супер решение
VentaFax->FaxModem->AP200B->SIP, и поскольку стоимость 1-й линии этого решения немногим больше 100$, то за одну линию comisdn можно дать около половины, а все минусы я им подробно описал.

ComISDN работает только с Microsoft Fax (правда можно по CAPI, но это отдельная песня). А Microsoft Fax хоть и очень мне нравится, все же туповат как и все факс-сервера.
Я могу привести 2 примера почему железное решение с VentaFax лучше.

1.Предположим у вашего T38-провайдера на какое-то направление факсы ходят только на 7200, а на остальные направления легко идут на 9600-14400. Comisdn в этом случае будет работать на это направление только с параметром(в реестре WIN) T38_MaximumBitRate=7200, но на другие направления у вас скорость более 7200 уже не получится, ибо вы поставили ограничитель.
В VentaFax у вас факсы сначала попытаются договориться на 9600, а потом договорятся и пройдут на 7200, а на др.направления будут летать на 14400, т.е. ограничивать скорость не надо, автоматика на уровне.
2.Предположим ваш провайдер поддерживает T38, но не всегда дает G711, ok comisdn умеет поддержать g729, g723 и т.п.
Для g729 параметр RTP_Codec_G729_Enabled=true,но поскольку поддержка относительная,то надо параллельно включать другой параметр T38_ForceReinvite=2 (т.е. изначально передавать t38),проблема в том,что если вы оставите этот параметр =1, то позывных факса ваш получатель факса слышать не будет,хотя факс и пройдет, если там догадаются стартануть, а если вы будете делать 2, то вас тоже может постигнуть неудача,ибо нек. SIP-провайдеры нарочно блокируют такие заведомо "факсовые" звонки.С AP200B таких проблем не возникает, ибо там поддержка g729 полноценная, и пакеты t38 до ответа факса слать совершенно не обязательно, чтоб пищало.
Ну, и если вы с comisdn знакомы, то вы еще должны знать этот набор скрытых параметров реестра, чтобы уметь ими оперировать. ибо это выходит за рамки официальной документации и из утилиты настройки не регулируется.

Ну и потом озвученная задача T38modem, это уже дело принципа, а не производственной необходимости, увлекательно.
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm

Сообщение ded » Пт июл 25, 2008 8:46 am

ded писал(а):Я их оба забубенил в гейткипер, где всё конечно вербозно, но хоть можно разобрать.
Фишка в том, что гейткипер тоже на этой же машине, тоже на другом порту, немного трудно сначала для восприятия, но ничего.

Дима77, спортивный интерес приветствуется.
Фишка в том, что это (в связке с hylafax) собрано 4 года назад, и работает по сей день, лучше швейцарских часов. Потому что часы хоть мало, да изнашиваются, а это - нет.
ded
Специалист
 
Сообщения: 4010
Зарегистрирован: Сб май 03, 2008 2:47 am

Сообщение All is not what it seems » Пт июл 25, 2008 11:59 am

ded писал(а):Мне нехватало Н.323 дебага для аналитики что происходит между Н323 модулем Астериска и Т38 модемом. Я их оба забубенил в гейткипер, где всё конечно вербозно, но хоть можно разобрать.

А почему вообще снифером не воспользоватся?
З.Ы.
Хамер очень хорошо показывает происходящее.
All is not what it seems
Специалист
 
Сообщения: 214
Зарегистрирован: Вт июл 11, 2006 2:39 pm

Сообщение ded » Пт июл 25, 2008 6:55 pm

Это исторически было определено. В то время у нас было Н.323 клиентов во много раз больше, чем SIP. Ясно, что мы работали через гейткиперы. Вот там Н.323 логгинг понятен, а всяких приблуд типа wireshark так не очень было, да и требовались лишние телодвижения.
ded
Специалист
 
Сообщения: 4010
Зарегистрирован: Сб май 03, 2008 2:47 am

Сообщение All is not what it seems » Пт июл 25, 2008 10:47 pm

2ded
виноват, не правильно отцитировал, мои слова к виновнику торжества больше относились, а времена да, меняются...
All is not what it seems
Специалист
 
Сообщения: 214
Зарегистрирован: Вт июл 11, 2006 2:39 pm

Сообщение Дима77 » Сб июл 26, 2008 1:24 pm

Виновник торжества это T38modem или я?
Сейчас к сожалению отключил PC с линуксом, ибо надо одной знакомой на новом PC настроить XP,
но у меня возникла одна мысль. Когда модем запустился первый раз, то он последовательно сослался на нехватку двух библиотек
1) libh323_linux_x86_r.so.1.20-alpha2 из openh323
2) libpt_linux_x86_r.so.2.0.1 из pwlib
Методом копирования этих файлов в usr/lib эти штуки были ему предоставлены, после чего он и "запустился". В папках откуда копировались библиотеки были еще файлы, и вот я теперь думаю, может чего еще оттуда надо в usr/lib пихнуть?
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm

Сообщение All is not what it seems » Вс июл 27, 2008 10:20 am

Дима77 писал(а):Виновник торжества это T38modem или я?

вы оба:)
по теме: снифер - универсальный логер для любого софта или железа.
З.Ы.
а что софт от Eicon совсем забросил?
он вроде тоже прикидывается модемом, да прям на Wind`е
All is not what it seems
Специалист
 
Сообщения: 214
Зарегистрирован: Вт июл 11, 2006 2:39 pm

След.

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

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

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