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

Вопросы по NvFaxDetect, RxFax, TxFax

Asterisk IP PBX 16 сообщений -
#1

Интересно, в чем я не прав - поправьте кто знает.
Итак, есть trixbox (asterisk 1.4.6)
Решил попробовать принимать факс.
Настроил детектирование на NvFaxDetect (линии по SIP с внешних шлюзов приходят)
Настроил мыло куда слать факс.
Набрал с факса номер который собственно настраивал.
Стартанул факс.
Стартовые факсовые гудки слышу более ничего не происходит.
Стал гуглить.
Нагуглил что за детектирование факс-сигнала внутри установленного канала отвечает некий NvFaxDetect и у меня его нетути...
Прочел последовательно
http://asteriskforum.ru/viewtopic.php?t=1210
http://asteriskforum.ru/viewtopic.php?t=1195
http://asteriskforum.ru/viewtopic.php?t=900
Решил установить spandsp, rxfax, txfax
Поставил http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.4pre9.tgz - с рекомендациями про ./configure --prefix=/usr
Вроде без вопросов стало
Скачал asterisk-1.4.11
Распаковал
Подправил исходники на предмет поддержки spandsp
В apps подкинул отсюда файлики http://asteriskforum.ru/viewtopic.php?p=7884#7884
Попробовал собрать астериск.
Получил ашипку
Код:
[CC] app_rxfax.c -> app_rxfax.o
app_rxfax.c: In function `rxfax_t38':
app_rxfax.c:315: error: structure has no member named `t38_status'
app_rxfax.c:315: error: `T38_NEGOTIATED' undeclared (first use in this function)
app_rxfax.c:315: error: (Each undeclared identifier is reported only once
app_rxfax.c:315: error: for each function it appears in.)
app_rxfax.c: In function `rxfax_audio':
app_rxfax.c:422: error: structure has no member named `t38_status'
app_rxfax.c:422: error: `T38_NEGOTIATED' undeclared (first use in this function)
app_rxfax.c:526: error: structure has no member named `t38_status'
app_rxfax.c: In function `rxfax_exec':
app_rxfax.c:723: error: structure has no member named `t38_status'
app_rxfax.c:723: error: `T38_NEGOTIATED' undeclared (first use in this function)
app_rxfax.c:728: error: structure has no member named `t38_status'
app_rxfax.c:733: error: structure has no member named `t38_status'
app_rxfax.c:733: error: `T38_NEGOTIATING' undeclared (first use in this function)
app_rxfax.c:740: error: structure has no member named `t38_status'
make[1]: *** [app_rxfax.o] Error 1
make: *** [apps] Error 2

Застрял.

Подскажите пожалуйста, может я не в ту сторону иду?
Хотелось бы в итоги прийти к следующим моментам:
- получения факса на мыло
- отправка факсов транзитом через астериск по Т.38
#2

SolarW писал(а):

- получения факса на мыло
- отправка факсов транзитом через астериск по Т.38

По обеим моментам сложно в 1.14.11 (у меня).
Я очень надеялся, что тема уже дожата в последних релизаз, оказалось - нет.

Прозрачность бриджинга очень условное понятие, мы, к примеру, рекомендуем клиентам использование Астериска как медиа гейтвея, устанавливая туда 2 сетевых карты, сооружая НАТ, чтобы полностью увести голосовой трафик через Астериск. При такой конфигурации внутренние абоненты сидят на внутренних адресах, для которых дефолтным шлюзом является *. Соответственно, в sip.conf у них NAT=no. Но если один из них т38 терминал с факсом - до свиданья!
То есть, если вывести его на реальный адрес, то более-менее отправки факсов в мир по т38 можно добиться, но изнутри - Sad
#3

Что-то я не понял...
Терминал с факсом (я так понимаю имеется в виду ATA к которому подключен факс-аппарат и у которого есть поддержка Т.38) должен быть с реальным адресом чтобы обмениваться RTP трафиком с удаленным шлюзом напрямую, без NAT'а?
Гммм... а что, астериск не проксирует это дело?

