我正在开发一个使用星号服务器来管理 SIP 呼叫的应用程序。我为此使用 Asterisk.NET 库。
我需要通过代理服务器 AstManProxy 连接星号服务器。但是,当我通过代理连接时,它给了我一个超时异常。
谁能告诉我如何通过 AstManProxy 连接?
我正在开发一个使用星号服务器来管理 SIP 呼叫的应用程序。我为此使用 Asterisk.NET 库。
我需要通过代理服务器 AstManProxy 连接星号服务器。但是,当我通过代理连接时,它给了我一个超时异常。
谁能告诉我如何通过 AstManProxy 连接?
首先测试您可以在没有代理的情况下连接到星号。
之后再次检查您是否正确配置了代理。
如果所有接缝都正常,请使用 tcpdump 或 wireshark 查看您的应用程序和代理之间的通信。
如果 astmanproxy 与 Asterisk 在同一台机器上运行,这是我通常遵循的过程。
在端口 5039 上启用 AMI
vi /etc/asterisk/manager.conf
[general]
enabled = yes
port = 5039
bindaddr = 0.0.0.0
timestampevents = yes
[username]
secret = password
read = all
write = all
然后确保 AMI 响应
telnet localhost 5039
Action: Command
Command: core show channels<enter><enter>
Action: Logoff <enter><enter>
在端口 5038 上配置 ASTERISK MANAGER 代理
vi /etc/asterisk/astmanproxy.conf
host = localhost, 5039, username, password, on, off
listenport = 5038
然后在代理端口 5038 上测试
telnet localhost 5038
Action: Command
Command: core show channels<enter><enter>
Action: Logoff <enter><enter>
然后使用 MONIT 确保 ASTMANPROXY 保持运行
vi /etc/monit/monitrc
#Asterisk AMI Manager Proxy Monitoring Rule
check process astmanproxy with pidfile /var/run/astmanproxy.pid
start program = "/etc/init.d/astmanproxy start"
stop program = "/etc/init.d/astmanproxy stop"
if failed host 127.0.0.1 port 5038 then restart
if 5 restarts within 5 cycles then timeout