跳到主要内容

操作指南

📖 返回主文档

本文档涵盖了控制面板中可用的操作监控和管理功能。

相关文档

核心文档

监控与测试工具

呼叫处理与服务

集成接口


操作

本节涵盖了在OmniTAS控制面板中可用的操作监控和管理功能。

目录

用户视图

用户视图提供对存储在Sofia SIP注册数据库中的IMS用户注册的实时监控。

访问: 在控制面板中导航到 /subscribers

特性

  • 注册列表: 查看所有活动用户注册
  • 注册详细信息: 点击任何注册以查看完整详细信息,包括:
    • SIP用户和领域
    • 联系URI
    • 注册状态和过期
    • 网络信息(IP、端口、主机名)
    • 认证详细信息
    • 基站位置(当通过P-Access-Network-Info可用时)
      • MCC/MNC,无线类型,TAC/LAC,基站ID
      • 地理坐标和覆盖范围
      • 由OpenStreetMap和OpenCellID数据提供支持的交互式地图视图

用户视图

注册详细信息

数据源

注册数据直接从Sofia注册数据库查询,提供用户附加状态的实时可见性。当用户在其SIP REGISTER消息中提供P-Access-Network-Info头时,基站位置使用OpenCellID数据库解析。

用例

  • 监控活动用户注册
  • 验证用户附加状态
  • 排查注册问题
  • 审计用户连接性

呼叫详细记录 (CDR)

CDR视图提供对TAS存储的呼叫详细记录的访问,用于计费、故障排除和分析目的。

访问: 在控制面板中导航到 /cdr

CDR视图

特性

  • 分页视图: 浏览呼叫记录(每页100条,带有上一页/下一页控制)
  • 高级搜索: 强大的搜索功能,支持精确匹配、反向/排除和多个术语
  • 列选择: 自定义显示的字段
    • 点击 "列" 按钮打开列选择器模态
    • 选择/取消选择单个列
    • 全选 / 全不选 快捷操作
    • 选择在会话间持久化(保存到浏览器localStorage)
    • 显示 "X / Y列" 计数器
  • 可排序列: 点击任何列标题进行排序(升序/降序)
    • 视觉指示器(▲升序,▼降序)
    • 排序列以蓝色突出显示
    • 排序更改时重置为第1页
  • 多个��滤选项:
    • 文本搜索: 在所有字段中使用高级运算符进行搜索
    • 日期范围过滤: 按开始/结束日期和时间过滤(日期时间选择器)
    • 字段特定过滤: 按确切字段值过滤(挂断原因、来电号码、目的地、上下文)
    • 活动过滤显示: 视觉芯片显示当前活动的过滤器
    • 清除所有: 一键删除所有活动过滤器
  • 详细信息: 点击任何CDR行以展开并查看所有字段:
    • 呼叫方(来电号码/名称,目的地号码)
    • 时间戳(开始、应答、结束)
    • 持续时间和计费秒数
    • 挂断原因(颜色编码:绿色=正常,黄色=取消,红色=错误)
    • 呼叫UUID(A-leg和B-leg)
    • 上下文和账户代码
    • 所有可用数据库字段按字母顺序排列
  • 颜色编码的挂断原因:
    • 🟢 绿色: NORMAL_CLEARING
    • 🟡 黄色: 取消的呼叫
    • 🔴 红色: 错误条件
  • 总计数: 实时显示匹配记录的总数
  • 响应式布局: 在小屏幕上适当换行过滤器

如何使用

  1. 基本查看:

    • 页面加载最新的100条CDR记录(按 start_stamp 降序排序)
    • 右上角显示总记录数
    • 使用 上一页 / 下一页 按钮导航页面
    • 点击任何行以展开并查看所有字段
  2. 自定义列:

    • 点击右上角的 "列" 按钮
    • 模态显示所有可用字段
    • 勾选/取消勾选字段以显示/隐藏列
    • 使用 "全选""全不选" 进行快速选择
    • 设置自动保存到浏览器
    • 关闭模态以应用更改
  3. 排序数据:

    • 点击任何列标题按该字段排序
    • 第一次点击:降序(▼)
    • 第二次点击:升序(▲)
    • 第三次点击:返回降序
    • 排序列以蓝色突出显示
  4. 搜索记录:

    • "搜索" 框中输入搜索查询
    • 支持高级运算符(见下文搜索语法)
    • 在多个字段中搜索: caller_id_number, destination_number, uuid, caller_id_name, hangup_cause
    • 点击 "应用" 执行搜索
  5. 按日期范围过滤:

    • 使用 "开始日期""结束日期" 日期时间选择器
    • 两个日期均为日期过滤所需
    • 支持日期和时间选择
    • 点击 "应用" 进行过滤
  6. 按特定字段过滤:

    • "选择过滤字段" 下拉菜单中选择字段:
      • 挂断原因
      • 来电号码
      • 目的地
      • 上下文
    • "输入过滤值" 中输入确切值
    • 点击 "应用" 进行过滤
  7. 组合过滤器:

    • 所有过滤器可以同时使用:
      • 文本搜索 + 日期范围 + 字段过滤器一起工作
    • 活动过滤器显示为过滤器表单下方的芯片
    • 点击 "清除所有" 一次性删除所有过滤器
  8. 查看详细信息:

    • 点击任何CDR行以展开
    • 以网格布局显示所有数据库字段
    • 字段按字母顺序显示
    • 挂断原因颜色编码以便快速识别
    • 再次点击行以折叠

高级搜索语法

搜索框支持强大的查询语法,以便在多个字段中进行精确记录过滤。

搜索工作原理:

搜索引擎检查每个CDR记录中的 所有可搜索字段。当记录在 任何 这些字段中匹配您的搜索条件时,该记录将包含在结果中:

  • caller_id_number
  • destination_number
  • uuid
  • caller_id_name
  • hangup_cause