Added after 13 minutes:

Хотелось бы оценить на жизнеспособность следующую конструкцию тогда.
Стоит машинка с астериском и a2billing'ом зареганная на voipexchange.ru.
К ней цепляются клиенты.
Клиенты бывают разные:
- абонент с софт-фоном
- IP-телефон
- через шлюз подключенная аналоговая мини-АТС
- еще один астериск за спиной у которого может висеть весь вышеописанный зоопарк
Пока вся эта банда общается голосом - все хорошо.
Но вот то одному то другому начинает хотется отправлять факсы.
И никакие доводы о том что это вчерашний день на них не действуют (не понимают таких доводов их забугорные коллеги с которыми они факсами обмениваются).
Какие мои действия чтобы это все зажило?
Во-первых как я понимаю выбрать на voipexchange приземляющие узлы с поддержкой T.38.
Во-вторых подключить факс-аппарат через аташку с поддержкой Т.38.
В-третьих как я понимаю как-то замучить астериск на предмет поддержки T.38.
И вот этого третьего пункта я себе что-то совсем не представляю...


Последний раз редактировалось: SolarW (Пн Сен 24, 2007 9:21 am)
#4

SolarW писал(а):
Терминал с факсом (я так понимаю имеется в виду ATA к которому подключен факс-аппарат и у которого есть поддержка Т.3Cool должен быть с реальным адресом чтобы обмениваться RTP трафиком с удаленным шлюзом напрямую, без NAT'а?
Лучше.
Цитата:
Гммм... а что, астериск не проксирует это дело?
Вообрази - не у всех!
Цитата:
Хотелось бы оценить на жизнеспособность следующую конструкцию тогда.
Стоит машинка с астериском и a2billing'ом зареганная на voipexchange.ru.
К ней цепляются клиенты.
Клиенты бывают разные:
- абонент с софт-фоном
- IP-телефон
- через шлюз подключенная аналоговая мини-АТС
- еще один астериск за спиной у которого может висеть весь вышеописанный зоопарк
Пока вся эта банда общается голосом - все хорошо.
Но вот то одному то другому начинает хотется отправлять факсы.

Беспросветный ТЗ. У самого такой. Я пробивал его в более идеальном сценарии - подключенный к voipexchange.ru т38 модем. Который уж на все 100% отправляет по т38 как часы.
Цитата:
Во-первых как я понимаю выбрать на voipexchange приземляющие узлы с поддержкой T.38.
Направление верное, но тухлое. Многие узлы стоит птичка т38, а не деле - глухо.
Цитата:
Во-вторых подключить факс-аппарат через аташку с поддержкой Т.38.
В-третьих как я понимаю как-то замучить астериск на предмет поддержки T.38.
Во-во, в самую точку.
Побейся, может в Днепропетровске всё легче происходит? Я использовал все наработки и патчи, которые тут постились, не очень повлияло.
#5

Ded, ладно, ок, побьюсь.
Все ж приятней делать это осознавая что не только у одного меня сия проблема Smile

Граждане коллеги, упрощу вопрос: поделитесь пожалста app_nv_faxdetect.so скомпиленным под 1.4.11, а то что-то не выходит у меня его собрать.
Я ведь правильно понимаю что могу подсунуть сей модуль уже стоящему астериску? Или обязательно компилить надо астериск в его присутствии?
#6

а тебе nv_faxdetect ни к чему.
Он у нас работает уже больше 2-х лет как часы на одном из *.
Его вункционал и назначение - если у тебя городские абоненты звонят не напрямую, а через приветственную речь "Здравствуйте! Вы позвонили в Супер-Пупер Технологии!"
Так вот, в таком сценарии эту речь надо не в BackgroundDetect, а в NVBackgroundDetect, который слушает, что скажут во время воспроизведения вступительной речи, и распознаёт человек это или факс, Если человек - сразу кинет его в контекст talk, если факс - в контекст fax.
То есть для распознавания, если передающий факс - автомат, удобно. Но просто для того, чтобы принять факс это ненеобходимо.
#7

Ded писал(а):
а тебе nv_faxdetect ни к чему.
Он у нас работает уже больше 2-х лет как часы на одном из *.
Его вункционал и назначение - если у тебя городские абоненты звонят не напрямую, а через приветственную речь "Здравствуйте! Вы позвонили в Супер-Пупер Технологии!"
Так вот, в таком сценарии эту речь надо не в BackgroundDetect, а в NVBackgroundDetect, который слушает, что скажут во время воспроизведения вступительной речи, и распознаёт человек это или факс, Если человек - сразу кинет его в контекст talk, если факс - в контекст fax.
То есть для распознавания, если передающий факс - автомат, удобно. Но просто для того, чтобы принять факс это ненеобходимо.

Вот что значит плохой английский :-(
Я так понял что как раз для распознования...
Т.е. исходя из описания и настроек в триксбоксе получается следующее:
- в свойствах ext'а пишется метод определения факса (zaptel or nvfaxdetect) и мыло на которое отправлять принятый факс
- к примеру выставляем nvfaxdetect
- при звонке на этот ext и в течении разговора если nvfaxdetect слышит тоновые посылки факса то врубается прием факса и отсылка на указанное в свойствах ext'а мыло
- в случае если факсовые тоны будут обнаружены в течении
Цитата:
приветственную речь "Здравствуйте! Вы позвонили в Супер-Пупер Технологии!"

то тогда включается прием факса и отсылка его на мыло указанное в General Setting триксбокса
Необходимыми компонентами для этих сценариев кроме nvfaxdetect являются rxfax и txfax а также нужный им для работы spandsp превращающий "шипение" факса в картинку.
Для транзитного прохождения факсов через астериск (по Т.38) вся эта лабуда не нужна.

Я правильно все понял?
Если да - то это мне тоже надо :-)
#8

Неа, NVFaxDetect не может распознать тон факса во время разговора =) Да и вообще в 1.0 - 1.4 это по большей части невозможно. В 1.6 пожалуй можно будет сделать.

