Asterisk 1.4 spandsp app_rxfax
Сообщений: 89
|
Re: Asterisk 1.4 spandsp app_rxfax
Stalker, да, я так и сделал (поставил * 1.6), но теперь другая напасть:
Когда выполняется: exten=s,n,receivefax(${FAXFILE}) по IAX2 каналу, то в логи сыпется много-много iax2_read: I should never be called!
причем, если звонить по IAX на другие номера - все нормально, если звонить по SIP на Receivefax, то тоже все нормально... что это такое? в гугле про решение этой проблемы ничего нет...
|
Откуда: Russia
Сообщений: 72
|
Re: Asterisk 1.4 spandsp app_rxfax
contramundum
Отработка этого приложения в канале IAX2 по Т.38 невозможна (либо пока невозможна...). Например для работы приложений ReceiveFax/SendFax было внесено некоторое количество изменений в chan_sip (SIP канал), причём были изменения связанные и с нормальной работой T.38. В связи с чем используется именно IAX протокол? SIP не устраивает?
Для работы с факсами также можно попробовать связку IAXmodem+HylaFAX.
|
Сообщений: 866
|
Re: Asterisk 1.4 spandsp app_rxfax
1. Оригинальный rxfax/txfax вообще не завершал внутренний цикл до тех пор пока канал не терминировался (пока не клали трубку). Так что управление в диалплан не возвращалось даже в случае успешного приема факса.
Так что ЕДИНСТВЕННЫЙ способ что-то сделать с факсом в конце это повесить обработчик на экстеншен 'h'.
2. SendFAX/ReceiveFAX продолжают выполнение диалплана в случае успеха. Однако если требуется что-то делать и в случае неуспеха - опять же единственный путь это обработать экстеншен 'h'.
Я, например, всю обработку (и успех и не успех) делаю в 'h' чтобы не писать одно и то же два раза.
3. T38 по IAX не ходит. Пока.
|
Откуда: Волгоград
Сообщений: 62
|
Re: Asterisk 1.4 spandsp app_rxfax
dimas: Однако если требуется что-то делать и в случае неуспеха - опять же единственный путь это обработать экстеншен 'h'.
Не правда! После неуспеха продолжается выполнение, а в переменную пишется результат SUCCESS/FAILED вроде (имя переменной не помню, астериска под рукой нет, подробности по `core show application receivefax`)
У меня о неуспехе после небольшой паузы проговаривается соотв. сообщение.
|
Сообщений: 89
|
Re: Asterisk 1.4 spandsp app_rxfax
Ну, вот с IAX-ом разобрался - теперь просто по SIP шлю не думая, но теперь * умирает с ошибкой app_fax: t30_get_tx_ident ...))))) Подправил исходник, в соответствии с http://bugs.digium.com/view.php?id=14191 - вроде заработало...
Вполне вероятно, что у меня проблемы с Spandsp, хотя устанавливал именно то, что гарантированно работает (версия 0.0.5pre4), даже пересобирал... может нужно попробовать все "с нуля" установить...)))
Интересно, когда-нибудь будет полностью готовое и рабочее решение app_fax?
И кстати, у меня вроде нормально работает и без экстеншена "h"))
|
Откуда: Russia
Сообщений: 72
|
Re: Asterisk 1.4 spandsp app_rxfax
contramundum
Да я вот и думаю попробовать накидать рингплан без h. Вариант с h в принципе хорош тем, что после завершения переговоров можно сделать кучу действий с файлом факса, не занимая линию, просто в отключенном канале. С другой стороны я думаю перенести часть действий в основной кусок рингплана и поглядеть. В общем сегодня копаться буду. Сделаю несколько вариантов.
Рад, что у вас всё получилось. А по поводу Интересно, когда-нибудь будет полностью готовое и рабочее решение app_fax?
я думаю когда нибудь да будет :)) Собсно сами факсы как класс должны давно помереть. Есть куча современных способов передачи нужной информации на дальние расстояния, например электронная почта :)
|
Сообщений: 89
|
Re: Asterisk 1.4 spandsp app_rxfax
Stalker: Собсно сами факсы как класс должны давно помереть. Есть куча современных способов передачи нужной информации на дальние расстояния, например электронная почта :)
Да!! Полностью солидарен!! Просто некоторые люди до сих пор живут в каменном веке и им просто не объяснить, что емейл намного надежней, быстрей и удобней!.. :)
|
Сообщений: 866
|
Re: Asterisk 1.4 spandsp app_rxfax
dimas: Однако если требуется что-то делать и в случае неуспеха - опять же единственный путь это обработать экстеншен 'h'.
Не правда! После неуспеха продолжается выполнение, а в переменную пишется результат SUCCESS/FAILED вроде (имя переменной не помню, астериска под рукой нет, подробности по `core show application receivefax`)
У меня о неуспехе после небольшой паузы проговаривается соотв. сообщение.
Ну неуспех разный бывает. Если на том конце трубу положили, то ReceiveFAX прервет выполнение диалплана и обработать эту ситуацию и послать например мыло со словами как все плохо следующей строчкой диалплана - не получится.
Поэтому повторюсь что единственный надежный способ сделать что-то после приема факса в любом случае - это сделать это в экстеншене 'h'.
After some thought and advices from other people on asterisk-dev list I made the application to work the following way:
* If fax is sent ok, application sets FAXSTATUS=SUCCESS and returns successfully (dialplan execution continues)
* If there were some problems with the fax data (no fax for example) but the channel still up and ok, application sets FAXSTATUS=FAILED and returns successfully (dialplan execution continues)
* If there are problems with channel (like user hangup), application sets FAXSTATUS=FAILED and returns -1 which makes Asterisk to immediately abort dialplan execution.
Note that in the last case, dialplan code immediately following SendFAX/ReceiveFAX won't be executed. If you wamt to perform some action in any failure including channel hangup, you better not placing the code after the SendFAX/ReceiveFAX but place it in the 'h' extension instead. This extension gets executed on the hangup. You will have access to all FAX* variables there.
Something like:
[faxcontext]
exten = 100,1,ReceiveFAX(.......)
exten = 100,n,Hangup
exten = h,1,Noop(This will be executed regardles fax received Ok or user hung up)
exten = h,n,Noop(FAXSTATUS = ${FAXSTATUS})
http://bugs.digium.com/view.php?id=10815
|
Откуда: Kiev
Сообщений: 2
|
Re: Asterisk 1.4 spandsp app_rxfax
cyberianz: Сделал что то похожее на ubuntu
apt-get install libtiff4 libtiff4-dev libtiff-tools cmake mutt
wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.4pre15.tgz
./configure --prefix=/usr
make clean
make
make install
svn co https://agx-ast-addons.svn.sourceforge.net/svnroot/agx-ast-addons agx-ast-addons
cd ../agx-ast-addons/trunk/
выполняем
build.sh
После этого выскакивает:
-- Build files have been written to: /usr/src/agx-ast-addons/trunk
[ 12%] Building C object CMakeFiles/app_devstate.dir/app_devstate.o
cc1: warnings being treated as errors
/usr/src/agx-ast-addons/trunk/app_devstate.c: In function ‘action_devstate’:
/usr/src/agx-ast-addons/trunk/app_devstate.c:163: error: format not a string literal and no format arguments
make[2]: *** [CMakeFiles/app_devstate.dir/app_devstate.o] Error 1
make[1]: *** [CMakeFiles/app_devstate.dir/all] Error 2
make: *** [all] Error 2
что делать подскажите плз
|
Откуда: Москва
Сообщений: 3421
|
Re: Asterisk 1.4 spandsp app_rxfax
Возможно это причина - cc1: warnings being treated as errors
Надо сделать export CFLAGS="-Wnone", видимо пробегает где-то -Werror.
|
|