最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

SIP定义、构成、注册流程、通话流程

来源:动视网 责编:小OO 时间:2025-09-23 12:57:40
文档

SIP定义、构成、注册流程、通话流程

什么是SIPSIP,(SessionInitiationProtocol,会话发起协议),它是一种信令协议。通常情况下,两个端点使用SIP来协商一次“呼叫”。这里的协商包括介质(文本、语音等)、传输(通常是RTP、RealTimeProtocol)和编码(codec)。一旦协商成功,两个端点就会使用选中的方法相互交谈——这就与SIP无关了。“呼叫”完成之后,SIP用于指示断开连接。SIP具有以下的明显优点:稳定性。该协议已经使用了多年,现在十分稳定。速度。基于UDP的小型协议效率特别高。灵活性
推荐度:
导读什么是SIPSIP,(SessionInitiationProtocol,会话发起协议),它是一种信令协议。通常情况下,两个端点使用SIP来协商一次“呼叫”。这里的协商包括介质(文本、语音等)、传输(通常是RTP、RealTimeProtocol)和编码(codec)。一旦协商成功,两个端点就会使用选中的方法相互交谈——这就与SIP无关了。“呼叫”完成之后,SIP用于指示断开连接。SIP具有以下的明显优点:稳定性。该协议已经使用了多年,现在十分稳定。速度。基于UDP的小型协议效率特别高。灵活性
什么是SIP

SIP,(Session Initiation Protocol,会话发起协议),它是一种信令协议。通常情况下,两个端点使用SIP来协商一次“呼叫”。这里的协商包括介质(文本、语音等)、传输(通常是RTP、Real Time Protocol)和编码(codec)。一旦协商成功,两个端点就会使用选中的方法相互交谈——这就与SIP无关了。“呼叫”完成之后,SIP用于指示断开连接。

SIP具有以下的明显优点:

稳定性。该协议已经使用了多年,现在十分稳定。

速度。基于UDP的小型协议效率特别高。

灵活性。这个基于文本的协议十分容易扩展。

安全性。它提供像加密(SSL、S/MIME)和身份验证这样的功能。对SIP的扩展还提供其他安全性功能。

标准化。随着整个通信行业都在向SIP靠拢,SIP已经讯速成为一种标准。其他技术可能具有SIP所没有的优势,但是它们没有得到全球范围内的采用。

SIP对通信业产生了巨大的影响。从事蜂窝技术的公司已经决定为了未来的应用,对SIP进行标准化。VoIP(Voice over IP)供应商、Internet电话和即时消息传递应用程序(例如,Microsoft MSN Messenger)都准备基于SIP进行标准化。

SIP的应用及发展与IP较为类似,随着IP智能的适用领域不断增多,SIP的地位也将更加重要,迄今为止,SIP已经有了广泛的应用,而且,随着其臻于完善,必将在下一代网络中发挥更重要的作用。

目前,市场上支持SIP的产品(特别是终端)越来越多,出现了基于SIP的呼叫中心、视讯会议等多种企业级应用解决方案。而在构建下一代网络、开发更新业务的进程中,其还将发挥更多作用。

SIP的会话构成

SIP 会话使用多达四个主要组件:SIP 用户代理、SIP 注册服务器、SIP 代理服务器和 SIP 重定向服务器。这些系统通过传输包括了 SDP 协议(用于定义消息的内容和特点)的消息来完成 SIP 会话。下面概括性地介绍各个 SIP 组件及其在此过程中的作用。

3.1、SIP 用户代理

SIP 用户代理(UA) 是终端用户设备,如用于创建和管理 SIP 会话的移动电话、多媒体手持设备、PC、PDA 等。用户代理客户机发出消息。用户代理服务器对消息进行响应。

3.2、SIP 注册服务器

SIP 注册服务器是包含域中所有用户代理的位置的数据库。在 SIP 通信中,这些服务器会检索参与方的 IP 地址和其他相关信息,并将其发送到 SIP 代理服务器。

3.3、SIP 代理服务器

SIP 代理服务器接受 SIP UA 的会话请求并查询 SIP 注册服务器,获取收件方 UA 的地址信息。然后,它将会话邀请信息直接转发给收件方 UA(如果它位于同一域中)或代理服务器(如果 UA 位于另一域中)。

