通过 websocket 的 SIP 到真正的 SIP

2024-02-07

我正在尝试实现一个 sip 服务器用于从HTMLsip客户端(使用sipml5制作)。在我研究这样做的过程中,我遇到了 sip over web-sockets 这可能对我有用,但是,我不确定用户代理是否通过 sip over 连接web-sockets然后,连接到兼容的服务器就可以使用不兼容的服务器成功地呼叫某人(即通过 SIP 进行呼叫)web-sockets到真正的 SIP)。

I know webrtc2sip可以用于连接到旧网络,但如果可能的话,我宁愿避免使用另一个代理。那么,是否可以连接到兼容的SIP服务器使用SIP over web-sockets然后从此用户代理调用另一个不支持的用户代理SIP over web-sockets不使用gateway?


你是对的,SIP over Websockets 是一个草案,而不是规范。据我所知,支持该草案的 SIP 供应商并不多。

可能的解决方案是真正的 websocket-SIP 网关。例如,Flashphoner Web 呼叫服务器被实现为网关,它通过带有浏览器的 websocket 工作,并通过 SIP(​​TCP 和 UDP)与 SIP 服务器工作。因此,它与任何支持 RFC3261(标准 SIP 规范)的服务器兼容。

简要的信令方案是:

浏览器 - [Websockets] - Web 呼叫服务器 - [SIP TCP, UDP] - 任何 SIP 服务器

简要的流媒体方案:

浏览器 - [WebRTC = SRTP、DTLS、ICE、STUN ] - Web 呼叫服务器 - [RTP UDP] - 任何 SIP/RTP 服务器

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 websocket 的 SIP 到真正的 SIP 的相关文章

随机推荐

  • 查找一天中花费的时间以及所花的工间休息时间

    我现在的情况是 我需要找出一些内部申请在办公室花费的总时间 我有这样的样本数据 Id EmployeeId ScanDateTime Status 7 87008 2018 08 02 16 03 00 227 1 8 87008 2018
  • 如果我不设置缓存过期会发生什么

    我正在 google pagespeed Insights 上测试我的页面 它返回 在静态资源的 HTTP 标头中设置到期日期或最长期限 指示浏览器从本地磁盘而不是通过网络加载以前下载的资源 我的假设是 如果我不设置过期时间 我的文件将永远
  • 如果所有子域都指向网站根目录,是否需要通配符 SSL 证书

    我对 SSL 证书完全陌生 需要很快购买一个 当子域名发挥作用时 价格似乎会大幅上涨 我的问题是这样的 我已经设置了我的网站 以便用户名 domain com通过 htaccess 重写为域名 com user 用户名 如果我将网站设置为所
  • Java ASM 字节码修改-更改方法体

    我有一个罐子里的类的方法 我想与我自己的主体交换 在这种情况下 我只想让该方法将 GOT IT 打印到控制台并返回 true 我正在使用系统加载器来加载 jar 的类 我使用反射使系统类加载器能够通过字节码加载类 这部分似乎工作正常 我正在
  • 如何将列与 Flexbox 对齐?

    我目前正在学习 Flexbox 布局 但找不到解决我的问题的方法 我尝试使用 justify content 和 flex basis 但它不起作用 有人有解决办法吗 The result I would like section disp
  • .NET Core RC2 中的登录声明

    我正在将 NET 4 6 版本移植到 NET Core RC2 并想知道如何在 NET Core RC2 中执行以下操作 public async Task
  • 如何在 SQL Server 中将多行转换为列?

    如何将存储为多行的字段转换为列 我也在下面列出了代码 下面是所需内容的示例 但实际上最多可以包含 20 列 谢谢 COL1 COL2 COL3 TEST 30 NY TEST 30 CA TEST2 10 TN TEST2 10 TX 我希
  • DialogFragment 行为异常

    您好 我已使用此 DialogFragment 在我的应用程序中显示日期选择器 public class DateDialogFragment extends DialogFragment implements DatePickerDial
  • 如何在linux中用C设置IP地址

    通过使用strace and ifconfig 我发现可以这样设置IP地址 include
  • 无模式、无父的 wxDialog 仍然始终位于 z 顺序中的 wxFrame 窗口之上?

    我的程序打开一个基于 wxFrame 的窗口和多个无模式且无父的基于 wxDialog 的窗口 除了基于 wxDialog 的窗口坚持始终位于基于 wxFrame 的窗口之上之外 这一切都工作得很好 我知道关于wxDIALOG NO PAR
  • 安装 Mac Homebrew 时遇到问题

    我尝试了各种论坛和谷歌 但没有成功 我正在尝试在 OS X 10 6 8 上安装 Mac Homebrew 当我尝试从 Homebrew 主页执行安装命令时 ruby lt curl fsSkL raw github com mxcl ho
  • 当包含的控件获得焦点时防止自动滚动

    我有一个Panel有两个Button其上有一个 其中一个部分被隐藏 当部分隐藏的按钮获得焦点时 例如当单击另一个按钮然后单击它 原始按钮 时 面板会滚动 我需要垂直滚动条 但不需要auto滚动 并且如果没有自动滚动 似乎无法获得有效的滚动条
  • 过滤 CollectionViewSource

    我想做一个ComboBox绑定到我的数据 带有filter 为此我创建了一个TextBox and a ComboBox 在后面的代码中 我读取一个文件并生成 Channel 类的对象 这些对象存储为ComboBox 尽管编译器不会抛出任何
  • Javascript 中最快的类/对象访问/实例化是什么

    在探索构建类的几种不同方法时 我很好奇实例化和访问类的最快方法是什么 基于另一个问题的输入 Javascript 作用域和 self this this this that this https stackoverflow com ques
  • 克隆 git 存储库并保留无法访问的提交

    有没有办法克隆远程 git 存储库 同时保留该存储库中可能存在的任何无法访问的提交 场景是这样的 我需要恢复从我维护的服务器上的裸 git 存储库中删除的分支 我有这个分支的最后一次提交的哈希值 但是常规的 git 命令似乎无法在裸存储库上
  • 实体框架数据上下文与数据库不同步?

    所以 情况是这样的 我调用 AddtoObject 在数据库中插入一个项目 然后调用 SaveChanges 然后 我调用存储过程来更新当前插入的记录 然后 我再次调用 Save Changes 当我查询数据库时它具有正确的更新值 但是实体
  • 使用 EGIT 获取时存储凭据失败

    最初我遇到了与中描述的相同的问题egit 未授权 https stackoverflow com questions 14259265 egit not authorized 首先 我成功从 Bitbucket 克隆了存储库 然后 我尝试获
  • 是否可以在 ScrollView 中添加 ViewPager?

    我正在尝试使用ViewPager里面的一个ScrollView 但是ViewPager没有出现 如果我删除ScrollView the ViewPager看起来不错 我创建了一个简单的测试项目 内容如下 main xml布局
  • 将引用类型和值类型作为参数传递给方法之间的区别

    一整天都在我的脑海中萦绕着这种困惑 我对传递给方法的引用类型和值类型感到非常困惑 假设我有 2 节课Class A and Class B分别对应于引用类型和值类型 public Class A public static void mai
  • 通过 websocket 的 SIP 到真正的 SIP

    我正在尝试实现一个 sip 服务器用于从HTMLsip客户端 使用sipml5制作 在我研究这样做的过程中 我遇到了 sip over web sockets 这可能对我有用 但是 我不确定用户代理是否通过 sip over 连接web s