搜索运算符(可以组合):

  1. 包含搜索(默认):

    • 语法: term(无引号)
    • 匹配: 记录中 任何字段包含 该术语
    • SQL: 使用 LIKE '%term%' 在所有可搜索字段中连接 OR
    • 示例: 61480 匹配 "61480123456", "55561480999" 等。
  2. 精确匹配:

    • 语法: "term"(带双引号)
    • 匹配: 记录中 任何字段完全等于 该术语
    • SQL: 使用 = 'term' 在所有可搜索字段中连接 OR
    • 示例: "911" 仅匹配完全 "911",而不是 "9115" 或 "1911"
  3. 反向/排除:

    • 语法: !term(感叹号前缀,无引号)
    • 匹配: 记录中 没有字段包含 该术语
    • SQL: 使用 NOT LIKE '%term%' 在所有可搜索字段中连接 AND
    • 示例: !NORMAL 排除任何字段中包含 "NORMAL" 的记录
  4. 精确反向/排除:

    • 语法: !"term"(感叹号 + 双引号)
    • 匹配: 记录中 没有字段完全等于 该术语
    • SQL: 使用 != 'term' 在所有可搜索字段中连接 AND
    • 示例: !"NORMAL_CLEARING" 排除任何字段完全为 "NORMAL_CLEARING" 的记录
  5. 多个术语与 AND:

    • 语法: term1 AND term2(不区分大小写的 AND)
    • 匹配: 匹配 所有术语 的记录(每个术语可以匹配不同字段)
    • 每个术语使用自己的运算符处理(引号、! 等)
    • 术语在SQL中用 AND 连接
    • 示例: "911" AND "12345" 查找在一个字段中有 "911" 且在另一个字段中有 "12345" 的记录

搜索执行逻辑:

对于每个CDR记录:
对于正常搜索(无 !):
- 检查是否 **任何字段包含/等于** 该术语 → 如果为 TRUE 则包含
- SQL: field1 LIKE '%term%' OR field2 LIKE '%term%' OR ...

对于反向搜索(!):
- 检查是否 **所有字段不包含/等于** 该术语 → 如果为 TRUE 则包含
- SQL: field1 NOT LIKE '%term%' AND field2 NOT LIKE '%term%' AND ...

对于 AND 搜索:
- 每个术语单独评估
- 所有术语条件必须为 TRUE → 如果为 TRUE 则包含
- SQL: (term1_conditions) AND (term2_conditions) AND ...

复杂搜索示例:

查询工作原理结果
61480在所有字段中进行包含搜索所有记录中 "61480" 的位置(呼叫者、目的地、UUID 等)
"911"在所有字段中进行精确匹配任何字段完全为 "911" 的记录
!NORMAL_CLEARING反向包含搜索排除任何字段中包含 "NORMAL_CLEARING" 的记录(失败的呼叫)
!"NORMAL_CLEARING"精确反向排除任何字段完全等于 "NORMAL_CLEARING" 的记录
"911" AND "12345"精确 "911" 和精确 "12345"同时包含两个值的记录(例如,呼叫者="12345",目的地="911")
!NORMAL AND 61480反向包含 "NORMAL" 和包含 "61480"涉及 "61480" 的非正常呼叫
!"ANSWER" AND !NORMAL精确反向 "ANSWER" 和反向包含 "NORMAL"排除已接听���呼叫和任何包含 "NORMAL" 的记录
61480 AND !NORMAL_CLEARING包含 "61480" 和反向包含 "NORMAL_CLEARING"涉及 "61480" 的失败呼叫

实际用例:

  • 查找特定号码: 61480123456 - 包含搜索找到部分匹配
  • 查找精确紧急呼叫: "911" - 仅呼叫完全为 "911"
  • 所有失败呼叫: !NORMAL_CLEARING - 排除成功的呼叫
  • 特定呼叫者的失败呼叫: "61480123456" AND !NORMAL - 组合精确呼叫者与反向
  • 排除测试号码: !test AND !demo - 多个反向搜索
  • 复杂调试: 61480 AND !"ANSWER" AND !CANCEL - 包含一个术语,排除精确和部分其他

数据源

CDR数据直接从TAS CDR SQLite数据库查询。

架构可能因特定要求而在不同部署之间有所不同。

CDR导出选项

重要: CDR记录可以以各种格式导出,以支持与计费系统、分析平台和报告工具的集成。

CDR数据库架构和导出格式是特定于部署的。在设置系统时,请向集成工程师请求所需的特定CDR输出格式。常见的导出格式包括:

  • CSV(逗号分隔值)
  • JSON(用于API集成)
  • XML
  • 直接数据库访问
  • 自定义格式导出

您的集成工程师可以配置适合您操作和计费要求的CDR导出机制。

用例

  • 呼叫故障排除: 按号码或UUID搜索特定呼叫以调试问题
  • 计费对账: 按日期范围过滤以匹配计费周期
  • 质量分析: 按挂断原因过滤以识别问题模式
  • 紧急呼叫审计: 搜索 "911" 以验证紧急呼叫处理
  • 客户支持: 按来电号码或目的地查找特定客户呼叫
  • 模式分析: 按持续时间或时间戳排序以识别异常
  • 合规与记录保存: 日期范围过滤用于合规报告
  • 失败呼叫分析: 使用 !NORMAL_CLEARING 查找所有失败呼叫
  • 基于上下文的报告: 按上下文过滤以分析特定呼叫流

配置

默认可见列

您可以通过在 config/runtime.exs 中设置 cdrs_field_list 来配置在LiveView中 默认显示 的CDR字段:

config :tas,
cdrs_field_list: [
"caller_id_number",
"destination_number",
"start_stamp",
"duration",
"hangup_cause"
]

行为:

  • 如果未设置 cdrs_field_list:默认显示所有可用的CDR字段
  • 如果设置了 cdrs_field_list:仅默认显示指定字段,但 所有其他字段仍然可在列选择器中使用
  • 如果列表中的字段在CDR数据中不存在,则会自动跳过
  • 字段名称可以指定为字符串或原子
  • ��户可以随时从列选择器手动选择其他列