3.4、SIP 重定向服务器

SIP 重定向服务器允许 SIP 代理服务器将 SIP 会话邀请信息定向到外部域。SIP 重定向服务器可以与 SIP 注册服务器和 SIP 代理服务器同在一个硬件上。

SIP注册流程以及常见的头域

注册服务为特定地区的位置服务创建绑定关系,这个绑定关系是用来建立包含一个或者多个联系地址的address-of-record URI。因而,当那个地区的proxy接收到一个请求,这个请求的Request-URI和address-of-record的记录匹配,那么这个proxy会转发请求到这个address-of-record中登记的联系地址中去。

Address-of-Record: 记录地址。一个address-of-record(AOR)是一个SIP或者SIPS URI它指向了一个具有定位服务的主机,这个主机可以把URI映射成为用户真正物理位置的URI。通常情况下,定位服务器是通过登记服务来建立的。一个AOR经常被认为是一个用户的”公共地址”。 

需要注意的是,登记服务器(registrar)和proxy服务器都是逻辑上的角色,可以在网络中用一个设备来部属.还需要注意的是如果他们(登记服务器和proxy)本身是分开的,那么UA可以通过proxy服务器发送注册请求。  

1 构造一个REGISTER请求

REGISTER请求用来增加、删除、查询绑定资料。

下面这些头域,除了Contact,必须在REGISTER头域中包含。Contact头域可选。

Request-URI: 这个头域指明了登记服务所指明的位置服务所在的区域(比如sip:chicago.com)。”userinfo”和”@”元素在SIP URI中不能出现。

To:这个头域包含了被查询、增加、修改的address-of-record。to头域和Request-URI头域通常是不同的,因为这个由用户名组成。这个address-of-record必须是一个SIP URI或者SIPS URI.

From: 这个头域包含了提交这个注册信息的用户的address-of-record资料。这个值和To头域的值相同,除非这个请求是第三方发起的注册请求。

Call-ID: UAC发出的给某个注册服务器(registrar)的所有注册请求都应该有相同的Call-ID头域值。如果相同的客户端用了不同的Call-ID值,注册服务器(registrar)就不能检测是否一个REGISTER请求由于延时的关系导致了故障。

Cseq: Cseq值保证了REGISTER请求的正确顺序。一个UA为每一个具备相同的Call-ID的REGISTER请求顺序递增这个Cseq字段。

Contact: REGISTER请求可以有一个Contact头域。这个头域可以有0个或者多个包含绑定地址信息的值。 “expires”参数表明UA的绑定的有效时间。以秒为单位的整数。如果本参数没有制定,那么这个参数的值就是Expires头域的值。实现中,可以把超过2**32-1的值(4294967295秒或者136年)认为是2**32-1。非法的值应当视同3600。

UA在没有收到上一个注册请求的应答或者上一个REGISTER请求超时之前,禁止发送新的注册请求(就是说,包含一个新的Contact头域值,而不是重发)。  

1.1 增加绑定

1.1.1 设置Contact地址的过期参数

当一个客户端发出一个REGISTER请求,它可能包含一个过期参数用来表示这个注册的地址的有效期。

客户端设置有效期的方法有两种:一个是通过设置Expires头域,一个是通过设置”expires”contact头域的参数来设置。后一种允许针对同一个REGISTER请求中的多个绑定联系地址中的每一个联系地址单独设定有效期,然后所有没有带”expires”参数的Contact头域的值都使用Expires的设置。

如果REGISTER中没有两种有效期都没有设置,这就表明这个有效期由服务器来决定。

1.1.2 Contact Adress的参数选择

如果在一个REGISTER请求中包含多个Contact,这说明UA想要把这些Contact头域的内容都和To头域中制定的address-of-record地址绑定起来。这个列表可以用”q”参数来区分Contact头域的优先级。”q”参数用来标志特定Contact头域值和其他绑定的address-of-record的联系地址之间的优先级。 

1.2 删除绑定

注册信息是一个纯粹软件的状态,并且如果不刷新会过期。如果需要,也可以被删除。一个客户端可以设置注册服务器(registar)的有效期(10.2.1)。一个UA可以通过发出有效期为”0”的REGISTER请求,使某一个联系地址立刻失效。UAS都需要实现这个机制使得在联系地址过期前能够被删除。

