JAIN-SIP(Java API for Integrated Networks - Session Initiation Protocol)是用于实现SIP(Session Initiation Protocol)的Java API。以下是使用JAIN-SIP库编写一个简单的SIP服务器的基本步骤:
以下是可能用到的java扩展包:javax.*。 javax-jmi-model.jar javax-jmi-reflect.jar javax-mail-1.3.jar javax-ssl-1_1.jar javax-xml-soap-1.6.0.jar javax.activation.jar javax.activation_1.1.0.v201005080500.jar javax.activation_1.1.0.v201105071233.jar javax.activation_1.1.0.v201108011116.jar javax.annotation.jar javax.annotation.source_1.0.0.v20100513-0750.jar javax.annotation_1.0.0.v20100513-0750.jar javax.annotation_1.0.jar javax.annotation_1.1.0.v201105051105.jar javax.annotation_1.1.1.v201006150915.jar javax.ejb.jar javax.el.jar javax.el.source_2.1.0.v201004190952.jar javax.el_2.1.0.v201004190952.jar javax.el_2.2.0.v201105051105.jar javax.enterprise.deploy.jar javax.inject-1.jar javax.inject-tck.jar javax.inject.jar javax.jar javax.jdo-jdo2-api-2.3-eb.jar javax.jms-1.1.jar javax.jms.jar javax.jms_1.1.0.jar javax.jsp_2.1.jar javax.jws-1.0.jar javax.jws_2.0.0.v201005080400.jar javax.mail-1.3.3.01.jar javax.mail.glassfish.source_1.4.1.v201005082020.jar javax.mail.glassfish_1.4.1.v201005082020.jar javax.mail.jre15_1.4.1.jar javax.mail.jre16_1.4.3.jar javax.mail_1.4.0.v201005080615.jar javax.management.j2ee.jar javax.obex.jar javax.persistence.jar javax.persistence.source_2.0.3.v201010191057.jar javax.persistence_1.0.0.0_1-0.jar javax.persistence_1.0.0.jar javax.persistence_1.99.0.jar javax.persistence_2.0.0.jar javax.persistence_2.0.0.v201002051058.jar javax.persistence_2.0.1.jar javax.persistence_2.0.1.v201006031150.jar javax.persistence_2.0.3.v201010191057.jar javax.persistence_2.0_preview.jar javax.resource.jar javax.resource_1.5.0.jar javax.security.auth.message.jar javax.security.jacc.jar javax.security.jar javax.servlet-1.0.0.jar javax.servlet-1.4.jar javax.servlet-2.3.jar javax.servlet-2.5.0.jar javax.servlet-3.0.0.v201103241009.jar javax.servlet-3.0.jar javax.servlet-5.1.12.jar javax.servlet.jar javax.servlet.jsp.jar javax.servlet.jsp.jstl.jar javax.servlet.jsp.jstl.source_1.2.0.v2010041909
排查问题 编码 编号 问题原因 PW_SQL_FAIL 10000 数据库出错 PW_UNSUPPORT_SOFTPHONE 10001 不支持SOFTPHONE PW_UNSUPPORT_IVR 10002 不支持IVR PW_DEVICE_NOTFOUND 10011 设备没找到 PW_DEVICE_EMPTYUSER 10012 空的用户名 PW_DEVICE_MACREJECT 10013 MAC地址出错 PW_DEVICE_PASSWDREJECT 10014 密码出错 PW_DEVICE_FOR
SkeyeVSS国标视频融合云平台基于端-边-云一体化架构,部署轻量简单、功能灵活多样,平台可支持多协议、多类型设备接入,包括国标GB28181、RTMP、RTSP/Onvif等,2023年我们将拓展更多SDK接入,包括海康SDK、大华SDK、海康Ehome协议、华为SDK、宇视SDK、萤石SDK、乐橙SDK。
1 SBC:IMS网络边缘用于实现IP接入,互通和安全保护的网元,存在于接入网络与IMS网络之间或不同IMS网络之间,是用户接入IMS的入口点。SBC作为B2BUA将用户和IMS核心网进行隔离。
Kamailio:https://www.kamailio.org/(起源于SER)是一个开源的SIP服务器,主要用作SIP代理服务器、注册服务器等,即只处理信息,不处理媒体。如果你听说过FreeSWITCH:http://freeswitch.org.cn/或Asterisk,他们是典型的SIP B2BUA,主要用于VoIP媒体相关的处理。
注册直接贴个流程图吧,这里跟GB28181一致的。图片参考信令:步骤1 REGISTER sip:010090000000000000@111.203.3.78:21112 SIP/2.0 Via: SIP/2.0/UDP 100.106.180.41:15060;rport;branch=x5hG8bK235 From: <sip:010090016701000000@01009000>;tag=3723455366 To: <sip:010090016701000000@0100
友情提示:初次接触SIP(Session Initiation Protocol)协议的同学,强烈建议先将文末参考文章中的链接,先看至少二遍!
SIP(Session Initiation Protocol)协议是一种用于建立、修改和终止多媒体通信会话的通信协议。在互联网电话、视频会议、即时消息传递和多媒体通信等领域,SIP协议得到了广泛的应用。可以说,SIP协议已成为目前通信系统协议的主流,尤其在5G移动通信中,SIP协议更是作为基础。
今天来说说mod_soifa,它就是FreeSWITCH中的SIP模块。 FreeSWITCH并没有自己开发新的SIP协议栈,而是使用了比较成熟的开源SIP协议栈Sofia-SIP,以避免“重复发明轮子”。Sofia-SIP是由诺基亚公司开发的SIP 协议栈,它以开源的许可证LGPL发布。参见 http://sofia-sip.sourceforge.net/ 。 在FreeSWITCH中,实现一些互联协议接口的模块称为Endpoint。FreeSWITH支持很多类型的Endpoint,如SIP、H232等。这些不同的Endpoint主要是使用不同的控制协议跟其他的Endpoint通话。所以说,Endpoint一般是跟通话相关的。 有的读者可能会问,那么实现SIP的模块为什么不支持叫mod_sip呢?这是由于 FreeSWITCH的Endpoint是一个抽象的概念,你可以用任何的技术来实现。实际上mod_sofia只是对Sofia-SIP库的一个粘合和封装。除Sofia-SIP外,还有很多开源的SIP协议栈,如pjsip、osip等。最初选型的时候,FreeSWITCH 的开发团队也对比过许多不同的SIP协议栈,最终选用了Sofia-SIP。FreeSWITCH 是一个高度模块化的结构,如果你喜欢其他协议栈,可以自己实现如mod_pjsip或mod_osip等,它们是互不影响的。这也正是FreeSWITCH架构设计的精巧之处。 mod_sofia实现了SIP中的注册服务器,重定向服务器,媒体服务器、呈现服务器、SBC等各种功能。它的定位是一个B2BUA,它不能实现SIP代理服务器的功能。实现SIP代理服务器的开源软件有OpenSIPS、Kamailio等。它们可以很好的与FreeSWITCH配合工作。 在mod_sofia中,有一个概念是SIP Profile,它相当于一个SIP UA,通过各种不同的配置参数可以配置一个UA的行为。一个系统中可以有多个Profile,每个Profile都可以监听不同的IP地址和端口对。 一个Profile中有多个Gateway,Gateway可以直译为网关,它主要用于定义一个远端的SIP服务器,使FreeSWITCH可以与其他服务器通信。FreeSWITCH可以作为一个SIP客户端(UAC)向远端的网关进行“注册”;当然也可以不注册,而是使用与远端服务器对等的方式(俗称SIP Trunk,即SIP中继)相互通信(我们将在第14章讲到FreeSWITCH与与它系统相连的各种拓扑结构)。 FreeSWITCH可以作为注册服务器,这时候,其他的SIP客户端就可以向它注册。FreeSWITCH将通过用户目录(Directory)中的配置信息对注册用户进行鉴权。这些SIP客户端所代表的用户就称为本地SIP用户、简称本地用户。 牢记FreeSWITCH是一个B2BUA。如果Alice通过FreeSWITCH给Bob打电话,Alice首先向FreeSWITCH发起呼叫,对FreeSWITCH而言,这路通话就称为来话(Inbound Call);然后FreeSWITCH再去呼叫B,这路通话称为去话(Oubtound Call)。如果来、去话都是在与本地用户之间的,又称为本地来话和本地去话。 如果来、去话的发起者和目的地不是本的用户。而是以中继方式进行的,就称为中继来话或中继去话。但是,中继的叫法只是沿用传统的PSTN网络中的概念,在SIP术语中,本来是没有中继的概念的。 FreeSWITCH默认配置了internal和external以及internal-ipv6等三个Profile。其中internal主要用于本地用户的注册,它与external的区别除了使用的端口号不同外,它们之间最大的区别就是发送到internal这个Profile上的呼叫(INVITE请求)是需要鉴权的,但发送到external上的INVITE请求却不需要鉴权。这一点,用户在使用中可以慢慢体会。只要不被它们的名字所迷惑,知道所有的Profile其实都是一样的,这两个Profile只是FreeSWITCH默认提供的两个例子而已,它们之间的不同在于使用了不同的配置参数。 该模块是FreeSWITCH中最大的一个模块,也是最主要的一个模块,它的功能和配置都很多,留待我们日后慢慢讲。点击左下角的「查看原文」也可以看到更多的信息。 ---------------------------------------- 题图:Sofia 来自wikipedia Sofia是保加利亚的首都和最大城市,跟我们的mod_sofia可没有半毛钱关系啊。 ---------------------------------------- FreeSWITCH-CN是什么? FreeSWITCH-CN是FreeSWITCH中文社区,
INVITE sip:1000@10.0.0.1:10000;transport=tcp SIP/2.0
B接口要求设备注册完毕后,已通知的方式上报平台设备自身的资源信息. 摘自原文: 前端系统加电启动并初次注册成功后,应向平台上报前端系统的设备资源信息(包括:视频服务 器、 DVR/DVS 、摄像机、告警设备、环境量采集设备等模拟或数字信号采集设备信息)。 前端系统上报的设备资源信息采用 SIP 的 NOTIFY 消息,消息体应采用 XML 进行封装。 前端系统在上报资源信息时,应按照逐级发送的方式,发送的资源信息记录建议组合成小于 MTU 尺寸的封包进行上报,也允许单个分批的发送方式。
在前面几篇文章中我们介绍了建立p2p通信的一般协议(簇),以及一种完整的NAT传输解决方案ICE, 但是对于多用户的通信情况,还有一些通用协议来实现标准化的管理,如之前讲过的SDP和SIP等,SIP(Session Initiation Protocol), 是属于应用层的控制协议,主要用于在一个或多个参与者之间创建,修改和中止会话(sessions).会话的类型包括IP电话, 多媒体流分发和多媒体会议等.
默认情况下,拨打内部用户时,freeswitch需要该用户注册了才能对其发起呼叫,否则会提示-ERR USER_NOT_REGISTERED
电网视频监控系统是智能电网的一个重要组成部分,广泛应用于电网的建设、生产、运行、经营等方面。由于视频监控系统在不同的建设时期选用了不同的技术和不同厂家的产品,导致了标准不统一、技术路线不一致。目前国家电网公司智能电网建设,对视频监控系统提出了新的要求,因此实现统一监控、统一存储、分级控制、分域管理,使不同的视频监视系统能够互联互通,满足视频监控系统全局化、整体化的发展需求,已成为亟待解决的问题。
在GB28181协议设备端的开发中,良好的程序架构设计是保证系统稳定性和可扩展性的基础。我们可以考虑以下方面:
“xxx”因为出现问题而无法打开。请与开发者联系,以确定“xxx”可以配合Macos版本使用。您可能需要重新安装应用程序。请务必安装适用于该应用程序和Macos的任何可用更新。点按“报告”以查看更详细的信息,并将报告发送给 Apple。
注意下注册报文中的Expires:7200 字段,标示SIP代理刷新注册时间,如果为0,则标示注销。
近年来,国内视频监控应用发展迅猛,系统接入规模不断扩大,涌现了大量平台提供商,平台提供商的接入协议各不相同,终端制造商需要给每款终端维护提供各种不同平台的软件版本,造成了极大的资源浪费。各地视频大规模建设后,省级、国家级集中调阅,对重特大事件通过视频掌握现场并进行指挥调度的需求逐步涌现,然而不同平台间缺乏统一的互通协议。在这样的产业背景下,基于终端标准化、平台互联互通的需求,GB/T28181应运而生。GB28181标准规定了公共安全视频监控联网系统(以下简称联网系统) 的互联结构, 传输、 交换、 控制的基本要求和安全性要求, 以及控制、 传输流程和协议接口等技术要求。
SIP是一个应用层的控制协议,可以用来建立、修改、和终止多媒体会话(或者会议)例如Internet电话。SIP在建立和维持终止多媒体会话协议上,支持5个方面:
B接口订阅部分可以参考GB28181的实现,只是body体的不同, 同样是Subscribe方法。有告警时采用Notify的方法进行通知。 抓包如下:
今年初接到一个项目任务,客户要求在自己的音视频平台系统中集成webrtc功能(原系统是基于SIP协议开发的,已经稳定运行多年,有很多客户)。在比对了多家RTC产品的效果后,。他们对声网音视频DEMO效果后非常满意,指定要求用声网的SD-RTN传输网络,全面改造客户端软件。据客户实测,在某些国家和地区,同样网络环境下比微信要好很多,比如在东非和中国之间语音通话,延迟很小、声音也更清晰。
主叫方(1004,Yate客户端,端口号:52110) -> 通过FreeSWITCH(端口号:5070)呼叫 -> 被叫方(1000,ZoIPer客户端,端口号:5070)
在「在 MacOS 系统的 /home 目录下创建文件夹的方法」这篇文章中,我们描述了如何在/home目录下创建文件夹的方法,但如果我们的 MacOS 系统连/home目录都没有呢?
目前在国内需要WebRTC协议与SIP协议互通的场景主要集中在应用程序(App/Web)对接企业呼叫中心系统客服坐席、音视频会议对接PSTN/SIP音视频通话、企业内部App移动工作台(智能办公电话)、CRM系统集成电话呼叫功能、智能硬件(如:智能门禁设备、电梯救援设备、智能陪伴机器人)对接PSTN通话等落点电话场景。
基于Workerman实现基于UDP的异步SIP服务器是一个涉及网络编程和协议实现的复杂任务。Workerman是一个高性能的PHP socket服务器框架,它支持TCP、UDP、UnixSocket等多种协议,非常适合用于开发需要长连接或高并发的网络应用。下面将详细介绍如何使用Workerman来实现一个基于UDP的异步SIP服务器。
在 Python、C++0x 和 SWIG 2.0 中,构建如下 C++ 代码时遇到问题:
注册和注销基本要求 SIP客户端、网关、SIP设备、联网系统等 SIP代理(SIP UA)使用IETFRFC3261中定义的方法 GB/T28181—2016Register进行注册和注销。
在一些涉及系统融合的项目中,经常会有人把GB/T28181和SIP混淆,特别是在项目实施与配置的时候,视频监控联网的许多参数都被写成SIP,这让现场工程师感到困扰。
文章目录 Device => Platform: Platform => Device : Device => Platform: REGISTER sip:130909115229300920@10.64.49.44:7100 SIP/2.0 Via: SIP/2.0/UDP 10.64.49.218:7100;rport;branch=z9hG4bK939844823 From: <sip:130909113319427420@10.64.49.218:7100>;tag=3806746264 T
GB28181-2022注册、注销基本要求相对GB28181-2016版本,做了一定的调整,新调整的部分如下:
国标GB/T28181协议作为公安部提出的摄像头通用接入标准,受到了很多安防企业的使用,我们的国标流媒体服务器EasyGBS就是能够支持国标GB/T28181协议的流媒体服务器,能够接入国家公安部系统。
本文来自FOSDEM 2020 Real Time的演讲,演讲者是SIP3的CTO兼联合创始人的Oleg Agafonov,演讲主题是基于IP的语音传输(VoIP)故障排除和监视的常见问题解答。
设备目录查询是GB28181协议中的一项重要功能。其通过查询设备目录,获取到当前系统中的所有设备信息。设备目录查询的信令交互流程如下:
老金曰:Python是支持可视化编程,进行GUI开发库有Tkinter、wxPython和 PyQt,前面两个不说了,不支持向C#程序那么方便的拖放控件编程,完全是盲人摸象,对我这种美感不强的人来说,简直是致命的威胁,而pyqt4或者 pyqt5完美的解决了我这个困惑,下面就pyqt+pycharm集成安装配置做了详细说明,经验之谈,让你觉得踏过的坑不会再一次踏了。
GB28181协议是视频监控领域的国家标准,本文将解析如何在FFmpeg中增加对GB28181协议的支持,使其可以与支持GB28181协议的设备进行通信与控制,实现设备的注册、保活以及流媒体的传输。 GB28181协议指的是国家标准GB/T 28181—2016《公共安全视频监控联网系统信息传输、交换、控制技术要求》1,该标准规定了公共安全视频监控联网系统的互联结构, 传输、交换、控制的基本要求和安全性要求, 以及控制、传输流程和协议接口等技术要求,是视频监控领域的国家标准。GB28181协
今天在根目录下,新建目录时出现了Read-only file system提示为只读的错误。电脑最近并没有非正常关机之类可能导致文件损伤的操作,但是最近倒是进行了一次系统更新。
国网B接口是国家电网视频监控系统的内部接入协议,具体是指提供视频监控系统与属于该平台的前端系统之间的接口。近期我们也在研究该接口的接入相关研发事宜,今天来分享一些技术干货。
exe文件给Windows用,但是本章不安装,但是不排除后期更新文章,因为博主还没入门,还没考虑这么多!!!“囧”)
3、codec包括ffmpeg/x264/openh264, ilbc,faac,faad2,opus ;
实时视音频点播的SIP消息应通过本域或其它域的SIP服务器进行路由、转发,目标设备的实时视音频流宜通过本域内的媒体服务器进行转发。
在SIP终端注册或呼叫时,为了安全起见,SIP Server通常需要对用户(主叫)的身份进行认证。
MRCP(Media Resource Control Protocol)媒体资源控制协议,是语音服务器用来向客户端提供各种服务(比如我们熟悉的语音识别和语音合成)的通信协议。MRCP需要承载于其他协议之上,如RTSP (Real Time Streaming protocol)或SIP (Session Initiation protocol),MRCP协议有两个版本,版本v1依赖于RTSP协议来创建媒体流和数据传输,但版本V1兼容性较差,很难兼容不同厂家的扩展要求。版本v2使用了SIP来负责会话和媒体的创建,增加了扩展性,保证了兼容性,目前大多数使用的都是V2版本。
在探讨这个问题之前,我们先看看GB/T28181-2016官方文档怎么说的,9.10.1章节校时基本要求提到:
SIP方式校时见本节具体描述;NTP(见IETFRFC2030)协议的网络统一校时服务,网络校时设备分为时钟源和客户端,支持客户/服务器的工作模式,时钟源应支持 TCP/IP、UDP及 NTP协议,将输入的或是自身产生的时间信号以标准的 NTP信息包格式输出。
随着视频监控应用的发展,涌现了大量的监控平台提供商,它们的接入协议各不相同,对不同厂商设备集中调阅的复杂度越来越高。在这样的产业背景下,GB/T28181 应运而生。
REGISTER sip:130909115229300920@10.64.49.44:7100 SIP/2.0
在FreeSwitch控制台中,输入上面的命令行(on为打开,off为关闭),然后用Client(比如:免费开源软电话MicroSIP)注册,此时FreeSwitch中会输出4段SIP报文,分别对应认证过程中的4个阶段,类似下面这样:
sipp是一个针对SIP协议进行测试的免费开源工具,可运行于windows/mac/linux,官方地址:http://sipp.sourceforge.net/。
领取专属 10元无门槛券
手把手带您无忧上云