0
Speedflow Инновационное решение 4 класса для транзита VoIP и SMS трафика.
Rovex Telecom Ваш надежный партнер. 10 лет на рынке Wholesale.
0

VentaFax->T38modem(SIP)->Asterisk->SIP-провайдер

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

VentaFax->T38modem(SIP)->Asterisk->SIP-провайдер

Сообщение Дима77 » Вс авг 31, 2008 7:08 pm

P.S. Оригинал. Копия размещена здесь: http://www.asteriskforum.ru/viewtopic.php?t=2749 :wink:
------------------------------------
Добавлено 11.09.2008
:) Удалось собрать эту версию T38modem под WINDOWS (т.е. без Linux и без andLinux). Модем полностью фукционален и в совокупности с com0com работает также хорошо как и его линуксовский родственник. :)
Добавлено 15.09.2008
Описание сборки под WIN:
http://www.voipinfo.ru/forum/viewtopic.php?t=11906
--------------------------------------
При изучении данного вопроса было использовано:
1.статья T38modem configuration with Asterisk Автор Atis Lezdins
Источник: http://www.voip-info.org/wiki/index.php?page_id=5096
2.основной вклад в "исправление" Asterisk сделал dimas ( http://www.asteriskforum.ru ). Ему удалось понять происходящее и написать правильный код.
3.несколько ценных советов дал ded, это позволило развиваться мыслям в нужном направлении.
4. ну а я все это собрал в одну кучу. Как я двигался можно понять из этого топика http://www.voipinfo.ru/forum/viewtopic.php?t=11489
5. я использую AndLinux, т.е. все работает под Windows. То, что касается сути вопроса содержится в п.п.3-6
6. ну и конечно спасибо автору этого чудо-модема: Original author: Vyacheslav Frolov С удовольствием бы с ним списался (остались нерешенные вопросы), но нет координат.

1. Устанавливаем AndLinux andLinux Beta 1 (04/21/2008) под WIN
Берем отсюда KDE-версию.
http://www.andlinux.org/downloads.php
На диске NTFS понадобится около 5ГБ, если у вашего PC ореративной памяти 2гб, то 512мб под AndLinux будет в самый раз.
Разумно сразу ставить "как сервер windows", если нет желания запускать каждый раз, то потом поставите в службе Andlinux "запускать вручную"
Команды остановки-запуска будут:
Код: Выделить всё
net start andlinux
net stop andlinux

Программа установки установит саму систему, виртуальный сетевой адаптер Tap-Colinux и программу Xming для комфортного доступа к интерфейсу линукс из win.
Для того чтобы видеть процесс загрузки "линукса" используется andLinux Console (NT), для остального она не нужна и не удобна.
Для загрузки иногда нужно нек. время, когда программа что-то ворошит на виртуальном "диске", пугаться не следует, надо подождать до 5 минут. На XP у меня так происходит постоянно после загрузки PC, на WIN2003 крайне редко.
Рядом с часами(в WIN) появится KDE-меню.
Основные программы, которыми имеет смысл пользоваться для комфортного общения с системой:
1) Konsole
2) Konqueror(красненький)-для просмотра папок в Линукс
3) Konqueror(синенький)-для просмотра интернет-страниц, для доступа к WIN-файлам по технологии SAMBA, для доступа в корзину.
4)Synaptic-для анализа и поиска имен недостающих пакетов. (Устанавливать я лично предпочитаю через apt-get)
Желательно сразу заменить звуковую систему pulseaudio на esd (все инструкции в файле esd.zip)
Важно понимать, что вся система находится в файле andLinux\Drives\base Это открывает возможность резервирования системы перед выполнением сомнительных действий, переноса ее на другой PC по сети, копирования на DVD-болванку.
Т.е. файл base + файл andlinux-beta1-kde.exe это ваш дистрибутив.

2. Настраиваем "сеть". Основная задача -чтобы Linux сидел в той же подсети, что и все остальное Voip-хозяйство.
Есть 2 способа
1)WinPcap
2)Сетевой мост WIN
Все тонкости и подводные камни описаны здесь:
http://www.voipinfo.ru/forum/viewtopic.php?t=11562

3.Собственно установка T38modem(SIP)
За основу взята инструкция:
http://www.voip-info.org/wiki/index.php?page_id=5096
(автор Atis Lezdins).
1)Доустанавливаем недостающие необходимые пакеты:
apt-get install g++
apt-get install flex
apt-get install bison
apt-get install libexpat1-dev

