基於sip的網絡電話項目--說說(1)

公司近期上線了一個項目--是基於voip的網絡電話的構建 體驗地址 html

    該項目使用真實的電話號碼註冊,沒有好友觀念,只要知道對方的電話號碼就能夠撥號過去,固然前提是對方也安裝了該軟件並註冊了手機號。 前端

    剛據說的時候感受邏輯還很簡單,可是真正作的時候難題很多。首先就是我歷來沒有接觸過sip和即時通信的架構,而後就是如何保證最大化的實現點對點通話減小服務器壓力。 android

    通過網上搜索,羣裏的問答,初步瞭解了能夠作服務器端的有這麼幾個opensip、kamailio、freeswich、asterisk。固然還有一些,只不過我感受不能作生產使用,因此就放棄了。其中opensip和kamailio來自同一個openser開源項目,因此他們的代碼和配置文件幾乎同樣,沒有什麼區別。freeswich和asterisk屬於pbox範圍好比呼叫中心了ivr了等方面的功能比較強,我分析了一下項目需求好像對這方面的需求不多,幾乎沒有,因此就沒有使用它們,最後選擇了kamailio。由於最開始搭建opensips的時候沒有成功而搭建kamailio的時候成功了,因此就一直用kamailio了。 web

    而後就是客戶端的選擇,因爲我比較信賴谷歌的技術,因此開始找的是webrtc,由於webrtc能夠跨平臺,並且通話質量不錯,後來找到了sipml5,是一個web前端的sip,可是沒有成功。後來先兆android 發現可選的有 linphone、imdroid、csipsimple、sipdroid,他們的優缺點我在網上搜索了一下參看http://blog.csdn.net/banketree/article/details/21276101 最終選擇了csipsimle。imsdroid我也是用過一段,可是因爲及時性不是很好就沒有在深刻的研究,我仍是比較偏好他的,由於他使用的是doubango框架. 服務器

    固然,也是最重要的一點,nat穿透,我使用的是stun+網絡服務器轉發也能夠看我之前的stun turn ice 博文介紹。網上搜索kamailio自身沒有stun服務,可是我發現kamailio本身有一個stun模塊,因爲csipsimle可使用兩個stun服務器,一個做爲備用一個正常使用、並且時間關係就用來網上的一些免費的stun服務器。關於kamailio的stun服務若是有人知道能夠指點我一下。 網絡

相關文章
相關標籤/搜索