31 lines
949 B
Go
31 lines
949 B
Go
|
package keepalive
|
||
|
|
||
|
import (
|
||
|
"git.skcks.cn/Shikong/go-gb28181/pkg/config"
|
||
|
"git.skcks.cn/Shikong/go-gb28181/pkg/manscdp"
|
||
|
"git.skcks.cn/Shikong/go-gb28181/pkg/services/device"
|
||
|
"git.skcks.cn/Shikong/go-gb28181/pkg/utils"
|
||
|
"git.skcks.cn/Shikong/go-gb28181/pkg/utils/charset"
|
||
|
"github.com/duke-git/lancet/v2/random"
|
||
|
"github.com/emiago/sipgo"
|
||
|
"github.com/emiago/sipgo/sip"
|
||
|
)
|
||
|
|
||
|
func SetupKeepalive(client *sipgo.Client, clientConfig *config.ClientConfig) {
|
||
|
device.AddKeepaliveSender(clientConfig.DeviceId, func(client *sipgo.Client) {
|
||
|
sn := random.RandNumeral(6)
|
||
|
data := manscdp.NewKeepAliveReqWithOK(sn, clientConfig.DeviceId)
|
||
|
target := sip.Uri{
|
||
|
User: clientConfig.ServerId,
|
||
|
Host: clientConfig.ServerIp,
|
||
|
Port: clientConfig.ServerPort,
|
||
|
Headers: sip.NewParams(),
|
||
|
}
|
||
|
|
||
|
req := sip.NewRequest(sip.MESSAGE, target)
|
||
|
marshal, _ := utils.XMLMarshal(data, charset.GBK)
|
||
|
req.SetBody(marshal)
|
||
|
_ = client.WriteRequest(req)
|
||
|
})
|
||
|
}
|