This commit is contained in:
shikong 2025-01-24 18:32:32 +08:00
parent 2feb2e9543
commit d4de6e7752
Signed by: Shikong
GPG Key ID: BD85FF18B373C341
2 changed files with 5 additions and 68 deletions

View File

@ -31,7 +31,7 @@ func main() {
logger.Fatal().Any("%s", err)
return
}
fmt.Printf("%+v\n", clientConfig)
fmt.Printf("%#v\n", clientConfig)
if clientConfig.Debug {
sip.SIPDebug = clientConfig.Debug
@ -48,79 +48,16 @@ func main() {
sipgo.WithUserAgent(clientConfig.DeviceId),
sipgo.WithUserAgentHostname(addr))
// 客户端, 发送/回复 SIP 指令
client, _ := sipgo.NewClient(ua,
sipgo.WithClientHostname(clientConfig.ListenIp),
sipgo.WithClientPort(clientConfig.ListenPort))
// 服务端, 接受 SIP 指令
srv, _ := sipgo.NewServer(ua, sipgo.WithServerLogger(logger))
message.SetupMessageHandler(srv, client, clientConfig)
//srv.OnMessage(func(req *sip.Request, tx sip.ServerTransaction) {
// query := new(manscdp.CatalogReq)
// _ = utils.XMLUnmarshal(req.Body(), query)
// logger.Info().Msgf("收到查询指令: %s\n%+v\n", query.CmdType, query)
//
// tx.Done()
//
// go func() {
// resp := new(manscdp.CatalogResp)
// resp.XMLName = xml.Name{Local: "Response"}
// resp.DeviceID = clientConfig.DeviceId
// resp.CmdType = "Catalog"
// resp.SumNum = "1"
// resp.DeviceList = new(manscdp.CateLogDeviceList)
// resp.DeviceList.XMLName = xml.Name{Local: "DeviceList"}
// resp.DeviceList.Num = "1"
// resp.DeviceList.Item = make([]manscdp.CateLogDevice, 0)
//
// device := manscdp.CateLogDevice{}
// device.DeviceID = clientConfig.DeviceId
// device.Name = "设备名称"
// device.Manufacturer = "设备厂商"
// device.ErrCode = "0"
// device.Port = fmt.Sprintf("%d", clientConfig.ListenPort)
//
// resp.DeviceList.Item = append(resp.DeviceList.Item, device)
//
// resp.SN = query.SN
//
// marshal, _ := utils.XMLMarshal(resp, "gbk")
// logger.Info().Msgf("回复查询指令: %s\n%+v\n", query.CmdType, resp)
//
// target := sip.Uri{
// User: clientConfig.ServerId,
// Host: clientConfig.ServerIp,
// Port: clientConfig.ServerPort,
// Headers: sip.NewParams(),
// }
//
// //uri := sip.Uri{User: "44050100002000000002", Host: "10.10.10.20", Port: 5099}
// nReq := sip.NewRequest(sip.MESSAGE, target)
// nReq.SetTransport("UDP")
// to := sip.NewHeader("To", req.GetHeader("From").Value())
// from := sip.NewHeader("From", req.GetHeader("To").Value())
// nReq.AppendHeader(to)
// nReq.AppendHeader(from)
// //nReq.AppendHeader(req.GetHeader("Call-ID"))
// nReq.AppendHeader(sip.NewHeader("Content-Type", "Application/MANSCDP+xml"))
//
// nReq.SetBody(marshal)
// err := sipgo.ClientRequestBuild(client, nReq)
// if err != nil {
// logger.Error().Msgf("向服务器发送查询指令失败: %s", err)
// }
//
// logger.Debug().Msgf("向服务器发送查询指令: %s\n%+v\n", query.CmdType, nReq)
//
// err = client.WriteRequest(nReq)
// if err != nil {
// logger.Error().Msgf("向服务器发送查询指令失败: %s", err)
// return
// }
// }()
//})
quit := make(chan os.Signal, 1)
go func() {
defer func() {
@ -130,6 +67,8 @@ func main() {
}
}()
// 暂时 默认 udp
// 启动 SIP 服务
if err := srv.ListenAndServe(ctx, "udp", addr); err != nil {
logger.Error().Err(err)
quit <- syscall.SIGTERM

View File

@ -52,14 +52,12 @@ func CatalogHandler(client *sipgo.Client, clientConfig *config.ClientConfig, req
Headers: sip.NewParams(),
}
//uri := sip.Uri{User: "44050100002000000002", Host: "10.10.10.20", Port: 5099}
nReq := sip.NewRequest(sip.MESSAGE, target)
nReq.SetTransport("UDP")
to := sip.NewHeader("To", req.GetHeader("From").Value())
from := sip.NewHeader("From", req.GetHeader("To").Value())
nReq.AppendHeader(to)
nReq.AppendHeader(from)
//nReq.AppendHeader(req.GetHeader("Call-ID"))
nReq.AppendHeader(sip.NewHeader("Content-Type", "Application/MANSCDP+xml"))
nReq.SetBody(marshal)