001_47.htm

来自「通讯类的标准。对要开发SS7的朋友有很大帮助的。(通讯协议)」· HTM 代码 · 共 260 行

HTM
260
字号
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0059)http://www.chinagk.org/technology/IPTech/001/css/001_47.htm -->
<HTML><HEAD><TITLE>001_45_47</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>.pg {
	LEFT: 0px; WIDTH: 635px; POSITION: absolute; TOP: 0px; HEIGHT: 983px
}
BODY {
	FONT-SIZE: 13px; COLOR: #000000; FONT-FAMILY: ""; BACKGROUND-COLOR: #ffffff
}
A {
	TEXT-DECORATION: none
}
.ps0 {
	LEFT: 64px; WIDTH: 529px; POSITION: absolute; TOP: 104px
}
.ps1 {
	LEFT: 37px; WIDTH: 554px; POSITION: absolute; TOP: 123px
}
.ps2 {
	LEFT: 37px; WIDTH: 563px; POSITION: absolute; TOP: 145px
}
.ps3 {
	LEFT: 37px; WIDTH: 556px; POSITION: absolute; TOP: 164px
}
.ps4 {
	LEFT: 37px; WIDTH: 95px; POSITION: absolute; TOP: 185px
}
.ps5 {
	LEFT: 64px; WIDTH: 529px; POSITION: absolute; TOP: 206px
}
.ps6 {
	LEFT: 37px; WIDTH: 556px; POSITION: absolute; TOP: 226px
}
.ps7 {
	LEFT: 37px; WIDTH: 557px; POSITION: absolute; TOP: 247px
}
.ps8 {
	LEFT: 37px; WIDTH: 557px; POSITION: absolute; TOP: 268px
}
.ps9 {
	LEFT: 37px; WIDTH: 556px; POSITION: absolute; TOP: 288px
}
.ps10 {
	LEFT: 37px; WIDTH: 556px; POSITION: absolute; TOP: 309px
}
.ps11 {
	LEFT: 37px; WIDTH: 556px; POSITION: absolute; TOP: 330px
}
.ps12 {
	LEFT: 37px; WIDTH: 202px; POSITION: absolute; TOP: 350px
}
.ps13 {
	LEFT: 64px; WIDTH: 530px; POSITION: absolute; TOP: 371px
}
.ps14 {
	LEFT: 37px; WIDTH: 556px; POSITION: absolute; TOP: 392px
}
.ps15 {
	LEFT: 37px; WIDTH: 556px; POSITION: absolute; TOP: 412px
}
.ps16 {
	LEFT: 37px; WIDTH: 553px; POSITION: absolute; TOP: 433px
}
.ps17 {
	LEFT: 37px; WIDTH: 557px; POSITION: absolute; TOP: 455px
}
.ps18 {
	LEFT: 37px; WIDTH: 244px; POSITION: absolute; TOP: 476px
}
.ps19 {
	LEFT: 64px; WIDTH: 529px; POSITION: absolute; TOP: 495px
}
.ps20 {
	LEFT: 37px; WIDTH: 163px; POSITION: absolute; TOP: 516px
}
.ps21 {
	LEFT: 64px; WIDTH: 530px; POSITION: absolute; TOP: 536px
}
.ps22 {
	LEFT: 37px; WIDTH: 81px; POSITION: absolute; TOP: 557px
}
.ps23 {
	LEFT: 64px; WIDTH: 529px; POSITION: absolute; TOP: 578px
}
.ps24 {
	LEFT: 37px; WIDTH: 562px; POSITION: absolute; TOP: 598px
}
.ps25 {
	LEFT: 37px; WIDTH: 556px; POSITION: absolute; TOP: 619px
}
.ps26 {
	LEFT: 37px; WIDTH: 556px; POSITION: absolute; TOP: 640px
}
.ps27 {
	LEFT: 37px; WIDTH: 563px; POSITION: absolute; TOP: 660px
}
.ps28 {
	LEFT: 37px; WIDTH: 149px; POSITION: absolute; TOP: 681px
}
.ps29 {
	LEFT: 64px; WIDTH: 530px; POSITION: absolute; TOP: 702px
}
.ps30 {
	LEFT: 37px; WIDTH: 556px; POSITION: absolute; TOP: 722px
}
.ps31 {
	LEFT: 37px; WIDTH: 543px; POSITION: absolute; TOP: 743px
}
.ps32 {
	LEFT: 37px; WIDTH: 556px; POSITION: absolute; TOP: 765px
}
.ps33 {
	LEFT: 37px; WIDTH: 556px; POSITION: absolute; TOP: 784px
}
.ps34 {
	LEFT: 37px; WIDTH: 27px; POSITION: absolute; TOP: 805px
}
.ps35 {
	LEFT: 64px; WIDTH: 530px; POSITION: absolute; TOP: 826px
}
.ps36 {
	LEFT: 37px; WIDTH: 563px; POSITION: absolute; TOP: 846px
}
.ps37 {
	LEFT: 37px; WIDTH: 556px; POSITION: absolute; TOP: 867px
}
.ps38 {
	LEFT: 37px; WIDTH: 563px; POSITION: absolute; TOP: 888px
}
.ps39 {
	LEFT: 332px; WIDTH: 189px; POSITION: absolute; TOP: 54px
}
.ps40 {
	LEFT: 541px; WIDTH: 37px; POSITION: absolute; TOP: 31px
}
.ps41 {
	LEFT: 45px; WIDTH: 43px; POSITION: absolute; TOP: 64px
}
.ft0 {
	FONT-SIZE: 13px; FONT-FAMILY: "Times New Roman",Times,serif
}
.ft2 {
	FONT-STYLE: italic; FONT-FAMILY: ""
}
.ft3 {
	FONT-WEIGHT: bold; FONT-SIZE: 37px; FONT-STYLE: italic; FONT-FAMILY: "Times New Roman",Times,serif
}
.ft4 {
	FONT-SIZE: 21px; COLOR: #000000; FONT-STYLE: italic; FONT-FAMILY: ""
}
.em0 {
	FONT-SIZE: 13px; FONT-FAMILY: "Times New Roman",Times,serif
}
.em1 {
	FONT-SIZE: 13px; FONT-FAMILY: ""
}
.em2 {
	FONT-SIZE: 13px; FONT-STYLE: italic; FONT-FAMILY: "Times New Roman",Times,serif
}
.im0 {
	LEFT: 35px; WIDTH: 561px; POSITION: absolute; TOP: 24px
}
</STYLE>