Added after 1 minutes:

А в остальном конечно правильно Smile

_________________
SuSE 10.1 / Asterisk-trunk / Celeron 1000 / chan_misdn (HFC)
Linksys PAP2T / SPA941 / SPA3102 / SPA2102
#9

IgorG писал(а):
Неа, NVFaxDetect не может распознать тон факса во время разговора =) Да и вообще в 1.0 - 1.4 это по большей части невозможно. В 1.6 пожалуй можно будет сделать.

Added after 1 minutes:

А в остальном конечно правильно Smile

Ничче не понимаю...
Иду сюда - http://www.voip-info.org/wiki/view/NVFaxDetect
Читаю:
Цитата:
Detects fax sounds on all channel types (on IAX and SIP too)

И еще
Цитата:
This application listens for fax tones (on IAX and SIP channels too) for waitdur seconds of time. In addition, it can be interrupted by digits, or non-silence. Audio is only monitored in the receive direction. If digits interrupt, they must be the start of a valid extension unless the option is included to ignore. If fax is detected, it will jump to the 'fax' extension. If a period of non-silence greater than 'mindur' ms, yet less than 'maxdur' ms is followed by silence at least 'sildur' ms then the app is aborted and jumps to the 'talk' extension. If all undetected, control will continue at the next priority.

Переведите пожалста на русский... а то май инглиш ис вери бэд, и я сие понял так как описал - детектирование факс тонов внутри уже поднятого сип-канала.
#10

Всё почти верно, но не rxfax и txfax сразу. Тебе для приёма факса txfax не нужен.
В приведённой выше цитате смысл такой - на входящий звонок если хочешь автораспознавание - надо дать небольшую задержку (вместо вступительной речи), во время которой и можно детектировать - кто нам звонит? Факс иль человек?
#11

Ded писал(а):
Всё почти верно, но не rxfax и txfax сразу. Тебе для приёма факса txfax не нужен.

