나는 매우 이상한 문제가있어서 어디서부터 시작해야할지 모릅니다.별표 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.conf에 DTMF 디버그 수준에 파일을 설정 그것은 "무시"는 나를 염려하지만 이것은 원하지 않는 행동임을 나타내는 정보 나 포럼 게시물을 읽지 않았습니다.
입력을받는 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;
저는 특히이 문제가 모든 사람에게 발생하지 않기 때문에이 문제를 놓치고 있습니다. 어디서 이런 식으로보고/디버깅을 시작할 수 있습니까?
미리 감사드립니다.
빠른 업데이트 : "relaxdtmf"가있는 줄의 주석 처리를 제거하고 yes로 설정하십시오. 로그 파일을보고 입력을 계속 무시하는지 확인합니다. – aimzies
저희 제공 업체가 문제를 해결하고 문제가 사라진 것으로 보입니다. 나는 아직도 그 원인 (또는 심지어 해결책)을 모른다. – aimzies