AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Т.38 app_fax и астериск 1.4

Asterisk IP PBX 521 сообщений 15.01.2008 21:00 - 26.10.2011 12:04
#1

anest писал(а):
я телепат!" Wink

[oftopic]
Ты что, как я могу посягать на звание, которое на данном форуме носит Великий Неназываемый? Wink
[/oftopic]

_________________
Trixbox 2.2.x (Asterisk 1.4.11) / FXO шлюзы (Dynamix, OvisLink, Planet, etc) / разные IP-телефоны (OvisLink, Grandstream, Dynamix, Nokia, Cisco ATA-186, etc)
#2

Я тут намедне решил 1.4.17 на 1.4.18 заменить и столкнулся со следующей проблемой:
Патч Уважаемого Cache (asterisk-1.4.18-t38-for-app_fax.patch) на 1.4.18 лёг и откомпилировался без проблем.
Но asterisk-addons-1.4.5-app_fax-t38.patch забыковал при ./configure:

configure: error: could not make ./config.status asterisk-addons

Вообщем прикладываю модификацию asterisk-addons-1.4.5-app_fax-t38.patch которая работает по крайней мере у меня с минимальным centos5.
#3

Анало-гично. С asterisk-addons-1.4.5m.patch - OK.
#4

а чего это вы астериск апдейтите а аддоны нет? Confused
или этот патч для Asterisk-Addons-1.4.6 ?
#5

Как я понял, это патч для asterisk-addons-1.4.5
#6

а смысл? скоро уже 1.4.7 появится!
я не понимаю какой был смысл делать патч для 1.4.5 уже после выхода 1.4.6
#7

Да ладна, щас на 1.4.7 нарисуем, а в чём разница от 5 на 7?
Я например только *_мsql пользую, и то ради freepbx-a.
Как говорил один Уважаемый товарищ - "don't fix it if it isn't broken"

Added after 7 minutes:

щас по теме - ненавистный мп-104 факсы шлет как глухонемой, но 9600. На глаз видно что 14400 идёт, а в репорте 9600. В сип.с оставил в-0, + добавил 12к + 144к. Может в-0 убрать?
#8

я глупость наверно спрошу Smile но из прочтенного и исследования патча я так и не понял как сделать пастру (проход через *) по протоколу T38.
при схеме примерно такой GrandStreamT.38 -> * -> sip -> mc3810 t.38 /1751 t.38
чего должно быть в диал планах ?
#9

Не глупость, просто не так сформулировал.
Цитата:
пастру (проход через *) по протоколу T38.

passthrou = g711, а то что ты спрашиваешь называется транспарентный (прозрачный) бриджинг.
#10

app_fax патчики для asterisk 1.4.19 и addons 1.4.6
_________________
нанотехнолигии в области Asterisk
#11

Спасибо! Smile
#12

к сожалению аддоны не захотели собираться. патчи наложились нормально, астериск собрался нормально.
Цитата:
asterisk-addons-1.4.6 # make
menuselect/menuselect --check-deps menuselect.makeopts
Generating embedded module rules ...
make[1]: Nothing to be done for `all'.
[CC] app_addon_sql_mysql.c -> app_addon_sql_mysql.o
[LD] app_addon_sql_mysql.o -> app_addon_sql_mysql.so
[CC] app_fax.c -> app_fax.o
app_fax.c:112: error: field ‘t38state’ has incomplete type
app_fax.c: In function ‘transmit_audio’:
app_fax.c:328: error: storage size of ‘t38control’ isn’t known
app_fax.c:368: error: ‘T38_UNAVAILABLE’ undeclared (first use in this function)
app_fax.c:368: error: (Each undeclared identifier is reported only once
app_fax.c:368: error: for each function it appears in.)
app_fax.c:376: error: ‘DSP_FAXMODE_DETECT_CNG’ undeclared (first use in this function)
app_fax.c:410: error: ‘AST_T38_REQUEST_NEGOTIATE’ undeclared (first use in this function)
app_fax.c:411: error: ‘AST_CONTROL_T38’ undeclared (first use in this function)
app_fax.c:437: error: invalid application of ‘sizeof’ to incomplete type ‘enum ast_control_t38’
app_fax.c:438: error: dereferencing pointer to incomplete type
app_fax.c:439: error: ‘AST_T38_NEGOTIATED’ undeclared (first use in this function)
app_fax.c: In function ‘transmit_t38’:
app_fax.c:504: error: storage size of ‘t38control’ isn’t known
app_fax.c:557: error: ‘AST_CONTROL_T38’ undeclared (first use in this function)
app_fax.c:558: error: invalid application of ‘sizeof’ to incomplete type ‘enum ast_control_t38’
app_fax.c:560: error: dereferencing pointer to incomplete type
app_fax.c:562: error: ‘AST_T38_TERMINATED’ undeclared (first use in this function)
app_fax.c:562: error: ‘AST_T38_REFUSED’ undeclared (first use in this function)
app_fax.c: In function ‘transmit’:
app_fax.c:597: error: storage size of ‘t38state’ isn’t known
app_fax.c:620: error: ‘T38_NEGOTIATED’ undeclared (first use in this function)
make[1]: *** [app_fax.o] Error 1
make: *** [apps] Error 2
asterisk-addons-1.4.6 #


наверняка я чтото упустил?
#13

Собираю asterisk-addons 1.4.6 c этим патчем.

Уже при ./configure...

Код:
checking curses.h usability... yes
checking curses.h presence... yes
checking for curses.h... yes
checking for initscr in -lncurses... yes
checking for curses.h... (cached) yes
checking for fax_init in -lspandsp... yes
checking spandsp.h usability... yes
checking spandsp.h presence... yes
checking for spandsp.h... yes
checking for mysql_config... no
checking for asterisk.h... yes
configure: creating ./config.status
configure: error: could not make ./config.status


What's? Confused
#14

отвечу всем сразу

spandsp 0.0.4pre18

patch -p0 < asterisk-addons-1.4.6-app_fax-t38.patch
./bootstrap.sh
./configure
make menuselect
make
make install

Added after 2 minutes:

anest писал(а):
к сожалению аддоны не захотели собираться.
наверняка я чтото упустил?


да походу не схватились новые заголовочные файлы

_________________
нанотехнолигии в области Asterisk
#15

спасибо, были кривые пути у меня, все собралось Dance2
#16

отправьте мне ктонить факс плыз на sip://fax@asteriskforum.ru для теста
одностраничный и на несколько страниц.
#17

отправил Hi Very Happy
_________________
нанотехнолигии в области Asterisk
#18

Попытка отправить факс с Zoiper софтфона на *
патчи наложены, плагин собран, итд.

Код:

[Apr 21 06:26:24] -- Goto (officefax,s,1)
[Apr 21 06:26:24] -- Executing [s@officefax:1] Answer("SIP/9220002-08204f38", "") in new stack
[Apr 21 06:26:24] -- Executing [s@officefax:2] Set("SIP/9220002-08204f38", "FAXFILE=/var/spool/asterisk/fax/9220002-1208744784.2.tif") in new stack
[Apr 21 06:26:24] -- Executing [s@officefax:3] Set("SIP/9220002-08204f38", "FAXFILENOEXT=/var/spool/asterisk/fax/9220002-1208744784.2") in new stack
[Apr 21 06:26:24] -- Executing [s@officefax:4] ReceiveFAX("SIP/9220002-08204f38", "/var/spool/asterisk/fax/9220002-1208744784.2.tif") in new stack
[Apr 21 06:26:45] Really destroying SIP dialog 'NThkNDZiY2U0MDg5ZGFlNzVlNzg0MTI1OGEwNTc2ZDY.' Method: REGISTER
[Apr 21 06:27:11] -- Executing [s@officefax:5] System("SIP/9220002-08204f38", "/usr/bin/fax2mail 9220002 "Admin" 110 support support@xxx.ru /var/spool/asterisk/fax/9220002-1208744784.2 p") in new stack
[Apr 21 06:27:11] -- Executing [s@officefax:6] Hangup("SIP/9220002-08204f38", "") in new stack
[Apr 21 06:27:11] == Spawn extension (officefax, s, 6) exited non-zero on 'SIP/9220002-08204f38'
[Apr 21 06:27:11] -- Executing [h@officefax:1] System("SIP/9220002-08204f38", "/usr/bin/fax2mail 9220002 "Admin" 110 support support@xxx.ru /var/spool/asterisk/fax/9220002-1208744784.2 p") in new stack
[Apr 21 06:27:11] -- Executing [h@officefax:2] Hangup("SIP/9220002-08204f38", "") in new stack
[Apr 21 06:27:11] == Spawn extension (officefax, h, 2) exited non-zero on 'SIP/9220002-08204f38'
[Apr 21 06:27:13] Really destroying SIP dialog 'ZWU3YTdjMzNhZTNmYWQyNzIyOWU1N2ViOGE1NzhjNDA.' Method: ACK
[Apr 21 06:27:48] Really destroying SIP dialog 'NThkNDZiY2U0MDg5ZGFlNzVlNzg0MTI1OGEwNTc2ZDY.' Method: REGISTER


Код:

[Apr 21 06:47:04] DEBUG[17117] app_fax.c: FLOW T.30 T4 expired in phase T30_PHASE_B_RX, state 17
[Apr 21 06:47:04] DEBUG[17117] app_fax.c: FLOW T.30 Changing from phase T30_PHASE_B_RX to T30_PHASE_B_TX
[Apr 21 06:47:04] DEBUG[17117] app_fax.c: FLOW FAX Set rx type 0
[Apr 21 06:47:04] DEBUG[17117] app_fax.c: FLOW FAX Set tx type 4
[Apr 21 06:47:04] DEBUG[17117] app_fax.c: FLOW T.30 DIS:
[Apr 21 06:47:04] DEBUG[17117] app_fax.c: FLOW T.30 .... ...0= Store and forward Internet fax (T.37): Not set
[Apr 21 06:47:04] DEBUG[17117] app_fax.c: FLOW T.30 .... .0..= Real-time Internet fax (T.38): Not set
[Apr 21 06:47:04] DEBUG[17117] app_fax.c: FLOW T.30 .... 0...= 3G mobile network: Not set
[Apr 21 06:47:04] DEBUG[17117] app_fax.c: FLOW T.30 ..0. ....= V.8 capabilities: Not set
[Apr 21 06:47:04] DEBUG[17117] app_fax.c: FLOW T.30 .0.. ....= Preferred octets: 256 octets
[Apr 21 06:47:04] DEBUG[17117] app_fax.c: FLOW T.30 .... ...0= Ready to transmit a fax document (polling): Not set
[Apr 21 06:47:04] DEBUG[17117] app_fax.c: FLOW T.30 .... ..1.= Can receive fax: Set
[Apr 21 06:47:04] DEBUG[17117] app_fax.c: FLOW T.30 ..00 11..= Supported data signalling rates: V.27 ter and V.29
[Apr 21 06:47:04] DEBUG[17117] app_fax.c: FLOW T.30 .1.. ....= R8x7.7lines/mm and/or 200x200pels/25.4mm: Set
[Apr 21 06:47:04] DEBUG[17117] app_fax.c: FLOW T.30 1... ....= 2-D coding: Set
[Apr 21 06:47:04] DEBUG[17117] app_fax.c: FLOW T.30 .... ..00= Recording width: 215mm +- 1%
..................
[Apr 21 06:34:53] DEBUG[17082] channel.c: Internal timing is enabled (option_internal_timing=1048576 chan->timingfd=31)
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: frame 2/64, len=320
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: frame 5/0, len=0
[Apr 21 06:34:53] DEBUG[17082] channel.c: Internal timing is enabled (option_internal_timing=1048576 chan->timingfd=31)
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: frame 2/64, len=320
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: frame 5/0, len=0
[Apr 21 06:34:53] DEBUG[17082] channel.c: Internal timing is enabled (option_internal_timing=1048576 chan->timingfd=31)
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: frame 2/64, len=320
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: frame 5/0, len=0
[Apr 21 06:34:53] DEBUG[17082] channel.c: Internal timing is enabled (option_internal_timing=1048576 chan->timingfd=31)
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: frame 2/64, len=320
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: frame 5/0, len=0
[Apr 21 06:34:53] DEBUG[17082] channel.c: Internal timing is enabled (option_internal_timing=1048576 chan->timingfd=31)
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: frame 2/64, len=320
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: frame 5/0, len=0
[Apr 21 06:34:53] DEBUG[17082] channel.c: Internal timing is enabled (option_internal_timing=1048576 chan->timingfd=31)
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: frame 2/64, len=320
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: frame 5/0, len=0
[Apr 21 06:34:53] DEBUG[17082] channel.c: Internal timing is enabled (option_internal_timing=1048576 chan->timingfd=31)
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: frame 2/64, len=320
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: FLOW T.30 Send complete in phase T30_PHASE_E, state 2
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: Fax phase E handler. result=3
[Apr 21 06:34:53] WARNING[17082] app_fax.c: Error transmitting fax. result=3: Timed out waiting for the first message.
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: FLOW T.30 Changing from state 2 to 32
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: FLOW T.30 Changing from phase T30_PHASE_E to T30_PHASE_CALL_FINISHED
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: FLOW FAX Set rx type 13
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: FLOW FAX FAX exchange complete
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: FLOW FAX Set tx type 13
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: FLOW FAX FAX exchange complete
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: frame 5/0, len=0
[Apr 21 06:34:53] DEBUG[17082] app_fax.c: Loop finished, res=0
[Apr 21 06:34:53] DEBUG[17082] channel.c: Scheduling timer at 0 sample intervals
[Apr 21 06:34:53] DEBUG[17082] channel.c: Set channel SIP/9220002-08206838 to write format alaw
[Apr 21 06:34:53] DEBUG[17082] channel.c: Set channel SIP/9220002-08206838 to read format alaw
[Apr 21 06:34:53] WARNING[17082] app_fax.c: Transmission failed
[Apr 21 06:34:53] DEBUG[17082] pbx.c: Launching 'Hangup'


Факса нет Sad
Звонилка Zoiper пишет в статусе при первой отправке факса "bariercapability notavail", но если отправлять/повторять звонок из листа "История" - то пищит в одну строну ...


Последний раз редактировалось: den68 (Пн Апр 21, 2008 01:07)
#19

Код:
./bootstrap.sh
#20

Ok, разобрался, конфиг udptl.conf отредактированный обязателен, в sip.conf достаточно t38pt_udptl = yes
По поводу прикручивания к *, для отправки мылом факса есть подводные камни, пришлось поредактировать fax2mail и т.д.

в extensions.conf:

Код:
[officefax]
; Recive Fax
exten => s,1,Answer
exten => s,n,Set(FAXFILE=/var/spool/asterisk/fax/${CALLERID(num)}-${UNIQUEID}.tif)
exten => s,n,Set(FAXFILENOEXT=/var/spool/asterisk/fax/${CALLERID(num)}-${UNIQUEID})
exten => s,n,ReceiveFAX(${FAXFILE})
exten => s,n,System('/usr/bin/fax2mail --cid-number "${CALLERID(num)}" --cid-name "${CALLERID(name)}" --dest-email "support@xxx.ru" -f "${FAXFILENOEXT}"')
exten => s,n,Hangup

exten => h,1,System('/usr/bin/fax2mail --cid-number "${CALLERID(num)}" --cid-name "${CALLERID(name)}" --dest-email "support@xxx.ru" -f "${FAXFILENOEXT}"')
exten => h,2,Hangup


До кучи, fax2mail требует сендмейла, кучу перловых модулей, благодаря варезу mime-construct, непонятно зачем такую кашу изобретать ? ну работает да и ладно ...
#21

используй sendEmail очень удобно и не нужжно ни чего изобретать
_________________
нанотехнолигии в области Asterisk
#22

den68 писал(а):
...конфиг udptl.conf отредактированный обязателен...

можно детальнее?
#23

А что означают эти warnings?:
Код:
[May 13 15:36:37] WARNING[2705]: app_fax.c:125 span_message: WARNING T.30 Non-ECM carrier not found
[May 13 15:37:04] WARNING[2705]: app_fax.c:125 span_message: WARNING T.30 Non-ECM carrier not found
[May 13 15:38:01] WARNING[2705]: app_fax.c:214 phase_e_handler: Error transmitting fax. result=40: Unexpected DCN while waiting for EOM, EOP or MPS.
[May 13 15:38:01] WARNING[2705]: app_fax.c:640 transmit: Transmission failed
[May 13 15:38:01] DEBUG[2705]: app_macro.c:337 _macro_exec: Executed application: ReceiveFAX

Слал для теста факс из 10 страниц и на 7-й такое выкинуло.
#24

anest писал(а):
den68 писал(а):
...конфиг udptl.conf отредактированный обязателен...

можно детальнее?

Можно, если удалить данный конфиг, или закоментировать в нем все - то app_fax не работает, что видно из логов, но изначально не очень очевидно откуда ноги у проблемы.
#25

буквально на днях я как раз обсуждал с Cache по телефону как раз эту самую мысль уже. наверное я всетки телепат. какойто новой степени видимо.. Telepathist Laughing
к слову сказать во всех своих установках (в которых как раз и не работает ни черта факс) я менял диапазон портов с "дефолтных" 4000 на 14000 тоесть "сдвигал" этот диапазон в сторону разрешенного в файрволе для rtp 10000-20000.
#26

Ребята, помогите! Сделал все как написано тут:

http://asteriskforum.ru/viewtopic.php?p=15127

Теперь астериск вооще вылетает, когда звонишь на номер, на котором прописан rxfax.

версия астериска 1.4.13
spandsp-0.0.5
#27

когда собирал, make menuselect делал? rxfax был в списке?
#28

неа, но откомпилило, хотя в логах я не нашел как компилило
#29

тогда не собралось просто-напросто. Есть вариант rxfax, который ставится в пакете уже после установки астериска. Не помню как сам пакет называется, помню только, что качал с соурсфорджа
#30

да не, оно откомпилило, появились .so...
#31

да не, откомпилилось, да не так. Пересобирайте, после ./configure делайте make menuselect и ищите в списке applications rxfax. Если там нет, то вы сделали что то не так.
#32

точно, поудалял все и заново создал, все собралось нормально, теперь работает! Пасиб огромнейшее!!

теперь вопрос такой, может подтолкнёте на мысль...
Когда я звоню на внутренний номер, где прописан rxfax слышу сигналы факса, все как обычно. Но, когда я звоню на наш городской номер, который заходит к нам по сипу через интернет, то вооще ничего не слышу. Обращался в супорт, они говорят, что все у них работает нормально, и что мне нужно подключить т.38, но у меня все включено.
#33

Alexandr, давайте сразу все свои проблемы навалим всё в один топик, да? Angry
ну почему всем по барабану что будет тут после них?
один вопрос на один топик! появился новый вопрос - открываете новый топик (убедившись что ответа еще нет на такой вопрос в этом форуме)!!
#34

Надо не под проблему начинать топик, а под участнега.
#35

)))

Мне казалось мой вопрос относится сюда...
#36

Alexandr писал(а):

версия астериска 1.4.13
spandsp-0.0.5



не пользуйте пока spandsp 0.0.5 b стрые rxtx fax а также app_fax
в spandsp поменялся вызов процедур и некоторые функции были перемесчены и названы по дргуому

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

_________________
нанотехнолигии в области Asterisk
#37

Да, это я понял, и с версией


spandsp-20080502.tar.gz

всё заработало!

Пасиб за помощь!
#38

А через IAX app_fax с T38 работать не будет?
#39

А вот у меня хардверный факс прекратил работу напрочь Sad
схема : fax -> cisco iad -> * -> fxo -> pstn
* собран с патчем из этой ветки, на циске конфиг:

Код:
voice service pots
supported-language ru
fax protocol t38 ls-redundancy 2 hs-redundancy 2 fallback pass-through g711alaw
!
voice service voip
fax protocol t38 ls-redundancy 2 hs-redundancy 2 fallback pass-through g711alaw
!
!
dial-peer voice 102 voip
destination-pattern .T
voice-class codec 10
session protocol sipv2
session target ipv4:9.2.4.44:5060
dtmf-relay rtp-nte
req-qos guaranteed-delay
playout-delay minimum low
fax-relay ecm disable
fax rate 4800 bytes 48
fax nsf 000000
fax protocol t38 ls-redundancy 2 hs-redundancy 2 fallback pass-through g711alaw
no vad
!
!
gateway
timer receive-rtcp 7
!
sip-ua
max-forwards 15
retry invite 10
retry response 5
retry cancel 5
timers trying 1000
timers connect 1000
timers disconnect 1000
sip-server ipv4:9.2.4.44:5060
!
#40

а можно ещё обновить патчик, под 1.4.20?
#41

to Cache or IgorG (или кто в курсе): кстати - раньше говорили что этот факсовый пачт нельзя добавить в 1.4 транк из-за проблем с лицензией на spandsp..
но ведь счас же вроде как spandsp под GPL уже!? может всетки можно будет протолкнуть сей чудный патчик в транк теперь? до стабильности 1.6 еще ох как далеко... а каждый раз как изготавливать патч под новый релиз так и потом всем возиться с его накладыванием сложности. и ради чего всё это?
#42

В 1.4 невозможно добавление новых возможностей.

Насчёт GPL: в этом то и была проблема, Asterisk не может использовать GPL код и библиотеки. А так как spandsp теперь под LGPL, то его можно использовать в ядре астериска, правда сомневаюсь в повсеместном переходе в ближайшее время.

_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
#43

IgorG писал(а):
Asterisk не может использовать GPL код и библиотеки.

Shok
вот это для меня новость! а разве сам астериск не под GPL??
#44

Asterisk под двойной лицензией: GPL и лицензия Digium, позволяющей писать модули с не-GPL кодом (например кодек g729)
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
#45

тоесть GPL всетки присутствует? почему же тогда GPL код не может использовать другой GPL код? я наверное чтото не понимаю... а если еще и позволяет и с НЕ-GPL тогда я темболее не понимаю в чем тогда проблема... например spandsp взять и включить в себя? его же даром отдают... что мешает?
#46

вот asterisk-1.4.20
_________________
нанотехнолигии в области Asterisk
#47

Проблема в том что Asterisk имеет двойную лицензию и хотя формально он распространяется под GPL, он не совместим с другими GPL продуктами. Это кстати одна из причин отделения проекта Callweaver.
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
#48

Здравствуйте. Имею FreeBSD 6.4, asterisk-1.4.18.1_1, asterisk-addons-1.4.6_1 и проблему отправки факсов посредством *. Наткнулся на этот форум и топик, взял asterisk-1.4.18-t38-passthroughfix.patch.gz и patch-app_fax-support-t38.tar.gz. Первым пропатчил и пересобрал *, вторым - asterisk-addons-1.4.6_1. Собралось.
show modules:
app_fax.so Simple FAX Application
Извините, а дальше что ?
В sip.conf: t38pt_udpl=yes и по прежнему

Got T.38 offer in SDP in dialog 34abd746-bafe-cfaa-805e-0002a40457ea@192.168.60.230
Got T.38 Re-invite without audio. Keeping RTP active during T.38 session. Callid 34abd746-bafe-cfaa-805e-0002a40457ea@192.168.60.230
Capabilities: us - 0xc (ulaw|alaw), peer - audio=0x0 (nothing)/video=0x0 (nothing), combined - 0x0 (nothing)

Нужны ли какие-нибудь дополнительные параметры в конфигах ?
#49

можно ли как-нибудь сделать что бы ReceiveFAX ожидал принятие факса заданное вермя, а то с МФУ проблеммы, например с HP 3055 , так как он посылает сигнал отправки и начинает сканировать факс в память и только после того как закончит сиё действо пытается отправлять, а ReceiveFAX уже ложит трубку, во всяком случае я так думаю
ps: факс приходит по pri(так что проблемма не в кодеках) и даже когда с одного pri пришёл и через другое ушёл на железный факс, то всё работает, а на виртуальный нет Sad

Added after 2 hours 22 minutes:

когда отправляешь с памяти то всё ок, значит я правильно предположил

Added after 3 minutes:

exten => _6[1-9]XX,n,ReceiveFAX(${Filename})
exten => _6[1-9]XX,n,ReceiveFAX(${Filename})
не помогло Sad
#50

ну если HP пищать заранее не начинает - то можно воркараунд легко сделать - не запускать ReceiveFax до тех пор пока с той стороны не запищит. А писк ловится по переходу на экстеншен 'f'. (Для этого в zapata.conf должно быть faxdetect = incoming на соотв порту)

Added after 10 minutes:

И чтобы два раза не вставать, объясняю тему с лицензией: Digium владеет всем кодом астериска как полноправный владелец он может делать с ним все что угодно в частности:
1. сделать снапшот кода доступный всему миру по лицензии GPL
2. сделать любое другое количество снапшотов с любыми модификациями и продавать их closed source - не показывая исходников никому.

То есть условно можно считать что существует некий базовый Asterisk-base, которым владеет Digium и на сорсах которого основан "open source Asterisk" и "Asterisk business edition (ABE)". Так вот "open source Asterisk" доступен по GPL но это ни коим образом не делает его основу (Asterisk-base) также GPL кодом и не требует открывать его сорсы. Ровно как и не обязует Digium открывать сорсы ABE. И не важно что виртуальный Asterisk-base ничем не отличается от open source Asterisk - суть в том что у Digium есть права делать с кодом все что угодно не открывая его.

Почему Digium не может взять другую GPL либу? Да потому что если он ее возьмет и прицепит к Asterisk-base это немедленно потребует публикации всех сорсов Asterisk-base также под GPL. И это пол беды, но это тут же потребует публикации сорсов и всех коммерческих разработок (того же ABE) т.к. он будет основан на GPL'ном Asterisk-base. А вот на это они не пойдут.
#51

поюзал я это приложение в течении месяца и понял, что iaxmodem+hylafax намного лучше, вероятность прохождения факсов намного больше и даже МФУ от hp работает .
а так хотелось что бы всё было проще ...
#52

bbv писал(а):
...и понял, что iaxmodem+hylafax намного лучше, вероятность прохождения факсов намного больше...

у меня из пары сотен факсов прошли абсолютно ВСЕ. без единой потери и без единого искажения. слал как сипом напрямую так и через DID(fax аппарат на land-line=> звонок на DID ipkall => sip). все проходит идеально. с патчем от Cache. еще раз ему (и dimas'у) огромное спасибо за проделанную работу!
на факсовом аппарате крутил разные настройки - корекцию ошибок и включал и выключал - всё ходит безупречно всеравно. может у меня руки кривые? Confused
#53

t38 не использовал ...
но с app_fax столкнулся с проблеммой что он слишком быстро ложит трубку, в часности hp all in one 3055 и ещё 2-3 модели, название не помню не может отправить факс с податчика, когда сканируешь в память, а потом отправляешь - всё ок, с hylafax же таких проблемм нету ...
#54

anest писал(а):
.. может у меня руки кривые? Confused
черезчур прямые.
#55

bbv писал(а):
t38 не использовал ...

но в этом топике идет обсуждение app_fax именно версии Т.38
#56

anest писал(а):
.. может у меня руки кривые? Confused


всё может быть ...., так как если почитать тикеты на callweaver.org там не все факсы ходят по t.38, а там rx_fax писал Steve Underwood - автор этой библиотеки
так что то что у Вас всё работает это просто повезло Smile
#57

Цитата:

так что то что у Вас всё работает это просто повезло


я бы не был столь голословным.
#58

типа повезло мне (на 3х серверах и одном роутере) и еще десяткам (а то и сотням) других людей... какоето прямо таки мега-везение! Cool
а callweaver на сколько помню всегда был на уровень "сырее" астериска
#59

anest писал(а):
типа повезло мне (на 3х серверах и одном роутере) и еще десяткам (а то и сотням) других людей... какоето прямо таки мега-везение! Cool
а callweaver на сколько помню всегда был на уровень "сырее" астериска


возможно был во всём кроме работы с факсами
#60

возможно Smile насколько я слышал - основной код факсов оттуда и взяли. впрочем это ничего не меняет.
ps: не нужно меня цитировать целиком, отвечая следом на мой же пост - в этом нет абсолютно никакой необходимости, а ресурсы сервера ест и трафик пользователей тоже. спасибо.
#61

В транк попали, и ста лет не прошло.

r119801 | russell | 2008-06-02 20:14:15 +0400 (пн, 02 июн 2008) | 4 lines

Add app_fax from asterisk-addons, with some additional changes to resolve compiler
warnings, as well as update to the APIs in spandsp 0.0.5. Spandsp 0.0.5 is being
distributed under the LGPL, so we can move this module into the main tree.

_________________
ys
http://voip.rus.net/
#62

ys писал(а):
В транк попали, и ста лет не прошло.


я рад очень рад ))) Embarassed

_________________
нанотехнолигии в области Asterisk
#63

день добрый всем

использую asterisk 1.4.19.2-62.src.rpm и asterisk-addons-1.4.6-20.src.rpm (от ATrpms.net), app_fax выше указаным патчем

очень часто сыпятся такие вот варнинги
WARNING[31656] channel.c: Unable to handle indication 19 for 'SIP/22-0988c8a0'
WARNING[31656] app_fax.c: Error transmitting fax. result=13: Unexpected message received.
WARNING[31656] app_fax.c: Transmission failed

в какую сторону копать?
#64

А вот моё горе, из PRI Zap на ReceiveFAX:
Цитата:
[Jun 10 03:46:30] DEBUG[9606] channel.c: Internal timing is disabled (option_internal_timing=0 chan->timingfd=-1)
[Jun 10 03:46:30] DEBUG[9606] app_fax.c: FLOW T.30 Send complete in phase T30_PHASE_E, state 2
[Jun 10 03:46:30] DEBUG[9606] app_fax.c: Fax phase E handler. result=48
[Jun 10 03:46:30] WARNING[9606] app_fax.c: Error transmitting fax. result=48: Disconnected after permitted retries.
[Jun 10 03:46:30] DEBUG[9606] app_fax.c: FLOW T.30 Changing from state 2 to 32
[Jun 10 03:46:30] DEBUG[9606] app_fax.c: FLOW T.30 Changing from phase T30_PHASE_E to T30_PHASE_CALL_FINISHED
[Jun 10 03:46:30] DEBUG[9606] app_fax.c: FLOW FAX Set rx type 13
[Jun 10 03:46:30] DEBUG[9606] app_fax.c: FLOW FAX FAX exchange complete
[Jun 10 03:46:30] DEBUG[9606] app_fax.c: FLOW FAX Set tx type 13
[Jun 10 03:46:30] DEBUG[9606] app_fax.c: FLOW FAX FAX exchange complete
[Jun 10 03:46:30] DEBUG[9606] app_fax.c: Loop finished, res=0
[Jun 10 03:46:30] DEBUG[9606] channel.c: Set channel Zap/8-1 to write format alaw
[Jun 10 03:46:30] DEBUG[9606] channel.c: Set channel Zap/8-1 to read format alaw
[Jun 10 03:46:30] WARNING[9606] app_fax.c: Transmission failed
[Jun 10 03:46:30] DEBUG[9606] app_macro.c: Executed application: ReceiveFAX
Я к примеру и Internal timing то не могу включить: канал Zap должен синхронизацию брать от провайдера Sad
#65

What is mean? - Error transmitting fax. result=48:
Цитата:

[Jun 11 01:06:45] DEBUG[24655] app_fax.c: FLOW T.30 Send complete in phase T30_PHASE_B_TX, state 17
[Jun 11 01:06:45] DEBUG[24655] app_fax.c: FLOW T.30 Send complete in phase T30_PHASE_B_TX, state 17
[Jun 11 01:06:45] DEBUG[24655] app_fax.c: FLOW T.30 Changing from phase T30_PHASE_B_TX to T30_PHASE_B_RX
[Jun 11 01:06:45] DEBUG[24655] app_fax.c: FLOW FAX Set rx type 4
[Jun 11 01:06:45] DEBUG[24655] app_fax.c: FLOW FAX Set tx type 0
[Jun 11 01:06:46] DEBUG[24655] app_fax.c: FLOW T.30 HDLC carrier down in state 17
[Jun 11 01:06:48] DEBUG[24655] app_fax.c: FLOW T.30 T4 expired in phase T30_PHASE_B_RX, state 17
[Jun 11 01:06:48] DEBUG[24655] app_fax.c: FLOW T.30 Changing from phase T30_PHASE_B_RX to T30_PHASE_D_TX
[Jun 11 01:06:48] DEBUG[24655] app_fax.c: FLOW FAX Set rx type 0
[Jun 11 01:06:48] DEBUG[24655] app_fax.c: FLOW FAX Set tx type 4
[Jun 11 01:06:48] DEBUG[24655] app_fax.c: FLOW T.30 Changing from state 17 to 3
[Jun 11 01:06:48] DEBUG[24655] app_fax.c: FLOW T.30 Tx: DCN with final frame tag
[Jun 11 01:06:48] DEBUG[24655] app_fax.c: FLOW T.30 Tx: ff 13 fa
[Jun 11 01:06:49] DEBUG[24655] app_fax.c: FLOW T.30 Send complete in phase T30_PHASE_D_TX, state 3
[Jun 11 01:06:49] DEBUG[24655] app_fax.c: FLOW T.30 Send complete in phase T30_PHASE_D_TX, state 3
[Jun 11 01:06:49] DEBUG[24655] app_fax.c: FLOW T.30 Disconnecting
[Jun 11 01:06:49] DEBUG[24655] app_fax.c: FLOW T.30 Changing from phase T30_PHASE_D_TX to T30_PHASE_E
[Jun 11 01:06:49] DEBUG[24655] app_fax.c: FLOW FAX Set rx type 0
[Jun 11 01:06:49] DEBUG[24655] app_fax.c: FLOW FAX Set tx type 1
[Jun 11 01:06:49] DEBUG[24655] app_fax.c: FLOW T.30 Changing from state 3 to 2
[Jun 11 00:45:12] DEBUG[24553] channel.c: Internal timing is disabled (option_internal_timing=0 chan->timingfd=-1)
[Jun 11 00:45:12] DEBUG[24553] app_fax.c: FLOW T.30 Send complete in phase T30_PHASE_E, state 2
[Jun 11 00:45:12] DEBUG[24553] app_fax.c: Fax phase E handler. result=48
[Jun 11 00:45:12] WARNING[24553] app_fax.c: Error transmitting fax. result=48: Disconnected after permitted retries.
[Jun 11 00:45:12] DEBUG[24553] app_fax.c: FLOW T.30 Changing from state 2 to 32
[Jun 11 00:45:12] DEBUG[24553] app_fax.c: FLOW T.30 Changing from phase T30_PHASE_E to T30_PHASE_CALL_FINISHED
[Jun 11 00:45:12] DEBUG[24553] app_fax.c: FLOW FAX Set rx type 13
[Jun 11 00:45:12] DEBUG[24553] app_fax.c: FLOW FAX FAX exchange complete
[Jun 11 00:45:12] DEBUG[24553] app_fax.c: FLOW FAX Set tx type 13
[Jun 11 00:45:12] DEBUG[24553] app_fax.c: FLOW FAX FAX exchange complete
[Jun 11 00:45:12] DEBUG[24553] app_fax.c: Loop finished, res=0
[Jun 11 00:45:12] DEBUG[24553] channel.c: Set channel Zap/13-1 to write format alaw
[Jun 11 00:45:12] DEBUG[24553] channel.c: Set channel Zap/13-1 to read format alaw
[Jun 11 00:45:12] WARNING[24553] app_fax.c: Transmission failed
[Jun 11 00:45:12] DEBUG[24553] app_macro.c: Executed application: ReceiveFAX
#66

Там ниже расшифровка:

Код:
[Jun 11 00:45:12] WARNING[24553] app_fax.c: Error transmitting fax. result=48: Disconnected after permitted retries.


на практике же это значит что факсы никак не могут нормально законнектится.
вопрос - железка на которой это не работает, она мощная? Просто мне показалось что все траблы с факсом которые были у меня, они тригегрятся тем что не немножко гуляет тайминг. т.е. если факс формирует и пишет 160 сэмпловый фрейм в Zap канал чуть-чуть позже чем требовалось, то "звук" который порождает астериск получается с разрывами. А задержки могут быть из-за слабого проца например.
#67

Я каждый раз выхожу на факсовые проблемы на новой машине, при этом весь накопленый багаж знаний и умений обращается в ноль. Sad
Цитата:
Умножая познания - умножаем скорбь. Экклезиаст

Однако добавлю: со стороны SIP факсы приходят тик-так. Вот почему Zap кобенится?
Уныние.
Машина там мощная - два проца Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz
#68

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

Мне simax на asterisk-support давал ссылку на свой факс, там совершенно другой принцип тайминга используется (аппаратный таймер от zaptel). Если проблема с app_fax стопроцентно повторимая, то стоит попробовать этот альтернативный факс. И если там все работает как часы, то можно думать об исправлении app_fax на использование такого же тайминга. Они в принципе вместе жить могут - разные applications в астериске.

http://simax1234.narod.ru/app_recvfax.c
#69

Попробую.
Но вот сейчас там живет app_fax и старые rxfax + txfax. Если идет в макросе через ReceiveFAX, то ещё туда-сюда, а если пустить на rxfax - валится Астериск при приёме факса сразу.
Вот так вот, председательша!
#70

Ну я знаю одну багу в rxfax из-за которой он валился в корку: он когда проверяет что фрейм типа AST_FRAME_VOICE то начинает с ним сразу работать НЕ убедившись предварительно что формат - SLINEAR. А в Астериске даже после set_read_format(SLINEAR) сделанного факсом, если фрейм был к моменту вызова уже принят, то ast_read возвращает его в том формате в котором он был принят, не перекодируя в SLINEAR. В результате код факса считает что буфер фрейма в два раза больше чем есть на самом деле(slinear - 16 бит на сэмпл), лезет куда нельзя и валится.
#71

Вот оно так, видимо, и произошло.
При приёме уже на RecvFAX - бух! И свалился.
#72

ну если он из-за этого падает то поправить легко. Проверку

if (inf->frametype == AST_FRAME_VOICE) {
в цикле поменять на
if (inf->frametype == AST_FRAME_VOICE && inf->subclass == AST_FORMAT_SLINEAR) {
#73

res_adsi?
#74

простите что вмешиваюсь но у меня такое чувство дежа-вю как будто я уже читал об этом баге на багтрекере (ошибочно удвоенный размер буфера) еще месяц-два назад и там оно вроде было пофикшено на тот момент.. или даже в changelog'е. если мне только это не приснилось конечно.
#75

не не res_adsi. Это непосредственно в app_rxfax
#76
Дык вить
Цитата:
При приёме уже на RecvFAX - бух!
#77
я думаю у тебя не все собралось как надо и не без ошибок. пересобери все еще раз и внимательно погляди будут ли ошибки какиенить.
у меня как то уже было чтото подобное. валилось тоже. ссылки на какието либы были битые, оно вроде компилялось но с ошибками. пересобрал всё заново и всё завелося.
./bootstrap.sh тоже не забудь после патча
#78
Продолжаю:

Код:
[Jun 11 20:35:05] VERBOSE[1750] logger.c: -- Goto (macro-faxreceive,s,6)
[Jun 11 20:35:05] DEBUG[1750] app_macro.c: Executed application: Gotoif
[Jun 11 20:35:05] VERBOSE[1750] logger.c: -- Executing [s@macro-faxreceive:6] ReceiveFAX("Zap/10-1", "/var/spool/asterisk/fax/1213202105.8.tif") in new stack
[Jun 11 20:35:29] WARNING[1750] app_fax.c: Error transmitting fax. result=48: Disconnected after permitted retries.
[Jun 11 20:35:29] WARNING[1750] app_fax.c: Transmission failed
[Jun 11 20:35:29] DEBUG[1750] app_macro.c: Executed application: ReceiveFAX

и tiff не создаётся.
HDLC прыгает up-down
Код:

[Jun 11 20:45:58] DEBUG[1812] app_fax.c: FLOW T.30 Send complete in phase T30_PHASE_B_TX, state 17
[Jun 11 20:45:58] DEBUG[1812] app_fax.c: FLOW T.30 Changing from phase T30_PHASE_B_TX to T30_PHASE_B_RX
[Jun 11 20:45:58] DEBUG[1812] app_fax.c: FLOW FAX Set rx type 4
[Jun 11 20:45:58] DEBUG[1812] app_fax.c: FLOW FAX Set tx type 0
[Jun 11 20:45:58] DEBUG[1812] app_fax.c: FLOW T.30 HDLC carrier up in state 17
[Jun 11 20:45:58] DEBUG[1812] channel.c: Internal timing is disabled (option_internal_timing=0 chan->timingfd=-1)
[Jun 11 20:45:58] DEBUG[1812] app_fax.c: FLOW T.30 HDLC carrier down in state 17

Продолжаю с ReceiveFAX, потому что с RecvFAX Астериск падает, не принимает гадские факсы.
Код:
[Jun 11 20:46:01] DEBUG[1812] app_fax.c: FLOW T.30 Changing from phase T30_PHASE_B_RX to T30_PHASE_B_TX
[Jun 11 20:46:01] DEBUG[1812] app_fax.c: FLOW FAX Set rx type 0
[Jun 11 20:46:01] DEBUG[1812] app_fax.c: FLOW FAX Set tx type 4
[Jun 11 20:46:13] DEBUG[1812] app_fax.c: FLOW T.30 Send complete in phase T30_PHASE_E, state 2
[Jun 11 20:46:13] DEBUG[1812] app_fax.c: Fax phase E handler. result=48
[Jun 11 20:46:13] WARNING[1812] app_fax.c: Error transmitting fax. result=48: Disconnected after permitted retries.
[Jun 11 20:46:13] DEBUG[1812] app_fax.c: FLOW T.30 Changing from state 2 to 32
[Jun 11 20:46:13] DEBUG[1812] app_fax.c: FLOW T.30 Changing from phase T30_PHASE_E to T30_PHASE_CALL_FINISHED
[Jun 11 20:46:13] DEBUG[1812] app_fax.c: FLOW FAX Set rx type 13
[Jun 11 20:46:13] DEBUG[1812] app_fax.c: FLOW FAX FAX exchange complete
[Jun 11 20:46:13] DEBUG[1812] app_fax.c: FLOW FAX Set tx type 13
[Jun 11 20:46:13] DEBUG[1812] app_fax.c: FLOW FAX FAX exchange complete
[Jun 11 20:46:13] DEBUG[1812] app_fax.c: Loop finished, res=0
[Jun 11 20:46:13] DEBUG[1812] channel.c: Set channel Zap/13-1 to write format alaw
[Jun 11 20:46:13] DEBUG[1812] channel.c: Set channel Zap/13-1 to read format alaw
[Jun 11 20:46:13] WARNING[1812] app_fax.c: Transmission failed
[Jun 11 20:46:13] DEBUG[1812] app_macro.c: Executed application: ReceiveFAX
#79
ded,
Я к сожалению его сам не запускал, предлагаю собрать с DONT_OPTIMIZE, уронить, корку поднять gdb и показать bt
#80
Sorry for english. I've created faxserver (with hylafax, iaxmodem and asterisk). And now I'm looking for application, witch could send fax using T.38 . I've tested sendfax (app_fax) , but from traces I see, that it uses G711 . This is my scheme:

[asterisk]-->-->--[voip-gw]----


I've no problems sending fax using t.38 passthrou over asterisk.
So my question is: is it possible to send faxes with sendfax using t38 and how to do it ?
thanks
#81
app_fax support T.38, for SIP preferred, not H.323, not IAX2 (AFAIK)/
Then, iaxmodem - with G711 passthru only.
Пиши по-русски.
#82
Everyone can answer in russian. I understand russian, but I can't write Smile .
My question was, how to send a fax with sendfax using t.38. I send faxes with sendfax successfully, but I see, that it uses G711 not t.38 . Maybe my voip gateway must detect that the call is fax and send reinvite (change g711 -> t38) to sendfax application...
#83
voipas писал(а):
Everyone can answer in russian. I understand russian, but I can't write Smile

Then write to English speaking forums - asteriskguru.
#84
Мой вопрос состоял в следующем: каким образом можно отослать факс при помощи sendfax, используя t.38 протокол. Дело в том, что в моём случае отправить факс удаётся, но я вижу что факс использует G711, а не t.38. Возможно мой voip шлюз должен определить, что звонок - факсовый и послать реинвайт (поменять g711 на t38) sendfax аппликации.
#85
неужели никто досихпор так и не настроил нормально факсы? столько лет уже существует решение, а нормально не отладили
#86
voipas: разумеется, на шлюзе провайдера, через который отсылается факс, должно быть понимание протокола Т.38.
Для циско шлюзов это строка в диал пире
Код:
fax protocol t38 fallback pass-through

что означает - слушать пир, и если факс - принимать/отправлять по Т.38, а если узел не поддерживает - то по G711 pass-through
а там может стоять сейчас что угодно, из набора
Код:
fax protocol none | system | cisco | pass-through


dimas: отловил через strace:
Цитата:
sigreturn(asterisk: symbol lookup error: /usr/lib/asterisk/modules/app_recvfax.so: undefined symbol: span_set_message_handler) = ? (mask now [])
--- SIGURG (Urgent I/O condition) @ 0 (0) ---
rt_sigaction(SIGURG, {0x8067960, [URG], SA_RESTART}, {0x8067960, [URG], SA_RESTART}, Cool = 0

sigreturn(ptrace: umoven: No such process
trace: ptrace(PTRACE_SYSCALL, ...): No such process
#87
dimas писал(а):
предлагаю собрать с DONT_OPTIMIZE, уронить, корку поднять gdb и показать bt


Код:
# gdb --core core.2797
GNU gdb Red Hat Linux (6.5-25.el5_1.1rh)
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu".
(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".
Core was generated by `asterisk -vvvvgc'.
Program terminated with signal 11, Segmentation fault.
#0 0x08109cdc in ?? ()
(gdb) bt
#0 0x08109cdc in ?? ()
#1 0x09d04bb0 in ?? ()
#2 0x00000000 in ?? ()
#88
Ded, а какой у тебя размер получается модуля app_fax.so? Есть проблема что addons собираются всегда с оптимизацией и не содержат отладочной информации. Я как-то баг открывал, но мне не поверили. Можно собрать без оптимизации вручную добавив флаги компилятору -g -O0
#89
-rwxr-xr-x 1 asterisk asterisk 23265 Jun 10 02:00 app_fax.so

