From bd94b906a06f255f426034acab8caa6cbdbd4cae Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Tue, 29 Apr 2025 11:56:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20IMS=E5=AF=BC=E5=87=BA=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=91=BC=E5=8F=AB=E7=BB=93=E6=9E=9C=E5=92=8C?= =?UTF-8?q?=E5=8E=9F=E5=9B=A0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- database/install/sys_config.sql | 2 +- database/install/sys_dict_data.sql | 53 +++-- database/install/sys_dict_type.sql | 1 + database/install/sys_i18n.sql | 62 ++++-- database/omc_db.sqlite | Bin 64114688 -> 64114688 bytes database/upgrade/upg_20250429.sql | 182 ++++++++++++++++++ .../processor/exportTable/exportTable.go | 23 ++- .../network_data/service/cdr_event_ims.go | 46 +++-- 8 files changed, 316 insertions(+), 53 deletions(-) create mode 100644 database/upgrade/upg_20250429.sql diff --git a/database/install/sys_config.sql b/database/install/sys_config.sql index 00b80262..b6952836 100644 --- a/database/install/sys_config.sql +++ b/database/install/sys_config.sql @@ -33,7 +33,7 @@ INSERT INTO `sys_config` VALUES (6, 'config.sys.officialUrl', 'sys.officialUrl', INSERT INTO `sys_config` VALUES (7, 'config.sys.helpDoc', 'sys.helpDoc', '/static/helpDoc/{language}_doc.pdf', 'Y', '0', 'system', 1704960008300, 'system', 1704960008300, 'config.sys.helpDocRemark'); INSERT INTO `sys_config` VALUES (8, 'sys.account.captchaType', 'sys.account.captchaType', 'math', 'Y', '0', 'system', 1704960008300, 'system', 1704960008300, 'sys.account.captchaTypeRemark'); INSERT INTO `sys_config` VALUES (21, 'config.monitor.sysResource.storeDays', 'monitor.sysResource.storeDays', '7', 'Y', '0', 'system', 1704960008300, 'system', 1704960008300, 'config.monitor.sysResource.storeDaysRemark'); -INSERT INTO `sys_config` VALUES (22, 'config.sys.logo.type', 'sys.logo.type', 'icon', 'Y', '0', 'system', 1704960008300, 'system', 1704960008300, 'config.sys.logo.typeRemark'); +INSERT INTO `sys_config` VALUES (22, 'config.sys.logo.type', 'sys.logo.type', 'brand', 'Y', '0', 'system', 1704960008300, 'system', 1704960008300, 'config.sys.logo.typeRemark'); INSERT INTO `sys_config` VALUES (23, 'config.sys.logo.filePathIcon', 'sys.logo.filePathIcon', '/static/logo/{language}_icon.png', 'Y', '0', 'system', 1704960008300, 'system', 1704960008300, 'config.sys.logo.filePathIconRemark'); INSERT INTO `sys_config` VALUES (24, 'config.sys.logo.filePathBrand', 'sys.logo.filePathBrand', '/static/logo/{language}_brand.png', 'Y', '0', 'system', 1704960008300, 'system', 1704960008300, 'config.sys.logo.filePathBrandRemark'); INSERT INTO `sys_config` VALUES (25, 'config.sys.loginBackground', 'sys.loginBackground', '#', 'Y', '0', 'system', 1704960008300, 'system', 1704960008300, 'config.sys.loginBackgroundRemark'); diff --git a/database/install/sys_dict_data.sql b/database/install/sys_dict_data.sql index f81cc85a..17bc596e 100644 --- a/database/install/sys_dict_data.sql +++ b/database/install/sys_dict_data.sql @@ -81,9 +81,9 @@ INSERT INTO `sys_dict_data` VALUES (52, 'active_alarm_severity', 'dictData.activ INSERT INTO `sys_dict_data` VALUES (53, 'index_status', 'dictType.index_status.normal', 'normal', 1, '#91cc75', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_data` VALUES (54, 'index_status', 'dictType.index_status.abnormal', 'abnormal', 2, '#ee6666', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_data` VALUES (55, 'cdr_sip_code', 'dictData.cdr_sip_code.200', '200', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); -INSERT INTO `sys_dict_data` VALUES (56, 'cdr_sip_code', 'dictData.cdr_sip_code.403', '403', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); -INSERT INTO `sys_dict_data` VALUES (57, 'cdr_sip_code', 'dictData.cdr_sip_code.408', '408', 8, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); -INSERT INTO `sys_dict_data` VALUES (58, 'cdr_sip_code', 'dictData.cdr_sip_code.500', '500', 10, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (56, 'cdr_sip_code', 'dictData.cdr_sip_code.403', '403', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (57, 'cdr_sip_code', 'dictData.cdr_sip_code.408', '408', 13, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (58, 'cdr_sip_code', 'dictData.cdr_sip_code.500', '500', 16, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_data` VALUES (59, 'cdr_call_type', 'dictData.cdr_call_type.audio', 'audio', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_data` VALUES (60, 'cdr_call_type', 'dictData.cdr_call_type.video', 'video', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_data` VALUES (61, 'ue_auth_code', 'dictData.ue_auth_code.200', '200', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); @@ -100,16 +100,16 @@ INSERT INTO `sys_dict_data` VALUES (71, 'ue_event_type', 'dictData.ue_event_type INSERT INTO `sys_dict_data` VALUES (72, 'ue_event_cm_state', 'dictData.ue_event_cm_state.connected', '1', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_data` VALUES (73, 'ue_event_cm_state', 'dictData.ue_event_cm_state.idle', '2', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_data` VALUES (74, 'ue_event_cm_state', 'dictData.ue_event_cm_state.inactive', '3', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); -INSERT INTO `sys_dict_data` VALUES (75, 'cdr_sip_code', 'dictData.cdr_sip_code.404', '404', 4, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); -INSERT INTO `sys_dict_data` VALUES (76, 'cdr_sip_code', 'dictData.cdr_sip_code.487', '487', 6, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); -INSERT INTO `sys_dict_data` VALUES (77, 'cdr_sip_code', 'dictData.cdr_sip_code.503', '503', 12, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); -INSERT INTO `sys_dict_data` VALUES (78, 'cdr_sip_code', 'dictData.cdr_sip_code.504', '504', 13, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); -INSERT INTO `sys_dict_data` VALUES (79, 'cdr_sip_code', 'dictData.cdr_sip_code.603', '603', 15, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); -INSERT INTO `sys_dict_data` VALUES (80, 'cdr_sip_code', 'dictData.cdr_sip_code.606', '606', 16, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); -INSERT INTO `sys_dict_data` VALUES (81, 'cdr_sip_code', 'dictData.cdr_sip_code.202', '202', 17, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (75, 'cdr_sip_code', 'dictData.cdr_sip_code.404', '404', 6, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (76, 'cdr_sip_code', 'dictData.cdr_sip_code.487', '487', 12, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (77, 'cdr_sip_code', 'dictData.cdr_sip_code.503', '503', 17, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (78, 'cdr_sip_code', 'dictData.cdr_sip_code.504', '504', 18, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (79, 'cdr_sip_code', 'dictData.cdr_sip_code.603', '603', 21, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (80, 'cdr_sip_code', 'dictData.cdr_sip_code.606', '606', 22, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (81, 'cdr_sip_code', 'dictData.cdr_sip_code.202', '202', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_data` VALUES (82, 'cdr_call_type', 'dictData.cdr_call_type.sms', 'sms', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); -INSERT INTO `sys_dict_data` VALUES (83, 'cdr_sip_code', 'dictData.cdr_sip_code.488', '488', 9, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); -INSERT INTO `sys_dict_data` VALUES (84, 'cdr_sip_code', 'dictData.cdr_sip_code.0', '0', 0, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (83, 'cdr_sip_code', 'dictData.cdr_sip_code.488', '488', 14, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (84, 'cdr_sip_code', 'dictData.cdr_sip_code.0', '0', 99, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_data` VALUES (85, 'ne_host_type', 'dictData.ne_host_type.ssh', 'ssh', 0, '', 'blue', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_data` VALUES (86, 'ne_host_type', 'dictData.ne_host_type.telnet', 'telnet', 1, '', 'purple', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_data` VALUES (87, 'ne_host_groupId', 'dictData.ne_host_groupId.0', '0', 0, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); @@ -145,6 +145,35 @@ INSERT INTO `sys_dict_data` VALUES (116, 'cdr_cause_code', 'dictData.cdr_cause_c INSERT INTO `sys_dict_data` VALUES (117, 'cdr_cause_code', 'dictData.cdr_cause_code.42', '42', 22, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_data` VALUES (118, 'cdr_cause_code', 'dictData.cdr_cause_code.47', '47', 23, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_data` VALUES (119, 'cdr_cause_code', 'dictData.cdr_cause_code.50', '50', 30, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (139, 'cdr_sip_code', 'dictData.cdr_sip_code.302', '302', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (140, 'cdr_sip_code', 'dictData.cdr_sip_code.402', '402', 4, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (141, 'cdr_sip_code', 'dictData.cdr_sip_code.480', '480', 7, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (142, 'cdr_sip_code', 'dictData.cdr_sip_code.481', '481', 8, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (143, 'cdr_sip_code', 'dictData.cdr_sip_code.482', '482', 9, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (144, 'cdr_sip_code', 'dictData.cdr_sip_code.486', '486', 11, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (145, 'cdr_sip_code', 'dictData.cdr_sip_code.489', '489', 15, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (146, 'cdr_sip_code', 'dictData.cdr_sip_code.580', '580', 19, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (147, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.0', '0', 99, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (148, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.200', '200', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (149, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.202', '202', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (150, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.302', '302', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (151, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.402', '402', 4, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (152, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.403', '403', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (153, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.404', '404', 6, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (154, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.480', '480', 7, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (155, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.481', '481', 8, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (156, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.482', '482', 9, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (157, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.486', '486', 11, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (158, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.487', '487', 12, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (159, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.408', '408', 13, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (160, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.488', '488', 14, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (161, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.489', '489', 15, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (162, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.500', '500', 16, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (163, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.503', '503', 17, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (164, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.504', '504', 18, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (165, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.580', '580', 19, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (166, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.603', '603', 21, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_data` VALUES (167, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.606', '606', 22, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); SET FOREIGN_KEY_CHECKS = 1; diff --git a/database/install/sys_dict_type.sql b/database/install/sys_dict_type.sql index d0b7ce89..6c6ffc74 100644 --- a/database/install/sys_dict_type.sql +++ b/database/install/sys_dict_type.sql @@ -52,6 +52,7 @@ INSERT INTO `sys_dict_type` VALUES (67, 'dictType.ne_host_cmd_groupId', 'ne_host INSERT INTO `sys_dict_type` VALUES (68, 'dictType.ne_info_status', 'ne_info_status', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_type` VALUES (69, 'dictType.ne_license_status', 'ne_license_status', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); INSERT INTO `sys_dict_type` VALUES (70, 'dictType.cdr_cause_code', 'cdr_cause_code', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); +INSERT INTO `sys_dict_type` VALUES (71, 'dictType.cdr_sip_code_cause', 'cdr_sip_code_cause', '1', '0', 'system', 1699348237468, 'system', 1699348237468, ''); UNLOCK TABLES; diff --git a/database/install/sys_i18n.sql b/database/install/sys_i18n.sql index 51920161..d9c94079 100644 --- a/database/install/sys_i18n.sql +++ b/database/install/sys_i18n.sql @@ -535,14 +535,14 @@ INSERT INTO `sys_i18n` VALUES (512, '0', 'system', 1699348237468, 'system', 1699 INSERT INTO `sys_i18n` VALUES (513, '0', 'system', 1699348237468, 'system', 1699348237468, 'menu.dashboard', '仪表盘', 'Dashboard'); INSERT INTO `sys_i18n` VALUES (514, '0', 'system', 1699348237468, 'system', 1699348237468, 'menu.dashboard.overview', '总览', 'Overview'); INSERT INTO `sys_i18n` VALUES (515, '0', 'system', 1699348237468, 'system', 1699348237468, 'menu.dashboard.imsCDR', '语音话单', 'Voice CDR'); -INSERT INTO `sys_i18n` VALUES (516, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictType.cdr_sip_code', 'CDR SIP响应代码类别类型', 'CDR SIP Response Code Category Type'); -INSERT INTO `sys_i18n` VALUES (517, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictType.cdr_call_type', 'CDR 呼叫类型', 'CDR Call Type'); +INSERT INTO `sys_i18n` VALUES (516, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictType.cdr_sip_code', 'IMS-Voice-SIP响应代码类别类型', 'IMS-Voice-SIP Response Code Category Type'); +INSERT INTO `sys_i18n` VALUES (517, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictType.cdr_call_type', 'IMS-呼叫类型', 'IMS-Call Type'); INSERT INTO `sys_i18n` VALUES (518, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictType.ue_auth_code', 'UE 事件认证代码类型', 'UE Event Authentication Code Type'); INSERT INTO `sys_i18n` VALUES (519, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictType.ue_event_type', 'UE 事件类型', 'UE Event Type'); -INSERT INTO `sys_i18n` VALUES (520, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.200', '正常挂机', 'Normal Cleaning'); -INSERT INTO `sys_i18n` VALUES (521, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.403', '被禁止的', 'Banned'); -INSERT INTO `sys_i18n` VALUES (522, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.408', '请求超时', 'Request Timeout'); -INSERT INTO `sys_i18n` VALUES (523, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.500', '服务器内部错误', 'Internal Server Error'); +INSERT INTO `sys_i18n` VALUES (520, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.200', '200 正常通话', '200 OK'); +INSERT INTO `sys_i18n` VALUES (521, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.403', '403 禁止访问', '403 Forbidden'); +INSERT INTO `sys_i18n` VALUES (522, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.408', '408 请求超时', '408 Request Timeout'); +INSERT INTO `sys_i18n` VALUES (523, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.500', '500 内部服务器错误', '500 Internal Server Error'); INSERT INTO `sys_i18n` VALUES (524, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_call_type.audio', '语音', 'Voice'); INSERT INTO `sys_i18n` VALUES (525, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_call_type.video', '视频', 'Video'); INSERT INTO `sys_i18n` VALUES (526, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.ue_auth_code.200', '成功', 'Success'); @@ -560,12 +560,12 @@ INSERT INTO `sys_i18n` VALUES (537, '0', 'system', 1699348237468, 'system', 1699 INSERT INTO `sys_i18n` VALUES (538, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.ue_event_cm_state.connected', '连接', 'Connected'); INSERT INTO `sys_i18n` VALUES (539, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.ue_event_cm_state.idle', '空闲', 'Idle'); INSERT INTO `sys_i18n` VALUES (540, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.ue_event_cm_state.inactive', '不活动', 'Inactive'); -INSERT INTO `sys_i18n` VALUES (541, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.404', '未找到', 'Not Found'); -INSERT INTO `sys_i18n` VALUES (542, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.487', '请求终止', 'Request Terminated'); -INSERT INTO `sys_i18n` VALUES (543, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.503', '服务不可用', 'Service Unavailable'); -INSERT INTO `sys_i18n` VALUES (544, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.504', '服务器超时', 'Server Time Out'); -INSERT INTO `sys_i18n` VALUES (545, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.603', '拒绝', 'Decline'); -INSERT INTO `sys_i18n` VALUES (546, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.606', '不可接受', 'Not Acceptable'); +INSERT INTO `sys_i18n` VALUES (541, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.404', '404 找不到', '404 Not Found'); +INSERT INTO `sys_i18n` VALUES (542, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.487', '487 请求已终止', '487 Request Terminated'); +INSERT INTO `sys_i18n` VALUES (543, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.503', '503 服务不可用', '503 Service Unavailable'); +INSERT INTO `sys_i18n` VALUES (544, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.504', '504 服务器超时', '504 Server Timeout'); +INSERT INTO `sys_i18n` VALUES (545, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.603', '603 下降', '603 Decline'); +INSERT INTO `sys_i18n` VALUES (546, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.606', '606 不可接受', '606 Not Acceptable'); INSERT INTO `sys_i18n` VALUES (547, '0', 'system', 1699348237468, 'system', 1699348237468, 'cache.name.user', '登录用户', 'Login User'); INSERT INTO `sys_i18n` VALUES (548, '0', 'system', 1699348237468, 'system', 1699348237468, 'cache.name.sys_config', '参数管理', 'Parameters Management'); INSERT INTO `sys_i18n` VALUES (549, '0', 'system', 1699348237468, 'system', 1699348237468, 'cache.name.sys_dict', '字典管理', 'Dictionary Management'); @@ -576,9 +576,9 @@ INSERT INTO `sys_i18n` VALUES (553, '0', 'system', 1699348237468, 'system', 1699 INSERT INTO `sys_i18n` VALUES (554, '0', 'system', 1699348237468, 'system', 1699348237468, 'cache.name.ne_info', '网元信息管理', 'NE Info Management'); INSERT INTO `sys_i18n` VALUES (555, '0', 'system', 1699348237468, 'system', 1699348237468, 'cache.name.ne_data', '网元数据管理', 'NE Data Management'); INSERT INTO `sys_i18n` VALUES (556, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_call_type.sms', '短信', 'SMS'); -INSERT INTO `sys_i18n` VALUES (557, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.202', '已接受', 'Accepted'); -INSERT INTO `sys_i18n` VALUES (558, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.488', '这里不能接受', 'Not Aceptable Here'); -INSERT INTO `sys_i18n` VALUES (559, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.0', '其他', 'Other'); +INSERT INTO `sys_i18n` VALUES (557, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.202', '202 已接受', '202 Accepted'); +INSERT INTO `sys_i18n` VALUES (558, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.488', '488 这里不接受', '488 Not Acceptable Here'); +INSERT INTO `sys_i18n` VALUES (559, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.0', '0 原因不明', '0 Unknown Reason'); INSERT INTO `sys_i18n` VALUES (560, '0', 'system', 1699348237468, 'system', 1699348237468, 'log.operate.title.ws', 'WS会话', 'WS Sessions'); INSERT INTO `sys_i18n` VALUES (561, '0', 'system', 1699348237468, 'system', 1699348237468, 'log.operate.title.neHost', '网元主机', 'NE Host'); INSERT INTO `sys_i18n` VALUES (562, '0', 'system', 1699348237468, 'system', 1699348237468, 'neHost.noData', '没有可访问主机信息数据!', 'There is no accessible host information data!'); @@ -622,7 +622,7 @@ INSERT INTO `sys_i18n` VALUES (599, '0', 'system', 1699348237468, 'system', 1699 INSERT INTO `sys_i18n` VALUES (600, '0', 'system', 1699348237468, 'system', 1699348237468, 'menu.ne.neSoftware', '网元软件包', 'NE Software'); INSERT INTO `sys_i18n` VALUES (601, '0', 'system', 1699348237468, 'system', 1699348237468, 'log.operate.title.neSoftware', '网元软件包', 'NE Software'); INSERT INTO `sys_i18n` VALUES (602, '0', 'system', 1699348237468, 'system', 1699348237468, 'log.operate.title.neVersion', '网元版本', 'NE Version'); -INSERT INTO `sys_i18n` VALUES (603, '0', 'system', 1699348237468, 'system', 1699348237468, 'menu.ne.neVersion', '网元版本', 'Ne Version'); +INSERT INTO `sys_i18n` VALUES (603, '0', 'system', 1699348237468, 'system', 1699348237468, 'menu.ne.neVersion', '网元版本', 'NE Version'); INSERT INTO `sys_i18n` VALUES (604, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictType.ne_license_status', '网元许可状态', 'NE License Status'); INSERT INTO `sys_i18n` VALUES (605, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.ne_license_status.0', '无效', 'Invalid'); INSERT INTO `sys_i18n` VALUES (606, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.ne_license_status.1', '有效', 'Valid'); @@ -691,5 +691,35 @@ INSERT INTO `sys_i18n` VALUES (668, '0', 'system', 1699348237468, 'system', 1699 INSERT INTO `sys_i18n` VALUES (669, '0', 'system', 1699348237468, 'system', 1699348237468, 'cache.name.i18n', '国际化语言管理', 'Internationalized Language Management'); INSERT INTO `sys_i18n` VALUES (670, '0', 'system', 1699348237468, 'system', 1699348237468, 'config.ne.neConfigBackupFTP', '配置文件备份FTP服务', 'NE Config Backup file FTP service'); INSERT INTO `sys_i18n` VALUES (671, '0', 'system', 1699348237468, 'system', 1699348237468, 'config.ne.neConfigBackupFTPRemark', '请通过配置文件备份页面进行设置FTP信息', 'Please set the FTP information through the configuration file backup page.'); +INSERT INTO `sys_i18n` VALUES (672, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.302', '302 原因不明', '302 Unknown Reason'); +INSERT INTO `sys_i18n` VALUES (673, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.402', '402 原因不明', '402 Unknown Reason'); +INSERT INTO `sys_i18n` VALUES (674, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.480', '480 被叫挂断/拒接', '480 Temporarily Unavailable'); +INSERT INTO `sys_i18n` VALUES (675, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.481', '481 原因不明', '481 Unknown Reason'); +INSERT INTO `sys_i18n` VALUES (676, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.482', '482 发现环路', '482 Loop Detected'); +INSERT INTO `sys_i18n` VALUES (677, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.486', '486 这里很忙', '486 Busy Here'); +INSERT INTO `sys_i18n` VALUES (678, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.489', '489 原因不明', '489 Unknown Reason'); +INSERT INTO `sys_i18n` VALUES (679, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code.580', '580 原因不明', '580 Unknown Reason'); +INSERT INTO `sys_i18n` VALUES (700, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.0', '因其他原因呼叫失败', 'Call failure for other reason'); +INSERT INTO `sys_i18n` VALUES (701, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.200', '正常通话清除', 'Normal Call Clearing'); +INSERT INTO `sys_i18n` VALUES (702, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.202', '申请已被接受处理,但尚未完成 ', 'The request has been accepted for processing, but it hasn it completed yet'); +INSERT INTO `sys_i18n` VALUES (703, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.302', '因其他原因呼叫失败', 'Call failure for other reason'); +INSERT INTO `sys_i18n` VALUES (704, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.402', '因其他原因呼叫失败', 'Call failure for other reason'); +INSERT INTO `sys_i18n` VALUES (705, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.403', '拒绝 MO 用户', 'MO User Rejected'); +INSERT INTO `sys_i18n` VALUES (706, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.404', 'MT 用户离线', 'MT User Offline'); +INSERT INTO `sys_i18n` VALUES (707, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.480', '因其他原因呼叫失败', 'Call failure for other reason'); +INSERT INTO `sys_i18n` VALUES (708, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.481', '电话无法拨出', 'Call cannot be dialed'); +INSERT INTO `sys_i18n` VALUES (709, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.482', '闪断', 'Flashback'); +INSERT INTO `sys_i18n` VALUES (710, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.486', 'MT 用户忙', 'MT User Busy'); +INSERT INTO `sys_i18n` VALUES (711, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.487', 'MO 用户断线', 'MO User Disconnected'); +INSERT INTO `sys_i18n` VALUES (712, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.408', '服务器等待响应的时间过长', 'The server waits too long for a response'); +INSERT INTO `sys_i18n` VALUES (713, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.488', '媒体详细信息与服务器支持的内容不匹配', 'Media details didn’t match what the server supports'); +INSERT INTO `sys_i18n` VALUES (714, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.489', '因其他原因呼叫失败', 'Call failure for other reason'); +INSERT INTO `sys_i18n` VALUES (715, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.500', '服务器本身出了问题', 'Something went wrong inside the server itself'); +INSERT INTO `sys_i18n` VALUES (716, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.503', '服务器超载或因维护而停机,无法处理呼叫', 'The server is overloaded or down for maintenance and can it process the call'); +INSERT INTO `sys_i18n` VALUES (717, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.504', '服务器尝试以您的名义与另一台服务器通信,但未及时收到回复,并超时了', 'The server tried to talk to another server on your behalf, didn’t get a reply in time, and timed out'); +INSERT INTO `sys_i18n` VALUES (718, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.580', '因其他原因呼叫失败', 'Call failure for other reason'); +INSERT INTO `sys_i18n` VALUES (719, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.603', 'MT 明确拒绝通话', 'MT explicitly rejected the call'); +INSERT INTO `sys_i18n` VALUES (720, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictData.cdr_sip_code_cause.606', '呼叫已到达用户设备,但会话设置的某些部分不可接受', 'The call reached the user’s device, but some parts of the session setup weren it acceptable'); +INSERT INTO `sys_i18n` VALUES (721, '0', 'system', 1699348237468, 'system', 1699348237468, 'dictType.cdr_sip_code_cause', 'IMS-Voice-SIP响应代码类别类型原因', 'IMS-Voice-SIP Response Code Category Type Cause'); -- Dump completed on 2025-02-14 15:26:56 diff --git a/database/omc_db.sqlite b/database/omc_db.sqlite index ec4693db01ac92a194631a5072ef0766acbb53f5..a29e678c4d520ec613f01dc6aad030e502b8fcdc 100644 GIT binary patch delta 9564 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%0A)}P8(|Y{hApraw!wA~ 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