2011-12-05 3 views
0

나는 매우 이상한 문제가있어서 어디서부터 시작해야할지 모릅니다.별표 DTMF가 때때로 무시됩니다 (단, 일부 사용자 만 해당).

우리는 AGI와 Java 라이브러리를 사용하여 IVR을 표시하지만 사용자가 키 누르기를 무시한다고 불만을 제기했습니다. 일반 섹션에서 I는 다음과 같이 정의 DTMF를 내 sip.conf에서

, (이하 "휴식"라인은 주석하고) : 나는 공급자로 확인했습니다

dtmfmode = rfc2833 
;relaxdtmf=yes 

rfc2833으로 설정해야합니다.

messages => notice,warning,error,dtmf 

내가 지금이 같은 라인을 참조하십시오 :

DTMF[8744] channel.c: DTMF begin '1' received on SIP/veracity-00005052 
DTMF[8744] channel.c: DTMF begin ignored '1' on SIP/veracity-00005052 
DTMF[8744] channel.c: DTMF end '1' received on SIP/veracity-00005052, duration 270 ms 
DTMF[8744] channel.c: DTMF end passthrough '1' on SIP/veracity-00005052 
DTMF[8741] channel.c: DTMF begin '1' received on SIP/veracity-00005056 
DTMF[8741] channel.c: DTMF begin ignored '1' on SIP/veracity-00005056 
DTMF[8741] channel.c: DTMF end '1' received on SIP/veracity-00005056, duration 415 ms 
DTMF[8741] channel.c: DTMF end passthrough '1' on SIP/veracity-00005056 

사실 그

나는 나의 메시지를 내 logger.confDTMF 디버그 수준에 파일을 설정 그것은 "무시"는 나를 염려하지만 이것은 원하지 않는 행동임을 나타내는 정보 나 포럼 게시물을 읽지 않았습니다.

입력을받는 Java 코드는 다음과 같습니다. 기본적으로 그것은 에 의해 반환 된 숫자를 작동하거나 0 일 경우 메뉴를 재생합니다.

char key = 0; 

if (validOptions.contains("1")) 
    key = agiChan.streamFile(menu("menu1"), validOptions); 

if (validOptions.contains("2") && key == 0) 
    key = agiChan.streamFile(menu("menu2"), validOptions); 

if (validOptions.contains("3") && key == 0) 
    key = agiChan.streamFile(menu("menu3"), validOptions); 

if (!validOptions.contains("1") && !validOptions.contains("2") && key == 0) 
    key = agiChan.streamFile(menu("menu4"), validOptions); 

if (key == 0) 
    key = agiChan.waitForDigit(5000); 

return key; 

저는 특히이 문제가 모든 사람에게 발생하지 않기 때문에이 문제를 놓치고 있습니다. 어디서 이런 식으로보고/디버깅을 시작할 수 있습니까?

미리 감사드립니다.

+0

빠른 업데이트 : "relaxdtmf"가있는 줄의 주석 처리를 제거하고 yes로 설정하십시오. 로그 파일을보고 입력을 계속 무시하는지 확인합니다. – aimzies

+0

저희 제공 업체가 문제를 해결하고 문제가 사라진 것으로 보입니다. 나는 아직도 그 원인 (또는 심지어 해결책)을 모른다. – aimzies

답변

0

예, 제공자가 신호를 보내거나 받기 때문에 일반적으로 공급자 측에서 왔습니다. 항상 다른 dtmf 모드를 사용해보십시오.

관련 문제