Documentation
¶
Index ¶
- Constants
- func CreateNoMsgTypeResponse(req sip.Request, statusCode int, conf *Config) sip.Message
- func CreateServerRequestNoReq(messID sip.MessageID, method sip.RequestMethod, hdrs []sip.Header, body string, ...) sip.Message
- type Authenticate
- type Camera
- func (c *Camera) CatalogueSearch(timeout time.Duration) ([]*CatalogueResponse, error)
- func (c *Camera) Close() error
- func (c *Camera) ControlPlayBackPlay(scale float32, timeout time.Duration, startTime *time.Time, endTime *time.Time) error
- func (c *Camera) ControlPlayBackStop(PauseTime int, timeout time.Duration) error
- func (c *Camera) FetchPlayBackStream(back *PlayBack, timeout time.Duration) error
- func (c *Camera) FetchRealTimeStream(serverIp string, serverPort int, timeout time.Duration, pvrStr string) error
- func (c *Camera) FlushRegistered(flag bool, err error)
- func (c *Camera) PTZControl(cmd string, timeout time.Duration) error
- func (c *Camera) PlayBackPositioning(startTime int, endTime int, scale float32, timeout time.Duration) error
- func (c *Camera) Registered() bool
- func (c *Camera) StopFetchStream(timeout time.Duration) error
- func (c *Camera) Write(frame sip.Message) error
- type CameraModel
- type CatalogueResponse
- type Clienter
- type Config
- type ControlResponse
- type DeviceList
- type Focus
- type GB28181Handler
- type Iris
- type Item
- type LinkType
- type MessageCar
- type Node
- type NoneUri
- func (n *NoneUri) Clone() sip.Uri
- func (n *NoneUri) Equals(other interface{}) bool
- func (n *NoneUri) Headers() sip.Params
- func (n *NoneUri) Host() string
- func (n *NoneUri) IsEncrypted() bool
- func (n *NoneUri) IsWildcard() bool
- func (n *NoneUri) Password() sip.MaybeString
- func (n *NoneUri) Port() *sip.Port
- func (n *NoneUri) SetEncrypted(flag bool)
- func (n *NoneUri) SetHeaders(params sip.Params)
- func (n *NoneUri) SetHost(host string)
- func (n *NoneUri) SetPassword(pass sip.MaybeString)
- func (n *NoneUri) SetPort(port *sip.Port)
- func (n *NoneUri) SetUriParams(params sip.Params)
- func (n *NoneUri) SetUser(user sip.MaybeString)
- func (n *NoneUri) String() string
- func (n *NoneUri) UriParams() sip.Params
- func (n *NoneUri) User() sip.MaybeString
- type PTZ
- type Pan
- type PlayBack
- type Query
- type Server
- func (s *Server) CameraList() ([]*CameraModel, error)
- func (s *Server) CatalogueSearch(cameraSIP string, timeout time.Duration) ([]*CatalogueResponse, error)
- func (s *Server) Close() error
- func (s *Server) ControlPlayBackPlay(cameraSIP string, scale float32, timeout time.Duration, startTime *time.Time, ...) error
- func (s *Server) ControlPlayBackStop(cameraSIP string, PauseTime int, timeout time.Duration) error
- func (s *Server) FetchPlayBackStream(cameraSIP string, back *PlayBack, timeout time.Duration) error
- func (s *Server) FetchRealTimeStream(cameraSIP string, videoServerIp string, videoServerPort int, ...) error
- func (s *Server) Open() error
- func (s *Server) PTZControl(cameraSIP, cmd string, timeout time.Duration) error
- func (s *Server) PlayBackPositioning(cameraSIP string, startTime int, endTime int, scale float32, ...) error
- func (s *Server) StopFetchStream(cameraSIP string, timeout time.Duration) error
- type Subject
- type TCPClient
- type Tilt
- type UDPClient
- type Zoom
Constants ¶
const ( ZoomOut Zoom = 2 //镜头变倍,缩小 ZoomIn Zoom = 1 //镜头变倍,方法 ZoomIdle Zoom = 0 //镜头变倍,静置 TiltUp Tilt = 2 //云台垂直方向控制,上 TiltDown Tilt = 1 //云台垂直方向控制,下 TiltIdle Tilt = 0 //云台垂直方向控制,静置 PanLeft Pan = 2 //云台水平方向控制,左 PanRight Pan = 1 //云台水平方向控制,右 PanIdle Pan = 0 //云台水平方向控制,静置 IrisLittle Iris = 2 //光圈缩小 IrisBig Iris = 1 //光圈方法 IrisIdle Iris = 0 //光圈不动 FocusLittle Focus = 2 //聚焦近 FocusBig Focus = 1 //聚焦远 FocusIdle Focus = 0 //聚焦不动 )
const (
DeviceControlType = "DeviceControl"
)
const (
TryingType = "Trying"
)
Variables ¶
This section is empty.
Functions ¶
func CreateNoMsgTypeResponse ¶
CreateNoMsgTypeResponse SIP/2.0 200 OK 创建这种
Types ¶
type Authenticate ¶
type Authenticate struct {
Auth string
}
func (Authenticate) Clone ¶
func (a Authenticate) Clone() sip.Header
func (Authenticate) Equals ¶
func (a Authenticate) Equals(other interface{}) bool
func (Authenticate) Name ¶
func (a Authenticate) Name() string
func (Authenticate) String ¶
func (a Authenticate) String() string
func (Authenticate) Value ¶
func (a Authenticate) Value() string
type Camera ¶
type Camera struct {
//配置相关
*Config
LatestTime int64 //最后一次通讯时间,毫秒值
CameraUa string
// contains filtered or unexported fields
}
func (*Camera) CatalogueSearch ¶
func (c *Camera) CatalogueSearch(timeout time.Duration) ([]*CatalogueResponse, error)
CatalogueSearch 目录检索
func (*Camera) ControlPlayBackPlay ¶
func (c *Camera) ControlPlayBackPlay(scale float32, timeout time.Duration, startTime *time.Time, endTime *time.Time) error
ControlPlayBackPlay 播放回放
func (*Camera) ControlPlayBackStop ¶
ControlPlayBackStop 回放暂停
func (*Camera) FetchPlayBackStream ¶
FetchPlayBackStream 回放
func (*Camera) FetchRealTimeStream ¶
func (c *Camera) FetchRealTimeStream(serverIp string, serverPort int, timeout time.Duration, pvrStr string) error
FetchRealTimeStream 拉取已经注册摄像头的实时流
func (*Camera) FlushRegistered ¶
FlushRegistered 刷新注册状态
func (*Camera) PTZControl ¶
PTZControl 云台控制
func (*Camera) PlayBackPositioning ¶
func (c *Camera) PlayBackPositioning(startTime int, endTime int, scale float32, timeout time.Duration) error
PlayBackPositioning 回放定位
func (*Camera) Registered ¶
type CameraModel ¶
type CatalogueResponse ¶
type CatalogueResponse struct {
XMLName xml.Name `xml:"Response"`
CmdType string `xml:"CmdType"`
SN int `xml:"SN"`
DeviceID string `xml:"DeviceID"`
SumNum int `xml:"SumNum"`
DeviceList DeviceList `xml:"DeviceList"`
}
CatalogueResponse 目录检索响应
type Config ¶
type Config struct {
Port int16 //端口号
WriteTimeout time.Duration //写超时
ReadTimeout time.Duration //读超时
Trans LinkType //连接类型
ServerIP string //服务端IP
ServerSIP string //服务端的sip
MaxForwards int // 最大转发跳数,默认70
ProtocolVersion string //默认“2.0”
ProtocolName string //默认“SIP”
SipVersion string //默认"SIP/2.0"
UserAgent string //服务端名称
BuffSize int //缓冲区大小,建议不要小于1024
Handle GB28181Handler //回调处理器
Auth bool //是否需要针对摄像头鉴权
}
Config 服务端配置
func NewDefaultConfig ¶
func NewDefaultConfig(port int16, trans LinkType, serverIp string, serverSip string, handle GB28181Handler) *Config
NewDefaultConfig 创建SIP服务端的配置
type ControlResponse ¶
type DeviceList ¶
type GB28181Handler ¶
type GB28181Handler interface {
ErrorVerifyHandle(err error) bool //错误校验,如果返回true,就代表服务端出问题,会关闭服务端
ServerClosedHandle(err error) //服务器已经关闭啦
ReceivedHandle(clientHost string, clientSIP string, frame string, err error) //收到了消息
SentHandle(clientHost string, clientSIP string, frame string, err error) //发送了消息
PasswordHandle(clientHost string, cameraSIP string) string //获取认证密码
CameraOnHandle(clientHost string, clientSIP string) //摄像头上线
CameraDownHandle(clientHost string, clientSIP string, err error) //摄像头下线
}
GB28181Handler 服务端回调
type Item ¶
type Item struct {
DeviceID string `xml:"DeviceID"`
Name string `xml:"Name"`
Manufacturer string `xml:"Manufacturer"`
Model string `xml:"Model"`
Owner string `xml:"Owner"`
CivilCode string `xml:"CivilCode"`
Address string `xml:"Address"`
Parental int `xml:"Parental"`
ParentID string `xml:"ParentID"`
RegisterWay int `xml:"RegisterWay"`
Secrecy int `xml:"Secrecy"`
Status string `xml:"Status"`
}
type MessageCar ¶
type MessageCar struct {
// contains filtered or unexported fields
}
func NewMessageCar ¶
func NewMessageCar(resultSize int, timeout time.Duration) *MessageCar
func (*MessageCar) Down ¶
func (m *MessageCar) Down() ([]any, error)
type NoneUri ¶
type NoneUri struct {
}
func (*NoneUri) IsEncrypted ¶
func (*NoneUri) IsWildcard ¶
func (*NoneUri) Password ¶
func (n *NoneUri) Password() sip.MaybeString
func (*NoneUri) SetEncrypted ¶
func (*NoneUri) SetHeaders ¶
func (*NoneUri) SetPassword ¶
func (n *NoneUri) SetPassword(pass sip.MaybeString)
func (*NoneUri) SetUriParams ¶
func (*NoneUri) SetUser ¶
func (n *NoneUri) SetUser(user sip.MaybeString)
func (*NoneUri) User ¶
func (n *NoneUri) User() sip.MaybeString
type PTZ ¶
type PTZ struct {
Version byte //版本信息,不能大于0x0F
Address uint16 //地址
// contains filtered or unexported fields
}
PTZ 云台控制
type PlayBack ¶
type PlayBack struct {
TargetNumber string //目标通道号
SourceNumber string //源设备通道号
ChanNumber int //通道号
StartTime int64 //开始时间,秒级时间戳
EndTime int64 //结束时间,秒级时间戳
VideoServerIp string //接收IP
Pvr string //自定义的播放参数,如果=="",就是用默认的
// contains filtered or unexported fields
}
PlayBack 回放请求参数
type Query ¶
type Query struct {
XMLName xml.Name `xml:"Query"`
CmdType string `xml:"CmdType"`
SN string `xml:"SN"`
DeviceID string `xml:"DeviceID"`
}
Query 请求目录检索
type Server ¶
type Server struct {
*Config
// contains filtered or unexported fields
}
Server GB28181服务端
func (*Server) CameraList ¶
func (s *Server) CameraList() ([]*CameraModel, error)
CameraList 获取所有在线摄像头
func (*Server) CatalogueSearch ¶
func (s *Server) CatalogueSearch(cameraSIP string, timeout time.Duration) ([]*CatalogueResponse, error)
CatalogueSearch 目录检索 cameraSIP 摄像头的SIP timeout 超时
func (*Server) ControlPlayBackPlay ¶
func (s *Server) ControlPlayBackPlay(cameraSIP string, scale float32, timeout time.Duration, startTime *time.Time, endTime *time.Time) error
ControlPlayBackPlay 播放回放 cameraSIP 摄像头的SIP scale 倍速 timeout 超时 startTime 开始时间 endTime 结束时间
func (*Server) ControlPlayBackStop ¶
ControlPlayBackStop 回放暂停 cameraSIP 摄像头的SIP PauseTime 回放的暂停延迟 timeout 超时
func (*Server) FetchPlayBackStream ¶
FetchPlayBackStream 回放 cameraSIP 摄像头的SIP PlayBack 回放请求参数 timeout 超时
func (*Server) FetchRealTimeStream ¶
func (s *Server) FetchRealTimeStream(cameraSIP string, videoServerIp string, videoServerPort int, timeout time.Duration, pvr string) error
FetchRealTimeStream 拉取已经注册摄像头的实时流 cameraSIP 摄像头的SIP videoServerIp 流媒体服务器的IP videoServerPort 接收流的接口 timeout 超时 pvr "v=0\no=%s 0 0 IN IP4 %s\ns=Play\nc=IN IP4 %s\nt=0 0\nm=video %s RTP/AVP 96 98 97\na=recvonly\na=rtpmap:96 PS/90000\na=rtpmap:98 H264/90000\na=rtpmap:97 MPEG4/90000\ny=0100000001\nf=" 这种,传入""的话会使用默认的
func (*Server) PTZControl ¶
PTZControl 云台控制