linux - Netsed 透明代理和服务器位于同一系统上

标签 linux networking sip iptables pbx

我想使用 netsed 更改在 Linux 系统(debian 10stretch)上运行的 PBX 服务器上的传入 SIP 流量(UDP 端口 5060)。

在第一步中,我只是尝试将手机设置为连接到 UDP/5061 并使用该命令启动 netsed:

./netsed udp 5061 127.0.0.1 5060 s/profile-level-id=4280D/profile-level-id=42800D

流量被拦截、更改并转发到PBX软件的5060端口。

不幸的是,SIP 协议(protocol)“注意到”电话使用的端口与 PBX 不匹配(由于端口转发,PBX 使用 5060,电话使用 5061)。现在的问题是如何使用 netsed 来做到这一点。

所以问题是如何在与 pbx 相同的系统上创建透明代理。

或者有没有办法在端口 5060 上使用 netsed 进行监听,然后将其传递到端口 5060 上的 pbx 软件?

更深层的背景是用于拨出调用的 Mobotix 门电话未正确编码配置文件级别 ID 字段(它应该是 6 个 base16 字符长,但实际上是 5 个字符长)。我的想法是在 SIP-Invite 进入 PBX 后立即更改配置文件级别 ID。

同样的问题StackExchange .

最佳答案

如果我没有误解你的想法;我觉得一件很有趣的事;您正在尝试使用 netsed 设置透明应用程序 IP 代理。从该实验来看,简单的解决方案并不适用,因为 SIP 协议(protocol)“通知”“netsed”正在改变数据路径。

需要注意的几点:

  • SIP 本身不能通过 NAPT 作为传输数据 包含 IP 地址和端口号。

  • 此外,除了 TLS 之外,SIP 与传输协议(protocol)无关 表示 SIP session 被授权同时使用 UDPTCP 同一时间。

我建议您看看SIP代理、SBCB2BUASTUN,以便对所有这些问题有一个正确的理解,似乎是一条艰难的道路,但很有值(value)。

或者您可以从 SIP 代理中汲取灵感,并在 netsed 中实现最小的 SIP 代理功能。这很有趣,但并不那么容易。

但是,如果您放弃了“基本”代理的最初想法,那么您可以使用 SIP 工具箱,例如 [kamalio][1]。这是进行 SIP 相关管道的已知方法,但显然与您最初的目标相去甚远。

希望这有帮助。

关于linux - Netsed 透明代理和服务器位于同一系统上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58720592/

相关文章:

linux - Freepbx自定义上下文出站路由

Android 以编程方式创建 Sip 帐户

linux - 将 Windows 共享安装到 Raspbian Jessie

linux - 如何确定逗号分隔字符串中字符串的顺序位置?

linux - 使用批处理文件或 shell 脚本进行文件传输

c++ - 向其他 PC 发送以太网 (UDP) 帧

linux - 增加 AWS EC2 ubuntu 实例磁盘空间

linux - LXC 是如何实现网络命名空间的?

linux - 在 Linux 上以编程方式重新加载网络设置

sip - contact 和 from header 有什么区别?