免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1900 | 回复: 0
打印 上一主题 下一主题

SIP协议最简单的例子(RFC3261) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-11 00:00 |只看该作者 |倒序浏览

    前面说到在爱立信实习,最近学习SIP协议,在mentor和自己的琢磨下算是有了点感悟,主要还是学习RFC3261文档,我看的是英文的,相当吃力,网上也有中文的,不过后来发现翻译的也不是太好,可以对照一下,这里是第四节的例子,可能一上来看确实有点看不懂,我就说下我自己的分析,书上只有Alice发送的INVITE和Bob发送的200(OK)信息,具体图如下:
atlanta.com . . . biloxi.com
.      proxy                           proxy           .
.                                                                   .
Alice’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . Bob’s
softphone                                                                            SIP Phone
|                                  |                                  |                                  |
| INVITE F1                  |                                 |                                  |
|--------------->                 | INVITE F2                  |                                  |
| 100 Trying F3             |--------------->                 | INVITE F4                  |
|                 | 100 Trying F5             |--------------->                 |
|                                  |                  | 180 Ringing F6           |
|                                  | 180 Ringing F7           |                 |
| 180 Ringing F8           |                 | 200 OK F9                 |
|                 | 200 OK F10               |                 |
| 200 OK F11               |                 |                                  |
|                 |                                  |                                  |
|                                                ACK F12                                          |
|                                  ------------------------------------------------->            |
|                                         Media Session                                         |
|    |
|                                                BYE F13                                          |
|                                              |
|                                         200 OK F14                                             |
|                                  ------------------------------------------------->            |
|                                                                                                        |
            图一:SIP矩形表达的SIP会话建立例子
Alice发送的INVITE:
INVITE sip:bob@biloxi.com SIP/2.0
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds
Max-Forwards: 70
To: Bob
From: Alice ;tag=1928301774
Call-ID: a84b4c76e66710@pc33.atlanta.com
CSeq: 314159 INVITE
Contact:
Content-Type: application/sdp
Content-Length: 142
(Alice’s SDP not shown)


Bob发送的200(OK)
SIP/2.0 200 OK
Via: SIP/2.0/UDP server10.biloxi.com
;branch=z9hG4bKnashds8;received=192.0.2.3
Via: SIP/2.0/UDP bigbox3.site3.atlanta.com
;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2
Via: SIP/2.0/UDP pc33.atlanta.com
;branch=z9hG4bK776asdhds ;received=192.0.2.1
To: Bob ;tag=a6c85cf
From: Alice ;tag=1928301774
Call-ID: a84b4c76e66710@pc33.atlanta.com
CSeq: 314159 INVITE
Contact:
Content-Type: application/sdp
Content-Length: 131
(Bob’s SDP not shown)
    其他次要的大家可以查一下相关文档,这里就说几个关键的域,从Alice到Bob每经过一个proxy都会记录一个Via,而最后也会加上received信息表明是哪个地址接收到的,同样的Bob如果把200(OK)信息发给Alice的时候,每经过一个proxy也会删掉一个Via记录,这样就有RFC3261说的UAC(也就是Alice)只能收到一条Via,值得注意的是两个信息里面To和From域基本相同,但是To里多了个tag,这就说明了Alice和Bob已经建立了Transaction,而CSeq相同而说明两者在同一Session里。最后的 SDP not shown则说明SDP在SIP协议中也有应用,如果想有所了解可以阅读RFC4566


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/82382/showart_1992394.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP