2012-09-21 2 views
2

나의 목표 : 클라이언트 (SIP 전화, 나는 3CX 전화를 사용한다)를 별표 서버에 다이얼하면 별표 (*)가 외부 관계형 데이터베이스 (별표 서버와 같은 장소에 위치하지 않는다)에 연결되고 데이터베이스 응답이 있으면 별표 서버가 음성을 재생한다 파일 (미리 정의 된 .gsm 파일)을 응답 클라이언트에 보내십시오.Asterisk 서버를 mysql과 같은 외부 관계형 데이터베이스와 통합하는 방법은 무엇입니까?

내가 가지고있는 것 : 별표 서버로 VirtualBox에 AsteriskNow를 설치했습니다. 클라이언트는 Softphone을 사용하여 SIP 채널의 Asterisk 서버에 연결합니다. 클라이언트가 별표 서버에 전화를 걸면 서버는 다이얼 플랜을 실행할 수 있습니다.

내 질문 : 별표 서버가 외부 데이터베이스 (예 : MySQL)에 연결되기를 원한다면. 요청 데이터에 액세스하려면 dialplan이 AGI 스크립트를 호출하게하려면 이렇게해야합니까? 그렇다면 PHP로 AGI 스크립트를 만드는 것이 훨씬 쉽습니다. 그렇지 않다면, mysql을 연결하기 위해 무엇을해야 하는가? ODBC 사용?

다른 프로그래밍 언어를 사용하지 않고 dialplan을 사용하여 별표 서버의 데이터를 조작 할 수 있습니까? 그러나 dialplan은 다른 프로그래밍 언어처럼 완전한 구문 지원을하지 못하는 것 같습니다.

답변

3

별표에 ODBC을 사용할 수 있습니다. 심지어 별표를 Microsoft SQL Server에 연결할 수 있습니다. 별표로 로그 데이터를 저장하려면 CEL 또는 CDR을 사용하거나 AMI으로 이벤트를 수신 할 수 있습니다. 하지만 별표가 특별한 작업 (동적)을 수행하도록하려면 AGI을 사용하는 것이 좋습니다. 도움이되기를 바랍니다.

1

별표 (*)는 MySQL 또는 다른 데이터베이스를 사용하여 결제 정보를 저장할 수 있지만 작업을 수행 할 때 여러 가지 파일을 재생할 때 AGI를 사용해야합니다. AGI는 다양한 언어와 라이브러리를 사용할 수 있기 때문에 매우 유연합니다. 내 AGI 스크립트에 Python을 사용하지만 다른 사람들은 C, Perl, Java를 사용합니다. 이러한 언어로 Asterisk 위키에있는 예제를 찾을 수 있습니다 : http://www.voip-info.org/wiki/view/Asterisk+AGI

물론 AGI 프로그램에서 데이터베이스에 연결하거나 HTTP/SOAP/REST를 사용하여 다른 소프트웨어와 통합 할 수 있습니다.

1

아니요, AGI 스크립트가 필요하지 않습니다.

가장 쉬운 방법은 func_odbc (odbc를 통해 사용자 정의 sql 함수)를 dialplan과 함께 사용하는 것입니다.

btw, diallplan은 다른 프로그래밍 언어와 마찬가지로 완전한 언어입니다. 다이얼 플랜을 통해서만 수행 할 수 있습니다. 그러나 모든 것들이 효과적이고 많은 경험을 요구하는 것은 아닙니다.

관련 문제