用例:

  • 设置仅显示基本字段的干净默认视图
  • 减少新用户的信息超载
  • 在所有用户中标准化初始列布局
  • 默认隐藏高级字段,但仍可访问

示例配置:

# 默认仅显示基本呼叫信息
cdrs_field_list: [
"start_stamp",
"caller_id_number",
"destination_number",
"duration",
"billsec",
"hangup_cause"
]

注意: 此配置设置 默认可见 列。所有CDR字段仍然可在 "列" 选择器中使用 - 用户可以手动显示/隐藏任何需要的字段。

故障排除

未找到结果
  1. 检查搜索词中的拼写错误
  2. 尝试去掉引号以进行更广泛的搜索
  3. 验证该术语是否存在于可搜索字段中
  4. 检查日期范围是否过于严格
结果过多
  1. 添加更多 AND 术语以缩小范围
  2. 使用引号进行精确匹配
  3. 应用日期范围过滤
  4. 使用字段特定过滤器
结果意外
  1. 记住搜索适用于 所有可搜索字段
  2. 检查术语是否出现在意外字段中(如UUID)
  3. 使用精确匹配以避免部分匹配
  4. 验证反向逻辑(AND与OR)

提示

  • 列选择: 隐藏未使用的列以专注于相关数据并提高性能
  • 组合过滤器: 同时使用搜索 + 日期范围 + 字段过滤器以进行精确查询
  • 日期范围性能: 缩小的日期范围在大型数据库中更快返回结果
  • 排序以进行分析: 按持续时间排序以查找长/短呼叫,或按时间戳查看呼叫模式
  • 活动过滤芯片: 使用视觉芯片验证当前活动的过滤器
  • 持久设置: 列选择在每个浏览器中保存,适用于不同的分析任务
  • 颜色编码: 快速扫描挂断原因 - 绿色是好的,红色需要调查
  • 可展开详细信息: 点击行以查看所有字段,而不会使主视图混乱
  • 搜索运算符: 掌握搜索语法以进行强大的过滤:
    • 使用引号进行精确匹配: "911"
    • 使用 ! 进行排除: !NORMAL_CLEARING
    • 与 AND 组合: "61480" AND !NORMAL
  • 分页: 记住过滤器在页面之间持久化 - 使用分页查看大型结果集

活动呼叫监控

活动呼叫视图显示有关系统中正在进行的呼叫的实时信息。

访问: 在控制面板中导航到 /calls

特性

  • 实时状态: 活动呼叫会话的实时视图
  • 呼叫详细信息: 查看通道变量和呼叫状态信息
  • UUID跟踪: 监控A-leg和B-leg呼叫标识符

IMS会议服务器

IMS会议服务器提供符合3GPP IMS标准(RFC 4579、RFC 4575、TS 24.147)的多方会议能力。

访问: 在控制面板中导航到 /conference

文档: 请参见 IMS会议服务器用户指南 以获取详细文档

特性

  • 实时监控: 活动会议和参与者的实时视图
  • 会议统计仪表板:
    • 活动会议计数
    • 所有会议的总参与者
    • 视频会议计数
    • 锁定会议计数
    • 服务器配置详细信息(域、MNC/MCC、最大参与者)
  • 会议列表: 查看所有活动会议,包括:
    • 会议ID和SIP URI
    • 当前参与者计数
    • 会议创建者身份
  • 会议详细信息: 点击任何会议以展开并查看:
    • 完整的会议信息(状态、视频状态、锁定状态、录音状态)
    • 完整的参与者列表及其角色和状态
    • 参与者视频状态
  • 会议控制操作:
    • 锁定/解锁会议以控制访问
    • 启用/禁用会议的视频
    • 实时状态更新和操作反馈
  • 自动刷新: 可配置的自动刷新(默认:5秒)以进行实时监控

OmniTAS控制台管理

所有会议操作也可以通过OmniTAS控制台使用 ims_conference 命令进行:

ims_conference list                    # 列出所有活动会议
ims_conference info <conf_id> # 显示会议详细信息
ims_conference stats # 显示服务器统计信息
ims_conference lock <conf_id> # 锁定会议
ims_conference unlock <conf_id> # 解锁会议
ims_conference video <conf_id> on|off # 控制视频
ims_conference record <conf_id> start|stop # 控制录音
ims_conference add <conf_id> <sip_uri> # 添加参与者
ims_conference remove <conf_id> <uuid> # 移除参与者
ims_conference destroy <conf_id> # 终止会议

用例

  • 操作监控: 实时可见活动会议和资源使用情况
  • 容量管理: 监控参与者计数和视频使用情况以管理带宽
  • 故障排除: 诊断会议访问问题、参与者连接问题
  • 会议控制: 锁定会议以保护隐私,管理视频以控制带宽
  • 合规性: 监控和记录会议以满足监管合规要求

3GPP合规性

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

  • TS 24.147:使用IM核心网络子系统的会议
  • RFC 4579:SIP呼叫控制 - 用户代理的会议
  • RFC 4575:SIP事件包用于会议状态
  • RFC 5239:集中会议的框架

网关状态

监控连接到TAS的SIP网关/中继的状态和健康状况。

访问: 在控制面板中导航到 /gw

特性

  • 注册状态: 查看网关注册状态
  • 呼叫统计: 跟踪进出呼叫和失败情况
  • Ping监控: SIP OPTIONS ping时间和可达性
  • 网关详细信息: 完整的配置和状态信息

监控指标

  • SIP注册状态
  • Ping时间(平均SIP OPTIONS响应时间)
  • 正常运行时间(自配置文件重启以来的秒数)
  • 进呼叫/出呼叫
  • 失败的进呼叫/失败的出呼叫
  • 最后ping时间和频率

