* update log * update log level * Enhance config.yaml by adding a comment for log-level options * update log * Refactor SIP service start method to accept configuration parameter for log level management
57 lines
944 B
Go
57 lines
944 B
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/emiago/sipgo"
|
|
"github.com/ossrs/srs-sip/pkg/config"
|
|
"github.com/rs/zerolog"
|
|
)
|
|
|
|
type Service struct {
|
|
ctx context.Context
|
|
conf *config.MainConfig
|
|
Uac *UAC
|
|
Uas *UAS
|
|
}
|
|
|
|
func NewService(ctx context.Context, r0 interface{}) (*Service, error) {
|
|
s := &Service{
|
|
ctx: ctx,
|
|
conf: r0.(*config.MainConfig),
|
|
}
|
|
s.Uac = NewUac()
|
|
s.Uas = NewUas()
|
|
return s, nil
|
|
}
|
|
|
|
func (s *Service) Start(conf *config.MainConfig) error {
|
|
if conf.Common.LogLevel != "debug" {
|
|
zerolog.SetGlobalLevel(zerolog.Disabled)
|
|
}
|
|
|
|
ua, err := sipgo.NewUA(
|
|
sipgo.WithUserAgent(UserAgent),
|
|
)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
if err := s.Uas.Start(ua, s.conf); err != nil {
|
|
return err
|
|
}
|
|
|
|
// if err := s.Uac.Start(ua, s.conf); err != nil {
|
|
// return err
|
|
// }
|
|
|
|
return nil
|
|
}
|
|
|
|
func (s *Service) Stop() {
|
|
s.Uac.Stop()
|
|
s.Uas.Stop()
|
|
// 停止设备心跳检查器
|
|
GetDeviceManager().stopHeartbeatChecker()
|
|
}
|