Но с ним то в корку не падает, с ним не принимает в .tiff - проблемы с синхронизацией! И не знаю как поправить.
Корку отбрасывает альтернативная app_recvfax производства человека из Нижнего Новгорода.
http://simax1234.narod.ru/app_recvfax.c
#90
ded:
ну bt вообще ничего не показывает - поэтому IgorG и предположил что recvfax он без отладочной информации собран. Как именно он собирается? Может ему таки попробовать флаги при сборке дать которые IgorG предложил?

Я попробую сам собрать эту аппликуху и потестить, но не уверен насчет сроков. Постараюсь на этой неделе.

Added after 1 minutes:

voipas писал(а):
Мой вопрос состоял в следующем: каким образом можно отослать факс при помощи sendfax, используя t.38 протокол. Дело в том, что в моём случае отправить факс удаётся, но я вижу что факс использует G711, а не t.38. Возможно мой voip шлюз должен определить, что звонок - факсовый и послать реинвайт (поменять g711 на t38) sendfax аппликации.


1. Убедись что t38pt_udptl = yes в sip.conf
Ну и разумеется от принимающей факс стороны (в данном случае это шлюз) при обнаружении факс-тона должен приходить re-INVITE на T38. Приходит ли он легко проверить включив sip debug для данного пира.
#91
2 dimas & IgorG:
Собирал я без затей - добавил строчки в menuselect-tree и через make menuselect собрал.
Более детально вручную боюсь не смогу - не владею стилем дракона!


Последний раз редактировалось: Ded (Пн Июн 16, 2008 22:42)
#92
Вот, поправил, собрал и проверил на виртуалке - у меня работает.

Тестировал на 1.6 но должно работать и с 1.4

Требует SpanDSP 0.0.5
#93
Код:
[CC] app_recvfax.c -> app_recvfax.o
app_recvfax.c: In function ‘recvfax_exec’:
app_recvfax.c:506: error: request for member ‘ptr’ in something not a structure or union
app_recvfax.c:527: error: request for member ‘ptr’ in something not a structure or union
app_recvfax.c:540: error: request for member ‘ptr’ in something not a structure or union
app_recvfax.c:544: error: request for member ‘ptr’ in something not a structure or union
app_recvfax.c:547: error: request for member ‘ptr’ in something not a structure or union
app_recvfax.c: In function ‘load_module’:
app_recvfax.c:601: error: request for member ‘ptr’ in something not a structure or union
make[1]: *** [app_recvfax.o] Error 1
make: *** [apps] Error 2

Оригинальная версия app_recvfax собралась нормально со spandsp 0.0.5pre4
Но по прежнему валит Астериск на приёме факса.
#94
Ааа... Значит я погорячился насчет "соберется и под 1.4".
Нужно в моем файле поменять все "data.ptr" обратно на "data" и тогда она тоже соберется...

А оригинальная версия ну никак не могла собраться нормально с spandsp 0.0.5pre4 потому как она сделана для 0.0.4 а в 0.0.5 пару функций таки переименовали. Так что возможно еще что если на машине две разных spandsp поставлены то они гадят друг другу - не оттуда либы/инклюдники цепляются при сборке.
#95
to dimas:
а можно как-нибудь увеличить или задавать параметры ожидания посылки факса?
с mfu hp проблемма: при нажатии на start mfu сначала сканирует и только потом отправляет (сигнал отправки факса посылает после сканирования), а ReceiveFax не дожидается и ложит трубку. Проблемму первой страницы решил программой nv_backgrounddetect и nv_faxdetect из пакета agx-ast-addons, но с последующими страницами та же фигня, при этом hylafax+iaxmodem нормально принимают
#96
bbv писал(а):
to dimas:
а можно как-нибудь увеличить или задавать параметры ожидания посылки факса?
с mfu hp проблемма: при нажатии на start mfu сначала сканирует и только потом отправляет (сигнал отправки факса посылает после сканирования), а ReceiveFax не дожидается и ложит трубку. Проблемму первой страницы решил программой nv_backgrounddetect и nv_faxdetect из пакета agx-ast-addons, но с последующими страницами та же фигня, при этом hylafax+iaxmodem нормально принимают


я сходу не вижу в spandsp никакого API управления таймаутами. Поэтому боюсь придется поправить сам SpanDSP.

Нужно найти в файле src/t30.c константы "#define DEFAULT_TIMER_..." и поправить ту которая больше нравится увеличив ее раза в два скажем. Я бы предположил что это DEFAULT_TIMER_T0. Хотя он целой минуте равен и должно хватать... Хотя может быть и DEFAULT_TIMER_T1...

В обшем нужно увеличить таймаут, и пересобрать spandsp. Результаты пожалуйста в студию.
#97
увеличил все таумеры в 2 раза, не помогло, пишет ошибка отправки Sad
#98
А сделайте пожалуйсто патчик для * 1.4.21 Crying or Very sad
#99
bbv писал(а):
увеличил все таумеры в 2 раза, не помогло, пишет ошибка отправки Sad


а через какое время пишет? можно как-то опытным путем понять какой у него таймаут?
#100
Oleg78 писал(а):
А сделайте пожалуйсто патчик для * 1.4.21 Crying or Very sad

неужто не налазит существуюший? у меня налазил на 1.4.20.1 замечательно
#101
Код:
[Jun 18 00:57:08] NOTICE[6904] app_recvfax.c: RecvFax, spandsp version 20080616 140730
[Jun 18 00:57:08] WARNING[6904] app_recvfax.c: RecvFax, logfile - /var/log/recvfax.log

/var/log/recvfax.log - пустой.
Код:

read(0, -- Executing [s@macro-faxreceive:6] RecvFAX("Zap/19-1", "/var/spool/asterisk/fax/1213736358.0.tif|ecm") in new stack
0xbf85b6eb, 1) = ? ERESTARTSYS (To be restarted)
--- SIGURG (Urgent I/O condition) @ 0 (0) ---
rt_sigaction(SIGURG, {0x8067960, [URG], SA_RESTART}, {0x8067960, [URG], SA_RESTART}, 8) = 0
sigreturn() = ? (mask now [])
read(0, asterisk: symbol lookup error: /usr/lib/asterisk/modules/app_recvfax.so: undefined symbol: span_set_message_handler



Последний раз редактировалось: Ded (Вт Июн 17, 2008 22:04)
#102
dimas писал(а):

а через какое время пишет? можно как-то опытным путем понять какой у него таймаут?

а как можно снять полныйдамп по pri? может записать это всё монитором и выложить тикет на callweaver.org
#103
anest писал(а):
Oleg78 писал(а):
А сделайте пожалуйсто патчик для * 1.4.21 Crying or Very sad

неужто не налазит существуюший? у меня налазил на 1.4.20.1 замечательно

Не пробовал еще. Сегодня попробую. Но у меня Asterisk 1.4.21 вышедший несколько дней назад, а не 1.4.20.1.
Если налезет, то будет ли там все ОК если версии разные?
#104
ded,
ну это почти наверняка она spandsp-шную .so-шку не нашло.
можно ldd app_recvfax.so посмотреть - он скажет какие лиибы цепляются, и готов поспорить что нужного спандсп там не будет.

у меня чтобы заработало я вносил /usr/local/lib (куда ставился spandsp) в /etc/ld.so.conf.d запускал ldconfig чтобы он перестроил кэш и после этого уже ./configure астериска и make.
#105
Oleg78 писал(а):
А сделайте пожалуйсто патчик для * 1.4.21 Crying or Very sad


Немного исправленный для 1.4.21, т.к. предыдущий не налазит Smile
#106
Ёлки, я, имея две директории /usr/src/spandsp-0.0.4 и /usr/src/spandsp-0.0.5 делаю в нужной директории make uninstall, Проверяю, что все либы libspandsp в
/usr/local/lib удалены, и потом в другой /usr/src/spandsp-0.0.Х делаю make install.
Опять проверяю /usr/local/lib - появились другие libspandsp.
#107
bbv писал(а):
а как можно снять полныйдамп по pri? может записать это всё монитором и выложить тикет на callweaver.org


да нет, можно просто измерить время Smile позвонить на fax extension и смотреть на консоль - через какое время после того как факс начал пищать, ReceiveFAX зваершается (то есть диалплан продолжается дальше) с диагностикой что дескать облом произошел.


Вообще, хочется понять что же именно происходит в случае многостраничного факса - лучше просто описать своими словами но что меня интересует это:
1. после того как нажат "старт", HP начинает пищать сразу или сначала засасывает бумагу и только потом пищит?
2. что происходит когда у него заканчивается страница?
#108
После нажатия на старт hp начинает сканировать и только после того как отсканировал начинает пищать и отправлять
у него есть возможность отправлять из памяти, в этом режиме всё проходит нормально, но так очень не удобно
на второй вопрос отвечу завтра, сегодня с дома работаю
#109
bbv писал(а):
После нажатия на старт hp начинает сканировать и только после того как отсканировал начинает пищать и отправлять

тоесть если скажем, факс из 10 страниц - он сначала их все отсканирует и только потом начинает пищать? имхо - это както неправильно совсем - ни один нормлаьный факс на другой стороне не будет ждать так долго!!
может вы просто нестандартно както используете свой аппарат? например может ему нужно сначала подать документ и он будет звонить сам уже после того как отсканирует? документация есть на этот аппарат? что она говорит по этому поводу?
всмысле можно на старт ему нужно нажимать не когда вы уже дозвонились а еще до того как линия была им поднята? тогда по логике он должен сначала отсканить а потмо позвонить в линию. как то так.
#110
я в общем согласен что факс странный.
У нас тоже HP какой-то так он при нажатии на СТАРТ начинает одновременно пищать и сканировать страницу. И пока связь устанавливается - страница уже засосалась и он ее шлет из памяти попутно сканируя уже следующую...
#111
А есть asterisk-addons-1.4.7.patch или я пропустил где-то?
Или 1.4.6 подходит?
Спасибо.
#112
попробовать - минутное дело Wink
#113
kbelov писал(а):
Oleg78 писал(а):
А сделайте пожалуйсто патчик для * 1.4.21 Crying or Very sad

Немного исправленный для 1.4.21, т.к. предыдущий не налазит Smile
Спасибо, постараюсь сёдни прикрутить и откомпилять...
#114
anest писал(а):
попробовать - минутное дело Wink

попробовал - подходит.
#115
А ктонибудь ответит на вопрос, с данным патчем такая схема работать должна ?
Код:
FAX SHARP -> cisco (настройки ниже) -> * с данным патчем -> FXO Diginum CARD -> PSTN


настройки циски

Код:
!
voice service pots
supported-language ru
fax protocol t38 ls-redundancy 3 hs-redundancy 2 fallback pass-through g711alaw
!
voice service voip
fax protocol t38 ls-redundancy 3 hs-redundancy 2 fallback pass-through g711alaw
h323
call start slow
sip
!
#116
Будет, если 1) диал пир воип будет использовать протокол SIP, 2) и в нём будет указано fax protocol system
#117
Ded писал(а):
Будет, если 1) диал пир воип будет использовать протокол SIP, 2) и в нём будет указано fax protocol system


поставил fax protocol system, прото сип - факсы неходят, пищат но не коннектятся.
#118
Помогите советом что я делаю ни так?
У меня никак не хочет делать ReInvite na T38 когда принимаю факс по СИП.
Схема:
Cirpack gw --- SIP --- Asterisk w Cache rxfax T38
Так ходит:
Cirpack gw --- SIP --- Asterisk --- Spa2102 ReInvite T38

Трайс и мой udptl.conf прикрепил. В sip.conf t38pt_udptl=yes стоит в глобал и на пиире.
#119
den68 - включай дебаг факсов на циске, и смотри.
#120

Проблема решена

Привет ребята
Не могу скомпилировать addons-1.4.5 с патчем asterisk-addons-1.4.5m.zip который сделал Deniq

Описание системы
Centos x64 на процессоре AMD
Asterisk 1.2.18
шаги
wget http://downloads.digium.com/pub/asterisk ... 4.5.tar.gz
tar -zxvf asterisk-addons-1.4.5.tar.gz
cd asterisk-addons*
patch -p0 < asterisk-addons-1.4.5m.patch
./bootstrap.sh
#121

Re: Проблема решена

mikess писал(а):
Такая проблема уже была у anest но как он ее починил он не написал

не правда, я написал. если вы не поняли что я написал то так и пишете - "он написал но я не понял". Wink
кстати, а вы и вправду на астериск-1.2 натягиваете аддоны-1.4 или это опечатка? Shocked если правда то это жесть! Axe
#122
Спасибо anest - это опечатка Very Happy
Теперь пытаюсь протестировать это хоть как то
скачал Zoiper и пытаюсь отправить факс по SIP и возникает ошибка которую я никогда не видел
Цитата:

-- Executing [1@fax_in] Answer("SIP/tester55-ac008dd0", "") in new stack
-- Executing [1@fax_in] Set("SIP/tester55-ac008dd0", "FAXFILE=/var/spool/asterisk/fax/tester55-1214704272.9.tif") in new stack
-- Executing [1@fax_in] Set("SIP/tester55-ac008dd0", "FAXFILENOEXT=/var/spool/asterisk/fax/tester55-1214704272.9") in new stack
-- Executing [1@fax_in] ReceiveFAX("SIP/tester55-ac008dd0", "/var/spool/asterisk/fax/tester55-1214704272.9.tif") in new stack
[Jun 29 01] WARNING[23694]: chan_sip.c:5099 process_sdp: Unable to lookup host in c= line, 'IN IP4 8000'
[Jun 29 01] WARNING[20598]: app_fax.c:637 transmit: Transmission error
== Spawn extension (fax_in, 1, 4) exited non-zero on 'SIP/tester55-ac008dd0'
-- Executing [h@fax_in] NoOp("SIP/tester55-ac008dd0", ""Hangup"") in new stack
-- Executing [h@fax_in] Hangup("SIP/tester55-ac008dd0", "") in new stack
== Spawn extension (fax_in, h, 2) exited non-zero on 'SIP/tester55-ac008dd0'


Цитата:

INVITE sip:1@x.x.x.x.x SIP/2.0
Via: SIP/2.0/UDP x.x.x.x.x:5060;branch=z9hG4bK-d8754z-0da01237efadc066-1---d8754z-;rport
Max-Forwards: 70
Contact:
To: ;transport=UDP;tag=as04587ddd
From: "215545654";transport=UDP;tag=2d243e31
Call-ID: NzFlNjg2MDc0NWVjOGM3MGFmMjMyY2QYWY1NDg1ZmM.
CSeq: 3 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO
Content-Type: application/sdp
Proxy-Authorization: Digest username="tester55",realm="asterisk",nonce="2a973465",uri="sip:1@x.x.x.x.x",response="4sb9e0489f4dd1664b88259ef7f967c5",algorithm=MD5
User-Agent: Zoiper for Windows rev.1076
Content-Length: 361
v=0
o=Zoiper_user 489447639 124484221 IN IP4 192.168.1.101
s=Zoiper_user
c=IN IP4 8000
t=0 0
m=image 8000 udptl t38
a=T38FaxRateManagement:transferredTCF
a=T38FaxVersion:0
a=T38FaxMaxBuffer:400
a=T38FaxTranscodingMMR:0
a=T38FaxUdpEC:t38UDPRedundancy
a=T38FaxFillBitRemoval:0
a=T38MaxBitRate:14400
a=T38FaxMaxDatagram:400
a=T38FaxTranscodingJBIG:0

Sending to x.x.x.x.x : 5060 (NAT)
[Jun 29 01] WARNING[23694]: chan_sip.c:5099 process_sdp: Unable to lookup host in c= line, 'IN IP4 8000'

SIP/2.0 488 Not acceptable here


что то не понятно откуда c=IN IP4 8000 берется и что с ней сделать.......
Большая просьба откликнуться если кто знает что у меня не так.

Может у кого есть еще варианты как тестировать fax по SIP с T.38?

спасибо

Added after 2 hours 41 minutes:

если кому интерестно то похоже это проблема Zoiper'a
я использовал faxzero.com сервис и вроде соедение установилось и факс пришел Very Happy

Если есть еще какие варианты как тестировать sip - g.711 - t.38 - fax ?
#123
Факс работает просто супер
Спасибо !!!!
При этом был один случай который я думаю достоен внимания
возникла ситуация при которой во время выполнения ReceiveFax он пискнул 2 раза а потов стало выводится
chan_iax2.c:3292 iax2_read: I should never be called!
chan_iax2.c:3292 iax2_read: I should never be called!
chan_iax2.c:3292 iax2_read: I should never be called!
chan_iax2.c:3292 iax2_read: I should never be called!
...
очень быстро вподрят пока не повесил трубку
я не уверен в чем проблема либо в app_fax либо в самом Астериксе
система
asterisk 1.4.18 + addons 1.4.5
#124
Ничего достойного внимания. С факсом никак не связано. Это он много раз тыркнулся позвонить по chan_iax2., и много раз получил отлуп. И вот так сообщает, типа обидился, - "больше никогда не буду туда звонить, проверьте что там у вас с iax2 транком!"
#125
Народ подскажите плз. по моей проблеме, ну никак он не хочет по T38 нринимать.
#126
А научите меня зоипером ОТПРАВЛЯТЬ факс - тогда может даже посмотрю почему не работает да починю :=)
#127
Как отправлять Zoiperом
Подготовка Астерикса и Zoiper
1) скачать http://www.zoiper.com/downloads/free/win ... taller.exe и установить
2) в SIP.CONF сделать тестового пользователя
[zoipertest]
type=friend
canreinvite=no
username=zoipertest
regexten=555550
secret=zoipertest
host=dynamic
insecure=very
disallow=all
allow=ulaw
context=from_zoipertest
nat=yes
t38pt_udptl=yes

3) создать в ZOIPERE соедение типа SIP на этого пользователя
4) в extention.conf добавить
[from_zoipertest]
exten=>_X.,1,NoOp(From Zoiper)
exten=>_X.,1,Answer
exten=>_X.,n,Set(FAXFILE=/var/spool/asterisk/fax/${CALLERID(num)}-${UNIQUEID}.tif)
exten=>_X.,n,Set(FAXFILENOEXT=/var/spool/asterisk/fax/${CALLERID(num)}-${UNIQUEID})
exten=>_X.,n,ReceiveFAX(${FAXFILE})
exten=>_X.,n,Hangup

5) reload в CLI

сама отправка

1) В Zoipere зарегистрироваться под zoipertest (или какой там создан)
2) в строке телефона ввести например 1 и не нажимать на "звонить"
3) прямо под полем ввода телефона есть ряд кнопок и одна из них send fax и она становится enabled когда в строке телефона что то введено
4) нажать на send fax и откроется окно для выбора .TIFF файла для отправки и когда файл выбран пойдет отправка

P.S тескт набирал по памяти так что возможны мелкие ошибочки Very Happy
#128
собственно интересовал только сам процесс отправки - к своему стыду я эту кнопку проглядел совсем.

Спасибо, попробую посмотреть что происходит между астериском и зоипером.
#129
Добрый день! Собрал Астериск с SendFax и ReceiveFax не без помощи Вашего форума, даже разложил все по полочкам.
http://www.voipinfo.ru/forum/viewtopic.php?t=11180
В общем и целом все работает, но задался я следующим вопросом:
Как получать log-и debug-и про результаты прохождения факса?
Т.е. допустим положил я файл в var/spool/asterisk/outgoing, процесс пошел, факс себе отправляется, но я хочу знать чем дело закончилось. Понятно что если я принимаю факс на соседний AP200B на Ventafax то мне и так визуально все видно, а если удаленному абоненту через SIP-провайдера?
Т.е. хочу знать ответы на вопросы: а был ли факс? а начал ли он передаваться? а до конца ли прошел? а на какой скорости?
В файле app_fax.c читаем напр:
Код:
" SendFAX(filename[|options]):\n"
"Send a given TIFF file to the channel as a FAX.\n"
"The option string may contain zero or more of the following characters:\n"
" 'a' -- makes the application behave as an answering machine\n"
" The default behaviour is to behave as a calling machine.\n"
"\n"
"This application uses following variables:\n"
" LOCALSTATIONID to identify itself to the remote end.\n"
" LOCALHEADERINFO to generate a header line on each page.\n"
"\n"
"This application sets the following channel variables upon completion:\n"
" FAXSTATUS - status of operation:\n"
" SUCCESS | FAILED\n"
" FAXERROR - Error when FAILED\n"
" REMOTESTATIONID - CSID of the remote side.\n"
" FAXPAGES - number of pages sent.\n"
" FAXBITRATE - transmition rate.\n"
" FAXRESOLUTION - resolution.\n"
"\n"

По сути намеки на искомое,
далее пытался ковыряться с конструкциями типа
Код:
exten => 1,n,System(FAXFILE="${FAXFILE}" FAXPATH="${FAXPATH}" REMOTESTATIONID="${REMOTESTATIONID}" FAXPAGES="${OFAXPAGES}" FAXBITRATE="${FAXBITRATE}" FAXRESOLUTION="${FAXRESOLUTION}" )

exten => h,1,NoOp(TX: FAXBITRATE is ${FAXBITRATE})
exten => h,n,NoOp(TX: FAXRESOLUTION is ${FAXRESOLUTION})")


Для callweaver (параллельно игрался и с ним) эти штуки по крайней мере в консоль выводят информацию (для tx_fax), для asteriska даже в консоль ничего не выходит(ни для tx_fax ни для sendfax), хотелось бы конечно в файл.
Разобрал также скрипт email2fax и понял что он также не доставляет отправителю информацию о факсовой досылке, в лучшем случае отправляется письмо типа "будем посылать, а уж что получится........", а надо бы "факс дослан/не дослан, скорость была 9600/7200" и т.п.

Никто ничего не посоветует? Или бесполезно?
#130
tail -f /var/log/asterisk/full
#131
Я что-то не совсем догоняю что вам нужно. По завершению SendFAX диалплан продолжает выполнение и вы можете все что хотите вывасти в консоль (NoOp'ами) или куда угодно еще (запустив скрипт через System и передав ему параметрами все). Хотите ловить и обломы тоже - ловите 'h' extension (hangup).
Кому интересно, вот как лично у меня реализовано это (это AEL, то есть extensions.ael а не extensions.conf но сути это не меняет):

Код:
context fax {
receive => {
FAXDIR = "/var/spool/asterisk/faxes";
Set(FAXNAME=${STRFTIME(${EPOCH},,"%Y%m%d-%H%M%S")});

FAXFILE="${FAXDIR}/${FAXNAME}.tiff";

ReceiveFAX(${FAXFILE},d);
};

h => {
NoOp(FAXSTATUS: ${FAXSTATUS});

System(/opt/asterisk-extras/bin/mailfax.pl --sender="support@XXXXXXX.com" --recipient="support@XXXXXXX.com" --fax-remote-sid="${REMOTESTATIONID}" --fax-error="${FAXERROR}" --cid-name="${CALLERID(name)}" --cid-num="${CALLERID(num)}" --fax-status="${FAXSTATUS}" --fax-file="${FAXFILE}");
};
};


Ну а /opt/asterisk-extras/bin/mailfax.pl - самодельный

Код:
#!/usr/bin/perl -w

use MIME::Lite;
use Getopt::Long;

my ($debug, $sender, $recipient, $cid_name, $cid_num, $fax_file, $fax_status, $fax_error, $fax_remote_sid, $fax_pages);

# I do not want to handle undefined values everywhere
$sender = $recipient = $cid_name = $cid_num = $fax_file = $fax_status = $fax_error = $fax_remote_sid = $fax_pages = '';

my $opts = GetOptions("sender=s" => \$sender,
"recipient=s" => \$recipient,
"cid-name:s" => \$cid_name,
"cid-num:s" => \$cid_num,
"fax-file=s" => \$fax_file,
"fax-status:s" => \$fax_status,
"fax-error:s" => \$fax_error,
"fax-remote-sid:s" => \$fax_remote_sid,
"fax-pages:s" => \$fax_pages,
"debug" => \$debug);

my ($body, $subject);

my $callerid = '';
if ($cid_name ne '' && $cid_num ne '') {
$callerid = "$cid_name ";
} elsif ($cid_name ne '') {
$callerid = "$cid_name";
} elsif ($cid_num ne '') {
$callerid = "";
}

if ($fax_status eq 'SUCCESS') {
$subject = "Fax received";
$subject .= " ($fax_remote_sid)" if ($fax_remote_sid ne '');

$body = "Fax";
$body .= " from $callerid" if ($callerid ne '');
$body .= " received\n";
$body .= "\nRemote station: $fax_remote_sid" if ($fax_remote_sid ne '');
} else {
$subject = "Failed to receive fax";
$subject .= " ($fax_remote_sid)" if ($fax_remote_sid ne '');

$body = "Failed to receive fax";
$body .= " from $callerid\n" if ($callerid ne '');
$body .= "\nRemote station: $fax_remote_sid" if ($fax_remote_sid ne '');
$body .= "\n\nThe error was: $fax_error" if ($fax_error ne '');
}

$msg = MIME::Lite->new(From => $sender,
To => $recipient,
Subject => $subject,
Type => 'multipart/mixed');

$msg->attach(Type => 'TEXT',
Data => $body);

if ($fax_file ne '' && -f $fax_file) {
my $name = ($fax_file =~ m!/([^/]+)$!) ? $1 : $fax_file;
$msg->attach(Type => 'image/tiff',
Path => $fax_file,
Filename => $name);
}

if ($debug) {
$msg->print();
} else {
$msg->send();
}
#132
Попытался сделать все более менее аккуратно:

Код:
[faxout]
exten => s,1,Set(LOCALSTATIONID=Asterisk FAX)
exten => s,n,Set(LOCALHEADERINFO=Asterisk fax termination)
exten => s,n,Set(FAXFILE=/var/spool/asterisk/fax/test.tif)
exten => s,n,Answer()
exten => s,n,NoOp(NUMBER:${NUMBER})
exten => s,n,Dial(SIP/[EMAIL PROTECTED])
exten => s,n,NoOp(Fax Testing*****)
exten => s,n,SendFax(${FAXFILE})
exten => s,n,Hangup()
exten => h,1,NoOp(TX: REMOTESTATIONID is ${REMOTESTATIONID})
exten => h,n,NoOp(TX: FAXPAGES is ${FAXPAGES})
exten => h,n,NoOp(TX: FAXRESOLUTION is ${FAXRESOLUTION})
exten => h,n,NoOp(TX: FAXBITRATE is ${FAXBITRATE})
exten => h,n,NoOp(TX: PHASEESTATUS is ${PHASEESTATUS})
exten => h,n,NoOp(TX: PHASEESTRING is ${PHASEESTRING})
[office]
...
exten => 801,1,Goto(faxout,s,1);
...


Факс(2 страницы) был успешно принят на VentaFax с результатом OK На 14400 по T38,в консоли получили:

Код:
-- Executing [s@faxout:7] NoOp("SIP/2001-08f300c8", "Fax Testing*****") in new stack
-- Executing [s@faxout:8] SendFAX("SIP/2001-08f300c8", "/var/spool/asterisk/fax/test.tif") in new stack
[Jul 2 15:38:19] WARNING[26516]: app_fax.c:637 transmit: Transmission error
== Spawn extension (faxout, s, 8) exited non-zero on 'SIP/2001-08f300c8'
-- Executing [h@faxout:1] NoOp("SIP/2001-08f300c8", "TX: REMOTESTATIONID is ") in new stack
-- Executing [h@faxout:2] NoOp("SIP/2001-08f300c8", "TX: FAXPAGES is ") in new stack
-- Executing [h@faxout:3] NoOp("SIP/2001-08f300c8", "TX: FAXRESOLUTION is ") in new stack
-- Executing [h@faxout:4] NoOp("SIP/2001-08f300c8", "TX: FAXBITRATE is ") in new stack
-- Executing [h@faxout:5] NoOp("SIP/2001-08f300c8", "TX: PHASEESTATUS is ") in new stack
-- Executing [h@faxout:6] NoOp("SIP/2001-08f300c8", "TX: PHASEESTRING is ") in new stack


Во-первых пока неясно что за app_fax.c:637 transmit: Transmission error (регулярно наблюдаю), ибо факс прошел без ошибки, т.е. с подверждением приема крайней страницы, но вопрос не в этом:
NoOp не схватывает значения параметров,выводит пустые значения.

Есть соображение, что SendFax надо запускать с параметром SendFax(${FAXFILE|что-то}), но не знаю что, и сработает ли? Я еще обратил внимание в app_fax.c, что в нек. версиях (по google то лазил)существует параметр что-то=d или dd (debug), в тексте того app_fax кот. я использовал(из патча с этого сайта) этот параметр не описан.

dimas писал(а):
Я что-то не совсем догоняю что вам нужно.

Хочу написать полезную процедуру: программа кладет в /asterisk/fax файл-факс для отсылки, в asterisk/outgoing файл-задание послать этот факс по номеру такому-то, далее ожидает появления файла fax.log , кот. содержит всю информацию о результатах отсылки. Технически здесь возможны варианты, скажем с использованием e-mail, а в ответе по e-mail все содержится, но т.е. по сути это ваш скрипт, хотя я пока решил пойти более простым путем, отобразить все через NoOp -но вот пока неудача.

Ded писал(а):
tail -f /var/log/asterisk/full

Что вы имели ввиду? tail я так понимаю должен считывать информацию из файла full , у меня такого файла нет и что-откуда в нем должно содержаться пока тоже не догоняю.
#133
Дима77 писал(а):
Ded писал(а):
tail -f /var/log/asterisk/full
Что вы имели ввиду? tail я так понимаю должен считывать информацию из файла full , у меня такого файла нет и что-откуда в нем должно содержаться пока тоже не догоняю. Это Ded имел ввиду раскомментировать строчку
;full => notice,warning,error,debug,verbose
в файле `/etc/asterisk/logger.conf`, сделать `touch /var/log/asterisk/full; chown asterisk:asterisk /var/log/asterisk/full`, сделать Asterisk'у `reload` и посмотреть что появляется в файле /var/log/asterisk/full при попытке воспроизвести проблему.
#134
Я раскомментировал
Код:
full => notice,warning,error,debug,verbose

Действительно, все сыпется в этот файл, это надо взять на заметку как вариант извлечения информации, но...
те же пустые значения, т.е. на данный момент актуален вопрос как их получить хоть где, а не куда вывести.
#135
Собственно почему все значения пустые понятно - потому что app_fax считает что была ошибка. В случае ошибки он переменные не не выставляет (кроме FAXSTATUS и FAXERROR).

Кстати FAXSTATUS выставляется ВСЕГДА поэтому NoOp'ы лучше начинать именно с него...

PS: что такое PHASESTRING я ни сном ни духом - app_fax такую переменную не выставляет :=)
#136
Сделал вот так, убрав лишнее:
Код:
exten => s,1,Set(LOCALSTATIONID=Asterisk FAX)
exten => s,n,Set(LOCALHEADERINFO=Asterisk fax termination)
exten => s,n,Set(FAXFILE=/var/spool/asterisk/fax/test.tif)
exten => s,n,Answer()
exten => s,n,NoOp(NUMBER:${NUMBER})
exten => s,n,Dial(SIP/[EMAIL PROTECTED])
exten => s,n,NoOp(Fax Testing*****)
exten => s,n,SendFax(${FAXFILE})
exten => s,n,Hangup()
exten => h,1,NoOp(TX: FAXSTATUS is ${FAXSTATUS})
exten => h,n,NoOp(TX: FAXERROR is ${FAXERROR})
exten => h,n,NoOp(TX: REMOTESTATIONID is ${REMOTESTATIONID})
exten => h,n,NoOp(TX: FAXPAGES is ${FAXPAGES})
exten => h,n,NoOp(TX: FAXBITRATE is ${FAXBITRATE})
exten => h,n,NoOp(TX: FAXRESOLUTION is ${FAXRESOLUTION})

