// 网元HLR服务8080端口。 // 融合到UDM网元,也许是UDM的HLR服务。 package fetchlink import ( "encoding/json" "fmt" "strings" "be.ems/src/framework/logger" "be.ems/src/framework/utils/fetch" "be.ems/src/modules/network_element/model" ) // HLRTraceStart HLR跟踪任务开始 // // data参数 {traceID:"跟踪任务ID", imsi:"IMSI和MSISDN必填一个,都带的话以IMSI为准", msisdn:""} func HLRTraceStart(neInfo model.NeInfo, data map[string]any) (string, error) { // 网元参数配置新增(array) neUrl := fmt.Sprintf("http://%s:%d/trace-manage/v1/add-task", neInfo.IP, neInfo.Port) resBytes, err := fetch.PostJSON(neUrl, data, nil) var resData map[string]string if err != nil { errStr := err.Error() logger.Warnf("HLRTraceStart Post \"%s\"", neUrl) logger.Errorf("HLRTraceStart %s", errStr) return "", fmt.Errorf("NeService HLR API Error") } // 序列化结果 err = json.Unmarshal(resBytes, &resData) if err != nil { logger.Errorf("HLRTraceStart Unmarshal %s", err.Error()) return "", err } if v, ok := resData["code"]; ok && v == "0" { return strings.TrimSpace(strings.ToLower(resData["message"])), nil } return "", fmt.Errorf("%s", resData["message"]) } // HLRTraceStop HLR跟踪任务停止 // // data参数 {traceIDArray: ["跟踪任务ID数组"]} func HLRTraceStop(neInfo model.NeInfo, data map[string]any) (string, error) { // 网元参数配置新增(array) neUrl := fmt.Sprintf("http://%s:%d/trace-manage/v1/delete-task", neInfo.IP, neInfo.Port) resBytes, err := fetch.PostJSON(neUrl, data, nil) var resData map[string]string if err != nil { errStr := err.Error() logger.Warnf("HLRTraceStop Post \"%s\"", neUrl) logger.Errorf("HLRTraceStop %s", errStr) return "", fmt.Errorf("NeService HLR API Error") } // 序列化结果 err = json.Unmarshal(resBytes, &resData) if err != nil { logger.Errorf("HLRTraceStop Unmarshal %s", err.Error()) return "", err } if v, ok := resData["code"]; ok && v == "0" { return strings.TrimSpace(strings.ToLower(resData["message"])), nil } return "", fmt.Errorf("%s", resData["message"]) }