跳到主要内容

IMS 会议服务器 - 用户指南

概述

IMS 会议服务器提供符合 3GPP IMS 会议框架 (RFC 4579, RFC 4575, TS 24.147) 的多方会议能力。它使用户能够通过 IMS 应用服务器创建和管理音频/视频会议。

架构

IMS 会议服务器是 OmniTAS 的一个集成组件,提供:

  • 会议工厂 URI:用于创建新会议的 SIP URI
  • 会议焦点:管理会议状态和参与者
  • 会议策略控制:强制执行参与者角色和权限
  • 媒体混合:处理会议参与者的音频/视频混合

IMS 会议工厂架构

TAS 实现了 TS 24.147 和 RFC 4579 中定义的 3GPP 会议工厂模式:

会议创建流程 (RFC 4579 工厂模式)

该图显示用户如何通过会议工厂 URI 创建新会议:

参与者加入流程

该图显示其他参与者如何加入现有会议:

会议事件包 (RFC 4575)

会议服务器向所有参与者发送会议状态通知:

会议管理操作

通过 Web UI 或 OmniTAS 控制台执行的操作:

访问

Web 界面

导航到 /conference 或点击导航菜单中的 "会议" 以访问会议管理界面。

OmniTAS 控制台

使用 ims_conference 命令从 OmniTAS 控制台访问会议服务器。

特性

会议管理界面

Web 界面提供对活动 IMS 会议的实时监控和管理:

统计仪表板

显示高层次的会议服务器统计信息:

  • 活动会议:进行中的会议总数
  • 总参与者:所有会议的参与者总数
  • 视频会议:启用视频的会议数量
  • 锁定会议:锁定新参与者的会议数量

仪表板还显示服务器配置:

  • :会议服务器域 (例如,conference.ims.local)
  • 工厂 URI:用于会议创建请求的 SIP URI
  • MNC/MCC:移动网络代码和国家代码
  • 接入网络:网络类型 (例如,3GPP-E-UTRAN-FDD)
  • 默认最大参与者:每个会议的最大参与者数
  • 默认启用视频:是否默认启用视频
  • 录音启用:会议录音是否可用

会议列表

显示所有活动会议:

  • 会议 ID:会议的唯一标识符
  • URI:会议的 SIP URI
  • 参与者:当前参与者数量
  • 创建者:会议创建者的电话号码/URI

点击任何会议以展开并查看详细信息。

会议详情

展开会议显示:

会议信息:

  • ID 和 URI
  • 房间名称
  • 创建者身份
  • 会议状态
  • 参与者计数(当前/最大和最小)
  • 视频状态(启用/禁用)
  • 锁定状态(锁定/解锁)
  • 录音状态(活动/非活动)

参与者列表:

  • 每个参与者的 SIP URI
  • 会话 UUID
  • 参与者状态
  • 角色(0 = 参与者,1 = 主持人)
  • 视频状态

会议操作:

  • 锁定/解锁会议
  • 启用/禁用视频
  • (通过 CLI 提供额外操作)

自动刷新

界面每 5 秒自动刷新一次,以显示实时会议状态。您可以切换自动刷新开/关或使用 "刷新" 按钮手动刷新。

OmniTAS 控��台命令

所有会议管理操作都可以通过 OmniTAS 控制台中的 ims_conference 命令进行。

命令语法

ims_conference <command> [arguments]

可用命令

list

列出所有活动的 IMS 会议。

omnitas@server> ims_conference list
IMS 会议:
会议 ID 会议 URI 参与者 创建者
================================================================================
1-1765699908 sip:conf-1-1765699908@conference.ims.local 3 19078720151

总计:1 个会议

info

显示特定会议的详细信息。

语法: ims_conference info <conf_id>

重要: 使用会议 ID(例如,1-1765699908),而不是带前缀的会议名称。

omnitas@server> ims_conference info 1-1765699908
会议信息:
ID: 1-1765699908
URI: sip:conf-1-1765699908@conference.ims.local
房间: ims-conf-1-1765699908
创建者: 19078720151
状态: 1
参与者: 3/10 (最小: 2)
视频: 启用
锁定: 否
录音: 非活动

参与者:
- sip:1235;phone-context=ims.mnc380.mcc313.3gppnetwork.org@ims.mnc380.mcc313.3gppnetwork.org;user=phone;method=INVITE (342d50e0-9f67-4cc5-9179-4acae6f65f34)
状态: 3, 角色: 0, 视频: 开
- sip:1235;phone-context=ims.mnc380.mcc313.3gppnetwork.org@ims.mnc380.mcc313.3gppnetwork.org;user=phone;method=INVITE (bd98ca37-64fd-4618-b2db-aaba108c73e2)
状态: 3, 角色: 0, 视频: 开
- 19078720151 (6270da85-9b94-4285-8130-8769b11d0aa2)
状态: 3, 角色: 1, 视频: 开

