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

Факс не проходит через Манго Телеком. Вопрос по Т38

Newbies/FAQ Forum 15 сообщений 08.09.2011 11:29 - 28.10.2011 07:12
#1 08.09.2011 11:29

Факс не проходит через Манго Телеком. Вопрос по Т38


Здравствуйте! Бьюсь вторые сутки с отправкой факсимильных сообщений через Манго-Телеком!
На рисунке (см. вложение) приведена моя схема 2-ух вариантов прохождения факсов.
Все установленное у меня оборудование умеет работать с Т38. Так же, по заявлению тех поддержки, сервера Манго-Телеком поддерживают работу с Т38.
Вопрос у меня следующий:
Если я пытаюсь отправлять факс с аппарата Panasonic через плату YEASTAR в городскую тел сеть на какой-либо удаленный факс подключенный, например, напрямую к МГТС, то все отлично проходит. Но вот если попытаться отправить факс туда же, но только через Манго Телеком, то происходит обрыв связи на половине документа и на факсе вылезает ошибка передачи. Можно ли это как то победить?
Пробовал отправлять факс поверх протокола G711u - факсы успешно проходят в 30% случаев.
В sip.conf

[general]
port=5060
bindaddr=*.*.*.*
srvlookup=no
language=ru
dtmfmode=RFC2833
promiscredir=no
canreinvite=no
t38pt_rtp=no
t38pt_tcp=no
t38pt_udptl = yes
nat=yes
disallow=all
allow=alaw
allow=ulaw
allow=gsm

register => login:pas@mangosip.ru/1234567

[1234567]
secret=pas
username=login
host=mangosip.ru
fromuser=login
fromdomain=mangosip.ru
dtmfmode=rfc2833
qualify=2000
insecure=invite
nat=no
context=incoming-mangosipin
hasexten = no
hassip = yes
hasiax = no
registeriax = no
registersip = yes
canreinvite=nonat
type=friend
t38pt_rtp=no
t38pt_tcp=no
t38pt_udptl = yes


[115]
host=dynamic
context=sip-internal
type=friend
username=115
nat=no
secret=pass
callerid=FAX
qualify=2000
t38pt_rtp=no
t38pt_tcp=no
t38pt_udptl = yes

Файл udptl.conf
[general]
udptlstart=4000
udptlend=4999
;udptlchecksums=no
udptlfecentries = 3
udptlfecspan = 3
use_even_ports = no
T38FaxUdpEC = t38UDPRedundancy
T38FaxMaxDatagram = 1400

Заранее Спасибо!
#2 08.09.2011 12:11

Какая версия астериск? В последних версиях настройки типа
Code:
T38FaxUdpEC = t38UDPRedundancy
T38FaxMaxDatagram = 1400
вынесены в sip.conf в таком виде:
Code:

t38pt_udptl = yes,fec,maxdatagram=400

Где указывается тип коррекции ошибок и максимальный размер дейтаграммы. Эти параметры оказывают влияние на прохождение факса. Так или иначе вам помогут консольные команды:
CLI>udptl set debug on/off
#ngrep -d host
Поверьте на слово, с факсами иногда приходится помучиться и с пол-пинка они работают редко. Также можете забыть про передачу факсов напрямую кодеком g.711. Учитывая прежде всего пропадание кучи пакетов в сети инет.
#3 08.09.2011 12:30

Спасибо за ответ!
Версия Asterisk PBX 1.8.2 (на картинке указал)
У меня по этой команде - udptl set debug on
ничего не происходит. Хотя CLI говорит - UDPTL Debugging Enabled


Last edited by P-Bereza on Thu Sep 08, 2011 12:41
#4 08.09.2011 12:38

Также рекомендую обновится до последней версии в ветке 1.8 (в верхнем правом углу форума есть ссылки на 1.8.6.0). При помощи ngrep будет видно кто делает re-INVITE на Т.38 и что происходит дальше. В консоли астериска будет видно есть ли пакеты с факсом.
Во время прохождения факса через систему в консоли будут пробегать пакеты вида:
Code:

UDPTL (SIP/): packet to 192.168.1.45:30002 (type 0, seq 35, len 18)

Причём это будет происходить после реинвайта на Т.38.
#5 08.09.2011 12:56

у меня уже вообще сомнения есть что у меня работает Т38. Хотя судя по sip show settings и sip show peer 115:
T.38 support : Yes
T.38 EC mode : FEC
T.38 MaxDtgrm: 400
#6 08.09.2011 13:10

Порты указанные в файле udptl.conf
udptlstart=4000
udptlend=4999
файрволом не закрыты? Shocked
Пробовать надо так.
1) Позвонить в место приёма факса, попросить стартануть
2) В момент появления тонов следить что происходит в консоли астериска (сделать команду sip set debug peer )
3) Посмотреть производится ли re-INVITE и кем.
4) Должны побежать пакеты UDP с факсом
#7 09.09.2011 08:08

Здравствуйте! Продолжаем разговор!
Порты 4000-4999 в фаере открыты. Но UDP общения в этом диапазоне портов между сторонами не происходит. Т.е., как была передача в диапазоне 10000-20000 так и остается.
re-INVITE в дебаге не нашел.
#8 09.09.2011 10:58

Quote:
Т.е., как была передача в диапазоне 10000-20000 так и остается.

Значит не происходит переключение в Т.38.
Quote:
re-INVITE в дебаге не нашел.

А вы и не увидите, т.к это такой же инвайт, но с другими параметрами в SDP. Вот его пример для наглядности:
Обычный инвайт, с которого начинается диалог (звоню с самсунга 288 на астериск 1610 - приложение app-fax)

Code:

INVITE sip:288@192.168.1.5:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.3:5060;branch=z9hG4bK00bf00cf;rport
To:
Call-ID: 1063664-c0a80105-13c4-89617-218a4c52-31d80123@192.168.1.5
CSeq: 1 INVITE
Via: SIP/2.0/UDP 192.168.1.5:5060;branch=z9hG4bK-89617-218a4c53-13a9a99e
Max-Forwards: 70
Supported: 100rel,replaces
Contact:
Content-Type: application/SDP
Content-Length: 248

v=0
o=SAMSUNG_SIP_GATEWAY 562711638 0 IN IP4 192.168.1.5
s=SIP_CALL
c=IN IP4 192.168.1.6
t=0 0
m=audio 30000 RTP/AVP 8 18 4 101
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=rtpmap:4 G723/8000
a=rtpmap:101 telephone-event/8000
a=sendrecv


А тут идёт реинвайт от астериска на самсунг. Смотрите внимательно и вы увидите в чём разница.

Code:

INVITE sip:288@192.168.1.5:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.3:5060;branch=z9hG4bK2934bc34;rport
Max-Forwards: 70
From: ;tag=as65d4f767
To: ;tag=c0a80105-13c4-896f6-218db3d6-334b3fd6
Contact:
Call-ID: 1064cb4-c0a80105-13c4-896f6-218db3d6-296a4398@192.168.1.5
CSeq: 102 INVITE
User-Agent: VOIP PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
X-asterisk-Info: SIP re-invite (External RTP bridge)
Content-Type: application/sdp
Content-Length: 272

v=0
o=VOIP_PBX 1822286875 1822286876 IN IP4 192.168.1.13
s=VOIP PBX
c=IN IP4 192.168.1.3
t=0 0
m=image 4790 udptl t38
a=T38FaxVersion:0
a=T38MaxBitRate:14400
a=T38FaxRateManagement:transferredTCF
a=T38FaxMaxDatagram:1400
a=T38FaxUdpEC:t38UDPRedundancy


Астериск сообщает самсунгу о желании перейти в Т.38. От самсунга приходит в ответ 200 Ок. Всё и пошла вода в хату.
#9 09.09.2011 12:08

У меня в дебаге тоже присутствует желание * перейти на т38:

Но я не вижу утвердительного ответа от сервера Манго.