Diameter对等体状态

监控Sh和Ro接口的Diameter对等体连接性。

访问: 在控制面板中导航到 /diameter

特性

  • 对等体状态: 每个配置对等体的连接状态
  • 应用支持: 查看支持的Diameter应用(Sh、Ro)
  • 看门狗状态: Diameter看门狗监控

系统日志查看器

实时统一日志查看器,用于TAS后端(Elixir)和TAS呼叫处理(FreeSWITCH)日志。

访问: 在控制面板中导航到 /logs

日志视图

特性

  • 统一日志流: 在一个界面中查看来自TAS后端和呼叫处理的日志
  • 实时更新: 日志消息实时流式传输(每1秒自动刷新)
  • 颜色编码的日志级别:
    • 🟣 控制台 - 控制台消息(紫色/洋红色)
    • 🔴 警报/严重 - 需要立即关注的紧急问题(红色)
    • 🟠 错误 - 错误条件(浅红色)
    • 🟡 警告 - 警告消息(黄色)
    • 🔵 通知 - 显著的信息消息(青色)
    • 🔵 信息 - 一般信息消息(蓝色)
    • 调试 - 调试/详细日志(灰色)
  • 源徽章:
    • 🔵 TAS后端 - Elixir应用日志(蓝色徽章)
    • 🟣 TAS呼叫处理 - FreeSWITCH日志(紫色徽章)
  • 左边框指示器: 颜色编码的左边框与日志级别匹配,便于快速视觉扫描
  • 多个过滤器:
    • 源过滤器: 所有源 / TAS后端 / TAS呼叫处理
    • 级别过滤器: 所有 / 控制台 / 警报 / 严重 / 错误 / 警告 / 通知 / 信息 / 调试
    • 文本搜索: 在日志消息中实时关键词搜索
  • 暂停/恢复: 冻结日志流以分析特定条目而不失去上下文
  • 清除日志: 从显示中移除所有当前日志条目
  • 日志计数器: 显示过滤日志与总日志(例如,“显示500条日志中的150条”)
  • 尾部行为: 为性能维护最后500条日志条目
  • 元数据展示: 文件名和行号用于源代码引用(如果可用)
  • 可滚动视图: 固定高度容器,自动滚动以显示最新日志

如何使用

  1. 基本查看:

    • 页面加载来自两个源的最新500条日志条目
    • 日志实时生成时出现
    • 最近的日志出现在顶部
    • 每1秒自动刷新
  2. 按源过滤:

    • "���" 下拉菜单中选择:
      • 所有源 - 显示TAS后端和呼叫处理日志
      • TAS后端 - 仅Elixir应用日志
      • TAS呼叫处理 - 仅FreeSWITCH/拨号计划日志
    • 过滤器立即应用
  3. 按日志级别过滤:

    • "级别" 下拉菜单中选择:
      • 所有 - 显示所有日志级别
      • 控制台调试 - 仅显示该特定级别
    • 有助于专注于错误或调试特定问题
  4. 搜索关键词:

    • "搜索日志..." 框中输入
    • 不区分大小写地搜索日志消息
    • 输入时实时过滤
    • 与源和级别过滤器结合使用
  5. 暂停/恢复流:

    • 点击 "暂停" 按钮(橙色)以冻结日志更新
    • "已暂停" 指示器出现在标题中
    • 在没有新日志干扰的情况下查看特定日志条目
    • 点击 "恢复" 按钮(绿色)以重新启动实时流
  6. 清除日志:

    • 点击 "清除" 按钮(红色)以移除所有显示的日志
    • 清除TAS后端和呼叫处理日志
    • 新日志将随着生成而出现
  7. 阅读日志条目:

    • 时间戳: 以HH:MM:SS.毫秒格式显示时间
    • 源徽章: 指示TAS后端(蓝色)或呼叫处理(紫色)
    • 日志级别: 颜色编码的级别在括号中显示 [ERROR]、[INFO] 等
    • 文件/行: 源代码位置(如果可用)
    • 消息: 实际日志消息内容

日志级别解释

级别颜色使用时机示例
控制台紫色控制台特定消息高优先级FreeSWITCH控制台输出
警报红色需要立即采取行动系统组件故障
严重红色严重条件数据库连接丢失
错误浅红色错误条件无法处理呼叫,配置无效
警告黄色警告条件使用了弃用的功能,重试尝试
通知青色显著的正常事件配置重新加载,服务启动
信息蓝色信息性消息呼叫连接,Diameter请求已发送
调试灰色调试级别消息函数进入/退出,变量值

用例

  • 实时故障排除: 在活动呼叫期间监控日志以调试问题
  • 错误调查: 按错误/严重级别过滤以查找问题
  • 呼叫流分析: 搜索呼叫ID或电话号码以追踪呼叫路径
  • 性能监控: 在负载测试期间监视警告和错误
  • 集成调试: 过滤TAS后端以查看Diameter/Sh/Ro消息
  • 拨号计划调试: 过滤TAS呼叫处理以查看FreeSWITCH呼叫路由
  • 系统健康监控: 保持日志打开以观察异常
  • 开发与测试: 使用调试级别查看详细的应用程序行为

提示

  • 组合过滤器: 同时使用源 + 级别 + 搜索进行精确过滤
    • 示例:源="TAS后端" + 级别="错误" + 搜索="Diameter" → 查找Diameter错误
  • 搜索前暂停: 在输入搜索查询之前暂停流以避免日志滚动
  • 明智地使用调试: 调试级别非常详细 - 过滤到特定源以减少噪音
  • 颜色扫描: 快速扫描左边框 - 红色边框表示问题
  • 源徽章: 蓝色徽章(后端)用于应用逻辑,紫色徽章(呼叫处理)用于呼叫
  • 时间戳精度: 毫秒时间戳有助于跨系统关联事件
  • 文件引用: 点击/记录文件:行引用以跳转到源代码
  • 定期清除: 在切换调查上下文时清除日志以保持清晰
  • 搜索UUID: 搜索呼叫ID/UUID以跟踪特定呼叫穿越整个系统
  • 紧急搜索: 搜索 "911" 或 "紧急" 以快速查找紧急呼叫处理

