mirror of
https://gitee.com/270580156/weiyu.git
synced 2026-05-18 05:08:02 +00:00
3.5 KiB
3.5 KiB
CallNumberEntity 完善更新说明
更新概述
根据 deploy/freeswitch/freeswitch_mysql_schema.sql 中的 freeswitch_users 表结构,对 CallNumberEntity.java 进行了全面完善,使其与数据库表结构完全匹配。
主要更新内容
1. 表名更新
- 将
@Table(name = "bytedesk_call_user")改为@Table(name = "freeswitch_users") - 确保实体类与实际的数据库表名一致
2. 字段映射完善
核心字段(与数据库完全对应)
userId←user_id(SIP用户名,主键)domain←domain(SIP域名,默认值: 14.103.165.199)password←password(密码)vmPassword←vm_password(语音邮件密码)enabled←enabled(是否启用)callerIdName←caller_id_name(呼叫显示名称)callerIdNumber←caller_id_number(呼叫显示号码)outboundCallerIdName←outbound_caller_id_name(外呼显示名称)outboundCallerIdNumber←outbound_caller_id_number(外呼显示号码)tollAllow←toll_allow(通话权限,默认值: domestic,international,local)accountcode←accountcode(账户代码)userContext←user_context(用户上下文,默认值: default)callgroup←callgroup(呼叫组,默认值: bytedesk)
兼容字段(保留原有功能)
displayName←display_name(显示名称,兼容字段)email(邮箱)lastRegister←last_register(最后注册时间)registerIp←register_ip(注册IP地址)userAgent←user_agent(用户代理)remarks(备注)
3. 字段约束完善
- 添加了
@Column注解的nullable、length等约束 - 设置了合适的默认值
- 确保必填字段的
nullable = false
4. 方法增强
getSipAddress(): 返回完整的SIP地址 (userId@domain)isOnline(): 检查用户是否在线getEffectiveCallerIdName(): 获取有效的呼叫显示名称getEffectiveCallerIdNumber(): 获取有效的呼叫显示号码hasOutboundPermission(): 检查外呼权限
5. 相关类更新
- 更新了
CallNumberEntityListener.java中的字段引用 - 将
getUsername()改为getUserId()
数据库兼容性
字段长度限制
user_id: 100字符domain: 100字符password: 100字符vm_password: 50字符caller_id_name: 100字符caller_id_number: 50字符outbound_caller_id_name: 100字符outbound_caller_id_number: 50字符toll_allow: 200字符accountcode: 50字符user_context: 50字符callgroup: 50字符
默认值设置
domain: "14.103.165.199"enabled: truetoll_allow: "domestic,international,local"user_context: "default"callgroup: "bytedesk"
使用建议
- SIP地址获取: 使用
getSipAddress()方法获取完整的SIP地址 - 呼叫显示: 使用
getEffectiveCallerIdName()和getEffectiveCallerIdNumber()获取有效的显示信息 - 权限检查: 使用
hasOutboundPermission()检查用户的外呼权限 - 在线状态: 使用
isOnline()检查用户是否在线
注意事项
- 实体类现在完全对应
freeswitch_users表结构 - 保留了原有的兼容字段,确保向后兼容
- 所有字段都添加了适当的数据库约束
- 更新了相关的监听器类以匹配新的字段名
测试建议
- 验证实体类与数据库表的映射关系
- 测试所有新增的业务方法
- 验证事件发布和监听功能
- 检查数据库约束是否生效