Files
be.ems/features/ue/mf_calling/service.go
2025-05-17 18:07:58 +08:00

39 lines
866 B
Go

package mf_calling
import (
"encoding/json"
"fmt"
"io"
"net/http"
neModel "be.ems/src/modules/network_element/model"
)
func (s *MfCallingInfo) GetCallingInfoFromMF(neInfo neModel.NeInfo) ([]MfCallingInfo, int, error) {
// 构造网元MF的API地址
url := fmt.Sprintf("http://%s:%d/api/rest/psap/v1/mf/callingInfo", neInfo.IP, neInfo.Port)
// 可根据querys拼接更多参数
resp, err := http.Get(url)
if err != nil {
return nil, 0, err
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
return nil, 0, err
}
// 假设MF返回格式为 {"totalCalls": 10, "Data": [...]}
var mfResp struct {
TotalCalls int `json:"totalCalls"`
Data []MfCallingInfo `json:"data"`
}
if err := json.Unmarshal(body, &mfResp); err != nil {
return nil, 0, err
}
return mfResp.Data, mfResp.TotalCalls, nil
}