2014-06-16 3 views
1

PBX 인플레가있는 별표 서버가 두 개 있고 CentOS에 별표가 하나만 설치된 별표 서버가 있습니다. PBXINFLASH에서 Asterisk 11.9.0으로 마이그레이션해야합니다. 플래시의 PbX가 별표 10.12.1을 실행 중입니다. 별표 (Asterisk) 10.12.1에서 완벽하게 작동하는 다이얼 플랜이 있지만 별표 11.9.0이 표시된 새 상자에는 DTMF 또는 사용자 키 입력이 다이얼 플랜의 한 부분으로 작동하지 않습니다. 나는 dtmf에 대한 디버그를 시도했는데 두 서버 모두 디버그에서 차이가 없다. 또한 이상하다. 이것은 하나의 컴퓨터에서 다이얼 플랜이 잘 작동하고 다른 작업은 부분적으로 작동한다. 다이얼 플랜은 발신자가 진행하기 위해 1을 누르고 수신자가 전화를 받고 시스템이 1을 눌러 통화 또는 전화 끊기를 수락하도록 요청하는 전화 화면입니다. 별표 11.9.0 발신자 프레스 1 입력은 정상적으로 작동하지만 두 번째 사용자/수신자 프레스 1은하지 않습니다. 전혀.별표 11.9 read() 함수 및 dtmf 문제

내 dtmf를 테스트하기 위해 SIP 계정을 사용하고 있습니다. 나는 한 모금 계좌를 바꿔주고 똑같은 문제를 테스트하기 위해 소프트 폰을 마셨다. 다음은 동일한 매크로 반 작업의 두 부분과 사용자 입력을받지 않는 후반입니다.

전반부가 작동하고 사용자 입력을받습니다.

exten => _X.,n,GotoIf($[${GROUP_COUNT(${CallerNum})} > 1]?Exceeded) ;Exceeded? 
exten => _X.,n,Set(HngupCount=1);Hangup 
exten => _X.,n,Flite(Please press 1 to speak with ${destUID}) 
exten => _X.,n,Read(yesno,sip-silence,1,,2,5) 
exten => _X.,n,GotoIf($[${yesno} = 1]?continue:hangup) 
작업 또는 사용자의 입력을 복용하지

하반기 : -

하반기
[macro-Dial2] 
exten => s,1,Wait(1);ResetCDR 
exten => s,n,Set(_StartTime=${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)}) 
exten => s,n,ResetCDR 
exten => s,n,Set(_RCount=1) 
exten => s,n(Repeat),Flite(Hi there) 
exten => s,n,Flite(${ARG1} wants to speak to you. Please press 1 to accept the call. 2 to forward the call to voicemail or 3 to reject the call.) 
exten => s,n,Flite(we are connecting you) 
exten => s,n,Read(ACCEPT,sip-silence,1,,1,5) 
exten => s,n,Set(_RCount=$[${RCount} + 1]) 
exten => s,n,NoOp(Counter is ${RCount} -- the user selected: ${ACCEPT}); 
exten => s,n,Gotoif($[${ACCEPT} = 1]?accept:vm) ;Accept the call 
exten => s,n(vm),Gotoif($[${ACCEPT} = 2]?voicemail:rej) ;forward the call to dummy voicemail (Actually just record the callers message) 
exten => s,n(rej),Gotoif($[${ACCEPT} = 3]?reject) ;Reject the call and hangup 
exten => s,n,Gotoif($[${RCount} > 2]?reject:Repeat) ; If no key pressed, just hangup the call and inform the User. 
exten => s,n(accept),set(SecLeg=${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)}) 

는 다음 줄 때까지 잘 작동 : 당신의 dialplan을 사용자 입력에

exten => s,n,Flite(${ARG1} wants to speak to you. Please press 1 to accept the call. 2 to forward the call to voicemail or 3 to reject the call.) 
exten => s,n,Flite(we are connecting you) 
+0

당신이 실패 호출의 AST CLI에서 텍스트를 게시하시기 바랍니다 편집 할 수 있습니다 logger.conf이 필요하십니까? 여기서 AST가 당신을 도울 수 있으려면 "AST가 보는 것"을 볼 필요가 있습니다. – MichelV69

+0

[0K SIP/2.0 200 OK 비아 : SIP/2.0/UDP 173.230.137.73:5060;branch=z9hG4bK3d82f078;rport=5060 연락처 = 받는 사람 : ; tag = 6b7c1722 보낸 사람 : , 태그 = as292ce1cc 전화-ID : [email protected] : 5060 CSEQ : (103) BYE 사용자 에이전트 : Zoiper이 콘텐츠 길이 rev.11137 : 0 – user1492502

+0

설정하세요 "자세한 "를 9로 설정하여 다이얼 플랜 처리가 표시되도록하고"R ead() "문장. SIP-INFO로만 DTMF를 전송하지 않는 한 SIP 패킷 디버깅은 가치가 없습니다. – MichelV69

답변

0

주 모든 flite 메시지 재생이 완료된 후에 만 ​​수행됩니다.

pla 다른 모든 (정적 부분)은 파일에 기록하고 READ 명령으로 사용합니다.

별표에서 dtmf 디버그를 활성화하면 더 많은 정보를 얻을 수 있습니다. 이를 위해

당신은

+0

이미 dtmf 디버그를 활성화했지만 이상하게도 작동중인 별표가없는 별표 상자는 100 % 동일한 출력을 제공합니다. – user1492502