oSIP开发者手册

oSIP 开发者手册
——本手册指导开发者利用oSIP栈开发用户代理
原文标题:oSIP User Manual
原文作者:Aymeric Moizard
联系方法: jack@atosc.org
版权保护:GNU Free Documentation License
项目网站: http://osip.atosc.org
译文作者:陈善学
联系方法: chenshanxue@263.net
 
摘要
“会话发起协议(Session Initiation Protocol-SIP) 是一个应用层的信令控制协议。用于创建、修改和终止一个或多个参与者的会话。这些会话可以是Internet 多媒体会议、IP 电话或多媒体分发(例如:语音信箱)。会话的参与者可以通过组播(multicast) 、网状单播(unicast) 或两者的混合体进行通信。”
"The Session Initiation Protocol (SIP) is an application-layer control (signaling) protocol for creating, modifying and terminating sessions with one or more participants. These sessions include Internet multimedia conferences, Internet telephone calls and multimedia distribution. Members in a session can communicate via multicast or via a mesh of unicast relations, or a combination of these."
版权
本文的版权归Aymeric Moizard所有。允许拷贝、分发和在”GNU Free Documentation License”(版本1.1或由自由软件基金会最近发布的任何版本)下的定制。需要注意的是,本文档的任何章节的引用(包括本中文翻译)需列出它们的标题、开始的文本和结尾文本,并且标明文档受”GNU Free Documentation Licence”保护。
Copyright (c) 2001 Aymeric MOIZARD. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled "GNU Free Documentation License".
前言
译者修正了原文中一些细微的错误。本文档是由译者独立完成,未免有翻译不妥之处,因此任何的建议和指正都是非常欢迎的。联系的方式是通过电子邮件至 chenshanxue@263.net
索引
 
正文
第一章 SIP协议
SIP协议是用于发起、控制和终结多媒体会话的信令协议。它被IETF( http://www.ietf.org )以rfc2543发表。
SIP是IETF致力于将电话服务带入IP网络众多协议的一个组成部分(它与SDP、RTP、RTCP、RTSP、RSVP、TRIP等众多协议构成SIP系统协议栈)。其将要变成正在发展的IP电话——这个朝气蓬勃的电信工业——的标准之一。正如同电子邮件协议一样,SIP将会变得越来越普及和大众化… …
SIP独立与媒体
传统电话使用一种媒体编码个师通讯(正如被我所熟知的时隙和PCM概念)。现在,这种方式将被终结。我们的电话可以以不同的质量保证和不同的编码方法连接电视、连接摄像机、连接其他电话进行通信。SIP具有媒体协商等功能。任何多媒体应用(例如:游戏、远程教学)都可以使用SIP来建立会话。
SIP独立于传输层
SIP并不和任何的传输层紧密结合。这一构思将使得SIP在第三代网络中受到最小的互操作影响。无线电话的要求(例如漫游功能)同样被关心。SIP完美的构思,使得其适合作为新蜂窝电话时代的信令协议。
SIP有很好的扩展性
在rfc2543中定义了6种类型的事务(INVITE,BYE,CANCEL… …)。这些事务被用于媒体协商、创建、修改和终结呼叫。许多其它的服务已经提供这些方式(例如H.323系统),但SIP以其为扩展性为目的设计和事务模型重用(对于服务器是透明的,被用于使用新类型事务创建辅助服务)。下面是可能的服务列表,其中的一些已经被实现。
短信,用于实时信息
预定或通告,用于会议管理
委托,用于呼叫转移等管理
SIP和最终用户服务
    “SIP透明支持名字映射和重定向服务,提供ISDN和智能网络电话服务同样的一些功能。这些特性也使得个人移动成为可能。”
参考阅读:rfc2543.txt(章节1.1)
SIP服务器被用于定位用户和分发请求的用户定位信息。这些途径,使得最终用户代理发起很少的请求,并能获得多种多样的服务。
许多扩展性在建议文档中定义(查询SIP相关的draft)。我们也可以增加个性化的电话功能并和现有已存在的服务器保持交互。
第二章 SIP协议概述
    本章目的并不是为了细致的描述rfc(我们必须通过阅读rfc获取协议细节),其紧紧提供快速、不完整的协议语法和行为概述。
SIP语法
SIP是一个基于utf8文本编码格式的协议(这使其消息具有很好的可读性,并易于调试)。SIP协议中描述了请求、地址(URL)、应答和个个头部字段的语法信息。整个语法信息以扩展巴克斯范式的形式描述,可以在 Columbia获得。
这些语法定义参考了Mail和HTTP的定义方式。SIP定义了6种请求的类型。最基础的方法有:
INVITE ACK CANCEL BYE INFO OPTIONS
正如我们在请求的BNF定义中看到的(参考rfc2543第三章节),SIP不限定于在规范中已定义的简短的方法列表,扩展性被充分的考虑了。不限定于上面的列表,任何其他类型的请求都可以被oSIP处理。当然这一切的一切,依赖于大家的通知和贡献新的可能方法的样例程序等等。目前的开发库没有太多的努力,以便明确的支持用于提供开发SIP电话的能力。
INVITE sip:jacK@atosc.org SIP/2.0
Via: SIP/2.0/UDP home.sipworld.org
To: sip:jacK@atosc.org
From: sip:cha@sipworld.org
Call-ID: 35778645354@home.sipworld.org
CSeq: 1 INVITE
Contact: sip:cha@home.sipworld.org
Content-type: application/sdp
Content-length: 267
 
v=0
o=user1 53655765 2353687637 IN IP4 128.3.4.5
s=Mbone Audio
i=Discussion of Mbone Engineering Issues
e=mbone@somewhere.com
c=IN IP4 128.3.4.5
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
    样例2-1 INVITE请求消息内容
INVITE请求被用于初始化和定制会话。现在,cha从sipword.com呼叫在atos.org的jack。这个请求将被发送到由atosc.org管理的SIP代理服务器,其将被前转到jack的通讯设备,设备拥有真正IP地址。
SIP事务
SIP使用事物控制和管理会话。事务(INVITE,CANCEL,BYE… …)通常是当前会话进展的记忆体。一些其它的事物(SUBSCRIBE,NOTIFY… …)对会话来讲并不必要。一个事物是由请求和应答(一些的中间应答和最终应答)构成。以下头部字段:TO、From、Call-ID和Cseq被用于在一个事务中识别相关联的消息。
因为SIP可以使用不可靠的传输层协议(在IP网络中推荐使用UDP),SIP也定义了在一个事务中消息重传的规则。
UAC1               UAS2
 
 jacks   |   INVITE         |
initiate a|----------------->|   Bob's
 call    |                  | Phone starts
|       180 Ringing|   ringing
|<-----------------|
|       180 Ringing|
|<-----------------|
|           200 OK |
|<-----------------|
|   ACK            |
|----------------->|
样例 2-2 INVITE事务
这是一个最基本的点对点的信令呼叫流程的展示。仅有两个 SIP用户代理(UAC/UAS)之间进行的呼叫过程。(重传的情况没有被展示)
SIP会话
事务 (Transactions)被用户代理用于控制会话。一个会话总是有INVITE消息发起的。SIP定义了一系列的应答状态码。一个代理服务器可以应答你一个非常知名的”404 User Not
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值