Android平台GB28181设备接入端本地SIP端口被占用或屏蔽怎么办?

好多开发者或厂商,对Android平台GB28181接入模块的定位,大多是IPC国标流程打通模拟,基于这个目的,很难按照标准SPEC规范实现Android平台GB28181设备接入,我们在跟第三方国标平台厂商对接时发现,部分公司,尽管参与了标准的制定或审校,自身实现,细节仍不尽人意。

除了作为IPC国标模拟工具,Android平台GB28181设备接入没有实现价值吗?实际上,Android平台GB28181设备接入的用途非常广泛,通过实现不具备国标音视频能力的 Android终端,平台注册接入到现有的GB/T28181—2016服务,可用于如智能监控、智慧零售、智慧教育、远程办公、生产运输、智慧交通、车载或执法记录仪等场景。

Android平台GB28181接入终端除支持常规的音视频数据接入外,还需要支持移动设备位置(MobilePosition)订阅和通知、语音广播和语音对讲。

我们在实现Android平台GB28181设备接入端的时候,有个选项是设置本地SIP端口:

GBSIPAgent     gb28181_agent_             = null;
private int    gb28181_sip_local_port_base_  = 5060;
private String gb28181_sip_server_id_     = "34020000002000000001";
private String gb28181_sip_domain_        =  "3402000000";
private String gb28181_sip_server_addr_   = "192.168.2.154";
private int    gb28181_sip_server_port_   = 15060;private String gb28181_sip_user_agent_filed_  = "DN(daniusdk.com) GB28181 User Agent V1.3";
private String gb28181_sip_username_   = "31011500991320000078";
private String gb28181_sip_password_   = "12345678";private int gb28181_reg_expired_           = 3600; // 注册有效期时间最小3600秒
private int gb28181_heartbeat_interval_    = 20; // 心跳间隔GB28181默认是60, 目前调整到20秒
private int gb28181_heartbeat_count_       = 3; // 心跳间隔3次失败,表示和服务器断开了
private int gb28181_sip_trans_protocol_    = 0; // 0表示信令用UDP传输, 1表示信令用TCP传输private long gb28181_rtp_sender_handle_ = 0;
private int  gb28181_rtp_payload_type_  = 96;
private String gb28181_rtp_encoding_name_ = "PS";

设置本地SIP端口的时候,SIP端口有可能被占用(比如大多都是设置5060)或被网络屏蔽,网上常规的做法是设置个看似不常用的端口,比如5061、5062等,虽然能解决绝大多数场景的问题,作为个通用的模块来说,未免过于粗糙,或者说治标不治本。

我们的做法是:设置本地SIP端口的时候,设置个base_local_port, 然后,根据设定的端口,在有效端口范围内,做绑定尝试,如果成功,提示bind local port OK, 然后做其他操作即可,这样可以最大限度的规避端口分配失败。

具体代码如下:

int try_end_port = gb28181_sip_local_port_base_ + 5000;
try_end_port = try_end_port > 65536 ?65536: try_end_port;for (int i = gb28181_sip_local_port_base_; i < try_end_port; ++i) {if (gb28181_agent_.bindLocalPort(i)) {is_bind_local_port_ok = true;break;}
}if (!is_bind_local_port_ok) {gb28181_agent_.releaseSipStack();gb28181_agent_ = null;Log.e(TAG, "initGB28181Agent gb28181_agent_.bindLocalPort failed.");return  false;
}

感兴趣的开发者,可以做下尝试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552952.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android平台GB28181设备接入端如何实现本地录像?

实现Android平台GB28181设备接入的时候&#xff0c;有个功能点不可避免&#xff0c;那就是本地录像&#xff0c;实际上&#xff0c;在实现GB28181设备接入模块之前&#xff0c;我们前些年做RTMP推送和轻量级RTSP服务的时候&#xff0c;早已经实现了本地录像功能。 本地录像功能…

win10笔记本电脑合上屏幕休眠该怎么设置