*CLI> -- Executing [801@office:1] Goto("SIP/2001-09dbc358", "faxout|s|1") in new stack
-- Goto (faxout,s,1)
-- Executing [s@faxout:1] Set("SIP/2001-09dbc358", "LOCALSTATIONID=Asterisk FAX") in new stack
-- Executing [s@faxout:2] Set("SIP/2001-09dbc358", "LOCALHEADERINFO=Asterisk fax termination") in new stack
-- Executing [s@faxout:3] Set("SIP/2001-09dbc358", "FAXFILE=/var/spool/asterisk/fax/test.tif") in new stack
-- Executing [s@faxout:4] Answer("SIP/2001-09dbc358", "") in new stack
-- Executing [s@faxout:5] NoOp("SIP/2001-09dbc358", "NUMBER:") in new stack
-- Executing [s@faxout:6] Dial("SIP/2001-09dbc358", "SIP/[EMAIL PROTECTED]") in new stack
[Jul 2 19:26:47] WARNING[26808]: chan_sip.c:2985 create_addr: No such host: [EMAIL PROTECTED]
[Jul 2 19:26:47] WARNING[26808]: app_dial.c:1183 dial_exec_full: Unable to create channel of type 'SIP' (cause 3 - No route to destination)
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing [s@faxout:7] NoOp("SIP/2001-09dbc358", "Fax Testing*****") in new stack
-- Executing [s@faxout:8] SendFAX("SIP/2001-09dbc358", "/var/spool/asterisk/fax/test.tif") in new stack
[Jul 2 19:28:14] WARNING[26808]: app_fax.c:637 transmit: Transmission error
== Spawn extension (faxout, s, 8) exited non-zero on 'SIP/2001-09dbc358'
-- Executing [h@faxout:1] NoOp("SIP/2001-09dbc358", "TX: FAXSTATUS is FAILED") in new stack
-- Executing [h@faxout:2] NoOp("SIP/2001-09dbc358", "TX: FAXERROR is Channel problems") in new stack
-- Executing [h@faxout:3] NoOp("SIP/2001-09dbc358", "TX: REMOTESTATIONID is ") in new stack
-- Executing [h@faxout:4] NoOp("SIP/2001-09dbc358", "TX: FAXPAGES is ") in new stack
-- Executing [h@faxout:5] NoOp("SIP/2001-09dbc358", "TX: FAXBITRATE is ") in new stack
-- Executing [h@faxout:6] NoOp("SIP/2001-09dbc358", "TX: FAXRESOLUTION is ") in new stack


Только теперь неясно где искать Channel problems и Transmission error, факс то на ура проходит.Причем на ура с подтверждением, если бы при разъединении что-то было не так, то Venta написала бы "Ошибка разъединения", а она просто пишет "Сброс", что и означает OK. На это у меня чувствительность хорошо набита(могу даже в логи Vent-ы не лазить).
Может [EMAIL PROTECTED] на что-нибудь заменить-чувствую(да и вижу) что лишнее, но ощущение что подвох в чем-то другом.

P.S.
dimas писал(а):
PS: что такое PHASESTRING я ни сном ни духом - app_fax такую переменную не выставляет :=)

Ну как вам сказать, чтоб плохо не подумали. "исходники" взяты отсюда: http://www.callweaver.org/wiki/Faxing+With+CallWeaver Понятно, что и пакет другой, и приложение (tx_fax) вообще-то другое, + некая моя невнимательность.

Added after 23 minutes:

Эту строчку
Код:
exten => s,n,Dial(SIP/[EMAIL PROTECTED])
я вообще убрал, она бессмысленна, но app_fax.c:637 transmit: Transmission error и FAXERROR is Channel problems -все осталось.
#137
а снимите лог с core set debug 3 плиз...
я подозреваю что у вас remote side переключается с T38 обратно на голос в конце, а app_fax это не переваривает.... но интересно проверить.

Added after 3 minutes:

и один момент - я прогнал насчет того что переменные в случае ошибки не устанавливаются - устанавливаются они.
у вас суть в том что Phase E handler не вызывается (то есть SpanDSP думает что факс НЕ закончился). И я, если честно, подозревал бы что проблема с посылающей стороной.

типа канала - SIP или ZAP ?
#138
dimas писал(а):
а снимите лог с core set debug 3 плиз...

Опишите если можно последовательность действий как снять лог.
dimas писал(а):
я подозреваю что у вас remote side переключается с T38 обратно на голос в конце, а app_fax это не переваривает.... но интересно проверить.

Я экспериментирую с AP200B. Не уверен что он умеет переключаться на голос. Когда факс идет трубка на аппарате воткнутом в модем уже положена.
dimas писал(а):
типа канала - SIP или ZAP ?

SIP-конечно.
В принципе, могу чуть подстроить AP на G711-bypass вместо T38 и посмотреть что будет, а также поэкспериментировать с другими "приборами" (Kapanga, ComISDN).

Added after 2 hours 14 minutes:

dimas писал(а):
а снимите лог с core set debug 3 плиз...
я подозреваю что у вас remote side переключается с T38 обратно на голос в конце, а app_fax это не переваривает.... но интересно проверить.

Файл прилагается.
#139
Дима77 писал(а):
dimas писал(а):
а снимите лог с core set debug 3 плиз...

Опишите если можно последовательность действий как снять лог.
CLI>core set debug 3
CLI>exit
tail -f /var/log/asterisk/full

Какая то каша там, что за сообщения No such command ..?
#140
Ded писал(а):
CLI>core set debug 3
CLI>exit
tail -f /var/log/asterisk/full
Какая то каша там, что за сообщения No such command ..?
exit кстати не сработал, поэтому tail пришлось запускать в другом окне терминала, прикладываю файл full с сеансом успешной передачи 1-й страницы факса, пишу из линукса? т/к/ винды похоже этот файл уродуют/

Added after 16 minutes:
Так,понял, в виндах надо вордом смотреть, а то в блокноте какие-то крякозябры.
WordPad'ом вполне можно смотреть.
#141
ну что и требовалось доказать -

Код:
[Jul 3 16:28:16] DEBUG[2299] app_fax.c: FLOW T.30 Changing from phase T30_PHASE_D_TX to T30_PHASE_E
[Jul 3 16:28:16] DEBUG[2299] app_fax.c: FLOW T.38T Set rx type 0
[Jul 3 16:28:16] DEBUG[2299] app_fax.c: FLOW T.38T Set tx type 1
[Jul 3 16:28:16] DEBUG[2299] app_fax.c: FLOW T.30 Changing from state 3 to 2
[Jul 3 16:28:16] DEBUG[2273] chan_sip.c: T38 state changed to 0 on channel SIP/2001-08c8f9e0



Я в общем так понимаю что завершение сеанса подразумевает каой-то обмен типа одна сторона говорит "я все", вторая говорит "ага, поняла, я тоже все тогда" и только тогда процесс считается законченым. В вашем же случае, дивайс говорит "я все" и бодро вырубает T38 совсем не дожидаясь ответа. А spanDSP еще не закончил - он хочет еще попрощаться....

Но т.к. T38 уже пропал - app_fax тут же и ругается:

Код:
[Jul 3 16:28:16] DEBUG[2299] app_fax.c: T38 down, terminating


Я не знаю что с этим делать. Пока идея одна - если T38 пропал но факс уже в статусе T30_PHASE_E, то подавить ошибку.
#142
Подавить это как?
Я кстати пробовал отправлять на Капангу (и принимать тоже)-ошибка такая же, так что device похоже ни при чем.При отправке с капанги ошибка иногда не возникает.
Также пробовал отправлять с ComISDN-там все OK, т.е. пишет и bitrate и resolution, обратно послать не получается, причем ошибка такая же как в full.txt.
Также опробовал X-CAPI-аналогично--ReceiveFAX - все OK, т.е. пишет и bitrate и resolution, обратно(SendFax) послать также не получается, ошибка такая же.
#143
Попробуй найти в app_fax.c строчки

Код:
/* Remove phase E handler because we do not want it to be executed
only because we called t30_terminate */
t30_set_phase_e_handler(&t38.t30_state, NULL, NULL);


в конце функции transmit_t38 (потому что есть такой же кусок в другом месте) и закомментировать строчку t30_set_phase_e_handler. После чего все пересобрать.
#144
Собственно вот патч - попробуйте у кого завершение ненормальное.
Но всю обработку нужно по прежнему делать в экстеншене 'h' (hangup) потому как некоторые терминалы не просто T38 вырубают в конце, а совсем трубу кладут.
#145
Спасибо за заботу, только у меня пока линукс слетел, была FC9, сейчас установил FC6, наберусь терпения,соберу, взгляну. Вообще думаю,может "забыть как страшный сон", а то уже крыша едет потихоньку.
#146
ну это дело хозяйское.
если есть чем заменить - то на здоровье.

А Kapanga я бы отладил конечно, но у меня Астериск 1.6 а в капанге баги которые этим Астериском не перевариваются - я им написал ( http://www.kapanga.net/ip/community/view ... 1469#p1469 ) но не думаю что скоро исправят. В общем увы и ах - в КАЖДОМ куске софта есть какая-то кривизна и когда эти софты друг с другом разговаривают, это все вылазит.
#147
Я тоже пытался решить c Капангой свой вопрос: http://www.kapanga.net/IP/community/viewtopic.php?id=426
На самом деле рабочие решения у меня давно уже существуют под win причем в избытке, да в таком, что решение рабочих вопросов с факсами превратилось в некое хобби.
Любую программу умеющую посылать факс по ip(и не по ip) я оцениваю с т зр. 1)умения запустить факс "из командной строки", 2)умения считать результаты (ok,faxrate и т.п.). 3)Ну и для ip очень важна гибкость программы дослать факс на "слабой" линии, очень многие проги засыпаюся, не сумев договориться на 9600.
Рабочие (и реально используемые) решения есть такие:
1) VentaFax->FaxModem->AP200B->SIP (самое качественное!и t38,и g711)
2) Microsoft Fax ->TAPI->www.comisdn.com->SIP (для T38 с учетом моих прибамбасов, кот.считывают информацию через Microsoft Fax API эти 4 линии купленные у французов со скидкой не перестают меня периодически радовать вот уже 2 года)
---------------
3) CapiFax.ocx->XCAPI->SIP тоже рабочее решение, благодаря скачанной библиотеке CapiFax.ocx и написанным прибамбасам на VB отвечает моим требованиям, плюс XCAPI в умении посылать факсы по G711, чем не удивишь пользователей Asterisk, кот. всю жизнь в один голос хотят и кричат T38! но, согласитесь большая редкость для Win. Ее в работе использовать не очень люблю, т.к. факс идет с рекламой X-capi а покупать неохота и дорого.
--------------
Kapanga(T38) -к чести разработчиков они ее наконец довели до ума, год назад я плевался, однако с логами полная беда- не рабочий вариант, хотя и прикольный, и факсы шлет супер!

Далее для разруливания звонков использую Axon PBX -простая и понятная, нет проблем с транзитом T38.

Уже в виндах стало скушно, решил посмотреть что там в Asterisk с факсами, а заоодно что есть линукс. Чувствую что есть в нем много хорошего, даже неплохо продвинулся, но нек. вещи поражают своей бестолковостью. Т.е. получается, что постоянно не хватает каких-то пакетов, версий, не всегда ясно чего именно. Решать это все очень полезно для мозгов, но крыша начинает съезжать потихоньку. Пытался установить PCI-модем, драйвера от Dlink не работают, родных на connexant нет, установил с linnuxant -обрадовался, а мне говорят, это тестовая версия, а чтоб факсы работали -20баксов за драйвер(это при цене модема 7баксов и бесплатных драйверах для виндов), почитал в интернете инструкцию"для нечестных жуликов"-за полчаса получил полноценный драйвер, не переставая удивляться. Кончается обычно тем что после какой-нибудь установки накрываются иксы, и жизнь погружается во мрак, причем практически без возможности восстановления оных без переустановки системы. На днях установил Web-управление своим линуксом, прикольно-и убил его...с мобильного телефона: запустил обновление,блин.Наутро система еще шевелилась, но после перезагрузки ни x-сов, ни сети, ни yum -ничего нет...
В принципе я уже понимаю, что надо все что надо настроить на чистой системе и не трогать и будет работать как часы годами, но пока этого "того что надо" я для себя не узрел, поэтому устанавливаем-изучаем-ломаем.

FC6 пришлось кстати снести, ибо при установке Asterisk 1.4.21.1 возникли неизвестные глюки, установил опять Fedora Core 9, пока пишу астериск компилируется-устанавливается, в общем пока не сдался, но.. эмоции разные и противоречивые.
#148
мой вам совет - бросайте вы этот редхат.. гавн&ще (пардон, другого слова просто нет) еще то!
(имхо - редхат был хорошим до версии 9, все что было потом - испорчено донельзя. я про федоры и тп. а девятый уже морально устарел)
линукс же не один - их десятки (и даже сотни) есть на свете! зачем замыкаться на том что сразу не пошло? альтернатива с линуксом есть всегда. чем и хорош.
не знаю что конкретно вам порекомендовать, лично на мой вкус все бинарные дистрибутивы - [skip]. пришел к генту. ничего не падает и работает как часы. не могу нарадоваться уже несколько лет. попробуйте разные - может с чемто у вас и срастется.
#149
dimas писал(а):
Собственно вот патч - попробуйте...

Увы...
Код:
-- Executing [s@faxout:7] SendFAX("SIP/2001-09ba0f28", "/var/spool/asterisk/fax/test.tif") in new stack
[Jul 9 01:53:29] WARNING[14915]: app_fax.c:214 phase_e_handler: Error transmitting fax. result=22: Invalid response after sending a page.
[Jul 9 01:53:29] WARNING[14915]: app_fax.c:637 transmit: Transmission error
== Spawn extension (faxout, s, 7) exited non-zero on 'SIP/2001-09ba0f28'
-- Executing [h@faxout:1] NoOp("SIP/2001-09ba0f28", "TX: FAXSTATUS is FAILED") in new stack
-- Executing [h@faxout:2] NoOp("SIP/2001-09ba0f28", "TX: FAXERROR is Invalid response after sending a page") in new stack
-- Executing [h@faxout:3] NoOp("SIP/2001-09ba0f28", "TX: REMOTESTATIONID is ") in new stack
...дальше пусто

А идут как всегда нормально...Да, ...в C++ писать не умею, пока разочарование,п.2(считывание результатов) не выполняется, п.3 на счет гибкости программы на "слабых внешних" линиях тоже что-то слабовато подтверждается, максимальную скорость факса тоже ограничить негде, хотя сейчас речь не об этом.
Пока отношусь как к Капанге, хотя... там при желании из логов можно информацию вытянуть-правда по моим оценкам только для одной линии, а их там 3, с 3-мя будет путаница.
anest писал(а):
бросайте вы этот редхат...

не буду спорить, когда в очередной раз убью x-ы (согласно статистике -через 2-4недели), подумаю.
P.S. А кнопку цитировать зря убрали...никогда не злоупотреблял,но неудобно без нее
#150
хм... А с кем это проблема-то? Я на zoiper отладился, последняя версия - 2.15. У меня SendFAX без ошибок отрабатывает. ReceiveFAX тоже...
#151
Скажите а c dlink app_fax по t.38 работает у кого-нибудь? У меня выдает при приеме ошибку: [Jul 9 12:09:38] WARNING[13950]: app_fax.c:214 phase_e_handler: Error transmitting fax. result=39: Unexpected DCN while waiting for image data. И не понятно куда копать Sad
#152
RE(Dimas): хм... А с кем это проблема-то?
Проблема с AP200B, но как я уже писал с ComISDN, XCAPI, Kapanga ситуация ничуть (не на много) лучше.
Ошибка Error transmitting fax. result=22: Invalid response after sending a page скорее всего возникла в силу применения патча.
Да не дело это, у вас "на zoiper отладилось", а с другими ..-должна быть какая-то стабильность, иначе для работы неприменимо. Да,ходят факсы, игрушка интересная, но чтоб внедрять в рабочую среду, видимо пока еще рано об этом думать. Честно, пока не хочется копаться. Могу добавить что в случае использования callweaver в аналогичных условиях таких глюков с tx_fax rx_fax не возникало, т.е. по NoOp все результаты возвращались, но реализация все равно далека от совершенства (при использовании SIP),имею ввиду что на внешних линиях факс ведет себя достаточно тупо, думаю что можно сделать что-то хорошее, если использовать Asterisk в качестве офисной PBX с выходом на обычные городские линии, или с использованием гарантированного стабильно-T38-качественного SIP провайдера. Но у меня такой задачи не стоит...
#153
Я поигрался еще: что касается ReceiveFax, корректно работает везде (с Kapanga, ComISDN, Zoiper и даже AP200B)-это впрочем не особо интересно, ибо принятый факс итак видно, если он пришел, да и не использую я SIP для входящих факсов.
По поводу SendFax -на Капангу принимает, NoOp пишет корректно(правда консоль переходит в режим иероглифов), на AP по прежнему не хочет, а Zoiper почему-то не реагирует на входящий факс, т.е. позывные слышу, а стартовать не хочет, до логов дело соотв. не дошло, я бы проверил но нет там кнопки start(на прием).
Т.к. если я и буду посылать факсы через Asterisk, то вряд ли на свой AP, то решать вопрос именно относит.него смысла не имеет, т.е. если и отлаживать, то конкретную рабочую среду, но углов столько, что при наличии рабочих win-решений особого желания возиться пока нету.
#154
1. что зоипер не реагирует на начало факса - видел. Чисто для тестов у себя я правил app_fax чтобы он сам инициировал переход в T38. Но если верить спеке это должен делать таки приемник (т.е. zoiper). Тут есть три варианта:
* добавить опцию в SendFAX чтобы он насильно требовал T38. Спорный подход, но может быть кому-то полезно.
* написать на саппорт Zoiper с просьбой разъяснить ситуацию. (И починить) Пожалуй спрошу их.

2. Что касается AP - читать его мысли я не могу. Если хотите чтобы кто-то проблему изучал - core debug 3, udptl debug, sip debug и вперед - собирать лог.

Added after 30 minutes:

(ну кстати из доки по зоиперу очевидно почему он не ловит ничего. Он и не должен. Единственный режим когда он принимает факс это когда входящий звонок ИЗНАЧАЛЬНО идет с T38. То есть когда зоипер еще трубку не снял, а уже известно - это факс)

Я им написал спросил не хотят ли расширить.
#155
На мой взгляд zoiper (честно через ж бы его написал) -это нечто типа недоделанной капанги 2-х летней давности. Абсолютно никаких настроек, да еще и куча недоделок -стандартный Microsoft-fax-tiff в Normal-resolution не умеет например корректно передать-преобразовывает к какой-то фигне.

Я достаточно давно изучаю вопрос с факсами, и пришел к выводу, что ничего лучше VentaFax не существует, причем как для гтс так и для sip по обоим протоколам.
Если не запускать оболочку, то из командной строки командой типа ventadrv [номер][файл] инициализируется досылка факса [файл], по номеру [номер], всю процедуру мы визуально наблюдаем, а по окончании получаем файл в log-директории,из кот.вся информация (а она там очень полная) вытягивается программно,перед следующей посылкой этот log программно убивается. Плюс сама программа очень гибкая, т.е. хорошо договаривается о скорости передачи факса, что для слабеньких sip-линий крайне немаловажно,куча правильных настроек. При желании этих драйверов делается столько сколько надо в одной системе и процедура пристыковывается к любым управляющим программам. Т.е. Venta для меня является нек.стандартом качества, и любое новое я оцениваю методом сравнения с ней.
Единственный минус венты-она умеет работать только с факс-модемом, tapi в ней заявлено, но с тем tapi, что в Microsoft Fax несовметимо, что не позволяет использовать ее с comisdn, CAPI также отсутствует.Т.е. единственный способ Venta->FaxModem-> FXS(Адаптер)->sip.

2 года периодически пытаюсь найти что нибудь, что с одной стороны являлось бы виртуальным факс-модемом (т.е чтобы Venta могла с ним работать, по сути интерфейс com-порта), а с другой стороны смотрело в SIP, или хотя бы в CAPI. Может кто знает,существуют ли такие решения в win или в linux? Некие намеки я видел в AVM FRiTZ virtual com-port -не пошло, вилимо ориентировано только на свои адаптеры, также пытался разобраться с Diva Server Soft IP, но что-то уж там очень запутано, не удалось настроить, хотя модем устанавливался.
Я пытался задавать этот вопрос разработчикам ComISDN, и X-CAPI из ответов ничего разумного не следовало, т.е. типа другая технология, используйте такой-то такой-то capi-совместимый (тупой естественно) факс-сервер, в лучшем случае: вот вам наша утилита, попробуйте и т.п.

Прочитал кстати про hylafax+iaxmodem, технически пока не углублялся, но хотелось бы сориентироваться, что за модем, можно ли его пристыковать к Asterisk,, будет ли посылать по sip, можно ли его пробросить в win-ды, обычные модемы я с одного pc на другой в windows успешно пробрасывал, вот описание: http://www.voipinfo.ru/forum/viewtopic.php?p=33431, еще слышал h323-t38-modem, с h.323 не знаком но так понимаю это другой виртуальный модем.
Вопрос как отправить Ventу в SIP без промежуточного железа для меня скорее уже не практический, а философский, если удастся решить, получу глубокое моральное удовлетворение.

Кстати вернемся к нашим баранам. Что-то мне не понравилось как SendFax ReseiveFax работают по G711 (без T38). rx_fax tx_fax все отлично,а здесь с трудом удалось дослать один факс на 4800 после манипуляций с ограничением максим. скорости на Vent-e. А rx-tx-fax все отлично на 9600ecm бегает. Т.е. если по G711 Send-Receive хуже что ли-так или не так?
#156
А подскажите плз.
Вот у меня * 1.4.19.2, аддонсы - 1.4.6
патчи соответственно
asterisk-1.4.19-t38-for-app_fax.patch и asterisk-addons-1.4.6-app_fax-t38.patch

spandsp-0.0.4pre18

Как только диалплан доходит до ReseiveFAX -- * падает в корку. Дебаг и логи не показывают вообще ничего. Что это такое?

И еще хотел спросить. А что такое rxfax и txfax ? Где вы это берете? Или это сокращенное ReseiveFAX и SendFAX ?

Спасибо.
#157
Находясь в поисках и переваривая информацию текущей темы, я сформулировал четкую инструкцию, как все
установить чтоб работало(SendFax и ReceiveFax), можете взглянуть:
http://www.voipinfo.ru/forum/viewtopic.php?t=11180
при отступлении от версий,там указанных, работоспособность не гарантируется. Однако:
1)можете ставить asterisk 1.4.21.1 вместо 1.4.21
2)ни в коем случае не ставить spandsp 0.0.5

tx_fax и rx_fax -классические приложения для факса в asterisk, инструкция по установке и сами файлы
здесь: http://asteriskforum.ru/viewtopic.php?p=7662
при установке самого asterisk надо класть app_txfax и app_rxfax в apps и вручную аккуратно исправить
несколько файлов как описано, установить asterisk и убедиться что эти приложения присутствуют.

SendFax и ReceiveFax -отдельные приложения, ориентированы на работу по T38, ставятся вместе с
addons-ами, у меня подозрение, что передача факса голосом по g711 там плохо реализована,
тогда как старые tx_fax и rx_fax на G711 работают отлично.

В принципе вы можете попробовать установить все 4 приложения, тогда на начальном шаге при установке
самого asterisk надо совместить T38-patch с установкой rx-tx-fax и ручной правкой файлов.
если будут глюки, попробуйте spandsp-0.0.4-15 вместо 0.0.4-18, плохо помню, но вроде должно работать,
для T38 будете использовать send-receive, а для G711 rx-tx, если конечно вы четко понимаете где когда
и как и какой факс-протокол используется в вашей системе.
#159
ну он там отдельным приложением. Я, например не очень понимаю как такое юзать. По хорошему это должен быть неких "внутриканальный конвертер" то есть если в бридже канал поддерживающий T38 и его не поддерживающий и начинается факс - то стартует гейтвей между этих каналов. Без приложений.

Added after 1 hours 16 minutes:

JFYI, Zoiper ответил :=)

Код:
For now Zoiper always starts a normal call and then reinvites with t.38. The direct T.38 invite is not supported for now. So in this case if your gateway can actually do the CNG tone detection + T38 switchover this should be not a problem. We are working to make Zoiper detect the CNG tone and send the t.38 on its own. We work on even a direct t.30 but this will work only without any packet loss.

> So the SIP call does not have T38 attributes in the initial INVITE but
> somewhere in the middle of the call remote side starts sending CNG
> tone (1100 Hz, ½ sec). The T38 capable terminals are supposed to
> detect this signal and attempt T38 re-INVITE. If you do not want
> implementing any tone detection, you may want to make FAX button in
> the ZoIPer enabled mid-call and pressing it will start T38 re-
> INVITE. This will work too..

This proposal looks reasonable and relatively easy to implement and we will consider this.



Типа все у них будет - и обнаружение CNG, и просто старт по кнопке. Второе видимо быстрее.
#160
Почему у меня вылазиет вот такое:
Код:
v=0
o=- 180751994 180751994 IN IP4 192.168.0.1
s=-
c=IN IP4 192.168.0.1
t=0 0
m=image 16466 udptl t38
a=T38FaxVersion:0
a=T38MaxBitRate:14400
a=T38FaxRateManagement:transferredTCF
a=T38FaxMaxBuffer:200
a=T38FaxMaxDatagram:200
a=T38FaxUdpEC:t38UDPRedundancy


--- (14 headers 12 lines) ---
Sending to 194.44.33.105 : 5060 (NAT)
Got T.38 offer in SDP in dialog c8505577-a0729017@192.168.0.1
Got T.38 Re-invite without audio. Keeping RTP active during T.38 session. Callid c8505577-a0729017@192.168.0.1
Capabilities: us - 0xc (ulaw|alaw), peer - audio=0x0 (nothing)/video=0x0 (nothing), combined - 0x0 (nothing)
Non-codec capabilities (dtmf): us - 0x1 (telephone-event), peer - 0x0 (nothing), combined - 0x0 (nothing)


Или так должно быть? Факс слал через SPA-2102.
#161
Вопрос не понял.
Что-то конкретно смущает/не работает или что?
#162
Да не могу понять нормально ли что:
Код:
Got T.38 offer in SDP in dialog c8505577-a0729017@192.168.0.1
Got T.38 Re-invite without audio. Keeping RTP active during T.38 session. Callid c8505577-a0729017@192.168.0.1


А потом идет такое:
Код:
[Jul 14 16:06:12] VERBOSE[26006] logger.c: --- (14 headers 9 lines) ---
[Jul 14 16:06:12] VERBOSE[26006] logger.c: Sending to 192.168.0.1 : 5060 (NAT)
[Jul 14 16:06:12] VERBOSE[26006] logger.c: Found RTP audio format 0
[Jul 14 16:06:12] DEBUG[26006] chan_sip.c: Peer doesn't provide T.38 UDPTL
[Jul 14 16:06:12] VERBOSE[26006] logger.c: Peer audio RTP is at port 192.168.0.1:16452
[Jul 14 16:06:12] VERBOSE[26006] logger.c: Found audio description format PCMU for ID 0
[Jul 14 16:06:12] VERBOSE[26006] logger.c: Capabilities: us - 0xc (ulaw|alaw), peer - audio=0x4 (ulaw)/video=0x0 (nothing), combined - 0x4 (ulaw)
[Jul 14 16:06:12] VERBOSE[26006] logger.c: Non-codec capabilities (dtmf): us - 0x1 (telephone-event), peer - 0x0 (nothing), combined - 0x0 (nothing)
[Jul 14 16:06:12] VERBOSE[26006] logger.c: Peer audio RTP is at port 192.168.0.1:16452

Тоесть T38 в этом случае не работает?
#163
вобщем вот может кому надо Smile

asterisk-1.4.21.1 подержка t38 и app_fax
ставить со spandsp0.0.5pre4
#164
клева! кстати spandsp обновился в gentoo как раз, не надо больше руками собирать Smile
#165
Привет! До этого стояла связка из: Asterisk 1.4.21.1+патч 1.4.21, Asterisk-addons 1.4.7 + патч 1.4.6, spandsp 0.0.5pre3 и всё работало. Сегодня решил переставить * и его пропатчить новым патчем. Я так и не понял, нужно ли патчить аддоны (т.е делать всё как в http://www.voipinfo.ru/forum/viewtopic.php?t=11180). Установил новый spandsp 0.0.5pre4. Все собрал и поставил. Вот ошибка которая выскакивала при компиляции *:
Код:

[CC] app_fax.c -> app_fax.o
app_fax.c: In function ‘phase_e_handler’:
app_fax.c:177: warning: implicit declaration of function ‘t30_get_tx_ident’
app_fax.c:177: warning: assignment makes pointer from integer without a cast
app_fax.c:178: warning: implicit declaration of function ‘t30_get_rx_ident’
app_fax.c:178: warning: assignment makes pointer from integer without a cast
app_fax.c: In function ‘set_local_info’:
app_fax.c:236: warning: implicit declaration of function ‘t30_set_tx_ident’
app_fax.c:240: warning: implicit declaration of function ‘t30_set_tx_page_header_info’
[LD] app_fax.o -> app_fax.so

Теперь при приёме факса с помощью ReceiveFax Астериск вываливается Shocked
Что это означает? Я так понимаю проблема возникает уже здесь, тем не менее приложение app_fax.so собирается...
#166
это означает что по какимто причинам не схватились заголовки нового spandsp
#167
Cache все процедуры начиная с накатывания патча, заканчивая выполнением make menuselect проходят без сучка и задоринки. Делаю: 1) патч на астериск 2)выполняю скрипт ./bootstrap.sh 3) выполняю скрипт ./configure --prefix=/usr Вот результат работы этого скрипта:
Код:

checking for span_set_message_handler in -lspandsp... yes
checking spandsp.h usability... yes
checking spandsp.h presence... yes
checking for spandsp.h... yes

4) Далее делаю make menuselect, вот результат:
Код:

[*] 20. app_fax
Simple FAX Application
Depends on: spandsp(E)

5) Затем я делаю make. Идёт сборка и в момент сборки app_fax выскакиват тот самый warning. Evil or Very Mad
Разобрался! Smile
Сделал последовательно в каталоге со spandsp: make clean, make install. Затем я заново пропатчил чистый 1.4.21.1 и он нормально собрался. Естественно что всё заработало! Спасибо за помощь! Cool
#168
ну выглядит это так как будто есть еще стрый spadsp где-то в системе и именно он и цепляется.
#169
Дима77 писал(а):
2 года периодически пытаюсь найти [b]что нибудь, что с одной стороны являлось бы виртуальным факс-модемом (т.е чтобы Venta могла с ним работать, по сути интерфейс com-порта), а с другой стороны смотрело в SIP...
Прочитал кстати про hylafax+iaxmodem, технически пока не углублялся, но хотелось бы сориентироваться, что за модем, можно ли его пристыковать к Asterisk,, будет ли посылать по sip, можно ли его пробросить в win-ды, обычные модемы я с одного pc на другой в windows успешно пробрасывал
...Вопрос как отправить Ventу в SIP без промежуточного железа для меня скорее уже не практический, а философский, если удастся решить, получу глубокое моральное удовлетворение.

Победил!!! Smile Пока еще не переварил,не осознал, но победил! Smile http://www.voipinfo.ru/forum/viewtopic.php?t=11467
#170
Цитата:
T38 здесь похоже неприменим в силу особенностей IAXmodem, но данная конструкция мне нравится больше чем rxfax-txfax.

Если вместо IAXmodem в эту схему вставите T38modem то будет Вам Т38.
Он подключается к Астериску по Н.323, а в основном функционал такой же.
#171
Ded писал(а):
Если вместо IAXmodem в эту схему вставите T38modem то будет Вам Т38.
Он подключается к Астериску по Н.323, а в основном функционал такой же.

Думал я уже на тему T38modem -как только с IAX заработало, так сразу и подумал, еще до вашего сообщения, ваше сообщение укрепило меня в правильности этих мыслей. Надо разбираться! К сожалению с H.323 я вообще не знаком, хотя логически понятно:к астериску по h323,далее по sip.
Я тут уловил из поиска 2 мысли про T38modem.
1) что он якобы теперь под sip работает
2) что его можно откомпилировать под windows.
Подтверждение первой мысли (про sip) я пока не нашел, если она верна, во что я пока не верю, то я бы исключил из цепочки сам астериск.
Вторая мысль про windows мне понравилась, тогда можно исключить редирект com-порта , но поверхностное чтение документации навело на мысль, что даже в виндах что-то подобное таки понадобится.
Надо разбираться,короче!

Кстати, по поводу IAX-модема. Может глупость спрашиваю, но тем не менее.
Он все-таки "голосовой" или нет?
VentaFax почему-то определяет его как модем с системой голосовых команд "Conexant/Rocwell", причем при таких настройках он не работает, но это заставляет задуматься.
Конечно, для передачи факса это не имеет значения, но если модем голосовой, то во-первых мы имеем графическое отображение состояния линии (длинные/короткие гудки, ответ на звонок) в окне драйвера VentaFax, а во-вторых существует возможность проиграть фразу типа "примите факс" плюс более грамотный анализ линии программой. В железном решении Venta->FaxModem->AP200B->SIP этот момент как раз-таки реализован.
#172
нихочу никого обидеть, но - предлагаю создать новую тему и я перенесу весь оффтоп туда. так как все посты в этой теме не по теме топика (а именно "Т.38 app_fax и астериск 1.4") и есть оффтоп и только захломляют ветку. имхо.
оттуда вы можете ссылаться на эту ветку сколько угодно.
#173
Cache,
я так понимаю, что пачтить *-addons уже не нужно ???
У меня после патча asterisk-1.4.21.1-app_fax-support-t38.patch.gz , кот. я наложил на *, появился app_fax.so.
Кстати rx-txfax тоже появились уже. Я просто скопировал перед этим app_rxfax.c app_txfax.c в исходники Smile
#174
Oleg78 я тоже об этом сразу подумал, после накладывания патча и выполнения menuselect. Я щас пользую на всю приложения Receive/Send fax. Вот заметил выскочило следущее в консоли при udptl debug:
Код:

[2008-07-21 16:11:33] WARNING[10473] app_fax.c: Error transmitting fax. result=13: Unexpected message received.
[2008-07-21 16:11:33] WARNING[10473] app_fax.c: Transmission failed

В итоге факс принят. Shocked
#175
я тоже не раз сталкивался с ситуацией, когда факс принимается, а FAXERROR="Channel Problems" или "No response after sending a page"
Первое реже. Патч от пока не успел опробовать.
#176
Сегодня с утра тестирую систему приёма факсов в офисе. Так вот. Были случаи не приёма факса. Точно понять не могу почему. В целом где-то 90% приём факсов идёт. Связка в офисе такая: (Asterisk 1.4.21.1 patched+ Addons 1.4.7) SIP Samsung OfficeServ500 PRI. Факсы ходят по Т.38, используется ReceiveFax. Не подскажите коллеги какие встречались типичные причины не приёма факсов, исключая влияние непосредственно приложения ReceiveFax. Речь идёт об отказе в офисе приёма факсов на обычные аппараты Панасоник, а приём их в Астериск, как уже 2-й день тестируется.

Возник также щекотливый вопрос. Насколько я понял после выполнения приложения ReceiveFax производится Hangup. Так вот. Каким же тогда образом уведомлять позвонивших людей о том, что их факс был получен?? Shocked
Замечу, что в h екстеншене у меня производятся манипуляции непосредственно с файлом содержащим факсимильное сообщение. Т.е проверка на его наличие, копирование в нужное место, выводы ошибок и процесса работы в логи.
c0rnoTa не подскажете где ознакомиться с полным списком переменных связанных с работой этого приложения?? Ну например: FAXERROR, FAXPAGES, FAXRESOLUTION и т.д. Rolling Eyes
#177
core show application ReceiveFax

или сам исходник посмотреть: app_fax.c
#178
я делаю просче (мне так кажеца)

