You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
11 hours ago | |
|---|---|---|
| config | 11 hours ago | |
| logs | 1 week ago | |
| src | 11 hours ago | |
| .DS_Store | 1 week ago | |
| .gitignore | 1 week ago | |
| README.md | 1 week ago | |
| VAA_SYNC_README.md | 1 week ago | |
| pom.xml | 1 week ago | |
README.md
语音数据同步服务 (dataservice-yy)
项目简介
语音数据同步服务用于从 EBOX 录音盒拉取录音文件,上传到 OSS,并保存通话记录到数据库。
目录结构
dataservice-yy/
├── dataservice-yy-0.0.1-SNAPSHOT.jar # 主程序 JAR 包
├── config/
│ └── application-external.yml # 外部配置文件(部署时修改)
├── vaa-recordings/ # 本地录音文件存储目录
│ ├── 340100/ # 地市编码
│ │ ├── 20240101/ # 日期目录
│ │ │ └── <device_uuid>/ # 设备目录
│ │ │ └── xxx.wav
│ │ └── 20240102/
│ └── ...
├── logs/
│ └── app.log # 日志文件
└── README.md # 本说明文档
部署步骤
1. 准备环境
- JDK 1.8+
- 人大金仓数据库(已创建 mid_voice schema)
- OSS 服务(已部署并配置好上传接口)
2. 创建目录结构
mkdir -p /opt/dataservice-yy/config
mkdir -p /opt/dataservice-yy/logs
3. 复制文件
# 复制 JAR 包
cp dataservice-yy-0.0.1-SNAPSHOT.jar /opt/dataservice-yy/
# 复制配置文件模板
cp config/application-external.yml /opt/dataservice-yy/config/
4. 修改配置
编辑 /opt/dataservice-yy/config/application-external.yml,修改以下配置项:
数据库配置
spring:
datasource:
url: jdbc:kingbase8://{数据库IP}:{端口}/kingbase?currentSchema=mid_voice&clientEncoding=utf8
username: {数据库用户名}
password: {数据库密码}
OSS 配置
vaa-sync:
oss:
base-url: http://{OSS服务器IP}:9090
upload-url: http://{OSS服务器IP}:9090/apiOss/oss/fileUpload
appcode: dataservice-yy
appid: {appid}
appsecret: {appsecret}
其他配置
vaa-sync:
download-path: ./vaa-recordings # 本地录音文件存储路径
sync-interval-cron: "0 0 0/2 * * ?" # 同步间隔(默认每2小时)
device-username: admin # 录音盒登录账号
device-password: admin # 录音盒登录密码
server:
port: 8088 # 服务端口
5. 启动服务
cd /opt/dataservice-yy
nohup java -jar dataservice-yy-0.0.1-SNAPSHOT.jar > /dev/null 2>&1 &
6. 查看日志
tail -f logs/app.log
配置文件说明
application-external.yml
此文件包含所有需要部署时调整的参数,无需重新打包 JAR。
| 配置项 | 说明 | 示例 |
|---|---|---|
spring.datasource.url |
数据库连接URL | jdbc:kingbase8://53.1.194.60:54321/kingbase?currentSchema=mid_voice&clientEncoding=utf8 |
spring.datasource.username |
数据库用户名 | dcms_dev |
spring.datasource.password |
数据库密码 | sdy@2025#dc$ks |
vaa-sync.oss.base-url |
OSS基础地址 | http://53.1.194.59:9090 |
vaa-sync.oss.upload-url |
OSS上传接口 | http://53.1.194.59:9090/apiOss/oss/fileUpload |
vaa-sync.oss.appcode |
OSS应用编码 | dataservice-yy |
vaa-sync.oss.appid |
OSS应用ID | 371a3368-e28e-4ba3-95a3-c31c19cf0ad0 |
vaa-sync.oss.appsecret |
OSS应用密钥 | 06a6a80e-f9d2-4b3b-acc0-8d182c876074 |
vaa-sync.download-path |
本地录音存储路径 | ./vaa-recordings |
vaa-sync.sync-interval-cron |
同步定时任务 | 0 0 0/2 * * ?(每2小时) |
vaa-sync.device-username |
录音盒登录账号 | admin |
vaa-sync.device-password |
录音盒登录密码 | admin |
server.port |
服务端口 | 8088 |
定时任务说明
同步任务默认每2小时执行一次,可通过修改 sync-interval-cron 调整:
| 表达式 | 说明 |
|---|---|
0 0 0/2 * * ? |
每2小时执行一次(默认) |
0 0/30 * * * ? |
每30分钟执行一次 |
0 0 2 * * ? |
每天凌晨2点执行 |
0 0/1 * * * ? |
每分钟执行(测试用) |
数据表说明
mid_voice_device_config
设备基础配置表,存储录音盒设备信息。
| 字段 | 说明 |
|---|---|
| device_no | 设备编号(UUID) |
| city_code | 地市编码 |
| city_name | 地市名称 |
| ip_address | IP地址 |
| device_port | 端口号 |
| device_status | 设备状态(0在线) |
mid_voice_channel_config
通道配置表,存储录音盒通道绑定的电话号码。
| 字段 | 说明 |
|---|---|
| device_no | 设备编号 |
| channel_no | 通道号(1-8) |
| phone_number | 绑定电话号码 |
mid_voice_call_record
通话记录表,存储录音文件信息和OSS地址。
| 字段 | 说明 |
|---|---|
| call_record_id | 通话记录ID(device_no + record_id) |
| device_no | 设备编号 |
| city_code | 地市编码 |
| city_name | 地市名称 |
| call_tel | 主叫号码 |
| called_tel | 被叫号码 |
| call_start_time | 通话开始时间 |
| call_end_time | 通话结束时间 |
| call_duration | 通话时长(秒) |
| call_direction | 通话方向(1呼入,2呼出) |
| recording_file_name | 录音文件名 |
| recording_file_path | OSS完整访问URL |
| recording_file_size | 文件大小(字节) |
日志说明
日志文件位于 logs/app.log,可通过以下命令查看:
# 查看实时日志
tail -f logs/app.log
# 只看错误日志
tail -f logs/app.log | grep "【异常】"
# 只看设备同步日志
tail -f logs/app.log | grep "【设备】"
# 只看录音处理日志
tail -f logs/app.log | grep "【录音】"
常见问题
1. 配置文件读取失败
检查 config/application-external.yml 是否在 JAR 包同级目录的 config/ 文件夹下。
2. 数据库连接失败
检查数据库URL、用户名、密码是否正确,网络是否连通。
3. OSS上传失败
检查 OSS 地址、认证信息是否正确,OSS服务是否正常。
4. 录音盒连接失败
检查录音盒IP、端口、账号密码是否正确,网络是否连通。