stats

显示整体会议服务器统计信息和配置。

omnitas@server> ims_conference stats
IMS 会议服务器统计信息:
================================
活动会议:1
总参与者:3
视频会议:1
锁定会议:0

配置:
域:conference.ims.local
工厂 URI:sip:conference-factory@conf-factory.ims.mnc380.mcc313.3gppnetwork.org
MNC/MCC:380/313
接入网络:3GPP-E-UTRAN-FDD
默认最大参与者:10
允许匿名:是
默认启用视频:是
录音启用:是
公告:加入=开,离开=开,计数=开

create

创建一个新会议。

语法: ims_conference create <creator_uri>

omnitas@server> ims_conference create sip:19078720151@ims.local
会议已创建:1-1765699909
会议 URI:sip:conf-1-1765699909@conference.ims.local

destroy

终止会议并断开所有参与者。

语法: ims_conference destroy <conf_id>

omnitas@server> ims_conference destroy 1-1765699908
会议 1-1765699908 已销毁

add

将参与者添加到现有会议。

��法: ims_conference add <conf_id> <sip_uri>

omnitas@server> ims_conference add 1-1765699908 sip:19078720152@ims.local
将参与者 sip:19078720152@ims.local 添加到会议 1-1765699908

remove

从会议中移除参与者。

语法: ims_conference remove <conf_id> <uuid>

注意:使用 info 命令输出中的参与者会话 UUID。

omnitas@server> ims_conference remove 1-1765699908 342d50e0-9f67-4cc5-9179-4acae6f65f34
已从会议 1-1765699908 中移除参与者

lock

锁定会议以防止新参与者加入。

语法: ims_conference lock <conf_id>

omnitas@server> ims_conference lock 1-1765699908
会议 1-1765699908 已锁定

unlock

解锁会议以允许新参与者。

语法: ims_conference unlock <conf_id>

omnitas@server> ims_conference unlock 1-1765699908
会议 1-1765699908 已解锁

video

控制会议的视频。

语法: ims_conference video <conf_id> on|off

omnitas@server> ims_conference video 1-1765699908 on
会议 1-1765699908 的视频已启用

omnitas@server> ims_conference video 1-1765699908 off
会议 1-1765699908 的视频已禁用

record

控制会议录音。

语法: ims_conference record <conf_id> start|stop

omnitas@server> ims_conference record 1-1765699908 start
会议 1-1765699908 的录音已开始

omnitas@server> ims_conference record 1-1765699908 stop
会议 1-1765699908 的录音已停止

announce

向所有会议参与者播放公告。

语法: ims_conference announce <conf_id> <message>

omnitas@server> ims_conference announce 1-1765699908 "本次会议将在 5 分钟内结束"
公告已发送至会议 1-1765699908

subscribers

列出当前在会议中的所有订阅者(info 的替代视图)。

语法: ims_conference subscribers <conf_id>

omnitas@server> ims_conference subscribers 1-1765699908
会议 1-1765699908 中的订阅者:
- sip:1235;phone-context=ims.mnc380.mcc313.3gppnetwork.org@ims.mnc380.mcc313.3gppnetwork.org;user=phone;method=INVITE
- 19078720151

会议状态

会议和参与者具有数字状态值:

会议状态

  • 0:初始化
  • 1:活动
  • 2:终止中
  • 3:已终止

参与者状态

  • 0:已邀请
  • 1:拨号中
  • 2:提醒中
  • 3:已连接
  • 4:断开连接中
  • 5:已断开连接

参与者角色

  • 0:普通参与者
  • 1:主持人/创建者

用例

监控活动会议

场景: 操作团队需要查看有多少会议处于活动状���

步骤:

  1. 打开会议管理界面 (/conference)
  2. 查看统计仪表板以获取高层次指标
  3. 审查会议列表以获取特定会议
  4. 使用自动刷新实时监控

CLI 替代方案:

omnitas@server> ims_conference stats
omnitas@server> ims_conference list

排查会议问题

场景: 用户报告他们无法加入会议

步骤:

  1. 从用户那里获取会议 ID
  2. 运行 ims_conference info <conf_id> 检查会议状态
  3. 检查会议是否已锁定(锁定:是)
  4. 检查当前参与者计数与最大值
  5. 审查参与者列表以查看任何连接问题
  6. 检查 OmniTAS 日志以获取 SIP 邀请失败的信息

常见问题:

  • 会议已锁定:ims_conference unlock <conf_id>
  • 达到最大参与者:检查 default_max_participants 配置
  • 网络问题:检查 SIP 连接性和防火墙规则