ael
Код:
macro faxing (faxstat,who,txtinfo,txthead,srv_name,email) {
Wait(1);
Set(FAX_STAT=${faxstat});
Set(LOCALSTATIONID=${txtinfo});
Set(LOCALHEADERINFO=${txthead});
if ("${FAX_STAT}" = "Receive") {
Set(FAXFILENOEXT="/opt/fax/incoming/${who}/FAX_${STRFTIME(${EPOCH},,%d_%m_%Y-%H_%M)}");
FAXFILE="${FAXFILENOEXT}.tif";
NoOp(Resive FAX);
ReceiveFAX(${FAXFILE});
NoOp(reseive result ${FAXERROR});
[b] System(/opt/fax/sendfax2mail -s ${srv_name} -e ${email} -f ${FAXFILENOEXT} -p);[/b]
} else if ("${FAX_STAT}" = "Send"){
NoOp(Send FAX to ${NUMBER_SEND});
SendFAX(${FAXFILE});
} else {
NoOp(Nothing do);
}
Hangup();
}


скрипт sendfax2mail
Код:

#!/bin/bash

DATETIME=$(date +"%A, %B %d %Y, %H:%M")
while [ ${#} -gt 0 ]; do
case "${1}" in
"--srv-name" | "-s" )
SRV_NAME=${2}
shift
;;
"--to-email" | "-e" )
TO_EMAIL=${2}
shift
;;
"--file" | "-f" )
FILE=${2}
shift
;;

esac

shift
done

if [ "$FILE" = "" ]; then
echo "Error: A file is required"
exit 1;
fi
if [ "$TO_EMAIL" = "" ]; then
echo "Error: A destantion email is required"
exit 1;
fi
if [ "$SRV_NAME" = "" ]; then
echo "Error: A server name is required"
exit 1;
fi

FORMAT="pdf"
FORMATNAME="Adobe Acrobat"
FROM_EMAIL=$TO_EMAIL

SOURCEFILE=$FILE.tif
DESTFILE=$FILE.$FORMAT
INFOFILE=$FILE.txt

if [ -e $SOURCEFILE ]
then
# Read data from TIFF file
PAGES=$(tiffinfo $SOURCEFILE | grep "Page" | cut -d " " -f 1)
DT=$(tiffinfo $SOURCEFILE | grep "Date")
DTFAX=${DT#*:}
FAX_PAGES=${PAGES#*-}
if [ -z $FAX_PAGES ]
then
# If didn't find a page count, use the number of occurrences of "spandsp"
FAX_PAGES=$(grep -c "spandsp" $SOURCEFILE)
if [ -z $FAX_PAGES ]
then
FAX_PAGES=""
fi
fi
BODY="Здравствуйте,\n
Был получен факс на $FAX_PAGES листах в $DATETIME от $REMOTE_ID\n
файл в формате $FORMATNAME($FORMAT) в приложении.\n
\n\n\n
С уваженем Ваш Факс ;-)\n
"

tiff2pdf -f -p A4 $SOURCEFILE > $DESTFILE
#rm -f $SOURCEFILE
sendEmail -f $FROM_EMAIL -t $TO_EMAIL -u "Факс от $DATETIME" -m $BODY -a $DESTFILE -s $SRV_NAME -o message-charset=UTF-8 -q

else
BODY="Здравствуйте,\n
Факс в $DATETIME не получен!! Пожалуйста повторите звонок еще раз.\n\n\n
\n\n\n
С уваженем Ваш Факс ;-)\n
"

sendEmail -f $FROM_EMAIL -t $TO_EMAIL -u "Факс ОШИБКА: факс не получен" -m $BODY -s $SRV_NAME -o message-charset=UTF-8 -q
fi


вызов макроса происходит так
Код:

109 => {
Set(faxstat="Recieve");
Set(who="supermegakontora");
Set(txtinfo="7123456789");
Set(txthead="SuperMega kontora");
Set(srv_name="mail.server.ru");
Set(email="fax@server.ru");
&faxing(${faxstat},${who},${txtinfo},${txthead},${srv_name},${email});
}




да еще есть прикол (или ето фича Very Happy )
при использовании Attended transfer факсы по t38 не проходят так как задействуеца chan_local который даже и не хзанет что такое t38 ))
вот так
#179
Ха. Про chan_local прикольно.

В принципе на первый взгляд не проблема починить - понятно куда копать. Только я сейчас в зарубеже и времени нема совсем.

Added after 7 minutes:

Obi Van писал(а):
Сегодня с утра тестирую систему приёма факсов в офисе. Так вот. Были случаи не приёма факса.


а траблы с приемом на Zap каналах или на SIP/T38 ?
#180
Obi Van писал(а):

Код:

[2008-07-21 16:11:33] WARNING[10473] app_fax.c: Error transmitting fax. result=13: Unexpected message received.
[2008-07-21 16:11:33] WARNING[10473] app_fax.c: Transmission failed

В итоге факс принят. Shocked

dimas, получается также но переодически. Не пойму почему, толи нету нормального хендапа, толи еще что
вобщем ни как не разберусь Embarassed
#181
Опять же - это T38 или Zap ?
#182
t38
по Zap все замечательно
#183
dimas
Цитата:
Опять же - это T38 или Zap ?

У меня вся работа идёт по SIP + Т.38
Сегодня просматривая лог, обнаружил случаи не приёма факсов. Попутно также при тестировании столкнулся с тем, что система по-моему рановато делает HANGUP. А именно. Приём факса осуществляется на обычный факс Panasonic (модель точно не помню) и вот... ждём'c... Проходит секунд 45, потом минута, и где-то на 1 мин 20 сек начинает осуществляться приём факса. Я уже знал то, что приложение ReceiveFax ждёт примерно 30сек (из экспериментов). Также раннее это в ветке обсуждали, но так ни к чему и не пришли. Wall Таким образом получается что система не может принять этот факс. И действительно, попытки передачи факса осуществлялись удалённой стороной около 3-х раз и всё безуспешно... Насколько становится понятно есть такое факсовое оборудование, которое при передаче факса затягивает этот процесс. Вот парни возник вопросик о том, можно ли как-то продлить это время? Shocked Где и что (наверно в исходниках) мне поковырять??
Просто похоже именно это и является веской причиной того, что некоторые факсы не проходят. Evil or Very Mad А подстроиться (точнее подстроить систему) было бы желательно. Crying or Very sad
Cache спасибо за пример. Надо попробывать. Даже и не знаю, или в аел это кинуть, или в обычный конф переделать.
#184
мне кажеться можно было сделать какой нить конфиг файл для факсов где указывать сколько нужно раз поторять попытки приема(передачи) нужен ли ECM , ну и т.д. ??
#185
уверен, что такой конфиг нужен! Up
#186
Может чуть не в тот топик... но все таки хочу спросить:
А как сделать так, чтоб сначала поговорить, а потом нажать кнопку "Старт" и принять факс, и, возможно, потом еще поговорить.
Причем все это на Т38. Нужна, я так понимаю, прога типа NVFaxdetect которая при обнаружении писка перебрасывает в другой екстеншн?
Но АЖХаддонсы ставятся только на spandsp 4 pre 15 ...
У меня стоит 1.4.21.1 (Patch) + spandsp-0.0.5pre4.

Что ж делать то???
#187
дык боюсь что никак.
В принципе в chan_sip есть код который детектит писк факса, но:
1. в силу особенностей кода, он мышей не ловит. Его можно поправить чтобы ловил, но
2. когда тон пойман все что делает chan_sip это T38 switchover ЕСЛИ КАНАЛ ЕЩЕ НЕ BRIDGED. А нужно чтобы он делал переход на факс экстеншен. Это в принципе тоже нетрудно поправить, но:
3. вот во время разговора канал какраз наоборот bridged, и если и эту проверку тоже менять то я не знаю чем все кончится :=)
#188
А будет ли работать прием факса если сделать закрытый перевод вызова?
т.е. я говорю с кем то, далее перевожу на экстеншен где будет осуществляться прием факса.
такая схема пройдет?
#189
доброго времени суток.
Где-то я поймал граблю:
[CC] app_fax.c -> app_fax.o
app_fax.c:112: error: field Б─≤t38stateБ─≥ has incomplete type
app_fax.c: In function Б─≤transmit_audioБ─≥:
app_fax.c:368: error: Б─≤T38_UNAVAILABLEБ─≥ undeclared (first use in this function)
app_fax.c:368: error: (Each undeclared identifier is reported only once
app_fax.c:368: error: for each function it appears in.)
app_fax.c: In function Б─≤transmitБ─≥:
app_fax.c:597: error: storage size of Б─≤t38stateБ─≥ isnБ─≥t known
app_fax.c:620: error: Б─≤T38_NEGOTIATEDБ─≥ undeclared (first use in this function)
make[1]: *** [app_fax.o] Error 1
make: *** [apps] Error 2

И не собираются asterisk-addons-1.4.7...
#190
receivefax не принимает факсы с панасоников почему-то по t38, хотя с brother всё ок
лог прилагается




ps: OS centos 5.1
asterisk 1.4.21.2
spandsp-0.0.5pre4.tgz
#191
none, нет такого доброго времени в сутках. Равно как и злого времени нет. А у природы нет плохой погоды.

Могу рекомендовать самомочинилки -
Темного времени суток!
Светлого Вам времени суток!
Доброй полярной ночи! (вдруг в Антарктиде читают?)
#192
Доброго времени года!
(вдруг это читают зимой а я пишу летом)
но топик неправильный выбран для этого, ded, imho.
#193
Ded, у меня каждая секунда в сутках - добрая (-:
А насчёт погоды - это да (-: не бывает плохой погоды, бывает неподходящее настроение (-:
#194
ToxaP писал(а):
А будет ли работать прием факса если сделать закрытый перевод вызова?


Проверять надо... Но если blind transfer работает так же как attended (то есть через chan_local) - то не будет.
У меня в принципе есть патч который attended transfer чинит, но он для 1.6/trunk и что гораздо хуже - уже после того как я его сделал я понял что он неправильный по сути и надо делать совсем по другому. И вот как только придумаю как это "по другому" - сделаю нормальный Smile

Added after 3 minutes:

bbv писал(а):
лог прилагается


К сожалению из него ничего на понятно. Попробуй sec core debug 3 чтобы еще диагностика SpanDSP лезла.
И еще sip debug чтобы понять какая сторона звонок разрывает.
И идеально - если можно лог с ремоут стороны получить.
#195
none писал(а):
Ded, у меня каждая секунда в сутках - добрая (-:
ящетаю - дык витийствуй в соотвтветствии, с огоньком, фантазейно: Граждане форумчане! Я дарю свою каждую добрую секунду вам! А то, УГ - доброго времени суток ):
Прошу прощения у исконников за оффтопик! Суббота!
#196
Видимо, blind transfer не использует chan_local - у меня перевод на факс так и реализован, работает корректно.
#197
2 DWR: именно в T.38, так?

Added after 3 minutes:

И ты посылаешь на ReceiveFax?
#198
Ну учитывая что без лога узнать какой именно режим был использован для передачи, audio или T38 - неочевидно как он тебе ответит :=)

можно, кстати, сделать чтобы ReceiveFax переменную выставлял - FAXMODE - какой же именно режим был использован и тогда в конце ее можно будет посмотреть. Если кому надо, могу добавить.
#199
Я думаю это было бы очень удобно.
#201
2ToxaP На RecieveFAX посылаю
Не думал, что есть разница Smile
#202
А какой кодек у тебя используется в такой схеме?
#203
Не ну вопрос, как я понимаю, был в том - это аудио факс (писком, модемом) или T38. Потому как аудио факс пойдет и через chan_local споойно то есть выдержит attended transfer, а вот T38 на этом сломается.
Но понять какой режим факса был можно только глядя на лог (то есть core set debug 1 по крайней мере) потому как ReceiveFAX никак иначе режим передачи не сообщает.

С тем патчем что я на мантисе повесил, можно после ReceiveFAX переменную ${FAXMODE} вывести, там будет audio или T38
#204
Спасибо за патч dimas.

Но если кодек 729, то голосом факс ходить не смог бы, по этому можно будет уверенно сказать, что факс был в Т.38.
#205
Я панимайт.
просто если для пиров разрешено много кодеков сразу, то определить какой именно был использован - требует таких же телодвижений что и включение дебага Smile
#206
Всем привет!
Хочу поделиться практическими наработками по системе приёма факсов через приложение ReceiveFax . Введение этой системы в своей организации я произвёл примерно месяц назад. Физически работа в офисе происходит следующим образом:
FAX =>E1 => Samsung OfficeServ500 => SIP + T.38 (LAN)=> Asterisk 1.4.21.1 => Fax.tif
Так вот. В момент моего присутствия я тщательно наблюдал за её работой. Выявилось следуещее. Приём факсов с факсимильных аппаратов размещённых на АЛ станции Samsung производится отлично. Судя по всему приближаясь к
99%. Это меня обрадовало. Далее. Приём факсов с софтфона (Zoiper 2.02 linux) подключённого к Астериск также производится отлично. Проблемы возникли при приёме внешних (для нашей станции, ну и соответственно Астериска) факсов. Тут вероятность приёма упала до 80%, что оказалось очень плохо. Поскольку каждый непринятый факс, автоматически вызывал головную боль, то руководство во время моего отсутствия в отпуске, приняло решение о приостановке работы этой системы. Факсы стали принимать по "старинке" на обычные факсовые аппараты Панасоник КХ... (различные модели).
Для организации приёма факсов я рзработал концепцию, согласно которой факсы вначале принимаются на сервер с Астериск, но затем производится копирование их на главный сервер компании (хранилище данных). При этом факсам присваиваются уникальное имя сформированное из даты, номера с которого факс передали на Атстериск и дату. Проверяется наличие полученного файла на обоих серверах, определяется размер и всё это выводится в два лога. По приезду из отпуска я продолжил доработки системы. Пропатчил приложение app_fax новым патчем предоставленным Димасом (dimas спасибо!). Также я добавил в лог файлы информацию из всех переменных имеющихся в этом приложении, что на сегодня позволяет мне видеть всё необходимое. Я вижу также и причину неприёма факса из переменной ${FAXERROR}, что оказалось очень важным для отслеживания проблем. Приведу кусок рингплана:
Код:

[fax_office]
;Приём факса в общую папку
exten => 1011600,1,Set(_FAX_CONTEXT=fax)
exten => 1011600,n,NoOp(${FAX_CONTEXT})
exten => 1011600,n,Set(__Fax_dest=all)
exten => 1011600,n,Set(From1=${CUT(SIPCHANINFO(FROM)|@|1)})
exten => 1011600,n,Set(__From=${CUT(From1|:|2)})
exten => 1011600,n,Set(CDR(userfield)=${From})
exten => 1011600,n,Set(__FAXFILE=/home/alexey/FAXES/${STRFTIME(,,%Y-%m)}/all/FAX_${STRFTIME(,,%Y-%m-%d)}_${STRFTIME(,,%H-%M-%S)}_${From}.tif)
exten => 1011600,n,ReceiveFax(${FAXFILE})
exten => 1011600,n,Hangup()

[macro-fax_receive]
;******************Макрос для проверки наличия файла с факсом и отправки его на сервер ****************
exten => s,1,Set(Fax_exist=${STAT(s,${FAXFILE})}) ;проверка наличия файла с факсом с выяснением его размера
exten => s,2,NoOp(${Fax_exist}) ;вывод переменной с размером файла находящегося на локальной системе
exten => s,3,GotoIf($[${Fax_exist}>0]?4:14) ; проверка наличия файла с размером более 0 кб
exten => s,4,System(/bin/echo "FAX ${FAXFILE} with size ${Fax_exist} and ${FAXPAGES} pages from ${From} was received on server Asterisk. Fax resolution is ${FAXRESOLUTION}. Fax bitrate is ${FAXBITRATE}. Fax status is ${FAXSTATUS}. Fax mode is ${FAXMODE}." >> /home/log/asterisk/fax_receive_ok.log)
exten => s,5,System(/bin/cp ${FAXFILE} /var/spool/asterisk/fax/FAXES/${ARG1}/ 2>>/home/log/asterisk/fax_receive_err.log) ; копирование файла с факсом на сервер с выводом ошибки в лог
exten => s,6,Set(FAXFILE_TS_1=${CUT(FAXFILE|/|7)})
exten => s,7,Set(FAXFILE_TS=/var/spool/asterisk/fax/FAXES/${ARG1}/${FAXFILE_TS_1})
exten => s,8,Set(Fax_exist_ts=${STAT(s,${FAXFILE_TS})});проверка наличия файла с факсом на TS с выяснением его размера
exten => s,9,NoOp(${Fax_exist_ts}) ;вывод переменной с размером файла
exten => s,10,GotoIf($[${Fax_exist}=${Fax_exist_ts}]?11:16)
exten => s,11,System(/bin/echo "FAX ${FAXFILE_TS} with size ${Fax_exist} and ${FAXPAGES} pages from ${From} was received on server TS. Fax resolution is ${FAXRESOLUTION}. Fax bitrate is ${FAXBITRATE}. Fax status is ${FAXSTATUS}. Fax mode is ${FAXMODE}." >> /home/log/asterisk/fax_receive_ok.log)
exten => s,12,System(/bin/echo " FAX ${FAXFILE_TS} с размером ${Fax_exist} и количеством ${FAXPAGES} страниц от ${From} был получен на сервер TS. Разрешение факса = ${FAXRESOLUTION}. Битрейт факса = ${FAXBITRATE}. Статус факса ${FAXSTATUS}. Режим приёма факса был ${FAXMODE}." >> /var/spool/asterisk/fax/FAXES/${ARG1}/fax_receive_ok.log)
exten => s,13,Goto(s,17)
exten => s,14,System(/bin/echo "File ${FAXFILE} dosn'n exist on server Asterisk because ${FAXERROR}! Fax status is ${FAXSTATUS}. Fax mode is ${FAXMODE}." >> /home/log/asterisk/fax_receive_err.log)
exten => s,15,Goto(s,17)
exten => s,16,System(/bin/echo "File ${FAXFILE_TS} dosn'n exist on server TS or diferent with ${FAXFILE}!" >> /home/log/asterisk/fax_receive_err.log)
exten => s,17,Hangup()


Хочу спросить у людей, тестировавших эту систему. Каковы наиболее часто встречающиеся причины неприёма факсов? Я знаю одну очень вескую из-за которой возможно и система пока отвергнута. Она связана с временем ожидания примерно в 30сек (о чём я раннее уже упоминал). Можно ли изменить это время в сторону его увеличения. Попытки ковыряния исходников не помогли, чтения РТФМов не открыли истины. Crying or Very sad
#207
Obivan,
рано или поздно вы откроете для себя AEL и читать диалплан станет в разы легче Smile
это, конечно, оффтопик.

В течение ближайших дней-недели посмотрю как в SpanDSP подкрутить таймаут. Речь идет о времени пока ReceiveFAX пищит дожидаясь _первого контакта_ с другой стороны, правильно?
#208
Да правильно! Rolling Eyes
Насчёт AEL думаю добить факсы и перекроить рингплан. Собсно тогда он станет больше похож на программный код. Так ведь?
По поводу таймаута всё таки кажется он нужен не меньше минуты уж точно... Wall А вообще же наверно будет неплохо дать возможность это время выбирать...
#209
Собственно сидел на митинге, было скучно, поэтому;
в SpanDSP в src/t30.c
нужно найти DEFAULT_TIMER_T1 и увеличить скажем до 60000 (это миллисекунды)
в том же файле найти MAX_MESSAGE_TRIES и увеличить до скажем 10.

make install для SpanDSP. Астериск пересобирать не надо.
#210
dimas сделал всё как описано, но...."воз и ныне там" Wall Звоню просто с системного телефона. Набираю номер факса, система пищит, пищит как обычно, время подходит к заветным 23сек и..... разрыв с выводом обычного в этом случае сообщения:
Код:

[2008-08-14 19:24:22] WARNING[17864]: app_fax.c:174 phase_e_handler: Error transmitting fax. result=48: Disconnected after permitted retries.
[2008-08-14 19:24:22] WARNING[17864]: app_fax.c:622 transmit: Transmission failed

Кстати тот таймер по умолчанию был 35000, число попыток было равно 3.
Тупик.... Crying or Very sad
#211
"Disconnected after permitted retries. "

вот эта ошибка выдается при достижении MAX_MESSAGE_TRIES. там хотя бы на слух должно быть десять посылок (если сейчас в t30.c стоит 10).

Если константа увеличена с трех до 10 а число писков не выросло, я могу только предположить что что-то не пересобралось - может быть цепляется другой SpanDSP собраный в другой каталог. Альтернативно - можно попробовать пересобрать весь астериск. Но, повторюсь, у меня spanDSP цеплялся как shared library и пересборки астериска не требовалось - достаточно make & make install для SpanDSP.

Added after 48 seconds:

Ну и рестарт астериска разумеется...
#212
мне так же не помогли манипуляции с исходниками , что бы увеличить время
#213
bbv аналогично!
Бился, бился и бесполезно. Evil or Very Mad Ну во первых я слышу (и слышал до внесения изменений в Т30.с) около 5 писков. Что делал:
1) Сделал в каталоге со Spandsp команду make clean, затем правил Т30.с, далее configure, make, make install.
2) Остановил Астериск. В каталоге с исходниками Астериска make clean, потом configure, make, make install.
3) Запуск Астериска. Проверил всё работает. Позвонил на факс и..."опять 25"! Те же 5 тонов и бросок трубки по таймауту.
Эх блин! Что надо еще сделать и кому помолиться чтобы заработало. Всё времени за бубном сходить нету.... Laughing Crying or Very sad
#214
Не, ну граждане, я в чудеса не верю.
Значит у вас где-то другая либа лежит спандсп и именно она цепляется.

Давайте кто-то один поставит эксперимент. Итак, SpanDSP 0.0.5pre4 src/t30.c, строка 2566"
Код:
case T30_DIS:
/* It appears they didn't see what we sent - retry the TCF */
if (++s->retries > MAX_MESSAGE_TRIES)


сразу после комента но перед if'ом добавляем

Код:
span_log(&s->logging, SPAN_LOG_WARNING, "retry1... %d\n", s->retries);


Также строка 4438:

Код:
span_log(&s->logging, SPAN_LOG_FLOW, "T4 expired in phase %s, state %d\n", phase_names[s->phase], s->state);
if (++s->retries > MAX_MESSAGE_TRIES)


прямо перед if'ом добавляем:

Код:
span_log(&s->logging, SPAN_LOG_WARNING, "retry2... %d\n", s->retries);


make install + рестарт астериска.

Теперь на консоль астериска должны валится варнинги от SpanDSP каждый раз когда он ретраит. (то есть 10 раз). Если они не валятся - то извиняйте, то что вы компилируете, не используется ReceiveFAX.

PS: пять писков это нормально, с MAX_MESSAGE_TRIES = 3 их столько и будет.

PPS: а мы ведь правда про аудио-факс говорим? НЕ t38?
#215
dimas у меня работа осуществляется по Т.38. Мне исправления в этом файле не помогают по этим причинам? Rolling Eyes
#216
ну наверняка жти настройки только к audio mode Относятся.
только какие вы писки слышите в T38 - ума не приложу....
#217
dimas
Цитата:

только какие вы писки слышите в T38 - ума не приложу....
Shocked
Я привёл кусок рингплана выше в ветке. При звонке на номер 1011600 и достижении команды
Код:
exten => 1011600,n,ReceiveFax(${FAXFILE})

я слышу этот писк. Вначале длинный писк, затем серия "мурлыкающих" звуков в количестве 5. Т.е даются тоны CED для факса-отправителя. Так вот подача тонов производится в промежутке времени в 25сек не больше. Это время нужно изменить хотя бы до минуты. Причём при звонке на 1011688 и отработке приложения SendFax генерируются тоны CNG в течении ровно 1 мин.
#218
obivan,
раз вы звоните и слышите писк, это работа аудио-факса.
И изменения двух констант что я давал - какраз и позволяют увеличить таймаут.

Пробуйте пропатчить спандсп чтобы варнинги валились. (Я выше писал)
#219
по поводу того что в системе где-то установлена другая версия spandsp
whereis libspandsp.so
libspandsp: /usr/src/spandsp-0.0.5/libspandsp.vcproj /usr/local/lib/libspandsp.so /usr/local/lib/libspandsp.a /usr/local/lib/libspandsp.la

cat ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/lib

если делаю make uninstall spandsp то app_fax не загружается,
make install и снова всё работает из чего могу предположить что в системе больше нету утсновленной spandsp

ps: пробовал так же проводить эти же манипуляции на Iaxmodem где делал ./build.sh static что бы быть уверенным что используется нужная библиотека(менял исходники шедшие в комлекте) и ни какого изменения длительности сигналов отправки факса.
pss: насчёт сигнала CNG в t38 мне кажется должен быть слыжен так же как и в ulaw, ведь по большому счёту t38 это тот же голосовой кодек только адаптированный под факы. Если телефон подключён к шлюзу поддерживающем t38 и шлюз обнуружил сигнал факса и перевёл в t38 то всё равно сигналы факса мне кажется должны быть слышны, ведь их же как-то должне улышать факс!
#220
bbv,
соглашусь что в вашем случае либа цепляется та что надо.

Но как насчет добавить логгинга и посмотреть какие WARNING'и на консоль астериска падают?

PS: Не, T38 это не голосовой кодек.
Если схема вида ....дальняя сторона......=>шлюз=>телефон

то когда шлюз "услышит" CNG и передоговорится на T38 с дальней стороной, то все, голоса больше нет. И то что в телефоне по прежнему будет слышен писк то это только потому что шлюз зная что ему с дальней стороны идет факс по T38 будет изображать из себя обычный (T30) факс чтобы телефон принял с него факс.

Собственно это и есть работа T38 gateway - переконвертировать протокол T38 в обычный факс. С тем же успехом вместо T38 мог быть например FTP - то есть шлюз получает TIFF по FTP а дальше пищит в сторону подключенного к нему телефону изображая из себе обычный факс-аппарат.
#221
dimas
Ковырялся сегодня с утра и получил то что мне нужно. Ну во-первых я вычистил систему от ещё одного Spandsp. Различалось местонахождение как нужных заголовочных файлов, так и компонентов Spandsp. Поясню. Местонахождение файлов было таким:
1) При установке spandsp с ключом ./configure --prefix=/usr файлы были размещены в: /usr/lib и h файлы в /usr/include/spandsp
2) При установке spandsp без такового ключа установка производится в /usr/local/lib и в /usr/local/include/spandsp
Также замечу, что после установки spandsp включая изменение t30.c, была необходимость перекомпиливать Астериск. Причём он делал только манипуляции с файлом app_fax.c => app_fax.o. Налицо верная работа. Как я ожидал так и произошло. Т.е. последние изменения в файлике t30.c которые были на тот момент (DEFAULT_TIMER_T1 = 60000 и MAX_MESSAGE_TRIES = 10) дали время ожидания 1 мин и около 11 повторов. Я изменил время на 3 минуты, т.е DEFAULT_TIMER_T1 = 180000 и MAX_MESSAGE_TRIES = 40, в итоге получив ожидание в три минуты и количество повторов сигнала 35.
Код:

WARNING[6032]: app_fax.c:125 span_message: WARNING T.30 retry2... 34

УРА!!! Razz
Теперь продолжаю тестировать систему, убив одну из проблем.
#222
у меня тоже заработало ..., не думал что нужно пересобирать *(app_fax) , ведь библиотека подгружаемая и все константы хранятся в ней
#223
У меня работало БЕЗ пересборки app_fax - проверял много раз подряд.
Может вы какой-нибудь static build делали?

ну да не важно, заработало и ура.
#224
а кстати насчёт статической сборки, можно ли как-нить app_fax так собрать, ведь часто в системе несколько версий spandsp
например OSLEC, iaxmodem,recevefax и каждой проге нужна своя версия ....
#225
Весь астериск можно статически собрать - там в make menuselect в Compiler flags есть STATIC_BUILD.
Единственно что нужно это чтобы правильный SpanDSP прилинковался. Но это уже вопрос правильные флажки для configure указать...
Код:
--with-spandsp=PATH use SPANDSP files in PATH
и иже с ними.
#226
Доброго времени суток, братья!
Помогите, будьте любезны...
Ситуация следующая: есть CentOS 5.1, * 1.4.21-1+asterisk-1.4.21.1-app_fax-support-t38.patch.gz, asterisk-addons-1.4.7+patch 1.4.6, spandsp-0.0.5pre4, проделал все, описанное в данном топике, однако факсы по T38 не ходят Sad
При старте RecieveFax, при включенном дебаге, первым делом вылезает - DEBUG[1948] app_fax.c: T38 is unavailable on SIP/00018429-087ae6c8
Уже и не знаю, где рыть, может кто даст добрый совет.
В любом случае спасибо всем!
#227
Привет! Я замечу следующее. В имеющейся связке не требуется патчить аддоны астериска. Патч накладывается на сам астериск. Далее при установке в menuselect появится пункт app_fax. Таким образом при установке * это приложение будет установлено. Более того, раннее говорилось каковы условия (наличие spandsp0.0.5pre4), см. http://www.asteriskforum.ru/viewtopic.ph ... ;start=180
Откуда идёт факс? Shocked Можно подробнее описать конфигурацию. Что и как подключено к компьютеру с астериском.
#228
spandsp-0.0.5pre4 в системе стоит.
Факсы приходят с telphin'а, у нас там номер.
Звоню на него с железного факса, и переключаюсь на системный факс через ivr.
В конфигурации *1.4.19+patch, asterisk-addons-1.4.6-2+patch схема работала нормально, а вот с 1.4.21 появляется сообщение дебага, описанное выше, и WARNING[1948] app_fax.c: Error transmitting fax. result=49: The call dropped prematurely. по окончании сеанса.
В sip.conf строка t38pt_udptl=yes по отношению к telphin присутствует.
Если нужны какие либо файлы настроек могу скинуть.
Спасибо.
#229
Wind
Щас попробовал такой эксперимент. Через Телфин (подключён к астериску) позвонил с факса (он рядом со мной, подключён к АТС) на один из наших офисных городских номеров. Входящий звонок на этот номер я принял на внутренний офисный телефон рядом с собой. Далее я перевёл звонок с него на номер факса Астериска, услышал сигнал CED о готовности принять факс и нажал СТАРТ на факсе. Началась отправка факса и примерно на половине странички факс запнулся. При этом он распечатал маленький отчёт в котором указано "COMMUNICATION ERROR (43)". Затем на факсе сигнал Congestion. В консоли астериска я вижу "пробегающие" UDPTL пакеты, затем попытки повтора (retry) и снова пакеты. Затем в логе я увидел сообщение:
Код:

File /home/alexey/FAXES/2008-08/all/FAX_2008-08-19_14-53-55_297.tif dosnn exist on server Asterisk because The call dropped prematurely! Fax status is FAILED. Fax mode is audio.

Такое же сообщение возникает когда я звоню с обычного телефона, дожидаюсь сигнала CED и бросаю трубку.
Насколько понятно ситуации у нас аналогичные. Но в нашей фирме принимать звонки извне через IP-телефонию нет необходимости. Все звонки поступают на АТС через поток E1, а далее по необходимости транслируются на Астериск через VOIP по SIP. Получается что прохождение факса через Телфин проблематично.... Confused
Попутно попробовал отправить факс аналогично, но через транк Сипнета. Факс был вообще не отправлен. Астериск выдал тоже сообщение. Факс сообщил о том что: "NO RESPONSE". При этом привёл список причин (перевод): "факс-получатель занят, у факса-получателя нет бумаги, сбой питания либо другое". Это я думаю связано с тем, что у приземляющего узла в нашем городе у Сипнет нет поддержки протокола Т.38. Shocked
Задумался..... Book
#230
я бы предложил udptl включить глобально а не по отношению к телфину. Там вроде баг был что per-peer basis оно не конфигурится.
#231
Ура! Razz
Всем огромное спасибо! Проблема решилась предложенным dimas'ом решением.
Действительно перенос t38pt_udptl=yes в секцию [global] файла sip.conf кардинально исправил ситуацию.
Из запущенных только что 5-ти факсов не запнулся ни один, выборка, конечно, маленькая, но до этого не проходил не один Smile
Еще раз спасибо всем!
#232
Димас заметил ещё один момент. Ну во-первых у меня глобально стоит t38pt_udptl = true, а также t38pt_rtp = yes. При этих условиях идёт отправка примерно 30-40% странички, затем в консоли идёт retry. Где-то на 5 повторе на телефоне "congestion" и печать листика с сообщением "COMMUNICATION ERROR (43)". Я кладу трубку. При этом в Gastman я вижу активное соединение на номер факса ( тот где ReceiveFax) и продолжение повторов в консоли, пока я не сделаю Hangup ручками из контекстного меню в Gastman. Сообщение астериска при этом тоже самое. Во-вторых, если я комментирую строку t38pt_rtp = yes, то отправка факса вообще не осуществляется.
Хочу заметить что также 3 дня назад я проводил отправку факса через шлюз Grandstream 286, зарегестрированного на астериске. Работа была по Т.38. Все факсы ходили 100%. Возможно это является одной из причин неприёма факсов, если люди шлют их через VOIP операторов. Shocked
Какие будут комментарии? Sad
Возможно то, что происходит обусловлено тем "извращенским" способом отправки, что я делаю:

Факс => АТС => Астериск => Телфин => АТС => Телефон => трансфер на факс Астериска (ReceiveFax) Shocked
#233
У меня при следующей схеме:
Факс => Шлюз Dlink DVG-5004S => Asterisk (RecieveFax)
проходимость тоже была крайне высокой и с указанием t38pt_udptl=yes только в секции транка, однако через телфин не ходило...
Загадочна мать природа... Smile
#234
2 Obi Van: А ты какой трансфер используешь?
#235
Wind
Иногда требовалось полностью выключать Т.38 на астериске глобально в связи с различными проблемами. И поэтому у многих он выключен, а также потому как по умолчанию этот параметр находится в False. В нашей ситуации включение этого параметра определяется насущной необходимостью. Cool
Кстати говоря рекомендую патч который выложил Димас http://bugs.digium.com/view.php?id=13252 Smile А также отредактировать файлик t30.c из исходников spandsp 5 как предложил опять же Димас http://www.asteriskforum.ru/viewtopic.ph ... ;start=225. Очень помогает при отлове багов. Я например благодаря этому уже вижу многое.
ToxaP
Я перевожу звонок средствами офисной АТС, к которой по SIP прицеплен Астериск. Т.е я просто кидаю звонок на номер 1600. Станция знает, что это номер Астериска. Smile
#236
Obi Van,
я не понял сценарий при котором у вас не работает.
Офисная АТС выступает в виде шлюза? Или как? Что такое номер 1600? Как он заведен в Астериск?
Откуда идет факс при этом? Снаружи или с другого экстеншена офисной же станции....
#237
dimas
Станция по SIP работает с Астериском. Все те номера, которые мы хотим отправлять например на телфин, офисная АТС кидает на астериск. Номер 1600 это номер астериска (см. мой пост ) http://asteriskforum.ru/viewtopic.php?t=1761&start=225. Для целей биллинга станция добавляет к номеру 101 и итоговый номер выглядит как 1011600.
Я с обычного факса панасоник набираю номер одной из линий соответсвующей VOIP карте в АТС. Далее я набираю номер нашего офиса, но донабираю 102 чтобы звонок попал на телфин (таков рингплан астериска). Этот телефон - обычная аналоговая линия заведённая на АТС. Также эта линия имеет режим DISA (непосредственный выход на внутренние номера АТС). Но поскольку номера астериска являются для АТС "чужими" или внешними, то по DISA выйти на них я не могу. Поэтому я и выбираю номер телефона, который находится рядом со мной (возле меня телефон и факс). Далее беру трубку на этом телефоне и средствами станции направляю звонок на тот самый номер 1011600, что в этом случае дозволительно.На телефоне слышу сигнал CED от ReceiveFax астериска. Кладу трубку и этот звонок попадает на тот самый факс с которого я и хочу отправить факс. Нажимаю отправку факса. В этом случае я получается дозвонился в офис через телфин.
#238
Obi Van писал(а):
Получается что прохождение факса через Телфин проблематично....

подтверждаю что действительно, у телфина очень плохое качество прохождения факсов и что это проблема именно у них. я в свое время около недели убил на них, потом плюнули и подключились через другого небольшого провайдера, где факсы пошли без единой потери. телфин откровенно сосёт с факсами, это факт!
#239
anest
Цитата:
телфин откровенно сосёт с факсами, это факт!

Так и передам своему начальнику. Более красивой фразы и не подобрать Laughing Rolling Eyes
Сегодня в свободное время всё таки помучаю ещё систему. Надо всё же узнать какова в % вероятность приёма. В офисе необходимо, чтобы цифра была под 95%.
#240
На исход через телфин так же у меня не пошли, поставил бегать через сипнет.
А вход кажется работает стабильно, на двух проектах.
#242
andrew писал(а):
С патчем всё ок, работает во всех позах...
Начинаем мечтать о факсах Zap SIP T38 Smile

да-да, мечтаем, но это видимо уже фантастика )
кстати, а почему так плохо app_fax работает на Zap каналах ? rxfax на порядок лучше работает, а тут процент прохождения факсов ниже 30%
#243
Добрый день.

Столкнулся со следующей ситуацией:

Имеется Asterisk-1.4.21.1,+ asterisk-addons-1.4.7 + spandsp-0.0.5pre4 + asterisk-1.4.21.1-app_fax-support-t38.patch.
SIP шлюз с поддержкой T38, аппаратный факс.

При использованиии SendFax все корректно обрабатывается и факс принимается на аппарате.

При использовании ReceiveFax происходит следующее:




Код:
-- Executing [99@testfax:1] Set("SIP/100-081e1620", "FAXFILE=/var/spool/asterisk/fax/1220942925.0.tif") in new stack
-- Executing [99@testfax:2] ReceiveFAX("SIP/100-081e1620", "/var/spool/asterisk/fax/1220942925.0.tif") in new stack
[Sep 9 10:48:49] WARNING[32043]: channel.c:2414 ast_indicate_data: Unable to handle indication 19 for 'SIP/100-081e1620'
Really destroying SIP dialog 'BD21-1C59-46684815BC9C86DE7895-002@SipHost' Method: REGISTER
Really destroying SIP dialog 'BD21-1C59-466848155134F690FAF6-001@SipHost' Method: REGISTER
[Sep 9 10:49:14] WARNING[32043]: app_fax.c:170 phase_e_handler: Error transmitting fax. result=50: Disconnected after permitted retries.
[Sep 9 10:49:14] WARNING[32043]: app_fax.c:615 transmit: Transmission failed
-- Executing [99@testfax:3] Hangup("SIP/100-081e1620", "") in new stack
== Spawn extension (testfax, 99, 3) exited non-zero on 'SIP/100-081e1620'
Really destroying SIP dialog 'BD21-1C59-46750219724C304A11F3-009@SipHost' Method: ACK


опытным путем пришел к выводу что проблема кроется в spandsp
при сборке всего со spandsp-0.0.4pre18 все отправляется и принимается, но после падает астериск .

Может подскажет кто где и что подкрутить?
#244
Прикрути T38modem (или IAXmodem) и будет тебе счастье. Smile
#245
что то не совсем понял что это может дать

Added after 6 minutes:

у остальных вроде и без T38modem и IAXmodem факсы ходят Smile
#246
Это есть качественные инструменты для приема и передачи факсов.
T38modem(T38) IAXmodem(G711)

Я тестировал и rx и tx и send и receive.
Вы скорее всего ставили все по моей "инструкции" http://www.voipinfo.ru/forum/viewtopic.php?t=11180, много чего на это намекает, но вы повелись на spandsp-0.0.5, почитайте там же дальше-вы не первый кто на этом попался, обратите внимание на слова ded-а. Также в том варианте надо ставить 2 патча -на астериск и на addons-ы. Вы поменяли spandsp на 0.0.4, но могло что-то остаться в системе (сначала надо make clean ; make uninstall, потом устанавливать новую), и потом вы изначально компилировали астериск и addons-ы с 5-й версией, ну и т.п.
Если вы будете следовать той инструкции буквально (ну можете взять 1.4.21.1 Smile ), то все получится.
Можете взять 1.4.21.2 + я видел патчи (1 патч на астериск без addons-ов) в этой ветке, но старайтесь не "ошибаться".

За эти 2-3 месяца чего-то поменялось, я не особо следил за этой веткой форума, т.к. начал искать решения с "модемами", мне все эти rx-tx и т.п. не очень нравятся. "Модемы" работают более четко и чисто, их не надо постоянно "патчить", есть четкое понимание какой протокол используется (T38 или голос).
А receivefax, я обратил внимание, иногда может пищать "голосом", когда от него требуется T38, и т.п.
C модемами у вас есть больше степеней свободы: на свой вкус вы можете либо настроить Hylafax(+mail и все прочее), либо пробросить модемы в WIN по TCP/IP.
Мне было нелегко это все ставить на ноги (важный вклад сделал кстати dimas -главный специалист по проблемам receive-send fax), но вы можете использовать готовые инструкции:
http://www.voipinfo.ru/forum/viewtopic.php?t=11767
http://www.voipinfo.ru/forum/viewtopic.php?t=11467
xibatus писал(а):
у остальных вроде и без T38modem и IAXmodem факсы ходят Smile

ходют то они ходют но взгляните на размер этого топика, на количество жалоб что "не ходют", и на количество патчей, я не навязываю ничего, я вам фактически дал ответ, что надо делать чтоб у вас заработали App_fax, просто обратите внимание на альтернативный вариант.
#247
Да делал по Вашей инструкции с единственным различием что версия asterisk 1.4.21.1 , а к ней патч файл 1 и вроде как нужен spandsp-0.0.5.

Спасибо за советы. Буду пробовать.
#248
xibatus
в приведённом логе я вижу сообщение:
Код:
WARNING[32043]: app_fax.c:170 phase_e_handler: Error transmitting fax. result=50: Disconnected after permitted retries.
.
Советую почитать сообщения в ветке сверху о внесении изменений в исходники spandsp 5. Думаю стоит увеличить время и количество попыток по приёму факса.
Удачи! Smile
#249
Все таки я не пойму как Вы все настраиваете факс-сервер, кот. принимает на ReceiveFax ?
У меня тоже вот задача сочинить факс-сервер. Допустим разговаривают 2 сипа. Как одному из них "Стартануть факс" на ReceiveFax ?
Тут была версия, чтоб трансфером. Но трансфер перекидывает на другой сип а не на екстеншн, в котором написана команда ReceiveFax.
Тем более у трансфера проблемы с Т38. АДЖИ-аддонсы (в них есть команда NvFaxDetect, которая при обнаружении писка факса бросает в другой екстеншн) ставятся только под старый СпанДСП.
Вобщем шо то я не вижу выхода. Подскажите плз.
#250
скажу как реализовано у меня на app_fax

есть экстеншен для приема факса типа вот такой
ael
Код:

fax => {
FAX_STAT="Receive";
&faxing();

}
1001 => {
FAX_STAT="Receive";
&faxing();
}

fax это если сбработал detectfax на Zap канале и 1001 сам факс приема

как заметили вызываеца макрос вот этот
Код:
macro faxing () {
Wait(2);
Set(LOCALSTATIONID="7(495) XXX-XX-XXX");
Set(LOCALHEADERINFO="Supermegacontora");
if ("${FAX_STAT}" = "Receive") {
Set(FAXFILENOEXT="/var/spool/asterisk/fax/FAX_${STRFTIME(${EPOCH},,%d_%m_%Y-%H_%M)}");
FAXFILE="${FAXFILENOEXT}.tif";
NoOp(Resive FAX);
ReceiveFAX(${FAXFILE});
NoOp(reseive result ${FAXERROR});
System(/opt/fax/s --fax-status ${FAXSTATUS} -f ${FAXFILENOEXT} -p);
} else if ("${FAX_STAT}" = "Send"){
NoOp(Send FAX to ${NUMBER_SEND});
SendFAX(${FAXFILE});
} else {
NoOp(Nothing do);
}
Hangup();
}

вот там вызывается посл отправки вызываеться скрипт отсылки на мыло факса в пдф
Код:

#!/bin/bash

DATETIME=$(date +"%A, %B %d %Y, %H:%M")
while [ ${#} -gt 0 ]; do
case "${1}" in
"--file" | "-f" )
FILE=${2}
shift
;;

esac

shift
done

if [ "$FILE" = "" ]; then
echo "Error: A file is required"
exit 1;
fi
FORMAT="pdf"
FORMATNAME="Adobe Acrobat"

SOURCEFILE=$FILE.tif
DESTFILE=$FILE.$FORMAT
INFOFILE=$FILE.txt
if [ -e $SOURCEFILE ]
then
# Read data from TIFF file
PAGES=$(tiffinfo $SOURCEFILE | grep "Page" | cut -d " " -f 1)
DT=$(tiffinfo $SOURCEFILE | grep "Date")
DTFAX=${DT#*:}
FAX_PAGES=${PAGES#*-}
if [ -z $FAX_PAGES ]
then
# If didn't find a page count, use the number of occurrences of "spandsp"
FAX_PAGES=$(grep -c "spandsp" $SOURCEFILE)
if [ -z $FAX_PAGES ]
then
FAX_PAGES=""
fi
fi
BODY="Здравствуйте,\n
Был получен факс на $FAX_PAGES листах в $DATETIME от $REMOTE_ID\n
файл в формате $FORMATNAME($FORMAT) в приложении.\n
\n\n\n
С уважением Ваш Факс ;-)\n
"

tiff2pdf -f -p A4 $SOURCEFILE > $DESTFILE
#rm -f $SOURCEFILE
sendEmail -f fax@domen.ru -t fax@domen.ru -u "Факс от $DATETIME" -m $BODY -a $DESTFILE -s mail.server.ru -o message-charset=UTF-8 -q

else
BODY="Здравствуйте,\n
Факс в $DATETIME не получен!! Пожалуйста повторите звонок еще раз.\n\n\n
\n\n\n
С уважением Ваш Факс ;-)\n
"

sendEmail -f fax@domen.ru -t fax@domen.ru -u "Факс ОШИБКА: факс не получен" -m $BODY -s mail.server.ru-o message-charset=UTF-8 -q
fi


ну а как релизована отправка
это вот здесь

http://asteriskforum.ru/viewtopic.php?t=1677
вот впринципе и все

работаю по g729 (t38) SIP каналы и t30 ZAP каналы

проходимость факсов по ZAP Каналам 96 из 100 по SIP 86 из 100

я доволен пользователи тоже


на факс переключают безусловным переводом
Very Happy
#251
Способ классный, супер! Я пробовал у себя Ваш скрипт все работает отлично. Но только работу факс сервера я вижу в том, чтоб кто-то из внешнего мира позвонил на внутренний сип (через Audio Codec Mediant2000. ZAP у меня нет) и сначала поговорил с этим сипом а потом уже начал посылку факса. Вот меня интересует переход между этими фазами. Разговор -- прием факса. Что должен сделать сип клиент чтоб начать прием: набрать какую-то комбинацию, положить трубку чтоб сработал екстеншн h, или еще что-то -- вот в чем вопрос.
Цитата:
fax это если сбработал detectfax на Zap канале

это что значит? Может у меня на Аудиокодесе есть такой факсдетект?
Цитата:
на факс переключают безусловным переводом

а как переключить во время разговора? Smile
Можно конечно сделать общий городской номер для приема факсов, где ИВР будет спрашивать тебя "введи № вн. абонента, которому хочешь отправить факс".
Но это уже крайний вариант, и он сложнее первого для простого юзера, звонящего с города.

Спасибо.
#252
насколько я понял то Cache уже ответил на ваш вопрос. в его случае будет так: ответившая строна после разговора со звонящим, жмет у себя # (в трубке скажут "Трасфер") потом номер 1001 и звонящего перекинет на прием факса. ответивщий ложит трубку.
#253
допустим такж можно отловить переменую ${BLINDTRANSFER} в которой храница номер ПЕРЕВОДИВШЕГО
и создать допустим что есть хорошо email с номерами внтр телефоноф или алисы (это как кому нравится)

соотвсено передалть чуть чуть скрипт и передовать ему емайли вида ${BLINDTRANSFER}@domen.ru
ну если все правильно настроено то пришедший (или нет) факс в пдф придет в письме исключительно на адрес переводившего

а трансфер настраивться в features.conf
#254
Господа! А как быть с ZAP и app_fax? Провел первые испытания... Пока по пути E1->asterisk->app_fax в основном факсы проходят. Но возник вопрос с возможнотью получения многостраничного факса. Что требуется подкрутить в app_fax? Пока проходит только один лист и все.

Added after 15 minutes:

Уффф!!! Похоже все ещё сложненее... Tiff на выходе создается многослойный!!! Вместо многостраничного. Т.е. его разобрать можно только в GIMP/Photo Shop. А как бы его в человечном виде получить?
#255
В google ходили?
man tiff2pdf:
The program converts one TIFF file to one PDF file, including multiple page TIFF files,...
#256
Хех, понял. Тогда буду уж искать tiff2jpg. Т.к. pdf не открыв, в предпросмотре проводника не видно.
#257
JPG не будет многостраничным, в отличии от PDF или TIFF, там трудно задать понятие страницы.
#258
Научил секретарей пользоваться стрелочками прокрутки в проводнике. Проблемы с многостраничными факсами больше нет.

ГОСПОДА!
У меня схема работы телефонии на данный момент такая: E1 OfficeServ500 Asterisk SPA2102
Факсы есть и на OfficeServ и на Asterisk. Между Asterisk и множеством SPA2102 есть маршрутизируемые каналы.
Как правильно посоветуете собирать Asterisk для моей ситуации?

1. Собираю драйвера для E1 (У меня Cronyx TAU-PCI/LIGHT)
2. Собираем zaptel-1.4.12.1
3. Правим код t30.c в SPANDSP 0.0.5pre4:
define DEFAULT_TIMER_T1 = 180000
define MAX_MESSAGE_TRIES = 40
4. Собираем SPANDSP
5. Собираем Libpri-1.4.7
6. Правим код chan_sip.c asterisk-1.4.21.2:
static int global_t38_capability = T38FAX_VERSION_1 | T38FAX_RATE_2400 | T38FAX_RATE_4800 | T38FAX_RATE_7200 | T38FAX_RATE_9600 | T38FAX_RATE_12000 | T38FAX_RATE_14400;
(Или все же надо оставить T38FAX_VERSION_0 ?)
7. Устанавливаем патч asterisk-1.4.21.1-app_fax-support-t38.parch
8. Собираем asterisk
9. Собираем asterisk-addons
10. Создаем dail план.
11. Запускаем систему в тестирование.

Я ни чего не упустил?

Тут видел предложение еще править chan_sip.c
} else if (p->udptl && ( (sscanf(m, "image %d udptl t38%n", &x, &len) == 1) ||
(sscanf(m, "image %d UDPTL t38%n", &x, &len) == 1) )) {
if (t38action != SDP_T38_INITIATE || (p->owner && p->lastinvite)) {
if (debug)
ast_verbose("Got T.38 offer in SDP in dialog %s\n", p->callid);
udptlportno = x;
numberofmediastreams++;
}
} else

На что это влияет, я не понял.
#259
Venberg писал(а):
Тут видел предложение еще править chan_sip.c
} else if (p->udptl && ( (sscanf(m, "image %d udptl t38%n", &x, &len) == 1) ||
(sscanf(m, "image %d UDPTL t38%n", &x, &len) == 1) )) {
if (t38action != SDP_T38_INITIATE || (p->owner && p->lastinvite)) {
if (debug)
ast_verbose("Got T.38 offer in SDP in dialog %s\n", p->callid);
udptlportno = x;
numberofmediastreams++;
}
} else

На что это влияет, я не понял.

Ответ:
dimas писал(а):
Фактически из-за этого исправления Астериск игнорирует T38 в изначальном INVITE (но поддерживает T38 в ре-INVITE). ...это значит что начальный T38 который сообщает T38modem игнорируется, но позже когда провайдер делает reinvite на T38, астериск его принимает и делает реинвайт на ноге t38modem..

Это не предложение, а конкретное,кривоватое по выражению dimas-a решение одной конкретной проблемы касаемой конкретно t38modem. Да и то, автор модема, Вячеслав Фролов, заверил, что это поведение модема будет устранено в ближайшее время. Не стоит применять все подряд! Если с этим кодом звонить не через сипнет в российскую глубинку, а на нормальный американский факс, кот. "сразу выдаст T38" (пробовал через pulver.com на 800-е номера),то этот код сыграет злую роль, и факс наоборот не пройдет.
#260
Спасибо за разъяснение.

А с остальными правками все в силе?
И для меня остался пока не совсем понятен факт CAREINVITE. Если он не установлен в yes, то факсов на t38 я не увижу?
#261
CAREINVITE -это что?? Если вы про canreinvite=yes, то нельзя таких утверждений глобальных делать. Все зависит от конкретной ситуации. В моем случае когда я посылал факс AP200B->*->sipnet то получалась ошибка "RTP reed too short", и пришлось ставить canreinvite=yes, а для T38modem->*->Sipnet для того же астериска напротив при canreinvite=yes T38modem виснул и пришлось ставить canreinvite=no, и ошибки RTP при этом не возникло. It depends...
Да нельзя столько правок делать в таком объеме, есть конкретные задачи, в процессе их решения возникают конкретные вопросы, вы сейчас намутите, а в итоге вообще ничего работать не будет. Поаккуратней с правками.
Даже вот это вот
Код:
| T38FAX_RATE_12000 | T38FAX_RATE_14400

не всегда надо добавлять, в нек. случаях факсы и без этого у вас на 14400 будут бегать.
Знаете сколько ошибок логических и грамматических было сделано в том куске кода, что вы привели(кот. отменяет первый инвайт)-я раз 10 астериск пересобирал, пока правильно не получилось, а вы хотите все сразу и в одну кучу... Smile
#262
Мой вариант работы:
E1 OfficeServ500 Asterisk SPA2102
Факсы есть и на OfficeServ и на Asterisk.

T38modem пока не планировал ставить. В моем случае будет достаточно поставить патч на T38_fax, а про остальное можно забыть? Ну еще немного увеличить таймауты в t30.c для работы с комбайнами. Так?

Added after 12 minutes:

И еще вопрос. А текущий патчик можно ставить на asterisk-1.4.21.2? Или только на 1.4.21.1?
#263
Venberg
Цитата:
А текущий патчик можно ставить на asterisk-1.4.21.2? Или только на 1.4.21.1?

У меня стоит на 1.4.21.2 и всё шуршит Smile Насчёт таймаутов совершенно правильное решение. Не думаю что повредит. Хотя я например свою систему для приёма факсов так в офисе и не пустил повторно. Sad Дело в том, что не знаю даст ли она хотя бы 98% приёма факсов. Пускать на тест особо никто не шевелится. Фактически же я понял что слабое звено в моей системе это связка по SIP станции и астериска, по которой посредством Т.38 и бегают факсы. Приём факсов в приложение ReceiveFax с офисных аппаратов у меня под 100% Shocked
Извне я понял, что увы нет....
#264
Дима77 писал(а):


Спасибо за помощь. app_fax по E1 работает. И я не сказал бы, что плохо. Отправляю из города Ventafax -> Courier V.Everything V.90 X2. Линия довольно плохая для речевого разговора.
Передача идет на 9600. Передаю 3-4 страницы. Проходит на ура в режиме FINE. Пока правда ни 14400, ни ECM я ни разу не увидел. FAX CLASS 1,2,2.0 модемом поддерживаются.

И еще смотрел ваши интересные решения с IAXmodem, T38modem.
А не хотите ли попробовать использовать ser2net для трансляции COM портов? Ser2net есть и для Linux и для Windows. И все в свободные. С помощью него кассовое оборудование транслируют с терминальной станции на терминальный сервер с 1С.
#265
Venberg писал(а):
Отправляю из города Ventafax -> Courier V.Everything V.90 X2. Линия довольно плохая для речевого разговора.
Передача идет на 9600. Передаю 3-4 страницы. Проходит на ура в режиме FINE. Пока правда ни 14400, ни ECM я ни разу не увидел. FAX CLASS 1,2,2.0 модемом поддерживаются..

1)проверьте в венте максимальные скорость и галочки есм для передачи/приема
2)у вас факс идет голосом или по T38? Если голосом, то receivefax больше 9600 не даст. Ищите где править, я не искал. Для голоса коррекция ошибок вообще говоря желательна. Для T38 коррекция иногда поддерживается (не для всех приборов), но вообще говоря вредна и бесполезна. и часто приводит к ошибкам.
3) да не используйте вы этот fine. Видимого выигрыша не особо, а по времени в 2 раза дольше идет, изучите вот материал:
Дима77 писал(а):
bazil писал(а):

полученный tif выглядит неверно, растягивается(длинная сторона листа становится короткой и наооборот). Если этот же тиф отправить обратно на факс, то он принимается правильно т..е все пропорции возвращаются. Tif, сгереренный какой-то софтиной сканера на венде, отправить не удалось. Может кто в курсе какие тут тонкости? Какой именно формат этого тиф файла?

WIN:
Правильная софтина называется Microsoft Shared Fax Driver. Вы должны установить службу Microsoft Fax, у вас в системе появится одноименный принтер Fax. Руками вам наверно придется вылавливать этот тиф из tmp-директории, т.к. опция печать в файл не сработает, я печатаю своей программой на VB из Kodak Imaging
Код:
Form1.ImgEdit1.PrintImage 1, Form1.ImgEdit1.PageCount, OutputFormat, False, "Fax", , RezFile
где RezFile -имя файла на выходе

Установив и поковырявшись со свойствами этого принтера вы обнаружите, что он умеет делать картинки 2-х типов:
1)200х100 точек/дюйм Normal
2)200х200 точек/дюйм Fine
Вы посылаете Normal, поэтому в линуксе вы видите картинку сжатую по вертикали в 2 раза, если будете смотреть на этот файл в win, то отобразится корректно.Normal в большинстве случаев посылать правильно, т.к. разница на глаз не очень заметна, а выигрыш по времени в 2 раза.
Файлы сгенерированные Microsoft Fax пригодны для непосредственного использования в Asterisk.
LINUX:
Советую изучить скрипт email2fax
http://wpkg.org/email2fax/index.php/Main_Page, установив при этом все пакеты, которые требуются для корректной работы этого скрипта(что касается конвертаций файлов).
Обратите внимание на этот код, там содержатся команды, которые сделают вам нужного формата файл факса:
Код:

fax_is_pdf()
{
# Extract PDF attachment
ATTNAME=`munpack -C "$DATADIR" "$EMAILFILE" | cut -f1 -d " "`

# Convert PDF attachment to TIFF in a right format
# Send an explanation if conversion wasn't successful
cat $DATADIR/$ATTNAME | gs -q -sDEVICE=tiffg3 -sPAPERSIZE=a4 -r204x98 -dNOPAUSE -sOutputFile=$DATADIR/$ATTNAME.tif - >>$LOGFILE
[ $? -ne 0 ] && send_msg 1 && exit 1
}
fax_is_tiff()
{
# Extract TIFF attachment
ATTNAME=`munpack -C "$DATADIR" "$EMAILFILE" | cut -f1 -d " "`

# Convert TIFF attachment to PS, and then to TIFF in a right format
# send an explanation if conversion wasn't successful
tiff2ps -a $DATADIR/$ATTNAME -O $DATADIR/$ATTNAME.ps >>$LOGFILE
[ $? -ne 0 ] && send_msg 1 && exit 1
cat $DATADIR/$ATTNAME.ps | gs -q -sDEVICE=tiffg3 -sPAPERSIZE=a4 -r204x98 -dNOPAUSE -sOutputFile=$DATADIR/$ATTNAME.tif - >>$LOGFILE
[ $? -ne 0 ] && send_msg 1 && exit 1
}

tiffg3-это то что вам надо r204х98 -Normal, если напишите r204х196, то будет вам Fine
Дальше:
Venberg писал(а):
И еще смотрел ваши интересные решения с IAXmodem, T38modem.
А не хотите ли попробовать использовать ser2net для трансляции COM портов? Ser2net есть и для Linux и для Windows. И все в свободные. С помощью него кассовое оборудование транслируют с терминальной станции на терминальный сервер с 1С.

Я конечно взгляну, но здесь есть свои тонкости, передача факса несколько сложнее, чем кассовый аппарат.
1)С IAXmodem нормально работает только ->Sredird->Dialout\ez->FAX, собственно Sredird писался при участии разработчиков Dialout.
Другой вариант IAX...->Sredird->com2tcp->com0com->FAX рабочий, но ужасно глючный, факс мажет и как правило вылетает с ошибкой.
2) Для T38modem я бы предложил 2 схемы:
1. Asterisk(LINUX)->T38modem(LINUX)->Sredird->Dialout\ez->FAX
2. Asterisk(LINUX)->T38modem(WINDOWS)->com0com->FAX
Причем в п.2 com0com работает на удивление хорошо, опять же неудивительно,т.к. это тоже разработка Вячеслава Фролова и конкретно для этого случая писалась. Я не пробовал схему T38modem(LINUX)->Sredird->com2tcp->com0com, 50/50 что будет хорошо или плохо.
Кроме Dialout\ez и com0com я опробовал много "пионерского" софта, в т.ч. и платного, в лучшем случае факсы "пытались договориться о скорости передачи", и вы знаете, что удивительно, им это даже не удавалось. Wink
--------
я разобрался, ser2net это то же самое что sredird, причем я так понял он для линукс.
...а транслировать com-порты из win в линукс нам не надо... Wink
(ну если на то пошло http://www.tacticalsoftware.com/products/tacserve.htm ) чем не устраивает?
и вообще если честно я наловчился использовать линукс как очень полезный service для WIN, да простят меня за эти слова
http://www.voipinfo.ru/forum/viewtopic.php?t=11219 Mad
#266
Сутки автономного полета.
Автоматический прием факсов через E1 нареканий не вызывает. Многостраничные и международные факсы проходят.
Правда не знаю как посмотреть скорость соединения при передаче факсов. Скорость факса можно в лог кидать?

А с T38 пока все не удачно. Немогу настроить SPA2102 на работу по T38.
Найти бы хоть примеры для него.
#267
Может кто сталкивался с похожим траблом. Есть рабочий сервак, asterisk 1.4.21.2 который подключен к одному провайдеру по сипу. Звонки ходят нормально, но когда дозваниваюсь на факс вылазит вот такое:

WARNING[11237]: chan_sip.c:5154 process_sdp: Insufficient information for SDP (m = 'image 0 udptl t38', c = '')

не могу понять,чего ему не хватает и как исправть.
#268
У меня на филиалах стоят SPA2102 на данный момент они работают на G729a. Качество разговора вполне приличное. Иногда с московским филиалом появляется эхо и "булькание", но это из-за проблем канала интернет в Москве.
Все другие кодеки для SPA2102 отключены и на SPA2102 и на asterisk. Как запустить T38 для SPA2102 пока не совсем понимаю.
Надо включать G711a для passthru. И разрешать REINVITE. Тогда надо разрешать G711a и на стороне Asterisk.
Или я что-то недопонимаю.

Связь голосовая должна быть на G729a, а факс хотелось бы передавать по T38. Или это не возможно? И надо переходить на G711a
#269
Venberg писал(а):
Правда не знаю как посмотреть скорость соединения при передаче факсов. Скорость факса можно в лог кидать?

Примерно так,мог допустить мелкие неточности, т.к. первоисточник на сайте callweaver, оттуда и переделано:
Код:
[faxout]
exten => s,1,Set(LOCALSTATIONID=Asterisk FAX)
exten => s,n,Set(LOCALHEADERINFO=Asterisk FAX termination)
exten => s,n,Set(FAXFILE=/var/spool/asterisk/fax/test-1.tif)
exten => s,n,Answer()
exten => s,n,NoOp(NUMBER:${NUMBER})
exten => s,n,NoOp(Fax Testing*****)
;exten => s,n,Dial(SIP/${NUMBER})
exten => s,n,SendFax(${FAXFILE})
exten => s,n,Hangup()
exten => h,1,NoOp(TX: FAXSTATUS is ${FAXSTATUS})
exten => h,n,NoOp(TX: FAXERROR is ${FAXERROR})
exten => h,n,NoOp(TX: REMOTESTATIONID is ${REMOTESTATIONID})
exten => h,n,NoOp(TX: FAXPAGES is ${FAXPAGES})
exten => h,n,NoOp(TX: FAXBITRATE is ${FAXBITRATE})
exten => h,n,NoOp(TX: FAXRESOLUTION is ${FAXRESOLUTION})

[faxin]
exten => s,1,Set(LOCALSTATIONID=Navynet.it FAX)
exten => s,n,Set(LOCALHEADERINFO=Navynet SRL is a solution provider for business)
exten => s,n,Set(FAXFILE=/var/spool/asterisk/fax/${UNIQUEID}.tif)
exten => s,n,ReceiveFax(${FAXFILE})
exten => s,n,Hangup()
exten => h,1,NoOp(TX: FAXSTATUS is ${FAXSTATUS})
exten => h,n,NoOp(TX: FAXERROR is ${FAXERROR})
exten => h,n,NoOp(TX: REMOTESTATIONID is ${REMOTESTATIONID})
exten => h,n,NoOp(TX: FAXPAGES is ${FAXPAGES})
exten => h,n,NoOp(TX: FAXBITRATE is ${FAXBITRATE})
exten => h,n,NoOp(TX: FAXRESOLUTION is ${FAXRESOLUTION})

Насчет вывода в лог, я этот вопрос поднимал, отлистайте эту ветку на несколько страниц назад, люди давали грамотные советы.

Venberg писал(а):
А с T38 пока все не удачно.

Ну если голосом все работает и качественно, то зачем вам T38? Ради академического интереса?
...если канал позволяет, то g711 чем не устраивает?

Alexandr писал(а):
WARNING[11237]: chan_sip.c:5154 process_sdp: Insufficient information for SDP (m = 'image 0 udptl t38', c = '').

Видел такое, знаю что плохо и факс кажется при этом не проходит. Почему не выяснял.
#270
Дима77 писал(а):

...
Код:

[faxin]
exten => s,1,Set(LOCALSTATIONID=Navynet.it FAX)
exten => s,n,Set(LOCALHEADERINFO=Navynet SRL is a solution provider for business)
exten => s,n,Set(FAXFILE=/var/spool/asterisk/fax/${UNIQUEID}.tif)
exten => s,n,ReceiveFax(${FAXFILE})
exten => s,n,Hangup()
exten => h,1,NoOp(TX: FAXSTATUS is ${FAXSTATUS})
exten => h,n,NoOp(TX: FAXERROR is ${FAXERROR})
exten => h,n,NoOp(TX: REMOTESTATIONID is ${REMOTESTATIONID})
exten => h,n,NoOp(TX: FAXPAGES is ${FAXPAGES})
exten => h,n,NoOp(TX: FAXBITRATE is ${FAXBITRATE})
exten => h,n,NoOp(TX: FAXRESOLUTION is ${FAXRESOLUTION})



А разве после ReceiveFax не exten => h,1,.... начинает выполняться?
rx-fax точно так работал. Пришлось городить сложную обработку h,1 с флагами для распихивания факсов с разных линий по разным папкам отделов на файловом сервере.

Дима77 писал(а):

Ну если голосом все работает и качественно, то зачем вам T38? Ради академического интереса?
...если канал позволяет, то g711 чем не устраивает?


Ценой стоимости трафика через канал интернет. G729a дает приемлемый расход трафика, а c G711a уже перебор по цене.
У меня все филиалы повязаны по VPN с центральным офисом. Абонентская плата в каждом офисе включает 1Gb трафика. Большая часть уходит на терминальные соединения рабочих мест с центральным офисом. При G729a добавляется небольшой дополнительный расход трафика, зачастую сумарно вписывающийся в пред оплаченный 1Гб. А с G711a расход трафика почти удваивается.
#271
Venberg писал(а):
А разве после ReceiveFax не exten => h,1,.... начинает выполняться?
rx-fax точно так работал.
и т.д.и т.п.
Я вам честно сказал что этот код содран с rxfax-callweaver, я его чуть переделал, на экран он по крайней мере какую-то информацию выдает.
Сильно вникать чего там писать в контексте и как это выводить в лог я не стал, т.к. та статистика, что выводилась на экран (особенно когда не OK), мне не понравилась. Меня правда больше интересовала исходящая статистика. И тесты, что я проводил с AP200B навели меня на мысль что выводимая статистика сильно глючная, т.е. напр. факс прошел OK, а эта хрень пишет какую-то глупую ошибку. Отлистайте эту ветку форума, поймете о чем я.А уж если факс прошел не до конца(но прошел с большой вероятностью), то вообще беда. Вы представьте ситуацию, что вы посылаете кому-то факс, он проходит, но без подтверждения(может целиком, может 3/4, может 1/2)а ваш тупой сервер просто считает что не прошел, а у него 10 попыток поставлено, и 10 раз подряд досылает эти 3/4 страницы. Реакцию на отмотанный рулон "туалетной бумаги" на той стороне представили? Эту ошибку корректно умеет отрабатывать только VentaFax (Er20:Ошибка разъединения)-а уж вам решать чего с этой ошибкой делать.
Если вас интересуют в основном входящие звонки и при этом T38, можете смело смотреть в сторону T38modem, ибо на входящих с ним вообще проблем нет, даже через астериск. Все проблемы, кот. надеюсь решатся в ближайшее время, связаны с исходящими звонками с модема, в силу нек. недоработанности астериск в плане T38, и в силу нек. особенностей самого модема, как-то t38 в первом инвайт + неумение работать с паролем, что в общем-то завязывает его на астериск, ибо только астериск умеет принимать звонки от клиента, кот. не умеет сообщить пароль,да еще и не умеет регистрироваться, и именно у астериска проблемы с исходящим T38 от модема.
А факс-статистику вы уже будете тогда вынимать не из астериска, а из своей обычной факс-программы(сервера). Я напр. из венты научился извлекать из логов все что мне нужно лет 8 тому назад, задолго до появления всего того о чем здесь говорится.
P.S. Единственно, я пока не разбирался, как модем относится к кодекам отличным от G711, но мне кажется вопрос решаемый, надо смотреть какие кодеки поддерживает OPAL, и как это взаимодействует с модемом и с астериском.
#272
Мне надо по такой схеме факс отправить E1 -> asterisk -> G729a/T38 -> SPA2102 -> железный факс бухгалтера.
И с этим я пока не знаю как разобраться. Точнее у меня нет правильных настроек SPA2102 для работы G729a/T38

Added after 26 minutes:

Господа!
Может быть я туплю... Но моя схема вообще имеет право на жизнь?

FAX -> E1/G711 -> asterisk -> G729a/T38 -> SPA2102 -> FAX

Разве теперь asterisk умеет конвертировать факс G711 в T38?

Added after 47 minutes:

Нашел очень интересную ссылку по моим изысканиям.http://bugs.digium.com/view.php?id=12931
#273
Venberg , посмотрите здесь по поводу настройки SPA2102
http://asteriskforum.ru/viewtopic.php?p=17214#17214

Цитата:
моя схема вообще имеет право на жизнь?
FAX -> E1/G711 -> asterisk -> G729a/T38 -> SPA2102 -> FAX


такая имеет право на жизнь только с APP FAXGATEWAY
#274
А не в курсе что это вот такое?

Код:
[Sep 25 15:31:11] WARNING[27268]: udptl.c:807 ast_udptl_new_with_bindaddr: No UDPTL ports remaining


Последним временем очень часто валиться в консоль. Проблем вроде не создает (по крайней мере никто пока не жаловался), но раньше такого небыло.

Сервер:
Ксеон 4 ядра
Федора 9 64бит
* 1.4.21.2
Spandsp 5 + патч для т38
#275
c0rnoTa писал(а):
Venberg , посмотрите здесь по поводу настройки SPA2102
http://asteriskforum.ru/viewtopic.php?p=17214#17214

Цитата:
моя схема вообще имеет право на жизнь?
FAX -> E1/G711 -> asterisk -> G729a/T38 -> SPA2102 -> FAX


такая имеет право на жизнь только с APP FAXGATEWAY

Ваша ссылка для G711. А я именно от G711 и хочу уйти. У нас цены на интернет в торговых центрах пока безбашенные.
APP FAXGATEWAY я пока не слышал и не видел. А существует ли?
#276
Всем привет! Вышла новая версия * 1.6 у которой в стандартной поставке присутствует app_fax. В связи с чем возник вопрос: пробовал ли кто уже? Каковы впечатления?
Я в понедельник себе поставил на Debian lenny. Библиотеки использовал spandsp5 (с внесением изменений в t30.c, которые упоминались выше в ветке). Попробовал, вроде всё работает, факсы принимаются. Также производится вывод в консоль сообщений о количестве попыток приёма как раньше. Единственное, что хотелось бы в текущий момент (да собсно и раньше), это то, чтобы после приёма факса в файлик производился возврат к разговору. Ну например, чтобы реализовать оповещение человека, отправившего факс, о том, что факс принят и т.д. А так производится hangup.... Ну а далее известные всем конструкции с екстеншеном h и дальнейшей вознёй. Crying or Very sad
#277
ты пробовал факс по Т.38 ?
#278
noize
Вот я передавал факс с Samsung OfficeServ500 на * и вот что появилось у меня в файлике лога:
Код:

FAX_2008-08-20_15-53-10_208.tif with size 19096 and 1 pages from 208 was received on server Asterisk. Fax resolution is 3850. Fax bitrate is 9600. Fax status is SUCCESS. Error is ! Fax mode is T38.

Все значения в этом сообщении система берёт из переменных приложения app_fax. Вот кусок рингплана, который это делает:
Код:

...
exten => s,4,System(/bin/echo "FAX ${FAXFILE} with size ${Fax_exist} and ${FAXPAGES} pages from ${From} was received on server Asterisk. Fax resolution is ${FAXRESOLUTION}. Fax bitrate is ${FAXBITRATE}. Fax status is ${FAXSTATUS}. Error is ${FAXERROR}! Fax mode is ${FAXMODE}." >> /home/log/asterisk/fax_receive_ok.log)
...

Как видно в переменной ${FAXMODE} формируется Т38.
Такое же происходит, если слать факс из софтфона Zoiper. Если например я брошу трубку, задержу лист на факсе, то в переменной будет уже audio. Ну и факс принят не будет....
Rolling Eyes
#279
а самсунг как к астеру цепляется?
#280
По SIP, через офисную сетку. У станции стоит VOIP MGI3 карта с 8 SIP линиями, у астериска две сетевые карточки. Одна смотрит во внутреннюю сеть, другая во внешний мир (для VOIP операторов). Вот и вся связь. Smile
#281
Кто-нибудь пользовался T38 Gateway?
http://bugs.digium.com/view.php?id=13405
irroot говорит, что работает на портированном 1.4.22.
#282
пробовал патч asterisk-1.4.21.1-app_fax-support-t38.patch на 1.4.22 -)
от количества HANK FAILED был в шоке. chan_sip поправить смог, а вот configure не осилил BigGrin3
#283
c0rnoTa
Тоже патчил 1.4.22, и ничего не вышло. Как раз в тот момент приняли решение перелезть на версию 1.6, благо там app_fax уже обитает в исходниках. Кстати и работает вроде нормально. Сильной нагрузки не давал, но 2-3 одновременных факса с офисных телефонов на станции Samsung OfficeServ500 проходили. Сейчас с одмином прикручиваем web-интерфейс, в котором будет вестись учёт принятых факсов. Получение факсов по мылу, как и конвертация в pdf не устроили руководство. Да сосбно в нашей ситуации работать с tiff гораздо удобнее. Так что будет что-то самописное, заточеное под нас. Готового что-то не находил в инете.
Сейчас выясняю особенности работы sip voip карты в общем и с астериском в частности. Есть большое желание сделать прохождение факсов наиболее вероятным и беспроблемным во внутренней сети, а насчёт внешки уже буду долбаться потом. Потому как увы всё не так хорошо... Sad
#284
Obi Van писал(а):
Есть большое желание сделать прохождение факсов наиболее вероятным и беспроблемным во внутренней сети,
и по итогам - снести наконец электропочту во внутренней сети, Спам задолбал!
#285

