mgcp的alg功能实现
2024-09-08 08:05:27
刚吃了一碗还算正宗的潮汕牛筋丸粿条和一颗卤蛋,算是给自己的生日礼物。
这一周工作只围绕了一个主题“mgcp的alg功能实现”。
1. 应用场景:
一台运行mgcp语音协议的终端设备,经过一台路由器到达公网,注册到mgcp的服务器;
2. 问题:
经过路由器的mgcp信令包、rtp/rtcp流需要进行snat,由于snat后的ip及端口不能唯一确定,使得“出去的mgcp信令里面包含的sdp信息(ip和端口)”与“实际rtp/rtcp流的ip和 端口”不匹配,从而出现电话通话时双方听不到对方声音。
3. 解决措施:
a. 在路由器上添加一条pat,与其原本的snat对应,即让其进行双向的nat。同时配置终端设备的sdp的ip为路由器的wan口ip。此方法简单有效,但是需要用户修改配置。
b. 在路由器上添加mgcp的alg功能,使其自动修改mgcp信令中sdp信息里面的ip和端口。此方法需要改动内核模块代码,但是对用户而言无需修改配置。
4. 解决措施b的思路:
参考sip的alg功能对应代码:nf_conntrack_sip.c、nf_nat_sip.c,添加nf_conntrack_mgcp.c、nf_nat_mgcp.c,编译出nf_conntrack_mgcp.ko、nf_nat_mgcp.ko,然后 在路由器跑应用前insmod进去就可以啦。由于mgcp的alg简单许多,所以基本上只要在sip上删减大部分代码,修改小部分代码就ok啦。
最新文章
- C#调用win32 api程序实例
- jquery模拟操作——trigger()函数
- Hibernate框架的基本搭建(一个小的java project的测试向数据库中插入和查询数据的功能)
- 解决 MySQL Cluster 通过 某一个MySqld节点新建表时,其他 MySqld节点 看不到表内容的问题
- [vim]vim中有中文乱码
- [React Native] Up and Running
- JS JQuery Ajax 跨域 Post Soap webservice
- svn server安装配置
- java基础知识2
- Embedded Linux Primer----嵌入式Linux基础教程--章节介绍
- GDAL——命令使用专题——gdalsrsinfo命令
- undo与redo
- 对JS作用域和作用域链的理解
- tomcat闪退
- springboot 整合 redis 共享Session-spring-session-data-redis
- ss 重新设置 端口的方法 记录
- springmvc学习总结(一) -- 从零搭建,基础入门
- Linux 获取 MAC 地址并去除 : 字符
- python -- 解决UnicodeEncodeError问题
- JavaScript中的Boolean 方法与Number方法