Необходимость первых 3-х достаточно очевидно, а вот насчет libexpat1-dev пришлось ломать голову около месяца, ибо при компиляции OPAL пишет про какую-то PXML, и никакого намека на название отсутствующего пакета. Из внимательного рассмотрения того что пишет ./configure в OPAL тоже ничего не очевидно.
2)Скачиваем дистрибутивы в папку /root
cd /root
cvs -z9 -d :pserver:anonymous@openh323.cvs.sourceforge.net:/cvsroot/openh323 co ptlib_unix
cvs -z9 -d :pserver:anonymous@openh323.cvs.sourceforge.net:/cvsroot/openh323 co -D "5/21/2007 23:59:59" opal
cvs -z9 -d :pserver:anonymous@openh323.cvs.sourceforge.net:/cvsroot/openh323 co t38modem

Дата дистрибутива OPAL существенна, ибо с более поздними дистрибутивами OPAL модем не компилируется.
Сам модем получится версии 1.0.0, существует версия 1.0.1 на сайте h323plus, но эта версия имеет проблемы при выполнении команды atd при использовании sredird, поэтому лучше следовать буквально.
3) Устанавливаем pwlib:
cd /root/pwlib
./configure
make
make install

4) Устанавливаем OPAL:
cd /root/opal
./configure
make
make install
ldconfig

Команда ldconfig существенна, без нее модем при запуске не найдет нужных библиотек.
5) Устанавливаем T38modem:
cd /root/t38modem
make USE_OPAL=1 opt
make USE_OPAL=1 install


4.Запуск T38modem по SIP
[root@andLinux1 ~]# t38modem -tt --no-h323 -u T38modem --sip-old-asn --sip-listen udp\$192.168.11.5:6060 --sip-redundancy 2 -p ttyx0,ttyx1 --route "modem:.*=sip:<dn>@192.168.11.5:5060" --route "sip:.*=modem:<dn>"
-u T38modem -это username of T38modem как сип-клиента
--sip-old-asn -без этой строчки факсы будут ходить только между двумя модемами
sip-listen udp\$192.168.11.5:6060 -модем слушает на порту 6060, где 192.168.11.5-адрес andLinux в локальной сети
192.168.11.5:5060-на этот адрес и на этот порт модем делает исх.звонки
---------------------------------------------------------------------------------
5. Настраиваем Asterisk (на примере Sipnet)
sip.conf
Код: Выделить всё
[general]
t38pt_udptl = yes
register => sipname:sippassword@sipnet.ru/SIP-ID
nat=no
canreinvite=yes
...
[sipnet]
type=friend
secret=sippassword
username= SIP-ID
host=sipnet.ru
insecure=invite
fromuser=SIP-ID
fromdomain=sipnet.ru
dtmfmode=rfc2833
.....
[T38modem]
type=friend
host=192.168.11.5
username=T38modem
dtmfmode=rfc2833
nat=no
canreinvite=no
context=office
callerid=2001
port=6060
t38udptlsupport=yes

здесь canreinvite=no для модема в моем во всяком случае оказалось существенно,при yes модем ругался на какие-то кодеки
extensions.conf
Код: Выделить всё
[office]
exten => _8.,1,Dial(SIP/sipnet/${EXTEN},60,gA(Sendfax))
exten => 803,1,Dial(SIP/T38modem,90,g)

A(Sendfax)-Астериск пригрывает фразу "Примите факс" перед передачей факса
803-extension, при дозвоне на который T38modem включается на прием

6. Правим код Астериск. Важно!!!
Здесь основная заслуга и основные идеи принадлежат dimas с http://www.asteriskforum.ru, я только правил,тестировал и снимал логи.
Тестирование проходило на asterisk-1.6/trunk, но я уже готов подтвердить что все работает с asterisk-1.4.21.1 (у меня он с Addons 1.4.7 и патчами для T38 и Send-Receive-fax, но это все роли не играет, можно брать чистый астериск).
Dimas любезно разрешил мне опубликовать результаты.
1) в исходнике правим файл /usr/src/asterisk-1.4.21.1/channels/chan_sip.c
Для asterisk-1.4.21.1 это примерно строка 5219
Для asterisk-1.6/trunk это примерно строка 6819
Находим код
Код: Выделить всё
      } 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 (debug)
            ast_verbose("Got T.38 offer in SDP in dialog %s\n", p->callid);
         udptlportno = x;
         numberofmediastreams++;
      } else

и меняем его на
Код: Выделить всё
      } 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

--------------------------
P.S. Еще неплохо бы сразу сделать 2 вещи:касается не столько данного вопроса, сколько T38 в астериск в принципе:
1/в этом же файле chan_sip.c найти место (приблиз.строка 834):
Код: Выделить всё
/*!< This is default: NO MMR and JBIG trancoding, NO fill bit removal, transferredTCF TCF, UDP FEC, Version 0 and 9600 max fax rate */
static int global_t38_capability = T38FAX_VERSION_0 | T38FAX_RATE_2400 | T38FAX_RATE_4800 | T38FAX_RATE_7200 | T38FAX_RATE_9600;