REGISTER规范中的Contact头域如果设置成为”*”则表示需要操作所有的注册项。但是也只能在具有一个Expires头域并且这个头域为’0’的情况下能够使用。(这就是说,只能够在要删除所有的注册项的时候使用”)。

用来删除所有的注册项有一个好处,就是使得UA不需要知道每一个注册项的精确值。 

1.3 访问绑定

无论请求是否包含了Contact头域,给任何REGISTER请求的成功应答都包含了一个完整的绑定列表。如果REGISTER请求头域中不包含Contact头域,那么注册服务器的绑定列表将不会改变。

1.4 刷新绑定

每一个UA都对先前它建立的绑定信息由刷新的义务。禁止对其他UA建立的绑定信息进行刷新。于是在这些绑定信息过期前,UA为每个绑定发出REGISTER请求来刷新绑定。也可以通过一个REGISTER请求来刷新数个绑定请求。

UA在一个刷新周期中,应该使用相同的Call-ID来进行注册调用。 

1.5寻找注册服务器

UA有3种方法来决定向哪里发出注册请求:通过配置,使用address-of-record,广播方式。

1)一个UA可以用非本文档规定的方式,配置一个注册服务器的地址。

2)用请求的Request-URI部分种的address-of-record的服务器部分(host part),用普通的SIP服务器定位机制。比如,用户”sip:carol@chicago.com”地址的注册服务应该是”sip:chicago.com”。

3)UA可以通过监听广播的形式来获得注册服务器地址。 

1.6错误响应

如果UA接收到一个423(间隔太简略)应答,它可能需要更改REGISTER请求中的所有有效期,使得这些有效期必须大于等于423应答头中的Min-Expires头域中的有效期,并且重新尝试发送这个REGISTER请求。  

2 处理REGISTER请求

一个注册服务器(registrar)就是一个UAS,这个UAS用来响应REGISTER的请求,并且维持一个绑定表,这个绑定表用来提供给它所管理的区域中的proxy服务器和重定向服务器的。

一个注册服务器禁止产生6xx应答。

一个注册服务器可以适当的转发REGISTER请求。通常用于一个注册服务器(registar)监听一个多点广播,并且通过302应答(临时转移)转发这个多点广播的REGISTER请求到它正确的处理位置。

一个注册服务器必须知道(例如,通过配置)它所管理的区域。注册服务器一定需要按照接收到的REGISTER请求顺序进行处理。

当接收到一个REGISTER请求,注册服务器(registrar)按照如下步骤处理:

1、注册服务器(registrar)检查Request-URI来决定是否它属于本注册服务器所管理的区域的Request-URI。如果不是,并且如果这个服务器同时也作为一个proxy服务器,那么这个服务器应当转发这个请求到指定的区域。

2、为了保证注册服务器能够支持所需要的扩展,注册服务器必须处理Require头域。

3、一个注册服务器应当对UAC进行身份认证。

4、注册服务器应当检查认证的用户是否通过认证来更改这个address-of-record的登记权限。

5、注册服务器(registrar)从REGISTER请求的To头域中解出address-of-record。如果这个address-of-record并非在这个Request-URI指明的区域中合法,那么注册服务器必须发出一个404(没有找到)的应答,并且跳过后续步骤。接着URI必须转换成为标准的格式。所有的URI参数都必须删去(包括用户参数user-param),并且任何非法(escaped)字符必须转换成为合法字符(unescaped)格式。最后形成一个可以用于绑定的列表。

6、注册服务器(registrar)检查是否请求包含了一个Contact头域。如果没有包含,它跳过到最后一步。如果Contact头域包含了,注册服务器检查是否有一个Contact头域值是”*”,并且包含了一个Expires头域。如果请求有其他的Contact头域或者任何有效期的值是非0的,这个请求就是非法请求,并且服务器必须送回一个400(非法请求)的应答,跳过后续步骤。如果没有,那么注册服务器检查是否Call-ID复核每一个绑定的值。如果不符合,它必须删除绑定。如果符合,它必须仅仅删除保存的绑定表中CSeq值小于请求中的Cseq值的记录。否则,更新必须终止,请求失败。

