成功配置和维护了一些基于 Asterisk 的安装后,现在我被赋予了配置 FreeSwitch SIP 服务器的任务。
ISO 下载自
http://wiki.fusionpbx.com/index.php?title=CentOS_ISO
配置
- CentOS 5.4 最终版
- 自由切换
- FusionPBX 1.0
脚步
- 安装了 FusionPBX iso。
- 防火墙和网络配置设置。服务器 IP:192.168.0.100
- 从另一个框登录到 FusionPBX Web 前端。(http://192.168.0.100)
- 创建了分机 6000,密码为 6000。
- 应用更改/重新启动。
我有两个软件电话客户端,
- 3cx
- X-Lite 4
现在,当我尝试将软电话注册到 FreePBX 时,显示 SIP 错误 408。
请帮忙。
答案1
终于找到问题的原因了。FreeSwitch 中的一个 bug。
SIP 配置文件
正常安装下有三个sip配置文件:
- 外部.xml
- 内部.xml
- 内部-ipv6.xml
对于这个特殊案例,内部.xml是罪魁祸首,但我很确定其他文件也存在同样的问题。
为什么扩展未注册?
internal.xml文件中有三个部分,分别是
...
<param name="rtp-ip" value="$${local_ip_v4}"/>
...
<param name="sip-ip" value="$${local_ip_v4}"/>
...
<param name="presence-hosts" value="$${domain},$${local_ip_v4}"/>
...
查看其中的内容,我们发现两个别名:
- $${域名}
- $${本地 IP 地址}
FreeSwitch 将这两个值解析为“127.0.0.1”。
解决方案
通过不让 FreeSwitch 为我决定值,我能够解决这个问题。
...
<param name="sip-ip" value="192.168.0.100"/>
...
<param name="presence-hosts" value="192.168.0.100"/>
...
答案2
在我看来,您需要嗅探软电话客户端和服务器之间的流量,并查看线路上数据包的实际情况。SIP 是一种非常人性化的协议,tcpdump
在服务器上进行快速跟踪(理想情况下,在客户端上进行适当模拟的跟踪)可能会比查看“黑匣子”更快地让您了解问题所在。没有什么比查看线路上的流量更好了。
答案3
因为您尝试使用支持 Windows、Android 和 Iphone 的 3cx 或仅支持 Windows 和 OSX 的 Xlite,所以我假设您在 Windows 上运行软件电话,因为它是唯一支持这两种客户端的通用平台。
你的错误是:
408 请求超时
The server could not produce a response within a suitable amount of
time, for example, if it could not determine the location of the user
in time. The client MAY repeat the request without modifications at
any later time.
您在软件电话客户端电脑上获得的 IP 地址是什么?192.168.0.x?
在软电话客户端电脑上禁用 Windows 防火墙。