config-file
大家先大致瀏覽上面的pjsua文件說明,對整個pjsua的選項有個了解。然後我們關注到最後的config_file。
# this is a comment in the config file.
--id sip:[email protected]
--registrar sip:example.com
--realm *
--username alice
--password secret
sipserver測試環境搭建
需要三颱pc進行測試,兩台pc執行./pjsua客戶端,一台執行sipserver。另外需要三颱路由器,兩台pc客戶端執行分別執行在兩台路由器下,sipserver執行在上級路由網路。
按照前面的說明,分別生成user1和user2兩個conf檔案。
在兩個客戶端系統執行命令:./pjsua-x86_64-unknown-linux-gnu –config-file userx.conf
然後按照提示說明即可完成sip呼叫的過程。不過大概率情況下,你應該是不能進行語音對講的。因為兩個pjsua處於兩個不同網路下,需要nat穿透。
前面如果你遇到語音不通的情況,大概應該是你的路由器的nat模式是對稱型的,stun是無法穿透對稱型nat的,此處需要用到turn,按照協議介紹turn是對stun的一種補充,對於無法穿透的對稱型nat,需要借助turn進行**,我的理解turn已經不是純粹的p2p了。
turn server搭建:
這裡我們選擇restund作為turn server
restund的安裝參考:
(注意啟動restund服務時,修改/etc/restund.conf裡面的server ip)
我們需要將該restund server部署到sipserver同一網路中。
–turn-srv引數:
pjsip文件中關於–turn-srv的sample大概是這樣子的:
another example to use turn and ice:
$ ./pjsua --use-ice
--use-turn
--turn-srv turn.pjsip.org --turn-user
[username]
--turn-passwd ***
不了解turn的對這裡的–turn-user和–turn-passwd會十分疑惑。
我們檢視restund服務配置/etc/restund.auth:
#
# restund.auth
## this file contains a list of authenticated users, with one
# user per line in the format:
## username:ha1
## the ha1 value can be calculated using util/genha1.sh
## sample user for testing:
## username = demo
# realm = myrealm
# password = secret
#demo:c5dcdebd926706f33065ec3b65bf103c
這裡的預設的username就是demo,password就是secret了。
這樣上面的引數可以這麼填寫:
.
/pjsua--
use-
ice-
-use
-turn--
turn
-srv
restund_ip:3478--
turn
-user
demo--
turn
-passwd
secret
C 基於UDP實現的P2P語音聊天工具
語音獲取 要想傳送語音資訊,首先得獲取語音,這裡有幾種方法,一種是使用directx的directxsound來錄音,我為了簡便使用乙個開源的外掛程式naudio來實現語音錄取。在專案中引用naudio.dll 錄音相關 private iw ein w ein private w efilewri...
認識P2P,利用P2P
是peer to peer的縮寫 好象還看到過文章說是point to point,我也不清楚,網上的資料也不清楚,鬱悶 peer在英語裡有 地位 能力等 同等者 同事 和 夥伴 等意義。這樣一來,p2p也就可以理解為 夥伴對夥伴 的意思,或稱為對等聯網。目前人們認為其在加強網路上人的交流 檔案交換...
p2p的基本實現過程
絡上的大多數udp原理研究分析後,自己總結了下面的結果.1 client a 登入 通過http伺服器 webservices 驗證成功獲取自身資訊與好友 列表資訊等。2 http伺服器登記client a的nat後的ip位址與埠 3 client b登入 通過http伺服器 webservices...