如何确定voip中出现的问题
-
在一个VoIP系统中,所有通信都基于IP网络,绝大部分问题也与网络相关
-
本文介绍了常见错误以及如何利用ngrep这个工具来查找问题
ngrep介绍
ngrep 是grep(在文本中搜索字符串的工具)的网络版,他力求更多的grep特征,用于搜寻指定的数据包。正由于安装ngrep需用到libpcap库, 所以支持大量的操作系统和网络协议。能识别TCP、UDP和ICMP包,理解bpf的过滤机制。
在调试VoIP过程中,最常用的命令为
ngrep -deth0 -qWbyline "" port 5060其中eth0表示要监听的网卡, 5060为要监听的端口,这个命令将列出所有到达eth0 5060端口的包 或者使用
ngrep -deth0 -qWbyline "INFO" port 5060 and host 199.182.132.101这个命令将列出来自199.182.132.101的所有到达eth0 5060端口的包
ngrep -deth0 -qWbyline "^REGISTER" port 5060这个命令将列出所有到达eth0 5060端口的REGISTER包(用于注册或者注销)
ngrep -deth0 -qWbyline "astercc-5001@" port 5060这个命令将列出所有到达eth0 5060端口的包含分机astercc-5001信息的包
分机注册时你将会看到
分机注册问题
-
408 request timeout 注册超时
-
当发现分机无法注册时,通过ngrep看不到任何对方发来的包
-
检查本机防火墙,可以通过/etc/init.d/iptables stop来确认防火墙未启用
-
在有nat的情况下(即服务器处于路由器之后),请确认udp 5060端口做了正确的转发
-
-
403 forbidden 用户密码错误
-
请检查是否设定了正确的用户名密码
-
拨号问题
-
484 Address Incomplete
-
请尝试关闭sip设置中的video support
-
-
488 Not Acceptable Here
-
请确认语音编码设置正确,包括局端和客户端
-