sip电话注册失败问题解决心得总结

这是我学习搭建opensips服务器以来持续性最长的一个问题,具体就是终端电话软件一直注册不了已经创建好的sip会话账号。我刚开始用的终端电话软件是Zoiper,要么一直在注册中,要么直接注册失败,后面网上查询重新下载了Microsip,它能显示注册失败的原因,比如请求超时,比较方便一点。

网上查询说可以使用sngrep工具抓包分析,第一次使用需要先下载这个工具:

#sudo apt-get install sngrep

然后直接sngrep

#sngrep

1e1f4d3fec1a4a1a8173518083995765.jpg

感觉像是sip服务器压根没有接受到终端发送的任何消息,我开始以为是配置文件的问题,比如IP地址或端口号没写正确。

#cd /usr/local/etc/opensips

#vim opensips.cfg

#vim opensipsctlrc

#vim /etc/default/opensips

#vim /etc/init.d/opensips

配置都没有问题,具体配置文件的内容见http://t.csdn.cn/7NezY

我又在网上查了很多解决方法,比如修改/usr/local/etc/opensips/opensips.cfg配置文件:

b3cd65eb2b52423bac18570fc21fb7fc.jpg

 加上自个儿的sip服务器IP地址,还是不行。修改控制面板的配置:

1af45db5c735420eb9d598fdb58476e3.jpg

03f6988d3ed841b684f2b1ffb7fd7090.jpg

0c35d751cfd34cd5a8c43e780f120a16.jpg 12b6ce8d2b76467087b44e4fbdc48a29.jpg

 也是不行。

之后在网上看到说是防火墙限制5060端口的缘故,也就是5060端口还被开放。

#netstat -anp

#netstat -ulpn | grep 5060

显示所有端口/协议的占用情况,意料之中没有5060的占用情况。

首先我觉得会不会是主机防火墙限制的5060端口,接收不了通过5060端口发送过来的信息,进行了如下设置:

控制面板——>windows防火墙——>高级设置——>入站规则——>新建规则——>端口——>协议(udp)——>特定本地端口(5060)——>允许连接——>勾选“域,专用,公司”——>名称——>完成

还是没解决问题。

然后是sip服务器的防火墙,用指令打开5060端口

#iptables -I INPUT -p tcp --dport 5060 -j ACCEPT

#iptables -I INPUT -p udp --dport 5060 -j ACCEPT

#iptables-save

然后根据指示执行#dmesg,还出现了其他问题,比如:

16f67c2e3e454245a69878356727d9e0.jpg

 网上查询说的是该sip服务器的虚拟磁盘容量不够,需要增大容量:

#df -h

查询各设备的空间使用情况:

283d81e2775644f1b328f005cf0410f8.png

 更改搭建该Ubuntu的时候分配的磁盘容量(需要先关闭该虚拟机再进行更改)后,重新分配(具体方法可网上查询)。反正这波操作下来还是没什么用。

**************************************************

应该是防火墙打开端口的指令不对,查询到Ubuntu18.04使用的防火墙是ufw :

①查看防火墙的状态

#sudo ufw status

a3a471d5e9004410aa47196fe0b4f7a7.png

 防火墙是打开的,如果是关闭的,可通过#sudo ufw enable 打开。

②安装firewalld,开放5060端口。

#sudo apt-get install firewalld

#sudo firewall-cmd --permanent --add-port=560/udp

#sudo firewall-cmd --list-all

396cd9b2e81843d5a39aca6888025549.png

 ③重启防火墙(重点)

#sudo systemctl reload firewalld

#firewall-cmd --reload

sip账户依然没有注册成功,苦思冥想后发现防火墙也有可能限制了udp协议,没有开放该协议,如上图中,protocols项是没有内容的。

#sudo firewall-cmd --permanent --add-protocol=udp

5e742c2e61234494a1333d661ef88219.png

再次重启防火墙#firewall-cmd --reload

Microsip电话就显示在线了,至此问题终于得到解决:

83e9bf48fa0b4d34967d1ca77b76ca10.png

#netstat -ulpn | grep 5060

也出现了5060端口占用情况:

3ed68777832f425bb7206fdf60201371.png

 

 

 

注: 属个人学习总结,如有错误欢迎指正。

 

 

 

 

 

 

 

 

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: SIP电话是一种基于SIP(会话初始化协议)技术的电话系统,它可以通过Internet连接来进行语音通话和视频通话。SIP电话通常以软件形式运行在Android设备上,使用户可以使用移动网络或Wi-Fi进行通信。 在Android平台上,有许多SIP电话应用程序可用。这些应用程序通常允许用户注册SIP账户并与其他用户进行语音或视频通话。用户可以通过输入对方的SIP地址或用户名进行通信,也可以通过通讯录中的联系人选择进行通话。 使用SIP电话应用程序,在Android设备上可以实现免费或便宜的国际长途通话。用户只需在拨打电话前连接到互联网,并确保对方也拥有SIP电话应用程序或相关服务即可。 SIP电话应用程序还提供了一些其他功能,如即时消息、文件传输和会议呼叫等。用户可以通过消息功能与其他用户进行实时文本交流,也可以通过文件传输功能共享文件。此外,用户还可以使用会议呼叫功能进行多方通话。 对于企业用户来说,SIP电话应用程序也可以作为企业通信系统的一部分。借助SIP电话应用程序,员工可以在不同地点使用他们的Android设备进行公司内部通话,从而提高沟通效率和灵活性。 总的来说,SIP电话是一种便捷的通信方式,可以在Android设备上随时随地进行语音通话和视频通话。它为用户提供了更多的选择,不仅可以节省通话费用,还可以方便地进行国际通话和实时文本交流。 ### 回答2: SIP电话是指使用会话初始协议(Session Initiation Protocol,简称SIP)进行语音通话的一种电话系统。SIP电话可以在基于IP网络的各种设备上使用,包括Android手机。 Android平台提供了SIP API,使得开发者可以在Android设备上实现SIP电话功能。用户可以通过在Android设备上下载并安装支持SIP协议的手机软件,如Zoiper、Linphone、CSipSimple等来实现SIP电话功能。 使用SIP电话,用户可以利用互联网进行免费或低成本的语音通话。用户只需在SIP电话软件中输入对方的SIP地址,即可与对方进行语音通话。用户还可以利用SIP电话拨打普通电话号码,只需要连接到一个SIP服务提供商的服务器,通过服务器SIP电话转换成普通电话信号,实现与普通电话用户之间的通话。 SIP电话在Android设备上的应用范围很广。除了一般用户可以通过SIP电话实现语音通话外,企业也可以利用SIP电话实现统一通信系统,提高内部沟通效率。此外,SIP电话也可以与其他通信应用集成,如短信、邮件等,实现更多功能。 需要注意的是,使用SIP电话需要有可靠的网络连接,以及稳定的带宽和网络延迟。由于SIP电话基于IP网络,它对网络质量和稳定性要求较高。同时,使用SIP电话还需要与SIP服务提供商建立账号并进行注册。 总体来说,SIP电话在Android设备上提供了一种便捷的语音通话方式,可以满足个人和企业通讯需求,带来更加灵活和经济高效的通信体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值