mgcp的alg功能实现
刚吃了一碗还算正宗的潮汕牛筋丸粿条和一颗卤蛋,算是给自己的生日礼物。
这一周工作只围绕了一个主题“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啦。
mgcp的alg功能实现的更多相关文章
- NAT alg 和 ASPF
NAT alg 和 ASPF 参考:https://handbye.cn/719.html 来源:https://www.jianshu.com/p/8a8eb36eef7d NAT的部署已经在企业网 ...
- 配置NAT回流导致外网解析到了内网IP
单位有3个域名,用量很大,2014年开始本人研究部署了Bind+DLZ +Mysql的三机智能多链路DNS,非常好用,优点是: 1.使用Mysql管理记录,配置.管理.查询方便. 2.自动判断运营商, ...
- P2P技术详解(一):NAT详解——详细原理、P2P简介
1. IPv4协议和NAT的由来 今天,无数快乐的互联网用户在尽情享受Internet带来的乐趣.他们浏览新闻,搜索资料,下载软件,广交新朋,分享信息,甚至于足不出户获取一切日用所需.企业利用互联网发 ...
- NAT详解:基本原理、穿越技术(P2P打洞)、端口老化等
这是一篇介绍NAT技术要点的精华文章,来自华3通信官方资料库,文中对NAT技术原理的介绍很全面也很权威,对网络应用的应用层开发人员而言有很高的参考价值. 学习交流 移动端即时通讯学习交流: 21589 ...
- 华为AR配置内部服务器示例(只有1个公网IP)
AR配置公网和私网用户都可以通过公网地址访问内部服务器示例(只有1个公网IP) 适用于:V200R003C01及以后的系统软件版本. 组网需求: 由于只有1个公网IP(100.100.1.2),想实现 ...
- Nmap误报1720端口开放的原因
在使用Nmap扫描服务器开放端口(全连接扫描)时,一直会发现误报1720端口开放,telnet也有时会连接成功.而实际上服务器并未开启此端口.经过查阅资料,确定原因如下: H.323协议在负载中放入了 ...
- SIP穿越NAT SIP穿越防火墙-SBC
FireWall&NAT FireWall是一种被动网络安全防卫技术,位于网络的边界.在两个网络之间运行訪问控制策略.防止外部网络对内部信息资源的非法訪问,也能够阻止特定信息从内部网络被非法输 ...
- NAT技术详解
一.IPv4协议和NAT的由来 1.IPv4协议介绍 2011年2月3日,IANA宣布:IPv4地址空间最后5个地址块已经被分配给下属的5个地区委员会.2011年4月15日,亚太区委员会APNIC对外 ...
- 华为eNSP上的NAT地址转换配置
NAT是将IP数据报文报头中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络(私有IP地址)访问外部网络(公有IP地址)的功能. 1.实验拓扑 地址表: 1.完成各个接口基本配置之后使用pi ...
随机推荐
- python time包中的time.time()和time.clock()的区别
在统计python代码 执行速度时要使用到time包,在查找相关函数时有time.time()和time.clock()两个函数可供选择.而两者是有区别的: cpu 的运行机制:cpu是多任务的,例如 ...
- C#中一行代码实现18位数字时间戳转换为DateTime
场景 存取的时间戳数据为: 636728674347302002 怎样将其转换为DateTime时间. 目前大多数的策略是,转换成string,然后 DateTime dateTimeStart = ...
- 小鸟初学Shell编程(四)管道符
管道作用 管道实际上就是进程之间的一个通信工具,那么用在Linux命令中主要是方便两条命令互相之间可以相互通信. 管道符 管道符(匿名管道)是Shell编程经常用到的通信工具. 管道符是"| ...
- 学习shiro第三天
今天比较晚,所以只看了shiro的认证策略Authentication Strategy,下面讲讲shiro的三种认证策略. 1.AtLeastOneSuccessfulStrategy:这个是shi ...
- Vim操作:打开文件
1.打开文件并定位到某一行 vim +20 vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php # 定位至第20行 2 ...
- redux的详细介绍和使用!
三层 视图(view)数据商店(store)reducer 流程: 用户操作视图 视图产生action 通过store转发给reducer(同时还会接收store中的数据模型 state) 由redu ...
- Web点击链接调起手机系统自带短信发短信
实现代码如下: 一.Html代码 <a href="javascript:;" class="xq-sms">发送短信</a> 二.jQ ...
- logstash 入门篇
场景介绍 基于分布式集群海量日志数据,且分布在不同的服务器上,日志的采集以及可视化是需要我们解决的问题.ELK就是这么一个方案,当然我们这里主要讲解logstash安装配置和基础语法. ELK帮我们解 ...
- block注意事项
1.block的声明和注意事项 #import "ZYViewController.h" @interface ZYViewController () @end /*用typede ...
- linux 修改文件打开数量限制
1.查看打开文件数量限制 ulimit -a ulimit -n 2.临时修改 ulimit -n 2048 3.永久修改 vi /etc/security/limits.conf 追加 * soft ...