7、现在注册服务器(registrar)可以依次处理Contact头域中的联系地址了。

8、注册服务器(registrar)返回一个200(OK)应答。这个应答必须包含Contact头域,并且这个头域的值中列举了所有当前绑定的注册信息。每一个Contact值都必须包含一个”expires”参数,用来标志还有多久这个绑定信息就过期了。应答也必须包含一个Date头域。

SIP通话流程

说到SIP的分析那就一定离不开WireShark,这是一款功能很强大的数据包截获软件(Packet capture software)。最重要的是,它是免费的。下面我们就开始看一个最简单的SIP通话流程:

这个流程我用了一个电话(User Agent)打给我的一个SIP服务器(User Agent Server),然后服务器会放语音提示(IVR)键入.电话IP: 172.22.3.38;服务器: 172.22.3.33

什么是NET?

NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。简单的说,NAT就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关(可以理解为出口,打个比方就像院子的门一样)处,将内部地址替换成公用地址,从而在外部公网(internet)上正常使用,NAT可以使多台计算机共享Internet连接,这一功能很好地解决了公共IP地址紧缺的问题。通过这种方法,您可以只申请一个合法IP地址,就把整个局域网中的计算机接入Internet中。这时,NAT屏蔽了内部网络,所有内部网计算机对于公共网络来说是不可见的,而内部网计算机用户通常不会意识到NAT的存在。如图2所示。这里提到的内部地址,是指在内部网络中分配给节点的私有IP地址,这个地址只能在内部网络中使用,不能被路由(一种网络技术,可以实现不同路径转发)。虽然内部地址可以随机挑选,但是通常使用的是下面的地址:10.0.0.0~10.255.255.255,172.16.0.0~172.16.255.255,192.168.0.0~192.168.255.255。NAT将这些无法在互联网上使用的保留IP地址翻译成可以在互联网上使用的合法IP地址。而全局地址,是指合法的IP地址,它是由NIC(网络信息中心)或者ISP(网络服务提供商)分配的地址,对外代表一个或多个内部局部地址,是全球统一的可寻址的地址。

NAT功能通常被集成到路由器、防火墙、ISDN路由器或者单独的NAT设备中。比如Cisco路由器中已经加入这一功能,网络管理员只需在路由器的IOS中设置NAT功能,就可以实现对内部网络的屏蔽。再比如防火墙将WEB Server的内部地址192.168.1.1映射为外部地址202.96.23.11,外部访问202.96.23.11地址实际上就是访问访问192.168.1.1。另外资金有限的小型企业来说,现在通过软件也可以实现这一功能。Windows 98 SE、Windows 2000 都包含了这一功能。

NAT技术类型

NAT有三种类型:静态NAT(Static NAT)、动态地址NAT(Pooled NAT)、网络地址端口转换NAPT(Port-Level NAT)。

其中静态NAT设置起来最为简单和最容易实现的一种,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。而动态地址NAT则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。NAPT则是把内部地址映射到外部网络的一个IP地址的不同端口上。根据不同的需要,三种NAT方案各有利弊。

动态地址NAT只是转换IP地址,它为每一个内部的IP地址分配一个临时的外部IP地址,主要应用于拨号,对于频繁的远程联接也可以采用动态NAT。当远程用户联接上之后,动态地址NAT就会分配给他一个IP地址,用户断开时,这个IP地址就会被释放而留待以后使用。

网络地址端口转换NAPT(Network Address Port Translation)是人们比较熟悉的一种转换方式。NAPT普遍应用于接入设备中,它可以将中小型的网络隐藏在一个合法的IP地址后面。NAPT与动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的TCP端口号。

在Internet中使用NAPT时,所有不同的信息流看起来好像来源于同一个IP地址。这个优点在小型办公室内非常实用,通过从ISP处申请的一个IP地址,将多个连接通过NAPT接入Internet。实际上,许多SOHO远程访问设备支持基于PPP的动态IP地址。这样,ISP甚至不需要支持NAPT,就可以做到多个内部IP地址共用一个外部IP地址上Internet,虽然这样会导致信道的一定拥塞,但考虑到节省的ISP上网费用和易管理的特点,用NAPT还是很值得的。

