标签:# SIP

软电话安装

一.准备软件安装包 1、 Micro sip microsip-lite-3.14.4 或更高版本 2、Openvpn 3、Openvpn客户端配置文件 注:该文件不包含在下载链接中,会根据用户单独发送。若没收到请联系客服。 https://wwqh.lanzouw.com/b02eq4rla 密码:4smq https://wwl.lanzn.com/b02c6m9he 密码:d3gk 二.Openvpn安装过程 安装完后,桌面会生成程序的快捷方式图标如下 2.1设置openvpn以管理员的身份运行 鼠标移至openvpn快捷方式图标处,点击鼠标右键,选择属性 2.2 导入VPN的配置文件 鼠标移至openvpn快捷方式图标处,双击打开openvpn,首次打开会因为没有配置文件报错,点击确定关闭即可。 openvpn客户端会最小化在任务栏中(桌面右下角)如下 鼠标移至该图标处,点击鼠标右键,选择Import file...,在弹出的窗口中选择1.3 中客服提供的配置文件 client.ovpn,点击打开。如下 出现弹出提示“File imported successfully” 则导入成功,点击确定关闭。 2.3 连接openvpn 打开openvpn,找到最小化在任务栏中的openvpn客户端,点击鼠标右键,选择connect,连接vpn 输入vpn账号和密码,点击“ok” 按钮 成功连接的状态 三.安装软电话 3.1 注册分机号 分机号和分机密码见附件《xxxx信息表.xlsx》,(SIP服务器/SIP代理/域名设置为表中“SIP服务器”,分机号对应每个人的分机号) 成功连接后的状态
Read More ~

sip - 使用 OpenSIPS/Kamailio/OpenSER 进行 RTP 代理

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 ~

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 ~