操作指南
📖 返回主文档
本文档涵盖了控制面板中可用的操作监控和管理功能。
相关文档
核心文档
监控与测试工具
呼叫处理与服务
集成接口
操作
本节涵盖了在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

特性
- 分页视图: 浏览呼叫记录(每页100条,带有上一页/下一页控制)
- 高级搜索: 强大的搜索功能,支持精确匹配、反向/排除和多个术语
- 列选择: 自定义显示的字段
- 点击 "列" 按钮打开列选择器模态
- 选择/取消选择单个列
- 全选 / 全不选 快捷操作
- 选择在会话间持久化(保存到浏览器localStorage)
- 显示 "X / Y列" 计数器
- 可排序列: 点击任何列标题进行排序(升序/降序)
- 视觉指示器(▲升序,▼降序)
- 排序列以蓝色突出显示
- 排序更改时重置为第1页
- 多个��滤选项:
- 文本搜索: 在所有字段中使用高级运算符进行搜索
- 日期范围过滤: 按开始/结束日期和时间过滤(日期时间选择器)
- 字段特定过滤: 按确切字段值过滤(挂断原因、来电号码、目的地、上下文)
- 活动过滤显示: 视觉芯片显示当前活动的过滤器
- 清除所有: 一键删除所有活动过滤器
- 详细信息: 点击任何CDR行以展开并查看所有字段:
- 呼叫方(来电号码/名称,目的地号码)
- 时间戳(开始、应答、结束)
- 持续时间和计费秒数
- 挂断原因(颜色编码:绿色=正常,黄色=取消,红色=错误)
- 呼叫UUID(A-leg和B-leg)
- 上下文和账户代码
- 所有可用数据库字段按字母顺序排列
- 颜色编码的挂断原因:
- 🟢 绿色:
NORMAL_CLEARING - 🟡 黄色: 取消的呼叫
- 🔴 红色: 错误条件
- 🟢 绿色:
- 总计数: 实时显示匹配记录的总数
- 响应式布局: 在小屏幕上适当换行过滤器
如何使用
-
基本查看:
- 页面加载最新的100条CDR记录(按
start_stamp降序排序) - 右上角显示总记录数
- 使用 上一页 / 下一页 按钮导航页面
- 点击任何行以展开并查看所有字段
- 页面加载最新的100条CDR记录(按
-
自定义列:
- 点击右上角的 "列" 按钮
- 模态显示所有可用字段
- 勾选/取消勾选字段以显示/隐藏列
- 使用 "全选" 或 "全不选" 进行快速选择
- 设置自动保存到浏览器
- 关闭模态以应用更改
-
排序数据:
- 点击任何列标题按该字段排序
- 第一次点击:降序(▼)
- 第二次点击:升序(▲)
- 第三次点击:返回降序
- 排序列以蓝色突出显示
-
搜索记录:
- 在 "搜索" 框中输入搜索查询
- 支持高级运算符(见下文搜索语法)
- 在多个字段中搜索:
caller_id_number,destination_number,uuid,caller_id_name,hangup_cause - 点击 "应用" 执行搜索
-
按日期范围过滤:
- 使用 "开始日期" 和 "结束日期" 日期时间选择器
- 两个日期均为日期过滤所需
- 支持日期和时间选择
- 点击 "应用" 进行过滤
-
按特定字段过滤:
- 从 "选择过滤字段" 下拉菜单中选择字段:
- 挂断原因
- 来电号码
- 目的地
- 上下文
- 在 "输入过滤值" 中输入确切值
- 点击 "应用" 进行过滤
- 从 "选择过滤字段" 下拉菜单中选择字段:
-
组合过滤器:
- 所有过滤器可以同时使用:
- 文本搜索 + 日期范围 + 字段过滤器一起工作
- 活动过滤器显示为过滤器表单下方的芯片
- 点击 "清除所有" 一次性删除所有过滤器
- 所有过滤器可以同时使用:
-
查看详细信息:
- 点击任何CDR行以展开
- 以网格布局显示所有数据库字段
- 字段按字母顺序显示
- 挂断原因颜色编码以便快速识别
- 再次点击行以折叠
高级搜索语法
搜索框支持强大的查询语法,以便在多个字段中进行精确记录过滤。
搜索工作原理:
搜索引擎检查每个CDR记录中的 所有可搜索字段。当记录在 任何 这些字段中匹配您的搜索条件时,该记录将包含在结果中:
caller_id_numberdestination_numberuuidcaller_id_namehangup_cause
搜索运算符(可以组合):
-
包含搜索(默认):
- 语法:
term(无引号) - 匹配: 记录中 任何字段包含 该术语
- SQL: 使用
LIKE '%term%'在所有可搜索字段中连接OR - 示例:
61480匹配 "61480123456", "55561480999" 等。
- 语法:
-
精确匹配:
- 语法:
"term"(带双引号) - 匹配: 记录中 任何字段完全等于 该术语
- SQL: 使用
= 'term'在所有可搜索字段中连接OR - 示例:
"911"仅匹配完全 "911",而不是 "9115" 或 "1911"
- 语法:
-
反向/排除:
- 语法:
!term(感叹号前缀,无引号) - 匹配: 记录中 没有字段包含 该术语
- SQL: 使用
NOT LIKE '%term%'在所有可搜索字段中连接AND - 示例:
!NORMAL排除任何字段中包含 "NORMAL" 的记录
- 语法:
-
精确反向/排除:
- 语法:
!"term"(感叹号 + 双引号) - 匹配: 记录中 没有字段完全等于 该术语
- SQL: 使用
!= 'term'在所有可搜索字段中连接AND - 示例:
!"NORMAL_CLEARING"排除任何字段完全为 "NORMAL_CLEARING" 的记录
- 语法:
-
多个术语与 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字段仍然可在 "列" 选择器中使用 - 用户可以手动显示/隐藏任何需要的字段。
故障排除
未找到结果
- 检查搜索词中的拼写错误
- 尝试去掉引号以进行更广泛的搜索
- 验证该术语是否存在于可搜索字段中
- 检查日期范围是否过于严格
结果过多
- 添加更多 AND 术语以缩小范围
- 使用引号进行精确匹配
- 应用日期范围过滤
- 使用字段特定过滤器
结果意外
- 记住搜索适用于 所有可搜索字段
- 检查术语是否出现在意外字段中(如UUID)
- 使用精确匹配以避免部分匹配
- 验证反向逻辑(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条日志条目
- 元数据展示: 文件名和行号用于源代码引用(如果可用)
- 可滚动视图: 固定高度容器,自动滚动以显示最新日志
如何使用
-
基本查看:
- 页面加载来自两个源的最新500条日志条目
- 日志实时生成时出现
- 最近的日志出现在顶部
- 每1秒自动刷新
-
按源过滤:
- 从 "���" 下拉菜单中选择:
- 所有源 - 显示TAS后端和呼叫处理日志
- TAS后端 - 仅Elixir应用日志
- TAS呼叫处理 - 仅FreeSWITCH/拨号计划日志
- 过滤器立即应用
- 从 "���" 下拉菜单中选择:
-
按日志级别过滤:
- 从 "级别" 下拉菜单中选择:
- 所有 - 显示所有日志级别
- 控制台 到 调试 - 仅显示该特定级别
- 有助于专注于错误或调试特定问题
- 从 "级别" 下拉菜单中选择:
-
搜索关键词:
- 在 "搜索日志..." 框中输入
- 不区分大小写地搜索日志消息
- 输入时实时过滤
- 与源和级别过滤器结合使用
-
暂停/恢复流:
- 点击 "暂停" 按钮(橙色)以冻结日志更新
- "已暂停" 指示器出现在标题中
- 在没有新日志干扰的情况下查看特定日志条目
- 点击 "恢复" 按钮(绿色)以重新启动实时流
-
清除日志:
- 点击 "清除" 按钮(红色)以移除所有显示的日志
- 清除TAS后端和呼叫处理日志
- 新日志将随着生成而出现
-
阅读日志条目:
- 时间戳: 以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

特性
- 灵活的CCR类型: 发送INITIAL、UPDATE、TERMINATION或EVENT请求
- 会话模拟: 重用相同的呼叫ID以模拟完整的会话生命周期
- 事件类型选择: 测试SMS(基于事件)和呼叫(基于会话)计费
- 方向控制: 测试出站(MO)和入站(MT)场景
- 可选参数: 指定目标主机和用户名以进行高级测试
- 实时结果: 查看完整的CCA(信用控制应答)响应
如何使用
-
输入测试参数:
- 被叫MSISDN: 目的地号码(例如,
61400123456) - 主叫MSISDN: 源号码(例如,
61400987654) - 事件类型: 选择
sms或call- SMS默认为EVENT_REQUEST(类型4)
- 呼叫默认为INITIAL_REQUEST(类型1)
- 方向:
out表示MO或in表示MT
- 被叫MSISDN: 目的地号码(例如,
-
配置CCR类型:
- 请求类型: 选择CCR类型:
1 — INITIAL_REQUEST- 启动新会话2 — UPDATE_REQUEST- 会话中重新授权3 — TERMINATION_REQUEST- 结束会话并报告使用情况4 — EVENT_REQUEST- 一次性事件(SMS,立即事件)
- 请求编号: 从1开始,在同一会话中递增
- 请求类型: 选择CCR类型:
-
会话测试:
- 呼叫ID: 自动生成的唯一标识符以进行关联
- 点击 "新ID" 以生成新的呼叫ID进行新测试
- 保持相同的呼叫ID 以模拟完整会话:
- 第一个请求:INITIAL_REQUEST(类型1,编号1)
- 会话中:UPDATE_REQUEST(类型2,编号2、3、4...)
- 最后请求:TERMINATION_REQUEST(类型3,编号N+1)
-
高级选项:
- 目标主机: 目标特定的OCS节点(可选)
- 用户名: 重写用户标识符(可选)
-
运行并查看:
- 点击 "运行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

特性
- 多个数据引用: 查询超过20种不同的用户数据类型
- 真实HSS查询: 对配置的HSS进行实时Diameter Sh请求
- 完整响应显示: 查看完整的XML用户数据和AVP
- 会话跟踪: 显示HSS主机名、领域和会话ID
- 错误处理: 清晰显示Diameter结果代码和错误条件
如何使用
-
输入公��身份:
- 公共身份: 用户的IMS公共身份
- 格式:
sip:61400123456@ims.mncXXX.mccXXX.3gppnetwork.org - 也可以使用
tel:+61400123456格式
-
选择数据引用: 选择要检索的用户数据类型:
- 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): 私人用户身份
- 还有更多...
-
运行并查看:
- 点击 "获取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

特性
- 实时翻译: 输入时自动翻译
- 国家代码支持: 测试不同国家代码上下文
- 处置感知: 根据呼叫处置应用不同规则
- 实时结果: 立即反馈翻译后的号码
- 调试信息: 查看原始返回值以进行故障排除
如何使用
-
配置参数:
- 国家代码: 拨号上下文(例如,
AU、US、NZ)- 默认为
config/runtime.exs中配置的国家代码 - 接受格式:
AU、:AU、au
- 默认为
- 电话号码: 要翻译的号码
- 示例:
+61400111222、0400111222、61400111222
- 示例:
- 处置: (可选)呼叫上下文以进行条件规则
- 示例:
originate、route、emergency
- 示例:
- 国家代码: 拨号上下文(例如,
-
测试翻译:
- 在表单中输入值
- 输入时自动运行翻译
- 或点击 "翻译" 手动触发
- 立即查看翻译结果
-
查看结果:
- 翻译后的: 显示格式化后的输出号码
- 错误: 显示验证错误或翻译失败
- 原始返回(调试): 显示完整的Elixir元组以进行调试
用例
- 拨号计划开发: 在部署前测试号码格式规则
- 格式验证: 验证E.164转换是否正常工作
- 国家代码测试: 确保正确处理国际前缀
- 紧急号码检测: 验证紧急号码是否被正确识别
- 短码处理: 测试特殊服务代码(语音信箱等)
- 中继准备: 正确格式化号码以满足SIP中继要求
- 处置逻辑: 测试MO与MT场景的不同规则
- 故障排除翻译问题: 调试特定号码为何无法路由
提示
- 测试本地格式(
0400111222)和国际格式(+61400111222) - 验证紧急号码(
000、112)是否被正确检测 - 使用处置字段测试不同呼叫场景(MO、MT、紧急)
- 检查短码和内部号码是否被正确处理
- 调试输出显示原始返回值 - 有助于调查问题
- 测试边缘情况,如前导零、国际前缀和特殊字符
语音信箱管理
管理和收听存储在系统中的语音信箱消息。
访问: 在控制面板中导航到 /voicemail

特性
- 完整语音信箱列表: 查看所有邮箱中的语音信箱消息
- 浏览器内播放: 直接在网页界面中收听语音信箱录音
- 消息详细信息: 查看用户名、UUID、时间戳、文件路径和元数据
- 删除功能: 移除单个语音信箱消息
- 自动刷新: 刷新按钮以重新加载最新的语音信箱数据
- 动态列: 自动显示所有可用的数据库字段
如何使用
-
查看语音信箱列表:
- 页面自动加载所有语音信箱记录
- 表格显示来自语音信箱数据库的所有字段
- 时间戳自动从纪元值格式化
- 文件路径缩短以提高可读性
-
收听消息:
- 点击任何语音信箱旁的 "▶ 播放" 按钮
- 音频播放器出现,带有控制(播放、暂停、跳转、音量)
- 支持WAV、MP3和OGG格式
- 点击 "停止" 关闭音频播放器
-
删除消息:
- 点击 "删除" 按钮以移除语音信箱
- 确认提示防止意外删除
- 成功删除后页面自动刷新
-
刷新数据:
- 点击右上角的 "刷新" 按钮以重新加载语音信箱列表
- 在新语音信箱被留下后很有用
显示的消息详细信息
表格动态显示所有可用字段,通常包括:
- 用户名: 邮箱所有者
- UUID: 唯一消息标识符
- 创建纪元: 留下消息的时间(自动格式化为可读日期/时间)
- 读取纪元: 访问消息的时间(如适用)
- 文件路径: 音频文件的位置
- 来自语音信箱数据库的其他元数据
用例
- 用户支持: 收听语音信箱消息以进行故障排除
- 测试语音信箱投递: 验证语音信箱是否正确存储
- 消息管理: 清理旧的或测试的语音信箱消息
- 故障排除录音问题: 检查文件路径并验证音频文件是否存在
- 邮箱维护: 监控语音信箱存储和使用情况
- 质量保证: 审查录制的消息以确保音频质量
提示
- 文件路径自动缩短以仅显示相关部分
- 纪元时间戳自动转换为人类可读格式
- 空的语音信箱数据库显示 "未找到语音信箱记录"
- 音频播放使用HTML5音频元素 - 在所有现代浏览器中受支持
- 删除确认防止意外删除重要消息
TTS提示管理
管理系统中使用的文本到语音(TTS)生成的音频提示。
访问: 在控制面板中导航到 /prompts

特性
- 提示设置显示: 查看当前TTS声音、响应格式和说明
- 录音状态: 查看哪些提示存在,哪些缺失
- 文件详细信息: 查看每个提示的文件大小、修改时间和路径
- 浏览器内播放: 直接在网页界面中收听提示
- 生成缺失: 自动创建所有缺失的提示文件
- 重新录制单个: 使用更新的设置重新生成特定提示
- 重新录制所有: 重新生成所有提示(在更改声音或设置后很有用)
如何使用
-
查看提示设置:
- 声音: 使用的TTS声音(例如,
alloy、nova、shimmer) - 响应格式: 音频格式(例如,
wav、mp3、opus) - 说明: 传递给TTS引擎的特殊说明
- 声音: 使用的TTS声音(例如,
-
检查录音状态:
- 文本: 要说出的提示文本
- 相对路径: 音频文件存储的位置
- 存在: 如果文件存在则为绿色 "是",如果缺失则为黄色 "否"
- 大小: 文件大小(以字节/KiB/MiB为单位)
- 修改: 最后修改时间戳
-
生成提示:
- 生成缺失: 仅创建尚不存在的提示
- 在初始设置或添加新提示后很有用
- 重新录制所有: 无论是否存在,重新生成所有提示
- 在更改声音、格式或说明后很有用
- 小心使用,因为它会重新生成所有内容
- 生成缺失: 仅创建尚不存在的提示
-
管理单个提示:
- ▶ 播放: 收听提示(仅在文件存在时启用)
- 🔄 重新录制: 仅重新生成此一个提示
- 如果某个提示听起来不正确则很有用
- 使用当前声音和设置
-
收听提示:
- 点击 "▶ 播放" 收听提示
- 音频播放器在底部出现,带有完整控制
- 点击 "停止" 关闭播放器
提示配置
提示在您的应用程序配置中配置:
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)
如何使用
-
查看模板列表:
- 页面加载来自模板目录的所有
.xml文件 - 按文件名字母顺序排序
- 显示每个文件的修改时间戳
- 页面加载来自模板目录的所有
-
检查模板:
- 点击任何行以展开并查看XML内容
- 模板以语法高亮显示
- 再次点击以折叠
-
阅读XML内容:
- 标签(青色):XML元素名称,如
<extension>、<condition> - 属性(浅蓝色):属性名称,如
name=、field= - 值(橙色):属性值,如
"public"、"destination_number" - 注释(绿色):XML注释
<!-- ... -->
- 标签(青色):XML元素名称,如
用例
- 审查拨号计划逻辑: 检查路由规则和呼叫流模板
- 故障排除呼叫路由: 了解不同呼叫类型使用的模板
- 验证模板语法: 在部署前检查XML结构
- 培训与文档: 与团队成员分享模板内容
- 更改审计: 比较修改时间戳以跟踪更新
- 模板开发: 在创建新模板时参考现有模板
提示
- 模板从TAS应用程序中的
priv/templates/加载 - 仅显示
.xml文件 - 通过Web界面以只读方式查看模板
- 修改时间戳有助于识别最近的更改
- 使用此视图验证模板是否符合您的拨号计划预期
- 语法高亮使复杂的XML更易于视觉解析
- 结合
/logs视图以将路由行为与模板关联
技术细节
- 位置: 模板存储在
priv/templates/目录中 - 格式: FreeSWITCH XML拨号计划格式
- 文件扩展名: 仅列出
.xml文件 - 排序: 按文件名字母顺序
- 语法高亮: 使用正则表达式模式进行客户端颜色化
- 最大显示高度: 600px,较大文件滚动
ESL命令运行器
直接从Web界面执行FreeSWITCH事件插座层(ESL)命令。
访问: 在控制面板中导航到 /command

特性
- 命令执行: 运行任何ESL/FreeSWITCH API命令
- 实时输出: 实时查看命令结果
- 命令历史: 最近命令下拉菜单(最后10个命令)
- 自动完成准备: 等宽输入以精确输入命令
- 错误处理: 清晰显示命令错误和异常
- 无自动执行: 选择历史填充输入,但需要明确点击 "运行"
如何使用
-
输入���令:
- 在输入框中输入ESL命令
- 示例:
status- 显示FreeSWITCH状态show channels- 列出活动呼叫uuid_dump <uuid>- 转储呼叫的所有变量sofia status- 显示SIP配置文件状态reloadxml- 重新加载XML拨号计划version- 显示FreeSWITCH版本
-
运行命令:
- 点击 "运行" 按钮以执行
- 按钮在执行时显示 "正在运行…"
- 不能同时运行多个命令
-
查看输出:
- 结果出现在下面的 "输出" 部分
- 成功的命令显示原始响应
- 错误以 "ERROR:" 前缀显示
- 输出可滚动,最大高度为600px
- 等宽字体以对齐数据
-
使用命令历史:
- 最近的命令在第一次执行后出现在下拉菜单中
- 从 "最近:" 下拉菜单中选择以填充输入框
- 历史保持最后10个唯一命令
- 最近的命令在顶部
- 选择历史不会自动执行(安全功能)
常用命令
| 命令 | 描述 | 示例输出 |
|---|---|---|
status | 系统状态和正常运行时间 | FreeSWITCH运行信息 |
show channels | 列出所有活动呼叫 | ���叫列表或 "0 总计" |
show calls | 活动呼叫摘要 | 呼叫计数摘要 |
uuid_dump <uuid> | 呼叫的所有变量 | 完整变量转储 |
uuid_kill <uuid> | 挂起特定呼叫 | "+OK" 或错误 |
sofia status | SIP配置文件状态 | 配置文件列表和状态 |
sofia status profile <name> | 特定配置文件详细信息 | 注册计数等 |
reloadxml | 重新加载拨号计划XML | "+OK" 确认 |
version | FreeSWITCH版本信息 | 版本字符串 |
global_getvar <var> | 获取全局变量 | 变量值 |
api help | 列出可用命令 | 命令参考 |
用例
- 呼叫调试: 使用
uuid_dump获取活动呼叫的详细信息 - 系统状态: 使用
status和show 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、身份验证)后,因为它提供对用户活动和呼叫记录的可见性。