【问题标题】:How to integrate Asterisk server with external relational database, like mysql?如何将 Asterisk 服务器与外部关系数据库(如 mysql)集成?
【发布时间】:2012-09-21 03:57:32
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: php mysql sip asterisk agi


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        不,您不需要 AGI 脚本。

        最简单的方法是使用 func_odbc(user defined sql functions via odbc) with dialplan。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-12-04
          • 1970-01-01
          • 2014-07-15
          • 1970-01-01
          • 1970-01-01
          • 2013-09-16
          相关资源
          最近更新 更多