管理会议带宽

场景: 在网络拥堵期间需要减少带宽使用

步骤:

  1. 确定启用视频的会议
  2. 对于非关键会议,禁用视频:
    ims_conference video <conf_id> off
  3. 监控带宽使用情况
  4. 拥堵消失后重新启用视频

处理干扰参与者

场景: 参与者在会议中干扰

步骤:

  1. 获取会议 ID 和参与者的会话 UUID
  2. 移除参与��:
    ims_conference remove <conf_id> <participant_uuid>
  3. 锁定会议以防止他们重新加入:
    ims_conference lock <conf_id>
  4. 如有需要,手动添加合法参与者:
    ims_conference add <conf_id> <sip_uri>

录制重要会议

场景: 需要录制会议以满足合规或文档要求

步骤:

  1. 确定会议 ID
  2. 开始录音:
    ims_conference record <conf_id> start
  3. 监控录音是否处于活动状态(在 info 输出中显示录音:活动)
  4. 完成后停止录音:
    ims_conference record <conf_id> stop
  5. 录音文件存储在 OmniTAS 录音目录中

紧急终止会议

场景: 需要立即终止会议

步骤:

  1. 可选择向参与者公告:
    ims_conference announce <conf_id> "本次会议正在终止"
  2. 等待几秒钟以播放公告
  3. 销毁会议:
    ims_conference destroy <conf_id>
  4. 所有参与者将立即断开连接

与 IMS 网络的集成

会议创建流程

  1. 用户向会议工厂 URI 发送 SIP INVITE
  2. IMS 应用服务器接收请求
  3. 会议服务器创建新的会议实例
  4. 生成会议 ID 和 URI
  5. 根据创建者初始化会议策略
  6. 将创建者作为第一个参与者添加,角色为主持人
  7. 会议 URI 返回给创建者
  8. 其他参与者现在可以通过会议 URI 加入

参与者角色

主持人 (角色:1)

  • 可以锁定/解锁会议
  • 可以移除其他参与者
  • 可以控制视频设置
  • 接收会议通知

参与者 (角色:0)

  • 可以加入/离开会议
  • 可以发言和倾听
  • 可以启用/禁用自己的视频
  • 受会议政策的约束

3GPP 合规性

IMS 会议服务器实现了关键的 3GPP 规范:

  • TS 24.147:使用 IP 多媒体 (IM) 核心网络 (CN) 子系统的会议
  • RFC 4579:会话发起协议 (SIP) 呼叫控制 - 用户代理的会议
  • RFC 4575:会话发起协议 (SIP) 会议状态的事件包
  • RFC 5239:集中会议的框架

网络元素集成

  • P-CSCF:处理来自 UE 的初始 SIP 信令
  • S-CSCF:将会议请求路由到应用服务器
  • OmniTAS:托管会议服务器功能并提供媒体混合
  • HSS:提供用户身份验证和授权

配置

会议服务器配置通过 OmniTAS 配置文件进行管理:

关键参数:

  • domain:会议服务器域
  • factory_uri:用于会议创建的 SIP URI
  • mnc_mcc:移动网络标识符
  • access_network:网络接入类型
  • default_max_participants:每个会议的默认最大参与者
  • allow_anonymous:是否允许匿名参与者
  • video_by_default:新会议的默认视频设置
  • recording_enabled:录音功能是否可用
  • announce_join:参与者加入时播放音调
  • announce_leave:参与者离开时播放音调
  • announce_count:公告参与者计数

最佳实践

容量规划

  • 监控活动会议数量和参与者数量
  • 计划高峰使用(例如,工作时间)
  • 为媒体混合分配足够的 CPU/内存
  • 在带宽管理中考虑视频与仅音频

安全性

  • 确保会议 URI 不易猜测
  • 对于私密会议使用会议锁定
  • 监控未授权访问尝试
  • 实施最大参与者限制
  • 审查会议录音访问控制

操作监控

  • 设置会议服务器错误的警报
  • 监控会议创建/销毁率
  • 跟踪平均会议持续时间
  • 审查参与者连接失败
  • 监控媒体质量指标

有关详细指标文档: 请参见 metrics.md 以获取:

  • RTP/RTCP 媒体质量指标(端口 9093)
  • 活动呼叫和会话指标(端口 9090)
  • 系统和 Erlang VM 指标(端口 8080)
  • Prometheus 查询示例

故障排除

  • 检查 OmniTAS 日志以获取与会议相关的错误
  • 验证会议服务器配置
  • 审查网络连接性和防火墙规则
  • 联系 Omnitouch 支持,提供会议 ID 和时间戳