//建立授權(quán),把密碼和用戶名稱通過(guò)authenticateMessage
if(authenticateMessage( *msg,
*inviteMsg,
UaConfiguration::instance()->getUserName(),
UaConfiguration::instance()->getPassword() ))
{
// went OK
sipEvent->getSipStack()->sendAsync( *inviteMsg );
}
else
{
// xxx there was an authentication problem, so we need to abort out
}
call->setContactMsg(inviteMsg);
// Update the Ring INVITE message
call->setRingInvite( new InviteMsg( *inviteMsg ) );
return 0;
}
a. 增強(qiáng)的RAS過(guò)程,在ARQ中指明了是否具備資源預(yù)留能力;
b. 增強(qiáng)的能力交換過(guò)程,收發(fā)端點(diǎn)都具備RSVP功能,通過(guò)能力交換過(guò)程可以雙方具備RSVP能力(RSVP屬于能力集合的一個(gè)部分),在OpenLogicalChannel原語(yǔ)中定義了一個(gè)參數(shù)qOSCapability來(lái)表示;
c. 增強(qiáng)的邏輯信道能力在邏輯信道打開過(guò)程中包含Path和Resv兩個(gè)過(guò)程
下面我們用圖來(lái)表示邏輯信道的打開過(guò)程和資源預(yù)留過(guò)程:
a. 如果有一個(gè)流不符合Tspec時(shí)--而這個(gè)時(shí)候路由器已經(jīng)為所有的入口和出口規(guī)劃了每一條虛鏈路的時(shí)候,一個(gè)不符合Tspec的流就足以毀壞同一類別所有其他留所爭(zhēng)取的服務(wù)質(zhì)量,例如入口處歸納低質(zhì)量的視頻/音頻流時(shí)候,出現(xiàn)了高質(zhì)量的視頻流。
b. 分散的/突發(fā)的流合并到平緩的流中時(shí)候。
不過(guò)一般來(lái)說(shuō)每個(gè)路由器都具備檢查流的Tspec的能力,特別是作為主干網(wǎng)絡(luò)入口的路由器(例如一些大的網(wǎng)絡(luò)(BGP/EBGP)的入/出口地方)。在運(yùn)行視頻會(huì)議或者是其他突發(fā)流很多的惡劣工作狀況的時(shí)候:
StateInCall::StateInCall()
{
addEntryOperator( new OpStartAudioDuplex );
addOperator( new OpAck );
addOperator( new OpConfTargetOk );
addOperator( new OpFwdDigit );
addOperator( new OpTerminateCall );
addOperator( new OpEndCall );
addOperator( new OpReInvite );//多方會(huì)議和呼叫等待
addOperator( new OpStartCallWaiting );
if ( UaConfiguration::instance()->getXferMode() != XferOff )
{
addOperator( new OpSecondCall );
addOperator( new OpRecvdXfer );
}
addExitOperator( new OpStopAudio );
}
無(wú)論是主叫還是被叫,最后情況下都會(huì)進(jìn)入到StateInCall狀態(tài)中去,顧名思義,這個(gè)狀態(tài)是打開媒體流(RTP/RTCP)通道,并且開始語(yǔ)音通訊的狀態(tài).