我正在使用 Asterisk-Java 编写应用程序。它被设计为在同样运行 Asterisk 的服务器上运行。到目前为止,一切都很好。
我的应用程序,它发起调用(使用 AMI)并管理用户输入(使用 Asterisk-Java 的 FastAGI 和嵌入式AgiServer
)在我的开发服务器和生产服务器上都运行良好。
出于部署目的,我现在被要求创建一个 Docker 容器来打包 Asterisk 和我的应用程序,以便可以轻松地将其部署到其他地方,而无需进行安装和配置。
问题是,我的应用程序在 Docker 容器中的行为方式不同:在开发/生产服务器上,使用该getData
函数,我可以获得 DTMF 代码;在 Docker 容器上,getData
似乎永远不会收到来自 Asterisk 的 DTMF 数据(我可以流式传输文件,但该函数最终会超时,这意味着它没有得到任何东西)。
我首先想到的是一个未暴露的端口,但由于这个通信问题似乎是在 AGI Server 和 Asterisk 之间,它们都在容器中运行,我很难相信。
我没有其他想法,请建议。