Поддержка Т.38 в SendFAX/ReceiveFAX

Разработка и отладка Asterisk и его приложений.

Модераторы: Admins, Модераторы

Аватара пользователя
Cache
Модератор
Сообщения: 688
Зарегистрирован: 12 янв 2007, 11:39
Откуда: Россия. Шатура
Контактная информация:

Сообщение Cache » 21 дек 2007, 16:57

http://bugs.digium.com/view.php?id=11614

app_fax от dimas с подержкой t38 и "ГРУБЫМИ" исправлениями астериска в плане реинвайта на T38.
ВНИМАНИЕ!! Это временное решение до тех пор пока file не породит свое (t38insanity branch)


версия для транка проверено работает 99,9% :D
нанотехнолигии в области Asterisk

Аватара пользователя
Cache
Модератор
Сообщения: 688
Зарегистрирован: 12 янв 2007, 11:39
Откуда: Россия. Шатура
Контактная информация:

Сообщение Cache » 25 дек 2007, 08:03

поделюсь чтоль :oops:



для аддонов 1.4.5
и астериска 1.4.16.2
Вложения
patch_t38_fax.tar.gz
(25.32 КБ) 43 скачивания
нанотехнолигии в области Asterisk

Ded
Guru
Сообщения: 4428
Зарегистрирован: 10 янв 2005, 16:01
Откуда: Road Town, Tortola, British Virgin Islands

Сообщение Ded » 25 дек 2007, 12:44

Я вчера по итогам дискуссии о поддержке Т.38 в Н.323 наглядевшись на код поскакал собирать chan_h323 в 1.4.16.1 и прокувыркался до 4:20 утра. Что-то тяжело со сборкой chan_h323 в последних версиях! Инструкция по сборке README не работает однозначно, надо шаманить руками. Или я что-то не допонял, но использовать в общем то удобный механизм menuselect в нашем случае не удалось, пришлось после make opt в ./channels удалить строку зависимости oh323 в файле menuselect-tree. После этого chan_h323 собрался, но библиотеки вручную всё равно надо закидывать руками. Теперь обдумываю схему тестирования Т.38. У меня есть идеальный инструмент - Т.38 модем + хилый факс.

Ded
Guru
Сообщения: 4428
Зарегистрирован: 10 янв 2005, 16:01
Откуда: Road Town, Tortola, British Virgin Islands

Сообщение Ded » 26 дек 2007, 02:57

Это что-то! При подсказках табуляцией выводим
h.323 gk cycle
на что Астериск сообщает, что h.323 gk cycle устарела, надо использовать h323 cycle gk! Понимаете? gk cycle устарел, а надо по новому - cycle gk! Шедевр отладочной мысли!

Код: Выделить всё

The 'h.323 gk cycle' command is deprecated and will be removed in a future release. Please use 'h323 cycle gk' instead.


Added after 3 hours 19 minutes:
Cache писал(а):поделюсь чтоль :oops:
для аддонов 1.4.5

Код: Выделить всё

   [CC] app_fax.c -> app_fax.o
app_fax.c:134: error: syntax error before '*' token
app_fax.c: In function `t38_tx_packet_handler':
app_fax.c:136: error: `user_data' undeclared (first use in this function)
app_fax.c:136: error: (Each undeclared identifier is reported only once
app_fax.c:136: error: for each function it appears in.)
app_fax.c:147: error: `buf' undeclared (first use in this function)
app_fax.c:147: error: `len' undeclared (first use in this function)
app_fax.c: In function `phase_e_handler':
app_fax.c:159: error: `T30_MAX_IDENT_LEN' undeclared (first use in this function)
app_fax.c:181: error: structure has no member named `y_resolution'
app_fax.c:189: error: structure has no member named `x_resolution'
app_fax.c:189: error: structure has no member named `y_resolution'
app_fax.c:209: error: structure has no member named `y_resolution'
app_fax.c: In function `set_ecm':
app_fax.c:257: error: `T30_SUPPORT_T4_1D_COMPRESSION' undeclared (first use in this function)
app_fax.c:257: error: `T30_SUPPORT_T4_2D_COMPRESSION' undeclared (first use in this function)
app_fax.c:257: error: `T30_SUPPORT_T6_COMPRESSION' undeclared (first use in this function)
app_fax.c: In function `fax_generator_generate':
app_fax.c:271: error: `fax_state_t' undeclared (first use in this function)
app_fax.c:271: error: `fax' undeclared (first use in this function)
app_fax.c:271: error: syntax error before ')' token
app_fax.c: In function `transmit_audio':
app_fax.c:318: error: `fax_state_t' undeclared (first use in this function)
app_fax.c:318: error: syntax error before "fax"
app_fax.c:355: error: `fax' undeclared (first use in this function)
app_fax.c:355: error: too few arguments to function `fax_init'
app_fax.c:437: error: structure has no member named `t38_status'
app_fax.c:437: error: `T38_NEGOTIATED' undeclared (first use in this function)
app_fax.c: In function `transmit_t38':