и поменять на
Код: Выделить всё
static int global_t38_capability = T38FAX_VERSION_0 | T38FAX_RATE_2400 | T38FAX_RATE_4800 | T38FAX_RATE_7200 | T38FAX_RATE_9600 | T38FAX_RATE_12000 | T38FAX_RATE_14400;

Это даст вашему факсу возможность проходить на 14400: в тех случаях когда астериск вмешивается в факс-трафик(не всегда!) он будет резать скорость на 9600 из-за этой строчки.
2/Применить сей патч: http://bugs.digium.com/view.php?id=10943
Это даст возможность поиграться-воспользоваться переменной disablep2p=yes в rtp.conf и Packet2Packet bridge при установке соединения у вас точно уже не получится. Дело в том что этот bridge частенько приводит к проблемам при T38, как я обратил внимание, и это не всегда лечится командой canreinvite=yes, кот.кстати с T38modem не в ладах.
-----------------------------
2) Пересобираем астериск, чтобы изменения вступили в силу:
Код: Выделить всё
cd /usr/src/asterisk-1.4.21.1
make
make install

Здесь требуются некоторые пояснения.
Звонок с T38modem происходит так:
dimas писал(а):1.t38modem говорит о том что у него есть T38 уже в первом INVITE. При этом T38 перечислен вместе с голосовыми кодеками.

Код: Выделить всё
v=0
o=- 1220426658 1220426658 IN IP4 192.168.11.5
s=Opal SIP Session
c=IN IP4 192.168.11.5
t=0 0
m=audio 5002 RTP/AVP 0 8 101 100
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15,32-49
a=rtpmap:100 NSE/8000
a=fmtp:100 192-193
m=image 5006 udptl t38

2.Asterisk почему-то обращает внимание на нижнюю строчку, игнорируя голосовые кодеки и сразу шлет факс-приглашение провайдеру
Код: Выделить всё
v=0
o=root 1100491942 1100491942 IN IP4 192.168.11.5
s=Asterisk PBX SVN-trunk-r140692
c=IN IP4 192.168.11.5
t=0 0
m=image 4773 udptl t38
a=T38FaxVersion:0
a=T38MaxBitRate:9600
a=T38FaxFillBitRemoval:0
a=T38FaxTranscodingMMR:0
a=T38FaxTranscodingJBIG:0
a=T38FaxRateManagement:transferredTCF
a=T38FaxMaxBuffer:400
a=T38FaxMaxDatagram:400
a=T38FaxUdpEC:t38UDPFEC

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

С успешными логами прохождения факса можно ознакомиться здесь:
1)лог звонка с т.зр. Астериск
http://dump.ru/file_catalog/1042097
2)лог звонка с т.зр. T38modem
http://dump.ru/file_catalog/1042098
---------------------------------------------------------------------------------
п.п.7-9 по аналогии,как описано здесь
http://www.voipinfo.ru/forum/viewtopic.php?t=11467
7. установка sredird и проброс модемов в TCP/IP
Разумно использовать
apt-get install sredird
apt-get install xinetd
Для перезапуска xinetd понадобится команда service. Чтобы она работала:
apt-get install sysvconfig
Для тестирования модема at-командами:
apt-get install cu
cu -l ttyx0

8. создание виртуальных COM-портов в Windows (DialOUT/EZ)
9. подключение программы (программ) Ventafax к этим портам

----------------------------------------------------------------------------
при установке на не совсем чистую систему в случае ошибок могут понадобиться след.пакеты: libsasl2-dev; libldap2-dev, libssl-dev, libsdl1.2-dev, libspeex-dev,libsrtp1-dev,libgsm1-dev,...и т.п.
Лучше всего смотреть на что ругается компилятор и пользоваться поиском через Synaptic для анализа ситуации и определения точного имени недостающего пакета, при этом не забывать обновлять информацию в его БД, ибо точное имя пакета в репозитории может измениться и установка закончится неудачей.
----------------------------------------------------------------------------
некоторые дополнительные соображения и описания по поводу нижеизложенного здесь: http://www.voipinfo.ru/forum/viewtopic.php?t=11489&start=20
Что оно умеет:
1)практически без проблем принимать факсы по T38 при входящем звонке на тот порт на кот. он слушает
Тестировались входящие звонки (с Asterisk, с AXON PBX, напрямую), c AP200B, Kapanga, ComISDN,X-CAPI,Zoiper,с приложения SendFax(*).
Принимать факсы от внешнего SIP-провайдера -был протестирован Sipnet через номер доступа-результат положительный.
T38modem корректно работает с ASTERISK по SIP, когда он принимает факс.
2) -отправлять факсы по "кривому методу"(см.картинку в соседнем топике) через AXON PBX на внешнего SIP-провайдера (тестировано на SIPNET без проблем)
-отправлять факсы на AP200B по "кривому методу" через AXON или напрямую на адрес AP.
-в нек. случаях но как-то криво и с ошибками отправлять факсы через Asterisk на внутр. extension's типа капанги и ReceiveFax(*). Но мне не нравится как это работает, и это всегда заканчивается ошибкой, даже если факс прошел целиком.
3)Умеет работать в режиме ECM по T38.
4)корректно отправлять факсы НА ВНЕШНЕГО SIP-ПРОВАЙДЕРА через ASTERISK при исходящих звонках при условии применения правки Астериск, что описано в п.6
Что оно не умеет:
1) не умеет сообщать SIP-серверу пароль и регистрироваться на SIP-сервере.
Последний раз редактировалось Дима77 Пн сен 15, 2008 3:49 pm, всего редактировалось 7 раз(а).
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm

