2016-03-15 48 views
0

我有一個使用Android SIP library的Android應用程序。如何在android sip庫下獲取SIP來電信息

在收到來電部分,我想知道來電者的信息,如來電者的帳戶,以便用戶可以決定應答或拒絕來電。

但是,我找不到如何顯示此信息。

我的問題是如何獲得來電號碼/ ID的來電?

下面是我的廣播接收到接收傳入的SIP呼叫:

public class IncomingCallReceiver extends BroadcastReceiver { 
    public void onReceive(final Context context, Intent intent) { 
     ... 
     SipManager sipManager = SipManager.newInstance(this); 
     ... 
     SipAudioCall call = sipManager.takeAudioCall(sipIntent, listener); 
     if(answerCall){ 
      call.answerCall(30); 
     }else{ 
      call.endCall(); 
     } 

    } 
} 

我試圖解析傳入意圖。有意向中額外2包含以下內容:

安卓sipCallID:

v=0 
o=- 1458035023435 1458035023447 IN IP4 210.202.37.33 
s=- 
c=IN IP4 210.202.37.33 
t=0 0 
m=audio 13662 RTP/AVP 96 97 3 0 8 127 
a=rtpmap:96 GSM-EFR/8000 
a=rtpmap:97 AMR/8000 
a=rtpmap:3 GSM/8000 
a=rtpmap:0 PCMU/8000 
a=rtpmap:8 PCMA/8000 
a=rtpmap:127 telephone-event/8000 
a=fmtp:127 0-15 
a=direction:active 
a=nortpproxy:yes 

安卓sipOfferSD:

[email protected] 

,但它似乎沒有什麼幫助。

回答

1

您發佈的意圖內容似乎是SDP(會話描述協議)優惠,其中包含媒體參數的說明。它沒有你尋求的會話信息。

由於你有一個SipManager實例,我猜你在某種程度上createSipSession()。一旦你有了會話,你可以使用getPeerProfile()來檢索對方的SipProfile,它應該包含你需要的信息。

如果以前不起作用,您還可以使用call.getPeerProfile()獲得對等配置文件,因爲您還有一個SipAudioCall對象。

+0

謝謝。以下是我所需要的 'SipAudioCall調用= sipManager.takeAudioCall(sipIntent,聽衆);'' = n名稱call.getPeerProfile()getUserName();' – Cody

+0

@Cody高興能幫上忙!乾杯 – Nacho