zoukankan      html  css  js  c++  java
  • 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啦。

  • 相关阅读:
    Tomcat December 31,2019
    XML
    Java
    mysql8.0.16安装(补) September 24,2019
    乱码中的编码和解码
    idea优化
    新版web.xml
    重定向和请求转发
    web下载文件设置的头信息
    响应状态码
  • 原文地址:https://www.cnblogs.com/zengjianrong/p/4230014.html
Copyright © 2011-2022 走看看