IP电话的呼叫过程
IP電話的呼叫過程整個IP電話的呼叫流程可分為3部分:連接階段、通話階段、拆線階段。(1)建立連接階段在空閑狀態下,CPU一直循環檢測是否有摘機或其它用戶呼入的信號。用戶摘機時, CPU檢測到摘機信號,就發送撥號音給用戶并準備接收用戶所撥的電話號碼。待號碼收齊后,CPU給服務器發送ARP請求,收到服務器的應答后再發送ICMP請求,從服務器的ICMP應答
中獲取對端的IP地址及物理地址,然后開始發起呼叫。通過ICMP包送到Ethernet,等待被叫用戶回應,如果等待一段時間,用戶未回應,說明用戶不在或線路故障,給用戶送忙音;如果被叫用戶回應,就給話筒送回鈴音,同時被叫用戶一方振鈴;若被叫久不摘機,被叫停止振鈴,并發ICMP消息給主叫用戶拆線,主叫用戶收到此消息,送忙音,等待主叫用戶掛機;如果被叫用戶在規定時間內摘機,則停止送振鈴音,并用ICMP應答信號,通知主叫用戶,被叫已應答,主叫用戶收到此消息,停止送鈴音,通話開始。(2)通話階段進入通話階段,主叫用戶就開始發送話音數據的IP包。具體過程如下:首先,將編碼后的語音數據進行接收,并按照UDP進行封裝,再封裝成IP包送往Ethernet;同時,將Ethernet Card接收到的語音IP包進行拆包,并按一定節拍將解封語音數據進行解碼,從而將被叫用戶的話音送到聽筒,將話筒的話音送到被叫方。被叫用戶在通話階段與主叫用戶通
話階段所處理的過程完全相同。(3)拆線階段當雙方通話階段結束時,如果主叫先掛機,CPU檢測了掛機信號,就經被叫方送拆線信號ICMP。被叫方收到此拆線信號,就給被叫方送忙音,提醒被叫方掛機。如果被叫方掛機,就經主叫方送1個釋放應答信號,并停止送忙音,這次通話就宣告結束。相反地,如果被叫方先掛機,其處理過程與上面是相同的。1次通話過程結束后,雙方進入空閑狀態,CPU再進行循環檢測是否有摘機以及其它用戶呼入的信號,然后重復上面的處理過程。ICMP模塊ICMP模塊主要實現對電話信令的封裝。ICMP包可分為2種:ICMP請求和ICMP應答。ICMP請求包括2種情況:向服務器發送請求獲取對方用戶的IP地址及物理地址和向對端用戶發送請求進行通話連接。相應的ICMP應答也有2種:服務器發送的應答和普通用戶的應答。 主叫用戶與服務器取得聯系后,向服務器發送1個ICMP請求并等待應答,從服務器的應答中獲取對方的IP地址和物理地址,然后再向對端發送1個ICMP請求包,從叫用戶收到主叫用戶的請求,做出應答。ICMP包的格式如圖3所示。 用數據區的第1個字節來標識2種情況:若第1個字節全為零,則在后面的數據區域中可填入IP地址及物理地址。若不全為零,則第1個字節為電話信令。電話信令可以自己定義,按照程控交換機的技術規范,只需要以下一些基本信令即可:(通過觀察通話過程,發現只有結束通話時才通過ICMP通知對方說,不可達)
總結
- 上一篇: textview的基本设置
- 下一篇: RandomForest随机森林总结