Сообщение Дима77 » Сб сен 06, 2008 9:09 pm

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

Сообщение Дима77 » Пн сен 22, 2008 3:23 am

Рано или поздно станет вопрос о добавлении модема в автозагрузку. Потратил несколько часов на поиск решения: казалось бы задача тривиальная, но для линукс оказалась тяжелой:
1)очень длинная строка запуска (а я ее еще удлиннил)
2)присутствуют кавычки
Короче рабочее решение такое:
Добавление T38modem в автозагрузку LINUX.
1. В рабочей папке модема, т.е. /usr/local/bin создаем текстовой файл скрипта t38start
В него пишем строчки:
Код: Выделить всё
#! /bin/sh
/usr/local/bin/t38modem --no-h323 -u username -s password -q "192.168.11.1:5060" --sip-old-asn --sip-listen udp\$192.168.11.5:6060 --sip-redundancy 2 -p ttyx0,ttyx1 --route "modem:.*=sip:<dn>@192.168.11.1:5060" --route "sip:.*=modem:<dn>"

В свойствах этого файла существенно указать, что он "Is executable"
2. В файле /etc/inittab добавляем строчку:
Код: Выделить всё
C2::respawn:sh -c 'exec /usr/local/bin/t38start'

3. Перезапускаем линукс, модем работает в фоне. (-tt я убрал, т.к. это вывод дебага на экран, а экрана как бы уже и нет)
P.S. Конечно, был бы конфиг для модема было бы проще, а то длина командной строки просто переваливает критический порог, да еще и кавычки непонятно где и как обозначать.
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm

Re: VentaFax->T38modem(SIP)->Asterisk->SIP-провайдер

Сообщение darkbasic » Вс окт 04, 2009 9:06 pm

Hi!
I followed your istructions, but I cannot send/receive fax with a sip provider...
I'm using Asterisk SVN-trunk-r222030, ptlib_unix cvs, opal cvs "5/21/2007 23:59:59" and t38modem cvs.

I run t38modem with:
t38modem -tt -o /var/log/t38modem.log --no-h323 -u T38modem --sip-old-asn --sip-listen udp\$127.0.0.1:6060 --sip-redundancy 2 --ptty +/dev/ttyT38-1 --route "modem:.*=sip:<dn>@127.0.0.1:5060" --route "sip:.*=modem:<dn>"

This is my sip.conf:

[general]
t38pt_udptl = yes
context=default
bindport=5060
bindaddr=0.0.0.0
externip=<myip>
localnet=192.168.1.0/255.255.255.0
nat=no
canreinvite=yes
register=<mynumber>:<mypassword>@voip.eutelia.it:5060/<mynumber>


[T38modem]
type=friend
host=127.0.0.1
username=T38modem
dtmfmode=rfc2833
nat=no
canreinvite=no
context=fax_out
port=6060
t38pt_udptl = yes

[eutelia]
type=friend
secret=<mypassword>
username=<mynumber>
host=voip.eutelia.it
insecure=invite
fromuser=<mynumber>
fromdomain=voip.eutelia.it
dtmfmode=rfc2833
context=eutelia-in



This is my extensions.conf:

[fax_out]
exten => _X.,1,DIAL(SIP/eutelia/${EXTEN},60)
exten => _X.,n,Hangup()


I send the fax with:

sendfax -n -d <callednumber> /root/prova.txt




