***************************************************************************************************************************

作者:EasyWave                                                                              时间:2014.10.30

类别:Linux应用-基于oSIP协议的开源VOIP之QuteCom简单介绍        声明:转载,请保留链接

注意:如有错误。欢迎指正。

这些是我学习的日志文章......

***************************************************************************************************************************

一:QuteCom简单介绍

       近年来,随着网络带宽的添加和各种多媒体终端设备成本的下降,Voice over IP 和Video over IP 获得广泛的应用。其关键技术——信令技术眼下有两种。ITU-T 提出的H.323是在分组交换网上多媒体通信的技术规范,已获得业界认可,但构成复杂。实现困难;IETF提出的会话初始化协议SIP(Session Initiation Protocol)也是一种支持多媒体会话的信令控制协议,用于创建、改动以及终止一个或多个參与者參加的会话进程。与H.323
相比,SIP更简单灵活、易于实现,已逐渐成为关注的焦点。

       眼下,已经有非常多组织实现了SIP 协议栈并将其开源。供开发人员方便快捷的使用,如OSIP 和Resiprocate 等开源项目,这些开源码依照RFC3261 等SIP 相关的标准实现了SIP协议栈。在其基础上开发Voice/Video over IP client软件还须要结合RTP、音视频编码等相关的技术,才干实现一个完整的Client。QuteCom(前身是WengoPhone)开源网络电话是将SIP、RTP
和音视频编解码等技术结合,用c/c++语言开发了一个简单灵活的平台。开发人员能够非常easy的利用它来实现具有音视频和即时消息传输功能的client软件。QuteCom是基于QT开发的。这样就能够非常方便的移植到嵌入式Linux系统中去,尤其是对于VOIP对讲系统来说,QuteCom软件界面例如以下所看到的:





二:QuteCom官方站点

       QuteCom的开源官方站点:http://www.qutecom.org/   

例如以下所看到的:



三:SIP和RTP协议简单介绍



       3.1 SIP 概要

SIP 是由IETF 提出来的一个应用控制(信令)协议[1]。正如名字所隐含的--用于发起会话。它可用来创建、改动以及终结多个參与者參加的多媒体会话进程。參与会话的成员能够通过组播方式、单播连网或者两者结合的形式进行通信。

SIP 中有客户机和server之分。客户机是指为了向server发送请求而与server建立连接的应用程序。

用户代理(User Agent)和代理(Proxy)中含有客户机。

server是用于向客户机发出的请求提供服务并回送应答的应用程序。

共同拥有四类基本server:

  • 用户代理server:当接到SIP 请求时它联系用户,并代表用户返回响应。
  • 代理server:代表其他客户机发起请求,既充当server又充当客户机的媒介程序。在转发请求之前,它能够改写原请求消息中的内容。
  • 重定向server:它接收SIP 请求,并把请求中的原地址映射成零个或多个新地址,返回给客户机。
  • 注冊server:它接收客户机的注冊请求,完毕用户地址的注冊。

使用 SIP 有一下优势:

      ① easy理解。SIP 协议是基于文本形式的

      ② 比較简单。SIP 协议(包含SDP)文本仅100 多页。信息类型也比較少。

      ③ 功能扩充性比較好。SIP 协议定义了Require 头部字段,能够比較灵活地扩充各种增值业务。

④ 扩展性好。

SIP 能支持多域搜索,能够支持比較大的网络

      ⑤ 效率较高。完毕一个呼叫。SIP 协议的消息流数量比較少,因此运行效率比較高。



      3.2 RTP 技术

      实时传输协议 RTP(Real-time Transport Protocol)是在Internet 上处理多媒体数据流的一种网络协议,利用它可以在一对一(unicast。单播)或者一对多(multicast。多播)的网络环境中实现传流媒体数据的实时传输。

