pjsip开发——呼叫流程

SIP呼叫流程

注册注销过程

  SIP为用户定义了注册和注销过程,其目的是可以动态建立用户的逻辑地址和其当前联系地址之间的对应关系,以便实现呼叫路由和对用户移动性的支持。逻辑地址和联系地址的分离也方便了用户,它不论在何处、使用何种设备,都可以通过惟一的逻辑地址进行通信。

  注册/注销过程是通过REGISTER消息和200成功响应来实现的。在注册/注销时,用户将其逻辑地址和当前联系地址通过REFGISTER消息发送给其注册服务器,注册服务器对该请求消息进行处理,并以200成功响应消息通知用户注册注销成功。

呼叫过程

  SIP IP电话系统中的呼叫是通过INVITE邀请请求、成功响应和ACK确认请求的三次握手来实现的,即当主叫用户代理要发起呼叫时,它构造一个INVITE消息,并发送给被叫。被叫收到邀请后决定接受该呼叫,就回送一个成功响应(状态码为200)。主叫方收到成功响应后,向对方发送ACK请求。被叫收到ACK请求后,呼叫成功建立。

  呼叫的终止通过BYE请求消息来实现。当参与呼叫的任一方要终止呼叫时,它就构造一个BYE请求消息,并发送给对方。对方收到BYE请求后,释放与此呼叫相关的资源,回送一个成功响应,表示呼叫已经终止。

  当主、被叫双方已建立呼叫,如果任一方想要修改当前的通信参数(通信类型、编码等),可以通过发送一个对话内的INVITE请求消息(称为re-INVITE)来实现。

重定向过程

  当重定向服务器(其功能可包含在代理服务器和用户终端中)收到主叫用户代理的INVITE邀请消息,它通过查找定位服务器发现该呼叫应该被重新定向(重定向的原因有多种,如用户位置改变、实现负荷分担等),就构造一个重定向响应消息(状态码为3xx),将新的目标地址回送给主叫用户代理。主叫用户代理收到重定向响应消息后,将逐一向新的目标地址发送INVITE邀请,直至收到成功响应并建立呼叫。如果尝试了所有的新目标都无法建立呼叫,则本次呼叫失败。

SIP呼叫流程

下面结合具体场景介绍一下SIP呼叫的详细过程,具体字段解析见下一节。

注册注销

image.png

SIP注册流程

1. SIP用户向其所属的注册服务器发起REGISTER注册请求。在该请求消息中,Request-URI表明了注册服务器的域名地址,To头域包含了注册所准备生成.查询或修改的地址记录,Contact头域表明该注册用户在此次注册中欲绑定的地址,Contact头域中的Expires参数或者Expires头域表示了绑定在多长时间内有效。

2. 注册服务器返回401响应,要求用户进行鉴权。

3. SIP用户发送带有鉴权信息的注册请求。

4. 注册成功。

SIP用户的注销和注册更新流程基本与注册流程一致,只是在注销时Contact头域中的Expires参数或Expires头域值为0。

代理方式呼叫流程

1. 用户A向其所属的出域代理服务器(软交换)PROXY1发起INVITE请求消息,在该消息中的消息体中带有用户A的媒体属性SDP描述;

2. PROXY1返回407响应,要求鉴权;

3. 用户A发送ACK确认消息;

4. 用户A重新发送带有鉴权信息的INVITE请求;

5. 经过路有分析,PROXY1将请求转发到PROXY2;

6. PROXY1向用户A发送确认消息”100 TRYING”,表示正在对收到的请求进行处理;

代理方式呼叫.png

代理方式的SIP正常呼叫流程

7. PROXY2将INVITE请求转发到用户B;

8. PROXY2向PROXY1发送确认消息”100 TRYING”

9. 终端B振铃,向其归属的代理服务器(软交换)PROXY2返回”180 RINGING”响应。

10. PROXY2向PROXY1转发” 180 RINGING”;

11. PROXY1向用户A转发” 180 RINGING”,用户A所属的终端播放回铃音;

12. 用户B摘机,终端B向其归属的代理服务器(软交换)PROXY2返回对INVITE请求的”200 OK”响应,在该消息中的消息体中带有用户B的媒体属性SDP描述;

13. PROXY2向PROXY1转发”200 OK”;

14. PROXY1向用户A转发”200 OK”;

15. 用户A发送针对200响应的ACK确认请求消息;

16. PROXY1向PROXY2转发ACK请求消息;

17. PROXY2向用户B转发ACK请求消息,用户A与B之间建立双向RTP媒体流;

18. 用户B挂机,用户B向归属的代理服务器(软交换)PROXY2发送BYE请求消息;

19. PROXY2向PROXY1转发BYE请求消息;

20. PROXY1向用户A转发BYE请求消息;

21. 用户A返回对BYE请求的200 OK响应消息;

22. PROXY1向PROXY2转发200 OK请求消息;

23. PROXY2向用户B转发200 OK响应消息,通话结束。

重定向方式呼叫流程

重定向.png

重定向方式呼叫流程

1. 用户A向重定向服务器发送INVITE请求消息,该消息不带SDP;

2. 重定向服务器返回”302 Moved temporarily响应”,该响应的Contact头域包含用户B当前更为精确的SIP地址;

3. 用户A向重定向服务器发送确认302响应响应受到的ACK消息;

4. 用户A向重定向代理服务器PROXY2发送INVITE请求消息,该消息不带SDP;

5. PROXY2向用户B转发INVITE请求;

6. PROXY2向用户A发送确认消息"100 TRYING",表示正在对收到的请求进行处理;

7. 终端B振铃,向其归属的代理服务器(软交换)PROXY2返回”180 RINGING”响应;

8. PROXY2转发"180 RINGING"响应;

9. 用户B摘机,终端B返回对INVITE请求的”200 OK”响应,在该消息中的消息体中带有用户B的媒体属性SDP描述;

10. PROXY2转发”200 OK”响应;

11. 用户A发送确认”200 OK”响应收到的ACK请求,该消息中带有用户A媒体的属性的SDP描述。

12. PROXY2转发ACK消息,用户A和用户B之间建立双向的媒体流;

13. 用户B挂机,用户B向PROXY2发送BYE球求消息;

14. PROXY2向用户A转发BYE请求消息;

15. 用户A返回对BYE请求的200 OK响应消息;

16. PROXY2向用户B转发200 OK响应消息,通话结束。

关于SIP协议详细流程,可以参考RFC3261-SIP协议,当然如果不习惯的话可以参考中文翻译版RFC3261-SIP协议中文版

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容