<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY>
<DIV class=pg></DIV><!-- bitmap and vector images are written here -->
<DIV class=im0><IMG height=64 src="001_47.files/right.jpg" width=563 
border=0></DIV><!-- text starts here --><SPAN class=ps0><NOBR><SPAN 
class=ft0>INVITE<SPAN class=em1>命令被发送到公认的</SPAN>SIP UDP<SPAN class=em1>端口(<SPAN 
class=em0>5060</SPAN>),它包含呼叫</SPAN>ID<SPAN class=em1>、</SPAN>Cseq<SPAN 
class=em1>、</SPAN>SDP<SPAN class=em1>介质格式</SPAN></SPAN></NOBR></SPAN> <SPAN 
class=ps1><NOBR>以及路由信息,如<SPAN class=em0>From</SPAN>、<SPAN 
class=em0>To</SPAN>、<SPAN class=em0>Via</SPAN>信息。从<SPAN 
class=em0>lucy</SPAN>的呼叫代理(<SPAN class=em0>Call Agent</SPAN>,<SPAN 
class=em0>CA</SPAN>)发出的</NOBR></SPAN> <SPAN class=ps2><NOBR><SPAN 
class=ft0>TRYING<SPAN class=em1>信息应答(<SPAN 
class=em0>100</SPAN>)和</SPAN>Q.931<SPAN class=em1>的</SPAN>CALL PROCEEDING<SPAN 
class=em1>消息类似,它说明该呼叫已被路由。</SPAN></SPAN></NOBR></SPAN> <SPAN 
class=ps3><NOBR>在直接路由模型中,<SPAN 
class=em0>TRYING</SPAN>应答不可能出现,但在代理和重定向模型中,它对于跟踪呼叫</NOBR></SPAN> <SPAN 
class=ps4><NOBR>过程十分重要。</NOBR></SPAN> <SPAN 
class=ps5><NOBR>当呼叫到达远程端点以后,电话(虚拟的或者真实的)开始振铃,一条新的信息应答被</NOBR></SPAN> <SPAN 
class=ps6><NOBR>送到被叫方,指示<SPAN class=em0>RINGING<SPAN class=em1>(</SPAN>180<SPAN 
class=em1>)</SPAN></SPAN>。它和<SPAN 
class=em0>Q.931ALERTING</SPAN>消息类似。从用户在电话上拨完</NOBR></SPAN> <SPAN 
class=ps7><NOBR>最后一位数字(或者在端点<SPAN class=em0>A</SPAN>中按了一下上有<SPAN 
class=em0>lucy</SPAN>名字的按钮)以后,到用户<SPAN class=em0>A</SPAN>收到<SPAN 
class=em0>RINGING</SPAN></NOBR></SPAN> <SPAN class=ps8><NOBR>之间的时间就是<SPAN 
class=em0>SIP</SPAN>呼叫建立的拨叫后延迟(<SPAN class=em0>Post Dial Delay</SPAN>,<SPAN 
class=em0>PDD</SPAN>)。如果<SPAN class=em0>penny@dflx.com</SPAN>可</NOBR></SPAN> 
<SPAN class=ps9><NOBR>以像在标准的旧式普通电话一样拨打<SPAN 
class=em0>lucy</SPAN>的号码。那么还需要把拨打的数字转换成<SPAN 
class=em0>IP</SPAN>地址。可</NOBR></SPAN> <SPAN 
class=ps10><NOBR>以通过服务器或者服务器能够使用的某些运算设备完成这种功能,但是为了简单起见,这里</NOBR></SPAN> <SPAN 
class=ps11><NOBR>并没有涉及它。假定<SPAN 
class=em0>penny</SPAN>的端点上有一个“单击呼叫”元件(如一个图表),<SPAN 
class=em0>penny</SPAN>一旦单击</NOBR></SPAN> <SPAN class=ps12><NOBR>呼叫<SPAN 
class=em0>lucy<SPAN class=em1>,</SPAN>PDD</SPAN>时钟就开始计时。</NOBR></SPAN> <SPAN 
class=ps13><NOBR>当<SPAN class=em0>lucy</SPAN>拿起电话时,一条<SPAN 
class=em0>200</SPAN>应答发送到<SPAN class=em0>penny</SPAN>的用户代理(<SPAN class=em0>User 
Agent</SPAN>,<SPAN class=em0>UA</SPAN>)。<SPAN 
class=em0>UA</SPAN>再发</NOBR></SPAN> <SPAN class=ps14><NOBR>出一条<SPAN 
class=em0>ACK</SPAN>请求,确认对<SPAN 
class=em0>INVITE</SPAN>请求的成功应答,这时,介质开始在两个端点的传输地址上</NOBR></SPAN> <SPAN 
class=ps15><NOBR>流动。<SPAN class=em0>ACK</SPAN>并非多余的,它是一条请求,但它同时是对<SPAN 
class=em0>INVITE</SPAN>的确认。它可能携带接受端点</NOBR></SPAN> <SPAN 
class=ps16><NOBR>建议的、用于介质类型和格式的最终<SPAN class=em0>SDP</SPAN>参数。如果<SPAN 
class=em0>ACK</SPAN>并不包括<SPAN class=em0>SDP</SPAN>说明,那么将使用</NOBR></SPAN> <SPAN 
class=ps17><NOBR><SPAN class=ft0>INVITE<SPAN class=em1>消息中原有的</SPAN>SDP<SPAN 
class=em1>。</SPAN>INVITE<SPAN class=em1>的成功应答和随后的</SPAN>ACK<SPAN 
class=em1>结合起来,大致和</SPAN>Q.931<SPAN class=em1>的</SPAN></SPAN></NOBR></SPAN> 
<SPAN class=ps18><NOBR><SPAN class=ft0>CONNECT<SPAN 
class=em1>消息类似。</SPAN>ACK<SPAN class=em1>不需要应答。</SPAN></SPAN></NOBR></SPAN> 
<SPAN class=ps19><NOBR>这一点十分简单,但是我们现在已经到达<SPAN 
class=em0>SIP</SPAN>的通话点。介质流过<SPAN class=em0>RTP<SPAN 
class=em1>,</SPAN></SPAN>而<SPAN class=em0>RTCP</SPAN>提供对连</NOBR></SPAN> <SPAN 
class=ps20><NOBR>接质量的统计数据和监控。</NOBR></SPAN> <SPAN class=ps21><NOBR>来自任何一方的<SPAN 
class=em0>BYE</SPAN>请求结束呼叫。因为所有的消息都是在<SPAN 
class=em0>UDP</SPAN>上传送的,所以没有其</NOBR></SPAN> <SPAN 
class=ps22><NOBR>他事情要做。</NOBR></SPAN> <SPAN class=ps23><NOBR>使用代理服务器的<SPAN 
class=em0>SIP</SPAN>呼叫要复杂一些。在这种情况下,<SPAN class=em0>penny@dflx.com</SPAN>的<SPAN 
class=em0>MGC</SPAN>被设置</NOBR></SPAN> <SPAN class=ps24><NOBR>成<SPAN 
class=em0>lucy</SPAN>的<SPAN class=em0>SIP</SPAN>服务器的名字(<SPAN 
class=em0>sip.remotesysname.com</SPAN>)。一条<SPAN class=em0>INVITE</SPAN>被发送到<SPAN 
class=em0>lucy</SPAN>的<SPAN class=em0>SIP</SPAN>服务器,</NOBR></SPAN> <SPAN 
class=ps25><NOBR>其中的<SPAN class=em0>To</SPAN>域中指定了<SPAN 
class=em0>lucy@remotesysname.com</SPAN>。图<SPAN 
class=em0>1-28</SPAN>中代理情况下的呼叫流程是两个端点</NOBR></SPAN> <SPAN 
class=ps26><NOBR>间一般的流程。<SPAN class=em0>sip.remotesysname.com</SPAN>服务器需要查出<SPAN 
class=em0>lucy</SPAN>是否已经向该服务器注册。如果它</NOBR></SPAN> <SPAN 
class=ps27><NOBR>已注册过,则找出它的当前位置。用户定位服务也是支持移动特性的网络平台设计的一部分,</NOBR></SPAN> <SPAN 
class=ps28><NOBR>如下一代的<SPAN class=em0>VoIP</SPAN>公用网。</NOBR></SPAN> <SPAN 
class=ps29><NOBR>一旦<SPAN class=em0>sip.remotesysname.com</SPAN>服务器找到<SPAN 
class=em0>lucy</SPAN>的位置,它将传送<SPAN class=em0>INVITE</SPAN>请求。除了在<SPAN 
class=em0>Via</SPAN></NOBR></SPAN> <SPAN 
class=ps30><NOBR>域中添加它自己的服务器名称外,它不会改变该请求的报头域。注意,可能有多个服务器参</NOBR></SPAN> <SPAN 
class=ps31><NOBR>与到这个过程中。如果<SPAN 
class=em0>lucy</SPAN>已经把它的管理域放在一起,但是注册了一个新的服务器名称</NOBR></SPAN> <SPAN 
class=ps32><NOBR><SPAN class=ft0>sip.remotesysname.com<SPAN 
class=em1>,</SPAN><SPAN class=em1>那么远程服务器会再传送一次</SPAN>INVITE<SPAN 
class=em1>消息,并在报头中添加一个</SPAN></SPAN></NOBR></SPAN> <SPAN 
class=ps33><NOBR>新的<SPAN class=em0>Via</SPAN>域。这对于<SPAN 
class=em0>SIP</SPAN>系统调试可用性问题很有用,例如没有被网络和传输协议发现的环</NOBR></SPAN> <SPAN 
class=ps34><NOBR>路。</NOBR></SPAN> <SPAN 
class=ps35><NOBR>现在服务器需要保存呼叫的一些状态信息。这是通过在报头中的<SPAN 
class=em0>Cseq</SPAN>编号、呼叫<SPAN class=em0>ID</SPAN>和其</NOBR></SPAN> <SPAN 
class=ps36><NOBR>他单元经过时,把它们联系起来完成的。服务器发回一个<SPAN 
class=em0>TRYING</SPAN>信息应答,在这种情况下,</NOBR></SPAN> <SPAN 
class=ps37><NOBR>这条应答是有实际意义的。当<SPAN class=em0>lucy</SPAN>在她的新位置拿起电话时,<SPAN 
class=em0>RINGING</SPAN>应答会经过远程服务</NOBR></SPAN> <SPAN class=ps38><NOBR>器回到<SPAN 
class=em0>sip.remotesysname.com</SPAN>。两个服务器在给<SPAN 
class=em0>penny@dflx.com</SPAN>的应答信息中都会有<SPAN 
class=em0>Via</SPAN>域。</NOBR></SPAN> <SPAN class=ps39><NOBR><SPAN 
class=ft2>第<SPAN class=em2>1</SPAN>章<SPAN 
class=em2>IP</SPAN>语音和交互应用的协议</SPAN></NOBR></SPAN> <SPAN class=ps40><NOBR><SPAN 
class=ft3>47</SPAN></NOBR></SPAN> <SPAN class=ps41><NOBR><SPAN 
class=ft4>文档</SPAN></NOBR></SPAN> </BODY></HTML>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?