문제

누군가가 다음을 달성하기 위해 방향, 샘플 코드 또는 온라인 리소스를 가리킬 수 있습니까?

요구 사항:스크립트 (Bash 또는 Python)를 실행하는 간단한 IVR 메뉴 옵션을 작성하고 싶습니다. 예를 들어, 별표 기기에 전화하여 다른 Linux 상자에서 서비스를 다시 시작하도록 요청하십시오. '기타 Linux Box'세부 사항은 IVR 메뉴 옵션으로 하드 코딩되며 IVR 상호 작용의 일부로 제공 할 필요가 없습니다. Box Y에서 서비스 X를 다시 시작합니다. 비밀번호 (버전으로 하드 코딩 된 경우에도).

배경:나는 별표 초보자이며 Asterisknow 배포판에서 설치했으며 여전히 제품을 배우고 있습니다. 기본 PBX 기능은 작동하며 FREEPBX를 통해 관리됩니다. 별표는 개발 작업의 주요 초점이 아니라 도구 상자의 도구입니다. 우리는 주로 .NET 작업을 수행하지만 유닉스 기술이 있습니다.

가능하다면 작업을 완료하기 위해 별표의 세부 정보 통합을 배우는 데 며칠을 보내고 싶지 않습니다 ...

도움이 되었습니까?

해결책

그만큼 별표 Agi 페이지는 많은 프로그래밍 언어로 응용 프로그램에 대한 링크를 보유합니다. 대부분 .net을한다면 아마도 Nasterisk 또는 나이든 단조 도움이 될 것입니다.

다른 팁

별표가 항상 사용자 입력을 기다리는 것은 아닙니다. 배경에서만 Waitexten은 명령을 읽습니다. 재생 ()을 사용하는 경우 Asterisk는 오디오 파일을 재생하는 동안 DTMF를 무시합니다.

재생을 read ()로 바꿀 수는 있지만 읽기 시간 초과를 매우 낮은 값으로 설정해야합니다. 그렇지 않으면 read ()로 재생 한 모든 오디오 파일 후에는 침묵이 발생합니다. read ()를 사용하는 경우 사용자가 값 입력을 확인하여 종료를 확인해야합니다.

대신에

exten => x,n,Playback(yourfile) 
exten => x,n,somethingelse...

당신은 필요합니다

exten => x,n,Read(Exit,yourfile,1)
exten => x,n,GotoIf($["${Exit}" = "0"]?0,1) 
exten => x,n,somethingelse...

이것을 위해 별표를 설정합니까, 아니면 PBX, IVR 등과 같은 다른 작업을 수행 할 것인가?

별표로 다른 작업을 수행하는 경우, 연결되면 연결할 수있는 숨겨진 확장 (IVR 메뉴에 광고되지 않음)을 설정하십시오. 이 확장에서 발신자 ID를 확인하고 번호와 비교하여 스크립트 만 실행할 수 있도록 번호와 비교할 수 있습니다 (핀 번호를 요청하여 더 많은 보안을 추가 할 수 있으므로 찾을 수없는 경우 더 쉽게 휴식을 취할 수 있습니다. 너의 폰).

이 같은:

exten => 9999,1,GotoIf($["${CALLERID(num)}" = "yournumber"]?4)
exten => 9999,2,Playback(sorry)
exten => 9999,3,Hangup
exten => 9999,4,Read(Pin,please-enter-pin,4)
exten => 9999,5,AGI(your-script)

스크립트에서 PIN 변수를 확인하고 유효한 경우 실행하십시오. 그렇지 않으면 아무것도하지 않고 종료하십시오. 이렇게하면 DialPlan 내부의 핀을 하드 코딩 할 필요가 없습니다. 다른 사람이 볼 수 있습니다 ... 신뢰할 수있는 머신이라면 DialPlan에서 핀을 바로 검증 할 수 있습니다.

exten => 9999,5,GotoIf($["Pin" != "1234"]?2)
exten => 9999,6,AGI(your-script)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top