Кто поможес с пачем fax_app для 1.4.22 и для 1.6

Кто поможес с пачем fax_app для 1.4.22 и для 1.6
еще вопрос будут ли факсы ходить по G729 если есть решение дайте совет
#286
Зачем тебе факсы по 729 кодеку. Модулированный сигнал после кодирования раскодирования в G729 едва-ли хоть один факс поймет, он после этих манипуляций превращается в что-то похожее на белый шум, информационную составляющую разобрать невозможно. Если по SIP-у тока факсы шлешь, то чем не устраивает t38 pass-thru ?
#287
alexpn
Для астериска 1.6 патч не нужен, т.к приложение app_fax присутствует в стандартной поставке. Непременным условием для сборки является присутствие в системе установленного spandsp. При выборе компонентов через make menuselect, приложение app_fax показывает свою зависимость от spandsp.
Кодеки со сжатием как например g729 не позволят передать факс. Увы. Годится либо g711, или как упомянул ZloMurz посредством Т38.
#288
а у меня вот такой вопрос. По идее, если в make menuselect присутствует app_fax, то после сборки, в системе должен появиться app_faxrecieve или что то типа того. Но у меня он не появился Sad
#289
В системе должен появится app_fax а не _faxreceive.
А приложения, которые предоставляет app_fax.so - это ReceiveFax и SendFax
#290
noize
ReceiveFax, как и SendFax это компоненты app_fax. Можно даже заглянуть в исходники app_fax.c чтобы в этом убедиться. Smile
#291
core show applications показывает, что аппликейшена fax в системе нет, хотя при сборке он точно был.
#292
Application называется RecivieFax/SendFax, а не fax
#293
видимо, я какой то не тот патч наложил. Ничего подобного в системе нет. Хотя app.fax.* в исходниках астериска присутствует. Скажите, с какой версией spandsp нужно астериски собирать? У меня стоит spandsp-0.0.5pre4
#294
разные версии надо собирать с разным spandsp.

Давай определимся - какой Астериск? Из того что нужно накладывать патч, я так понимаю что 1.4, правильно? И патч взять из этого топика. да?
И что говорит make menuselect если заглянуть в Applications - есть там app_fax? как он отмечен, звездочкой или XXX ?
#295
asterisk-1.4.21.1
asterisk-1.4.21.1-app_fax-support-t38.patch
spandsp-0.0.5pre4.tgz

OS - Debian 4.0

app_fax звёздочкой

Added after 18 minutes:

сейчас попробовал на Centos-5.2, те же яйца
#296
noize
Какая версия астериска ставится начни с этого? В версии 1.6 app_fax присутствует в исходниках и как говорил выше ничего патчить там не надо! Spandsp у меня стоит версии 0.0.5pre4. Последовательность установки такая:
1) Система + все библиотеки;
2) DAHDI (Zaptel);
3)spandsp
4)Asterisk;
4)Asterisk addons;
#297
Obi Van, выше написал. Ставил все библиотеки, что рекомендованы на voip-info.org, плюс пакеты для spandsp(libtiff, etc.)
Ставилось всё из репозиториев системы(кроме spandsp и всего сопутствующего астериску). Я просто подозреваю, что где то что то пропустил, может какой то пакет не доставил, или не той версии. Но вроде как всё, что было рекомендовано в этой теме, установлено.
#298
1. надо проверить что app_fax.so присутствует в каталоге куда модули ставятся
2. рестартануть астериск и заглянуть в лог, поискать там app_fax
3. посмотреть на что ругается. С какой-то вероятностью на то что file not found - то есть оно не может зацепить либу spandsp. Тогда надо в ldconfig прописать путь к ней...
#299
черт возьми, действительно косяк мой. Проверил app_fax на зависимость библиотек, библиотеки spandsp не хватало в /lib . Спасибо за помощь
#300
Добрый вечер. Прошу прощения, возможно мой вопрос покажется вам крайне глупым, но все же...
Имеем следующую ситуацию:
Факс Panasonic -> Dynamix ATA-S1 -> Asterisk -> sipnet -> pstn -> факс
Конфигурация Asterisk-сервера:
CentOS
Asterisk 1.4.21.1(с наложенным патчем взятым из этой темы)
Asterisk-addons 1.4.7
spandsp-0.0.5pre4
На voip-шлюзе в настройках установлена поддержка Т.38.
При попытке передачи факса, тот не хочет идти по Т.38.
при поиске в логах обнаружил такую строчку:
DEBUG[2757] chan_sip.c: Peer doesn't provide T.38 UDPTL
Не подскажите в чем может быть дело?
#301
Ну ясное дело, что "Dynamix ATA-S1". И докозательство этому "Peer doesn't provide T.38 UDPTL".

И вобще, динамиксы далеко не хорошие железки.
#302
спасибо большое за ответ. еще такой вопрос: насколько удачно у вас проходят факсы через сипнет на тфоп?
решил не заморачиваться, поставил астер 1.6 и у меня вообще ни один факс не прошел. в 1.4.21 хоть по 711 кодеку проходили(хотя и не все, поэтому и пытался настроить Т.3Cool.
#303

H323

Добрый день! К сожалению не успел прочитать всю тему. (да и поиск не очень работает)
меня интересует возможность передачи факса (естественно по T38) с канала h.323 на SIP или ZAP. Девайсы SIP могут реинвайтить на T38 за H323 стоит долбанная Avaya с более кривой реализацией h323 чем в астере....
П.С. Да забыл добавить пока версия 1.2 на ZAP свой драйвер под другую сигнализацию..
#304
В версии 1.2 можно вобще забыть про T.38.
#305
ToxaP писал(а):
В версии 1.2 можно вобще забыть про T.38.

Хорошо пусть будет 1.4 или даже 1.6. Не думаю что h.323 там реализован лучше (похоже на него забили совсем). Забыл еще спросить в 1.4 есть аналог h323 T120 для модемов..
#306
T.38 в астериске поддерживается и работоспособна только в SIP. И точка.
#307
Всем привет . Aster 1.4.21.1, asterisk-1.4.21.1-app_fax-support-t38.patch, asterisk-addons-1.4.6+asterisk-addons-1.4.6-app_fax-t38.patch, звездочка напротив app_fax
Выдает ошибку

Код:

[CC] app_fax.c -> app_fax.o
app_fax.c:112: ошибка: поле 't38state' имеет неполный тип
app_fax.c: В функции 'transmit_audio'
app_fax.c:368: ошибка: 'T38_UNAVAILABLE' undeclared (first use in this function)
app_fax.c:368: ошибка: (Each undeclared identifier is reported only once
app_fax.c:368: ошибка: for each function it appears in.)
app_fax.c: В функции 'transmit'
app_fax.c:597: ошибка: storage size of 't38state' isn't known
app_fax.c:620: ошибка: 'T38_NEGOTIATED' undeclared (first use in this function)
make[1]: *** [app_fax.o] Ошибка 1
make: *** [apps] Ошибка 2


уже пересобирал всё несколько раз
#308
А spandsp какой?

Нужен 0.0.5pre4
#309
да, spandsp 0.0.5pre4
#310
выглядит так будто астериск не пропатчен.
и наверняка его после патча make install заново надо...
#311
астериск пропатчен, при установке стоит * напротив app_fax, далее ставлю aster_addons_1.4.6, предварительно наложив патч t.38 (также * напротив app_fax), и вот тут появляется эта ошибка... без аддона пробовал звонить с консоли на 333:

WARNING[8974]: app_fax.c:170 phase_e_handler: Error transmitting fax. result=48: Disconnected after permitted retries.
WARNING[8974]: app_fax.c:615 transmit: Transmission failed

А если с телефона - то сигнала факса не слышно, тишина.
[defaults]
exten = 333,1,Goto(fax,1)
[fax]
exten = fax,1,Answer
exten = fax,2,Set(FAXFILE=/var/spool/asterisk/fax/${CALLERID(num)}.tiff)
exten = fax,3,ReceiveFAX(${FAXFILE})
exten = fax,4,Hangup
#312
я теряю нить.
Разве патч Cache не добавляет app_fax в сам астериск? Зачем аддонсы тогда?

Если позвонить на ReceiveFax обычным телефоном, должно пищать.
Вы небось SIP-фоном звоните? У вас internal timing включен или выключен?

Added after 5 minutes:

Для очистки совести поставьте перед ReceiveFax что-нибудь типа Playback и позвоните.
Слышно ли то что playback играет? что происходит потом когда receivefax стартует?
#313
а ни кто не может выложить патчик для faxgateway для текущих версий астериска, а то что-то не спешат его добавлять, а так не хватает этой чудной возможности!
#314
2dimas: всё заработало, собрал всё с нуля, и аддонсы действительно не нужны, зациклился на них)
#316
да пробывал пока сыровато

из 100 всего 20 прошло факсов

думаю допилять
#317
А есть у когонибудь патч для 1.4.22 версии ?
#318
отцы, в другом разделе уже задавал вопрос, но оказалось, что тут прямое отношение к app_fax..
Ситуация: 1.4.21.2 + app_fax + spandsp-0.0.5pre4. Прием факсов с помощью ReceiveFAX.
В FXS-шлюзе 2 факс-аппарата: HPшное МФУ и Panasonic'овский kx-ft72. Факсы гоняю по 711му кодеку. с HP'шного прием факсов 100%, с панасоника не работает. Методом экспериментов стало ясно, что проблема во взаимодействии app_fax и панасоника. С панасоника на HP факсы ходят.
Астериск выдает такую ошибку:
[Dec 19 18:59:06] WARNING[22888]: channel.c:2414 ast_indicate_data: Unable to handle indication 19 for 'SIP/104-0824ba10'
На всякий случай дебаг app_fax'а при попытке принять факс с панасоника: http://paste.org.ru/?4bbqb0
#319
шлюз какой?
#320
D-Link 5402SP
#321
У меня похожая проблема как и у OrNix
при приеме факса пишет Unable to handle indication 19 for
indications взял самый последний который indications.conf. sample
проблема осталась
Может у кого есть какие мысли куда копать
#322
ну Unable to handle indication это не проблема. Просто маленький баг в chan_sip.c
хотите убрать - отредактируйте chan_sip.c: найдите в районе строки 4058
код

Код:
default:
/* Do nothing. Present here just to avoid compiler warnings about not handled enum values */
break;
}
}
res = -1;
break;


и удалите res=-1 перед break.

Но хочу вас предупредить что это никак не поможет. Кроме как этот варнинг в лог этот res ничего не дает. Сам app_fax пезультат игнорирует.
#323
други, на Asterisk-1.4.23-rc3 патч app_fax будет?
#324
приветы. есть астер 1.4.21.1+asterisk-1.4.21.1-app_fax-support-t38.patch , есть 4fxo шлюз, который принимает звонки с города, на одной линии настроено так

- настройки шлюза:
T.38(FAX) support: Enabled
T.38(FAX) ECM: Enabled
FAX redundancy depth: 2

- sip.conf:
[1001]
context=from-pstn1

- extensions.conf:

[from-pstn1]
include=fax
exten=s,1,Answer()
exten=s,2,Goto(fax,1)

[fax]
exten = fax,1,Answer
exten = fax,2,Set(FAXFILE=/var/spool/asterisk/fax/${CALLERID(num)}.tiff)
exten = fax,3,ReceiveFAX(${FAXFILE})
exten = fax,4,System('mail -s ${FAXFILE} -c bla-bla-bla@bla.bla')
exten = fax,5,Hangup

Вот что валится в логи при попытке приёма:
[Jan 27 11:11:46] WARNING[11303] app_fax.c: Only generating 240 samples, where 320 requested

помогает только stop/start *, иначе эти сообщения валятся без конца

в чем может быть проблема?
#325
Поделюсь своим опытом касательно саюжа под FreeBSD.
Путем многодневных мук и самобичеваний было найдено решение как заставить app_fax работать без косяков и падений астериска.

1. касательно spandsp - текущая версия порта 0.0.5p3, а потому пришлось немного поколдовать и сделать новый порт для spandsp-0.0.5p4 (см. прикрепленный файл):
Код:
#cd /
#tar -zxf .../spandsp-devel54.tgz
#cd /usr/ports/comms/spandsp-devel54
#make install

2. патча для текущей версии порта астериска я не нашёл, поэтому взял порт от 7.0 релиза фряхи (asterisk-1.4.21.2).
3. на этот порт спокойно лег патч asterisk-1.4.21.1-app_fax-support-t38.patch (см. в предыдущих комментариях):
Код:

#cd /usr/ports/net/asterisk
#make extract
...
#cd work/asterisk-1.4.21.2/
#cp /tmp/asterisk-1.4.21.1-app_fax-support-t38.patch asterisk-1.4.21.1-app_fax-support-t38.patch
#patch -p0 < asterisk-1.4.21.1-app_fax-support-t38.patch
...
#make install

4. ну а дальше всё как обычно:

Код:
exten => _777, 1, GoTo(fax,s,1)

[fax]
exten => s, 1, Answer
exten => s, n, Set(FAXFILE=/var/spool/asterisk/fax/${CALLERID(num)}-${UNIQUEID}.tif)
exten => s, n, ReceiveFax(${FAXFILE})
exten => h, 1, System(/usr/bin/uuencode /var/spool/asterisk/fax/${CALLERID(num)}-${UNIQUEID}.tif ${CALLERID(num)}-${UNIQUEID}.tif | /usr/bin/mail -s "Fax from ${CALLERID(num)}" -E mail@domain.com)
exten => h, n, Hangup
#326
dimas писал(а):
ну Unable to handle indication это не проблема. Просто маленький баг в chan_sip.c
хотите убрать - отредактируйте chan_sip.c: найдите в районе строки 4058


Напиши пожалуйста название функции где этот код, и код пополнее (верхних строчек на 5 более) плз.
#327
... а лутше сразу патч Smile
#328
Кстати, про патч - а на asterisk-1.4.23.2 t.38.patch можно попросить ?
Rolling Eyes
#329
Здравствуйте!
Решил я тут факсы попринимать на мейл Very Happy
Вобщем, я так понял на AsteriskNow это никак не реализовать?
Попробовал поставить Ubuntu 8.04 и обнаружил в репозитариях его Asterisk-1.4.17~dfsg-2ubuntu1, а еще там же оказался и app_fax (что меня сильно порадовало)!! Вобщем, поставил я всё это (*, app_fax, ну и естесна libtiff & spandsp).
В итоге, я хотел получить факсы на емейл, ну а в последствии и емейл на факс.

Принять факс у меня получается, но только rxfax вылетает с ошибкой (дальше контекст никак не хочет выполняться)... То есть Файл *.tif создается (читабельный и красивый), * вроде не падает, но вот отправить этот принятый факс не получается, т .к. rxfax вылетает из контекста с такими ошибками:
Код:
WARNING [5782]: channel.c: 3059 set_format: Unable to find a codec translation path from ulaw to unknown
WARNING [5782]: app_rxfax.c: 340 rxfax_exec: Unable to restore read format on 'IAX2/XXXX'
--Hungup 'IAX2/XXXX'

эта проблема решабельна? В интернете никакого решения не нашел...

П.С.: может можно как-нибудь продолжить выполнение контекста, после смерти RXFAX? Crying or Very sad
#330
1) После наложения патча на астериск (выше обсуждается в этой ветке) появляется возможность использовать приложения SendFax/ReceiveFax. Смысл использовать txfax/rxfax?
2) Есть вариант поробовать поставить версию астериска 1.6, где так сказать "все работает из коробки". Там, например, после исполнения приложение ReceiveFax не обрывает канал (Hangup) как это было ранее (в 1.4), а даёт возможность выполнять следующие команды в контексте. Smile
3)Судя по всему Астериск не может переключиться из ulaw в другой формат (Т.38. Астериск патченый?)
4) Есть подозрения что в канале IAX2 работа этих приложений невозможна по Т.38, о чем говорил IgorG ранее:
Цитата:
T.38 в астериске поддерживается и работоспособна только в SIP. И точка.

Ветку эту надеюсь читали? Shocked
У меня например имеется такая связка: Asterisk 1.6.06 + spandsp 0.0.5pre4(с измениями в Т.30.с) + Dahdi 2.1.04 + Dahdi tools 2.1.0.2. Факсы принимаются в контекст где отрабатывает команда ReceiveFax, затем после сброса в макросе производятся остальные манипуляции. Планирую на днях прикрутить оповещение о удачном приёме факса (понравилась идея), потом преобразование в pdf (раньше не нужно было, сейчас сделаю), скорее всего отправку на мыло и в жабер. В общем идей полно Rolling Eyes
#331
Не, другое имел в виду. Smile Я поставил Ubuntu и из репозитариев поставил убунтовский * и апп_факс. * - работает, RxFax принимает факсы, НО умирает после принятия с вышеописанными ошибками (причем не важно по какому каналу, будь то IAX2, будь то SIP). (файл факса - читабельный и юзабельный). Просто думал, может кто-нить этой фигней страдал с Убунту. В принципе мне пофиг на ошибку RxFax, мне нужно каким-то образом продолжить выполнение контекста, чтобы это файлик факса отправить по почте... (почта настроена и работает правильно, если что)

Так, про SendFax/ReceiveFax можно ссылочку на пост, а то тут туева хуча страниц в теме - долго искать Smile

Так значед * 1.6 уже сразу работает с факсами (принимает/отсылает)? И ничего не надо патчить/хакать/править/ковырять/танцевать с бубном/приносить жертвы???
#332
contramundum писал(а):
тут туева хуча страниц в теме - долго искать Smile


А искать не надо. Нужно прочитать. Всю.
#333
Ладно, я понял.
Вобщем, никто с такой проблемой не сталкивался и, соответственно, решения нет и не будет.
#334
и снова здравствуйте! Very Happy
Установил * 1.6.0.6 и пытаюсь получить факс
Когда выполняется: exten=s,n,receivefax(${FAXFILE}) по IAX2 каналу, то в логи сыпется много-много iax2_read: I should never be called!
причем, если звонить по IAX на другие номера - все нормально, если звонить по SIP на Receivefax, то тоже все нормально... что это такое? в гугле про решение этой проблемы ничего нет... Crying or Very sad
ПАМАГИТЕ!! Crying or Very sad


Последний раз редактировалось: contramundum (Пн Мар 23, 2009 11:26)
#335
На asterisk-1.4.24 патч не лезет, если вручную - несобирается:

Код:

[CC] udptl.c -> udptl.o
udptl.c: In function âudptl_build_packetâ:
udptl.c:543: error: âoption_debugâ undeclared (first use in this function)
udptl.c:543: error: (Each undeclared identifier is reported only once
udptl.c:543: error: for each function it appears in.)
udptl.c: In function â__ast_udptl_reloadâ:
udptl.c:1226: warning: unused variable âconfig_flagsâ
make[1]: *** [udptl.o] Error 1


Confused
#336
contramundum писал(а):
и снова здравствуйте! Very Happy
Установил * 1.6.0.6 и пытаюсь получить факс
Когда выполняется: exten=s,n,receivefax(${FAXFILE}) по IAX2 каналу, то в логи сыпется много-много iax2_read: I should never be called!
причем, если звонить по IAX на другие номера - все нормально, если звонить по SIP на Receivefax, то тоже все нормально... что это такое? в гугле про решение этой проблемы ничего нет... Crying or Very sad
ПАМАГИТЕ!! Crying or Very sad


Ну ясное дело, выше же написано, что в IAX нет поддержки Т.38, поэтому Вам в лог и сыпется: "... и больше сюда не звони!"
Используйте T.30 c ulaw/alaw, чтобы астериск даже и не подозревал про передачу факса BigGrin3

А, кстати, знатокам вопрос. Помниться, была софтинка еще к 1.2.х efax и с ней же T38modem, котоырй использовал IAXовый peer. Как это объяснить?

Еще из интересного, на #asterisk до сих пор многие спрашивают app_rx(tx)fax Smile причем, проблема найти последние *.c, т.к. в и-нете их с софт свитча удалили. Когда я сказал, что все уже давно используют на 1.4.22.х app_fax (а автору нужно было именно на нём), мне сказал "ты что? Это в 1.6! ты что?". Вот так вот. Может по телефонизации мы и отстаём, но по технологиям - в ногу Smile

Added after 6 minutes:

Obi Van писал(а):

2) Есть вариант поробовать поставить версию астериска 1.6, где так сказать "все работает из коробки". Там, например, после исполнения приложение ReceiveFax не обрывает канал (Hangup) как это было ранее (в 1.4), а даёт возможность выполнять следующие команды в контексте. Smile


Это если caller раньше трубку не положит Smile или я ошибаюсь?
#337
c0rnoTa
Если звонящий положит трубку, то продолжает выполняться цепочка команд в h экстеншене Very Happy
У меня щас новый глюк появился непонятный. Произвожу приём факса, всё как обычно файлик складывается в папку с факсами. Но! При этом в переменных ${FAXPAGES}, ${FAXRESOLUTION}, ${FAXBITRATE} пустота, а в переменной ${FAXSTATUS} значится FAILED, а в ${FAXERROR} появляется "Unexpected message received". Shocked Что за хренота случилась ума не приложу! Evil or Very Mad Из этих переменных у меня формируется выхлоп в log файл, и соответственно получается бред, при том что файл с факсом лежит на серваке. Что думаете? Куда копнуть?
#338
c0rnoTa писал(а):
Obi Van писал(а):

2) Есть вариант поробовать поставить версию астериска 1.6, где так сказать "все работает из коробки". Там, например, после исполнения приложение ReceiveFax не обрывает канал (Hangup) как это было ранее (в 1.4), а даёт возможность выполнять следующие команды в контексте. Smile


Это если caller раньше трубку не положит Smile или я ошибаюсь?

точно. Если трубку положат до того как app_fax выйдет то диалплан не продолжится. Чтобы наверняка надо в 'h' весь пост-процессинг делать.

Obi Van,
у вас этот глюк теперь на каждый факс происходит или это только с одним абонентом такое?
посмотрите на патч для http://bugs.digium.com/view.php?id=13020
там немножко исправлялась ситуация когда факс приходит успешно но app_fax рипортит ошибку.
Хотя, если честно, я думаю что ваш конкретный случай этим патчем не лечится. Но все же...
#339
dimas
Спасибо! Накатил патч, попробую что да как. Происходит это при передаче с двух факсов Панасоников, подключённых к АТС Samsung OfficeServ500. Раньше такого не наблюдал. На станции помню менял настройку только "G711 T38" из включено в выключено. Пробовал отправлять факсы где то с недельку назад и судя по логам всё было нормально. Вот теперь сижу и вспоминаю что же я там накрутить мог в своём (*) Rolling Eyes
#340
Уважаемые не дайте погибнуть. Smile Пол дня размышляю, не могу найти источник следующей проблемы.

Полученное изображение искажено вертикальными линиями, что на стандартном размере шрифта делает его просто не читабельным. Sad

Asterisk 1.6.0.6, spandsp6pre4, CentOS5.1. Тестовый стенд из * подключенной к ТФОП pri и модема с вентафаксом. Прием без проблем, если пересылать полученный астериском же tiff тоже никаких проблем.
#342
патчик для 1.4.24
app_fax.c - скопировать в /asterisk_source/apps
fax.patch - его наложить
заново собрать spandsp
./bootstrap.sh
./configure --with-spandsp
make menuconfig (должна появится поддержка app_fax)
make
make install
#343
С версией Asterisk-1.4.24.1, указанной в шапке сверху будет работать?
#344
ssh писал(а):
Asterisk 1.6.0.6, spandsp6pre4, CentOS5.1. Тестовый стенд из * подключенной к ТФОП pri и модема с вентафаксом. Прием без проблем, если пересылать полученный астериском же tiff тоже никаких проблем.

Пересобрал сегодняшний бранч из svn с заменой spandsp6pre4 на spandsp6pre7, проблема исчезла.
#345
Tverdolik писал(а):
С версией Asterisk-1.4.24.1, указанной в шапке сверху будет работать?

Да, будет работать.
#346
Viktor писал(а):

заново собрать spandsp
l


с какой версией???
#347
а дижиумовский факс кто-то щупал уже?
#348
Cache писал(а):
Viktor писал(а):

заново собрать spandsp
l


с какой версией???

C шестой.
#349
Цитата:
C шестой.


с 6pre10 ?
#350
Проверить совсем не трудно.
#351
у меня с 6pre8 собрался, до этого с 6pre2 вылетал при сборке с ошибками
#352
Viktor писал(а):
патчик для 1.4.24
app_fax.c - скопировать в /asterisk_source/apps
fax.patch - его наложить
заново собрать spandsp
./bootstrap.sh
./configure --with-spandsp
make menuconfig (должна появится поддержка app_fax)
make
make install


Всё прекрасно патчится, собирается, модуль подгружается, при звонке даже отвечает факсовым писком, но факсы в файлик к сожалению у меня не принимаются, в клишке пишет The call dropped prematurely...
Asterisk 1.4.24.1 spandsp пробовал и 0.0.5(все pre) и 0.0.6(все pre)

Подходит ли данный патч под Asterisk 1.4.24.1?

P.S. в таком варианте: Debian Asterisk 1.4.21.1 spandsp-0.0.5pre4 с патчиком от Cache, на другом сервачке, всё прекрасно работает.
#353
у меня bootstrap.sh ругается на отсутствие разных варезов Sad
не патчится соответственно ...

выложил бы кто проатченный ... Smile
#354
это каких еще таких варезов? Shocked вроде всё опенсорс..
может лог прикрепите таки?
#355
Код:
# ./bootstrap.sh
Generating the configure script ...
configure.ac:3: error: Autoconf version 2.60 or higher is required
configure.ac:3: the top level
autom4te: /usr/bin/m4 failed with exit status: 63
aclocal: autom4te failed with exit status: 63
configure.ac:3: error: Autoconf version 2.60 or higher is required
configure.ac:3: the top level
autom4te: /usr/bin/m4 failed with exit status: 63
configure.ac:3: error: Autoconf version 2.60 or higher is required
configure.ac:3: the top level
autom4te: /usr/bin/m4 failed with exit status: 63
autoheader: /usr/bin/autom4te failed with exit status: 63
Press any key to continue...


wget ftp://alpha.gnu.org/gnu/autoconf/autoconf-2.63b.tar.gz
./configure
make install

Код:
# ./bootstrap.sh
Generating the configure script ...
configure.ac:126: warning: AC_CACHE_VAL(GNU_MAKE, ...): suspicious cache-id, must contain _cv_ to be cached
autoconf/general.m4:2033: AC_CACHE_VAL is expanded from...
autoconf/general.m4:2046: AC_CACHE_CHECK is expanded from...
autoconf/ast_check_gnu_make.m4:20: AST_CHECK_GNU_MAKE is expanded from...
configure.ac:126: the top level
configure.ac:126: warning: AC_CACHE_VAL(GNU_MAKE, ...): suspicious cache-id, must contain _cv_ to be cached
autoconf/general.m4:2033: AC_CACHE_VAL is expanded from...
autoconf/general.m4:2046: AC_CACHE_CHECK is expanded from...
autoconf/ast_check_gnu_make.m4:20: AST_CHECK_GNU_MAKE is expanded from...
configure.ac:126: the top level
configure.ac:126: warning: AC_CACHE_VAL(GNU_MAKE, ...): suspicious cache-id, must contain _cv_ to be cached
autoconf/general.m4:2033: AC_CACHE_VAL is expanded from...
autoconf/general.m4:2046: AC_CACHE_CHECK is expanded from...
autoconf/ast_check_gnu_make.m4:20: AST_CHECK_GNU_MAKE is expanded from...
configure.ac:126: the top level
Press any key to continue...


Rolling Eyes
#356
сиё совершенно к теме не относится! а посему - флейм.
#357
Извините если что то упустил, искал ошибку которая всплывает у меня
Код:

WARNING[2762]: app_fax.c:121 span_message: WARNING T.30 Non-ECM carrier not found

Нашел здесь на первых страницах, но ответа не прозвучало, хотел спросить у бывалых, подскажите как бороться.
Ставил все с исходников:
spandsp-0.0.5pre4
libpri-1.4.7
asterisk-1.4.21.1 + asterisk-1.4.21.1-app_fax-support-t38.patch + app_rxfax.c + app_txfax.c (взял из agx-ast-addons под spandsp-0.0.5)
asterisk-addons-1.4.7
zaptel-1.4.12.1
Пока стоит один час, и
Пробовал мануал Димы, все делал с точность до версий, такая же ошибка и сервак валиться каждый час...
Код:

[May 13 11:05:36] WARNING[2291] chan_zap.c: Got restart ack on channel 0/4 span 1 with owner
[May 13 11:08:38] WARNING[2753] app_dial.c: Unable to forward voice frame
[May 13 11:12:32] WARNING[2758] app_dial.c: Unable to forward voice frame
[May 13 11:13:04] WARNING[2760] app_dial.c: Unable to forward voice frame
[May 13 11:13:44] WARNING[2291] channel.c: Channel allocation failed: Refusing due to active shutdown
[May 13 11:13:44] WARNING[2291] chan_zap.c: Unable to start PBX on channel 0/1, span 1
[May 13 11:13:44] WARNING[2291] chan_zap.c: Call specified, but not found?
[May 13 11:13:44] WARNING[2291] chan_zap.c: Hangup on bad channel 0/1 on span 1
[May 13 11:13:54] WARNING[2291] chan_zap.c: Call specified, but not found?
[May 13 11:13:54] WARNING[2291] chan_zap.c: Hangup on bad channel 0/1 on span 1
[May 13 11:14:11] WARNING[2294] chan_zap.c: Detected alarm on channel 1: Red Alarm
#358
У тебя валится, а у меня машину вешает - загрузга проца 97-100% процесс астер.

логи:

Код:
[May 13 21:16:25] NOTICE[3669] chan_dahdi.c: Got event 18 (Ring Begin)...
[May 13 21:16:25] WARNING[3669] chan_dahdi.c: Unable to enable echo cancellation on channel 1 (No such device)
[May 13 21:16:39] WARNING[3669] app_fax.c: WARNING T.30 ECM carrier not found
[May 13 21:16:39] WARNING[3669] app_fax.c: WARNING T.30 ECM carrier not found
[May 13 21:16:39] WARNING[3669] app_fax.c: WARNING T.30 ECM carrier not found
[May 13 21:16:39] WARNING[3669] app_fax.c: WARNING T.30 ECM carrier not found
[May 13 21:17:07] WARNING[3669] app_fax.c: WARNING T.30 ECM signal did not end cleanly
[May 13 21:17:11] WARNING[3669] app_fax.c: WARNING T.30 ECM carrier not found
[May 13 21:17:11] WARNING[3669] app_fax.c: WARNING T.30 ECM carrier not found
[May 13 21:17:12] WARNING[3669] app_fax.c: WARNING T.30 ECM carrier not found
[May 13 21:17:12] WARNING[3669] app_fax.c: WARNING T.30 ECM carrier not found
[May 13 21:17:43] WARNING[3669] app_fax.c: WARNING T.30 ECM carrier not found
[May 13 21:17:43] WARNING[3669] app_fax.c: WARNING T.30 ECM carrier not found
[May 13 21:17:43] WARNING[3669] app_fax.c: WARNING T.30 ECM carrier not found
[May 13 21:17:43] WARNING[3669] app_fax.c: WARNING T.30 ECM carrier not found
[May 13 21:17:55] WARNING[3669] app_fax.c: WARNING T.30 ECM carrier not found
[May 13 21:17:55] WARNING[3669] app_fax.c: WARNING T.30 ECM carrier not found
[May 13 21:17:56] WARNING[3669] app_fax.c: WARNING T.30 ECM carrier not found
[May 13 21:17:56] WARNING[3669] app_fax.c: WARNING T.30 ECM carrier not found



asterisk-1.4.24.1
asterisk-addons-1.4.8
libpri-1.4.10
spandsp-0.0.6pre11
dahdi-linux-2.2.0-rc2
dahdi-tools-2.1.0.2
+ данный патч http://asteriskforum.ru/download.php?id=546 ...

куда смотреть .... ?
#359
Рискну предположить, что проблемы из за spandsp. Нормальная проверенная версия это 4-ка. В частности 0.4.pre18 что касается астериска. Единственный "плюс" 6-ки то что она с пол-оборота компилируется под винды в vc2005, но на этом все... кроме кучи глюков я там ничего нового пока не нашел.
"Лучшее" враг хорошего.
pearl писал(а):

Пробовал мануал Димы, все делал с точность до версий, такая же ошибка и сервак валиться каждый час...
[code]

Скажем так это надо делать на чистой системе (без остатков "новых" spandsp), и использовать 0.4.pre18 (шаг влево, шаг вправо -расстрел) и тогда все должно работать.
#360
вчера выпустили spandsp-0.0.6pre12 .... вдруг )
#361
На счет новой машины согласен, я уже переустанавливал много раз, и с разными версиями, жалко что нет возможности почистить. Но не смотря на эту ошибку астериск жив пол суток и не падал, даже факсы на почту отсылает =)
#362
Та же проблема только использовал spandsp-0.0.4 Cray
Как можно попробовать решить данную проблему???
#363
Ставь все как я написал выше, только на чистую машину Wink
#364
Кто нибудь попробовал t38 с астериском версии 1.4.25. Может есть у кого-нибудь патчик?
#365
antonio_fareldo писал(а):
Может есть у кого-нибудь патчик?

а существующий не работает разве?
#366
Вопрос к любителям 6-го Spandsp.
Полагаю много народу тут уже ставило или по крайней мере пытались компилировать с Астериском.
Астериск меня интересует меньше всего, я этого не скрываю, но тем не менее...
Нужна какая-нибудь статистика на 6-ку.
1. Работает ли вообще audio-fax? Нормально ли?
2. Нет ли проблем с передачей (исходящими факсами) по t38? Т.е. не замечено ли следующего эффекта: на 14400 пытаются договориться, но проходит только если искусственно ограничить скорость принимающего факса до скажем 4800.
#367
1 я так понимаю вопрос скорее про ReceiveFax, про него не скажу. Использую 0.0.6pre7 в app_faxgateway, на прием по t38 нареканий нет, на отправку - оно работает на 9600 (не допатчил согласование на 14400) вбольшинстве случаев, но то скорее проблема где-то в радиусе app_fax.
#368
Asterisk 1.4.25 с данным патчем падает в начале приема факса.
#369
Чтобы не быть голословным.
Я тестирую spandsp с Opal, делаю это под WIN.
После "внедрения" 6-й spandsp существуют две версии факса.
1) c прямым обращением к dll
http://opalvoip.svn.sourceforge.net/view ... pal/trunk/
http://opalvoip.svn.sourceforge.net/view ... lib/trunk/
2) с использованием независимого exe-шника факса, который работает с основной Opal-библиотекой через сокеты.
http://opalvoip.svn.sourceforge.net/view ... ches/v3_6/
http://opalvoip.svn.sourceforge.net/view ... ches/v2_6/
Обе текущие версии работают с 0.0.6pre(7-12) и дают одинаково хреновые результаты.

1. Прием по t38
bird_of_Luck писал(а):
на прием по t38 нареканий нет

Все как у вас -единственное что работает безупречно
2. Отправка по t38
bird_of_Luck писал(а):
на отправку - оно работает на 9600

Я провел тесты. Факс принимался на VentaFax, соответственно я регулировал максимальную скорость факса через венту.
Договариваться начинают, а итог вот он.
Код:
14400 Phase E: Unexpected message received
9600 Phase E: Received no response to DCS or TCF
4800 Phase E: Invalid response after sending a page
2400 Phase E: Unexpected message received

Т.е. проходит только на 4800, да и то "Ошибка разъединения" (Вентовская er.20, типа х.з. прошел он или не прошел)

bird_of_Luck писал(а):
(не допатчил согласование на 14400) вбольшинстве случаев, но то скорее проблема где-то в радиусе app_fax.

Думаете проблема в вызывающем приложении, а не в самой spandsp? Уж очень подозрительно что все наступают на одни и те же грабли. Если поймете в чем дело, дайте знать..

3. прием и отправка по G711. Ну, покойный 98-й Windows в таких случаях радовал синим экраном, XP предпочитает серо-белые тона(я испытывал на XP), а Висты скромно пишут "Has stopped working", короче просто crashed.
Хотя разработчик и оговорился:
Robert Jongbloed писал(а):
As an aside, I am certain that the PCM mode doesn't work on the Win32
platform, as spandsp-0.0.6-pre10 (thru 12) PCM fax is broken. This applies
to both the new plug in and the old spandsp_util.exe.


Т.е. сдается мне, что никакие "has fixed" здесь не помогают, а проблема в самой 0.0.6

Да и еще? Тона факса странными не кажутся? Не могу понять: то ли опал сейчас использует свои генераторы через dtmf-UserInput, то ли в спандсп опять что не так.
#370
Моя конфигурация:
E1 > * 1.4.21.2 < sip > c5350 < E1 > ... < E1 > * 1.4.212.2 < IAX > hylafax

Там, где sip стык - живет app_faxgateway

У меня таки работает отправка на 9600, причем именно 9600 imho из-за
global_t38_capability = T38FAX_VERSION_0 | T38FAX_RATE_2400 | T38FAX_RATE_4800 | T38FAX_RATE_7200 | T38FAX_RATE_9600;

Пока что правда исключительно в случаях старта отправляющей стороны после получения реинвайта от кошки + несколько секунд. Иначе - проблемы с согласованием.
В rtp была замечена странная генерация тонов спандспой, но как-то непостоянно и только в случаях, когда старт был до реинвайта

Логи: faxgw и hylafax

В понедельник буду разбираться дальше, если сведу проблему к spandsp - напишу
#371
bird_of_Luck писал(а):
global_t38_capability = T38FAX_VERSION_0 | T38FAX_RATE_2400 | T38FAX_RATE_4800 | T38FAX_RATE_7200 | T38FAX_RATE_9600;

