add: SMF CDR

This commit is contained in:
2024-05-28 10:15:41 +08:00
parent 053fe3c429
commit 83488d27d1
12 changed files with 640 additions and 15 deletions

View File

@@ -696,3 +696,33 @@ func IsRpmOrDebPackage(filePath string) int {
return fileType
}
func RecurseStructToMap(obj any) map[string]any {
out := make(map[string]any)
v := reflect.ValueOf(obj)
if v.Kind() == reflect.Ptr {
v = v.Elem()
}
// 递归函数,用于处理嵌套结构体
var recurse func(reflect.Value) any
recurse = func(value reflect.Value) any {
if value.Kind() == reflect.Struct {
nestedOut := make(map[string]any)
for i := 0; i < value.NumField(); i++ {
nestedOut[value.Type().Field(i).Name] = recurse(value.Field(i))
}
return nestedOut
} else if value.Kind() == reflect.Ptr {
return recurse(value.Elem())
}
return value.Interface()
}
t := v.Type()
for i := 0; i < v.NumField(); i++ {
f := v.Field(i)
out[t.Field(i).Name] = recurse(f)
}
return out
}

View File

@@ -300,8 +300,13 @@ func init() {
Register("GET", ue.UriNSSFSubscriptions, ue.GetSubscriptionsFromNSSF, nil)
Register("GET", ue.CustomUriNSSFSubscriptions, ue.GetSubscriptionsFromNSSF, nil)
Register("POST", cdr.UriCDREvent, cdr.PostCDREventFromNF, nil)
Register("POST", cdr.CustomUriCDREvent, cdr.PostCDREventFromNF, nil)
// ims cdr event
Register("POST", cdr.UriIMSCDREvent, cdr.PostCDREventFromIMS, nil)
Register("POST", cdr.CustomUriIMSCDREvent, cdr.PostCDREventFromIMS, nil)
// smf cdr event
Register("POST", cdr.UriSMFCDREvent, cdr.PostCDREventFromSMF, nil)
Register("POST", cdr.CustomUriSMFCDREvent, cdr.PostCDREventFromSMF, nil)
// UE event
//Register("POST", event.UriUEEvent, event.PostUEEventFromAMF, nil)