Documentation ¶
Index ¶
- Constants
- Variables
- func OnMessage(req *sip.Request, tx *transaction.GBTx)
- func OnRegister(req *sip.Request, tx *transaction.GBTx)
- type Channel
- func (channel *Channel) Bye(live bool) int
- func (c *Channel) ByeBye(res *Request) *Response
- func (channel *Channel) Control(PTZCmd string) int
- func (c *Channel) CreateRequst(Method Method) (request *Request)
- func (channel *Channel) Invite(start, end string) (code int)
- func (channel *Channel) QueryRecord(startTime, endTime string) int
- type ChannelEx
- type Device
- func (d *Device) Catalog() int
- func (d *Device) CheckSubStream()
- func (d *Device) CreateMessage(Method sip.Method) (requestMsg *sip.Message)
- func (d *Device) QueryDeviceInfo(req *sip.Request)
- func (d *Device) Subscribe() int
- func (d *Device) UpdateChannels(list []*Channel)
- func (d *Device) UpdateRecord(channelId string, list []*Record)
- type Publisher
- type Publishers
- type Record
Constants ¶
const MaxRegisterCount = 3
const TIME_LAYOUT = "2006-01-02T15:04:05"
Variables ¶
var ( Devices sync.Map DeviceNonce sync.Map //保存nonce防止设备伪造 DeviceRegisterCount sync.Map //设备注册次数 )
var (
Ignores = make(map[string]struct{})
)
Functions ¶
func OnRegister ¶ added in v3.0.4
func OnRegister(req *sip.Request, tx *transaction.GBTx)
Types ¶
type Channel ¶
type Channel struct { DeviceID string ParentID string Name string Manufacturer string Model string Owner string CivilCode string Address string Parental int SafetyWay int RegisterWay int Secrecy int Status string Children []*Channel `json:"-"` *ChannelEx //自定义属性 }
Channel 通道
func FindChannel ¶
func (*Channel) CreateRequst ¶ added in v3.0.4
func (c *Channel) CreateRequst(Method Method) (request *Request)
func (*Channel) Invite ¶
f字段: f = v/编码格式/分辨率/帧率/码率类型/码率大小a/编码格式/码率大小/采样率 各项具体含义:
v:后续参数为视频的参数;各参数间以 “/”分割;
编码格式:十进制整数字符串表示 1 –MPEG-4 2 –H.264 3 – SVAC 4 –3GP
分辨率:十进制整数字符串表示
1 – QCIF 2 – CIF 3 – 4CIF 4 – D1 5 –720P 6 –1080P/I 帧率:十进制整数字符串表示 0~99 码率类型:十进制整数字符串表示 1 – 固定码率(CBR) 2 – 可变码率(VBR) 码率大小:十进制整数字符串表示 0~100000(如 1表示1kbps)
a:后续参数为音频的参数;各参数间以 “/”分割;
编码格式:十进制整数字符串表示 1 – G.711 2 – G.723.1 3 – G.729 4 – G.722.1 码率大小:十进制整数字符串 音频编码码率: 1 — 5.3 kbps (注:G.723.1中使用)
2 — 6.3 kbps (注:G.723.1中使用) 3 — 8 kbps (注:G.729中使用) 4 — 16 kbps (注:G.722.1中使用) 5 — 24 kbps (注:G.722.1中使用) 6 — 32 kbps (注:G.722.1中使用) 7 — 48 kbps (注:G.722.1中使用) 8 — 64 kbps(注:G.711中使用)
采样率:十进制整数字符串表示
1 — 8 kHz(注:G.711/ G.723.1/ G.729中使用) 2—14 kHz(注:G.722.1中使用) 3—16 kHz(注:G.722.1中使用) 4—32 kHz(注:G.722.1中使用) 注1:字符串说明
本节中使用的“十进制整数字符串”的含义为“0”~“4294967296” 之间的十进制数字字符串。 注2:参数分割标识 各参数间以“/”分割,参数间的分割符“/”不能省略; 若两个分割符 “/”间的某参数为空时(即两个分割符 “/”直接将相连时)表示无该参数值; 注3:f字段说明 使用f字段时,应保证视频和音频参数的结构完整性,即在任何时候,f字段的结构都应是完整的结构: f = v/编码格式/分辨率/帧率/码率类型/码率大小a/编码格式/码率大小/采样率 若只有视频时,音频中的各参数项可以不填写,但应保持 “a///”的结构: f = v/编码格式/分辨率/帧率/码率类型/码率大小a/// 若只有音频时也类似处理,视频中的各参数项可以不填写,但应保持 “v/”的结构: f = v/a/编码格式/码率大小/采样率 f字段中视、音频参数段之间不需空格分割。 可使用f字段中的分辨率参数标识同一设备不同分辨率的码流。
func (*Channel) QueryRecord ¶
type Device ¶
type Device struct { *transaction.Core `json:"-"` ID string Name string Manufacturer string Model string Owner string RegisterTime time.Time UpdateTime time.Time LastKeepaliveAt time.Time Status string Channels []*Channel Addr string SipIP string //暴露的IP // contains filtered or unexported fields }
func (*Device) CheckSubStream ¶
func (d *Device) CheckSubStream()
func (*Device) CreateMessage ¶
func (*Device) QueryDeviceInfo ¶ added in v3.0.6
func (*Device) UpdateChannels ¶
func (*Device) UpdateRecord ¶
type Publishers ¶
func (*Publishers) Add ¶
func (p *Publishers) Add(key uint32, pp *Publisher)
func (*Publishers) Get ¶
func (p *Publishers) Get(key uint32) *Publisher
func (*Publishers) Remove ¶
func (p *Publishers) Remove(key uint32)