RTP 通常使用UDP 来进行多媒体数据的传输,但假设须要的话可以使用TCP 或者ATM 等其他协议,整个RTP 协议由两个密切相关的部分组成:RTP 数据协议和RTP 控制协议。实时流协议(Real Time
Streaming Protocol,RTSP)最早由Real Networks 和Netscape 公司共同提出,它位于RTP 和RTCP 之上,其目的是希望

通过IP 网络有效地传输多媒体数据。RTP 定义在RFC 1889 中, 使用RTP 协议的应用程序执行在RTP 之上,而执行RTP 的程序执行在UDP 的上层,目的是为了使用UDP 的port号和检查和。如表1 所看到的。RTP 能够看成是传输层的子层。由多媒体应用程序生成的声音和电视数据块被封装在RTP 信息包中,每一个RTP 信息包被封装在UDP 消息段中。然后再封装在IP 数据包中。

从应用开发者的角度来看,能够把 RTP 运行程序看成是应用程序的一部分,由于开发者必需把RTP 集成到应用程序中。在发送端,开发者必需把运行RTP 协议的程序写入到创建RTP 信息包的应用程序中,然后应用程序把RTP 信息包发送到UDP 的套接口(socket

interface)。例如以下图所看到的;相同,在接收端,RTP 信息包通过UDP 套接口输入到应用程序,因此开发者必需把运行RTP 协议的程序写入到从RTP 信息包中抽出媒体数据的应用程序。





        3.3 QuteCom的优势

QuteCom是可以在PC之间进行具有语音视频功能的呼叫和具有IM 即时通信功能的软件,通信部分基于SIP 协议,利用开源SIP协议栈oSIP实现,对于音视频流的传输基于RTP 协议,利用开源RTP协议栈ORTP实现。因为QuteCom基于开源项目而本身又是开源的。所以对VOIP和IM开发人员来说。就行非常easy的拿来借鉴来开发自己的client软件。

QuteCom具有下面长处:

  • 基于 SIP 协议。灵活方便易于扩展。
  • 基于开源,致力于开源。为 VOIP、IM 开发人员提供了非常好的平台。

  • 跨平台,支持 Windows 和Unix 操作系统。免去了移植的麻烦。

  • 对通信部分,提供了一个方便的平台。开发人员能够利用其非常方便的开发自己的VOIP、IM client软件。
  • 考虑到了 NAT 穿越的问题。并通过STUN、Httptunnel 等技术实现。

四:QuteCom移植展望

      兴许会考虑将QuteCom移植到嵌入式Linux系统验证一下作为实际产品是否是可行的。因为前期已经将开源的LinPhone移植到嵌入式Linux下。而且也是全然能够在嵌入式下Linux下执行的。能够作为一个款不错的VOIP对讲系统的产品。