技术细节

  • 日志限制: 最多显示500条日志(达到限制时丢弃最旧的日志)
  • 刷新率: 每1000毫秒(1秒)自动刷新
  • 搜索: 在消息字段中进行不区分大小写的子字符串匹配
  • 空过滤: 自动过滤掉空/占位符日志消息
  • 源检测: 日志标记为 :elixir:freeswitch
  • 排序: 日志按时间戳降序排序(最新的在前)
  • PubSub: Elixir日志通过Phoenix PubSub实时更新
  • FreeSWITCH日志: 通过事件插座接口(ESI)日志监听器收集

基站数据库

管理和查询OpenCellID基站位置数据库,用于紧急服务和基于位置的功能。

访问: 在控制面板中导航到 /cell_towers

基站数据库

特性

  • 数据库统计: 查看总记录、按国家/网络的覆盖范围
  • 搜索与查询:
    • 按MCC(移动国家代码)搜索
    • 按MNC(移动网络代码)搜索
    • 按无线类型(GSM、UMTS、LTE)搜索
    • 按位置字符串搜索
  • 数据库管理:
    • 导入基站数据
    • 重新下载来自OpenCellID的最新数据集
    • 查看导入状态和进度
  • 位置解析: 将基站ID解析为地理坐标

用例

  • 紧急呼叫位置确定
  • 用户位置跟踪(在获得同意的情况下)
  • 网络覆盖分析
  • 排查漫游位置问题
  • 基站数据库维护

数据源

