подняли трубку + transfer + T.38 = фиг
Сообщений: 6
|
подняли трубку + transfer + T.38 = фиг
Подскажите, пожалуйста, где грабли....
Есть два экстеншена 111(телефон) и 112(факс "на автомате").
Факс пользует T.38.
Если входящий факс сразу приходит на факс(112), то факс принимается.
Если сначала на телефон(111), потом atxfer на факс(112), то факс не проходит (udptl debug вообще ничего не кажет пакетов).
sip.conf
[111]
type = friend
secret = ***
regexten = 111
callerid = "111" <111>
context = office
host = dynamic
nat = yes
canreinvite = yes
disallow = all
allow = alaw
dtmfmode=rfc2833
[112]
type = friend
secret = ***
regexten = 112
callerid = "112" <112>
context = office
host = dynamic
nat = yes
canreinvite = yes
allowtransfer = yes
disallow = all
allow = alaw
t38pt_rtp = no
t38pt_tcp = no
t38pt_udptl = yes
t38udptlsupport = yes
extensions.conf
[office]
exten => _XXX, 1, Set(LANGUAGE()=ru)
exten => _XXX, n, Dial(SIP/${EXTEN}|20|tT)
exten => _XXX, n, Hungup()
Заранее спасибо.
|
Сообщений: 6
|
Re: подняли трубку + transfer + T.38 = фиг
Вот тут подумалось, что для использования udptl после перевода звонка может понадобится reInvite.
А вот тут
http://www.voip.rus.net/tiki-index.php?page=Asterisk+sip+canreinvite&bl
написано:
"Если команда Dial() содержит параметр t или T, Asterisk не производит процедуру re-invite. "
В связи с этим вопрос: Как вообще многоопытные Гуру решали такую задачу?
Т.е. оператор поднимает трубку и переводит звонок на факс для приема оного.
|
Сообщений: 1573
|
Re: подняли трубку + transfer + T.38 = фиг
А какой контекст используется при трансфере? Если не - office, то попробуйте так:
[office]
exten => _XXX, 1, Set(LANGUAGE()=ru)
exten => _XXX, n, Set(__TRANSFER_CONTEXT=office)
exten => _XXX, n, Dial(SIP/${EXTEN}|20|tT)
exten => _XXX, n, Hungup()
|
Сообщений: 6
|
Re: подняли трубку + transfer + T.38 = фиг
To:cron333
Пасиб за совет.
Но сам звонок у меня проходит до факса.
У меня, к сожалению, сам факс не принимается при переводе звонка. Хотя если не переводить звонок, а с факса звонить непосредственно на экстеншен - факс идет на ура...
Побробнее смотрю и вижу: что когда факс идет напрямую, без трансфера, то RTP трафик заканчивается и идет UDPTL.
А когда с трансфером - RTP идет, а UDPTL так и не появляется.
Как ему объяснить, что надо на UDPTL перейти?!
|
Откуда: Москва
Сообщений: 3421
|
Re: подняли трубку + transfer + T.38 = фиг
Хороший вопрос. Меня это тоже напрягает.
Я делаю так:
1) анализирую содержимое BLINDTRANSFER, чтобы понять, не перевод ли это. Если перевод, делаю Dial без tT.
2) Использую faxdetect=incoming в zapata. Тогда факсы убегают в fax extension, независимо от ключиков, а там делается Dial снова без tT на факс с использованием T.38 (но это только в CW).
3) Вариант от cron33 мне в голову не пришел. На самом деле, надо задать TRANSFER_CONTEXT и переведенные звонки набирать без Dial...
Попробуйте и расскажите что больше понравилось и почему.
P.S. А что за винигрет у Вас в настройках пира 112. t38udptlsupport - это вообще из CW, Asterisk его не понимает.
|
Сообщений: 1573
|
Re: подняли трубку + transfer + T.38 = фиг
Покажите вывод CLI при переводе (от начала вызова на номер 111) ...
|
Сообщений: 6
|
Re: подняли трубку + transfer + T.38 = фиг
To:litnimax
Пасиб за дельный совет. Попробую - отпишусь...
>> P.S. А что за винигрет у Вас в настройках пира 112. t38udptlsupport - это
>> вообще из CW, Asterisk его не понимает.
Это уже пошли танцы с бубнами, из серии "А вдруг поможет..." :)
|
Сообщений: 1573
|
Re: подняли трубку + transfer + T.38 = фиг
t38pt_usertpsource=yes - вот еще парметр для танцев ... :)
|
Откуда: Москва
Сообщений: 3421
|
Re: подняли трубку + transfer + T.38 = фиг
Да че тут танцевать ;-)
max@explorer ~/tmp/asterisk/asterisk-1.4.19.1 $ fgrep -r t38pt_usertpsource *
max@explorer ~/tmp/asterisk/asterisk-1.4.19.1 $
Пусто!
|
Сообщений: 1573
|
Re: подняли трубку + transfer + T.38 = фиг
/asterisk-1.4.21 # fgrep -r t38pt_usertpsource *
CHANGES: o t38pt_usertpsource variable added
Бинарный файл channels/chan_sip.o совпадает
channels/chan_sip.c: } else if (!strcasecmp(v->name, "t38pt_usertpsource")) {
Бинарный файл channels/chan_sip.so совпадает
configs/sip.conf.sample:; t38pt_usertpsource username
configs/sip.conf.sample:; t38pt_usertpsource
configs/sip.conf.sample:;t38pt_usertpsource=yes ; Use the source IP address of RTP as the destination IP address for UDPTL packets
обновляйтесь ... :)
|
|