А попробуйте обрезать на T38FAX_RATE_4800 . М.б. что изменится...
Кстати интересный момент, если на венте выставить max=7200, то переговоры в моем случае начнутся на 9600... там же и закончатся.
В принципе я недостаточно хорошо исследовал 3 режима "UserInput"(посылать факс-тон через dtmf,ждать ре-инвайт), "Timeout"(1-2сек и спандсп само переходит в t38 не дожидаясь re-invite), "Wait"(сидеть,молчать, ждать ре-инвайт), но похоже без разницы.

bird_of_Luck писал(а):

В rtp была замечена странная генерация тонов спандспой, но как-то непостоянно и только в случаях, когда старт был до реинвайта

Я больше привык доверять своим слуховым ощущениям, но...
При исходящем факсе (CNG-тон) слышу "бип-бип" ...и тишина
При входящем тон какой-то непродолжительный, и срезается резко через секунду.
Причем пихал также новый exe-шник в папку со старой отлаженной Opal. Странная вещь: сначала начинает пиликать как надо(м.б.внутренний генератор в опал), потом раз...аж слышно...перебивается этой фигней. В зависимости от режима "фиговое пиликанье" может повторяться через какое-то время, но при этом оно фиговое.


Последний раз редактировалось: Дима77 (Пн Июн 01, 2009 09:27)
#372
den68 писал(а):
у меня bootstrap.sh ругается на отсутствие разных варезов Sad
не патчится соответственно ...
Код:
configure.ac:3: error: Autoconf version 2.60 or higher is required
http://asteriskforum.ru/viewtopic.php?p=28082#28082
#373
Скажите, а
Код:
app_fax.c:216 phase_e_handler: Error transmitting fax. result=13: Unexpected message received.
при желании отправляющего абонента продолжить разговор после прохождения факса (aka запрос голосовой связи) как ремонтируется? Факс отправляется до конца, и в самом конце вылетает с этой ошибкой, в итоге не принимается.
Код:
[Jun 5 01:34:21] WARNING[29750]: app_fax.c:164 span_message: WARNING T.30 Non-ECM carrier not found
[Jun 5 01:34:50] WARNING[29750]: app_fax.c:216 phase_e_handler: Error transmitting fax. result=13: Unexpected message received.
[Jun 5 01:34:50] WARNING[29750]: app_fax.c:714 transmit: Transmission failed

spandsp-0.0.4pre18
#374
Хотел спросить, стоит ли изменять битрейт с 9600 на 14400, и как это можно сделать
установлено все как и раньше
Код:

Ставил все с исходников:
spandsp-0.0.5pre4
libpri-1.4.7
asterisk-1.4.21.1 + asterisk-1.4.21.1-app_fax-support-t38.patch + app_rxfax.c + app_txfax.c (взял из agx-ast-addons под spandsp-0.0.5)
asterisk-addons-1.4.7
zaptel-1.4.12.1

использую факсы для приема через Zaptel aka E1 PRI card (port 1) * PRI card (port 2) Panasonic KX-TD1232 далее flash и на ReceiveFax
#375
вопрос по теме, если позвонить на rxfax, rxfax начинает пищать - все ок, но если факс не отправлять, то через секунд 10 rxfax пищать прекращает, но трубку при этом не кладет...
Куда смотреть, что если факс не шлют, трубку ложить ?
#376
ALD
Полагаю. что надо внести изменения в файл t.30.c из исходников spandsp. Какие изменения вносить есть в этой ветке раннее. После этого количество попыток увеличивается и становится больше 10 сек, точнее становится таким, каким сделали его в файле.
#377
Romik,
0.0.4 имхо реально староват.
Проблема, правда в том что нет никакой статистики какая версия работает стабильно а какая нет - Стив все время что-то ковыряет и даже два "соседних" билда могут совершенно по разному себя вести...
#378
Дима77 писал(а):

Т.е. сдается мне, что никакие "has fixed" здесь не помогают, а проблема в самой 0.0.6


В результе сделал E1 SIP шлюз средствами CW с 0.0.6pre7/pre12 - там все хорошо, факсы ходят без проблем, с 14400 правда не дошло дело - не оказало МФУшки под рукой, но на 9600 нормально все
#379
Linux version 2.6.26-2-686 (Debian 2.6.26-15lenny2)

Установил libspandsp1 0.0.5~pre4-1

Распаковываю asterisk-1.4.25.1 , кидаю в корень asterisk-1.4.21-t.38.patch , далее
patch -p0 < asterisk-1.4.21-t.38.patch

при наложении патча на channels/chan_sip.c были FAILED (9 out of 39 hunks FAILED), про остальное жалоб не было, потом bootstrap.sh
Далее ./configure , потом make menuselect (никаких намеков на fax или t38), потом make и это ...
Код:

