plugin-gb28181 icon indicating copy to clipboard operation
plugin-gb28181 copied to clipboard

Invite请求中SipRequestForResponse报错之后,使用的端口没有回收

Open gzncland opened this issue 1 year ago • 4 comments

https://github.com/Monibuca/plugin-gb28181/blob/a207352fe6e4a2fc67780ce71ac48f56f9e17b3f/channel.go#L425

在发送Invite请求之前需要从PortManager中拿一个端口,但是发送Invite请求不成功时,不能走Bye中的recycle逻辑。久而久之PortManager.Range()会越来越少直至耗尽

inviteRes, err := d.SipRequestForResponse(invite)
if err != nil {
  channel.Error("invite", zap.Error(err), zap.String("msg", invite.String()))
  return http.StatusInternalServerError, err
}

gzncland avatar Jun 14 '24 19:06 gzncland

另外还发现一个问题是SipRequestForResponse会阻塞很久,或者会报超时错误。估计是gosip库的问题

gzncland avatar Jun 18 '24 10:06 gzncland

嗯,你看看有没有办法回收端口,帮忙提个 PR

langhuihui avatar Jun 18 '24 10:06 langhuihui

https://github.com/Monibuca/plugin-gb28181/blob/a207352fe6e4a2fc67780ce71ac48f56f9e17b3f/channel.go#L425

在发送Invite请求之前需要从PortManager中拿一个端口,但是发送Invite请求不成功时,不能走Bye中的recycle逻辑。久而久之PortManager.Range()会越来越少直至耗尽

inviteRes, err := d.SipRequestForResponse(invite)
if err != nil {
  channel.Error("invite", zap.Error(err), zap.String("msg", invite.String()))
  return http.StatusInternalServerError, err
}

请问解决了吗

YOLO-PK avatar Aug 08 '24 01:08 YOLO-PK

解决了

langhuihui avatar Aug 08 '24 02:08 langhuihui