现在很多用户经常外出的都喜欢轻便一点的电脑&#xff0c;所以这类人群为自己选择的电脑就会是笔记本电脑。使用笔记本电脑有一个特点就是如您合上电脑屏幕&#xff0c;它就会自动锁屏&#xff0c;那么win10笔记本电脑合上屏幕休眠该怎么设置呢?想要设置的用户一起来看看吧。 …

Android平台GB28181设备接入端实现实时快照

Android平台GB28181设计开发的时候&#xff0c;有个功能必不可少的&#xff1a;实时快照&#xff0c;特别是用于执法记录仪等场景下&#xff0c;用于图像留底或分析等考量。 实时快照的实现并不难&#xff0c;目前实现有两种方式&#xff0c;一种是拿到数据&#xff08;比如摄…

uc浏览器怎么看历史记录 uc浏览器网页历史记录查看方法

很多用户发现UC浏览器的历史记录查看不了&#xff0c;怎么找也找不到&#xff0c;不要急&#xff0c;它只是换了个位置而已&#xff0c;那么下面小编就来跟大家说一说UC浏览器网页历史记录查看方法。 方法一&#xff1a;点击右上角的UC图标&#xff0c;在弹出来的菜单中你就会…

Win11如何跳过开机更新 Win11跳过开机更新教程

已经有很多用户更新升级到win11系统了吧&#xff0c;但是有用户发现偶尔开机会出现自动更新&#xff0c;导致无法及时开机使用&#xff0c;那win11统如何跳过开机更新呢?可以先使用电源键取消这次更新&#xff0c;然后进入系统取消更新检测就可以了。 win11怎么跳过开机更新&…

Android国标接入端如何播放GB28181平台端语音广播数据

GB28181语音广播这块&#xff0c;我们依据GB/T28181-2016针对流程和实例代码&#xff0c;做过详细的描述&#xff0c;本次主要是探讨下&#xff0c;广播数据过来后&#xff0c;如何处理。 鉴于我们之前有非常成熟的RTMP|RTSP低延迟播放模块&#xff0c;语音广播数据过来后&…

Win11和Win10有什么区别 Win11和Win10区别对比

Win11是微软全新一代操作系统&#xff0c;在界面和功能上和Win10相比还是有不少区别的&#xff0c;如果你还在犹豫要不要升级Win11的话&#xff0c;那么不妨来看看Win11和Win10之间有哪些区别吧。 1、 开始菜单&#xff1a;简单的图标&#xff0c;没有动态磁贴 Windows 11 的…

Android平台RTSP、RTMP播放端如何实现YUV或ARGB数据按设定角度旋转

做音视频RTSP或RTMP直播播放器的时候&#xff0c;不免会遇到这样的诉求&#xff0c;实时播放或快照的时候&#xff0c;由于前端摄像头安装角度不一定是正向&#xff0c;导致播放或快照的时候&#xff0c;视频view显示的画面是呈90 180甚至270旋转的。 以Android平台为例&#…

Win11任务栏颜色如何更改 Win11更改任务栏颜色教程

win11系统中任务栏颜色默认为浅蓝色&#xff0c;有用户认为它可能会与白色的网页或界面重叠&#xff0c;影响自己的操作&#xff0c;想问问有没有什么方法可以更改任务栏的颜色。可以通过更改主题或者更改深色浅色模式来更改任务栏的颜色&#xff0c;将其调整为自己喜欢的颜色。…

国网B接口注册(REGISTER)接口描述和消息示例

技术背景 电网视频监控系统是智能电网的一个重要组成部分&#xff0c;广泛应用于电网的建设、生产、运行、经营等方面。由于视频监控系统在不同的建设时期选用了不同的技术和不同厂家的产品&#xff0c;导致了标准不统一、技术路线不一致。目前国家电网公司智能电网建设&#…

Win7系统怎么设置虚拟内存

