from:https://www.coder.work/article/6748986
我有一个监听多个 IP 的 OpenSIPS 服务器。
如果我将调用路由回下一个点,我想确保所有信令和媒体都来自调用最初登陆的 IP(我不希望调用者和被调用者知道彼此的 IP 地址)。
我相信我需要像 RTPProxy 这样的东西。
我的问题是每个 IP 地址需要一个 RTPProxy 服务器,还是可以通过单个服务器路由多个 IP?有更好的解决方案吗?
我将自己尝试这个,但我正在努力让 RTPProxy 服务器正常运行(我的无知而不是 RTPProxy 的任何问题)。我提前询问只是想看看是否有人知道我是否在浪费时间进行设置。
对于任何有兴趣的人,这就是我让它工作的方式,尽管我不确定我是否想以此作为最终解决方案。需要更多的测试。对于 2 个 IP,具有拓扑隐藏和 RTP 代理。除了下面的答案,我希望它对某人有所帮助。
加载 rtpproxy 进程 -
rtpproxy -l _your_public_ip_1_ -s udp:localhost:7722
rtpproxy -l _your_public_ip_2_ -s udp:localhost:7723
然后修改 kamailio.cfg 文件 -
loadmodule "/usr/local/lib64/kamailio/modules/topoh.so"
modparam("topoh", "mask_key", "Your_key_here")
modparam("topoh", "mask_ip", "10.0.0.1")
下一位为 RTP 代理创建两个组 - 1 和 2 -
#!ifdef WITH_NAT
# ----- rtpproxy params -----
modparam("rtpproxy", "rtpproxy_sock", "1 == udp:127.0.0.1:7722")
modparam("rtpproxy", "rtpproxy_sock", "2 == udp:127.0.0.1:7723")
然后在标准(已交付)配置的 NAT 部分中,根据入站调用登陆的 IP 选择要在代理中使用的组。 rtp_proxy_manage 是 force_ 和 unforce_ 命令的高级版本。基本上它只是启动并为你做一切 -
route[NATMANAGE] {
#!ifdef WITH_NAT
....
if($Ri=="X.X.X.1")
set_rtp_proxy_set("1");
if($Ri=="X.X.X.2")
set_rtp_proxy_set("2");
rtpproxy_manage("",$Ri);
最佳答案
如果您使用 RTPProxy,则每个 IP 地址需要一个 RTPProxy 服务器。您可以使用“-l”参数指定要监听的 IP:
# /usr/sbin/rtpproxy -l 10.10.10.10 -s unix:/var/run/rtpproxy/rtpproxy1.sock -u rtpproxy rtpproxy -p /var/run/rtpproxy/rtpproxy1.pid &
# /usr/sbin/rtpproxy -l 10.10.10.11 -s unix:/var/run/rtpproxy/rtpproxy2.sock -u rtpproxy rtpproxy -p /var/run/rtpproxy/rtpproxy2.pid &
您需要将其与独立的 opensips/openser/kamailio 实例相匹配:
listen=udp:10.10.10.10:5060
...
loadmodule "rtpproxy.so"
modparam("rtpproxy", "rtpproxy_sock", "unix:/var/run/rtpproxy/rtpproxy1.sock")
...
unforce_rtp_proxy();
...
force_rtp_proxy();
和
listen=udp:10.10.10.11:5060
...
loadmodule "rtpproxy.so"
modparam("rtpproxy", "rtpproxy_sock", "unix:/var/run/rtpproxy/rtpproxy2.sock")
...
unforce_rtp_proxy();
...
force_rtp_proxy();
如果您对 C 有一定的经验,您可以想象修改 rtpproxy 模块以了解多个 rtpproxy 实例。
此外,如果通过用户空间中继 RTP 的想法困扰您,MediaProxy 是一个替代方案。
您的 openser/opensips/kamailio 不是中继 RTP 流量的用户空间守护进程,而是通过 JSON 网络帖子告诉 python MediaDispatcher 联系可用的 MediaRelay 以设置 linux 内核级 conntrack 流量转发条目。
这种方法的缺点是当前的 python media-dispatcher 和 media-relay 读取/etc/mediaproxy/config.ini - 你需要破解 python 来获取配置参数,所以你可以想象有多个 config.ini 文件,每个实例一个以设置正确的重定向。
/etc/mediaproxy/config.ini 的示例可能如下所示:
[Relay]
dispatchers = 10.10.10.10:25060
[Dispatcher]
socket_path = /var/run/mediaproxy/dispatcher.sock
listen = 10.10.10.10:25060
listen_management = 10.10.10.10:25061
[OpenSIPS]
socket_path = '/var/run/opensips/socket'
在您的 opensips 配置文件中:
modparam("mi_datagram", "socket_name", "/var/run/opensips/socket")
...
loadmodule "mediaproxy.so"
# ----- mediaproxy params -----
modparam("mediaproxy", "mediaproxy_socket", "/var/run/mediaproxy/dispatcher.sock")
#modparam("mediaproxy", "disable", 1)
#modparam("mediaproxy", "natping_interval", 60)
...
engage_media_proxy();
...
end_media_session();
听起来您可能对 rtpproxy 有更好的运气来满足您的特定需求。
关于sip - 使用 OpenSIPS/Kamailio/OpenSER 进行 RTP 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12708089/
Read More ~
简单实用flash再就业计划
历史原因不在过多陈述,置于为什么突然要发这个,是因为看到差评公众号发表的“从浏览器沦为系统毒瘤:无法禁用的IE背后,是几百亿的家族生意”下有人回复说flash还得专门下载一个内嵌flash的浏览器。
今天我就教大家怎么安装纯净版flash(个人认为)以及支持flash的chrome浏览器怎么获得。
东西丢开头,怎么用慢慢看。(所有资源均来自互联网,与本人无关)
Flash清理及三合一安装包:
Adobe Flash Player v34_0_0_282
https://magicgenius.lanzoub.com/b090h7ccd
密码:15s3
低版本chrome 制作教程。
https://www.jianshu.com/p/78bdfacac376
https://www.chromedownloads.net/chrome64win/
成品:
百度网盘:https://pan.baidu.com/s/1KpOKPEGiHYwKNFRqdSI2Kg 提取码:pz3i
天翼云盘:https://cloud.189.cn/t/3QzIzuNn6JJb (访问码:6uop)
蓝奏云: https://wwr.lanzoui.com/b02c6m9he 密码:d3gk
首先从flash里下载Adobe_Flash_Player_一剑全清_V4.7z,执行并重启。
在下载所需要的flash版本进行安装。懒人直接下载3合1安装包安装即可。(3in)
注意:新版本的浏览器不支持 Flash Player,目前支持使用Flash Player的有:
1、chromium内核88版本以下的浏览器(chrome v.88 以下)
2、Firefox 85版本以下的火狐浏览器
3、Safari 14版本以下的Safari浏览器
Read More ~
sngrep - 最好用的sip可视化抓包工具
教程链接:https://www.yuque.com/wangdd/opensips/sngrep#gbX9j
centos安装sngrepcentos安装sngrep
编辑yum源
vim /etc/yum.repos.d/irontec.repo
[irontec]
name=Irontec RPMs repository
baseurl=http://packages.irontec.com/centos/$releasever/$basearch/
安装
rpm --import http://packages.irontec.com/public.key
yum install -y sngrep
若出现报错
http://packages.irontec.com/centos/releasever/basearch/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
常见问题
可以手动编辑上面的变量releasever和变量basearch
若不清楚怎么获取可以参考下面的命令
#centos
#$releasever
rpm -q --qf %{version} centos-release;echo
#$basearch
rpm -q --qf %{arch} centos-release;echo
Read More ~
京东抓取wskey最新地址/方法
一句话,抓包地址变了,但方法没变。
准备抓包环境
开始抓包
关闭京东后台关闭(只有重新打开才会出现使用wskey获取最新token)
打开京东,“主页”刷新,“我的”刷新
在抓包软件/程序里找到 rjsb-token-m.jd.com
完整url = https://rjsb-token-m.jd.com/gettoken_c
在cookies里面就可以找到 wskey=AA.*的内容,复制他
怎么用是你们的事情了。
图片就不放了。
Read More ~
linux 踢用户下线
linux 踢用户下线
先用w或者who查看当前连接的用户
who
然后通过下面的名将该链接kill
pkill -kill -t pts/0
who、w 和 users 等命令通过 utmp(/var/run/utmp) 文件查询当前登录用户的信息。
last 和 ac 命令通过 wtmp(/var/log/wtmp) 文件查询当前与过去登录系统的用户的信息。
lastb 命令通过 btmp(/var/log/btmp) 文件查询所有登录系统失败的用户的信息。
lastlog 命令通过 lastlog(/var/log/lastlog) 文件查询用户最后一次登录的信息。
Read More ~