Connected to Asterisk SVN-trunk-r222030 currently running on xen1 (pid = 30274)
xen1*CLI> core set debug channel all
Debugging on new channels is enabled
xen1*CLI> core set debug 100
Core debug was 0 and is now 100
xen1*CLI> core set verbose 100
Verbosity was 0 and is now 100
== Using UDPTL CoS mark 5
-- Executing [<callednumber>@fax_out:1] Dial("SIP/T38modem-01265cf8", "SIP/eutelia/<callednumber>,60") in new stack
== Using UDPTL CoS mark 5
-- Called eutelia/<callednumber>
<< [ TYPE: Control (4) SUBCLASS: Unknown control '14' (14) ] [SIP/eutelia-0126c438]
-- SIP/eutelia-0126c438 is making progress passing it to SIP/T38modem-01265cf8
<< [ TYPE: Null Frame (5) SUBCLASS: N/A (0) ] [SIP/eutelia-0126c438]
<< [ TYPE: Null Frame (5) SUBCLASS: N/A (0) ] [SIP/eutelia-0126c438]
<< [ TYPE: Control (4) SUBCLASS: Unknown control '22' (22) ] [SIP/eutelia-0126c438]
<< [ TYPE: Control (4) SUBCLASS: Answer (4) ] [SIP/eutelia-0126c438]
-- SIP/eutelia-0126c438 answered SIP/T38modem-01265cf8
-- Locally bridging SIP/T38modem-01265cf8 and SIP/eutelia-0126c438
<< [ TYPE: Null Frame (5) SUBCLASS: N/A (0) ] [SIP/eutelia-0126c438]
<< [ TYPE: Null Frame (5) SUBCLASS: N/A (0) ] [SIP/eutelia-0126c438]
<< [ TYPE: Null Frame (5) SUBCLASS: N/A (0) ] [SIP/eutelia-0126c438]
[...]
<< [ TYPE: Null Frame (5) SUBCLASS: N/A (0) ] [SIP/eutelia-0126c438]
<< [ TYPE: Null Frame (5) SUBCLASS: N/A (0) ] [SIP/eutelia-0126c438]
<< [ TYPE: Null Frame (5) SUBCLASS: N/A (0) ] [SIP/eutelia-0126c438]
<< [ TYPE: Null Frame (5) SUBCLASS: N/A (0) ] [SIP/eutelia-0126c438]
<< [ TYPE: Control (4) SUBCLASS: T38_Parameters/Negotiation Requested (24) ] [SIP/eutelia-0126c438]
<< [ TYPE: Control (4) SUBCLASS: Unknown control '20' (20) ] [SIP/eutelia-0126c438]
<< [ TYPE: Control (4) SUBCLASS: Unknown control '20' (20) ] [SIP/eutelia-0126c438]
<< [ TYPE: Null Frame (5) SUBCLASS: N/A (0) ] [SIP/eutelia-0126c438]
<< [ TYPE: Null Frame (5) SUBCLASS: N/A (0) ] [SIP/eutelia-0126c438]
<< [ TYPE: Null Frame (5) SUBCLASS: N/A (0) ] [SIP/eutelia-0126c438]
<< [ TYPE: Null Frame (5) SUBCLASS: N/A (0) ] [SIP/eutelia-0126c438]
[Oct 4 19:38:44] WARNING[30292]: chan_sip.c:3699 retrans_pkt: Maximum retries exceeded on transmission 261e7d5c-7aaf-de11-8cea-00163ef92eec@xen1.example.com for seqno 1 (Critical Response) -- See doc/sip-retransmit.txt.
[Oct 4 19:38:44] WARNING[30292]: chan_sip.c:3726 retrans_pkt: Hanging up call 261e7d5c-7aaf-de11-8cea-00163ef92eec@xen1.example.com - no reply to our critical packet (see doc/sip-retransmit.txt).
== Spawn extension (fax_out, <callednumber>, 1) exited non-zero on 'SIP/T38modem-01265cf8'

Thank you,
Darkbasic
darkbasic
Новичок
 
Сообщения: 14
Зарегистрирован: Вс окт 04, 2009 4:27 pm
Карма: + 0 -

Re: VentaFax->T38modem(SIP)->Asterisk->SIP-провайдер

Сообщение ded » Вс окт 04, 2009 11:54 pm

Darkbasic, you sure, that SIP/eutelia provide t38 termination? If yes, t38pt_udptl = yes should be enabled on eutelia peer too.

btw, core set debug 100 - itsa overmind. core set debug 5 full enough.
ded
Специалист
 
Сообщения: 2905
Зарегистрирован: Сб май 03, 2008 2:47 am

Re: VentaFax->T38modem(SIP)->Asterisk->SIP-провайдер

Сообщение darkbasic » Пн окт 05, 2009 1:37 am

ded писал(а):Darkbasic, you sure, that SIP/eutelia provide t38 termination? If yes, t38pt_udptl = yes should be enabled on eutelia peer too.

Yes I am. I already tried enabling it on eutelia too.
darkbasic
Новичок
 
