-
2020-07-31 15:57:13
1.主叫拨号,终端使用SIP协议发invite消息(携带SDP消息)
2.主叫SIP代理和DNS交互,找到被叫SIP代理
3.主叫SIP代理向被叫SIP代理发invite
4.被叫成功将invite发送给被叫后,发100(trying)给主叫,主叫显示正在拨号
5.被叫振铃,被叫SIP代理返回状态码为180(ringing)给主叫,主叫听到嘟嘟嘟声音
6.被叫摘机,被叫给主叫返回状态码是200得最终成功消息
更多相关内容 -
SIP封装工艺及流程设计.pdf
2021-07-15 11:56:16system in a package(SIP)需要设计SIP封装的同学可以拿走借鉴 -
SIP基本业务流程
2018-08-05 13:42:26SIP基本业务流程分析;注册解析;通话的建立与拆分;修改回话;等; -
SIP呼叫流程典型流程图解及其详细解释
2016-02-25 10:41:512.注销流程: 3. 基本呼叫建立过程: 4. 会话更改流程: 5. 正常呼叫释放过程: 6. 被叫忙呼叫释放: 7.被叫无应答流程一: 8.被叫无应答流程二: 9.遇忙呼叫前转: 10.无应答呼叫前转流程: 11.... -
SIP交互流程及字段说明.xdf
2020-06-01 16:39:20本文档对SIP进行的详细说明,并附加交互流程及字段说明,加上示例讲解通俗易懂。sip包字段解析,sdp解析等 -
SIP软电话程序demo
2020-12-31 10:29:59一款基于SIP协议的软电话实现代码,底层使用PJSIP协议,代码全开放,可直接编译运行 -
SIP协议及IMS信令流程.ppt
2020-04-13 16:18:23本文从SIP网络架构开始,详细介绍了SIP协议、IMS注册及相关流程、IMS会话及相关流程等 内容,是一款非常难得的学习入门资料 。 -
SIP流程图解释.pdf
2019-08-16 16:31:26IMS/SIP 呼叫建立,和 会议的详细过程,已经关键参数解释。 转发的,写得、画的非常好! 很容易就理解了!方便了解SIP IMS 基础知识。PDF 格式。一个积分 -- 系统会自动修改添加积分 改回一个积分 -
电信sip规范信令流程
2018-12-09 22:27:16中国电信sip规范第三部分(sip信令流程) -
sip 抓包全流程
2019-05-24 16:11:09sip 抓包全流程 -
sip 注册流程
2020-12-19 14:44:32基本注册流程示意图:注册流程描述如下:1、 SIP代理向SIP服务器发送REGISTER请求;2、 SIP服务器向SIP代理发送响应401,并在响应的消息头WWW-Authenticate字段中给出适合SIP代理的认证体制和参数;3、 SIP代理重新向...基本注册流程示意图:
注册流程描述如下:
1、 SIP代理向SIP服务器发送REGISTER请求;
2、 SIP服务器向SIP代理发送响应401,并在响应的消息头WWW-Authenticate字段中给出适合SIP代理的认证体制和参数;
3、 SIP代理重新向SIP服务器发送REGISTER请求,在请求的Authorization字段给出信任书,包含认证信息;
4、 SIP服务器对请求进行验证,如果检查出SIP代理身份合法,向SIP代理发送成功响应200 OK,如果身份不合法则发送拒绝服务应答。
注册信令消息示范:
Register sip:SIP服务器编码@目的域名或者IP地址端口 SIP/2.0
Via:SIP/2.0/UDP 源域名或者IP地址端口
From:;tag=185328220
To:
Call-ID:ms1214-322164-681262131542511620107-0@172.18.16.3
CSeq:1 Register
Contact:
Max-Forwords:70
Expires: 7200
Content-Length: 0
SIP/2.0 401 Unauthorized
To: sip:SIP设备编码@源域名
Content-Length: 0
CSeq:1 Register
Call-ID:ms1214-322164-681262131542511620107-0@172.18.16.3
From:;tag=185328220
Via:SIP/2.0/UDP 源域名或者IP地址端口
WWW-Authenticate: Digest realm=”64010000”,nonce=”6fe9ba44a76be22a”
Register sip:SIP服务器编码@目的域名或者IP地址端口 SIP/2.0
Via:SIP/2.0/UDP 源域名或者IP地址端口
From:;tag=185328220
To:
Call-ID:ms1214-322164-681262131542511620107-0@172.18.16.3
CSeq:2 Register
Contact:
Authorization: Digest username=”64010000002020000001”,realm=”64010000”, nonce=”6fe9ba44a76be22a”,uri=”sip:64010000002020000001@172.18.16.5:5060”,response=”9625d92d1bddea7a911926e0db054968”,algorithm=”MD5”
Max-Forwords:70
Expires: 7200
Content-Length: 0
SIP/2.0 200 OK
To: ;tag=69113a2a
Contact: sip:SIP设备编码@源IP地址端口
Content-Length: 0
CSeq:2 Register
Call-ID:ms1214-322164-681262131542511620107-0@172.18.16.3
From:;tag=185328220
Via:SIP/2.0/UDP 源域名或者IP地址端口
Date:2010-11-02T15:01:26.115
Expires: 7200
-
sipcore:用于创建SIP应用程序的Rust框架
2021-05-19 09:18:01sipcore 用于创建SIP应用程序的Rust框架 sipmsg -
SIP会话流程
2021-04-26 17:40:25下面我们通过一个简单的场景例子来简单介绍一下 SIP 会话流程。 Tom 和 Jerry 是非常好的伙伴,Tom 在他的 PC 上使用一个 SIP 的应用程序呼叫 Internet 上另一个 SIP 电话用户 Jerry。 1. 注册过程 : SIP 注册...下面我们通过一个简单的场景例子来简单介绍一下 SIP 会话流程。
Tom 和 Jerry 是非常好的伙伴,Tom 在他的 PC 上使用一个 SIP 的应用程序呼叫 Internet 上另一个 SIP 电话用户 Jerry。
1. 注册过程 :
SIP 注册过程是建立用户当前 IP 地址与用户URI之间的对应关系。首先,Tom 和 Jerry 的 SIP 应用程序或者硬件设备,需要在网络中注册。之后终端需要知道代理呼叫会话控制功能(P-CSCF)的地址。P-CSCF 是终端向网络中发送所有 SIP 消息的惟一入口,用于 SIP 出站代理,注册完成后服务于所有其他 SIP 信令。该地址可以预先配置,在没有配置的情况下,终端可以在建立的通用或专用 PDP 信令上下文的过程中请求该地址。
Tom 的终端首先会生成一个 REGISTER 请求,该请求中的相关信息从 Tom 的用户标识模块 (USIM) 的 IP 多媒体服务标识模块(ISIM)中获取。请求经过 P-CSCF 和 I-CSCF(问询呼叫会话控制功能)为 Tom 指定一个 S-CSCF(服务呼叫会话控制功能)。S-CSCF 负责根据请求信息建立用户标识与终端 IP 地址的对应绑定关系。
1. 构造的 REGISTER 消息
REGISTER sip: telcomx.tel.com SIP2.0 From:<sip: tom@telcomx.tel.com>;tag=pohjaxx To:<sip: tom@telcomx.com> Via:SIP/2.0/UDP[4444::2:3:4:5];branch=xo93sle Route: sip:[5555::a:f:f:e];lr Contact:<sip:[4444::2:3:4:5]>;expires=600000 Call-ID: apb304a94sslfeiasle93aj11 Authorization:Digest username="tom@telcomx.tel.com", realm="telcomx.tel.com", nonce="", uri="sip:telcomx.tel.com", response="" CSeq: 25 REGISTER Content-Length:0
该消息中 Route 标识请求路由的下一节点;Contact 中定义了 IP 地址与 SIP URI的绑定持续时间;Call-ID 和 CSeq 消息头惟一标识本次事务。注册消息经 P-CSCF 发送到 I-CSCF,I-CSCF 是 Tom 所在归属网的入口,接收 Tom 终端发起的每一次注册请求。I-CSCF 查询 HSS 服务器,根据请求中标识的需求能力,选择一个合适的 S-CSCF 为用户提供服务,并将请求发送到该 S-CSCF 节点上。
S-CSCF 返回 401(未授权)响应要求 Tom 进行认证,则 Tom 的终端将发送第二个 REGISTER 请求,第二个请求包含相同的有关注册信息,并经过的路由与第一个 REGISTER 的路由完全相同。但是第二个 REGISTER 产生一个新的 Call-ID、Cseq 号码、branch 参数以及一个新的 From 标签,并且该 REGISTER 请求会带入新的安全认证标签信息。
2. 构造带有认证信息的 REGISTER 消息
REGISTER sip: telcomx.tel.com SIP2.0 From:<sip: tom@telcomx.com>;tag=6e87wa9 To:<sip: tom@telcomx.tel.com> Via:SIP/2.0/UDP[4444::2:3:4:5];branch=u2x9s7 Route: sip:[5555::a:f:f:e];lr Contact:<sip:[4444::2:3:4:5]>;expires=600000 Call-ID: apb304a94sslfaser2le93aj22 Authorization:Digest username="tom@telcomx.tel.com", realm="telcomx.tel.com", nonce="A34Cm+FVa73YTUGpGMBIs34P,algorithm=AKAv1-MD5", uri="sip:telcomx.tel.com", response="6629fac4969a87854152369874c43fd1" CSeq: 47 REGISTER Content-Length:0
注意,第二次注册请求会填写相应的认证密钥信息。认证过程成功,S-CSCF 将对 Tom 进行注册。即 S-CSCF 创建一个绑定关系,绑定 To 消息头中公共用户标识和 Contact 中的 IP 访问地址。随后 S-CSCF 向终端发送响应。
3.REGISTER 消息的响应
SIP/2.0 200 OK Via:SIP/2.0/UDP icscf1.tel.com;branch=21ksi9 Via:SIP/2.0/UDP pcscf1.tel.com;branch=2x7as2 Via:SIP/2.0/UDP[4444::2:3:4:5];branch=u2x9s7 From:<sip: tom@telcomx.tel.com>;tag=6e87wa9 To:<sip: tom@telcomx.tel.com>;tag=kotimaex Contact:<sip:[4444::2:3:4:5]>;expires=600000 Service-Route:sip:telcomx@scscf1.tel.com;lr Call-ID: apb304a94sslfaser2le93aj22 CSeq: 47 REGISTER Content-Length:0
S-CSCF 将自己的访问地址通过 Service-Route 消息头返回给终端,该响应送回的路径是所有接收过 REGISTER 请求的 CSCF,因为各个 CSCF 在接收 REGISTER 时都把自己的地址放在了 Via 消息头的顶端。这时终端注册已经成功。
SIP 注册流程
2. 会话建立:
Tom 通过 Jerry 的 SIP 标识呼叫 Jerry,这个SIP URI 很像一个 E-mail 地址,典型的URI包括一个用户名和主机名。假设 Jerry 的URI为 sip: jerry@california.tel.com。主机名 california.tel.com 是 Jerry 的本地 SIP 服务供应商即 Jerry 的归属域。Tom 使用自己的URI发送请求。Tom 的统一资源标识符:sip: tom@telcomx.tel.com。其中 telcomx.tel.com 是 Tom 的 SIP 服务供应商。
建立会话的过程主要有以下几步:
(1)使用 Jerry 的URI创建 INVITE 请求;
(2)在 Contact 消息头中设置自己的访问 IP 地址与端口号,确保对端 Jerry 所有的响应都能直接发回到该终端;
(3)将注册过程中所存储的 S-CSCF 访问地址信息添加到消息的 Route 中,这样避免每次发送 SIP 请求需要通过 I-CSCF 查找 S-CSCF 的开销;
(4)将出站代理 P-CSCF 的访问地址也添加到 Route 消息头顶端生成消息路由;
(5)请求按照 Route 顶端地址发送到出站代理 P-CSCF 上,去除 Route 中标识自己的访问条目,在 Record-Route 和 Via 中添加 P-CSCF 访问条目,确保请求的响应路由能够返回到自身节点。转发 INVITE 请求到 Route 定义的下一个节点;
(6)请求发送到 S-CSCF 节点上,首先去除 Route 中标识自己的访问条目,将 S-CSCF 访问条目添加到 Record-Route 和 Via 中,查询 DNS 服务获得用户 Jerry 的 SIP URI 所归属的域,将请求转发到 Jerry 所归属域的 I-CSCF 节点上;
(7)在 Jerry 归属域的 I-CSCF 节点上,首先添加自己的访问条目并将该访问条目添加到 Via 消息头中,查询 SLF 获取 Jerry 的 HSS 服务器地址,并查询 HSS 获取与用户 Jerry 相绑定的 S-CSCF 节点访问地址,将 INVITE 请求转发到该 S-CSCF 节点上;
(8)请求到达 Jerry 归属域的 S-CSCF 节点上,首先从路由 Route 消息头中删除标识自己的访问条目,在 Record-Route 中添加该访问条目,将用户 Jerry 的统一资源标识符替换为注册的联系地址,转发请求到下一个节点;
(9)消息到达 Jerry 的 P-CSCF 代理节点上,其转发请到用户 Jerry 的 IP 地址上;
(109)这时 INVITE 请求已经到达用户 Jerry 的终端上,该终端设备保存 Tom 的 Contact 消息头,生成相应响应信息,并设置响应 Contact 消息头为 Jerry 终端的 IP 地址 / 端口,将 Record-Route 和 Via 消息头复制到响应中,并基于 Via 消息头发送响应;
(11)当响应到达用于 Tom 终端时,Tom 终端也会保存用户 Jerry 的 Contact 信息,这样双方都知道对方直接访问的 IP 地址和端口,之后可以直接发送请求到对方终端了。
SIP 会话建立路由过程
4.INVITE 请求
INIVTE sip:jerry@california.tel.com Via: SIP/2.0/UDP[4444::2:3:4:5];branch=8ulse1 Route:<sip:[5555::a:b:c:d];lr> Route:<sip:telcomx@scscf1.tel.com;lr> Contact:<sip:[4444::2:3:4:5]:1537> From:<sip: tom@telcomx.tel.com>;tag=6e87wa9 To:<sip: jerry@california.tel.com> Call-ID: apb03a0s09dkjdfoaidy49555 CSeq: 1 INVITE Max-Forwards: 70 Content-Length:183 (必须的空行) (SDP 请求消息体)
5. 183“会话进行中”响应
SIP/2.0 183 Session in Progress Via: SIP/2.0/UDP scscf2.california.tel.com;branch=12fd3 Via: SIP/2.0/UDP icscf2.california.tel.com;branch=24re3 Via: SIP/2.0/UDP scscf1.tel.com;branch=64w32 Via: SIP/2.0/UDP pcscf1.tel.com;branch=412d2 Via: SIP/2.0/UDP[4444::2:3:4:5];branch=8ulse1 Route-Route:<sip pcscf2.california.tel.com;lr> Route-Route:<sip scscf2.california.tel.com;lr> Route-Route:<sip scscf1.tel.com;lr> Route-Route:<sip pcscf1.tel.com;lr> Route:<sip:telcomx@scscf1.tel.com;lr> Contact:<sip:[4444:5:6:7:8]:1078> From:<sip: jerry@california.tel.com>;tag=e42q14d To:<sip: tom@telcomx.tel.com>;tag=6e87wa9 Call-ID: apb03a0s09dkjdfoaidy49555 CSeq: 2 183 Max-Forwards: 70 Content-Length:165 (必须的空行) (SDP 请求消息体)
Tom 发送 INVITE 请求后需要等待 Jerry 的响应,如果等待超时则需要重传一个 INVITE 请求,如果 128 秒后仍收不到响应,就宣告本次会话建立失败。例如本例中该呼叫漂洋过海,因此到达 Jerry 终端可能超过超时等待时间,为了避免 Tom 终端频繁地重发 INVITE 请求,P-CSCF 收到 INVITE 请求后,返回一个 100 Trying 临时响应。这表明现在开始 P-CSCF 负责 INVITE 的重传工作,以此类推。
SIP 会话信号流程图
3. 会话媒体参数协商:
Tom 终端在发送第一个 INVITE 请求中带有一个 SDP 的消息体,该消息体描述 Tom 希望在本次会话中使用的所有媒体参数信息,包括媒体类型、各类媒体支持的编码解码类型;在 Jerry 终端的第一个响应中会带入 INVITE 请求的 SDP 消息体应答,可能拒绝某些提议的媒体类型,缩减媒体编码解码类型,仅剩下双方都支持的编码解码。Tom 终端收到第一个应答后,其必须最终决定使用哪种编码解码类型,并给被叫方发送 PRACK 消息,将第二个 SDP 媒体协商参数消息发出,确定在本次会话中每种媒体类型采用的惟一编码解码类型。Jerry 终端接受第二次提议并返回一个确认应答。
会话协商信号流程图
通过会话媒体协商,双方商定最终使用的媒体参数建立媒体连接,实现通话。
4. 会话的释放:
Tom 和 Jerry 通话完毕,这是 Jerry 会按下终端设备的红色挂机按钮断掉呼叫。这使他的终端生成一个 BYE 请求,沿着与其他请求相同的路由发送给 Tom 的终端,同时还会释放本次会话建立的媒体 PDP 上下文。Tom 的终端收到该请求后也会立刻释放它的 PDP 上下文,同时向 Jerry 终端返回一个 200(OK) 的响应来应答 BYE 请求。注意路径的 CSCF 和所有的 AS 都会清除与本次会话有关的所有会话状态和信息。
6. BYE 请求
BYE sip:[4444::2:3:4:5] SIP/2.0 Route:<sip:pcscf2.california.com;lr> Route:<sip:scscf2.california.com;lr> Route:<sip:scscf1.tel.com;lr> Route:<sip:pcscf1.tel.com;lr> To:<sip: tom@telcomx.tel.com>;tag=6e87wa9 From:<sip: jerry@california.tel.com> Call-ID: w273alskdjb732s07yad22 CSeq: 15 BYE Max-Forwards: 70 Content-Length:0
从上述报文可以看到 From 和 To 消息头的信息互换了,因为本次消息是从用户 Jerry 一方发出的。
SIP 会话释放流程图
-
Gigaset SIP 拨号程序「Gigaset SIP Dialer」-crx插件
2021-03-08 20:02:38只需选择文本,右键单击拨号,您的Sip软件将完成其余工作。 非常适合Gigaset Quicksync手机。 任何反馈,不胜感激,这是我的第一个扩展,非常好! Windows用户将需要执行以下操作:步骤1.在此处下载“ Ian Sharp的”... -
sip协议简介 windows sip client (minisip)和 sip server(eyebeam)
2021-01-13 13:12:16包含sip协议文档,以及在windows上可直接运行的sip server 和 sip client,minisip以及eyebeam在网上都有很多详细的使用方法,可通过抓包的方式,了解sip协议的具体流程。 -
SIP协议之呼叫流程
2022-03-18 20:02:33SIP呼呼叫是SIP协议最基本的功能。一个用户呼叫另外一个用户最终完成多媒体通话。此处以常见的B2BUA的服务器模式进行介绍。 环境说明: 主叫:1006 192.168.1.131 ...流程图如下: 关键说明: 1. 1006...SIP呼呼叫是SIP协议最基本的功能。一个用户呼叫另外一个用户最终完成多媒体通话。此处以常见的B2BUA的服务器模式进行介绍。
环境说明:
主叫:1006 192.168.1.131
被叫:1012 192.168.0.24
SIP服务器(以下简称服务器): 192.168.0.201 主、被叫均注册在此服务器
1 主叫输入1012号码,开始呼叫
2 被叫收到1006来电,点击接听
3 主叫点击挂断结束通话流程图如下:
信令流程:
编号1: 主叫发出INVITE到服务器
INVITE sip:1012@192.168.0.201 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.131:56980;branch=z9hG4bK-d87543-bd00a80d61174148-1--d87543-;rport
Max-Forwards: 70
Contact: <sip:1006@192.168.1.131:56980> //1006的联系地址
To: "1012"<sip:1012@192.168.0.201>
From: "1006"<sip:1006@192.168.0.201>;tag=11703172
Call-ID: NDI2ODA4NmE4OTNlYjlhN2NlYzIxYzcxMzc0MTEzZTY.
CSeq: 1 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
Content-Type: application/sdp //表明后面的消息体类型是SDP
User-Agent: eyeBeam release 1011d stamp 40820
Content-Length: 436//以下为消息体部分
v=0
o=- 8 2 IN IP4 192.168.1.131
s=CounterPath eyeBeam 1.5
c=IN IP4 192.168.1.131
t=0 0
m=audio 1572 RTP/AVP 0 8 18 101 //支持的语音编码
a=alt:1 3 : YqBcv0hx k0Ir1UAh 192.168.1.131 1572
a=alt:2 2 : x3fHBmJC A3UcAV4D 192.168.197.1 1572
a=alt:3 1 : mxpdOrEC wrgtrc0h 192.168.44.1 1572
a=fmtp:18 annexb=no
a=fmtp:101 0-15
a=rtpmap:18 G729/8000
a=rtpmap:101 telephone-event/8000
a=sendrecv
a=x-rtp-session-id:747024EE416C401C864D1F625FC7E145编号2: 服务器回复主叫100 Trying
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.1.131:56980;branch=z9hG4bK-d87543-bd00a80d61174148-1--d87543-;rport=56980
From: "1006" <sip:1006@192.168.0.201>;tag=11703172
To: "1012" <sip:1012@192.168.0.201>
Call-ID: NDI2ODA4NmE4OTNlYjlhN2NlYzIxYzcxMzc0MTEzZTY.
CSeq: 1 INVITE
User-Agent: FreeSWITCH-mod_sofia/1.10.7-dev+git~20210720T181005Z~4c04914003~64bit
Content-Length: 0编号3:服务器发INVITE被叫
INVITE sip:1012@192.168.0.24:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.201;rport;branch=z9hG4bK6XZZ1QaaZjr3p
Max-Forwards: 68
From: "1006" <sip:1006@192.168.0.201>;tag=SrUQ72vvXSHFK
To: <sip:1012@192.168.0.24:5060>
Call-ID: 2ffaf428-2148-123b-649f-000c29e7aea9
CSeq: 49245689 INVITE
Contact: <sip:mod_sofia@192.168.0.201:5060>
User-Agent: FreeSWITCH-mod_sofia/1.10.7-dev+git~20210720T181005Z~4c04914003~64bit
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, path, replaces
Allow-Events: talk, hold, conference, presence, as-feature-event, dialog, line-seize, call-info, sla, include-session-description, presence.winfo, message-summary, refer
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 424
X-FS-Support: update_display,send_info
Remote-Party-ID: "1006" <sip:1006@192.168.0.201>;party=calling;screen=yes;privacy=offv=0
o=- 8 2 IN IP4 192.168.1.131
s=CounterPath eyeBeam 1.5
c=IN IP4 192.168.1.131
t=0 0
m=audio 1572 RTP/AVP 0 8 18 101
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=alt:1 3 : YqBcv0hx k0Ir1UAh 192.168.1.131 1572
a=alt:2 2 : x3fHBmJC A3UcAV4D 192.168.197.1 1572
a=alt:3 1 : mxpdOrEC wrgtrc0h 192.168.44.1 1572
a=x-rtp-session-id:747024EE416C401C864D1F625FC7E145
编号4:被叫回复服务器100-Trying
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.0.201;rport=5060;received=192.168.0.201;branch=z9hG4bK6XZZ1QaaZjr3p
Call-ID: 2ffaf428-2148-123b-649f-000c29e7aea9
From: "1006" <sip:1006@192.168.0.201>;tag=SrUQ72vvXSHFK
To: <sip:1012@192.168.0.24>
CSeq: 49245689 INVITE //该消息是应答序号为49245689 的INVITE(编号3)消息
Content-Length: 0编号5: 被叫回复服务器180
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 192.168.0.201;rport=5060;received=192.168.0.201;branch=z9hG4bK6XZZ1QaaZjr3p
Call-ID: 2ffaf428-2148-123b-649f-000c29e7aea9
From: "1006" <sip:1006@192.168.0.201>;tag=SrUQ72vvXSHFK
To: <sip:1012@192.168.0.24>;tag=3fVxEhXmI66Iss8a6YjNDWRhpIFlIEP1
CSeq: 49245689 INVITE
Contact: "1012" <sip:1012@192.168.0.24:5060>
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
User-Agent: VoIP
Content-Length: 0编号6:服务器回复主叫180
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 192.168.1.131:56980;branch=z9hG4bK-d87543-bd00a80d61174148-1--d87543-;rport=56980
From: "1006" <sip:1006@192.168.0.201>;tag=11703172
To: "1012" <sip:1012@192.168.0.201>;tag=rF2y57BS0gUvQ
Call-ID: NDI2ODA4NmE4OTNlYjlhN2NlYzIxYzcxMzc0MTEzZTY.
CSeq: 1 INVITE //该消息是应答序号为1的INVITE(编号1)消息
Contact: <sip:1012@192.168.0.201:5060;transport=udp>
User-Agent: FreeSWITCH-mod_sofia/1.10.7-dev+git~20210720T181005Z~4c04914003~64bit
Accept: application/sdp
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, path, replaces
Allow-Events: talk, hold, conference, presence, as-feature-event, dialog, line-seize, call-info, sla, include-session-description, presence.winfo, message-summary, refer
Content-Length: 0
Remote-Party-ID: "1012" <sip:1012@192.168.0.201>;party=calling;privacy=off;screen=no
编号7:被叫接听,回复服务器200
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.201;rport=5060;received=192.168.0.201;branch=z9hG4bK6XZZ1QaaZjr3p
Call-ID: 2ffaf428-2148-123b-649f-000c29e7aea9
From: "1006" <sip:1006@192.168.0.201>;tag=SrUQ72vvXSHFK
To: <sip:1012@192.168.0.24>;tag=3fVxEhXmI66Iss8a6YjNDWRhpIFlIEP1
CSeq: 49245689 INVITE
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
User-Agent: VoIP
Contact: "1012" <sip:1012@192.168.0.24:5060>
Supported: replaces, 100rel
Content-Type: application/sdp
Content-Length: 227v=0
o=- 3856587767 3856587769 IN IP4 192.168.0.24
s=SDP
c=IN IP4 192.168.0.24
t=0 0
m=audio 10004 RTP/AVP 0 101 //协商后语音编码是0(PCMU)
c=IN IP4 192.168.0.24
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv编号8: 服务器发ACK到被叫
ACK sip:1012@192.168.0.24:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.201;rport;branch=z9hG4bK76rr3jUDvUepj
Max-Forwards: 70
From: "1006" <sip:1006@192.168.0.201>;tag=SrUQ72vvXSHFK
To: <sip:1012@192.168.0.24:5060>;tag=3fVxEhXmI66Iss8a6YjNDWRhpIFlIEP1
Call-ID: 2ffaf428-2148-123b-649f-000c29e7aea9
CSeq: 49245689 ACK
Contact: <sip:mod_sofia@192.168.0.201:5060>
Content-Length: 0编号9: 服务器回复主叫200
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.131:56980;branch=z9hG4bK-d87543-bd00a80d61174148-1--d87543-;rport=56980
From: "1006" <sip:1006@192.168.0.201>;tag=11703172
To: "1012" <sip:1012@192.168.0.201>;tag=rF2y57BS0gUvQ
Call-ID: NDI2ODA4NmE4OTNlYjlhN2NlYzIxYzcxMzc0MTEzZTY.
CSeq: 1 INVITE
Contact: <sip:1012@192.168.0.201:5060;transport=udp>
User-Agent: FreeSWITCH-mod_sofia/1.10.7-dev+git~20210720T181005Z~4c04914003~64bit
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, path, replaces
Allow-Events: talk, hold, conference, presence, as-feature-event, dialog, line-seize, call-info, sla, include-session-description, presence.winfo, message-summary, refer
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 215
Remote-Party-ID: "Outbound Call" <sip:1012@192.168.0.201>;party=calling;privacy=off;screen=nov=0
o=- 3856587767 3856587769 IN IP4 192.168.0.24
s=SDP
c=IN IP4 192.168.0.24
t=0 0
m=audio 10004 RTP/AVP 0 101
c=IN IP4 192.168.0.24
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15编号10: 主叫发ACK到服务器
ACK sip:1012@192.168.0.201:5060;transport=udp SIP/2.0
Via: SIP/2.0/UDP 192.168.1.131:56980;branch=z9hG4bK-d87543-66782236ac1f413c-1--d87543-;rport
Max-Forwards: 70
Contact: <sip:1006@192.168.1.131:56980>
To: "1012"<sip:1012@192.168.0.201>;tag=rF2y57BS0gUvQ
From: "1006"<sip:1006@192.168.0.201>;tag=11703172
Call-ID: NDI2ODA4NmE4OTNlYjlhN2NlYzIxYzcxMzc0MTEzZTY.
CSeq: 1 ACK
User-Agent: eyeBeam release 1011d stamp 40820
Content-Length: 0
此时双方完成通话建立,可以进行语音通话(互相发送RTP语音包)编号11: 主叫挂断电话,发BYE到服务器
BYE sip:1012@192.168.0.201:5060;transport=udp SIP/2.0
Via: SIP/2.0/UDP 192.168.1.131:56980;branch=z9hG4bK-d87543-0139516e9a4ac937-1--d87543-;rport
Max-Forwards: 70
Contact: <sip:1006@192.168.1.131:56980>
To: "1012"<sip:1012@192.168.0.201>;tag=rF2y57BS0gUvQ
From: "1006"<sip:1006@192.168.0.201>;tag=11703172
Call-ID: NDI2ODA4NmE4OTNlYjlhN2NlYzIxYzcxMzc0MTEzZTY.
CSeq: 2 BYE
User-Agent: eyeBeam release 1011d stamp 40820
Reason: SIP;description="User Hung Up"
Content-Length: 0编号12: 服务器回复200到服务器
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.131:56980;branch=z9hG4bK-d87543-0139516e9a4ac937-1--d87543-;rport=56980
From: "1006" <sip:1006@192.168.0.201>;tag=11703172
To: "1012" <sip:1012@192.168.0.201>;tag=rF2y57BS0gUvQ
Call-ID: NDI2ODA4NmE4OTNlYjlhN2NlYzIxYzcxMzc0MTEzZTY.
CSeq: 2 BYE
User-Agent: FreeSWITCH-mod_sofia/1.10.7-dev+git~20210720T181005Z~4c04914003~64bit
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, path, replaces
Content-Length: 0
编号13: 服务器发BYE到被叫
BYE sip:1012@192.168.0.24:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.201;rport;branch=z9hG4bK8FjH5DcHS448D
Max-Forwards: 70
From: "1006" <sip:1006@192.168.0.201>;tag=SrUQ72vvXSHFK
To: <sip:1012@192.168.0.24:5060>;tag=3fVxEhXmI66Iss8a6YjNDWRhpIFlIEP1
Call-ID: 2ffaf428-2148-123b-649f-000c29e7aea9
CSeq: 49245690 BYE
User-Agent: FreeSWITCH-mod_sofia/1.10.7-dev+git~20210720T181005Z~4c04914003~64bit
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, path, replaces
Reason: SIP;description="User Hung Up"
Content-Length: 0
编号14: 服务器发200到主叫
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.201;rport=5060;received=192.168.0.201;branch=z9hG4bK8FjH5DcHS448D
Call-ID: 2ffaf428-2148-123b-649f-000c29e7aea9
From: "1006" <sip:1006@192.168.0.201>;tag=SrUQ72vvXSHFK
To: <sip:1012@192.168.0.24>;tag=3fVxEhXmI66Iss8a6YjNDWRhpIFlIEP1
CSeq: 49245690 BYE //这个200 OK是应答序号为49245690的BYE(编号13)消息的
Content-Length: 0关键说明:
1. 1006通过服务器呼叫1012,并且服务器是背靠背模式(B2BUA),因此通话是由两段通话桥接起来的,每一段通话都有各自唯一的Call-ID第一段通话: Call-ID: NDI2ODA4NmE4OTNlYjlhN2NlYzIxYzcxMzc0MTEzZTY.
第二段通话:Call-ID: 2ffaf428-2148-123b-649f-000c29e7aea9
2. 一段通话是1006到服务器,另一段通话是服务器到1012
3. 主叫发起INVITE(编号1)消息携带自己的媒体类型audio(语音),表明这是一个语音通话
4. 回复100 Trying(编号2和编号4)是防止请求方重传INVITE(按rfc3261协议,如果INVITE发送方未收到任何应答,则会按0.5,1,2,4,8..进行重传,直到累计重传时间达到32秒)
5. 服务器查找到被叫的地址后,发起一个新的INVITE(编号3)请求到被叫1012
6. 被叫回复180(编号5,此时被叫会开始振铃提示有来电)
7. 收到被叫180后,服务器回复主叫180(编号6),此时主叫会产生回铃音(表示被叫正在振铃)
8. 被叫用户接听,被叫回复服务器200(编号7)。服务器发送ACK到被叫。此时服务器与被叫完成对话建立。被叫开始向INVITE消息中的媒体地址(IP:192.168.1.131,端口:1572)发送rtp语音包
9. 服务器回复主叫200,主叫向服务器发ACK。此时主叫与服务器完成对话建立。主叫开始向200消息中的媒体地址(IP:192.168.0.24,端口:10004)发送rtp语音包10. 呼叫过程中,媒体编码是通过INVITE消息体中的SDP和200消息体中的SDP进行协商的
11. 通话过程中,文中使用服务器为媒体流透传模式,即主、被叫的RTP包不经过服务器,直接发给对方。实际环境中,有的服务器需要主、被叫媒体流经过。 分析问题时注意观察SDP中的媒体地址。
-
Kurento-SIP-GW
2021-05-07 18:34:39该节点应用程序是使用。 HTML客户端UI是使用Nikolay Talanov的Login / Logout Animation Concept制作的,网址为 。 动机 使用该网关可以轻松地将浏览器连接到任何传统的SIP端点,例如Softphone,PABX或MCU。 它最初... -
!SIP中INVITE的流程解释.doc
2021-05-24 17:22:53SIP中INVITE的流程 -
一个简单的JAVA-JAIN-SIP客户端,可以连接SIP服务端发起呼叫
2022-03-02 14:38:28包括登陆和发起呼叫流程 -
SIP制作管理流程.pdf
2021-10-07 12:52:50SIP制作管理流程.pdf -
SIP 交互流程.doc
2021-12-02 13:37:50SIP 交互流程.doc -
sip-servlets:常用的 SIP Servlet 应用程序集合
2021-06-03 12:36:46sip-servlets 常用的 SIP Servlet 应用程序集合 -
SIP交互流程.docx
2021-11-18 09:16:38SIP交互流程.docx -
Sip:下划线,通过Gulp和Sass进行了增强,以改进工作流程
2021-05-22 19:33:48SIP是基于Automattic的一个主题,有一个基本的Sass框架和最小的增强 设置充当基地的基础上改进的主题开发流程。 下载并激活 您首先需要通过输入以下命令来克隆此存储库: $ cd /your/WordPress/wp-content/themes/... -
nksip:Erlang SIP应用程序服务器
2021-03-03 15:47:29NkSIP是Erlang SIP框架或应用程序服务器,它极大地促进了健壮且可扩展的服务器端SIP应用程序的开发,例如,, 或出站服务器, , 或负载生成器。 NkSIP可以处理大部分SIP复杂性,同时允许完全访问请求和响应。 一个... -
图书馆SIP2接口测试工具
2021-01-18 15:03:07用于规范、指导RFID智能图书管理系统系统所使用的SIP2接口模块的二次开发。本指南适用于遵循3M的SIP2协议、通过Socket进行通讯的所有图书管理系统接口的开发。SIP2协议,全称为:Standard Interchange Protocol ... -
SIP协议 基本流程 及 抓包数据
2021-01-25 19:29:261、SIP业务基本知识 1.1 业务介绍 会话初始协议(Session Initiation Protocol)是一种信令协议,用于初始、管理和终止网络中的语音和视频会话,具体地说就是用来生成、修改和终结一个或多个参与者之间的会话。SIP... -
SIP注册流程
2020-01-22 17:27:17SIP Client SIP Server -------------------------register--------------------> <-----------------401Unauthorize-------------- -------------------------register---...