上一篇在編譯完之后,就很不負責的結束了,本篇就對 PJSIP 庫中提供的一個示例 iPJSUA 的使用,做一個簡單的介紹。也能解除很多人對官方文檔的一個困擾,起碼我是被困擾過了。
首先,要確保你的 PJSIP 的庫和你即將要編譯的平台對應,或者你直接使用上一篇博文最后鏈接下載的庫,那樣不用做任何配置,因為它相應的 lib 文件夾中的庫,都是支持多平台的。
打開位於:pjsip-apps/src/pjsua/ios/ 下的 ipjsua.xcodeproj ,command + r ,運行該項目,如果編譯不成功,請參看我上面說的那句話;如果提示缺少 ”libmilenage-arm-apple-darwin9.a“,刪除項目 Libraries 文件夾中,對應的該文件:
再次 command + r,應該不會出什么問題了,那么你將看見如下的界面:
很直觀的一個界面,它叫你 telnet 到一個指定的地址和端口,那么從你的 mac 或者其它能和你電腦通訊的機器上 telnet 相應的地址即可。進去后,就可以參考 PJSUA-CLI 中的指令來進行相應操作了。
由於我的 mac 是安裝在虛擬機中的(屌絲。。。),宿主系統是 win7,那么我在我的 win7 中搭建一個 SIP 服務器,和添加一個 SIP 客戶端,來做一個最基本的使用演示。這里使用 miniSIPServer 和 miniSIPPhone 來作演示,從這里下載試用版:
下載后,安裝,打開即可:
SIP 帳號和密碼,對應着分機里面的設定,默認它已經給我們建立了幾個,賬戶和密碼一樣,以下是 SIPPhone 客戶端帳號配置(賬戶名、密碼:101,對應分機配置):
這樣我們的服務器搭建好了,並且有這么一個客戶端,這樣就可以在 mac 中與該服務器和客戶端進行通訊了,大家可以看到,我這里主系統的 IP 為 192.168.1.100,那么你們要視自己實際情況而定了。
首先從 mac 系統的終端中 telnet 模擬器中提示的地址和端口,進入后,我們參考文檔上,注冊一個賬戶(類似於登錄到服務器上,並不是新增加一個帳號,也就是說該賬戶服務器上必須要有)的命令是: acc add,這里有個技巧,當我們不知道后面怎么輸入參數時,就按 tab 鍵,它會給我們提示。這里我們輸入 acc add 然后按 tab 鍵(一次沒反應,就再按一次):
它提示要我們輸入 SIP URL,然后我們輸入 sip:102@192.168.1.100 ,再按 tab 它又會提示輸入 SIP 注冊服務器的地址,當然熟悉了之后,並不需要這樣一直按 tab,直接如下:
參數的意義分別是: 用戶的 SIP 地址,注冊服務器地址,Realm,用戶名,密碼,回車后,顯示注冊成功,這時候,我們看下 miniSIPServer 的分機列表:
此時 102 分機已經在線了,現在對 101 發起一次呼叫:
call new sip:101@192.168.1.100
OK,這時聽到 miniSIPPhone 振鈴了,我們點擊接聽即可接通:
上圖為分機在通話中的狀態,我們掛斷它,終端輸入:
call hangup
這時我們的通話被終結了,最后,我們來接一通電話,從 miniSIPPhone 中,直接呼叫 102:
這時候,我們在 mac 的 telnet 終端中輸入 call list , 會看到一個狀態為 incoming 的呼叫:
我們輸入 : call answer 200,即可接入,其中 200 為狀態碼(和 http 的狀態碼類似)。
OK,到這里,這個 iPJSUA,你應該知道怎么玩了吧~~ 其實很簡單的嘛~