配置 Rtcomm Gateway

Rtcomm Gateway 添加将会话启动协议 (SIP) 与 Rtcomm WebRTC 端点连接的功能以交换音频和视频流。

关于此任务

如果您需要联合 Rtcomm 网络与不同供应商的网络,那么 Rtcomm Gateway (GW) 非常有用。另一网络可能是由 WebRTC 端点组成的网络(此网络使用另一方法发送信号),也可能是由基于 IP 的音频 (VOIP) 设备组成的不同网络,甚至是公共交换电话网 (PSTN)。只要另一网络提供支持广泛接受的 SIP 协议的边缘 GW 元素,这类联合就是可行的。

Rtcomm Gateway 支持 Interactive Connectivity Establishment (ICE) for SIP(基于 RFC 5245)和 Trickle ICE for SIP(基于 IETF 草稿)。此草稿仍标记为“进行中的工作”,所以根据此草稿进度,此实现未来可能更改。

过程

  1. server.xml 文件中添加 rtcommGateway-1.0 功能部件以启用 Rtcomm Gateway 功能。
    <featureManager>
    	  <feature>rtcommGateway-1.0</feature>
    </featureManager>
    Rtcomm Gateway 是在 rtcomm 部分中配置的。此配置允许您定义以下各项:
    1. 指示 GW 将从入局 Rtcomm 信令消息转换的 SIP 消息发送至何处。有三个选项:
      • 未配置任何项(缺省):GM 尝试根据 Rtcomm WebRTC 客户机上作为目标 (target) 提供的 SIP 地址解析目标 (destination)。
      • sipContainer=true:GW 将该消息发送至内部 Liberty SIP servlet 容器端口。根据标准应用程序路由器规则,此消息将路由至 Liberty 服务器上安装的 JSR 289 应用程序。有关更多详细信息,请参阅 Liberty 中的会话启动协议 (SIP) 应用程序
      • ExternalPR=host:port:告知 GW 将已转换 SIP 消息路由至 SIP 代理或注册器的外部目标。
    2. 对入局 SIP 消息定义 SIP 端点。SIP 端点上的入局消息将转换为 Rtcomm 信号发送并由 GW 交付至 WebRTC 端点,此端点是通过 SIP 初始消息 requestURI 头解析的。
  2. 查看有关实现 Rtcomm Gateway 的以下附加注意事项。
    1. 将消息从 Rtcomm WebRTC 发送至 SIP。
      • 注册器:从使用 DOCUMENT 消息的 WebRTC 客户机发送 Rtcomm 注册器消息时,可将记录 (AOR) 的 SIP 地址用作客户机主题。如果已注册这类 SIP URI,那么 GW 会将其转换为 SIP REGISTER 请求并尝试根据配置定义的规则路由该请求。Contact 头是通过 Rtcomm 网关 SIP 端点地址构造并针对 Liberty 服务器配置的,用户名是在 AOR 中设置的。
      • Rtcomm START_SESSION 消息也可发送至 SIP 地址。在此情况下,START_SESSION toEndpointID 字段由 URI 填充,它以“sip”“sips”“tel”方案前缀开头,并且消息将转换为 SIP INVITE 并根据所配置规则发送。对话框中的所有后续消息将根据所定义信令方案及相关注释请求 (RFC) 转换为 SIP。此规则适用于 Interactive Connectivity Establishment (ICE) 和 Trickle ICE 信令方案。
    2. 将消息从 SIP 发送至 Rtcomm WebRTC。
      GW 当前仅支持 INVITE 对话框。进入某个所配置 GW SIP 端点的 SIP INVITE 将转换为 Rtcomm START_SESSION 消息并发送至已解析 WebRTC 端点。将根据以下规则解析 WebRTC 端点:
      • 查找 INVITE requestURI SIP 地址。如果该端点被先前 Rtcomm DOCUMENT 消息注册为客户机主题,那么它是 START_SESSION 消息发送至的位置。例如;如果 Rtcomm 端点注册为 “sip:bob@x.y.z.w”(作为 DOCUMENT 主题),那么带有 “sip:bob@x.y.z.w requestURI” 的任何 INVITE 将转换为 START_SESSION 并发送至该 MQTT 主题。
      • 如果上一步未解析目标,请在 SIP requestURI 中仅查找 user 部分。如果已注册该端点,那么 START_SESSION 将发送至该主题。例如;如果 Rtcomm 端点注册为 “bob”,那么对于 requestURI 中的任何 <domain>bob@domain
        注: 不受支持的 SIP 请求返回并带有 405 错误响应。
    3. 代码转换和高级介质服务器功能。
      • Rtcomm Gateway 不支持处理介质平面,并且不会执行在 SIP VOIP 与 WebRTC 端点代码之间进行代码转换之类的操作。这意味着在其基本用法中,GM 仅允许不同 WebRTC 端点或使用类似代码和流式协议(例如,WebRTC 标准)的端点之间的联合。
      • 为充分利用 Rtcomm 网关功能,可使用一种功能部件来扩充 Liberty 服务器,该功能部件根据 JSR 309 标准为媒体服务器连接器提供 API。通过此功能部件,可在 Liberty 服务器上创建并安装使用媒体服务器进行代码转换和流式协议转换的应用程序及许多其他高级功能部件,例如,有关多方音频/视频会议和许多其他会议的记录、公告播放和流式混合。可在 JSR 309 规范中找到详细信息。
      • 请参阅 WASdev 以查找样本应用程序,此应用程序使用 JSR 289 和 309 连接至 SIP 软件电话和 Rtcomm WebRTC 端点(通过将介质服务器用作介质的介体和转换器)。
      • 此应用程序将 SIP Servlet (JSR 289) 与 JSR 309 配合使用并在 SIP 网络与 Rtcomm WebRTC 网络之间传达信息。此应用程序只需要 server.xml 文件中的内部路由配置;例如:
        <rtcomm messageServerHost="<brokerhostname>" messageServerPort="<brokerhostport>"
                     <gateway sipContainer="true"></gateway>
        </rtcomm>
        注: 确保入局 SIP 消息发送至的 SIP 端口是 SIP Servlet 容器端点(而不是 GW 端点)的 SIP 端口。请参阅在 Liberty 中管理会话启动协议 (SIP)

示例

在此示例中,入局 WebRTC 消息将发送至可能充当代理或注册器的外部 SIP 端点,例如,1.2.23.2:5063
<rtcomm messageServerHost="<brokerhostname>" messageServerPort="<brokerhostport>"
   <gateway sipContainer="false" externalPR="1.2.23.2:5063" allowFromSipEndpointRef="webrtc2, webrtc"></gateway>
</rtcomm>
入局 SIP 消息可在 “webrtc”“webrtc2” SIP 端点上。在以下示例中,“webrtc” 将使用缺省端口(设置为 5060localhost)。
<sipEndpoint id="webrtc"></sipEndpoint>
<sipEndpoint id="webrtc2" sipTCPPort="5067" sipUDPPort="5067" sipTLSPort="5068" host="*"></sipEndpoint>

用于指示主题类型的图标 任务主题

文件名:twlp_config_webrtc_gateway.html