由于網(wǎng)上的有關(guān)于Sip相關(guān)的視頻通訊术裸、即時通訊比較少归园,成型的Sip項目也相對較少,就算找到唬复,打開一個源碼也會看的頭暈?zāi)垦4;瑢τ谖疫@種android小白來說無與語是一種痛苦,先分享一下我學(xué)習(xí)Sip心得敞咧,旨在好腦袋不如爛筆頭
Sip協(xié)議(會話初始協(xié)議):它是一個基于文本的應(yīng)用層控制協(xié)議棘捣,用于創(chuàng)建、修改和釋放一個或多個參與者的會話休建,(可參考:Sip協(xié)議)
如果初期沒有Sip服務(wù)器乍恐,可以下載MiniSipServer,使用教程
1.開發(fā)條件:
如果你開發(fā)一個用到SIP API的應(yīng)用程序测砂,記住它需要Android2.3(API9)或者更高版本的平臺的支持茵烈。所以在你的設(shè)備上要運行Android2.3(API9)或者更高的版本,并不是所有的設(shè)備都提供SIP的支持砌些。
為了使用SIP呜投,需要添加以下權(quán)限到你的manifest文件:android.permission.USE_SIP/android.permission.INTERNET
為了確保你的應(yīng)用程序能夠安裝到支持SIP的設(shè)備上,你需要添加以下內(nèi)容到你應(yīng)用程序的manifest文件里:<uses-sdk android:minSdkVersion="9"/>
. 這個設(shè)置表明你的應(yīng)用程序需要Android2.3或者更高版本的平臺存璃。詳情請參考API Levels和元素相關(guān)的文檔桐猬。為了控制你的應(yīng)用程序被那些不支持SIP的設(shè)備過濾掉(比如:在Google Play)牙躺,你需要添加以下內(nèi)容到你應(yīng)用程序的manifest文件里:
<uses-feature android:name="android.hardware.sip.voip"/>
. 這個設(shè)置聲明了你的應(yīng)用程序用到了SIP API扬霜。這個聲明還應(yīng)該包含一個android:required 屬性來表明你是否想讓你的應(yīng)用程序被那些不提供SIP支持的設(shè)備過濾掉处嫌。其他聲明你也可能需要,具體取決于你的實現(xiàn)偎球,詳情請參考 元素相關(guān)的文檔洒扎。
如果你的應(yīng)用程序設(shè)計用來接受呼叫,那么你還必須在應(yīng)用程序的manifest文件里定義一個接收器(BroadcastReceiver 的子類):
<receiver android:name=".IncomingCallReceiver" android:label="Call Receiver"/>
2.網(wǎng)上相對于Sip進行呼叫的代碼較多衰絮,也就是使用Google原生的Sip袍冷,然后向服務(wù)器,利用廣播進行呼叫監(jiān)聽,可以參考一下連接:SipDemo學(xué)習(xí),可能我對源碼并沒有進行更多的了解以至于猫牡,我放棄了使用Google提供的原生的Sip庫胡诗,轉(zhuǎn)向現(xiàn)成的項目來SipUA,有興趣的可以學(xué)習(xí)一下