URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID6
Нить номер: 15653
[ Назад ]

Исходное сообщение
"Не проходит DTMF SIP -> H323"

Отправлено rayden , 03-Мрт-08 11:27 
Есть проблема с прохождением DTMF по следующей схеме:


Провайдер1 –SIP (G711)---> циска (3745) --> IVR –H323 (G729)--> Провайдер2

Циска шлет DTMF в теле 729 кодека и софт провайдера (Мера) не понимает такой DTMF, а заставить циску слать в сигналинке DTMF после SIPа не получается.


Содержание

Сообщения в этом обсуждении
"Не проходит DTMF SIP -> H323"
Отправлено Alex. , 03-Мрт-08 12:13 
Попробуйте посмотреть tcpdump, что происходит с rpt-nte. На MERA для H323-H323
подобного подавления не замечалось.

"Не проходит DTMF SIP -> H323"
Отправлено rayden , 03-Мрт-08 12:51 
>Попробуйте посмотреть tcpdump, что происходит с rpt-nte. На MERA для H323-H323
>подобного подавления не замечалось.

Провайдер смотрел tcpdump`ом:

если 711 кодек, то он видет DTMF, если 729 то не видет

я смотрел со своей стороны дебагом на циске, и по логам было видно что циска DTMF видит отправляет.

Провайдер обращался к производителю Меры, вот что он сказал:

В данном случае, нет никаких неисправностей в MVTS II. Система отрабатывает DTMF так, как это и было задуманно.
Собственно, не совсем корректно сконфигурированные Cisco почти что единственные шлюзы, которые шлют в H.323 сигналы DTMF по протоколы rfc2833. При нормальной конфигурации, Cisco должен слать DTMF в H.323 в сигналинге (сообщения UserInput. Если H.245 Tunneling - TRUE, то тогда эти сообщения будут инкапсулированны в Facility), также как это делают все остальные H.323 устройства.


"Не проходит DTMF SIP -> H323"
Отправлено Alex. , 03-Мрт-08 15:13 
RTP-NTE имеет свой собственный payload type, обычно 101
, что и должно согласовываться в секции H245.
Как видно из приведённой схемы - на cisco ip-2-ip.
Попробуйте поставить на cisco outgouing dial-peer
только  dtmf-relay h245-signal h245-alphanumeric,
на входном  dtmf-relay rtp-nte.

"Не проходит DTMF SIP -> H323"
Отправлено rayden , 03-Мрт-08 15:22 
>RTP-NTE имеет свой собственный payload type, обычно 101
>, что и должно согласовываться в секции H245.
>Как видно из приведённой схемы - на cisco ip-2-ip.
>Попробуйте поставить на cisco outgouing dial-peer
>только  dtmf-relay h245-signal h245-alphanumeric,
>на входном  dtmf-relay rtp-nte.

Так и есть

Исходящий
dial-peer voice 783 voip
translation-profile outgoing xxx1
huntstop
destination-pattern 8540xxxx$
session target ipv4:192.168.138.25
dtmf-relay h245-alphanumeric
!

Входящий:
dial-peer voice 212 voip
description Incoming from Gorod
huntstop
service ivr
session protocol sipv2
incoming called-number 781419xxxx
dtmf-relay rtp-nte
codec g711ulaw
no vad


"Не проходит DTMF SIP -> H323"
Отправлено Alex. , 03-Мрт-08 17:01 
Если cisco не проводит переобразование способа dtmf-relay,
что несколько странно. То попробуйте внути IVR поставить
event-handler dc-digit.

"Не проходит DTMF SIP -> H323"
Отправлено rayden , 04-Мрт-08 09:14 
>Если cisco не проводит переобразование способа dtmf-relay,
>что несколько странно. То попробуйте внути IVR поставить
>event-handler dc-digit.

Есть такое :)

puts "\n GotDest start"
    global NumDestPrompt;
    global DestPromptFlag;
    global account;
    global destination;
    global Pin;

    set status [infotag get evt_status];
    switch $status {
"cd_001" {
puts "\n GotDest cd_001"
#fsm setstate DISCONNECTED
    fsm setstate CHECKDEST        
GetDest
return;
}
"cd_002" {
puts "\n GotDest cd_002"
#fsm setstate DISCONNECTED
    fsm setstate CHECKDEST        
GetDest
return;
}
"cd_004" {
set destination [infotag get evt_dcdigits];
puts "\n************dest_number = $destination";
set msg "Call from Pin="
append msg $Pin
append msg " to destination "
append msg $destination
append msg [clock format [clock seconds]]
log -s INFO $msg
leg setup $destination callinfo leg_incoming
fsm setstate CALLSTATUS        
return;
}
default {
puts "\n GotDest default"
#fsm setstate DISCONNECTED
    fsm setstate CHECKDEST        
GetDest
return;
}
}
    }
set ivr_fsm(CHECKDEST,ev_collectdigits_done)       "GotDest same_state"

Сама циска видит DTMF и в логах об этом говорит... Проблема в том, что на выход она выкидывает DTMF не в том виде как нужно провайдеру. Он ждет DTMF в сигналенге  :(


"Не проходит DTMF SIP -> H323"
Отправлено Alex. , 04-Мрт-08 11:14 
Попробуйте
dtmf-relay h245-signal
или лучше
dtmf-relay h245-signal h245-alphanumeric rtp-nte
попробуйте out dial-peer.

"Не проходит DTMF SIP -> H323"
Отправлено rayden , 04-Мрт-08 11:53 
>Попробуйте
> dtmf-relay h245-signal
>или лучше
> dtmf-relay h245-signal h245-alphanumeric rtp-nte
>попробуйте out dial-peer.

Попробовал, DTMF не проходит :(


"Не проходит DTMF SIP -> H323"
Отправлено zaikini , 04-Мрт-08 18:02 
>>Попробуйте
>> dtmf-relay h245-signal
>>или лучше
>> dtmf-relay h245-signal h245-alphanumeric rtp-nte
>>попробуйте out dial-peer.
>
>Попробовал, DTMF не проходит :(

Я так думаю что циске надо запретить передавать dtmf через rtp-nte
команда dtmf-relay h245-signal h245-alphanumeric rtp-nte  указывает порядок приоритета для обработки dtmf но не запрета использования того или иного метода.

Возможно (предположение) надо сделать следующим образом:

Входящий:
dial-peer voice 212 voip
description Incoming from Gorod
huntstop
service ivr
session protocol sipv2
incoming called-number 781419xxxx
dtmf-relay rtp-nte digit-drop
codec g711ulaw
no vad

исходящий так и остается
dial-peer voice 783 voip
translation-profile outgoing xxx1
huntstop
destination-pattern 8540xxxx$
session target ipv4:192.168.138.25
dtmf-relay h245-alphanumeric