From d8e90144605de5214ddf7af8b7004a2da184ace0 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Sun, 28 Sep 2025 20:06:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=AF=BC=E5=87=BASMSC=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?result=20code=E5=92=8Cresult=20cause=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/database/lite/install/sys_dict_data.sql | 11 ++++++ build/database/lite/install/sys_dict_type.sql | 1 + build/database/lite/install/sys_i18n.sql | 11 ++++++ .../lite/upgrade/upg_sys_dict_data.sql | 11 ++++++ .../lite/upgrade/upg_sys_dict_type.sql | 1 + build/database/lite/upgrade/upg_sys_i18n.sql | 11 ++++++ build/database/std/install/sys_dict_data.sql | 11 ++++++ build/database/std/install/sys_dict_type.sql | 1 + build/database/std/install/sys_i18n.sql | 11 ++++++ .../std/upgrade/upg_sys_dict_data.sql | 11 ++++++ .../std/upgrade/upg_sys_dict_type.sql | 1 + build/database/std/upgrade/upg_sys_i18n.sql | 11 ++++++ .../backup_export_cdr/backup_export_cdr.go | 38 +++++++++++-------- src/modules/network_data/service/cdr_event.go | 21 +++++----- 14 files changed, 126 insertions(+), 25 deletions(-) diff --git a/build/database/lite/install/sys_dict_data.sql b/build/database/lite/install/sys_dict_data.sql index c879e3eb..796f657b 100644 --- a/build/database/lite/install/sys_dict_data.sql +++ b/build/database/lite/install/sys_dict_data.sql @@ -196,4 +196,15 @@ INSERT INTO "sys_dict_data" VALUES (170, 'sys_user_type', 'dictData.sys_user_typ INSERT INTO "sys_dict_data" VALUES (171, 'sys_user_type', 'dictData.sys_user_type.ldap', 'LDAP', 2, '', 'lime', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO "sys_dict_data" VALUES (172, 'sys_user_type', 'dictData.sys_user_type.smtp', 'SMTP', 3, '', 'magenta', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO "sys_dict_data" VALUES (173, 'sys_user_type', 'dictData.sys_user_type.oauth2', 'OAuth2', 4, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO "sys_dict_data" VALUES (174, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.0', '0', 0, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO "sys_dict_data" VALUES (175, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.1', '1', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO "sys_dict_data" VALUES (176, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.2', '2', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO "sys_dict_data" VALUES (177, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.3', '3', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO "sys_dict_data" VALUES (178, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.4', '4', 4, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO "sys_dict_data" VALUES (179, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.5', '5', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO "sys_dict_data" VALUES (180, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.6', '6', 6, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO "sys_dict_data" VALUES (181, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.7', '7', 7, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO "sys_dict_data" VALUES (182, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.8', '8', 8, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO "sys_dict_data" VALUES (183, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.9', '9', 9, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO "sys_dict_data" VALUES (184, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.10', '10', 10, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); diff --git a/build/database/lite/install/sys_dict_type.sql b/build/database/lite/install/sys_dict_type.sql index 39b564de..6a1e9c28 100644 --- a/build/database/lite/install/sys_dict_type.sql +++ b/build/database/lite/install/sys_dict_type.sql @@ -53,3 +53,4 @@ INSERT INTO "sys_dict_type" VALUES (71, 'dictType.trace_msg_type', 'trace_msg_ty INSERT INTO "sys_dict_type" VALUES (72, 'dictType.trace_msg_direct', 'trace_msg_direct', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO "sys_dict_type" VALUES (73, 'dictType.trace_interfaces', 'trace_interfaces', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO "sys_dict_type" VALUES (74, 'dictType.cdr_sip_code_cause', 'cdr_sip_code_cause', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO "sys_dict_type" VALUES (75, 'dictType.cdr_cause_smsc', 'cdr_cause_smsc', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); diff --git a/build/database/lite/install/sys_i18n.sql b/build/database/lite/install/sys_i18n.sql index fcc4d528..cc35ddaa 100644 --- a/build/database/lite/install/sys_i18n.sql +++ b/build/database/lite/install/sys_i18n.sql @@ -977,6 +977,17 @@ hour: data time from the hour before the task execution time'); INSERT INTO "sys_i18n" VALUES (794, 'menu.system.setting.homeSet', '主页设置', 'Home Set'); INSERT INTO "sys_i18n" VALUES (795, 'menu.system.setting.reset', '重置', 'Reset'); INSERT INTO "sys_i18n" VALUES (796, 'menu.system.setting.backup', '备份还原', 'Backup Restore'); +INSERT INTO "sys_i18n" VALUES (797, 'dictData.cdr_cause_smsc.0', '未知错误', 'Unknown Error'); +INSERT INTO "sys_i18n" VALUES (798, 'dictData.cdr_cause_smsc.1', '无错误', 'No error'); +INSERT INTO "sys_i18n" VALUES (799, 'dictData.cdr_cause_smsc.2', '通过SIP传输的消息源数据中SMSC提取参数错误', 'Error in SMSC extract parameter of Message Originating data via SIP'); +INSERT INTO "sys_i18n" VALUES (800, 'dictData.cdr_cause_smsc.3', '消息来源数据中消息来源的服务中心编号缺失', 'Missing Service Center Number of Message Originating data in Message Originating'); +INSERT INTO "sys_i18n" VALUES (801, 'dictData.cdr_cause_smsc.4', '未知服务中心号码消息来源数据中的消息来源', 'Unknown Service Center Number of Message Originating data in Message Originating'); +INSERT INTO "sys_i18n" VALUES (802, 'dictData.cdr_cause_smsc.5', '消息源数据中缺少必需参数源地址(RP-OA)', 'Missing Required Parameter Originating Address(RP-OA) in Message Originating data'); +INSERT INTO "sys_i18n" VALUES (803, 'dictData.cdr_cause_smsc.6', 'SMSC解码错误或消息来源数据', 'Error in smsc decoding Message Originating data'); +INSERT INTO "sys_i18n" VALUES (804, 'dictData.cdr_cause_smsc.7', '消息发起路由失败(无法确定如何路由呼叫号码(通过4G/2G))', 'Message Originating routing failed(not know how to route called number(via 4G/2g))'); +INSERT INTO "sys_i18n" VALUES (804, 'dictData.cdr_cause_smsc.8', 'SMSC 未收到 RP-ACK 数据包(cscf→smsc)', 'SMSC not receive RP-ACK pkg(cscf->smsc)'); +INSERT INTO "sys_i18n" VALUES (806, 'dictData.cdr_cause_smsc.9', 'SMSC接收错误的RP-ACK数据包(cscf→smsc)', 'SMSC receive wrong RP-ACK pkg(cscf->smsc)'); +INSERT INTO "sys_i18n" VALUES (807, 'dictData.cdr_cause_smsc.10', 'CAMEL 流程错误', 'CAMEL process error'); INSERT INTO "sys_i18n" VALUES (2000, 'menu.psap.agent', '座席', 'Agent'); INSERT INTO "sys_i18n" VALUES (2001, 'menu.psap.agent.callings', '并行话务', 'Calling Information'); diff --git a/build/database/lite/upgrade/upg_sys_dict_data.sql b/build/database/lite/upgrade/upg_sys_dict_data.sql index aae60d22..84751d92 100644 --- a/build/database/lite/upgrade/upg_sys_dict_data.sql +++ b/build/database/lite/upgrade/upg_sys_dict_data.sql @@ -195,4 +195,15 @@ REPLACE INTO "sys_dict_data" VALUES (170, 'sys_user_type', 'dictData.sys_user_ty REPLACE INTO "sys_dict_data" VALUES (171, 'sys_user_type', 'dictData.sys_user_type.ldap', 'LDAP', 2, '', 'lime', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); REPLACE INTO "sys_dict_data" VALUES (172, 'sys_user_type', 'dictData.sys_user_type.smtp', 'SMTP', 3, '', 'magenta', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); REPLACE INTO "sys_dict_data" VALUES (173, 'sys_user_type', 'dictData.sys_user_type.oauth2', 'OAuth2', 4, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO "sys_dict_data" VALUES (174, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.0', '0', 0, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO "sys_dict_data" VALUES (175, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.1', '1', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO "sys_dict_data" VALUES (176, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.2', '2', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO "sys_dict_data" VALUES (177, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.3', '3', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO "sys_dict_data" VALUES (178, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.4', '4', 4, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO "sys_dict_data" VALUES (179, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.5', '5', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO "sys_dict_data" VALUES (180, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.6', '6', 6, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO "sys_dict_data" VALUES (181, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.7', '7', 7, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO "sys_dict_data" VALUES (182, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.8', '8', 8, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO "sys_dict_data" VALUES (183, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.9', '9', 9, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO "sys_dict_data" VALUES (184, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.10', '10', 10, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); diff --git a/build/database/lite/upgrade/upg_sys_dict_type.sql b/build/database/lite/upgrade/upg_sys_dict_type.sql index dca3cac3..ee99eee6 100644 --- a/build/database/lite/upgrade/upg_sys_dict_type.sql +++ b/build/database/lite/upgrade/upg_sys_dict_type.sql @@ -52,3 +52,4 @@ REPLACE INTO "sys_dict_type" VALUES (71, 'dictType.trace_msg_type', 'trace_msg_t REPLACE INTO "sys_dict_type" VALUES (72, 'dictType.trace_msg_direct', 'trace_msg_direct', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); REPLACE INTO "sys_dict_type" VALUES (73, 'dictType.trace_interfaces', 'trace_interfaces', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); REPLACE INTO "sys_dict_type" VALUES (74, 'dictType.cdr_sip_code_cause', 'cdr_sip_code_cause', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO "sys_dict_type" VALUES (75, 'dictType.cdr_cause_smsc', 'cdr_cause_smsc', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); diff --git a/build/database/lite/upgrade/upg_sys_i18n.sql b/build/database/lite/upgrade/upg_sys_i18n.sql index b9a14bde..b0fb93d9 100644 --- a/build/database/lite/upgrade/upg_sys_i18n.sql +++ b/build/database/lite/upgrade/upg_sys_i18n.sql @@ -976,6 +976,17 @@ hour: data time from the hour before the task execution time'); REPLACE INTO "sys_i18n" VALUES (794, 'menu.system.setting.homeSet', '主页设置', 'Home Set'); REPLACE INTO "sys_i18n" VALUES (795, 'menu.system.setting.reset', '重置', 'Reset'); REPLACE INTO "sys_i18n" VALUES (796, 'menu.system.setting.backup', '备份还原', 'Backup Restore'); +REPLACE INTO "sys_i18n" VALUES (797, 'dictData.cdr_cause_smsc.0', '未知错误', 'Unknown Error'); +REPLACE INTO "sys_i18n" VALUES (798, 'dictData.cdr_cause_smsc.1', '无错误', 'No error'); +REPLACE INTO "sys_i18n" VALUES (799, 'dictData.cdr_cause_smsc.2', '通过SIP传输的消息源数据中SMSC提取参数错误', 'Error in SMSC extract parameter of Message Originating data via SIP'); +REPLACE INTO "sys_i18n" VALUES (800, 'dictData.cdr_cause_smsc.3', '消息来源数据中消息来源的服务中心编号缺失', 'Missing Service Center Number of Message Originating data in Message Originating'); +REPLACE INTO "sys_i18n" VALUES (801, 'dictData.cdr_cause_smsc.4', '未知服务中心号码消息来源数据中的消息来源', 'Unknown Service Center Number of Message Originating data in Message Originating'); +REPLACE INTO "sys_i18n" VALUES (802, 'dictData.cdr_cause_smsc.5', '消息源数据中缺少必需参数源地址(RP-OA)', 'Missing Required Parameter Originating Address(RP-OA) in Message Originating data'); +REPLACE INTO "sys_i18n" VALUES (803, 'dictData.cdr_cause_smsc.6', 'SMSC解码错误或消息来源数据', 'Error in smsc decoding Message Originating data'); +REPLACE INTO "sys_i18n" VALUES (804, 'dictData.cdr_cause_smsc.7', '消息发起路由失败(无法确定如何路由呼叫号码(通过4G/2G))', 'Message Originating routing failed(not know how to route called number(via 4G/2g))'); +REPLACE INTO "sys_i18n" VALUES (804, 'dictData.cdr_cause_smsc.8', 'SMSC 未收到 RP-ACK 数据包(cscf→smsc)', 'SMSC not receive RP-ACK pkg(cscf->smsc)'); +REPLACE INTO "sys_i18n" VALUES (806, 'dictData.cdr_cause_smsc.9', 'SMSC接收错误的RP-ACK数据包(cscf→smsc)', 'SMSC receive wrong RP-ACK pkg(cscf->smsc)'); +REPLACE INTO "sys_i18n" VALUES (807, 'dictData.cdr_cause_smsc.10', 'CAMEL 流程错误', 'CAMEL process error'); REPLACE INTO "sys_i18n" VALUES (2000, 'menu.psap.agent', '座席', 'Agent'); REPLACE INTO "sys_i18n" VALUES (2001, 'menu.psap.agent.callings', '并行话务', 'Calling Information'); diff --git a/build/database/std/install/sys_dict_data.sql b/build/database/std/install/sys_dict_data.sql index 0dbcda4f..61de3d09 100644 --- a/build/database/std/install/sys_dict_data.sql +++ b/build/database/std/install/sys_dict_data.sql @@ -199,6 +199,17 @@ INSERT INTO `sys_dict_data` VALUES (170, 'sys_user_type', 'dictData.sys_user_typ INSERT INTO `sys_dict_data` VALUES (171, 'sys_user_type', 'dictData.sys_user_type.ldap', 'LDAP', 2, '', 'lime', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_data` VALUES (172, 'sys_user_type', 'dictData.sys_user_type.smtp', 'SMTP', 3, '', 'magenta', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_data` VALUES (173, 'sys_user_type', 'dictData.sys_user_type.oauth2', 'OAuth2', 4, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (174, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.0', '0', 0, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (175, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.1', '1', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (176, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.2', '2', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (177, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.3', '3', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (178, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.4', '4', 4, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (179, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.5', '5', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (180, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.6', '6', 6, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (181, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.7', '7', 7, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (182, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.8', '8', 8, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (183, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.9', '9', 9, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (184, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.10', '10', 10, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); SET FOREIGN_KEY_CHECKS = 1; diff --git a/build/database/std/install/sys_dict_type.sql b/build/database/std/install/sys_dict_type.sql index a03a372b..1584aa10 100644 --- a/build/database/std/install/sys_dict_type.sql +++ b/build/database/std/install/sys_dict_type.sql @@ -57,6 +57,7 @@ INSERT INTO `sys_dict_type` VALUES (71, 'dictType.trace_msg_type', 'trace_msg_ty INSERT INTO `sys_dict_type` VALUES (72, 'dictType.trace_msg_direct', 'trace_msg_direct', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_type` VALUES (73, 'dictType.trace_interfaces', 'trace_interfaces', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_type` VALUES (74, 'dictType.cdr_sip_code_cause', 'cdr_sip_code_cause', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_type` VALUES (75, 'dictType.cdr_cause_smsc', 'cdr_cause_smsc', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); UNLOCK TABLES; diff --git a/build/database/std/install/sys_i18n.sql b/build/database/std/install/sys_i18n.sql index 7d8e50b8..69502d3c 100644 --- a/build/database/std/install/sys_i18n.sql +++ b/build/database/std/install/sys_i18n.sql @@ -811,6 +811,17 @@ INSERT INTO `sys_i18n` VALUES (793, 'job.backup_export_kpi_remark', 'dataType: INSERT INTO `sys_i18n` VALUES (794, 'menu.system.setting.homeSet', '主页设置', 'Home Set'); INSERT INTO `sys_i18n` VALUES (795, 'menu.system.setting.reset', '重置', 'Reset'); INSERT INTO `sys_i18n` VALUES (796, 'menu.system.setting.backup', '备份还原', 'Backup Restore'); +INSERT INTO `sys_i18n` VALUES (797, 'dictData.cdr_cause_smsc.0', '未知错误', 'Unknown Error'); +INSERT INTO `sys_i18n` VALUES (798, 'dictData.cdr_cause_smsc.1', '无错误', 'No error'); +INSERT INTO `sys_i18n` VALUES (799, 'dictData.cdr_cause_smsc.2', '通过SIP传输的消息源数据中SMSC提取参数错误', 'Error in SMSC extract parameter of Message Originating data via SIP'); +INSERT INTO `sys_i18n` VALUES (800, 'dictData.cdr_cause_smsc.3', '消息来源数据中消息来源的服务中心编号缺失', 'Missing Service Center Number of Message Originating data in Message Originating'); +INSERT INTO `sys_i18n` VALUES (801, 'dictData.cdr_cause_smsc.4', '未知服务中心号码消息来源数据中的消息来源', 'Unknown Service Center Number of Message Originating data in Message Originating'); +INSERT INTO `sys_i18n` VALUES (802, 'dictData.cdr_cause_smsc.5', '消息源数据中缺少必需参数源地址(RP-OA)', 'Missing Required Parameter Originating Address(RP-OA) in Message Originating data'); +INSERT INTO `sys_i18n` VALUES (803, 'dictData.cdr_cause_smsc.6', 'SMSC解码错误或消息来源数据', 'Error in smsc decoding Message Originating data'); +INSERT INTO `sys_i18n` VALUES (804, 'dictData.cdr_cause_smsc.7', '消息发起路由失败(无法确定如何路由呼叫号码(通过4G/2G))', 'Message Originating routing failed(not know how to route called number(via 4G/2g))'); +INSERT INTO `sys_i18n` VALUES (804, 'dictData.cdr_cause_smsc.8', 'SMSC 未收到 RP-ACK 数据包(cscf→smsc)', 'SMSC not receive RP-ACK pkg(cscf->smsc)'); +INSERT INTO `sys_i18n` VALUES (806, 'dictData.cdr_cause_smsc.9', 'SMSC接收错误的RP-ACK数据包(cscf→smsc)', 'SMSC receive wrong RP-ACK pkg(cscf->smsc)'); +INSERT INTO `sys_i18n` VALUES (807, 'dictData.cdr_cause_smsc.10', 'CAMEL 流程错误', 'CAMEL process error'); INSERT INTO `sys_i18n` VALUES (2000, 'menu.psap.agent', '座席', 'Agent'); INSERT INTO `sys_i18n` VALUES (2001, 'menu.psap.agent.callings', '并行话务', 'Calling Information'); diff --git a/build/database/std/upgrade/upg_sys_dict_data.sql b/build/database/std/upgrade/upg_sys_dict_data.sql index 51ae420a..72c7af0c 100644 --- a/build/database/std/upgrade/upg_sys_dict_data.sql +++ b/build/database/std/upgrade/upg_sys_dict_data.sql @@ -203,6 +203,17 @@ REPLACE INTO `sys_dict_data` VALUES (170, 'sys_user_type', 'dictData.sys_user_ty REPLACE INTO `sys_dict_data` VALUES (171, 'sys_user_type', 'dictData.sys_user_type.ldap', 'LDAP', 2, '', 'lime', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); REPLACE INTO `sys_dict_data` VALUES (172, 'sys_user_type', 'dictData.sys_user_type.smtp', 'SMTP', 3, '', 'magenta', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); REPLACE INTO `sys_dict_data` VALUES (173, 'sys_user_type', 'dictData.sys_user_type.oauth2', 'OAuth2', 4, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO `sys_dict_data` VALUES (174, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.0', '0', 0, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO `sys_dict_data` VALUES (175, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.1', '1', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO `sys_dict_data` VALUES (176, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.2', '2', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO `sys_dict_data` VALUES (177, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.3', '3', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO `sys_dict_data` VALUES (178, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.4', '4', 4, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO `sys_dict_data` VALUES (179, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.5', '5', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO `sys_dict_data` VALUES (180, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.6', '6', 6, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO `sys_dict_data` VALUES (181, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.7', '7', 7, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO `sys_dict_data` VALUES (182, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.8', '8', 8, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO `sys_dict_data` VALUES (183, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.9', '9', 9, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO `sys_dict_data` VALUES (184, 'cdr_cause_smsc', 'dictData.cdr_cause_smsc.10', '10', 10, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); SET FOREIGN_KEY_CHECKS = 1; diff --git a/build/database/std/upgrade/upg_sys_dict_type.sql b/build/database/std/upgrade/upg_sys_dict_type.sql index 0dc114a0..ff7850fb 100644 --- a/build/database/std/upgrade/upg_sys_dict_type.sql +++ b/build/database/std/upgrade/upg_sys_dict_type.sql @@ -57,5 +57,6 @@ REPLACE INTO `sys_dict_type` VALUES (71, 'dictType.trace_msg_type', 'trace_msg_t REPLACE INTO `sys_dict_type` VALUES (72, 'dictType.trace_msg_direct', 'trace_msg_direct', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); REPLACE INTO `sys_dict_type` VALUES (73, 'dictType.trace_interfaces', 'trace_interfaces', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); REPLACE INTO `sys_dict_type` VALUES (74, 'dictType.cdr_sip_code_cause', 'cdr_sip_code_cause', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO `sys_dict_type` VALUES (75, 'dictType.cdr_cause_smsc', 'cdr_cause_smsc', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); -- Dump completed on 2025-02-14 15:26:56 diff --git a/build/database/std/upgrade/upg_sys_i18n.sql b/build/database/std/upgrade/upg_sys_i18n.sql index 6041d3f7..41a1967c 100644 --- a/build/database/std/upgrade/upg_sys_i18n.sql +++ b/build/database/std/upgrade/upg_sys_i18n.sql @@ -808,6 +808,17 @@ REPLACE INTO `sys_i18n` VALUES (793, 'job.backup_export_kpi_remark', 'dataType: REPLACE INTO `sys_i18n` VALUES (794, 'menu.system.setting.homeSet', '主页设置', 'Home Set'); REPLACE INTO `sys_i18n` VALUES (795, 'menu.system.setting.reset', '重置', 'Reset'); REPLACE INTO `sys_i18n` VALUES (796, 'menu.system.setting.backup', '备份还原', 'Backup Restore'); +REPLACE INTO `sys_i18n` VALUES (797, 'dictData.cdr_cause_smsc.0', '未知错误', 'Unknown Error'); +REPLACE INTO `sys_i18n` VALUES (798, 'dictData.cdr_cause_smsc.1', '无错误', 'No error'); +REPLACE INTO `sys_i18n` VALUES (799, 'dictData.cdr_cause_smsc.2', '通过SIP传输的消息源数据中SMSC提取参数错误', 'Error in SMSC extract parameter of Message Originating data via SIP'); +REPLACE INTO `sys_i18n` VALUES (800, 'dictData.cdr_cause_smsc.3', '消息来源数据中消息来源的服务中心编号缺失', 'Missing Service Center Number of Message Originating data in Message Originating'); +REPLACE INTO `sys_i18n` VALUES (801, 'dictData.cdr_cause_smsc.4', '未知服务中心号码消息来源数据中的消息来源', 'Unknown Service Center Number of Message Originating data in Message Originating'); +REPLACE INTO `sys_i18n` VALUES (802, 'dictData.cdr_cause_smsc.5', '消息源数据中缺少必需参数源地址(RP-OA)', 'Missing Required Parameter Originating Address(RP-OA) in Message Originating data'); +REPLACE INTO `sys_i18n` VALUES (803, 'dictData.cdr_cause_smsc.6', 'SMSC解码错误或消息来源数据', 'Error in smsc decoding Message Originating data'); +REPLACE INTO `sys_i18n` VALUES (804, 'dictData.cdr_cause_smsc.7', '消息发起路由失败(无法确定如何路由呼叫号码(通过4G/2G))', 'Message Originating routing failed(not know how to route called number(via 4G/2g))'); +REPLACE INTO `sys_i18n` VALUES (804, 'dictData.cdr_cause_smsc.8', 'SMSC 未收到 RP-ACK 数据包(cscf→smsc)', 'SMSC not receive RP-ACK pkg(cscf->smsc)'); +REPLACE INTO `sys_i18n` VALUES (806, 'dictData.cdr_cause_smsc.9', 'SMSC接收错误的RP-ACK数据包(cscf→smsc)', 'SMSC receive wrong RP-ACK pkg(cscf->smsc)'); +REPLACE INTO `sys_i18n` VALUES (807, 'dictData.cdr_cause_smsc.10', 'CAMEL 流程错误', 'CAMEL process error'); REPLACE INTO `sys_i18n` VALUES (2000, 'menu.psap.agent', '座席', 'Agent'); REPLACE INTO `sys_i18n` VALUES (2001, 'menu.psap.agent.callings', '并行话务', 'Calling Information'); diff --git a/src/modules/crontask/processor/backup_export_cdr/backup_export_cdr.go b/src/modules/crontask/processor/backup_export_cdr/backup_export_cdr.go index cd30318c..86152d6e 100644 --- a/src/modules/crontask/processor/backup_export_cdr/backup_export_cdr.go +++ b/src/modules/crontask/processor/backup_export_cdr/backup_export_cdr.go @@ -422,12 +422,13 @@ func (s BackupExportCDRProcessor) exportSMSC(query map[string]string, fileType s "Service Type", "Caller", "Called", - "Result", + "Result Code", + "Result Cause", "Time", }, } // 读取字典数据 CDR 原因码 - dictCDRCauseCode := s.sysDictService.FindByType("cdr_cause_code") + dictCDRSMSCCauseCode := s.sysDictService.FindByType("cdr_cause_smsc") for _, row := range rows { // 解析 JSON 字符串为 map var cdrJSON map[string]interface{} @@ -457,19 +458,20 @@ func (s BackupExportCDRProcessor) exportSMSC(query map[string]string, fileType s caller = v.(string) } // 呼叫结果 0失败,1成功 - callResult := "Fail" + callResult := "FAILED" if v, ok := cdrJSON["result"]; ok && v != nil { resultVal := parse.Number(v) if resultVal == 1 { - callResult = "Success" + callResult = "SUCCESS" } } // 结果原因 - if v, ok := cdrJSON["cause"]; ok && v != nil && callResult == "Fail" { + callCause := "UNKNOW ERROR" + if v, ok := cdrJSON["cause"]; ok && v != nil { cause := fmt.Sprint(v) - for _, v := range dictCDRCauseCode { + for _, v := range dictCDRSMSCCauseCode { if cause == v.DataValue { - callResult = fmt.Sprintf("%s, %s", callResult, i18n.TKey(language, v.DataLabel)) + callCause = i18n.TKey(language, v.DataLabel) break } } @@ -492,6 +494,7 @@ func (s BackupExportCDRProcessor) exportSMSC(query map[string]string, fileType s caller, called, callResult, + callCause, timeStr, }) } @@ -511,11 +514,12 @@ func (s BackupExportCDRProcessor) exportSMSC(query map[string]string, fileType s "D1": "Service Type", "E1": "Caller", "F1": "Called", - "G1": "Result", - "H1": "Time", + "G1": "Result Code", + "H1": "Result Cause", + "I1": "Time", } // 读取字典数据 CDR 原因码 - dictCDRCauseCode := s.sysDictService.FindByType("cdr_cause_code") + dictCDRSMSCCauseCode := s.sysDictService.FindByType("cdr_cause_smsc") // 从第二行开始的数据 dataCells := make([]map[string]any, 0) for i, row := range rows { @@ -548,19 +552,20 @@ func (s BackupExportCDRProcessor) exportSMSC(query map[string]string, fileType s caller = v.(string) } // 呼叫结果 0失败,1成功 - callResult := "Fail" + callResult := "FAILED" if v, ok := cdrJSON["result"]; ok && v != nil { resultVal := parse.Number(v) if resultVal == 1 { - callResult = "Success" + callResult = "SUCCESS" } } // 结果原因 - if v, ok := cdrJSON["cause"]; ok && v != nil && callResult == "Fail" { + callCause := "UNKNOW ERROR" + if v, ok := cdrJSON["cause"]; ok && v != nil { cause := fmt.Sprint(v) - for _, v := range dictCDRCauseCode { + for _, v := range dictCDRSMSCCauseCode { if cause == v.DataValue { - callResult = fmt.Sprintf("%s, %s", callResult, i18n.TKey(language, v.DataLabel)) + callCause = i18n.TKey(language, v.DataLabel) break } } @@ -583,7 +588,8 @@ func (s BackupExportCDRProcessor) exportSMSC(query map[string]string, fileType s "E" + idx: caller, "F" + idx: called, "G" + idx: callResult, - "H" + idx: timeStr, + "H" + idx: callCause, + "I" + idx: timeStr, }) } // 导出数据表格 diff --git a/src/modules/network_data/service/cdr_event.go b/src/modules/network_data/service/cdr_event.go index 06afc70a..f635c687 100644 --- a/src/modules/network_data/service/cdr_event.go +++ b/src/modules/network_data/service/cdr_event.go @@ -63,11 +63,12 @@ func (r CDREvent) ExportSMSC(rows []model.CDREvent, fileName, language string) ( "D1": "Service Type", "E1": "Caller", "F1": "Called", - "G1": "Result", - "H1": "Time", + "G1": "Result Code", + "H1": "Result Cause", + "I1": "Time", } // 读取字典数据 CDR 原因码 - dictCDRCauseCode := sysService.NewSysDictData.FindByType("cdr_cause_code") + dictCDRSMSCCauseCode := sysService.NewSysDictData.FindByType("cdr_cause_smsc") // 从第二行开始的数据 dataCells := make([]map[string]any, 0) for i, row := range rows { @@ -100,19 +101,20 @@ func (r CDREvent) ExportSMSC(rows []model.CDREvent, fileName, language string) ( caller = v.(string) } // 呼叫结果 0失败,1成功 - callResult := "Fail" + callResult := "FAILED" if v, ok := cdrJSON["result"]; ok && v != nil { resultVal := parse.Number(v) if resultVal == 1 { - callResult = "Success" + callResult = "SUCCESS" } } // 结果原因 - if v, ok := cdrJSON["cause"]; ok && v != nil && callResult == "Fail" { + callCause := "UNKNOW ERROR" + if v, ok := cdrJSON["cause"]; ok && v != nil { cause := fmt.Sprint(v) - for _, v := range dictCDRCauseCode { + for _, v := range dictCDRSMSCCauseCode { if cause == v.DataValue { - callResult = fmt.Sprintf("%s, %s", callResult, i18n.TKey(language, v.DataLabel)) + callCause = i18n.TKey(language, v.DataLabel) break } } @@ -135,7 +137,8 @@ func (r CDREvent) ExportSMSC(rows []model.CDREvent, fileName, language string) ( "E" + idx: caller, "F" + idx: called, "G" + idx: callResult, - "H" + idx: timeStr, + "H" + idx: callCause, + "I" + idx: timeStr, }) }