Сообщения: 14
Зарегистрирован: Вс окт 04, 2009 4:27 pm
Карма: + 0 -

Re: VentaFax->T38modem(SIP)->Asterisk->SIP-провайдер

Сообщение darkbasic » Пн окт 05, 2009 2:51 am

I just tried the asterisk t38 gateway patch and it works like a charm. t38modem doesn't...
darkbasic
Новичок
 
Сообщения: 14
Зарегистрирован: Вс окт 04, 2009 4:27 pm
Карма: + 0 -

Re: VentaFax->T38modem(SIP)->Asterisk->SIP-провайдер

Сообщение ded » Пн окт 05, 2009 9:45 am

In log I see
<< [ TYPE: Control (4) SUBCLASS: T38_Parameters/Negotiation Requested (24) ] [SIP/eutelia-0126c438]
but no respond on this request.

Probably canreinvite=no should be insert into eutellia peer, instead T38modem.

[T38modem]
type=friend
host=127.0.0.1
username=T38modem
dtmfmode=rfc2833
nat=no
canreinvite=no ; for T38modem peer it's doesn't matter at all
ded
Специалист
 
Сообщения: 2905
Зарегистрирован: Сб май 03, 2008 2:47 am

Re: VentaFax->T38modem(SIP)->Asterisk->SIP-провайдер

Сообщение darkbasic » Пн окт 05, 2009 1:29 pm

I already tried all possible combinations of canreinvite: none works :(
darkbasic
Новичок
 
Сообщения: 14
Зарегистрирован: Вс окт 04, 2009 4:27 pm
Карма: + 0 -

Re: VentaFax->T38modem(SIP)->Asterisk->SIP-провайдер

Сообщение ded » Пн окт 05, 2009 1:40 pm

Did you tried to test loopback fax as described in http://www.voip-info.org/wiki/index.php?page_id=5096 ?

sendfax -h 127.0.0.1 -f email@company.com -n -D -d 112233 /etc/passwd
ded
Специалист
 
Сообщения: 2905
Зарегистрирован: Сб май 03, 2008 2:47 am

Re: VentaFax->T38modem(SIP)->Asterisk->SIP-провайдер

Сообщение darkbasic » Пн окт 05, 2009 4:23 pm

ded писал(а):Did you tried to test loopback fax as described in http://www.voip-info.org/wiki/index.php?page_id=5096 ?

sendfax -h 127.0.0.1 -f email@company.com -n -D -d 112233 /etc/passwd


I can't see the difference from "sendfax -n -d <callednumber> /root/prova.txt".
According to man:
-h [modem@]host[:port]

Force the jobs to be processed on a specific host and, optionally, using a particular modem. The host may be either a symbolic name or a network address. If no -h option is supplied, sendfax uses the FAXSERVER environment variable to identify the Hyla FAX server to which the jobs should be directed. If no server is specified then sendfax attempts to contact a server on the local host. If no modem is specified, the job will be submitted to any available modem.

-D

Enable notification by electronic mail when the facsimile has been delivered. By default Hyla FAX will notify the submitter only if there is a problem with a job.
darkbasic
Новичок
 
Сообщения: 14
Зарегистрирован: Вс окт 04, 2009 4:27 pm
Карма: + 0 -

Re: VentaFax->T38modem(SIP)->Asterisk->SIP-провайдер

Сообщение ded » Пн окт 05, 2009 4:43 pm

did you can see t38modem and faxgetty on process list?

Код: Выделить всё
tmp]# ps auxwf|grep t38
root     26403  0.0  0.0  1680  592 pts/7    S    16:28   0:00  |               \_ grep t38
root       371  0.0  0.1 24232 1692 ?        S    Jul14   1:05 /usr/local/bin/t38modem -n --old-asn -F -i 10.244.128.17 --listenpor
root       372  0.0  0.1 24232 1692 ?        S    Jul14   0:58  \_ /usr/local/bin/t38modem -n --old-asn -F -i 10.244.128.17 --liste
root       373  0.0  0.1 24232 1692 ?        S    Jul14   0:12      \_ /usr/local/bin/t38modem -n --old-asn -F -i 10.244.128.17 --l
root       374  0.0  0.1 24232 1692 ?        S    Jul14   0:00      \_ /usr/local/bin/t38modem -n --old-asn -F -i 10.244.128.17 --l
root       375  0.0  0.1 24232 1692 ?        S    Jul14   0:00      \_ /usr/local/bin/t38modem -n --old-asn -F -i 10.244.128.17 --l
root       376  0.0  0.1 24232 1692 ?        S    Jul14   0:00      \_ /usr/local/bin/t38modem -n --old-asn -F -i 10.244.128.17 --l
root       377  0.0  0.1 24232 1692 ?        S    Jul14   0:00      \_ /usr/local/bin/t38modem -n --old-asn -F -i 10.244.128.17 --l
root       378  0.0  0.1 24232 1692 ?        S    Jul14   0:00      \_ /usr/local/bin/t38modem -n --old-asn -F -i 10.244.128.17 --l
root       379  0.0  0.1 24232 1692 ?        S    Jul14   0:00      \_ /usr/local/bin/t38modem -n --old-asn -F -i 10.244.128.17 --l
root       380  0.0  0.1 24232 1692 ?        S    Jul14   0:00      \_ /usr/local/bin/t38modem -n --old-asn -F -i 10.244.128.17 --l
root       381  0.0  0.1 24232 1692 ?        S    Jul14   0:00      \_ /usr/local/bin/t38modem -n --old-asn -F -i 10.244.128.17 --l