基站数据来源于OpenCellID (https://opencellid.org/),这是一个协作社区项目,旨在创建一个免费的全球基站位置数据库。


呼叫模拟器

交���式呼叫模拟工具,用于测试拨号计划逻辑而无需进行真实呼叫。

访问: 在控制面板中导航到 /simulator

详细文档: 请参见 HLR和呼叫模拟器指南

特性

  • 模拟呼叫类型: 测试MO、MT和紧急呼叫
  • 可配置参数:
    • 源和目的地号码
    • 源IP地址(模拟SBC/CSCF)
    • 强制特定呼叫处置
    • 跳过OCS授权以加快测试
  • 全面结果:
    • 完整的拨号计划变量输出
    • Sh/HLR查找结果
    • OCS授权结果
    • SS7 MAP查询结果(如适用)
    • 生成的拨号计划XML
  • 逐步处理: 查看呼叫处理的每个阶段

用例

  • 在部署前测试拨号计划更改
  • 验证用户配置
  • 调试呼叫路由问题
  • 培训员工了解呼叫流
  • 验证OCS/HLR集成
  • 测试紧急呼叫处理

HLR/MAP测试

测试SS7 MAP操作,包括发送路由信息(SRI)和提供漫游号码(PRN)查询。

访问: 在控制面板中导航到 /hlr

详细文档: 请参见 HLR和呼叫模拟器指南

特性

  • SRI查询: 测试发送路由信息以进行呼叫路由
  • PRN查询: 测试提供漫游号码以获取漫游用户
  • 真实结果: 对配置的MAP网关进行实际查询
  • 响应显示: 查看MSRN、MSC地址和转发状态
  • 错误处理: 清晰显示MAP错误和超时

用例

  • 验证HLR连接性
  • 测试漫游号码分配
  • 调试对漫游用户的呼叫路由
  • 验证MAP网关配置
  • 排查呼叫转移问题

OCS测试

直接针对您的OCS测试Diameter Ro(在线计费)信用控制请求(CCR)操作。

访问: 在控制面板中导航到 /ocs_test

OCS测试视图

特性

  • 灵活的CCR类型: 发送INITIAL、UPDATE、TERMINATION或EVENT请求
  • 会话模拟: 重用相同的呼叫ID以模拟完整的会话生命周期
  • 事件类型选择: 测试SMS(基于事件)和呼叫(基于会话)计费
  • 方向控制: 测试出站(MO)和入站(MT)场景
  • 可选参数: 指定目标主机和用户名以进行高级测试
  • 实时结果: 查看完整的CCA(信用控制应答)响应

如何使用

  1. 输入测试参数:

    • 被叫MSISDN: 目的地号码(例如,61400123456
    • 主叫MSISDN: 源号码(例如,61400987654
    • 事件类型: 选择 smscall
      • SMS默认为EVENT_REQUEST(类型4)
      • 呼叫默认为INITIAL_REQUEST(类型1)
    • 方向: out 表示MO或 in 表示MT
  2. 配置CCR类型:

    • 请求类型: 选择CCR类型:
      • 1 — INITIAL_REQUEST - 启动新会话
      • 2 — UPDATE_REQUEST - 会话中重新授权
      • 3 — TERMINATION_REQUEST - 结束会话并报告使用情况
      • 4 — EVENT_REQUEST - 一次性事件(SMS,立即事件)
    • 请求编号: 从1开始,在同一会话中递增
  3. 会话测试:

    • 呼叫ID: 自动生成的唯一标识符以进行关联
    • 点击 "新ID" 以生成新的呼叫ID进行新测试
    • 保持相同的呼叫ID 以模拟完整会话:
      • 第一个请求:INITIAL_REQUEST(类型1,编号1)
      • 会话中:UPDATE_REQUEST(类型2,编号2、3、4...)
      • 最后请求:TERMINATION_REQUEST(类型3,编号N+1)
  4. 高级选项:

    • 目标主机: 目标特定的OCS节点(可选)
    • 用户名: 重写用户标识符(可选)
  5. 运行并查看:

    • 点击 "运行CCR" 发送请求
    • 查看完整的CCA响应,包括所有AVP
    • 检查结果代码、授予单位和有效时间
    • 最后运行时间戳显示在右上角

用例

  • OCS连接性测试: 验证Diameter Ro连接和身份验证
  • 信用控制逻辑: 测试信用分配、消费和耗尽场景
  • 会话流测试: 模拟完整的呼叫生命周期(INITIAL → UPDATE → TERMINATION)
  • 计费验证: 验证不同号码范围的正确计费率
  • 故障转移测试: 通过针对特定目标主机测试OCS冗余
  • 集成调试: 通过详细的AVP检查排查OCS集成问题
  • 负载测试准备: 在负载测试前验证OCS行为
  • 紧急号码绕过: 验证紧急号码是否正确绕过计费

提示

  • 使用相同的呼叫ID和递增的请求编号测试会话连续性
  • 同时监控OCS日志以关联测试请求
  • 测试UPDATE请求以验证会话中重新授权逻辑
  • 验证TERMINATION请求是否正确关闭会话并防止泄漏
  • 通过在消耗授予单位后发送UPDATE请求测试信用耗尽

Sh接口测试

测试Diameter Sh用户数据请求(UDR)操作,以从HSS检索用户配置文件数据。

访问: 在控制面板中导航到 /sh_test

Sh测试视图

特性

  • 多个数据引用: 查询超过20种不同的用户数据类型
  • 真实HSS查询: 对配置的HSS进行实时Diameter Sh请求
  • 完整响应显示: 查看完整的XML用户数据和AVP
  • 会话跟踪: 显示HSS主机名、领域和会话ID
  • 错误处理: 清晰显示Diameter结果代码和错误条件

如何使用

  1. 输入公��身份:

    • 公共身份: 用户的IMS公共身份
    • 格式: sip:61400123456@ims.mncXXX.mccXXX.3gppnetwork.org
    • 也可以使用 tel:+61400123456 格式
  2. 选择数据引用: 选择要检索的用户数据类型:

    • RepositoryData (0): 完整用户配置文件
    • IMSPublicIdentity (10): 公共身份列表
    • IMSUserState (11): 注册状态
    • S-CSCFName (12): 分配的S-CSCF
    • InitialFilterCriteria (13): iFC触发器
    • LocationInformation (14): 当前位置信息
    • ChargingInformation (16): P-计费地址
    • MSISDN (17): 电话号码
    • IMSI (32): 国际移动用户身份
    • IMSPrivateUserIdentity (33): 私人用户身份
    • 还有更多...
  3. 运行并查看:

    • 点击 "获取SH数据" 发送UDR请求
    • 查看完整的用户数据应答(UDA)响应
    • 检查用户配置文件XML、服务数据和iFC规则
    • 会话元数据显示响应的HSS

用例

  • 用户验证: 确认用户在HSS中已配置
  • iFC调试: 查看初始过滤标准和触发点
  • 注册故障排除: 检查用户状态和S-CSCF分配
  • 计费配置: 验证P-计费功能地址
  • HSS连接性测试: 验证Diameter Sh连接
  • 配置文件验证: 确保分配了正确的服务配置文件
  • 集成测试: 在配置更改后测试HSS集成
  • 漫游分析: 检查位置信息和服务网络

提示

  • 使用 IMSPublicIdentity (10) 查看用户的所有别名
  • 使用 RepositoryData (0) 一次性获取完整用户配置文件
  • 检查 IMSUserState (11) 以验证用户是否已注册
  • InitialFilterCriteria (13) 显示将触发的应用服务器
  • 会话ID可用于关联HSS日志中的查询
  • 错误响应包括Diameter结果代码(例如,5001 = 用户未知)

号码翻译测试

测试号码翻译规则和格式,而无需进行实际呼叫。

访问: 在控制面板中导航到 /translate

号码翻译视图

特性

  • 实时翻译: 输入时自动翻译
  • 国家代码支持: 测试不同国家代码上下文
  • 处置感知: 根据呼叫处置应用不同规则
  • 实时结果: 立即反馈翻译后的号码
  • 调试信息: 查看原始返回值以进行故障排除

如何使用

  1. 配置参数:

    • 国家代码: 拨号上下文(例如,AUUSNZ
      • 默认为 config/runtime.exs 中配置的国家代码
      • 接受格式: AU:AUau
    • 电话号码: 要翻译的号码
      • 示例: +61400111222040011122261400111222
    • 处置: (可选)呼叫上下文以进行条件规则
      • 示例: originaterouteemergency
  2. 测试翻译:

    • 在表单中输入值
    • 输入时自动运行翻译
    • 或点击 "翻译" 手动触发
    • 立即查看翻译结果
  3. 查看结果:

    • 翻译后的: 显示格式化后的输出号码
    • 错误: 显示验证错误或翻译失败
    • 原始返回(调试): 显示完整的Elixir元组以进行调试

用例

  • 拨号计划开发: 在部署前测试号码格式规则
  • 格式验证: 验证E.164转换是否正常工作
  • 国家代码测试: 确保正确处理国际前缀
  • 紧急号码检测: 验证紧急号码是否被正确识别
  • 短码处理: 测试特殊服务代码(语音信箱等)
  • 中继准备: 正确格式化号码以满足SIP中继要求
  • 处置逻辑: 测试MO与MT场景的不同规则
  • 故障排除翻译问题: 调试特定号码为何无法路由

提示

  • 测试本地格式(0400111222)和国际格式(+61400111222
  • 验证紧急号码(000112)是否被正确检测
  • 使用处置字段测试不同呼叫场景(MO、MT、紧急)
  • 检查短码和内部号码是否被正确处理
  • 调试输出显示原始返回值 - 有助于调查问题
  • 测试边缘情况,如前导零、国际前缀和特殊字符

语音信箱管理

管理和收听存储在系统中的语音信箱消息。

访问: 在控制面板中导航到 /voicemail

语音信箱视图

特性

  • 完整语音信箱列表: 查看所有邮箱中的语音信箱消息
  • 浏览器内播放: 直接在网页界面中收听语音信箱录音
  • 消息详细信息: 查看用户名、UUID、时间戳、文件路径和元数据
  • 删除功能: 移除单个语音信箱消息
  • 自动刷新: 刷新按钮以重新加载最新的语音信箱数据
  • 动态列: 自动显示所有可用的数据库字段

如何使用

  1. 查看语音信箱列表:

    • 页面自动加载所有语音信箱记录
    • 表格显示来自语音信箱数据库的所有字段
    • 时间戳自动从纪元值格式化
    • 文件路径缩短以提高可读性
  2. 收听消息:

    • 点击任何语音信箱旁的 "▶ 播放" 按钮
    • 音频播放器出现,带有控制(播放、暂停、跳转、音量)
    • 支持WAV、MP3和OGG格式
    • 点击 "停止" 关闭音频播放器
  3. 删除消息:

    • 点击 "删除" 按钮以移除语音信箱
    • 确认提示防止意外删除
    • 成功删除后页面自动刷新
  4. 刷新数据:

    • 点击右上角的 "刷新" 按钮以重新加载语音信箱列表
    • 在新语音信箱被留下后很有用

显示的消息详细信息

表格动态显示所有可用字段,通常包括:

  • 用户名: 邮箱所有者
  • UUID: 唯一消息标识符
  • 创建纪元: 留下消息的时间(自动格式化为可读日期/时间)
  • 读取纪元: 访问消息的时间(如适用)
  • 文件路径: 音频文件的位置
  • 来自语音信箱数据库的其他元数据

用例

  • 用户支持: 收听语音信箱消息以进行故障排除
  • 测试语音信箱投递: 验证语音信箱是否正确存储
  • 消息管理: 清理旧的或测试的语音信箱消息
  • 故障排除录音问题: 检查文件路径并验证音频文件是否存在
  • 邮箱维护: 监控语音信箱存储和使用情况
  • 质量保证: 审查录制的消息以确保音频质量

提示

  • 文件路径自动缩短以仅显示相关部分
  • 纪元时间戳自动转换为人类可读格式
  • 空的语音信箱数据库显示 "未找到语音信箱记录"
  • 音频播放使用HTML5音频元素 - 在所有现代浏览器中受支持
  • 删除确认防止意外删除重要消息

TTS提示管理

管理系统中使用的文本到语音(TTS)生成的音频提示。

访问: 在控制面板中导航到 /prompts

提示视图

特性

  • 提示设置显示: 查看当前TTS声音、响应格式和说明
  • 录音状态: 查看哪些提示存在,哪些缺失
  • 文件详细信息: 查看每个提示的文件大小、修改时间和路径
  • 浏览器内播放: 直接在网页界面中收听提示
  • 生成缺失: 自动创建所有缺失的提示文件
  • 重新录制单个: 使用更新的设置重新生成特定提示
  • 重新录制所有: 重新生成所有提示(在更改声音或设置后很有用)

如何使用

  1. 查看提示设置:

    • 声音: 使用的TTS声音(例如,alloynovashimmer
    • 响应格式: 音频格式(例如,wavmp3opus
    • 说明: 传递给TTS引擎的特殊说明
  2. 检查录音状态:

    • 文本: 要说出的提示文本
    • 相对路径: 音频文件存储的位置
    • 存在: 如果文件存在则为绿色 "是",如果缺失则为黄色 "否"
    • 大小: 文件大小(以字节/KiB/MiB为单位)
    • 修改: 最后修改时间戳
  3. 生成提示:

    • 生成缺失: 仅创建尚不存在的提示
      • 在初始设置或添加新提示后很有用
    • 重新录制所有: 无论是否存在,重新生成所有提示
      • 在更改声音、格式或说明后很有用
      • 小心使用,因为它会重新生成所有内容
  4. 管理单个提示:

    • ▶ 播放: 收听提示(仅在文件存在时启用)
    • 🔄 重新录制: 仅重新生成此一个提示
      • 如果某个提示听起来不正确则很有用
      • 使用当前声音和设置
  5. 收听提示:

    • 点击 "▶ 播放" 收听提示
    • 音频播放器在底部出现,带有完整控制
    • 点击 "停止" 关闭播放器

提示配置

提示在您的应用程序配置中配置:

config :tas, :prompts,
voice: "nova",
response_format: "wav",
instructions: "请清晰且专业地说话。",
recordings: [
%{path: "/sounds/en/us/callie/voicemail/vm-enter_id.wav",
text: "请输入您的邮箱ID,后面跟上井号"},
# ... 更多提示
]

用例

  • 初始设置: 在系统安装后生成所有提示
  • 声音更改: 使用不同的TTS声音重新录制所有提示
  • 质量改进: 修复听起来不正确的单个提示
  • 格式更新: 以不同的音频格式(wav → mp3)重新生成提示
  • 文本更新: 在更改配置中的提示文本后重新录制
  • 测试TTS: 在部署前预览提示的声音
  • 故障排除播放: 验证提示文件是否存在且可访问
  • 存储管理: 检查文件大小并管理磁盘使用情况

提示

  • 使用 "生成缺失" 进行初始设置 - 它不会覆盖现有提示
  • 在配置中更改声音或格式后使用 "重新录制所有"
  • 单个 "重新录制" 对于特定提示的迭代很有用
  • 在部署前收听提示以确保质量
  • 较大的响应格式(wav)具有更好的质量,但占用更多磁盘空间
  • 说明字段可以指导TTS引擎的语气和节奏
  • 重新录制可能需要时间,如果您有许多提示 - 请耐心等待
  • 提示存储在FreeSWITCH声音目录中以便于访问

拨号计划XML模板

查看和检查用于呼叫路由的FreeSWITCH拨号计划XML模板。

访问: 在控制面板中导航到 /routing

拨号计划模板

特性

  • 模板列表: 查看来自 priv/templates/ 目录的所有XML拨号计划模板
  • 文件详细信息: 查看每个模板的文件名和最后修改时间戳
  • 语法高亮: 颜色编码的XML显示,便于阅读
    • ���签为青色
    • 属性为浅蓝色
    • 值为橙色/棕色
    • 注释为绿色
  • 可展开视图: 点击任何模板以查看其完整的XML内容
  • 只读视图: 安全检查而不冒险意外修改
  • 可滚动内容: 大模板在固定高度容器中滚动(最大600px)

如何使用

  1. 查看模板列表:

    • 页面加载来自模板目录的所有 .xml 文件
    • 按文件名字母顺序排序
    • 显示每个文件的修改时间戳
  2. 检查模板:

    • 点击任何行以展开并查看XML内容
    • 模板以语法高亮显示
    • 再次点击以折叠
  3. 阅读XML内容:

    • 标签(青色):XML元素名称,如 <extension><condition>
    • 属性(浅蓝色):属性名称,如 name=field=
    • (橙色):属性值,如 "public""destination_number"
    • 注释(绿色):XML注释 <!-- ... -->

用例

  • 审查拨号计划逻辑: 检查路由规则和呼叫流模板
  • 故障排除呼叫路由: 了解不同呼叫类型使用的模板
  • 验证模板语法: 在部署前检查XML结构
  • 培训与文档: 与团队成员分享模板内容
  • 更改审计: 比较修改时间戳以跟踪更新
  • 模板开发: 在创建新模板时参考现有模板

提示

  • 模板从TAS应用程序中的 priv/templates/ 加载
  • 仅显示 .xml 文件
  • 通过Web界面以只读方式查看模板
  • 修改时间戳有助于识别最近的更改
  • 使用此视图验证模板是否符合您的拨号计划预期
  • 语法高亮使复杂的XML更易于视觉解析
  • 结合 /logs 视图以将路由行为与模板关联

技术细节

  • 位置: 模板存储在 priv/templates/ 目录中
  • 格式: FreeSWITCH XML拨号计划格式
  • 文件扩展名: 仅列出 .xml 文件
  • 排序: 按文件名字母顺序
  • 语法高亮: 使用正则表达式模式进行客户端颜色化
  • 最大显示高度: 600px,较大文件滚动

ESL命令运行器

直接从Web界面执行FreeSWITCH事件插座层(ESL)命令。

访问: 在控制面板中导航到 /command

ESL命令运行器

特性

  • 命令执行: 运行任何ESL/FreeSWITCH API命令
  • 实时输出: 实时查看命令结果
  • 命令历史: 最近命令下拉菜单(最后10个命令)
  • 自动完成准备: 等宽输入以精确输入命令
  • 错误处理: 清晰显示命令错误和异常
  • 无自动执行: 选择历史填充输入,但需要明确点击 "运行"

如何使用

  1. 输入���令:

    • 在输入框中输入ESL命令
    • 示例:
      • status - 显示FreeSWITCH状态
      • show channels - 列出活动呼叫
      • uuid_dump <uuid> - 转储呼叫的所有变量
      • sofia status - 显示SIP配置文件状态
      • reloadxml - 重新加载XML拨号计划
      • version - 显示FreeSWITCH版本
  2. 运行命令:

    • 点击 "运行" 按钮以执行
    • 按钮在执行时显示 "正在运行…"
    • 不能同时运行多个命令
  3. 查看输出:

    • 结果出现在下面的 "输出" 部分
    • 成功的命令显示原始响应
    • 错误以 "ERROR:" 前缀显示
    • 输出可滚动,最大高度为600px
    • 等宽字体以对齐数据
  4. 使用命令历史:

    • 最近的命令在第一次执行后出现在下拉菜单中
    • 从 "最近:" 下拉菜单中选择以填充输入框
    • 历史保持最后10个唯一命令
    • 最近的命令在顶部
    • 选择历史不会自动执行(安全功能)

常用命令

命令描述示例输出
status系统状态和正常运行时间FreeSWITCH运行信息
show channels列出所有活动呼叫���叫列表或 "0 总计"
show calls活动呼叫摘要呼叫计数摘要
uuid_dump <uuid>呼叫的所有变量完整变量转储
uuid_kill <uuid>挂起特定呼叫"+OK" 或错误
sofia statusSIP配置文件状态配置文件列表和状态
sofia status profile <name>特定配置文件详细信息注册计数等
reloadxml重新加载拨号计划XML"+OK" 确认
versionFreeSWITCH版本信息版本字符串
global_getvar <var>获取全局变量变量值
api help列出可用命令命令参考

用例

  • 呼叫调试: 使用 uuid_dump 获取活动呼叫的详细信息
  • 系统状态: 使用 statusshow calls 检查FreeSWITCH健康状况
  • SIP故障排除: 使用 sofia status 检查SIP配置文件
  • 拨号计划重新加载: 使用 reloadxml 应用配置更改
  • 紧急操作: 使用 uuid_kill 杀死卡住的呼叫
  • 变量检查: 检查全局或通道变量

故障排除

用户未显示

  • 验证OmniTAS是否正在运行
  • 检查Sofia配置文件是否处于活动状态: sofia status profile internal
  • 验证配置中的数据库路径是否与实际数据库位置匹配

CDR记录未出现

  • 确认OmniTAS CDR模块已加��
  • 检查CDR数据库是否存在于配置路径
  • 验证OmniTAS中的CDR模块配置

性能考虑

  • 大型CDR数据库(>1M记录)可能需要额外的索引以获得最佳性能
  • 考虑定期归档旧的CDR记录
  • 用户注册查询通常很快,因为注册数据库很小

配置

访问控制

控制面板应部署在适当的访问控制(防火墙、VPN、身份验证)后,因为它提供对用户活动和呼叫记录的可见性。