一種基于ssrc的收發rtp包的方法
【技術領域】
[0001] 本發明涉及一種網絡通信中收發數據包的方法,特別涉及一種基于SSRC的收發 RTP包的方法。
【背景技術】
[0002] 基于IP的通信系統對信息傳輸的實時性要求越來越高,尤其是實時交互的語音 和視頻等業務。在目前IP集群調度通信專網領域中,調度交換機對外接口包括控制層面和 用戶面,控制面采用SIP(會話發起協議)或者其它協議傳輸信令,用戶面采用RTP/RTCP協 議傳輸語音包,RTP(Real-timeTransportProtocol,實時傳輸協議)用于傳輸實時數據 如語音,RTCP(Real-timeTransportControlProtocol,實時傳輸控制協議)用于監視網 絡的服務質量,并傳遞與會者會話中的信息。RTP/RTCP-般承載于UDP上,如圖1所示。
[0003]RTP流使用偶數2n端口號,相應RTCP實用相鄰的奇數2n+l端口號,RTP包頭結構 如圖2所示。呼叫建立時(包括媒體需要經過交換機的單呼以及組呼),交換機為本次呼叫 分配RTP端口,并通過信令傳輸給終端,以便終端能正確地將語音包發送給指定的端口,呼 叫結束后交換機回收之前分配的端口,也就是說RTP端口是隨呼叫動態隨機分配的,同一 時刻每個呼叫所分配的端口都不相同,并且同一呼叫內為各方分配的端口也不相同,不同 的媒體流采用端口號(加上網絡地址,一般網絡地址為同一個)來區分,RTP包頭中SSRC(同 步源)字段沒有有效使用。
[0004] 然而已有技術普遍采用的方法是:分配一大段端口范圍,在呼叫時從中分配選擇 端口。這種方式不僅需要占用大量的端口資源,并且端口號不可控的,隨機分配的多個端口 可能發生沖突。此外,監聽以及錄音時也不方便,特別是涉及NAT(網絡地址轉換)穿越需 要端口映射時比較繁瑣。
【發明內容】
[0005] 鑒于上述現有技術所存在的問題,本發明提出一種基于SSRC的收發RTP包的方 法,該方法中會話終端之間通過交換機發送和接收RTP包,包括以下步驟:交換機配置固定 端口,啟動線程以監聽該端口;呼叫建立時,交換機為本呼叫分配固定端口,分別為各會話 終端分配一個SSRC,并將分配的固定端口和SSRC信息分別傳送給各會話終端;呼叫建立 后,各會話終端利用從所述交換機獲取的SSRC填充RTP包頭,向對端或交換機發送RTP包。
[0006] 優選的,交換機通過呼叫信令消息將固定端口和SSRC信息傳送給各會話終端,各 會話終端從所述呼叫信令消息中提取所述信息。
[0007] 優選的,該方法還包括:在呼叫建立時,交換機建立各SSRC的控制塊,其中記錄各 SSRC會話轉接關系、和各SSRC關聯對應的遠端媒體地址和本端媒體地址。
[0008] 優選的,交換機為本呼叫分配的固定端口為一個或多個,為各會話終端分配的 SSRC各不相同。
[0009] 優選的,交換機為本呼叫分配固定端口,分別為各會話終端分配一個SSRC,并將分 配的固定端口和SSRC信息分別傳送給各會話終端,具體包括:
[0010] 主叫終端發起呼叫,攜帶主叫的媒體地址;交換機收到呼叫后,從本端配置的固定 端口中選擇端口port1,給被叫終端發送呼叫消息,攜帶為被叫分配的本端媒體端口port1 和SSRCB字段;被叫終端收到呼叫消息,保存交換機的媒體地址信息,提取其中的SSRCB 字段并保存,發送應答消息給交換機,該應答消息攜帶被叫終端的媒體地址;交換機收到應 答消息,保存被叫終端的媒體地址到對應的SSRCB的控制塊中,然后給主叫終端發送被叫 應答消息,攜帶為主叫終端分配的本端媒體端口port1和SSRCA字段;主叫終端收到被叫應 答消息,提取其中的SSRCA字段并保存,回復確認消息。
[0011] 優選的,所述各會話終端利用從交換機獲取的SSRC填充RTP包頭,向對端或交換 機發送RTP包具體包括:呼叫建立后,各會話終端分別使用所述獲取的SSRC填RTP包頭的 同步源標識符字段,發送給交換機;各會話終端向本呼叫分配的交換機固定端口發送RTP 包,交換機收到RTP包,根據包頭同步源標識符字段找到對應的轉發表,將收到的RTP發送 給該轉發表中記錄的遠端媒體地址。
[0012] 優選的,所述會話終端至少包括一個主叫終端和一個被叫終端;所述RTP包為RTP 語音包。
[0013] 本發明還提出一種用于上述方法的交換機裝置,該裝置包括固定端口管理模塊用 于呼叫建立時為本呼叫分配固定端口;SSRC管理模塊用于為各會話終端分配SSRC;消息收 發模塊用于將分配的固定端口和SSRC信息發送給各會話終端,接收各會話終端發送的消 肩、。
[0014] 優選的,該裝置還包括控制塊管理模塊,用于建立和維護各SSRC控制塊,記錄各 SSRC會話轉接關系和各SSRC關聯對應的遠端媒體地址和本端媒體地址。
[0015] 優選的,固定端口管理模塊為本呼叫分配的固定端口為一個或多個,所述SSRC管 理模塊分配的SSRC各不相同。
[0016] 本發明還提出一種用于上述方法的終端裝置,該裝置包括第一模塊,用于接收交 換機消息,提取其中的SSRC信息并保存;第二模塊,用于利用所述第一模塊提取的SSRC信 息填充RTP包頭。
[0017] 本發明還提出一種用于上述方法的系統,該系統包括如上的交換機裝置和終端裝 置。
[0018] 本發明使交換機只需要提供有限個固定的端口號,采用復用端口號的方式來傳輸 不同的會話語音流。交換機統一分配RTP包頭中的SSRC,通過SSRC來區分不同的媒體流, 同時也解決了各終端自行分配SSRC可能沖突的問題。
[0019] 相比于先前技術,本發明至少具有以下優點:
[0020] 1、解決了現有技術媒體端口使用隨機性,端口占用數量過多以及不可控的缺陷;
[0021] 2、由于端口固定分配,因此在監控時非常有利,如需要監控通話內容,只需要監控 固定端口進出的UDP包即可;
[0022] 3、在私網NAT穿越時,使語音的穿越這項較為繁瑣的任務在使用固定端口后變得 配置更簡單;
[0023] 4、在集群專網系統中,錄音功能一般是必不可少的,此時由于媒體端口固定,只需 要對固定端口錄音即可,非常方便。
【附圖說明】
[0024] 圖1是現有技術的標準RTP/RTCP網絡層次關系的簡圖。
[0025] 圖2是現有技術中標準RTP報文結構的示意圖。
[0026] 圖3是根據本發明實施例之一的基于SIP的單呼流程圖。
[0027] 圖4是根據本發明實施例之一的基于SIP的組呼流程圖。
【具體實施方式】
[0028] 為對本發明作進一步的理解,下面將結合附圖對本發明所述的方法的具體實施例 作詳細描述。本領域技術人員應當理解,下面描述中的附圖僅僅是本發明的一些實施例,對 于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得 其他相關內容。
[0029] 本發明披露的方法中會話終端之間通過交換機發送和接收RTP包,交換機配置固 定端口,啟動線程以監聽該端口,呼叫建立時,交換機為本呼叫分配固定端口,分別為各會 話終端分配一個SSRC,并將分配的固定端口和SSRC信息分別傳送給各會話終端,呼叫建立 后,各會話終端利用從所述交換機獲取的SSRC填充RTP包頭,向對端或交換機發送RTP包。
[0030] 實施例1
[0031] 圖3是根據本發明第一實施例基于SIP的單呼流程圖。主叫終端A經交換機而呼 叫唯一的被叫終端B。現參見圖3,基于SIP的單呼流程主要包括:
[0032] 步驟301.交換機啟動后,配置4個端口(假設為portl,port2,port3,port4)用于 媒體收發包,針對每個端口各啟動一個線程,共4個線程用于收包處理,每個線程處理一個 端口;
[0033]