Аватара пользователя
anest
Модератор
Сообщения: 5700
Зарегистрирован: 28 ноя 2004, 10:04

Сообщение anest » 26 дек 2007, 06:58

давно уже не люблю редхат :( еще с версии 9 - все что было за ним (в разных вариациях и интерпретациях) - полное гамно, имхо.

Аватара пользователя
Cache
Модератор
Сообщения: 688
Зарегистрирован: 12 янв 2007, 11:39
Откуда: Россия. Шатура
Контактная информация:

Сообщение Cache » 26 дек 2007, 07:36

Ded писал(а):

Код: Выделить всё

   [CC] app_fax.c -> app_fax.o
app_fax.c:134: error: syntax error before '*' token
app_fax.c: In function `t38_tx_packet_handler':
....
app_fax.c:437: error: structure has no member named `t38_status'
app_fax.c:437: error: `T38_NEGOTIATED' undeclared (first use in this function)
app_fax.c: In function `transmit_t38':
такое осчучение что ты только на адоны наложил патч и забыл поставить spandsp :)

Added after 6 minutes:
anest писал(а):давно уже не люблю редхат :( еще с версии 9 - все что было за ним (в разных вариациях и интерпретациях) - полное гамно, имхо.
то ж не долюбливаю его помню когда надо было поставить mysql для астериска весь оплевался
ну судя своей логике
я ставил пакеты mysql-client, mysql-server, mysql-devel и просто mysql но не одного хедера не одной либы не поставилось бился часа 2 потом плюнул скачал исходники скобрал и поставил. с тех пор я лудше подожду когда гента собереца, зато работать будет то что мне нужно. ну на крайнях если срочно нужно debian... IMHO
:shock:
нанотехнолигии в области Asterisk

Аватара пользователя
anest
Модератор
Сообщения: 5700
Зарегистрирован: 28 ноя 2004, 10:04

Сообщение anest » 26 дек 2007, 11:49

насчет генты это ты точно подметил ;)
я уже и забыл когда парился с проблемами зависимостей или нехватки какихто либ в системе. просто сказка теперь - прям как и мечтал раньше, когда на редхате сидел.
сорри за оффтоп

Ded
Guru
Сообщения: 4428
Зарегистрирован: 10 янв 2005, 16:01
Откуда: Road Town, Tortola, British Virgin Islands

Сообщение Ded » 26 дек 2007, 12:37

Cache писал(а):такое осчучение что ты только на адоны наложил патч и забыл поставить spandsp
Ну что же я, совсем что ли?

Код: Выделить всё

# rpm -q spandsp
spandsp-0.0.2pre26-2
# rpm -q spandsp-devel
spandsp-devel-0.0.2pre26-2

Аватара пользователя
Cache
Модератор
Сообщения: 688
Зарегистрирован: 12 янв 2007, 11:39
Откуда: Россия. Шатура
Контактная информация:

Сообщение Cache » 26 дек 2007, 14:31

он не видит хедеров spandsp
T30_SUPPORT_T4_1D_COMPRESSION
ето из него

похоже он вобще не видит хедеров не spandsp не астериска
нанотехнолигии в области Asterisk

