代码拉取完成,页面将自动刷新
package main
import (
"os"
"os/signal"
"syscall"
"time"
"gitee.com/kennyzw/go-sip-ua/pkg/account"
"gitee.com/kennyzw/go-sip-ua/pkg/media/rtp"
"gitee.com/kennyzw/go-sip-ua/pkg/stack"
"gitee.com/kennyzw/go-sip-ua/pkg/ua"
"gitee.com/kennyzw/go-sip-ua/pkg/utils"
"gitee.com/kennyzw/gosip/log"
"gitee.com/kennyzw/gosip/sip/parser"
)
var (
logger log.Logger
udp *rtp.RtpUDPStream
)
func init() {
logger = utils.NewLogrusLogger(log.DebugLevel, "Register", nil)
}
func main() {
stop := make(chan os.Signal, 1)
signal.Notify(stop, syscall.SIGTERM, syscall.SIGINT)
stack := stack.NewSipStack(&stack.SipStackConfig{
UserAgent: "Go Sip Client/example-register",
Extensions: []string{"replaces", "outbound"},
Dns: "8.8.8.8"})
if err := stack.Listen("udp", "0.0.0.0:5066"); err != nil {
logger.Panic(err)
}
ua := ua.NewUserAgent(&ua.UserAgentConfig{
SipStack: stack,
})
ua.RegisterStateHandler = func(state account.RegisterState) {
logger.Infof("RegisterStateHandler: user => %s, state => %v, expires => %v, reason => %v", state.Account.AuthInfo.AuthUser, state.StatusCode, state.Expiration, state.Reason)
}
uri, err := parser.ParseUri("sip:100@127.0.0.1") // this acts as an identifier, not connection info
if err != nil {
logger.Error(err)
}
profile := account.NewProfile(uri.Clone(), "goSIP",
&account.AuthInfo{
AuthUser: "100",
Password: "100",
Realm: "b2bua",
},
1800,
stack,
)
recipient, err := parser.ParseSipUri("sip:100@127.0.0.1;transport=udp") // this is the remote address
if err != nil {
logger.Error(err)
}
register, err := ua.SendRegister(profile, recipient, profile.Expires, nil)
if err != nil {
logger.Error(err)
}
time.Sleep(time.Second * 5)
register.SendRegister(0)
time.Sleep(time.Second * 5)
register.SendRegister(300)
time.Sleep(time.Second * 5)
register.SendRegister(0)
<-stop
ua.Shutdown()
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。