Sipdroid會話流程圖:
圖片比較直觀,但是表述卻不夠詳細,下面咱們詳細分析下流程:
會話邀請所涉及到得類:
SipdroidEngine(call) - UserAgent(call) -ExtendedCall(call) - InviteDialog(invite)
左邊的代表涉及到的類,右邊代表涉及到的核心方法,從左到右進行觀察,左邊的類都有一個右邊類型的參數作爲自己的成員函數,就是SipdroidEngine有一個成員函數ua ,這個ua是UserAgent類型的。。。。
InviteDialog中的invite函數所做的事情也是非常的簡單,生成會話邀請的message然後通過SipProvider發送出去就行了,那麼發送完畢後,怎麼實現對發送結果的監聽呢?
其實自己猜測一下也猜測到服務器返回數據會什麼類型的?
1、等待對方應答中
2.對方已經應答,進入雙邊通話模式中,同時手機這邊開始聲音和視頻的採集.(聲音和視頻的採集,這個是核心中的核心哦,馬上就要弄到這塊了,興奮啊)
3. 超時,對方無應答.
在二的分析中,咱們用倒推的方法來分析下客戶端在接受到服務器的返回後,傳遞到了哪裏去進行會話邀請的結果了,客戶端是怎麼實現的.