diff --git a/cmd/client/main.go b/cmd/client/main.go index 6617bb4..9c20408 100644 --- a/cmd/client/main.go +++ b/cmd/client/main.go @@ -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 diff --git a/pkg/handler/message/catalog.go b/pkg/handler/message/catalog.go index 1cf77c2..562194a 100644 --- a/pkg/handler/message/catalog.go +++ b/pkg/handler/message/catalog.go @@ -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)