在Vovida的基礎上實現自己的SIP協議棧①


寫在前面的話
不少通訊方面的同好已經讀了我在去年歲末撰寫的《如何用OpenH323開發自己的H.323協議?!?大都給予了很高的評價,甚至可以說是好評如潮,說來慚愧,我只不過把十幾個人的工作進行了整理和歸納而已,事實上我自己的代碼只有很少的一部分(主要在H.245/H.235部分),后來很多朋友向我索要RTH323的測試版本一直未果,我在這里說明一下,由于該軟件的使用和二次開發的權利已經被某歐洲公司所買斷,所以我已經無權發布測試代碼,如有不便敬請大家原諒.
在我們開發RTH323之際,我已經開始注重SIP協議了,并且根據RFC2543設計了不少實驗代碼,因為當時的開發有一個H.323-SIP的翻譯網關的需求,不過后來這個計劃又取消了,也從這個時候開始我逐漸對SIP有了比較濃厚的愛好,只是并沒有做什么實際的工作,僅僅初步了解了一下協議的整體構造.
直到去年年底,我接觸了Vovida的開放原碼的SIP系統--Vocal以后,我決定開始系統的了解SIP的整個構造,我個人認為Vocal是一個非常典型的SIP系統,里面包含了所有構造電信級呼叫中心 , 區域網關以及中繼網關的所有內容,而且代碼清楚,比較易于改造;于是我花費了大概6個月的時間閱讀了整個Vocal系統的代碼,并在很多重要的地方做了標注.正好在今年的5月份,我的公司有構造一個大型的Voice/Video IP企業呼叫中心的計劃,我就把我對Vocal的研究成果提交給公司,方案得到通過,現在我的公司正在和國內某個知名大學合作預備在現有Vocal基礎上改造一個企業級的視頻電話呼叫平臺
不過我個人而言,對這個計劃不是非常的滿足,由于時間和金錢上的限制,大部分的電訊級補充服務第一階段沒有實現的,只可能在第二階段去實現該計劃,時間可能要持續很長,所以我也很希望有其他的開發公司參與完成這個方面的開發,當然我們也可以為有愛好的公司提供技術咨詢或者展開合作 。
我寫這本文的目的在于公布我個人對Vocal這個開放原代碼系統的一些研究成果,當然里面有很多地方沒有說得非常清楚,本身要用文字來闡述程序的設計思想就是一個非常困難的事情,所以我在里面大量的繪制了很多圖表,來幫助讀者閱讀本文,這次公布的是有關UA端的內容,后續在本文中將介紹Vocal系統中的Provision Server; Marshal Server; Redirect Server; HeartBeat Server:Policy Server:CDR Server:Network Manager:Feature Server:以及各種協議的Translator,讀者需要具備對SIP,H.323,MGCP,QoS的基本了解,以及對Java,XML, Call Processing Language , C的知識 , 在以下章節中不會對這些基本的知識做太具體的介紹 。
預計本文全部刊登完畢大概需近一年的時間 , 我希望有軟件開發公司來和我合作完成這篇文章或者是共同從事Vocal系統的二次開發工作 。
從這半年的閱讀Vocal的過程中我體會到Vocal系統的商業應用價值非常大 , 有人在論壇上和我討論:改造別人的應用平臺的難度和重新開發一個應用的難度哪個更大 , 雙方都各置一詞 , 就我個人覺得 , 大型的商業軟件假如按照開放原代碼來進行改造 , 非凡是一些基礎平臺(例如操作系統) , 速度肯定是比從零開始要快很多的 , RTH323就是一個成功的范例 , 這也是國內很多軟件廠商的基本運行模式 , 非凡對于一些人員 , 技術 , 資金都不是非常充裕的公司這可能也是唯一的方案 , 但是開放原代碼的軟件大部分的效率非常低下 , 而且代碼冗余 , 注釋比較少 , 可讀性非常差 , 甚至還有一些致命錯誤(Vocal中的Feature Server中就有這樣的錯誤 , 往往可以造成系統崩潰)所以這樣做的前提條件就是能把握住工作的重點 , 能及時發現并排除問題 , 這樣才可能把開放原代碼改造成高效率的商業應用 。

推薦閱讀