我们在日常生活中使用电脑的时候&#xff0c;有时候会以你为系统内存不足导致系统崩溃&#xff0c;甚至严重的还会导致电脑死机。电脑内存不足的时候&#xff0c;那么Win7系统怎么设置虚拟内存呢?如果您不会设置虚拟内存的话&#xff0c;就让小编来教教你Win7系统设置虚拟内存…

国网B接口资源上报(Push_Resourse)接口描述和消息示例

上篇blog&#xff0c;梳理了国网B接口的REGISTER接口描述和消息示例&#xff0c;前端系统加电启动并初次注册成功后&#xff0c;向平台上报前端系统的设备资源信息&#xff08;包括&#xff1a;视频服务器、DVR/DVS、摄像机、告警设备、环境量采集设备等模拟或数字信号采集设备…

Win7电脑无法获取ip地址怎么解决

有的朋友会遇到了电脑无法获取ip地址的情况&#xff0c;一般ip地址是路由自动分配的&#xff0c;如果获取不到ip可能是路由器出来问题&#xff0c;那Win7电脑无法获取ip地址怎么解决呢?今天小编带给大家win7系统电脑无法获取ip地址的解决方法&#xff0c;一起来看看吧。 Win7…

GB/T 28181-2016多响应消息传输探究

我们在实现Android平台GB28181设备接入模块的时候&#xff0c;有遇到发送多条记录的情况&#xff0c;本文主要探讨下GB28181多响应传输。 规范解读 如GB/T28181-2016规范所说&#xff1a;目录查询响应、文件查询响应、订阅后的通知消息会出现响应、通知消息需发送多条记录的情…

windows7系统设置动态屏保的教程

我们知道电脑在长时间没有操作的情况下就会自动锁屏&#xff0c;可以起到保护我们隐私的作用&#xff0c;也可以起到一个美观的作用&#xff0c;那系统自带的屏保我们不满意的话&#xff0c;想重新设置却不知道在哪里设置怎么办?没关系下面给大家带来了windows7系统设置动态屏…

Android平台GB28181设备接入端语音广播如何实现实时音量调节

Android平台GB28181设备接入&#xff0c;语音广播功能非常重要&#xff0c;本文要介绍的&#xff0c;不是语音广播的流程&#xff0c;语音广播流程&#xff0c;之前的blog也有非常详细的分享&#xff0c;感兴趣的可以参考官方规范书的交互流程&#xff1a; 语音广播这块&#x…

GB28181基于TCP协议的视音频媒体传输探究及实现

我们先看看官方规范针对TCP协议的视音频传输描述&#xff1a; 实时视频点播、历史视频回放与下载的 TCP媒体传输应支持基于RTP封装的视音频PS流&#xff0c;封装格式参照IETFRFC4571。 流媒体服务器宜同时支持作为TCP媒体流传输服务端和客户端。默认情况下&#xff0c;前端设…

qq浏览器怎么导入其他浏览器收藏夹

现在浏览器种类非常多&#xff0c;有时候由于特殊需要&#xff0c;一个电脑有好几个浏览器&#xff0c;在使用浏览器的过程中收藏夹里的东西非常的多&#xff0c;但时间越久&#xff0c;收藏夹东西累计得越来也多&#xff0c;我们记性再好也会偶尔记不住自己需要的东西是在哪个…

Android平台GB28181接入端如何对接UVC摄像头?

我们在对接Android平台GB28181接入的时候&#xff0c;有公司提出这样的需求&#xff0c;除了采集执法记录仪摄像头自带的数据外&#xff0c;还想通过执法记录仪采集外接UVC摄像头。 实际上&#xff0c;这块对我们来说有点炒冷饭了&#xff0c;不算新的诉求。​大牛直播SDK​在2…

win10系统电脑wifi图标不见了的开启方法

很多的用户都习惯了在桌面右下方的小图标中设置网络&#xff0c;但是很多时候都遇到了图标不见了的情况&#xff0c;win10系统电脑wifi图标不见了怎么办呢&#xff1f;就此问题&#xff0c;今天就为你们带来了win10系统电脑wifi图标不见了的开启方法&#xff0c;一起看看吧。 w…