From bc55dfb9d58b7c2b53fb8ec961b6ff8ea7e8ad2c Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Sun, 28 Sep 2025 18:10:35 +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 --- database/install/sys_dict_data0.sql | 11 ++++ database/install/sys_dict_data1_i18n_zh.sql | 12 ++++ database/install/sys_dict_data2_i18n_en.sql | 12 ++++ database/install/sys_dict_type.sql | 1 + database/upgrade/upg_sys_dict_data0.sql | 11 ++++ .../upgrade/upg_sys_dict_data1_i18n_zh.sql | 12 ++++ .../upgrade/upg_sys_dict_data2_i18n_en.sql | 12 ++++ database/upgrade/upg_sys_dict_type.sql | 1 + .../backup_export_cdr/backup_export_cdr.go | 55 +++++++++++-------- src/modules/network_data/controller/ims.go | 8 +-- src/modules/network_data/controller/smsc.go | 25 +++++---- 11 files changed, 121 insertions(+), 39 deletions(-) diff --git a/database/install/sys_dict_data0.sql b/database/install/sys_dict_data0.sql index 951115b1..ef5eb014 100644 --- a/database/install/sys_dict_data0.sql +++ b/database/install/sys_dict_data0.sql @@ -193,6 +193,17 @@ INSERT INTO `sys_dict_data` VALUES (165, 1, 'dictData.sys_user_type.system', 'Sy INSERT INTO `sys_dict_data` VALUES (166, 2, 'dictData.sys_user_type.ldap', 'LDAP', 'sys_user_type', '', 'lime', '1', 'supervisor', 1712720201349, '', 0, ''); INSERT INTO `sys_dict_data` VALUES (167, 3, 'dictData.sys_user_type.smtp', 'SMTP', 'sys_user_type', '', 'magenta', '0', 'supervisor', 1712720201349, '', 0, ''); INSERT INTO `sys_dict_data` VALUES (168, 4, 'dictData.sys_user_type.oauth2', 'OAuth2', 'sys_user_type', '', 'gold', '0', 'supervisor', 1712720201349, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (169, 0, 'dictData.cdr_cause_smsc.0', '0', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (170, 1, 'dictData.cdr_cause_smsc.1', '1', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (171, 2, 'dictData.cdr_cause_smsc.2', '2', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (172, 3, 'dictData.cdr_cause_smsc.3', '3', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (173, 4, 'dictData.cdr_cause_smsc.4', '4', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (174, 5, 'dictData.cdr_cause_smsc.5', '5', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (175, 6, 'dictData.cdr_cause_smsc.6', '6', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (176, 7, 'dictData.cdr_cause_smsc.7', '7', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (177, 8, 'dictData.cdr_cause_smsc.8', '8', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (178, 9, 'dictData.cdr_cause_smsc.9', '9', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (179, 10, 'dictData.cdr_cause_smsc.10', '10', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); -- 多租户 INSERT INTO `sys_dict_data` VALUES (10000, 10000, 'dictData.tenancy.imsi', 'IMSI', 'tenancy_type', NULL, NULL, '1', 'supervisor', 1699350000000, NULL, 0, NULL); diff --git a/database/install/sys_dict_data1_i18n_zh.sql b/database/install/sys_dict_data1_i18n_zh.sql index a35c46ca..d28d630c 100644 --- a/database/install/sys_dict_data1_i18n_zh.sql +++ b/database/install/sys_dict_data1_i18n_zh.sql @@ -772,6 +772,18 @@ INSERT INTO `sys_dict_data` VALUES (2261, 2261, 'job.backup_export_kpi_remark', INSERT INTO `sys_dict_data` VALUES (2262, 2262, 'menu.system.setting.homeSet', '主页设置', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, ''); INSERT INTO `sys_dict_data` VALUES (2263, 2263, 'menu.system.setting.reset', '重置', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, ''); INSERT INTO `sys_dict_data` VALUES (2264, 2264, 'menu.system.setting.backup', '备份还原', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (2265, 2265, 'dictType.cdr_cause_smsc', 'SMSC CDR 响应原因代码类别类型', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (2266, 2266, 'dictData.cdr_cause_smsc.0', 'UNKNOW ERROR', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (2267, 2267, 'dictData.cdr_cause_smsc.1', 'NO ERROR', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (2268, 2268, 'dictData.cdr_cause_smsc.2', 'SIP_MO_DATA_ERROR', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (2269, 2269, 'dictData.cdr_cause_smsc.3', 'SIP_MO_NOT_HAVE_SC', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (2270, 2270, 'dictData.cdr_cause_smsc.4', 'SIP_MO_SC_NOT_KNOWN', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (2271, 2271, 'dictData.cdr_cause_smsc.5', 'SIP_MO_NOT_HAVE_RP_OA', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (2272, 2272, 'dictData.cdr_cause_smsc.6', 'SIP_MO_DECODE_ERROR', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (2273, 2273, 'dictData.cdr_cause_smsc.7', 'SIP_MO_ROUTE_FAILED', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (2274, 2274, 'dictData.cdr_cause_smsc.8', 'SIP_MT_NOT_HAVE_RP_ACK', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (2275, 2275, 'dictData.cdr_cause_smsc.9', 'SIP_MT_RP_ACK_ERROR', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (2276, 2276, 'dictData.cdr_cause_smsc.10', 'SIP_CAMEL_ERROR', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); -- multi-tenancy INSERT INTO `sys_dict_data` VALUES (11000, 11000, 'menu.security.tenant', '租户管理', 'i18n_zh', NULL, NULL, '1', 'supervisor', 1700000000000, NULL, 0, NULL); diff --git a/database/install/sys_dict_data2_i18n_en.sql b/database/install/sys_dict_data2_i18n_en.sql index f9bebbc7..df8c5459 100644 --- a/database/install/sys_dict_data2_i18n_en.sql +++ b/database/install/sys_dict_data2_i18n_en.sql @@ -772,6 +772,18 @@ INSERT INTO `sys_dict_data` VALUES (4261, 4261, 'job.backup_export_kpi_remark', INSERT INTO `sys_dict_data` VALUES (4262, 4262, 'menu.system.setting.homeSet', 'Home Set', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, ''); INSERT INTO `sys_dict_data` VALUES (4263, 4263, 'menu.system.setting.reset', 'Reset', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, ''); INSERT INTO `sys_dict_data` VALUES (4264, 4264, 'menu.system.setting.backup', 'Backup Restore', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (4265, 4265, 'dictType.cdr_cause_smsc', 'SMSC CDR Cause Code Type', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (4266, 4266, 'dictData.cdr_cause_smsc.0', 'Unknown error', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (4267, 4267, 'dictData.cdr_cause_smsc.1', 'No error', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (4268, 4268, 'dictData.cdr_cause_smsc.2', 'Error in SMSC extract parameter of Message Originating data via SIP', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (4269, 4269, 'dictData.cdr_cause_smsc.3', 'Missing Service Center Number of Message Originating data in Message Originating', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (4270, 4270, 'dictData.cdr_cause_smsc.4', 'Unknown Service Center Number of Message Originating data in Message Originating', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (4271, 4271, 'dictData.cdr_cause_smsc.5', 'Missing Required Parameter Originating Address(RP-OA) in Message Originating data', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (4272, 4272, 'dictData.cdr_cause_smsc.6', 'Error in smsc decoding Message Originating data', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (4273, 4273, 'dictData.cdr_cause_smsc.7', 'Message Originating routing failed(not know how to route called number(via 4G/2g))', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (4274, 4274, 'dictData.cdr_cause_smsc.8', 'SMSC not receive RP-ACK pkg(cscf->smsc)', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (4275, 4275, 'dictData.cdr_cause_smsc.9', 'SMSC receive wrong RP-ACK pkg(cscf->smsc)', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +INSERT INTO `sys_dict_data` VALUES (4276, 4276, 'dictData.cdr_cause_smsc.10', 'CAMEL process error', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); -- 多租户 INSERT INTO `sys_dict_data` VALUES (14000, 14000, 'menu.security.tenant', 'Tenant Management', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, ''); diff --git a/database/install/sys_dict_type.sql b/database/install/sys_dict_type.sql index b55730c2..72360f63 100644 --- a/database/install/sys_dict_type.sql +++ b/database/install/sys_dict_type.sql @@ -60,6 +60,7 @@ INSERT INTO `sys_dict_type` VALUES (124, 'dictType.cdr_cause_code', 'cdr_cause_c INSERT INTO `sys_dict_type` VALUES (125, 'dictType.trace_msg_type', 'trace_msg_type', '1', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_type` VALUES (126, 'dictType.trace_msg_direct', 'trace_msg_direct', '1', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_type` VALUES (127, 'dictType.trace_interfaces', 'trace_interfaces', '1', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_type` VALUES (128, 'dictType.cdr_cause_smsc', 'cdr_cause_smsc', '1', 'supervisor', 1725877564156, '', 0, ''); -- Multi-tenancy INSERT INTO `sys_dict_type` VALUES (10000, 'dictType.tenancy_type', 'tenancy_type', '1', 'supervisor', 1702020000000, '', 0, ''); diff --git a/database/upgrade/upg_sys_dict_data0.sql b/database/upgrade/upg_sys_dict_data0.sql index 613f250e..09f5727a 100644 --- a/database/upgrade/upg_sys_dict_data0.sql +++ b/database/upgrade/upg_sys_dict_data0.sql @@ -193,6 +193,17 @@ REPLACE INTO `sys_dict_data` VALUES (165, 1, 'dictData.sys_user_type.system', 'S REPLACE INTO `sys_dict_data` VALUES (166, 2, 'dictData.sys_user_type.ldap', 'LDAP', 'sys_user_type', '', 'lime', '1', 'supervisor', 1712720201349, '', 0, ''); REPLACE INTO `sys_dict_data` VALUES (167, 3, 'dictData.sys_user_type.smtp', 'SMTP', 'sys_user_type', '', 'magenta', '0', 'supervisor', 1712720201349, '', 0, ''); REPLACE INTO `sys_dict_data` VALUES (168, 4, 'dictData.sys_user_type.oauth2', 'OAuth2', 'sys_user_type', '', 'gold', '0', 'supervisor', 1712720201349, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (169, 0, 'dictData.cdr_cause_smsc.0', '0', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (170, 1, 'dictData.cdr_cause_smsc.1', '1', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (171, 2, 'dictData.cdr_cause_smsc.2', '2', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (172, 3, 'dictData.cdr_cause_smsc.3', '3', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (173, 4, 'dictData.cdr_cause_smsc.4', '4', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (174, 5, 'dictData.cdr_cause_smsc.5', '5', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (175, 6, 'dictData.cdr_cause_smsc.6', '6', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (176, 7, 'dictData.cdr_cause_smsc.7', '7', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (177, 8, 'dictData.cdr_cause_smsc.8', '8', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (178, 9, 'dictData.cdr_cause_smsc.9', '9', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (179, 10, 'dictData.cdr_cause_smsc.10', '10', 'cdr_cause_smsc', '', '', '1', 'supervisor', 1712720201349, '', 0, ''); -- 指定记录条件更新 diff --git a/database/upgrade/upg_sys_dict_data1_i18n_zh.sql b/database/upgrade/upg_sys_dict_data1_i18n_zh.sql index 40ac3f3b..ac5d9262 100644 --- a/database/upgrade/upg_sys_dict_data1_i18n_zh.sql +++ b/database/upgrade/upg_sys_dict_data1_i18n_zh.sql @@ -779,6 +779,18 @@ REPLACE INTO `sys_dict_data` VALUES (2261, 2261, 'job.backup_export_kpi_remark', REPLACE INTO `sys_dict_data` VALUES (2262, 2262, 'menu.system.setting.homeSet', '主页设置', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, ''); REPLACE INTO `sys_dict_data` VALUES (2263, 2263, 'menu.system.setting.reset', '重置', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, ''); REPLACE INTO `sys_dict_data` VALUES (2264, 2264, 'menu.system.setting.backup', '备份还原', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (2265, 2265, 'dictType.cdr_cause_smsc', 'SMSC CDR 响应原因代码类别类型', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (2266, 2266, 'dictData.cdr_cause_smsc.0', 'UNKNOW ERROR', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (2267, 2267, 'dictData.cdr_cause_smsc.1', 'NO ERROR', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (2268, 2268, 'dictData.cdr_cause_smsc.2', 'SIP_MO_DATA_ERROR', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (2269, 2269, 'dictData.cdr_cause_smsc.3', 'SIP_MO_NOT_HAVE_SC', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (2270, 2270, 'dictData.cdr_cause_smsc.4', 'SIP_MO_SC_NOT_KNOWN', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (2271, 2271, 'dictData.cdr_cause_smsc.5', 'SIP_MO_NOT_HAVE_RP_OA', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (2272, 2272, 'dictData.cdr_cause_smsc.6', 'SIP_MO_DECODE_ERROR', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (2273, 2273, 'dictData.cdr_cause_smsc.7', 'SIP_MO_ROUTE_FAILED', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (2274, 2274, 'dictData.cdr_cause_smsc.8', 'SIP_MT_NOT_HAVE_RP_ACK', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (2275, 2275, 'dictData.cdr_cause_smsc.9', 'SIP_MT_RP_ACK_ERROR', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (2276, 2276, 'dictData.cdr_cause_smsc.10', 'SIP_CAMEL_ERROR', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); -- multi-tenancy REPLACE INTO `sys_dict_data` VALUES (11000, 11000, 'menu.security.tenant', '租户管理', 'i18n_zh', NULL, NULL, '1', 'supervisor', 1700000000000, NULL, 0, NULL); diff --git a/database/upgrade/upg_sys_dict_data2_i18n_en.sql b/database/upgrade/upg_sys_dict_data2_i18n_en.sql index 50f321ff..ded525c8 100644 --- a/database/upgrade/upg_sys_dict_data2_i18n_en.sql +++ b/database/upgrade/upg_sys_dict_data2_i18n_en.sql @@ -780,6 +780,18 @@ REPLACE INTO `sys_dict_data` VALUES (4261, 4261, 'job.backup_export_kpi_remark', REPLACE INTO `sys_dict_data` VALUES (4262, 4262, 'menu.system.setting.homeSet', 'Home Set', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, ''); REPLACE INTO `sys_dict_data` VALUES (4263, 4263, 'menu.system.setting.reset', 'Reset', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, ''); REPLACE INTO `sys_dict_data` VALUES (4264, 4264, 'menu.system.setting.backup', 'Backup Restore', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (4265, 4265, 'dictType.cdr_cause_smsc', 'SMSC CDR Cause Code Type', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (4266, 4266, 'dictData.cdr_cause_smsc.0', 'Unknown error', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (4267, 4267, 'dictData.cdr_cause_smsc.1', 'No error', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (4268, 4268, 'dictData.cdr_cause_smsc.2', 'Error in SMSC extract parameter of Message Originating data via SIP', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (4269, 4269, 'dictData.cdr_cause_smsc.3', 'Missing Service Center Number of Message Originating data in Message Originating', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (4270, 4270, 'dictData.cdr_cause_smsc.4', 'Unknown Service Center Number of Message Originating data in Message Originating', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (4271, 4271, 'dictData.cdr_cause_smsc.5', 'Missing Required Parameter Originating Address(RP-OA) in Message Originating data', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (4272, 4272, 'dictData.cdr_cause_smsc.6', 'Error in smsc decoding Message Originating data', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (4273, 4273, 'dictData.cdr_cause_smsc.7', 'Message Originating routing failed(not know how to route called number(via 4G/2g))', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (4274, 4274, 'dictData.cdr_cause_smsc.8', 'SMSC not receive RP-ACK pkg(cscf->smsc)', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (4275, 4275, 'dictData.cdr_cause_smsc.9', 'SMSC receive wrong RP-ACK pkg(cscf->smsc)', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); +REPLACE INTO `sys_dict_data` VALUES (4276, 4276, 'dictData.cdr_cause_smsc.10', 'CAMEL process error', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, ''); -- 多租户 REPLACE INTO `sys_dict_data` VALUES (14000, 14000, 'menu.security.tenant', 'Tenant Management', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, ''); diff --git a/database/upgrade/upg_sys_dict_type.sql b/database/upgrade/upg_sys_dict_type.sql index 6d7290de..e433930c 100644 --- a/database/upgrade/upg_sys_dict_type.sql +++ b/database/upgrade/upg_sys_dict_type.sql @@ -58,6 +58,7 @@ REPLACE INTO `sys_dict_type` VALUES (124, 'dictType.cdr_cause_code', 'cdr_cause_ REPLACE INTO `sys_dict_type` VALUES (125, 'dictType.trace_msg_type', 'trace_msg_type', '1', 'system', 1699348237468, 'system', 1699348237468, ''); REPLACE INTO `sys_dict_type` VALUES (126, 'dictType.trace_msg_direct', 'trace_msg_direct', '1', 'system', 1699348237468, 'system', 1699348237468, ''); REPLACE INTO `sys_dict_type` VALUES (127, 'dictType.trace_interfaces', 'trace_interfaces', '1', 'system', 1699348237468, 'system', 1699348237468, ''); +REPLACE INTO `sys_dict_type` VALUES (128, 'dictType.cdr_cause_smsc', 'cdr_cause_smsc', '1', 'supervisor', 1725877564156, '', 0, ''); -- 多租户 REPLACE INTO `sys_dict_type` VALUES (10000, 'dictType.tenancy_type', 'tenancy_type', '1', 'supervisor', 1702020000000, '', 0, ''); 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 3fe7ed8e..6de71d8c 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 @@ -434,13 +434,14 @@ func (s BackupExportCDRProcessor) exportSMSC(query neDataModel.CDREventSMSCQuery "Service Type", "Caller", "Called", - "Result", + "Result Code", + "Result Cause", "Time", "Tenant Name", // for multi-tenancy }, } // 读取字典数据 CDR 原因码 - dictCDRCauseCode := s.sysDictService.SelectDictDataByType("cdr_cause_code") + dictCDRSMSCCauseCode := s.sysDictService.SelectDictDataByType("cdr_cause_smsc") for _, row := range rows { // 解析 JSON 字符串为 map var cdrJSON map[string]interface{} @@ -470,19 +471,20 @@ func (s BackupExportCDRProcessor) exportSMSC(query neDataModel.CDREventSMSCQuery 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.DictValue { - callResult = fmt.Sprintf("%s, %s", callResult, i18n.TKey(language, v.DictLabel)) + callCause = i18n.TKey(language, v.DictLabel) break } } @@ -505,6 +507,7 @@ func (s BackupExportCDRProcessor) exportSMSC(query neDataModel.CDREventSMSCQuery caller, called, callResult, + callCause, timeStr, row.TenantName, }) @@ -525,12 +528,13 @@ func (s BackupExportCDRProcessor) exportSMSC(query neDataModel.CDREventSMSCQuery "D1": "Service Type", "E1": "Caller", "F1": "Called", - "G1": "Result", - "H1": "Time", - "I1": "Tenant Name", // for multi-tenancy + "G1": "Result Code", + "H1": "Result Cause", + "I1": "Time", + "J1": "Tenant Name", // for multi-tenancy } // 读取字典数据 CDR 原因码 - dictCDRCauseCode := s.sysDictService.SelectDictDataByType("cdr_cause_code") + // dictCDRCauseCode := s.sysDictService.SelectDictDataByType("cdr_cause_code") // 从第二行开始的数据 dataCells := make([]map[string]any, 0) for i, row := range rows { @@ -563,23 +567,25 @@ func (s BackupExportCDRProcessor) exportSMSC(query neDataModel.CDREventSMSCQuery caller = v.(string) } // 呼叫结果 0失败,1成功 - callResult := "Fail" + callResult := "500 Internal Server Error" + callCause := "Unknown Error" if v, ok := cdrJSON["result"]; ok && v != nil { resultVal := parse.Number(v) if resultVal == 1 { - callResult = "Success" + callResult = "200 OK" + callCause = "Normal Send" } } // 结果原因 - if v, ok := cdrJSON["cause"]; ok && v != nil && callResult == "Fail" { - cause := fmt.Sprint(v) - for _, v := range dictCDRCauseCode { - if cause == v.DictValue { - callResult = fmt.Sprintf("%s, %s", callResult, i18n.TKey(language, v.DictLabel)) - break - } - } - } + // if v, ok := cdrJSON["cause"]; ok && v != nil && callResult == "Fail" { + // cause := fmt.Sprint(v) + // for _, v := range dictCDRCauseCode { + // if cause == v.DictValue { + // callResult = fmt.Sprintf("%s, %s", callResult, i18n.TKey(language, v.DictLabel)) + // break + // } + // } + // } // 取时间 timeStr := "" if v, ok := cdrJSON["updateTime"]; ok && v != nil { @@ -598,8 +604,9 @@ func (s BackupExportCDRProcessor) exportSMSC(query neDataModel.CDREventSMSCQuery "E" + idx: caller, "F" + idx: called, "G" + idx: callResult, - "H" + idx: timeStr, - "I" + idx: row.TenantName, + "H" + idx: callCause, + "I" + idx: timeStr, + "J" + idx: row.TenantName, }) } // 导出数据表格 diff --git a/src/modules/network_data/controller/ims.go b/src/modules/network_data/controller/ims.go index 78a0bd6d..78571296 100644 --- a/src/modules/network_data/controller/ims.go +++ b/src/modules/network_data/controller/ims.go @@ -169,7 +169,7 @@ func (s *IMSController) CDRExport(c *gin.Context) { "G1": "Duration", "H1": "Result Code", "I1": "Result Cause", - "J1": "MOS Average", + "J1": "MOS", "K1": "Call Connection Time", "L1": "Call Start Time", "M1": "Hangup Time", @@ -286,9 +286,9 @@ func (s *IMSController) CDRExport(c *gin.Context) { "F" + idx: called, "G" + idx: duration, "H" + idx: callResult, - "I" + idx: mosAverage, - "J" + idx: callConnectionTime, - "K" + idx: callCause, + "I" + idx: callCause, + "J" + idx: mosAverage, + "K" + idx: callConnectionTime, "L" + idx: seizureTimeStr, "M" + idx: releaseTimeStr, "N" + idx: tenantName, diff --git a/src/modules/network_data/controller/smsc.go b/src/modules/network_data/controller/smsc.go index 125b6ca7..f90bacea 100644 --- a/src/modules/network_data/controller/smsc.go +++ b/src/modules/network_data/controller/smsc.go @@ -160,12 +160,13 @@ func (s *SMSCController) CDRExport(c *gin.Context) { "C1": "Service Type", "D1": "Caller", "E1": "Called", - "F1": "Result", - "G1": "Time", - "H1": "Tenant Name", // for multi-tenancy + "F1": "Result Code", + "G1": "Result Cause", + "H1": "Time", + "I1": "Tenant Name", // for multi-tenancy } // 读取字典数据 CDR 原因码 - dictCDRCauseCode := sysService.NewSysDictData.SelectDictDataByType("cdr_cause_code") + dictCDRSMSCCauseCode := sysService.NewSysDictData.SelectDictDataByType("cdr_cause_smsc") // 从第二行开始的数据 dataCells := make([]map[string]any, 0) for i, row := range rows { @@ -198,19 +199,20 @@ func (s *SMSCController) CDRExport(c *gin.Context) { 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 := "Unknown Error" + if v, ok := cdrJSON["cause"]; ok && v != nil { cause := fmt.Sprint(v) - for _, v := range dictCDRCauseCode { + for _, v := range dictCDRSMSCCauseCode { if cause == v.DictValue { - callResult = fmt.Sprintf("%s, %s", callResult, i18n.TKey(language, v.DictLabel)) + callCause = i18n.TKey(language, v.DictLabel) break } } @@ -234,8 +236,9 @@ func (s *SMSCController) CDRExport(c *gin.Context) { "D" + idx: caller, "E" + idx: called, "F" + idx: callResult, - "G" + idx: timeStr, - "H" + idx: tenantName, + "G" + idx: callCause, + "H" + idx: timeStr, + "I" + idx: tenantName, }) }