[CC] chan_sip.c -> chan_sip.o
chan_sip.c: In function 'sip_queryoption':
chan_sip.c:2377: error: 'T38_LOCAL_DIRECT' undeclared (first use in this function)
chan_sip.c:2377: error: (Each undeclared identifier is reported only once
chan_sip.c:2377: error: for each function it appears in.)
chan_sip.c: In function 'sip_write':
chan_sip.c:3867: error: too few arguments to function 'transmit_reinvite_with_sdp'
chan_sip.c:3908: warning: implicit declaration of function 'transmit_reinvite_with_t38_sdp'
chan_sip.c: In function 'process_sdp':
chan_sip.c:5684: error: 'T38_LOCAL_DIRECT' undeclared (first use in this function)
chan_sip.c: At top level:
chan_sip.c:7089: error: static declaration of 'transmit_reinvite_with_t38_sdp' follows non-static declaration
chan_sip.c:3908: error: previous implicit declaration of 'transmit_reinvite_with_t38_sdp' was here
chan_sip.c: In function 'check_pendings':
chan_sip.c:12511: error: too few arguments to function 'transmit_reinvite_with_sdp'
chan_sip.c: In function 'handle_request_invite':
chan_sip.c:14686: error: too few arguments to function 'process_sdp'
make[1]: *** [chan_sip.o] Error 1
make[1]: Leaving directory `/home/asterisk-1.4.25.1/channels'
make: *** [channels] Error 2


Я что-то забыл пропатчить или это из-за того, что патч лег с ошибками или он несовместим с * 1.4.25 ?

При использовании патча asterisk-1.4.21.1-app_fax-support-t38.patch вообще огромное кол-во FAILED для файла configure (459 out of 550 hunks FAILED) , для sip было также 9 из 39.

Нужна помощь
#380
можете попробовать поставить версию 1.6, там с Т.38 всё нормально
#381
Для меня например подталкивающим фактором при переходе на 1.6 и являлась нормальная работа с t.38. Система нормально работает с spandsp 0.0.6 и приложением app_fax. Сейчас доделываем веб морду для факсов и пускаем систему. Rolling Eyes
#382
а что, разве на 1.4.25 никто не ставил патчи для факса ? ...

или быть может кто-то, из тех кто умеет патчи править, выделит время и напишет патч для * 1.4.25.1

вопрос снят, руки заточил, факс появился ... забыл dev поставить для spandsp ...

Установил libspandsp1, потом libspandsp-dev версия 0.0.5~pre4-1 из готовых пакетов
Распаковываю asterisk-1.4.25.1 , кидаю в корень asterisk-1.4.21.1-app_fax-support-t38.patch , далее

patch -p0 < asterisk-1.4.21-t.38.patch
bootstrap.sh
./configure
make menuselect

тут уже появляеется app_fax , но make завершается так же как и в предыдущем посте...

вопрос остается ...
#383
Цитата:
Система нормально работает с spandsp 0.0.6

Obi Van, с которым? есть pre 7, 10, 11, 12 (типа current) и 1,2,3,4,5,6,8 (old) (http://www.soft-switch.org/downloads/spandsp/)

Цитата:
Распаковываю asterisk-1.4.25.1 , кидаю в корень asterisk-1.4.21.1-app_fax-support-t38.patch , далее

Alex_asdf, ты бы посмотрел в asterisk-1.4.21.1-app_fax-support-t38.patch (он маленький), потом в соответствующие исходники asterisk-1.4.25.1 и asterisk-1.4.21.1 и если кардинальных различий в патченых ф-ях нету, то сам бы и поправил патч под свой 4.25.1. сам я этого не сделаю, так как у меня 1.4.21.1, это же тебе нужно.
#384
Блин, взялся за тестирование других версий spandsp и выяснил, что тестировать собственно нечего. с 0.0.6preX app_fax.c просто не собирается, а из ветки 0.0.5 в доступности pre2, 3, 4 и типа релиз, который хоть датирован 23-Apr-2009 против 16-Jun-2008 у pre4, но ничем от него не отличается.

У кого-то есть исходики ветки 0.0.5 кроме выложенных на www.soft-switch.org?
#385
2 dimagolov спс за совет, но это для меня слишком сложно, думаю проще на 1.6 перейти, установил 1.6.1.1 щас посмотрю что и как там
#386
Насколько помню ставил pre 10 (дело было весной). С тех пор и стоит. Внёс кое какие изменения в t30.c, чтобы увеличить время ожидания при приёме факса. Обычное было менее 30 сек. Всё не сразу собралось. Точно уже и не помню. Прибивал старый 0.0.5, чистил систему. Сосбно говоря система достаточно стабильна, больше 2-х недел в аптайме. Стоит версия * 1.6.1.1.
Alex_asdf
Попробуйте. Только в ветке 1.6 есть несколько значительных изменений. Символ разделитель теперь ",". Поправьте конфиги.
#387
hylafax 6.0.3 .... никак не могу понять, как сделать MaxDials не 12, а 3 .... и как это переплетается с jobcontrol
#388
Прекрасно заработал TxFAX/RxFAX из agx-ast-addons(svn) + spandsp 0.0.6pre12 + asterisk-1.4.26.
Но не могу заставить работать по T.38. Проблема в том, что звонок идёт так:
Одна ногда на Dial(), вторая на chan_local, которым рулю через AGI.
Запуск TxFAX/RxFAX работает по G711, ибо chan_local не пропускает T.38.

Как можно _временно_ запустить на оригинальном SIP канале Tx/Rx и вернуть обратно на chan_local?
Или где найти патчик чтоб к chan_local passthru для T.38 ?
#389
Добрый день соберите пожалуйста patch_app_fax, если не трудно
для версии Астериск 1.4.26 и Addons 1.4.9
#390
Я попробовал посмотреть что там изменилось с 1.4.21.2 к 1.4.26
И похоже патч к chan_sip.с наложить весьма сложно, нужны знающие люди.
Например, убрали состояние T38_LOCAL_DIRECT и связанный с этим код, соответственно, нужно смотреть что добавили. Нужны знающие chan_sip.с люди...
#391
Мне кажется что пытаться натягивать патч на убегающий 1.4 это занятие бесперспективное.
попробуйте 1.6 хотя бы. Времени "на попробовать" меньше уйдет чем на попытки патч прикрутить...
#392
Все таки хочется не 1.6, а 1.4.26 попробовать
#393
Поправил патч, который был под 1.4.21.2, для 1.4.26
Не знаю, что попутно сломал, нужно тестировать. Протестировал пока прием по Т.38 с Zoiper'а подключенного к другому астериску (zoiper -Т38- asterisk -Т38- patched asterisk 1.4.26).
Собирается со spandsp-0.0.4.
#394
Спасибо в ближайшее время протестирую
#395
Ставлю 1.4.26.1 и
Код:
asterisk-test*CLI> load app_fax
[Aug 19 12:08:22] WARNING[13302]: loader.c:409 load_dynamic_module: Error loading module 'app_fax': /usr/lib64/asterisk/modules/app_fax.so: undefined symbol: t30_set_tx_page_header_info
[Aug 19 12:08:22] WARNING[13302]: loader.c:721 load_resource: Module 'app_fax' could not be loaded.

26 версия работала с патчем... Самое интесное что переустановка на 26 обратно вызывает точно такуюже картинку...[/code]
#396
Попробуйте этот патч. Не пробовал на 1.4.26 но на 1.4.24 точно работал со spandsp-0.0.5pre4
#397
Завёлся даже на шестом стпане...
Правда вигачит ворнинги типа
app_fax.c:164 span_message: WARNING T.30 Non-ECM carrier not found
#398
а факсы то бегают? Smile
#399
Да, принимаю.
#400
кто нибудь сталкивался с установкой app_fax или app_rxfax на 64-битное ядро ?
проблема в следующем - установлен AsteriskNOW 1.5 64-битная версия
все попытки пересобрать spandsp и * c пропатченым конфигом были не успешны
spandsp пересобирается (пробовал разные версии последняя 0.0.6)
а * останавливается на make - с ошибками...
#401

Решил пособирать немного, так сказать в образовательных целях, узнал заодно, что на триксбокс уже модули есть. Но суть вопроса в том, из этой ветки http://www.voipinfo.ru/forum/viewtopic.php?t=11180, при выполнении второго пункта, мне не понятно в menuselect возможно ли выбрать, или только после кофигурения и сборки отдона?
Код:
XXX 50. app_rxfax
XXX 66. app_txfax



И ещё этот метод из библиотеки http://asteriskforum.ru/viewtopic.php?p=7662, подходит для 1.4.21, первый метод тоже на астериск 1.4.21 юзался, просто когда пробовал по второму методу из библиотеки, у меня было такое, а на первом такого не было и нету:
Код:
checking for fax_init in -lspandsp... yes
checking spandsp.h usability... yes
checking spandsp.h presence... yes
checking for spandsp.h... yes

Там я руками правил файлы, как было указано, но опять же нельзя было поставить звёздочку, были XXX, файлы копировал (app_rxfax.c/app_txfax.c), патч не применял.

Можете пояснить мне, библиотечный метод уже не идёт для версий выше чем там описан.
#402

Viktor писал(а):
Завёлся даже на шестом стпане...
Правда вигачит ворнинги типа
app_fax.c:164 span_message: WARNING T.30 Non-ECM carrier not found

да варнинги есть, но все бегает.
даже вроде как на 14400
-- Executing [2102@test:8] NoOp("DAHDI/4-1", "FAXSTATUS=SUCCESS") in new stack
-- Executing [2102@test:9] NoOp("DAHDI/4-1", "FAXBITRATE=14400") in new stack
-- Executing [2102@test:10] NoOp("DAHDI/4-1", "FAXRESOLUTION=7700") in new stack

Asterisk 1.4.25.1
spandsp-0.0.6pre12
с t38 не заморичивался, т.к. без нужды.
#403

toptoy у меня 64 битное, проблем нет с установкой... незнаю где у тебя баг...
#404

Поделюсь маленькой радостью.
Заработала наконец 0.0.6 у меня под виндами на предмет аудио (G711) факсов.
Причем сразу на ура (14400 в обе стороны, хочешь с ecm хочешь без).
Раскрутил таки Robert Jongbloed -а на правильный совет, он дал ссылку на "правильную" spandsp-20090624.tar.gz.
http://www.soft-switch.org/downloads/sna ... 624.tar.gz
(крайний snapshot spandsp-20090714.tar.gz тоже годится, проверял).
Исходник информации здесь:
http://opalvoip.svn.sourceforge.net/view ... iew=markup

Воспользовался кстати советом Obi Van и выставил таймауты чтоб иметь минуту на ожидание при приеме факса:
Код:
C:\opal\plugins\fax\fax_spandsp\spandsp_util\spandsp-0.0.6\src\t30.c
/*! The maximum permitted number of retries of a single command allowed. */
#define MAX_COMMAND_TRIES 9 //3
//Time-out T1 defines the amount of time two terminals will continue to attempt to identify each other.
#define DEFAULT_TIMER_T1 60000 //35000
Спасибо, работает.

Но наткнулся я на старые грабли.
А именно при успешной отравке факса(только без ecm и только при отправке) очень стабильно вылазит ошибка

tiff_to_fax: statistics:
Status=18 Invalid response after sending a page


в случае с моим AP200B постоянно, причем принимающяя VentaFax у себя в логе фиксирует OK.
т.е. spandsp почему-то не дожидается подтверждения.

Ситуация на этом форуме обсуждалась и решена не была.
http://www.asteriskforum.ru/viewtopic.ph ... ght=#16579
правда тогда это был Астериск под Линукс и кажется 0.0.5 или 0.0.4-18
но принимающая сторона та же.
Все бы конечно можно списать на AP или напр. на обслуживающую систему (Opal в моем случае)
но это было бы неправильно.
Потому что старая спандсп 0.0.4-pre7 с тем же OPAL и с тем же AP работает на ура и
говорит "OK" без всяких там 18-х ошибок.
Поясню, что в виндах голову где чего накомпилировано(ну, если накомпилировалось, естественно) и чего мешает ломать не надо.
Есть один exe-шник(0.0.4-pre7) и есть другой exe-шник(0.0.6), и есть папка с "системой".
Так вот если кинуть в папку 0.0.4-7, то OK, а если 0.0.6 то "ошибка подтверждения".
(примерно так, еще парочка dll-ов связанных со spandsp и tiff меняется)

На Линуксе проверить наверно уже никогда не смогу, забыл его "как страшный сон" Surprised
Но в принципе описал понятно, м.б. кто чего посоветует, с чем в самой spandsp поиграться можно.
#405

Извините за нубские вопросы: Как применить этот патч? , можно ссылку на патч который точно подходит к 1.4.26.2. , и зачем нужен spandsp-0.0.5pre4 ? Спасибо
#406

-Как я понял spandsp нужен чтобы * мог сам отправлять факсы посредством rxfax/txfax
-Патча для 1.4.26.2 не нашел
-Как все таки применить патч.Нахожусь в директории с исходниками 1.4.26.1 делаю "patch -p0 asterisk_1_4-app_fax.patch" ,результата нет.

Помогите люди добрые победить факсы.
#407

Seducer666
Похоже вы просто ошиблись в написании команды. Вот смотрите:
Код:
patch -p0 < asterisk.....
#408

Дима77 писал(а):
Но наткнулся я на старые грабли.
А именно при успешной отравке факса(только без ecm и только при отправке) очень стабильно вылазит ошибка

tiff_to_fax: statistics:
Status=18 Invalid response after sending a page



Нашел однако:
Код:
I found the place in spandsp(0.0.6), that gives error18:
c:\opal\plugins\fax\fax_spandsp\spandsp_util\spandsp-0.0.6\src\t30.c
case T30_PRI_EOP:
tx_end_page(s);
if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_RTP);
t4_tx_release(&(s->t4));
//s->current_status = T30_ERR_TX_INVALRSP; //need to comment see line ~3531
send_dcn(s);
break;

If to comment ~3531 line we have
Status=0 OK
Bit Rate=14400
as need and it will be correct.


Steve вроде как одобрил:
It looks like line 3531 in t30.c is unreasonable, and should be removed.
#409

Respect
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#410

Спасибо Obi Van ,действительно не хватало "
#411

Seducer666, чем вам не нравится существующий патч кроме цифр в названии?
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#412

То есть если внутри патча все поправить на 1.4.26.2,то встанет как надо ,ок попробую.
#413

Выкладываю патч для asterisk 1.4.26.2 под FreeBSD 6.4
из портов net/asterisk делаем make extract && make patch && cd work/asterisk-1.4.26.2 копируем сюда патч, накладываем patch -p0 < asterisk_1_4-app_fax.patch далее cd ../../ && make
#414

spandsp-20090920.tar.gz
ну по крайней мере ругательство T30_ERR_TX_INVALRSP (Invalid response after sending a page) в данной "версии" выведено из оборота.

По поводу t38 (Sending) Steve утверждает что у него все хорошо. Не могу пока это подтвердить. Для сравнения ему были посланы 2 пары логов (без SIP сигнализации), сделанные в одинаковых условиях с применением Spandsp-4 и Spandsp-6. По его словам в "4" все хорошо, а в "6" ..."received IFP packet numbers look very odd... don't increment properly... being passed from your UDPTL decoder to my spandsp code, so it appears to be something wrong on your side." Пока вот так вот....надо дождаться какая на это будет реакция со стороны разработчика Opal.
#415

Помогите разобраться в логах, не получается отправить факс с ZAP to SIP ,при отправке SIP to SIP проблем нету.

Asterisk 1.4.18
#416

Вот еще вещи, мне не понятные :
в случае выше, в логах астериска
Код:

entering T.38 gateway mode as EMITTING gateway

схема при этом E1 - Asterisk - Клиент. Если понимать эти сообщения, как сообщения удаленно стороны, то понятно почему факс не прошел, т.к получается, что и я и удаленный факс пытались отправить факс.

В схеме E1 - CISCO - Asterisk - Клиент
Код:

entering T.38 gateway mode as RECEIVING gateway


т.е получается, что удаленная сторона готовится принять факс, факс проходит.


Кто виноват 1) Клиент 2) Связка E1 - Asterisk 3) другое ?
#417

кому лень править патч - выкладываю готовый под актуальный на сегодня Asterisk-1.4.28-rc1
пара ханков есть но всё ставится без проблем.

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#418

Всем привет. Сколько пробую установить * с Т.38 ничего не получается, после ./configure --prefix=/usr при установке * выдаёт след.:
checking for a sed that does not truncate output... ./configure: line 6378: syntax error near unexpected token `SED,'
./configure: line 6378: ` _AC_PATH_PROG_FEATURE_CHECK(SED, sed gsed,'
Что не так?
Заранее спасибо.
#419

дык sed установлен?
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#420

установлен
#421

А почему вообще возникло желание ставить из исходников, не пользуясь пакетным менеджером?

По поводу sed - версию астериска, uname -a, cat /etc/*release , config.log - в студию
#422

Чем может вызываться ошибка:

ERROR[9400]: app_fax.c:700 transmit_t38: channel 'SIP/103-00000107' failed to disable T.38

1.6.1.11 ReceiveFAX принимает факс от аппарата, подключенного к SPA2102. Факс принимается, но ошибка напрягает.

_________________
Debian Lenny, Asterisk 1.8, chan_dongle, chan_ooh323
#423

В июне Romik задавал вопрос:

при желании отправляющего абонента продолжить разговор после прохождения факса (aka запрос голосовой связи) как ремонтируется? Факс отправляется до конца, и в самом конце вылетает с этой ошибкой, в итоге не принимается.
Код:

[Jun 5 01:34:21] WARNING[29750]: app_fax.c:164 span_message: WARNING T.30 Non-ECM carrier not found
[Jun 5 01:34:50] WARNING[29750]: app_fax.c:216 phase_e_handler: Error transmitting fax. result=13: Unexpected message received.
[Jun 5 01:34:50] WARNING[29750]: app_fax.c:714 transmit: Transmission failed


У меня примерно та же ситуация, 1.6.1.11, spandsp-0.0.6 (относительно свежий snapshot). Факс принимается, но ошибка раздражает.

_________________
Debian Lenny, Asterisk 1.8, chan_dongle, chan_ooh323
#424

вообщето если внимательно посмотрите название топика то увидите что данный патч для ветки 1.4
это касается всех кто пишет сюда с версией 1.6
1.6 версия - сырая версия. и там ошибок еще будет тонна в будущем, пока её не заморозят, так что не стоит сюда все это валить, откройте новый топик по ней или пишите в Asterisk-Dev - там самое место для отлавливания багов.

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#425

Обновил патч. Теперь будет работать с любой версией без редактирования патча.
Просто положите его в папку с исходниками asterisk (а не снаружи как было раньше)

Цитата:
router asterisk-1.4.29 # patch -p0 < asterisk_1_4-app_fax.patch
patching file apps/app_fax.c
patching file build_tools/menuselect-deps.in
patching file configure.ac
Hunk #1 succeeded at 210 with fuzz 1 (offset 5 lines).
Hunk #2 succeeded at 1386 (offset 26 lines).
patching file makeopts.in
router asterisk-1.4.29 #

Код:
./bootstrap.sh
make clean
./configure
make menuselect

видим новый пункт в меню
[*] 23. app_fax
ну и как обычно make; make install

собирал на домашнем роутере к которому прикручен халявный входяший номер в штатах, факсы летают изумительно (и падают в мыло в pdf), из 100 факсов прошло 100. работает в паре с spandsp-0.0.6_pre12.

после перезапуска астериска по команде
router*CLI> core show applications
видим новые команды диалплана:
Цитата:
...
ReceiveFAX: Receive a FAX
SendFAX: Send a FAX
...

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#426

Поставил указанный патч с * 1.4.29 и spandsp-0.0.6_pre12. Ситуевина следующая:
На приеме в SIP сессия Т38 устанавливается успешно, но когда удаленный гейт посылает Т.38 медиа, * ничем не отвечает. Консоль говорит:
Код:
WARNING[25206]: app_fax.c:216 phase_e_handler: Error transmitting fax. result=48: Disconnected after permitted retries.
WARNING[25206]: app_fax.c:711 transmit: Transmission error

FAX ERROR: Disconnected after permitted retries

Не понимаю, если честно, что он "retry"ит.
#427

Привет всем. Пытаюсь разобраться с T38 в asterisk 1.4

Уяснил что asterisk 1.4 T38 path through
И для работы с факсом необходимо использовать модуль app_fax который зарегистрирует приложен txfax и rxfax
agx-ast-addons без T.38
11614: [patch] T38 support for SendFax/ReceiveFax https://issues.asterisk.org/view.php?id=11614
Патчь включает файлы
v4-asterisk-t38.patch - добавляет поддержку T38 в SIP канал
v8-appfax.patch - добавляет поддержку T38 в app_fax версии 532

Модуль собирается из asterisk-addons
Для портирования нужно
1. define ast_debug in logger.h - see http://bugs.digium.com/file_download.php ... p;type=bug [^]
2. define ast_tvdiff_XXX functions - see http://bugs.digium.com/view.php?id=11270 [^]
3. Apply fix for T38 state - http://bugs.digium.com/view.php?id=11630 [^]
4. Apply fix for T38 flags - http://bugs.digium.com/view.php?id=11239 [^]
5. Patch DSP in trunk with http://bugs.digium.com/view.php?id=11796 [^] and then copy main/dsp.c and include/asterisk/dsp.h files over your 1.4 sources
6. Add T38 API as in http://bugs.digium.com/view.php?id=11873 [^]
7. Patch app_fax

Далее этот модуль переносит в основную ветку /[asterisk]/trunk/apps/app_fax.c из /[asterisk-addons]/trunk/apps/app_fax.c
14769: [patch] Improvements/fixes for app_fax https://issues.asterisk.org/view.php?id=14769

Тема начинается с того что уважаемы Cache портировал патч 11614 для текущих 1.4.17,
затем портировал патч 14769 из транка /[asterisk]/trunk/apps/app_fax.c для asterisk-1.4.21.1 app_fax-support-t38.patch

Мне не понятно как вы ставите patch для app_fax если последний нормальный patch для asterisk t38 был для версии 1.4.21 ?
#428

whitefox, не совсем понял ваш поток сознания, вернее совсем ничего не понял (прошу извинить на всякий случай - буквально только что проснулся). кроме что последней фразы в виде вопроса. но и он вызывает недоумение - вы вот это видели? что мешает все сделать как там описано? там все действия разжеваны по шагам. просто не могу взять в толк к чему все эти пляски с бубном и горы ссылок на разные патчи, вы ими не только себя запутали но и нас Wink если вы пытаетесь разобраться в теме t38 вообще то этот топик не есть правильное место для этого обсуждения - в нем обсуждается конкретный патч, который "просто работает".
_________________
Успехов!
#429

У меня он просто не работает с T38.
app_fax.c взят тут Где говорится что он был спортирован для 1.4 с 1.6 и автор не проверял T38 код.

А вот который был для asterisk-1.4.21.1 отлично работает с Т38.
Так как в патч помимо app_fax.c сореджал патч chan_sip.c для включения поддержки t38. И так как я не нашел нигде информации о том что начиная с версии 1.4.24 поддержка T38 есть, то я полагаю что нужен asterisk-support-t38.patch.

Не понимаю зчем в теме "Т.38 app_fax и астериск 1.4" выкладывать патч который не работает с T38 и путать людей !
#430

whitefox, вы меня в конец запутали с этими патчами Embarassed
можете по шагам расписать какие именно патчи ставить и в каком порядке чтобы получить работающий t38?

_________________
Успехов!
#432

anest,

Достаточно ли патча который выложен Вами на предыдущей страницы для T.38 поддержки в астериске 1.4.29?
или надо еще какие патчи искать?
#433

вообщето это не мой патч, спросите у его авторов.
_________________
Успехов!
#434

anest,

спасибо за ответ, поставил патч на 1.4.29 без проблем
факс работает как на прием так и на отправку

Для информации:
t.38 не используется

кто знает как добавить поддержку T.38? старый патч не подходит так как сильно изменился код *
#435

у меня не появляется модуля app_fax.so
....
[CC] app_festival.c -> app_festival.o
[LD] app_festival.o -> app_festival.so
[CC] app_flash.c -> app_flash.o
[LD] app_flash.o -> app_flash.so
[CC] app_followme.c -> app_followme.o
[LD] app_followme.o -> app_followme.so
[CC] app_forkcdr.c -> app_forkcdr.o
[LD] app_forkcdr.o -> app_forkcdr.so
.....





1) если после принятия патча сразу ставить(./ bootstrap.sh, ./configure) - то выдается ошибка при make menuselect

gcc -o menuselect menuselect.o strcompat.o menuselect_curses.o mxml/libmxml.a mxml/libmxml.a -lncurses
make[2]: Leaving directory `/usr/src/asterisk-1.4.29/menuselect'
make[1]: Leaving directory `/usr/src/asterisk-1.4.29/menuselect'
Generating input for menuselect ...
menuselect/menuselect --check-deps menuselect.makeopts

***********************************************************
The existing menuselect.makeopts file did not specify
that 'app_fax' should not be included. However, either some
dependencies for this module were not found or a
conflict exists.

Either run 'make menuselect' or remove the existing
menuselect.makeopts file to resolve this issue.
***********************************************************

make: *** [menuselect.makeopts] Error 255

если же перед тем как запускать configure выполнить autoconf - то make menuselect отрабатывает корректно . и появляется в menuselect app_fax, но после сборки Астериска, приложение так и не появляется...




если же не выполнять команду autoconf, а просто удалить menuselect.makeopts - то в менюселекте app_fax появляется НО блокировано, пишит что зависит от spandsp, хотя последний установлен



OS Centos 5
asterisk 1.4.29
asterisk-addons-1.4.10
#436

Товарищи помогите пропатчить Elastix. Ни разу этого еще не делал.

Положил патч в /usr/src
Код:

[root@voip src]# patch -p0 < asterisk_1_4-app_fax.patch
The next patch would create the file apps/app_fax.c,
which already exists! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file apps/app_fax.c.rej
can't find file to patch at input line 853
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -urN build_tools/menuselect-deps.in asterisk-1.4.28-rc1-patch/build_tools/menuselect-deps.in
|--- build_tools/menuselect-deps.in 2009-01-30 02:54:29.000000000 +0400
|+++ asterisk-1.4.28-rc1-patch/build_tools/menuselect-deps.in 2009-08-19 21:57:21.000000000 +0500
--------------------------
File to patch:


какой файл патчить?
#437

найдите 10 отличий )))

Код:

router asterisk-1.4.29 # patch -p0 < asterisk_1_4-app_fax.patch

Код:

[root@voip src]# patch -p0 < asterisk_1_4-app_fax.patch


полагаю надо перейти все таки в каталог с исходниками астериска )
#438

это была моя вина - в моей инструкции выглядело не совсем однозначно, я её уже поправил, добавив слово asterisk:
anest писал(а):
Просто положите его в папку с исходниками asterisk (а не снаружи как было раньше)

теперь должно быть понятнее.

_________________
Успехов!
#439

а с непоявлением приложения RecievFax есть идеи ?
#440

Аналогично, пач встает без проблем,
После ./configure появляется /app_fax
но выбрать его нельзя, хотя spandsp установлен
centos 5.4
#441

Приветсвую!
пытаюсь сконектить астер и алькател. для передачи факсов в res_fax.
факсы свистят друг на друга, но не понимают.
точнее факсаппарат-->алькател(сип модуль)-->астер(res_fax).
в сторону факсаппарат-->аудикодес-->астер(res_fax) пашет все отлично.

причем в 1.6 все работало. перенес в 1.8, все, не пашет.


#uname -a
Linux ars-aster3 2.6.18-194.26.1.el5 #1 SMP Tue Nov 9 12:54:20 EST 2010 x86_64 x86_64 x86_64 GNU/Linux

#fax show version
FAX For Asterisk Components:
Applications: 1.8.3-rc1
Spandsp FAX Driver: 20100830 183516

#module show like fax
Module Description Use Count
res_fax.so Generic FAX Applications 1
res_fax_spandsp.so Spandsp G.711 and T.38 FAX Technologies 0
2 modules loaded

не подскажете ли что где почему?
если нужно лог я выложу.

уже два месяца бодаюсь.
спасиб!
#442

T38modem 1.2.0 + Hylafax 6.0 работает только на отправку.


Не могу получить ни одного факса через sip t38modem ом, в логах пишет
[ 4042]: HylaFAX (tm) Version 6.0.4
[ 4042]: [5:ERROR]
[ 4042]: ANSWER: Ring detected without successful handshake

берет трубку и не пищит собака, весь инет перерыл не могу понять в чем дело.
На отправку замечательно работает...
iaxmodem при прочих равных пищал, но пров. переходил на т38 и факсы не ходили ни в одну сторону, параметра --sip-old-asn в этой версии модема нету.
#443

Re: T38modem 1.2.0 + Hylafax 6.0 работает только на отправку.


Roscou писал(а):
берет трубку и не пищит собака....но пров. переходил на т38

обычно T38modem "не пищит" именно тогда, когда SIP-сеть не поддерживает T.38 (т.е. не понимает t38-пакетов).
Одна из версий -не до конца "пров" "перешел".
Вы можете попробовать транк модема, транк умеет не только T38, но и "over G.711" (то же что и IAXmodem), или принимайте на IAX-модем, если вам так проще.
Вторая версия- "много глюков в разных версиях астериска", здесь я вам не советчик.
Могу сказать одно: в T38modem глюков в отличии от * можете считать что нет.

Roscou писал(а):
параметра --sip-old-asn в этой версии модема нету.

В любых поздних версиях модема по умолчанию всегда "sip-old-asn". Так называемый "new asn"(новая версия T38) просто нигде не прижился и все T.38 системы используют именно "old".
#444

Приветствую!
посоветуйте
какой аддон лучше использовать для астерика версии 1.4.28?
какой аддон лучше использовать для астерика версии 1.4.36?

какой spandsp лучше использовать для астерика версии 1.4.28?
какой spandsp лучше использовать для астерика версии 1.4.36?
#445

Можно поинтересоваться, чем это не устраивает ?

У меня в 1.4.29, 1.4.35, 1.4.37 факсы отлично бегают, вот уже почти год.
#446

А мне вот интересно чем не устраивает res_fax.so и res_fax_spandsp.so в Asterisk 1.8? Shocked Я принимаю факсы приложением ReceiveFax безо всяких извратов. Далее конвертирую в pdf и валлю в нужную папку.
#447

У меня не получается SendFax. а Receive давно работает.


Конкретно на астере создается файл с приаттачиванного письма, создается файл с расширением *.call. Идет дозвон до железного факса, факсы даже договариваются о скорости передачи, но вот потом вылазит ошибка передачи
#448

Этот момент уже описывал anest. Это вылазит при установке asterisk-addons 1.4.7 и spandsp 0.0.5

[CC] app_fax.c -> app_fax.o
app_fax.c:112: error: field ‘t38state’ has incomplete type
app_fax.c: In function ‘transmit_audio’:
app_fax.c:368: error: ‘T38_UNAVAILABLE’ undeclared (first use in this function)
app_fax.c:368: error: (Each undeclared identifier is reported only once
app_fax.c:368: error: for each function it appears in.)
app_fax.c: In function ‘transmit’:
app_fax.c:597: error: storage size of ‘t38state’ isn’t known
app_fax.c:620: error: ‘T38_NEGOTIATED’ undeclared (first use in this function)
make[1]: *** [app_fax.o] Error 1
make: *** [apps] Error 2

Вопрос в том, что я не совсем знаю как поправить пути, чтобы при утсановке обращалось к нужной спадсп?
#449

Удалить все версии spandsp, поставить одну. Дальше сделать сборку модуля app_fax.so.
И всё таки я не понимаю смысла в использовании древних версий типа: asterisk 1.4 и spandsp 0.0.5? Shocked Не знаю что я делаю не так, но у меня с пол-пинка поставилась spandsp 0.0.6 и asterisk 1.8. Во всю используем ReceiveFax, валим факсы в папку, пишем в базу, конвертим в пдф и прочее. Smile
#450

У вас есть где нибудь рабочая связка Asterisk 1.8 и оператор связи использующий в качестве тарнзитного софт-свича Mera MVTS. Рабочая связка имеется ввиду протокол Т.38
#451

Mishgan17
А в чём там проблема? В транзите Т.38 через этот софтсвитч? Насколько я вижу, 100% факсы не ходят даже по потоку Е1, не то, что по Т.38 по непонятному инету.
#452

))) в такой цепочке факсы в принципе не ходят, дело в реализации Т.38 на Астериске и Т.38 на Мере - они не совместимы. Тонкостей не знаю, но установлено опытным путем
#453

Mishgan17
В последней версии появилась куча настроек касательно факсов, чего ранее не было в 1.4. Да и сама технология была перепилена разработчиками. Об этом есть инфа. Для настройки факсов появилась возможность менять тип коррекции ошибок, включать и выключать её, менять размер дейтаграммы и прочее. Мне удалось подружить (в чём я сомневался) астериск ещё версии 1.6 с Телфином. Ну а дальше когда дело коснулось других операторов, то было уже проще, следовал по обкатанному пути. Конечно я не говорю, что всегда точно можно побороть конкретную проблему, но кое что сделать можно. Меня удивляет, сколько настроек в конфигах астериска сделано для госпожи циски. Rolling Eyes
#454

Obi Van писал(а):
А мне вот интересно чем не устраивает res_fax.so и res_fax_spandsp.so в Asterisk 1.8?

Извиняюсь за свою неосведомленность относительно этих библиотек, но они решать проблему с передачей факса из sip( t.38 ) в тфоп, лень перелистывать все страницы? По версии астериска тоже все не так просто, вот 1.4.29.1 на 100% в моём случае стабилен, а вот с 1.4.37 случаются sigmentation fault в chan_sip, потому и экспериментировать с версиями тоже лень, да и не всегда возможно, а потому сижу с тем, что стабильно работает и не приносит проблем на мою голову. Это моё имхо.
#455

в дополнении к предыдущей проблеме
вот кусок лога
-- Executing [~~s~~@faxing:16] NoOp("SIP/600-00000026", "reseive result FAILED,Disconnected after permitted retries,,,0,14400,0x0") in new stack

не подскажете ли куда копать?
#456

Пишет что "Disconnected after permitted retries". Т.е разъединено после допустимого числа попыток. Внесите изменения в файл t30.c в исходниках spandsp согласно инфе, имеющейся в этой ветке. Попробуйте что получится.
#457

По Ghostscript специалисты еще остались в этой жизни?
Задача: сконвертировать произв. PDF -> TIFF
Понятно что от TIFF требуется:
Resolution=204x98(normal) или 204x196(fine)
Размер =1728х (A4 короче, по крайней мере ширина критична)
Spandsp конечно поддерживает много чего, но стандартная факс программа(да думаю и факс аппарат) на принимающем конце
факс вида 2386х810 пошлет куда подальше

Скачал:
GPL Ghostscript 9.01
gs901w32.exe, GPL Ghostscript 9.01 for 32-bit Windows (the common variety).

Экспериментируем:
Код:
C:\111\bin\gswin32c -q -sDEVICE=tiffg32d -r204x98 -dBATCH -dPDFFitPage -dNOPAUSE -dFillOrder=2 -sOutputFile=C:\111\bin\out.tif %1

-sDEVICE=tiffg32d -делать тифф CCITT Group 4 (2d) Fax
-dFillOrder=2 -использовать Reversed Bit Order (обратный порядок бит)
%1 -имя pdf-файла с путем передаваемого на вход bat-файла (ну если по-простому кидаем мышкой любой pdf на батник).

Все бы ничего, если pdf-страницы изначально в А4, т.е. тогда будет 1728 по ширине.
Но накололся например на вот этом файле:
http://www.elmo.webege.com/temp/cisco_fax_ts.pdf
Указанная выше команда gs делает tiff с размером 2386х810 (альбомная ориентация?), что неприемлимо для дальнейшего использования в качестве факса.
Замечу, что при распечатке того же файла из Adobe Reader на принтер Ventafax(Microsoft Fax не суть) , принтер переворачивает картинку в "портрет" и делает 1728х как надо.

Я попробовал еще сделать так:
Код:
C:\111\bin\gswin32c -q -sDEVICE=tiffg32d -r204x98 -dBATCH -dPDFFitPage -dNOPAUSE -dFillOrder=2 -sPAPERSIZE=a4 -sOutputFile=C:\111\bin\out.tif %1

т.е. добавил -sPAPERSIZE=a4 , но эффекта 0. Вообще кажется (из изучения примеров и документации) sPAPERSIZE=a4 применимо к tiff->pdf но не к pdf->tiff

В принципе я владею инструментарием GDI/GDI++ и могу программно подправить бракованный TIFF, преобразовав его к правильному виду (1728х + r204х9_8) за рамками Ghostscript. Но неужели этот монстр в 15МБ не умеет этого делать сам?
Т.е. возможно ли обеспечить 1728х независимо от размеров исходной pdf-картинки средствами Ghostscript?

Да, и еще. Считаю, что размер dll в 15МБ это очень круто.
Мне от Ghostscript нужно только PDF->TIFF.
Возможно ли при компиляции исключить из dll кучу ненужных опций и уменьшить размер dll? Нек. косвенные соображения
mupdf
дают основания предположить что можно уменьшиться до 5-6МБ
Как?
Но MyPDF не умеет делать tiff, а только PNG.
Я конечно могу воспользоваться MyPDF и склеить PNG в многостраничный TIFF через GDI/GDI+ нужного разрешения/размера, средствами виндов. Но это опять же нехилую прогу писать. Но насколько с этим знаком, это точно не 10 мегов исполняемого файла, а пара сотен кБ.

P.S. Да, anest, или кто тут модератор...Когда длинное сообщение пишешь, полоса прокрутки (Vertical ScrollBar) постоянно прыгает снизу вверх. Эт что, новый метод борьбы с длинными сообщениями?
#458 15.01.2008 21:00

Т.38 app_fax и астериск 1.4

Буду очень признателен если кто поделится app_fax c T.38 бакпортированной на 1.4.17 (или предыдущие).
Трaнк версия к сожалению специфична, И я не могу еe исползовать...
#459 16.01.2008 09:51
там все специфично
для работы app_fax(t38) нужно править астериск

патчи могу предоставить

Added after 2 hours 25 minutes:

Вот
#460 16.01.2008 16:39
Примного благодарен!
Я тут с nv_backg* вожусь, засунул в предыдущий app_fax, вроде так, работает...
А с транком никак, да и freepbx с ним тоже не дружит.

П.С. У меня с факсами тоже особые отношения сложились. Бился в оконном мире с Brooktrout картами,
даже драйвер для ms shared fax сделал под isa карточку да и универсальную голосовую почту под нее написал.
У меня sdk для ённой имеется, и под linux также. Вроде hylafax enterprise имеет драйвер под нее. Изначально думал написать что то вроде chan_brooktrout... Если sdk нужно то могу скинуть.
#461 17.01.2008 04:04
Deniq, если есть какие-то вопросы по разработке или по специфичным патчам их можно задавать в разделе 'Asterisk-Dev'
#462 18.01.2008 19:15
Понял, исправлюсь 8)
#463 21.01.2008 07:46
Как мне кажеццо, без бубна тут не обойтись...
Поставил патч на 1.4.17, работает прекрасно с linksys wrtp54g.
Пробую с audiocodes mp-118, не в какую, получаю 488 на reinvite.
Зато была замечена очень интересная вещь: когда debug включен, факсы даже под g711 не проходят, app_fax говорит что Т38 negotiated succesfully, хотя на шлюзе Т38 отключен. Выключаю debug и все нормально, g711 работает.
Игрался с internal_timing и transcode_via_sln, безрезультатно.
Подскажите пожалуйста что это может быть?
#464 01.02.2008 18:21
Вроде разобрался ентой проблемой, может кому будет интересно:
Два компа, в принципе одинаковые на 845 чипсете, софт идентичный.
На одном стоит digium TDM400B, на другом нет. На том что с карточкой (Tdm400B не используется) Т38 работает прекрасно с audiocodes mp-118FXO + wrtp54g.
На том что без tdm, Т38 не пашет вообще а ulaw 50% и с перебоями.
Прогнал zttest и получил на первом 99.995...% а на втором 99.952...%. После гооглинга стало понятно что * ну оочень не любит RTC аккуратность меньше чем 99.97%. Вообщем проблема с таймером и ztdummy. Похоже избавиться от этого будет трудно, тк все прибамбасы в bios уже отключены...
Может кто порекомендует бубен, попробую пошаманить тк выхода нет, tdm поставить в book-pc невозможно...
#465 10.02.2008 21:02
Уважаемый Cache!

Если Вас не затруднит и будет время/желание, то могли бы Вы спортировать свой патч на 1.4.18?
А то уж больно привлекательно было бы иметь в одном флаконе вошедший в 1.4.18 вот этот патч
http://bugs.digium.com/view.php?id=11700
с одной стороны, а с другой поддержку Т.38 в приложении для приема факсов...
#466 11.02.2008 08:37
SolarW писал(а):Уважаемый Cache!

Если Вас не затруднит и будет время/желание, то могли бы Вы спортировать свой патч на 1.4.18?
А то уж больно привлекательно было бы иметь в одном флаконе вошедший в 1.4.18 вот этот патч
http://bugs.digium.com/view.php?id=11700
с одной стороны, а с другой поддержку Т.38 в приложении для приема факсов...
полностью поддерживаю
#467 11.02.2008 08:47
не затруднит ))

ближе к 13 по москве подготовлю а то у меня бардак в файлах :D :oops:
#468 11.02.2008 11:32
предлагаю на данный патч создать линк в правом верхнем углу наравне с asterisk-* zaptel и libpri
#469 11.02.2008 12:33
noize, не серьёзно.
#470 11.02.2008 14:12
извинти что так позно работы полно было :oops:

обещеный патч

asterisk-1.4.18
asterisk-addons-1.4.5

пользуйтесь :roll:
#471 13.02.2008 13:23
Cache, Спасибо!
#472 21.02.2008 14:56
Спасибо.
#473 22.02.2008 13:54
Только есть проблема.
Астериск-то факсы принимает, но пасру SIP на SIP поломался :). Ставлю чистый 1.4.18 - всё идет. Накатываешь патч - не идет. С теми же конфигами.
В 1.6-beta4 куда вошли все изменения, связанные с app_fax тоже пасру не работает.

Сейчас возимся с кодом, но надо бы помощь Cache или dimas...
#475 27.02.2008 17:08
спасибо dimas за неустанный труд.
#476 28.02.2008 11:08
С патчем всё ок, работает во всех позах...
Начинаем мечтать о факсах Zap SIP T38 :)
#477 28.02.2008 14:51
вот почтик дл я 1.4.18

накладывать на чистый астериск!!!
#478 05.03.2008 09:09
У человека вопрос:
по патчу patch-app_fax-support-t38.tar.gz
в ветке Т.38 app_fax и астериск 1.4.17
в посте
Cache СообщениеДобавлено: Пн Фев 11, 2008 4:12 pm
написано, что он для
asterisk-1.4.18
asterisk-addons-1.4.5

но в addons-1.4.5 (по крайней мере в том варианте, что щас лежит у дигиум) нету app_fax.c - addons-1.4.6 аналогично - он есть токи в asterisk-addons-1.6.0-beta2.tar.gz и в транке...
#479 05.03.2008 09:18
Ded писал(а):... нету app_fax.c - addons-1.4.6 аналогично - он есть токи в asterisk-addons-1.6.0-beta2.tar.gz и в транке...
Правильнее конечно дождаться ответа автора...
Но выскажу свое подозрение - судя по содержимому файла с патчем (сплошные плюсики) app_fax.c похоже просто создается с нуля этим патчем...
Но это только подозрение, может я и не прав :-)
#480 05.03.2008 10:08
да он создаеца и все для него тоже создаеца в аддонах
#481 05.03.2008 11:55
Я угадал :-)
#482 05.03.2008 12:17
SolarW писал(а):Я угадал :-)
в данном форуме нужно эту фразу произносить так "Я знал, я знал! я телепат!" ;)
#483 08.03.2010 18:10

Бросайте всё и быстрей бегите сюда! =>
http://asteriskforum.ru/viewtopic.php?t=5943
Very Happy

_________________
Мои рекомендации: Asterisk-1.8 + G.722 кодек = лучший выбор!
Успехов!
#484 10.03.2010 08:00

DPLaksyuk wrote:
Аналогично, пач встает без проблем,
После ./configure появляется /app_fax
но выбрать его нельзя, хотя spandsp установлен
centos 5.4


Запусти ./bootstrap.sh
Возможно понадобится spandsp выше версии
и autoconf-2.63 или выше
#485 10.03.2010 09:50

ставил более свежую версию spandsp, autoconf и automake - самые свежие...
#486 10.03.2010 11:16

после этого всякий смысл в этом патче отпадает сам по себе. вы так не думаете?
_________________
Мои рекомендации: Asterisk-1.8 + G.722 кодек = лучший выбор!
Успехов!
#487 09.04.2010 10:53

Первый раз ставлю на убунту Астериск. Возник небольшой затык, ставлю вместе с патчем для факса.
# patch -p0 < asterisk-1.4.21-t.38.patch

# ./bootstrap.sh
Generating the configure script ...
configure.ac:124: warning: AC_CACHE_VAL(GNU_MAKE, ...): suspicious cache-id, must contain _cv_ to be cached
../../lib/autoconf/general.m4:2018: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:2039: AC_CACHE_CHECK is expanded from...
acinclude.m4:132: AST_CHECK_GNU_MAKE is expanded from...
configure.ac:124: the top level
configure.ac:124: warning: AC_CACHE_VAL(GNU_MAKE, ...): suspicious cache-id, must contain _cv_ to be cached
../../lib/autoconf/general.m4:2018: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:2039: AC_CACHE_CHECK is expanded from...
acinclude.m4:132: AST_CHECK_GNU_MAKE is expanded from...
configure.ac:124: the top level

# ./configure
checking for a sed that does not truncate output... ./configure: line 5912: syntax error near unexpected token `SED,'
./configure: line 5912: ` _AC_PATH_PROG_FEATURE_CHECK(SED, sed gsed,'

# uname -a
Linux ubuntu 2.6.31-14-server #48-Ubuntu SMP Fri Oct 16 15:07:34 UTC 2009 x86_64 GNU/Linux

# dpkg --list | grep sed
sed 4.2.1-1

# dpkg --list | grep autoconf
ii autoconf 2.64-1ubuntu1
ii autoconf2.59 2.59

Какой пакет не поставлен или еще что?
#488 09.04.2010 21:49

Mishgan17, а без патча астериcк собирается?
_________________
Мои рекомендации: Asterisk-1.8 + G.722 кодек = лучший выбор!
Успехов!
#489 10.04.2010 05:44

Да, без патча собирается.
#490 10.04.2010 22:14

а это уже видели?
http://asteriskforum.ru/viewtopic.php?t=5943

_________________
Мои рекомендации: Asterisk-1.8 + G.722 кодек = лучший выбор!
Успехов!
#491 11.04.2010 04:54

Видел, но хочу добить вот это, потом перейти.
#492 16.04.2010 12:57

mihail wrote:
а с непоявлением приложения RecievFax есть идеи ?


Предположу, что для запуска app_fax не хватает libspandsp.so.2 в /usr/lib.
Если он у тебя в /usr/local/lib, тогда поможет ln -s /usr/local/lib/libspandsp.so.2 /usr/lib/libspandsp.so.2.
Самое верное будет, заглянуть в логи астериска.
#493 17.09.2010 12:43

Так как у меня все работает с app_fax и перенастраиваться на совершенно новое решение для факсов нет желания, но в то же время из-за бага в текущей у меня версии 1.4.21.1 с остановкой записи MixMonitor, которая пофиксина в 1.4.23, пытаюсь обновиться до более свежей версии и наложить патч. Проблема возникает с ./bootstrap.sh:
Код:
[dimagolov@office asterisk-1.4.23]$ ./bootstrap.sh
Generating the configure script ...
configure.ac:3: error: Autoconf version 2.60 or higher is required
configure.ac:3: the top level
autom4te: /usr/bin/m4 failed with exit status: 63
aclocal: autom4te failed with exit status: 63
configure.ac:3: error: Autoconf version 2.60 or higher is required
configure.ac:3: the top level
autom4te: /usr/bin/m4 failed with exit status: 63
configure.ac:3: error: Autoconf version 2.60 or higher is required
configure.ac:3: the top level
autom4te: /usr/bin/m4 failed with exit status: 63
autoheader: /usr/bin/autom4te failed with exit status: 63

Если его опустить и дальше сделать make clean && ./configure && make menuselect, то app_fax в меню не активно.
Пока что еще не понял, могу ли обновиться до Autoconf version 2.60 or higher, так как живу на CentOS 4 и там в репозитарии версия 2.59.

Какой может быть выход в данной ситуации?

_________________
CentOS 4 2.6.9-67.0.22.ELsmp/Asterisk 1.4.36/app_fax(t38)/spandsp 0.0.6pre12/dahdi 2.3.0.1/wanpipe 3.5.15
Sangoma A200d/Polycom IP601,501

FreeBSD 7.2-RELEASE/asterisk16-1.6.0.9_3
#494 17.09.2010 12:53

dimagolov попробуйте вот это: http://users.netplex.net/~andrew/asterisk/#fax
Готовьтесь к тому, что у вас может отвалиться T38 на ReceiveFax, SendFax. Типа, сессия установится, а передачи данных со стороны сервера не будет. Т30 - всё окей... Готовьтесь... BigGrin3

Хотя, есть "совершенно новое решение для факсов" Wink
#495 17.09.2010 14:39

c0rnoTa, это еще один, альтернативный патч? Как бы нет желания изучать новые грабли. Пока ограничился тем, что пропатчил старую версию 1.4.21.1 под AUDIOHOOK_INHERIT

Но может есть решение для Autoconf >= 2.60 на CentOS 4?

_________________
CentOS 4 2.6.9-67.0.22.ELsmp/Asterisk 1.4.36/app_fax(t38)/spandsp 0.0.6pre12/dahdi 2.3.0.1/wanpipe 3.5.15
Sangoma A200d/Polycom IP601,501

FreeBSD 7.2-RELEASE/asterisk16-1.6.0.9_3
#496 17.09.2010 15:13

Ага, есть. Для меня этим решением стал переход на gentoo Smile
#497 17.09.2010 15:42

Это мне не светит, пока что, по крайней мере. Разве что подниму более свежий астер на втором сервере и буду на него прокидывать звонки по IAX2, так как в старом стоит карточка Sangoma A200d и драйвера собраны в ядре. Как-то я пытался обновить ядро, после чего драйвера умерли, так что пока что куда-то глобально обновиться я не могу, вернее не хочу, больно это будет хлопотно по сравнению с возможными плюшками от такого перехода.
_________________
CentOS 4 2.6.9-67.0.22.ELsmp/Asterisk 1.4.36/app_fax(t38)/spandsp 0.0.6pre12/dahdi 2.3.0.1/wanpipe 3.5.15
Sangoma A200d/Polycom IP601,501

FreeBSD 7.2-RELEASE/asterisk16-1.6.0.9_3
#498 17.09.2010 15:52

Как же у вас всё будет по Т38 в IAX ходить? Вообще, T38 и IAX как? По-моему никак... или я че-то пропустил в этой жизни...
#499 21.09.2010 14:38

Про IAX это были мысли вслух.

Просто собрал из исходников свежие autoconf и m4, нормально отработал bootstrap.sh и даже собрался app_fax.so, но почему-то при старте не нашел libspandsp.so.2

Более существенно, что начиная с 1.4.22 вместо zaptel используется dahdi, так что нужно собрать в начале dahdi, выправить конфиги под него, а только потом собирать asterisk. Продолжу завтра, а то без городских линий не жизнь, пришлось опять откатиться назад.

_________________
CentOS 4 2.6.9-67.0.22.ELsmp/Asterisk 1.4.36/app_fax(t38)/spandsp 0.0.6pre12/dahdi 2.3.0.1/wanpipe 3.5.15
Sangoma A200d/Polycom IP601,501

FreeBSD 7.2-RELEASE/asterisk16-1.6.0.9_3
#500 27.09.2010 11:46

Обновился c Asterisk 1.4.21.1/app_fax(t38) /spandsp-0.0.5pre4 + zaptel-1.4.12.1 + wanpipe-3.4.1 до Asterisk 1.4.36/app_fax(t38) + spandsp 0.0.6pre12 + dahdi 2.3.0.1 + wanpipe 3.5.15
Dahdi 2.3.0.1 а не 2.4.0 потому, что даже самый свежий wanpipe 3.5.15 от Sangoma понимал только Dahdi 2.3.0, а 2.4.0 не понимал. Благодаря опции dahdichanname = no в asterisk.conf переименновывать каналлы из zap в dahdi не пришлось.
из особенностей могу заметить, что dahdi в отличии от zaptel требует запущенным модуль res_smdi.so, без него не мог загрузиться с ошибкой "chan_dahdi.so: undefined symbol: ast_smdi_interface_find"

_________________
CentOS 4 2.6.9-67.0.22.ELsmp/Asterisk 1.4.36/app_fax(t38)/spandsp 0.0.6pre12/dahdi 2.3.0.1/wanpipe 3.5.15
Sangoma A200d/Polycom IP601,501

FreeBSD 7.2-RELEASE/asterisk16-1.6.0.9_3
#501 13.10.2010 08:36

немного оффтоп. На ftp сангомы есть wanpipe 3.5.15.7, он работает с dahdi 2.4.0
#502 03.04.2011 04:36
Дима77 писал(а):Т.е. возможно ли обеспечить 1728х независимо от размеров исходной pdf-картинки средствами Ghostscript?
Вот так (-r204x196 -g1728x2340 | -r204x98 -g1728x1171) обеспечиваются размеры.

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

C:\111\bin\gswin32c -q -sDEVICE=tiffg32d -r204x196 -g1728x2340 -dBATCH -dPDFFitPage -dNOPAUSE -dFillOrder=2 -sOutputFile=C:\111\bin\outfine.tif %1 C:\111\bin\gswin32c -q -sDEVICE=tiffg32d -r204x98 -g1728x1171 -dBATCH -dPDFFitPage -dNOPAUSE -dFillOrder=2 -sOutputFile=C:\111\bin\out.tif %1
Но картинка из того примера срезается. По идее ее надо:
1) понять альбомная она или портретная и перевернуть если альбомная (на такой сервис со стороны gs честно даже не рассчитываю)
2) поменять масштаб, чтоб вписалась в ширину 1728 (а на это хотелось бы рассчитывать). Но пока не нашел как.
#503 03.04.2011 08:07
-DAutoRotatePages=Yes

Должна помочь

или указать конкретно
-с 0 (portrait) OR 1 (seascape) OR 2 (upside down) OR 3 (landscape)
т.е. цифру

-c 0 например
#504 03.04.2011 14:22
Cache,
это ничего не помогает
-DAutoRotatePages=Yes -не принимает, а true, false -без толку
-с 0 -тоже не то, какое-то окно выводит, закрывает, а tiff вообще не образуется

Пытался пробовать еще другие ключи-толку нет.

При этом нормальные вертикальные a4-pdf_страницы он даже без указания -r204x196 правильно делает 1728х fine

Пример командной строки не приведете?

Или может вы предполагаете преобразование в 2 шага? Тогда это уже не очень интересно, как я упомянул второй шаг мне и самому по зубам.

Задача pdf->tiff в принципе решается через Acrobat Reader + printto на тот же вентафакс
Но:
1) у printto и так проблемы с закрытием окна Reader , да еще и новая версия Акробата сейчас появилась -там вообще все плохо.
2) Reader на многих файлах печатает иероглифы вместо английского, а Ghostscript вроде справляется, хотя и может сьесть какие-то буквы иногда
3) принтер иногда не оч. надежен

В общем нужен надежный конвертер in.pdf->out.tif
Задача актуальна, т.к. люди помешаны на этих pdf-ах...
#505 05.04.2011 00:22
Дас, линуксообразный здесь видимо не способен сделать до конца правильно. Судя по количеству вопросов на эту тему,

rotating an A3 pdf from landscape to portrait

Auto rotating pages

и по отсутствию вменяемых ответов, чувствую что "проверку+форматирование(если надо)" проще будет сделать через GDI, тем более мне это все равно надо будет для стандартных форматов BMP/JPEG/GIF/PNG/TIFF(произвольный).
#506 05.04.2011 17:29
а можно этот чудо файл?? попробую сконвертить
#507 05.04.2011 21:07
Cache писал(а):а можно этот чудо файл??
Так я ж ссылку дал:
Дима77 писал(а):Все бы ничего, если pdf-страницы изначально в А4, т.е. тогда будет 1728 по ширине.
Но накололся например на вот этом файле:
http://www.elmo.webege.com/temp/cisco_fax_ts.pdf
Указанная выше команда gs делает tiff с размером 2386х810 (альбомная ориентация?), что неприемлимо для дальнейшего использования в качестве факса.
Попробуйте. Чуда там нет, просто горизонтальная ориентация. С остальными подобными то же самое.
Причем там кажется(не уверен) таки A4, хоть и перевернутый, а ведь может быть вообще не A4, а скажем узкая горизонт. полоска.

Скажем так, в идеале доформатирование произвольной!!! картинки таки нужно.
Алгоритм может быть такой:
1) если ширина>высота, то переворачиваем (естественно это не для случая tiff 204х98, где высоту надо умножать на 2)
2) полученный "портрет" надо масштабировать( вписать в рамку 1728х2340), т.е. один размер "от и до", а второй как получится(белые поля)
3) там где белые поля, хорошо бы чтоб картинка была по центру (ось картинки совпадает с осью рамки)
4) анализ работы принтеров типа Ventafax показывает, что "рамку" желательно делать чуть меньше "листа", т.е. они справа "резервируют" белое вертик. поле (нек. ощутимой ширины). Опыт с реальными факсами также подтверждает что эта белая полоса справа нужна, иначе принимающмй факс может обрезать картинку.
5) ну потом разрешение выставить 204х196 или на 204х98 как заказано (предполагается что оно изначально м.б. любым, т.е. напр.96х96). При этом во втором варианте сжать по вертикали вдвое.
6) ну и палитру понятно убрать, если рисунок напр. цветной.

Вообще говоря, такую ф-цию я написать себе хочу для преобразования произв. графики к странице(цам) a факса. Но, если уж я вяжусь с PDF и с GHostscript, который все это якобы должен уметь (и половину из описанного делает т.е. разрешение, палитра и в большинстве случаев размер(но не всегда!!!!!!!!! в чем и вопрос) ), это будет двойная работа + время + процессор, а GS его и так не хило грузит.
#508 08.04.2011 14:06
Cache писал(а):попробую сконвертить
Cache, тупик? :)
Я пока тоже времени даром не теряю.
Вписать "горизонтальную" картинку в 1728х2340, черные поля, а надо чтоб были белые!
Белый лист заготовили, в размер вписывать научился,
пока застрял на разворотах...
#509 20.04.2011 14:23
Дима77 писал(а):Да, и еще. Считаю, что размер dll в 15МБ это очень круто.
Мне от Ghostscript нужно только PDF->TIFF.
Возможно ли при компиляции исключить из dll кучу ненужных опций и уменьшить размер dll? Нек. косвенные соображения
mupdf
дают основания предположить что можно уменьшиться до 5-6МБ
Как?
Ну, скажем так, при следующей минимальной конфигурации:
C:\ghostscript-9.01\psi\msvc.mac
удалось уменьшиться до 9,98МБ , меньше не получилось

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

FEATURE_DEVS=$(PSD)pdf.dev $(PSD)mspoll.dev ... DEVICE_DEVS=$(DD)mswindll.dev DEVICE_DEVS2= DEVICE_DEVS3= DEVICE_DEVS4= DEVICE_DEVS5= DEVICE_DEVS6= DEVICE_DEVS7= DEVICE_DEVS8= DEVICE_DEVS9= DEVICE_DEVS10=$(DD)tiffcrle.dev $(DD)tiffg3.dev $(DD)tiffg32d.dev $(DD)tiffg4.dev $(DD)tifflzw.dev $(DD)tiffpack.dev DEVICE_DEVS11= DEVICE_DEVS12= DEVICE_DEVS13= DEVICE_DEVS14= DEVICE_DEVS15= DEVICE_DEVS16= # Overflow for DEVS3,4,5,6,9 DEVICE_DEVS17= DEVICE_DEVS18= DEVICE_DEVS19= DEVICE_DEVS20= DEVICE_DEVS21=
По идее конвертации в стандартные картинки bmp, jpeg, pcx, png, tiff(color) можно оставить, прибавка будет всего 0.2МБ

Обертку из GDI/GDI+ написал, она вопрос с Autorotate решает.
Ну, не умеет GS это, и ладно.

Вопросом таким задался:
pdf->tiff (to bmp,pcx,png,jpg) GS делает успешно.

А умеет ли GS делать (bmp,pcx,png,jpg,tiff/м.б. цветной/) ->tiff ?
По идее должен, ибо знает все эти форматы.
Как?

Собственно моя GDI обертка все это делает для обычных картинок.
Но есть одно но:

При конвертации цветной картинки в ч/б факс, чтобы ч/б не выглядело убого, применяется HALFTONE (в полутонах).
Конвертация картинки Цветная >> 2 цвета(ч/б) с сохранением тонов
По идеи винды этот вопрос решают с применением

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

SetStretchBltMode hdcDst, HALFTONE
Но по умолчанию решают "с очень высоким качеством", т.е.
1)размер файла в CCITT3/CCITT4 будет грубо 1МБ
2) время передачи такого факса 10минут/страница
На Microsoft есть описание этого:

http://msdn.microsoft.com/en-us/library ... S.85).aspx
Параметр отвечающий за качество (нам не надо очень хорошее) суть
ulHTPatternSize (HT_PATSIZE_2x2 ,HT_PATSIZE_4x4 и т.д.)
Т.к. у меня не принтер (не драйвер), а просто конвертирование, то влесть в "GDIINFO structure" чтобы поменять Pattern Size я не могу
(ну или не знаю как).

О чем это я. GS умеет делать HALFTONE c приемлемыми параметрами.
Посему процедура GS-конвертации (bmp,pcx,png,jpg,tiff/м.б. цветной/) ->tiff
представляет интерес.

Ну, и скажем так, виндовский encoder
1) не знает что такое msb2lsb и lsb2msb (should be dFillOrder=2) -по идее для Spandsp это не важно, но все же
2) для CCITT3 не различает tiffg3 (T.4 1D) и tiff32d (T.4 2D)
#510 20.04.2011 15:00
А умеет ли GS делать (bmp,pcx,png,jpg,tiff/м.б. цветной/) ->tiff ?
По идее должен, ибо знает все эти форматы.
Как?
Вообще GS - это PS и PDF интерпретатор (спасибо man gs), поэтому когда у меня возникла такая же идея, при помощи gs делать конверт из JPEG в TIFF, я быстро от неё отказался. Пользуюсь ImageMagickом:

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

convert test.jpeg -density 204x196 -resize 1728x -monochrome -compress Fax test0_fax.tiff 
Но всё же интересно, может быть на самом деле GS способен выполнить эту операцию сам?
#511 20.04.2011 21:01
c0rnoTa писал(а):Вообще GS - это PS и PDF интерпретатор
...Пользуюсь ImageMagickом:
Но всё же интересно, может быть на самом деле GS способен выполнить эту операцию сам?
Полазив по форумам, посмотрев документацию, понял что наверно да: на выходе - чего хочешь, но на входе - только pdf/ps.
Обидно. На самом деле с картинками то все просто. Упрощенно так:
1) TIFF,BMP,PNG,GIF,JPG - грузим в битмап
2) Над Битмап делаем: изменение размера, разрешения, Rotate если надо, и изменение цветности.
3) Сохраняем bitmap назад в TIFF,BMP,PNG,GIF,JPG
В виндах как бы не называлась прога, она по любому делает это через GDI, и делает это замечательно.
Единственный вопрос, что у меня не получается нормально сделать (получаается, но не могу залезть в параметры) это HALFTONE он же ditering.
А у GS это получается(цветные PDF в ч/б tiff здорово перерабатывает). Я конечно могу сделать (Цветная картинка)->GDI->(Цветной TIFF)->LIBTIFF->(Цветной PDF)->(GS+ditering)->(ч/б TIFF), но это извращение полное будет. Очень жаль что GS не умеет.
Нужна по сути одна ф-ция bitmap2(ч/б)=(bitmap1(24bit), HALFTONE, параметры).
Это есть в GDI через написание драйвера принтера(так думаю) и где-то в OpenSorce (интересно, где, вызвать бы ее через API, заразу). Т.е. успех зависит от схемы диттеринга и от Pattern Size. Полагаю что OpenSorsы используют какой-то свой device-independent алгоритм. Там кстати еще менять размеры картинки нельзя после применения полутонов, иначе вся красота смажется.

> -monochrome -compress Fax
Я сильно сомневаюсь что ваш Magic сильно разборчив в разновидностях и деталях FAX/Tiff компрессий. Посмотрите для интереса, что там в Tag-ах стоит, если просто Compression=3 или 4, при этом опция T4Option (0 либо 4 для Compression=3 (1d), 1 либо 5 для Compression=3(2d)),опция T6Option=0 (для Compression=4) отсутствуют, и при этом поле BitOrder (=2) не задано, то это виндовский CCITT3 или CCITT4, а если заданы, то это libtiff/gs. Ну по любому Magic мне интереса не представляет, GS того стоит только из-за PDF.
#512 21.04.2011 10:21
Дима77 писал(а): > -monochrome -compress Fax
Я сильно сомневаюсь что ваш Magic сильно разборчив в разновидностях и деталях FAX/Tiff компрессий. Посмотрите для интереса, что там в Tag-ах стоит, если просто Compression=3 или 4, при этом опция T4Option (0 либо 4 для Compression=3 (1d), 1 либо 5 для Compression=3(2d)),опция T6Option=0 (для Compression=4) отсутствуют, и при этом поле BitOrder (=2) не задано, то это виндовский CCITT3 или CCITT4, а если заданы, то это libtiff/gs. Ну по любому Magic мне интереса не представляет, GS того стоит только из-за PDF.
Ой, а я и не знаю, какие там теги T4 и T6, вот информация от tiffinfo.

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

TIFF Directory at offset 0x4dca (19914) Image Width: 1728 Image Length: 645 Resolution: 204, 196 pixels/inch Bits/Sample: 1 Compression Scheme: CCITT Group 3 Photometric Interpretation: min-is-white FillOrder: msb-to-lsb Orientation: row 0 top, col 0 lhs Samples/Pixel: 1 Rows/Strip: 645 Planar Configuration: single image plane Page Number: 0-1 Group 3 Options: EOL padding (4 = 0x4) 
Могу вам точно сказать, что SendFAX отправляет такое изображение без искажений.
#513 21.04.2011 12:02
c0rnoTa писал(а):Ой, а я и не знаю, какие там теги T4 и T6, вот информация от tiffinfo.

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

TIFF Directory at offset 0x4dca (19914) ... Compression Scheme: CCITT Group 3 ... FillOrder: msb-to-lsb ... Group 3 Options: EOL padding (4 = 0x4)
Compression Scheme: CCITT Group 3 ->Compression=3
Group 3 Options: EOL padding (4 = 0x4)->T4Option=4 (T.4 1D, G3 fax with EOLs, byte-align EOL codes)
FillOrder: msb-to-lsb ->FillOrder=1 (вообще говоря для факса по хорошему должно быть равно =2, т.е. lsb2msb)
Ну, т.е. это скорее всего не виндовский encoder, ежли только они "ручками" EXIFTags не переписывают (кстати способ обмануть некоторые зловредные вьюеры, но сомневаюсь что правильный).
c0rnoTa писал(а):Могу вам точно сказать, что SendFAX отправляет такое изображение без искажений.
А spandsp по барабану, она вам чего хочешь отправит, хоть lzw, хоть rle
Ограничения такие:
1) Если tiff не b/w(Bits/Sample: 1), то будете посланы со стороны Spandsp
2) Если не выполнено Image Width: 1728, то скорее всего будете посланы со стороны принимающего факс-аппарата.
#515 06.07.2011 11:45
Ура!
#516 06.07.2011 11:48
наконецто!!
#517 06.07.2011 12:04
Отличная новость!
Ждем с нетерпением релиза 1.10 :)
#518 08.07.2011 14:37
Отличная новость
#519 24.10.2011 14:55
Помогите с факсом на Asterisk 1.8.8.0-rc1
Собирал на этом: spandsp-0.0.6pre18.tgz
FreePBX 2.9.0.7

В файле /etc/asterisk/sip.conf, добавил только это.

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

t38pt_udptl = yes
Получил такое в консоле 'sip show settings'

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

 T.38 support: Yes T.38 EC mode: FEC T.38 MaxDtgrm: -1 SIP realtime: Disabled

Скрещиваю с грандстримом

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

Product Model: GXW-4024 V0.4A Software Version: Program-- 1.0.5.5 Bootloader-- 1.0.0.9 Core-- 1.0.5.2 Base-- 1.0.5.2
Настройки по факсу, которые я крутил на грандстриме

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

Fax mode: T.38 (Auto Detect) Fax tone detection mode: Callee
После астериска звонки уходят на циску, настройки пира

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

codec g711alaw fax rate 9600 fax protocol t38 ls-redundancy 5 hs-redundancy 3 fallback pass-through g711alaw
Модули прогрузились

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

Module Description Use Count res_fax.so Generic FAX Applications 1 res_fax_spandsp.so Spandsp G.711 and T.38 FAX Technologies 0 2 modules loaded localhost*CLI> fax show version FAX For Asterisk Components: Applications: 1.8.8.0-rc1 Spandsp FAX Driver: 20110122 075024
Во вебе, по факсом по умолчанию стоит

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

Error Correction Mode: Yes Maximum transfer rate: 14400 Minimum transfer rate: 2400

Факсовый аппараты не соединяются между собой.

Какой дебаг реально посмотреть, что бы понять, что крутить....

Added after 1 hours 49 minutes:

Небольшие корректировки
1) Факсы соединяются
2) Ошибка передачи
Смотрел Дамп, ни слово о T.38, не слово о ReInvite, ни хоть какое-то упоминание, тупо бегает RTP.
Кто виноват, что делать?

Вот нашёл на шлюзе

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

Send Re-INVITE After Fax: No Yes
Поставлю в Yes. Завтра буду тестить.
Просьба кинуться доками про факсы и 1.8 Asterisk, а то гугол забанил не получается найти, что-нибудь более-менее нужное....
#520 25.10.2011 17:49
Кажется начало побеждаться, исходящий факс по T.38 пошёл, в общем верной дорогой шёл товарищи, отрубил canreinvite на sip логине, а то железки между собой пытались всё договориться.
Завтра на входящей попробую...
#521 26.10.2011 12:04
В общем всё заработало
nat=no
canreinvite=no

на trunk в вебе nat=no.

На циске

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

fax rate 9600 fax protocol t38 ls-redundancy 5 hs-redundancy 3 fallback none
А то всё равно оно тяготело после проверки возможности на Т.38, потом договориться на 711alaw, почему не понял, по этому сделал на циске на пирах жётско T.38 .

Проблемы были, что железки пытались между собой договорится мимо Астериска, а так же НАТ был, T.38 не пережил его.