为什么需要NET穿透?

NAT穿越(NAT traversal)涉及TCP/IP网络中的一个常见问题,即在处于使用了NAT设备的私有TCP/IP网络中的主机之间建立连接的问题。

会遇到这个问题的通常是那些客户端网络交互应用程序的开发人员,尤其是在对等网络和VoIP领域中。IPsec VPN客户普遍使用NAT-T来达到使ESP包通过NAT的目的。

尽管有许多穿越NAT的技术,但没有一项是完美的,这是因为NAT的行为是非标准化的。这些技术中的大多数都要求有一个公共服务器,而且这个服务器使用的是一个众所周知的、从全球任何地方都能访问得到的IP地址。一些方法仅在建立连接时需要使用这个服务器,而其它的方法则通过这个服务器中继所有的数据——这就引入了带宽开销的问题。

NAT穿越的方法

一、NAT/ALG 方式

  普通NAT是通过修改UDP或TCP报文头部地址信息实现地址的转换,但对于VOIP应用,在TCP/UDP净载中也需带地址信息,ALG方式是指在私网中的VOIP终端在净载中填写的是其私网地址,此地址信息在通过NAT时被修改为NAT上对外的地址。

  语音和视频协议(H323、SIP、MGCP/H248)的识别和对NAT/Firewall的控制,同时每增加一种新的应用都将需要对 NAT/Firewall进行升级。

  在安全要求上还需要作一些折衷,因为ALG 不能识别加密后的报文内容,所以必须保证报文采用明文传送,这使得报文在公网中传送时有很大的安全隐患。

  NAT/ALG是支持VOIP NAT穿透的一种最简单的方式,但由于网络实际情况是已部署了大量的不支持此种特性的NAT/FW设备,因此,实际应用中,很难采用这种方式。

二、MIDCOM 方式

  与NAT/ALG不同的是,MIDCOM的基本框架是采用可信的第三方(MIDCOM Agent)对Middlebox(NAT/FW)进行控制,VOIP协议的识别不由Middlebox完成,而是由外部的MIDCOM Agent完成,因此VOIP使用的协议对Middlebox是透明的 . 

  由于识别应用协议的功能从Middlebox移到外部的MIDCOM Agent上,根据MIDCOM 的构,在不需要更改Middlebox基本特性的基础上,通过对MIDCOM Agent的升级就可以支持更多的新业务,这是相对NAT/ALG方式的一个很大的优势。

  在VOIP实际应用中,Middlebox功能可驻留在NAT/Firewall,通过软交换设备(即MIDCOM Agent)对IP语音和视频协议(H323、SIP、MGCP/H248)的识别和对NAT/Firewall的控制,来完成VOIP应用穿越 NAT/Firewall .在安全性上,MIDCOM方式可支持控制报文的加密,可支持媒体流的加密,因此安全性比较高。

  如果在软交换设备上实现对SIP/H323/MGCP/H248协议的识别,就只需在软交换和NAT/FW设备上增加MIDCOM协议即可,而且以后新的应用业务识别随着软交换的支持而支持,此方案是一种比较有前途的解决方案,但要求现有的NAT/FW设备需升级支持MIDCOM协议,从这一点上来说,对已大量部署的NAT/FW设备来说,也是很困难的,同NAT/ALG方式有相同的问题。

