2

我的目标:客户端(SIP电话,我使用3CX电话)拨号到星号服务器,星号然后连接外部关系数据库(与星号服务器不在同一个地方),如果数据库有响应,星号服务器播放语音文件(预定义的 .gsm 文件)响应客户端。

我已经拥有的:我在 VirtualBox 中安装了 AsteriskNow 作为星号服务器,客户端正在使用软电话与 SIP 通道中的 Asterisk 服务器连接。当客户端拨号到星号服务器时,服务器可以执行拨号方案。

我的问题:如果我想要星号服务器建立与外部数据库的连接,例如 MySQL。并访问请求数据,我是否需要让拨号计划调用 AGI 脚本来做到这一点?如果是这样,在 PHP 中使用创建 AGI 脚本更容易实现吗?如果没有,连接mysql应该怎么做?使用 ODBC?

是否可以使用拨号方案而不使用其他编程语言来操作星号服务器中的数据?但是似乎 dialplan 没有像其他编程语言那样完整的语法支持?

4

3 回答 3

3

您可以ODBC在星号上使用。即使您可以将星号连接到Microsoft SQL Server. 如果您想将日志数据保存在星号上,您可以使用CEL,或者CDR您可以通过 接收事件AMI。但是如果您想强制星号执行特殊任务(动态),最好使用AGI. 我希望它会有所帮助。

于 2012-09-21T04:45:08.807 回答
1

Asterisk 可以使用 MySQL 或其他数据库来存储帐单信息,但对于您的任务——播放各种副文件,您应该使用 AGI。AGI 非常灵活,因为您可以使用所需的各种语言和库。我将 Python 用于我的 AGI 脚本,但其他人使用 C、Perl、Java。您可以在 Asterisk wiki 上找到这些语言的示例:http ://www.voip-info.org/wiki/view/Asterisk+AGI

当然,您可以从您的 AGI 程序连接到数据库或使用 HTTP/SOAP/REST 与其他软件集成。

于 2012-09-21T06:40:08.860 回答
1

不,您不需要 AGI 脚本。

最简单的方法是使用 func_odbc(用户通过 odbc 定义的 sql 函数)和拨号方案。

顺便说一句,diallplan 与任何其他编程语言一样是完整的语言。任何事情都只能通过拨号方案来完成。但并非所有事情都有效,需要大量经验。

于 2012-09-24T14:27:45.953 回答