U 123.123.123.33:5060 -> 81.88.80.36:5060
INVITE sip:74957894562@81.88.80.36 SIP/2.0..Via: SIP/2.0/UDP 123.123.123.33:5060;branch=z9hG4bK70dd5e2d..Max-Forwards: 70..From: "FAX" ;tag=as5cf05ba1..To: ;tag=9344db11..Con
tact: ..Call-ID: 01ecfe1b42d029995aaeba3857582f6c@mangosip.ru..CSeq: 104 INVITE..User-Agent: Asterisk PBX 1.8.2..Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH.
.Supported: replaces, timer..Content-Type: application/sdp..Content-Length: 263....v=0..o=root 950853594 950853596 IN IP4 123.123.123.33..s=Asterisk PBX 1.8.2..c=IN IP4 123.123.123.33..t=0 0..m=image 4132 udptl t38..a=T38FaxVersion:
0..a=T38MaxBitRate:9600..a=T38FaxRateManagement:transferredTCF..a=T38FaxMaxDatagram:204..a=T38FaxUdpEC:t38UDPFEC..
#

U 81.88.80.36:5060 -> 123.123.123.33:5060
SIP/2.0 401 Unauthorized..Via: SIP/2.0/UDP 123.123.123.33:5060;branch=z9hG4bK70dd5e2d;rport=5060..From: "FAX" ;tag=as5cf05ba1..To: ;tag=9344db11..Call-ID: 01ecfe1b42d029995aa
eba3857582f6c@mangosip.ru..CSeq: 104 INVITE..WWW-Authenticate: Digest realm="mangosip.ru", nonce="4e69eba04502ae3a74143cb92a51988bd4696d30", qop="auth"..Server: Sip EXpress router (2.0.0-rc1 (i386/linux))..Content-Length: 0....
#

U 123.123.123.33:5060 -> 81.88.80.36:5060
ACK sip:74957894562@81.88.80.36 SIP/2.0..Via: SIP/2.0/UDP 123.123.123.33:5060;branch=z9hG4bK70dd5e2d..Max-Forwards: 70..From: "FAX" ;tag=as5cf05ba1..To: ;tag=9344db11..Contac
t: ..Call-ID: 01ecfe1b42d029995aaeba3857582f6c@mangosip.ru..CSeq: 104 ACK..User-Agent: Asterisk PBX 1.8.2..Content-Length: 0....
#

U 123.123.123.33:5060 -> 81.88.80.36:5060
INVITE sip:74957894562@81.88.80.36 SIP/2.0..Via: SIP/2.0/UDP 123.123.123.33:5060;branch=z9hG4bK0ac423f1..Max-Forwards: 70..From: "FAX" ;tag=as5cf05ba1..To: ;tag=9344db11..Con
tact: ..Call-ID: 01ecfe1b42d029995aaeba3857582f6c@mangosip.ru..CSeq: 105 INVITE..User-Agent: Asterisk PBX 1.8.2..Authorization: Digest username="ivanov", realm="mangosip.ru", algorithm=MD5,
uri="sip:74957894562@81.88.80.36", nonce="4e69eba04502ae3a74143cb92a51988bd4696d30", response="1a564e31c94d070e77eb0c40738ae791", qop=auth, cnonce="355e774a", nc=00000001..Date: Fri, 09 Sep 2011 10:32:17 GMT..Allow: INVITE, ACK, CAN
CEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH..Supported: replaces, timer..Content-Type: application/sdp..Content-Length: 263....v=0..o=root 950853594 950853597 IN IP4 123.123.123.33..s=Asterisk PBX 1.8.2..c=IN IP4 213.
208.167.66..t=0 0..m=image 4132 udptl t38..a=T38FaxVersion:0..a=T38MaxBitRate:9600..a=T38FaxRateManagement:transferredTCF..a=T38FaxMaxDatagram:204..a=T38FaxUdpEC:t38UDPFEC..
#


где 123.123.123.33 - мой сервер * (адрес смотрящий наружу в интернет)
81.88.80.36 - сервер Манго

А в итоге бумага останавливается по середине факса. Далее продолжают бежать пакеты в диапазоне UDP портов 10000-20000. После чего Манго сообщает - CSeq: 2 BYE
По идее манго должен ответить утвердительно на предложение перейти на Т38
#10 09.09.2011 12:49