三、STUN 方式

  解决穿透NAT问题的另一思路是,私网中的VOIP终端通过某种机制预先得到出口NAT上的对外地址,然后在净载中所填写的地址信息直接填写出口NAT上的对外地址,而不是私网内终端的私有IP地址,这样净载中的内容在经过NAT时就无需被修改了,只需按普通NAT流程转换报文头的IP地址即可,净载中的 IP地址信息和报文头地址信息是一致的。STUN协议就是基于此思路来解决应用层地址的转换问题。

  STUN的全称是Simple Traversal of UDP Through Network Address Translators,即UDP对NAT的简单穿越方式。应用程序(即STUN CLIENT)向NAT外的STUN SERVER通过UDP发送请求STUN 消息,STUN SERVER收到请求消息,产生响应消息,响应消息中携带请求消息的源端口,即STUN CLIENT在NAT上对应的外部端口。然后响应消息通过NAT发送给STUN CLIENT,STUN CLIENT通过响应消息体中的内容得知其NAT上的外部地址,并将其填入以后呼叫协议的UDP负载中,告知对端,本端的RTP接收地址和端口号为NAT 外部的地址和端口号。由于通过STUN协议已在NAT上预先建立媒体流的NAT映射表项,故媒体流可顺利穿越NAT. 

  STUN协议最大的优点是无需现有NAT/FW设备做任何改动。由于实际应用中,已有大量的NAT/FW,并且这些NAT/FW并不支持VoIP的应用,如果用MIDCOM或NAT/ALG方式来解决此问题,需要替换现有的NAT/FW,这是不太容易的。而采用STUN方式无需改动NAT/FW,这是其最大优势,同时STUN方式可在多个NAT串联的网络环境中使用,但MIDCOM方式则无法实现对多级NAT的有效控制。

  STUN的局限性在于需要VOIP终端支持STUN CLIENT的功能,同时STUN并不适合支持TCP连接的穿越,因此不支持H323.另外STUN方式不支持对防火墙的穿越,不支持对称NAT (Symmetric NAT)类型(在安全性要求较高的企业网中,出口NAT通常是这种类型)穿越。

四、TURN方式

  TURN方式解决NAT问题的思路与STUN相似,也是私网中的VOIP终端通过某种机制预先得公网上的服务地址(STUN方式得到的地址为出口NAT上外部地址,TURN方式得到地址为TURN Server上的公网地址),然后在报文净载中所要求的地址信息就直接填写该公网地址。[Page] 

  TURN的全称为Traversal Using Relay NAT,即通过Relay方式穿越NAT.TURN应用模型通过分配TURN Server的地址和端口作为私网中VOIP终端对外的接受地址和端口,即私网终端发出的报文都要经过TURN Server进行Relay转发,这种方式除了具有STUN方式的优点外,还解决了STUN应用无法穿透对称NAT(Symmetric NAT)以及类似的Firewall设备的缺陷,同时TURN支持基于TCP的应用,如H323协议。此外TURN Server控制分配地址和端口,能分配RTP/RTCP地址对(RTCP端口号为RTP端口号加1)作为私网终端用户的接受地址,避免了STUN方式中出口NAT对RTP/RTCP地址端口号的任意分配,使得客户端无法收到对端发来的RTCP报文(对端发RTCP报文时,目的端口号缺省按RTP端口号加 1发送)。 TURN的局限性在于需要VOIP终端支持TURN Client,这一点同STUN一样对网络终端有要求。此外,所有报文都必须经过TURN Server转发,增大了包的延迟和丢包的可能性。

五、ICE方式[2]

应该说ICE是目前在NAT穿透[1]中最常用的方式。ICE(交互式连接建立)- Interactive Connectivity Establishment 是一种综合性的NAT穿越的技术。交互式连接建立是由IETF的MMUSIC工作组开发出来的一种framework,可整合各种NAT 穿透技术,如STUN[2]、TURN(Traversal Using Relay NAT)、RSIP(Realm Specific IP,特定域IP)等。该framework可以让SIP的客户端利用各种NAT穿透方式打穿远程的防火墙。

MAT:mat数据格式是matlab的数据存储的标准格式。你可以调用matlab的子程序库,用c或fortan调用mat格式的数据。我给你几个函数名:matopen打开mat文件,matclose关闭mat文件,  magetfp取得mat文件的c语言句柄,matGetArray取得一个数组。

文档

SIP定义、构成、注册流程、通话流程

什么是SIPSIP,(SessionInitiationProtocol,会话发起协议),它是一种信令协议。通常情况下,两个端点使用SIP来协商一次“呼叫”。这里的协商包括介质(文本、语音等)、传输(通常是RTP、RealTimeProtocol)和编码(codec)。一旦协商成功,两个端点就会使用选中的方法相互交谈——这就与SIP无关了。“呼叫”完成之后,SIP用于指示断开连接。SIP具有以下的明显优点:稳定性。该协议已经使用了多年,现在十分稳定。速度。基于UDP的小型协议效率特别高。灵活性
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top