【问题标题】:How to get SIP caller information under android sip library如何在android sip库下获取SIP来电信息
【发布时间】:2016-03-15 10:14:16
【问题描述】:

我有一个使用 Android SIP library 的 Android 应用程序。

在接听电话部分,我想知道来电者的信息,例如来电者帐户,以便用户决定接听或拒绝来电。

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

我的问题是如何获取来电的来电帐号/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();
        }

    }
}

我试图解析传入的意图。 Intent 中有两个 extras 包含以下内容:

机器人: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

android:sipOfferSD:

300ac55ee035a105a2b11be200c63ba0@10.139.98.112

但是,它似乎没有帮助。

【问题讨论】:

    标签: android sip


    【解决方案1】:

    您发布的意图内容似乎是SDP(会话描述协议)报价,其中包含媒体参数的描述。它没有您寻找的会话信息。

    既然你有一个SipManager 实例,我猜你不知何故createSipSession()。拥有会话后,您可以使用 getPeerProfile() 检索对等方的 SipProfile,其中应包含您需要的信息。

    如果前面的方法不起作用,您还可以使用 call.getPeerProfile() 获取对等配置文件,因为您还有一个 SipAudioCall 对象。

    【讨论】:

    • 谢谢。以下是我需要的SipAudioCall call = sipManager.takeAudioCall(sipIntent, listener);Nname = call.getPeerProfile().getUserName();
    • @Cody 很高兴我能帮上忙!干杯
    猜你喜欢
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    • 2011-01-14
    • 2017-10-12
    相关资源
    最近更新 更多