Странно, что вообще нет ответа.
Хотя, судя по Server: - у манго обычный SER крутиться, он просто передает куда-то дальше запросы.


Возможно, той стороне не нравиться отсутствие в reINVITE SDP, строки вида:


m=audio 0 RTP/AVP 0 101
перед
m=image 4132 udptl t38

Есть такие девайсы, которые требуют (согласно RFC), чтоб не пропадали m= описания во время всего вызова, а должен указываться в номере порта ноль, для указания выключения этого media stream.

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

_________________
ys
http://voip.rus.net/
#11 09.09.2011 15:29

[quote="Obi Van"]
Quote:
Астериск сообщает самсунгу о желании перейти в Т.38. От самсунга приходит в ответ 200 Ок. Всё и пошла вода в хату.

А как должен выглядеть ответ ОК? Типа - 2XX INVITE ? Можно привести пример такого ответа?
И как я понимаю в моей связке сначала должен VOIP шлюз договориться с * о приеме Т38, а потом * должен договориться с Манго о приеме Т38?
Или же в данном случае должен работать canreinvite? Или я ваще запутался Confused
#12 13.09.2011 07:12

Года 2 назад я отлавливал проблемы при передаче факса по такой цепочке:
Факс (Panasonic)-D-Link шлюз 4 FXS SIP Asterisk 1.6 SIP Провайдер
Из цепочки исключал астериск и факсы пошли. В моём случае был виноват файрвол. Для отладки системы я со специалистом со стороны провайдера вели логи: между шлюзом и астериском, между астериском и провайдером, у себя он вёл логи между Kamailio и Cisco шлюзом (модель не помню).
Про 200 Ok:

Команда успешно выполнена. На запрос INVITE означает, что вызываемое оборудование согласно на участие в сеансе связи; в теле ответа указываются функциональные возможности этого оборудования; На запрос BYE означает завершение сеанса связи, в теле ответа никакой информации не содержится; На запрос CANCEL означает отмену поиска, в теле ответа никакой информации не содержится; на запрос REGISTER означает, что регистрация прошла успешно; На запрос OPTION служит для передачи сведений о функциональных возможностях оборудования, эти сведения содержатся в теле ответа.
#13 27.09.2011 07:09

Quote:
Из цепочки исключал астериск и факсы пошли.

Всем здравствуйте! Продолжаю свои мытарства с прохождением факсов через Манго-телеком.
Сейчас я попробовал исключить из приведенной выше схемы VOIP шлюз Qtech 2101 и аналоговый факс я подключил к плате TDM400 в порт FXS (т.е. напрямую в *).
Подскажите мне. Где теперь мне включать t38? В секции [general] файла sip.conf или в файле chan_dahdi.conf
В дебаге, который я смотрю с помощью ngrep по совету уважаемого Obi Van, теперь я не вижу вообще попыток * перейти на t38.
#14 27.09.2011 09:07

P-Bereza
Важно понимать, что вообще такое Т.38. Ясное дело что в chan_dahdi.conf это не может включаться в принципе, ибо это voip протокол. При таком раскладе потребуется патч реализующий гейтвей T.38/SIP - T.30. Вот инфа на этот счёт с блога Игоря Гончаровского, а вот ссылка на патч реализующий эту функцию. Впрочем скорее всего это вам не нужно. У вас нет прохождения факса по цепочке с voip устройствами. Вот и надо выводить на чистую воду то устройство которое не желает работать, либо делает это как ему думается. Реальность такова, что трудно подобрать оборудование ну прямо таки идеально работающее по Т.38. Evil or Very Mad Вот статья с asterisk.ru, которая прояснит ситуацию с факсами. Rolling Eyes
#15 28.10.2011 07:12

Только сейчас мне в Манго-телеком ("тех-поддержка") сообщили что т38 у них заработает примерно после н.г. Сейчас используется Т30.
Можно ли использовать т30 в астериск 1.8.6 ? И как его включить. Направьте плиз