Аватара пользователя
IgorG
Модератор
Сообщения: 1054
Зарегистрирован: 21 ноя 2005, 05:59
Откуда: Россия, Омск
Контактная информация:

Сообщение IgorG » 26 дек 2007, 15:18

spandsp-0.0.2????

Скорее всего это из-за слишком старой версии, сейчас акутальна 0.0.4.
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru

Аватара пользователя
anest
Модератор
Сообщения: 5700
Зарегистрирован: 28 ноя 2004, 10:04

Сообщение anest » 26 дек 2007, 15:57

Ded, сноси редхат и ставь генту :) недельку-другую в консоли поторчишь.. зато потом - кайф! :roll:

Аватара пользователя
IgorG
Модератор
Сообщения: 1054
Зарегистрирован: 21 ноя 2005, 05:59
Откуда: Россия, Омск
Контактная информация:

Сообщение IgorG » 26 дек 2007, 17:10

Давайте не разводить офтопик, для этого есть своя тема, про предпочтиаемый дистрибутив. пакетные системы имею ряд преимуществ по сравнению с генту.
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru

Ded
Guru
Сообщения: 4428
Зарегистрирован: 10 янв 2005, 16:01
Откуда: Road Town, Tortola, British Virgin Islands

Сообщение Ded » 26 дек 2007, 17:31

это из-за слишком старой версии, сейчас акутальна 0.0.4
- я смотрел в README по поводу 0.0.4, пока не решился. Почему то процесс upgrade с 0.0.2 на 0.0.4 последние разы был сильно мучителен. Надо или удалять 0.0.2 с кровью, игнорируя зависимости, или обновляться с такой же кровью.

SolarW
Сообщения: 411
Зарегистрирован: 19 сен 2005, 13:16
Откуда: Днепропетровск, Украина

Сообщение SolarW » 26 дек 2007, 17:38

Ded писал(а):
это из-за слишком старой версии, сейчас акутальна 0.0.4
- я смотрел в README по поводу 0.0.4, пока не решился. Почему то процесс upgrade с 0.0.2 на 0.0.4 последние разы был сильно мучителен. Надо или удалять 0.0.2 с кровью, игнорируя зависимости, или обновляться с такой же кровью.
После того как прозвучало выделенное слово звучат фанфары и по сцене маршем проходят поклонники Gentoo неся транспаранты с одноименным содержимым :D
Trixbox 2.2.x (Asterisk 1.4.11) / FXO шлюзы (Dynamix, OvisLink, Planet, etc) / разные IP-телефоны (OvisLink, Grandstream, Dynamix, Nokia, Cisco ATA-186, etc)

Ded
Guru
Сообщения: 4428
Зарегистрирован: 10 янв 2005, 16:01
Откуда: Road Town, Tortola, British Virgin Islands

Сообщение Ded » 26 дек 2007, 18:22

Однако, поклонники Gentoo явным образом зависят от Gentoo!

Я снес spandsp 0.0.2pre26-2 и установил spandsp-0.0.4pre16 и это не помогла в постижении Истины.

Код: Выделить всё

