LINUX SIP ALG源码解析

2018年7月20日,2018年工作主要以NAT开发为主,补充之前NAT 不支持的特性,本篇文章主要总结SIP ALG开发过程的总结和收获。

环境:

1:我司网关产品配置SIP功能,phone1-----SIP网关----NAT设备------SIP网关----mss mini服务器

                                                                                                                  |

                                                                                                              phone2

     遇到的问题:1)网关设备配置问题,

                           2)mss mini服务器 版本问题,不检查sip报文中的端口号和地址协商是否正确的问题。服务器在安装时识别的网                                    卡不可修改问题,解决办法:下载了mss mini的最新版本

                           3)媒体报文由phone1发送给phone2,不经过 mss mini服务器,phone1 在信令报文中获取mss mini服务器的信息

2:使用x-lite 和mss mini服务器,安装在win7的虚拟机环境中搭建linux虚拟机的环境

                                           x-lite -------NAT-------x-lite -------mss mini服务器

      x-lite的设置问题请网络中查找,注意X-lite的安装需要声卡

3: 测试仪模拟sip报文,由于测试仪口资源有限导致使用前两种方法折腾耽误了比较久的时间。

代码:

使用LINUX3.10.1版本的代码,适配到我司的平台下

遇到的问题:1.对linux NAT的整体架构不够熟悉,netfilter的整个架构不熟悉,ct exp的引用计数导致死机的问题,

                         2.移植到虚拟环境中,环境大小端的问题,x86为小端,导致配置需要做一个大小端的转换

                         做事情要足够细心

 

学习LINUX NAT需要做的准备

1.一套linxu的代码

2.netfilter 的架构,NAT的代码

3.NAT ALG代码调试,先了解整个协议和交互流程,以及交互中需要ALG的参数

4.LINUX系统的搭建,GDB的学习,come on ,上坡就会比较吃力

你可能感兴趣的:(linux)