基于SIP和RTP协议的开源VOIP之QuteCom简单介绍的更多相关文章

  1. ECharts开源图表使用方法简单介绍

    ECharts图表是基于Canvas,纯Javascript图表库,基于BSD开源协议,官网地址:http://echarts.baidu.com/index.html 需要先下载插件:https:/ ...

  2. RabbitMQ是一个由erlang开发的基于AMQP(Advanced Message Queue )协议的开源实现。

    RabbitMQ是一个由erlang开发的基于AMQP(Advanced Message Queue )协议的开源实现. 1. 介绍 RabbitMQ是一个由erlang开发的基于AMQP(Advan ...

  3. 基于RTP协议的H.264传输

    1.  引言        随 着信息产业的发展,人们对信息资源的要求已经逐渐由文字和图片过渡到音频和视频,并越来越强调获取资源的实时性和互动性.但人们又面临着另外一种不可避免 的尴尬,就是在网络上看 ...

  4. SIP会话发起协议 - 先知道是什么(一)

    少年,思无邪,最最动人. 协议概述 SIP会话发起协议是VoIP技术中最常用的协议之一.它是一种应用层协议,与其它应用层协议协同工作,通过Internet控制多媒体通信会话. SIP采用SDP(会话描 ...

  5. 【转】实现RTP协议的H.264视频传输系统

    1.  引言       随着信息产业的发展,人们对信息资源的要求已经逐渐由文字和图片过渡到音频和视频,并越来越强调获取资源的实时性和互动性.但人们又面临着另外一种不可避免的尴尬,就是在网络上看到生动 ...

  6. Android Sip学习(三)Android Voip实现

    Android Sip学习(三)Android Voip实现   Android Sip学习(准备知识)SIP 协议完整的呼叫流程 Android Sip学习(一)Android 2.3 APIs S ...

  7. SIP协议简单介绍

    sip协议是由IETF提出的IP电话信令协议,主要目的是为了解决ip网络中的信令控制,以及同软交换通信. sip协议类似http协议: 报文结构: start-line message-header ...

  8. Linux下几种RTP协议实现的比较和JRTPLIB编程讲解

    流媒体指的是在网络中使用流技术传输的连续时基媒体,其特点是在播放前不需要下载整个文件,而是采用边下载边播放的方式,它是视频会议. IP电话等应用场合的技术基础.RTP是进行实时流媒体传输的标准协议和关 ...

  9. 自己动手写RTP服务器——关于RTP协议

    转自:http://blog.csdn.net/baby313/article/details/7353605 本文会带领着你一步步动手实现一个简单的RTP传输服务器,旨在了解RTP流媒体传输协议以及 ...

随机推荐

  1. 自己动手写shell命令之more

    unix下more命令的简单实现: #include <stdio.h> #define PAGELEN 24 #define LINELEN 512 int do_more(FILE * ...

  2. 设计网页录入信息与自己定义server数据接收

    需求:设计一个注冊网页用于录入username和登录password.并将数据传入server并显示出来. 1.前言:网页提交的 get 和 post 两种方式. (1)对于get提交方式,以本文中样 ...

  3. 90.bower解决js的依赖管理

    转自:https://blog.csdn.net/u011537073/article/details/52951122 前言一个新的web项目开始,我们总是很自然地去下载需要用到的js类库文件,比如 ...

  4. 唯品会API网关设计与实践--转

    原文地址:https://609518.kuaizhan.com/86/70/p4108366952248f 刘璟宇Leo 唯品会资深研发工程师,在大型高性能分布式系统设计和开发方面有丰富的经验.目前 ...

  5. 三级联动(ajax同步)

    html <div id="frame"></div> js $(function(){ //拼接省市区下拉框 var str = `<select ...

  6. SpringMVC学习(二)——SpringMVC架构及组件(及其运行原理)-转载

    相信大家通过前文的学习,已经对SpringMVC这个框架多少有些理解了.还记得上一篇文章中SpringMVC的处理流程吗?  这个图大致描述了SpringMVC的整个处理流程,这个流程图还是相对来说比 ...

  7. 74HC164应用

    管脚定义与内部逻辑图 注:管脚一般A.B连在一起作为一个输入:CLR硬件接VDD. 原理如下:每8个CLK上升沿,bit分别从QA移至QH,所以给定一个字节,左移后送入至A/B,这样Bit7经过8个上 ...

  8. swfit的特点

    swfit的特点: 1.swift句尾不需要分号,除非你想在一行中写三行代码就加分号隔开. 2.swift不要写main函数,程序默认从上往下执行 3.swift不分.h和.m文件,一个类只有.swi ...

  9. 运维派 企业面试题4&5 创建10个 用户 ; ping探测主机是否在线

    Linux运维必会的实战编程笔试题(19题) 企业面试题4: 批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码为随机8位字符串). #!/bin/bash # ;i<=; ...

  10. 玩转HTML5移动页面(动效篇)

    为一名前端,在拿到设计稿时你有两种选择: 快速输出静态页面 加上高级大气上档次狂拽炫酷屌炸天的动画让页面动起来 作为一个有志向的前端,当然是选2啦!可是需求时间又很短很短,怎么办呢? 这次就来谈谈一些 ...