Это я подозревал Smile
Ded писал(а):
В приведённой выше цитате смысл такой - на входящий звонок если хочешь автораспознавание - надо дать небольшую задержку (вместо вступительной речи), во время которой и можно детектировать - кто нам звонит? Факс иль человек?

Хорошо, тогда не затруднит ли тебя (как пользователя триксбокса) рассказать в двух словах логику работы триксбокса с факсами?
С учетом отсутствия в системе zap-каналов.
#12

Много вариантов слишком. Входящий факс роутится на
1. железный факс, подключеный к
1.1 простому АТА, или
1.2 с т38.
в этом случае 1.1 - G711 passtru, 1.2 - t38 passtru.
Если входящий - общий DID, то можно (но не обязательно) воткнуть впереди распознавание NVFaxDetect, которое если услышит попискивания Т.30 - распознает что к чему и перенаправит на
[fax]
s => 1,Dial(SIP/111) ; где SIP/111 - это 1.1 или 1.2

2. на внутренний номер 666 (аццкий сотона!), в каждом триксбоксе - как внутрениий системный факс, имеющий настройки в General configuration типа, на какое мыло слать.
в этом случае также можно (но не обязательно) воткнуть впереди распознавание NVFaxDetect, (далее - по тексту вверху). Тут тоже присутствует тема приёма по
2.1 7G11
2.2 Т38

и в 1 и в 2 рутинг может быть ручным -"Алло! Компания Супер-Пупер, слушаю вас........ Надя, там опять факс передают, я забыла - что надо нажимать? Ага, #111# "
#13

Два доп вопроса если можно:

1) А каким макаром в эти сценарии вписываются настройки факса для каждого ext'а в триксбоксе?
2) Ну и все-таки хотелось бы подержаться за app_nv_faxdetect.so скомпиленный под 1.4.11...
#14

1) триксбокс позволяет завести таким образом как-ьы личный виртуальный факс каждому работнику. Если указано его использование, то, допустим, какой-то умник желает мне лично передать факс, а не всей организации. Дозванивается на приветственный "Наберите личный номер сотрудника...", донабирает там 721, и нажимает на факсе "Старт". Факс придет мне в мыло.
Ума не приложу, зачем это делать, почему не послать просто мыло, но такая возможность есть.
#15

Ded писал(а):
1) триксбокс позволяет завести таким образом как-ьы личный виртуальный факс каждому работнику. Если указано его использование, то, допустим, какой-то умник желает мне лично передать факс, а не всей организации. Дозванивается на приветственный "Наберите личный номер сотрудника...", донабирает там 721, и нажимает на факсе "Старт". Факс придет мне в мыло.
Ума не приложу, зачем это делать, почему не послать просто мыло, но такая возможность есть.

Ага, теперь все стало на свои места.
Значит пауза которая в настройках (в секундах) назначается - это в течении какого времени NvFaxDetect будет пытаться сообразить пищит ли факс и если да - то принимаем его, если нет - значит голосовой звонок.
А насчет "послать просто мыло" то тут есть такие моменты:
- во-первых чтобы засунуть в мыло подписанный и заверенный печатью документ (уж не говорю о рисунках напечатанных или от руки нарисованных) нужен как минимум сканер а он доступен не всегда
- во-вторых: ты мне наверное не повериш но есть на планете Земля до фига мест где и телефон за счастье а интернетом (с мылами и прочими радостями) и не пахнет Smile
Типа выбираюсь я из своего областного центра, еду на периферию в область (на элеватор предположим) а там из всего научно-технического прогресса компутер на котором учет машин с зерном ведется и факс с которого в центральный офис вечером распечатанные сводки шлются...
#16

Помню тут гдето был хороший ответ по сабжу - как все это скрутить вместе на одной машине.
Чтото поиск уже весь излохматил - ничего нет, странно - топик удалили? или мне приснилось... Crying or Very sad
Вобщем слышал что у openser есть поддержка работы с radius (а в астерсик её еще нет) поэтому есть мысль скрутить их вместе, если кто имел подобный опыт - просьба дать хотя бы минимальную инструкцию - уверен там есть свои нюансы.

_________________
Успехов!