Код: Выделить всё
tmp]# ps auxwf|grep faxgetty
root     26594  0.0  0.0  1680  592 pts/7    S    16:30   0:00  |               \_ grep faxgetty
uucp      1414  0.0  0.0  4136 1068 ?        S    Jun10   0:30 /usr/local/sbin/faxgetty -D ttyx2
uucp      1415  0.0  0.0  4136 1068 ?        S    Jun10   0:30 /usr/local/sbin/faxgetty -D ttyx1
uucp      1416  0.0  0.0  4124 1064 ?        S    Jun10   0:30 /usr/local/sbin/faxgetty -D ttyx0
uucp      1417  0.0  0.0  4136 1068 ?        S    Jun10   0:31 /usr/local/sbin/faxgetty -D ttyx3
uucp      1418  0.0  0.0  4140 1064 ?        S    Jun10   0:30 /usr/local/sbin/faxgetty -D ttyx4
uucp      1419  0.0  0.0  4140 1064 ?        S    Jun10   0:28 /usr/local/sbin/faxgetty -D ttyx5
ded
Специалист
 
Сообщения: 2905
Зарегистрирован: Сб май 03, 2008 2:47 am

Re: VentaFax->T38modem(SIP)->Asterisk->SIP-провайдер

Сообщение darkbasic » Пн окт 05, 2009 6:07 pm

Yes. Looking at asterisk's log you can see the fax comes from SIP/T38modem.
darkbasic
Новичок
 
Сообщения: 14
Зарегистрирован: Вс окт 04, 2009 4:27 pm
Карма: + 0 -

Re: VentaFax->T38modem(SIP)->Asterisk->SIP-провайдер

Сообщение ded » Пн окт 05, 2009 6:37 pm

Plz analyze /var/log/t38modem.log
ded
Специалист
 
Сообщения: 2905
Зарегистрирован: Сб май 03, 2008 2:47 am

Re: VentaFax->T38modem(SIP)->Asterisk->SIP-провайдер

Сообщение Дима77 » Ср окт 07, 2009 12:59 am

darkbasic писал(а):I'm using Asterisk ... opal cvs "5/21/2007 23:59:59" and t38modem cvs.
...
Darkbasic


1. Modem you are trying to use is very old and difficult for compilation. It was a good solution a year ago but not for now.
You need for example:
Код: Выделить всё
svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/ptlib/tags/v2_6_4 ptlib
svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/opal/tags/v3_6_4 opal
cvs -z3 -d:pserver:anonymous@t38modem.cvs.sourceforge.net:/cvsroot/t38modem co -P t38modem

2. Asterisk is a big problem by default and can not be recommended.


3. You need to use following settings for your provider directly with t38modem:
username=xxx
pass=xxx
sip-server=voip.eutelia.it
sip-proxy=voip.eutelia.it
stun=stun.voip.eutelia.it

It works for outgoing t38-faxes with your provider.
As for incoming t38 it is impossible, because your provider have a greate number of problems with incoming t38.
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm

Re: VentaFax->T38modem(SIP)->Asterisk->SIP-провайдер

Сообщение darkbasic » Ср окт 07, 2009 2:14 pm

Дима77 писал(а):As for incoming t38 it is impossible, because your provider have a greate number of problems with incoming t38.

Are you sure? I tried incoming faxes with t38 gateway patch and it works flawlessly...

Cheers,
Darkbasic
darkbasic
Новичок
 
Сообщения: 14
Зарегистрирован: Вс окт 04, 2009 4:27 pm
Карма: + 0 -

Re: VentaFax->T38modem(SIP)->Asterisk->SIP-провайдер

Сообщение Дима77 » Ср окт 07, 2009 9:48 pm

darkbasic писал(а):Are you sure? I tried incoming faxes with t38 gateway patch and it works flawlessly...