make[1]: Entering directory `/usr/src/asterisk-addons-1.4.5'
   [CC] app_fax.c -> app_fax.o
app_fax.c: In function `transmit_audio':
app_fax.c:437: error: structure has no member named `t38_status'
app_fax.c:437: error: `T38_NEGOTIATED' undeclared (first use in this function)
app_fax.c:437: error: (Each undeclared identifier is reported only once
app_fax.c:437: error: for each function it appears in.)
make[1]: *** [app_fax.o] Error 1
make[1]: Leaving directory `/usr/src/asterisk-addons-1.4.5'
make: *** [all] Error 2

Аватара пользователя
Cache
Модератор
Сообщения: 688
Зарегистрирован: 12 янв 2007, 11:39
Откуда: Россия. Шатура
Контактная информация:

Сообщение Cache » 26 дек 2007, 18:53

а астериск пропатчил?? пересобрал?? хедеры засунул новые???
нанотехнолигии в области Asterisk

Ded
Guru
Сообщения: 4428
Зарегистрирован: 10 янв 2005, 16:01
Откуда: Road Town, Tortola, British Virgin Islands

Сообщение Ded » 26 дек 2007, 19:13

Я наверное не до конца понимаю. При чём тут астериск? Если я собираю отдельный аддон - app_fax, в директории addons, и потом засовываю его в астериск - модули, то не важно - патчил я астериск или нет, app_fax просто ещё не собирается, что уж там инсталлировать!

Аватара пользователя
anest
Модератор
Сообщения: 5700
Зарегистрирован: 28 ноя 2004, 10:04

Сообщение anest » 26 дек 2007, 19:49

Ded писал(а):Однако, поклонники Gentoo явным образом зависят от Gentoo!
а вот тут ты врёшь брат! ;) хотя заблуждаешься по незнанию, поэтому не грех... 8)

Ded
Guru
Сообщения: 4428
Зарегистрирован: 10 янв 2005, 16:01
Откуда: Road Town, Tortola, British Virgin Islands

Сообщение Ded » 26 дек 2007, 19:53

А! Понял! Это Gentoo зависит от своих поклонников, которые раздают индульгенции о прощении грехов заблудшим душам :)

Аватара пользователя
anest
Модератор
Сообщения: 5700
Зарегистрирован: 28 ноя 2004, 10:04

Сообщение anest » 26 дек 2007, 20:04

начинаешь понимать! ;)
считай что это само Провидение тебя коснулось... ну типа если конечно Судьба...
а если нет - то удачи, дальше заниматься анальным сексом (и другие извращения) с редхатом (до полпятого утра - как обычно) :twisted:

Ded
Guru
Сообщения: 4428
Зарегистрирован: 10 янв 2005, 16:01
Откуда: Road Town, Tortola, British Virgin Islands

Сообщение Ded » 26 дек 2007, 20:27

Да чё там, классно! Вчера до 5 утра :)
Вот продвижение:

Код: Выделить всё

    -- Executing [in_fax@ext-fax:3] Macro("H323/ip$10.151.91.124:57777/30200", "faxreceive") in new stack
    -- Executing [s@macro-faxreceive:1] Set("H323/ip$10.151.91.124:57777/30200", "FAXFILE=/var/spool/asterisk/fax/1198697033.0.tif") in new stack
    -- Executing [s@macro-faxreceive:2] Set("H323/ip$10.151.91.124:57777/30200", "EMAILADDR=ceo@postmet.com") in new stack
    -- Executing [s@macro-faxreceive:3] RxFAX("H323/ip$10.151.91.124:57777/30200", "/var/spool/asterisk/fax/1198697033.0.tif") in new stack
asterisk: symbol lookup error: /usr/lib/asterisk/modules/app_rxfax.so: undefined symbol: fax_init
Уже fax_init для него непонятен!

Аватара пользователя
Cache
Модератор
Сообщения: 688
Зарегистрирован: 12 янв 2007, 11:39
Откуда: Россия. Шатура
Контактная информация:

Сообщение Cache » 26 дек 2007, 21:33

Ded писал(а):Я наверное не до конца понимаю. При чём тут астериск? Если я собираю отдельный аддон - app_fax, в директории addons, и потом засовываю его в астериск - модули, то не важно - патчил я астериск или нет, app_fax просто ещё не собирается, что уж там инсталлировать!
джля того тчоб работал етот аддон нужно нмного править асетриск

Added after 16 minutes:

смотрим ссылку от dimas новый патч
нанотехнолигии в области Asterisk

dimas
Сообщения: 177
Зарегистрирован: 19 апр 2007, 22:21

Сообщение dimas » 27 дек 2007, 00:07

Ded писал(а):Да чё там, классно! Вчера до 5 утра :)

Код: Выделить всё

    -- Executing [in_fax@ext-fax:3] Macro("H323/ip$10.151.91.124:57777/30200", "faxreceive") in new stack
asterisk: symbol lookup error: /usr/lib/asterisk/modules/app_rxfax.so: undefined symbol: fax_init
Уже fax_init для него непонятен!
либа spandsp левая. Видимо 0.0.2 зацепилась. Как вариант, вообще оно либу не увидело. Если в неожиданном месте стоит - должна быть в LD_LIBRARY_PATH. /usr/local/lib есть место по умолчанию неожиданное...

Ded
Guru
Сообщения: 4428
Зарегистрирован: 10 янв 2005, 16:01
Откуда: Road Town, Tortola, British Virgin Islands

Сообщение Ded » 27 дек 2007, 00:46

В пятый раз - всё снова и по честному - с пустого листа. spandsp правая - 0.0.4pre16
Использовал Вашу (твою?) Simple fax applications 2007, Dmitry Andrianov с http://svn.digium.com/view/asterisk-add ... /app_fax.c
После патчей v4-appfax.patch [^] (24,153 bytes) 12-25-07 09:30 [License OK]
v4-asterisk-t38.patch [^] (13,624 bytes) 12-25-07 09:31 [License OK]
начало всё собираться с зацепами, и мне пришлось шаг за шагом откатываться назад, чтобы что-то вообще у меня собралось работающее. И после того как собралось - я натравил на свежесобранный Астериск свой Т38-Н.323 модем+hylafax.
Пошел приём факса, но в процессе установления контакта переключения на Т38 не произошло, он шипел на ulaw, а поокончанию Астериск благополучно свернулся в корку.

Код: Выделить всё

    -- Executing [888@from-internal-custom:1] Goto("H323/ip$10.151.91.124:64379/30214", "ext-fax|in_fax|1") in new stack
    -- Goto (ext-fax,in_fax,1)
    -- Executing [in_fax@ext-fax:1] StopPlayTones("H323/ip$10.151.91.124:64379/30214", "") in new stack
    -- Executing [in_fax@ext-fax:2] GotoIf("H323/ip$10.151.91.124:64379/30214", "1?3:analog_fax|1") in new stack
    -- Goto (ext-fax,in_fax,3)
    -- Executing [in_fax@ext-fax:3] Macro("H323/ip$10.151.91.124:64379/30214", "faxreceive") in new stack
    -- Executing [s@macro-faxreceive:1] Set("H323/ip$10.151.91.124:64379/30214", "FAXFILE=/var/spool/asterisk/fax/1198713145.0.tif") in new stack
    -- Executing [s@macro-faxreceive:2] Set("H323/ip$10.151.91.124:64379/30214", "EMAILADDR=ded@100let.com") in new stack
    -- Executing [s@macro-faxreceive:3] ReceiveFAX("H323/ip$10.151.91.124:64379/30214", "(/var/spool/asterisk/fax/1198713145.0.tif") in new stack
asterisk: symbol lookup error: /usr/lib/asterisk/modules/app_fax.so: undefined symbol: ast_debug

dimas
Сообщения: 177
Зарегистрирован: 19 апр 2007, 22:21

Сообщение dimas » 27 дек 2007, 01:08

Ded писал(а): В пятый раз - всё снова и по честному - с пустого листа. spandsp правая - 0.0.4pre16

Код: Выделить всё

    -- Executing [s@macro-faxreceive:3] ReceiveFAX("H323/ip$10.151.91.124:64379/30214", "(/var/spool/asterisk/fax/1198713145.0.tif") in new stack
asterisk: symbol lookup error: /usr/lib/asterisk/modules/app_fax.so: undefined symbol: ast_debug
о сколько раз твердили миру...
Патчи - для ТРАНКА, не для 1.4
то что ast_debug не найдей - явный признак того что налицо попытка заживить это на 1.4 (ну по крайней мере инклюдники от 1.4)

собираться должно без зацеп:
1. снимается текущий транк asterisk
2. патчится v4-asterisk-t38.patch
3. собирается и ставится
4. снимается текущий транк asterisk-addons
5. патчится v4-appfax.patch
6. собирается и ставится

после этого все должно работать.

Added after 5 minutes:

Ёёёё....

Код: Выделить всё

("H323/ip$10.151.91.124:64379/30214", "(/var/spool/asterisk/fax/1198713145.0.tif") in new stack 
не увидел сразу... H323 я не занимался вообще. И сомневаюсь что с ним работать будет ибо даже для сипа пришлось в астериске приличный кусок дописать - вряд ли кто-то эту работу уже для H323 проделал.

Ответить