VOIP電話系統的開發思路

Asterisk,pjsip等開源項目的發展爲開發VOIP電話系統提供了便捷和廉價的途徑。
本人基於VOIP項目實踐的經驗,從技術上對VOIP電話系統的開發思路進行總結,希望對大家開發VOIP電話系統有所幫助。

以下是總體思路:
利用Asterisk作爲VOIP電話的服務器,pjsip作爲客戶端,UI端通過socket(java,C,vc,etc)和pjsip進行通訊。結構圖如下

 
服務端                    客戶端
Asterisk<===============>pjsip<====socket(java)===================>UI
 |                                                        |                                |                                                    |
 mysql                                      pjsua(1.x orlater)    WSASocket(Win)            Java(SWING)    
電話配置                              更改pjsua_app.c等    Socket(Linux)             JAVA<->Flex
電話計費                                                              Softphone
                                                                     Callcenter(frontdesk)


1,Asterisk
1.1) 需要把賬號的配置信息存入數據庫,可以通過Web application進行方便的管理和配置
1.2) 產生通話記錄歷史(cdr),爲計費和通話統計服務
1.3) 適當的情況下,可以擴展到多Asterisk服務器來支持擴充

2,pjsip
2.1) pjsip是客戶端和服務端通訊的核心
2.2) 需要適當修改pjsip的源代碼,支持Socket通訊(Server Socket/ Client Socket).pjsip擔當ServerSocket的角色,監聽來自UI端的請求;同時把來自UI端的請求發往電話服務器(Asterisk).

3,Socket
Socket 可以用使Java,C等來實現。它作爲UI和pjsip之間的橋接。

4,UI
4.1) UI客戶端是客戶真正看到的東西。比如Skype界面就是UI的一種展現。
我們可以根據實際情況,用不同的程序語言來實現UI端的開發。
4.2)Java:如果採用JAVA,我們可以用SWING來勾畫界面,通過偵聽器、回調等方式來響應來自socket通道的返回信息。
4.3)Flex:利用Flex作爲電話系統的UI端,是一種比較新的想法和嘗試。本人還沒有把這種想法付諸實踐。大家都知道,Flex可以構建強壯和豐富的富客戶端,可以展現出各種效果,如果加以合理的設計,一定可以給用戶帶來全新的體驗和留下深刻的印象。
Flex的實現思路:分爲兩層。
第一層:Flex描繪界面展現
第二層:通訊層(可以用Java語言來實現,作爲Flex UI 和 Socket 之間的通訊)

結束語:VOIP這些年的發展非常迅速,應用前景廣闊。基於TCP/IP協議的因特網革命還遠遠沒有結束,它所帶來的VOIP革命也一樣遠遠沒有結束。


發佈了29 篇原創文章 · 獲贊 8 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章