I could be wrong of course. But I tested voip.eutelia.it last week. With different software and hardware under different conditions. What's happening seems very unconventionally, and I could not receive no one fax.
Perhaps it works with some sort of software, but in general, looks like something is wrong with provider as for incoming t38.

May be something changed since last week...
At the same time there are no problems with outgoing t38 faxes.
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm

Re: VentaFax->T38modem(SIP)->Asterisk->SIP-провайдер

Сообщение darkbasic » Ср окт 07, 2009 11:41 pm

Дима77 писал(а):
darkbasic писал(а):Are you sure? I tried incoming faxes with t38 gateway patch and it works flawlessly...


I could be wrong of course. But I tested voip.eutelia.it last week. With different software and hardware under different conditions. What's happening seems very unconventionally, and I could not receive no one fax.
Perhaps it works with some sort of software, but in general, looks like something is wrong with provider as for incoming t38.

May be something changed since last week...
At the same time there are no problems with outgoing t38 faxes.


I sent 10 (very complex) pages to my eutelia number and I received all of them flawlessly with the t38 gateway patch and asterisk revision 205116 :-D
I'dd like to test it on asterisk 1.6.2, but I found some problems while porting the patch to the latest svn revision:
http://lists.digium.com/pipermail/aster ... 40083.html
Can you help me?
darkbasic
Новичок
 
Сообщения: 14
Зарегистрирован: Вс окт 04, 2009 4:27 pm
Карма: + 0 -

Re: VentaFax->T38modem(SIP)->Asterisk->SIP-провайдер

Сообщение Дима77 » Чт окт 08, 2009 1:56 am

Do you want to say that you receive a fax as t38, than convert if as t38_to_fax (to G711 audio fax with your gateway), then receives it as audio with IaxModem?
If so it is greatly.
With t38modem you receives fax as t38 , you can do it directly to modem or tranzit via asterisk, but no need to use t38gateway in this case.
So no need to apply t38gateway patch if you want to receive with t38modem.
Nevertheless I was not able to receive t38fax with your provider noither with t38modem nor with some other t38soft or t38device.
Asterisk do some non-linear conversions with sip-headers and with t38 (see example of code in this topic).
As I think, it is not good in common case, because it usually leads to different problems.
To be honest I do not like asterisk with its greate number of problems and greate number of non-working patches.
May be this is the case (with t38gateway) in which asterisk repare provider's bug and it is possible to receive t38 fax with t38gateway for you.
Because as I see t38-receiving does not work correctly with standart t38 fax soft (include commersial) or hadware for eutelia.
Can you please try with Kapanga for example?

If you can receive faxes as t38=>t38gateway=>IaxModem=>Fax Soft it is a good solution for you. No difference between IaxModem or t38modem if to consider your fax program.
As for: "the t38 gateway patch and asterisk revision 205116" and "to port t38 gateway patch to asterisk 1.6.2":
then use 205116 if it is working for you.
"The best" is not always better than "good". Developers often spoils the good things, trying to fix something else.
Дима77
Специалист
 
Сообщения: 877
Зарегистрирован: Вт окт 04, 2005 5:42 pm

Re: VentaFax->T38modem(SIP)->Asterisk->SIP-провайдер

Сообщение darkbasic » Чт окт 08, 2009 3:05 am

Дима77 писал(а):Do you want to say that you receive a fax as t38, than convert if as t38_to_fax (to G711 audio fax with your gateway), then receives it as audio with IaxModem?

Yes, and it works very well.

Дима77 писал(а):but no need to use t38gateway in this case.

I know, but it doesn't work for me (at least with the 2007 snapshot of opal).

Дима77 писал(а):May be this is the case (with t38gateway) in which asterisk repare provider's bug and it is possible to receive t38 fax with t38gateway for you.

It's possible, remember that eutelia doesn't allow to disable Voice Activity Detection, I can expect everything from such a provider... :roll:
Why do you it? I use it (for inbound calls only) just for the free (and unlimited) geographical numerations :lol:

Дима77 писал(а):Can you please try with Kapanga for example?

I'll try...

Дима77 писал(а):As for: "the t38 gateway patch and asterisk revision 205116" and "to port t38 gateway patch to asterisk 1.6.2":
then use 205116 if it is working for you.
"The best" is not always better than "good". Developers often spoils the good things, trying to fix something else.

205116 is a very old (and buggy) snapshot. For example with 205116 my sangoma analog interface doesn't work :-?
I hope to find a developer who wants to help me to adjust that patch to work on 1.6.2 :)

Cheers,
Darkbasic
darkbasic
Новичок
 
Сообщения: 14
Зарегистрирован: Вс окт 04, 2009 4:27 pm
Карма: + 0 -

След.

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

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

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

cron