• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 298  文章 - 377  trackbacks - 0
            <2016年7月>
            262728293012
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿(34)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊

            收藏夾

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            要想做出好的視頻通話軟件,必須了解視頻通話的主要技術。下面是總結的一些技術,僅供參考。

             

            1、支持標準SIP協議。

            SIP是類似于HTTP的基于文本的協議。SIP可以減少應用特別是高級應用的開發時間。由于基于IP協議的SIP利用了IP網絡,固定網運營商也會逐漸認識到SIP技術對于他們的深遠意義。
            SIP(Session Initiation Protocol)是一個應用層的信令控制協議。用于創建、修改和釋放一個或多個參與者的會話。這些會話可以是Internet多媒體會議、IP電話或多媒體分發。會話的參與者可以通過組播(multicast)、網狀單播(unicast)或兩者的混合體進行通信。   使用 SIP,服務提供商可以隨意選擇標準組件。不論媒體內容和參與方數量,用戶都可以查找和聯系對方。SIP 對會話進行協商,以便所有參與方都能夠就會話功能達成一致以及進行修改。它甚至可以添加、刪除或轉移用戶。   SIP它既不是會話描述協議,也不提供會議控制功能。為了描述消息內容的負載情況和特點,SIP 使用 Internet 的會話描述協議 (SDP) 來描述終端設備的特點。SIP 自身也不提供服務質量 (QoS),它與負責語音質量的資源預留協議(RSVP) 互操作。它還與若干個其他協議進行協作,包括負責定位的輕型目錄訪問協議(LDAP)、負責身份驗證的遠程身份驗證撥入用戶服務 (RADIUS) 以及負責實時傳輸的 RTP 等多個協議。  
            SIP 規定了以下基本的通信要求:  

             1. 用戶定位服務  

             2. 會話建立  

             3. 會話參與方管理   

               4. 特點的有限確定
            SIP 會話使用多達四個主要組件:

            SIP 用戶代理、SIP 注冊服務器、SIP 代理服務器和 SIP 重定向服務器。這些系統通過傳輸包括了 SDP 協議(用于定義消息的內容和特點)的消息來完成 SIP 會話。下面概括性地介紹各個 SIP 組件及其在此過程中的作用。
            3.1、SIP 用戶代理
            SIP 用戶代理(UA) 是終端用戶設備,如用于創建和管理 SIP 會話的移動電話、多媒體手持設備、PC、PDA 等。用戶代理客戶機發出消息。用戶代理服務器對消息進行響應。
            3.2、SIP 注冊服務器
            SIP 注冊服務器是包含域中所有用戶代理的位置的數據庫。在 SIP 通信中,這些服務器會檢索參對方的 IP 地址和其他相關信息,并將其發送到 SIP 代理服務器。
            3.3、SIP 代理服務器
            SIP 代理服務器接受 SIP UA 的會話請求并查詢 SIP 注冊服務器,獲取收件方 UA 的地址信息。然后,它將會話邀請信息直接轉發給收件方 UA(如果它位于同一域中)或代理服務器(如果 UA 位于另一域中)。
            3.4、SIP 重定向服務器
            SIP 重定向服務器允許 SIP 代理服務器將 SIP 會話邀請信息定向到外部域。SIP 重定向服務器可以與 SIP 注冊服務器和 SIP 代理服務器同在一個硬件上。

             SIP 的一個重要特點是它不定義要建立的會話的類型,而只定義應該如何管理會話。有了這種靈活性,也就意味著SIP可以用于眾多應用和服務中,包括交互式游戲、音樂和視頻點播以及語音、視頻和 Web 會議。SIP消息是基于文本的,因而易于讀取和調試。新服務的編程更加簡單,對于設計人員而言更加直觀。SIP如同電子郵件客戶機一樣重用 MIME 類型描述,因此與會話相關的應用程序可以自動啟動。SIP 重用幾個現有的比較成熟的 Internet 服務和協議,如 DNS、RTP、RSVP 等。不必再引入新服務對 SIP 基礎設施提供支持,因為該基礎設施很多部分已經到位或現成可用。   對 SIP 的擴充易于定義,可由服務提供商在新的應用中添加,不會損壞網絡。網絡中基于 SIP 的舊設備不會妨礙基于 SIP 的新服務。例如,如果舊 SIP 實施不支持新的 SIP 應用所用的方法/標頭,則會將其忽略。   SIP 獨立于傳輸層。因此,底層傳輸可以是采用 ATM 的 IP。SIP 使用用戶數據報協議(UDP) 以及傳輸控制協議(TCP),將獨立于底層基礎設施的用戶靈活地連接起來。SIP 支持多設備功能調整和協商。如果服務或會話啟動了視頻和語音,則仍然可以將語音傳輸到不支持視頻的設備,也可以使用其他設備功能,如單向視頻流傳輸功能。   通信提供商及其合作伙伴和用戶越來越渴求新一代基于 IP 的服務。現在有了 SIP(The Session Initiation Protocol 會話啟動協議),一解燃眉之急。SIP 是不到十年前在計算機科學實驗室誕生的一個想法。它是第一個適合各種媒體內容而實現多用戶會話的協議,現在已成了 Internet 工程任務組 (IETF) 的規范。   今天,越來越多的運營商、CLEC(競爭本地運營商)和 ITSP(IP 電話服務商)都在提供基于 SIP 的服務,如市話和長途電話技術、在線信息和即時消息、IP Centrex/Hosted PBX、語音短信、push-to-talk(按鍵通話)、多媒體會議等等。獨立軟件供應商 (ISV) 正在開發新的開發工具,用來為運營商網絡構建基于 SIP 的應用程序以及 SIP 軟件。網絡設備供應商 (NEV) 正在開發支持 SIP 信令和服務的硬件。現在,有眾多 IP 電話、用戶代理、網絡代理服務器、VOIP 網關、媒體服務器和應用服務器都在使用 SIP。   SIP 從類似的權威協議--如 Web 超文本傳輸協議(HTTP) 格式化協議以及簡單郵件傳輸協議(SMTP) 電子郵件協議--演變而來并且發展成為一個功能強大的新標準。但是,盡管 SIP 使用自己獨特的用戶代理和服務器,它并非自成一體地封閉工作。SIP 支持提供融合的多媒體服務,與眾多負責身份驗證、位置信息、語音質量等的現有協議協同工作。   SIP 較為靈活,可擴展,而且是開放的。它激發了 Internet 以及固定和移動 IP 網絡推出新一代服務的威力。SIP 能夠在多臺 PC 和電話上完成網絡消息,模擬 Internet 建立會話。   與存在已久的國際電信聯盟(ITU) SS7 標準(用于呼叫建立)和 ITU H.323 視頻協議組合標準不同,SIP 獨立工作于底層網絡傳輸協議和媒體。它規定一個或多個參與方的終端設備如何能夠建立、修改和中斷連接,而不論是語音、視頻、數據或基于 Web 的內容。   SIP 大大優于現有的一些協議,如將 PSTN 音頻信號轉換為 IP 數據包的媒體網關控制協議(MGCP)。因為 MGCP 是封閉的純語音標準,所以通過信令功能對其進行增強比較復雜,有時會導致消息被破壞或丟棄,從而妨礙提供商增加新的服務。而使用 SIP,編程人員可以在不影響連接的情況下在消息中增加少量新信息。   例如,SIP 服務提供商可以建立包含語音、視頻和聊天內容的全新媒體。如果使用 MGCP、H.323 或 SS7 標準,則提供商必須等待可以支持這種新媒體的協議新版本。而如果使用 SIP,盡管網關和設備可能無法識別該媒體,但在兩個大陸上設有分支機構的公司可以實現媒體傳輸。   而且,因為 SIP 的消息構建方式類似于 HTTP,開發人員能夠更加方便便捷地使用通用的編程語言(如 Java)來創建應用程序。對于等待了數年希望使用 SS7 和高級智能網絡(AIN) 部署呼叫等待、主叫號碼識別以及其他服務的運營商,現在如果使用 SIP,只需數月時間即可實現高級通信服務的部署。   這種可擴展性已經在越來越多基于 SIP 的服務中取得重大成功。Vonage 是針對用戶和小企業用戶的服務提供商。它使用 SIP 向用戶提供 20,000 多條數字市話、長話及語音郵件線路。Deltathree 為服務提供商提供 Internet 電話技術產品、服務和基礎設施。它提供了基于 SIP 的 PC 至電話解決方案,使 PC 用戶能夠呼叫全球任何一部電話。Denwa Communications 在全球范圍內批發語音服務。它使用 SIP 提供 PC 至 PC 及電話至 PC 的主叫號碼識別、語音郵件,以及電話會議、統一通信、客戶管理、自配置和基于 Web 的個性化服務。   某些權威人士預計,SIP 與 IP 的關系將發展成為類似 SMTP 和 HTTP 與 Internet 的關系,但也有人說它可能標志著 AIN 的終結。迄今為止,3G 界已經選擇 SIP 作為下一代移動網絡的會話控制機制。Microsoft 已經選擇 SIP 作為其實時通信策略并在 Microsoft XP、Pocket PC 和 MSN Messenger 中進行了部署。Microsoft 同時宣布 CE dot net 的下一個版本將使用基于 SIP 的 VoIP 應用接口層,并承諾向用戶 PC 提供基于 SIP 的語音和視頻呼叫。   另外,MCI 正在使用 SIP 向 IP 通信用戶部署高級電話技術服務。用戶將能夠通知主叫方自己是否有空以及首選的通信方式,如電子郵件、電話或即時消息。利用在線信息,用戶還能夠即時建立聊天會話和召開音頻會議。使用 SIP 將不斷地實現各種功能。

             


            2、DTMF方式支持 RFC2833 或者 SIP INFO 
            3、語音編碼方式優先級 G729,G711u,G711a,GSM
            4、支持 不加密、VOS加密二種加密方式。 
            5、支持顯余額功能
            6、支持電話本功能
            7、支持通話記錄功能
            8、支持讀取手機號碼,設置入sip協議的去電顯示display內
            9、支持3G wifi撥打
            10、支持NAT穿透

            NAT,即Network Address Translation,可譯為網絡地址轉換或網絡地址翻譯。   

            當前的Internet面臨兩大問題,即可用IP地址的短缺和路由表的不斷增大,這使得眾多用戶的接入出現困難。   使用NAT技術可以使一個機構內的所有用戶通過有限的數個(或1個)合法IP地址訪問Internet,從而節省了Internet上的合法IP地址;另一方面,通過地址轉換,可以隱藏內網上主機的真實IP地址,從而提高網絡的安全性。   在CCNA階段,主要考察NAT的基本技術,應試者應掌握下述的NAT術語和幾個典型的地址轉換類型。  

             1.NAT術語   在NAT中,有4個地址術語是必須正確理解的,它們是Inside Local、Inside Global、Outside Local和Outside Global   在這些術語中,Inside(內部)是指那些由機構或企業所擁有的內部網絡,這些網絡上的主機通常分配了私有地址。這些地址不能直接在Internet上進行路由,從而也就不能直接用于對Internet的訪問,必須通過網絡地址的轉換,以合法IP的身份來訪問Internet。前者即InsideLocal地址。后者則為Inside Glob動地址。   Local(本地)的地址是不能在Internet上通信的IP地址;Global(全局)的地址是能在Internet上通信的地址。   Outside(外部)是指除了我們考察的內部網絡之外的所有網絡。主要指Internets   有了對Inside、Outsider Local和Global4個詞的解釋,讓我們來看一看4個地址的定義。   

            ●Inside Local Address(內部本地地址)   指一個網絡內部分配給網上主機的IP地址,此地址通常不是Internet上的合法地址,即不是網絡信息中心 (NIC)或Internet服務提供商(ISP:internet service provider)所分配的IP地址。   

            ●Inside Global Address(內部全局地址)   用來代替一個或者多個內部本地IP地址的、對外的、Internet上合法的IP地址。   

            ●Outside Local Address(外部本地地址)   一個外部主機相對于內部網所用的IP地址。此地址需要是Internet上合法的地址,但是從內部網可以進行路由的地址空間中進行分配的。  

            ●Outside Global Address(外部全局地址)   由主機擁有者分配給在外部網上主機的IP地址。此地址是從一個從全局可路由的地址或網絡空間中分配的。   

            2.靜態內部源地址轉換   所謂靜態內部源地址轉換是指將一個內部本地的IP地址轉換成為惟一的內部全局地址,即私有地址和合法地址之間的靜態一一映射。這種轉換通常用在內部網上的主機需要對外提供服務(如Web、E-mail服務等)的情況下。   

            3.動態內部源地址轉換   在動態內部源地址轉換的方式下,一組內部本地地址與一個內部全局地址池之間建立起一種動態的一一映射關系。這種地址轉換形式下,內部主機可以訪問外部網絡,外部主機也能對內部網絡進行訪問,但必須是在內網IP地址與內部全局地址之間存在映射關系時才能成功,并且這種映射關系是動態的。   

            4.復用內部全局地址   Cisco路由器可以把內部全局地址進行復用性的轉換,從而實現內部本地地址對內部全局地址的多對一的映射。地址復用被啟用時,路由器在高層協議(如TCP或UDP端口號)維持有關的信息,將全局地址轉換為本地地址。當多個內部本地地址映射到同一個全局地址時,端口號將用來區別不同的本地地址。復用內部全局地址的技術也被稱為PAT(Port AddressTranslation。端口地址轉換)。

            一直以來,說起NAT穿透,很多人都會被告知使用UDP打孔這個技術,基本上沒有人會告訴你如何使用TCP協議去穿透(甚至有的人會直接告訴你TCP協議是無法實現穿透的)。但是,眾所周知的是,UDP是一個無連接的數據報協議,使用它就必須自己維護收發數據包的完整性,這常常會大大增加程序的復雜度,而且一些程序由于某些原因,必須使用TCP協議,這樣就常常令一些開發TCP網絡程序的人員“談穿透色變”。那么,使用TCP協議是不是就不能實現穿透呢?答案當然是否定的:TCP協議不僅能實現NAT穿透,而且實現起來比UDP穿透甚至還簡單一些。

            要了解如何使用TCP穿透NAT,就要首先看看如何使用UDP穿透NAT。

            我們假設在兩個不同的局域網后面分別有2臺客戶機A和 B,AB所在的局域網都分別通過一個路由器接入互聯網。互聯網上有一臺服務器S。

            現在AB是無法直接和對方發送信息的,AB都不知道對方在互聯網上真正的IP和端口, AB所在的局域網的路由器只允許內部向外主動發送的信息通過。對于B直接發送給A的路由器的消息,路由會認為其“不被信任”而直接丟棄。

            要實現 AB直接的通訊,就必須進行以下3步:A首先連接互聯網上的服務器S并發送一條消息(對于UDP這種無連接的協議其實直接初始會話發送消息即可),這樣S就獲取了A在互聯網上的實際終端(發送消息的IP和端口號)。接著 B也進行同樣的步驟,S就知道了AB在互聯網上的終端(這就是“打洞”)。接著S分別告訴A和B對方客戶端在互聯網上的實際終端,也即S告訴A客戶B的會話終端,S告訴B客戶A的會話終端。這樣,在AB都知道了對方的實際終端之后,就可以直接通過實際終端發送消息了(因為先前雙方都向外發送過消息,路由上已經有允許數據進出的消息通道)。

            用UDP來實現以上3步不存在什么理論上的問題,因為UDP是無連接的協議,它允許socket進行“多對一”的通訊(即幾個具有不同IP和端口號的socket向一個接收socket發送消息)。但是使用TCP就出現了問題:在一般情況下,TCP socket不允許在已經建立連接的端口上再進行監聽和使用該本地端口。換句話說,當AB連接上服務器S后,S將AB的實際終端告訴對方,下一步本該是AB利用對方的實際終端進行直連,但這時你會發現對方的實際終端已經被占用了(就是各自連接到服務器S的會話占用了終端),無法同時listen和 connect。于是很多人得出結論:TCP無法實現NAT穿透。

            于是問題的關鍵變成了如何復用一個TCP連接的本地終端,這其實不是協議的問題,而是一個API的問題。幸運的是,所有主流操作系統都支持一個特定的TCP套接字選項——SO_REUSEADDR。這個選項允許將多個socket綁定到同一個本地終端。我們建立socket的時候只要加上這么一行:

            setsockopt(socket, SOL_SOCKET, SO_REUSEADDR, &flag, len) ; //C++就這么做

            _Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, True) '這是vb.NET 更加簡單

            知道上面的知識就很好辦了,下面我來說說TCP協議的穿透流程:

            機器布局還是和上面使用UDP的一樣。現在假設客戶A想和客戶B建立TCP連接。

            首先還是 AB分別和服務器S分別建立連接,S記錄AB的互聯網實際終端。然后S分別向AB發送對方的實際終端。接著,從A和B向S連接時使用的端口,AB都異步調用connect函數連接對方的實際終端(就是S告訴的終端),同時,AB雙方都在同一個本地端口監聽到來的連接(也可以先監聽,再connect更好)。由于雙方都向對方發送了connect請求(假設各自的SYN封包已經穿過了自己的NAT),因此在對方connect請求到達本地的監聽端口時,路由器會認為這個請求是剛剛那個connect會話的一部分,是已經被許可的,本地監聽端口就會用SYN-ACK響應,同意連接。這樣,TCP穿透NAT的點對點連接就成功了。

            @import url(http://www.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
            posted on 2016-11-05 00:42 聶文龍 閱讀(749) 評論(0)  編輯 收藏 引用
            国产成人精品久久一区二区三区av| 日韩精品久久久肉伦网站| 狠狠色婷婷综合天天久久丁香 | 热综合一本伊人久久精品| 亚洲精品乱码久久久久久不卡| 久久精品国产99国产精品亚洲| 成人国内精品久久久久一区| 天堂无码久久综合东京热| 成人资源影音先锋久久资源网| 日韩久久无码免费毛片软件| 亚洲色婷婷综合久久| 久久99精品久久久久久不卡| 久久久精品2019免费观看| 亚洲国产成人久久综合一区77 | 国产精品成人99久久久久 | 无码专区久久综合久中文字幕| 日本久久久精品中文字幕| 午夜精品久久久久久影视riav| AAA级久久久精品无码片| 三级片免费观看久久| 99久久精品无码一区二区毛片 | 99久久99这里只有免费费精品| 国产亚州精品女人久久久久久| 人妻无码久久一区二区三区免费 | 久久最近最新中文字幕大全| 精品久久人人爽天天玩人人妻| 国产精品女同一区二区久久| 高清免费久久午夜精品| 日韩精品久久久肉伦网站| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 99久久精品免费看国产一区二区三区 | 97久久天天综合色天天综合色hd| 狠狠色婷婷久久一区二区 | 怡红院日本一道日本久久| 久久亚洲精品人成综合网| 国产A三级久久精品| 久久精品桃花综合| 久久精品国产亚洲αv忘忧草 | 久久99精品九九九久久婷婷| 国产呻吟久久久久久久92| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 |