我正在使用Android中的Ngn Stack库开发一个VOIP应用程序。我收到来电号码的问题,因为我在下面的两个陈述中都显示了我自己的号码,而不是来电号码。
sipMessage.getSipHeaderValue("f")
sipMessage.getSipHeaderValue("t")
sip:4256380@122.162.166.144:52978
---->which receiver id,not caller id.
波纹管代码snipet是NgnAVSession.java
class
public static NgnAVSession takeIncomingSession(NgnSipStack sipStack, CallSession session, twrap_media_type_t mediaType, SipMessage sipMessage){
**Log.e("99", "Inside NgnAVSession sip message ="+sipMessage.getSipHeaderValue("f"));**
NgnMediaType media = NgnMediaType.ConvertFromNative(mediaType);
if(media == NgnMediaType.None){
Log.e(TAG, "Invalid media type");
return null;
}
synchronized (sSessions){
NgnAVSession avSession = new NgnAVSession(sipStack, session, media, InviteState.INCOMING);
if (sipMessage != null){
avSession.setRemotePartyUri(sipMessage.getSipHeaderValue("f"));
// avSession.setRemotePartyUri("sip:tushar@67.205.89.133");
}
sSessions.put(avSession.getId(), avSession);
return avSession;
}
}
请任何人帮助我如何解决此问题并获得正确的来电显示/详细信息。 在此先感谢。
答案 0 :(得分:2)
NgnContact类返回INgnContactService对象以获取远程方的名称。但是如果主叫号码保存在您的联系人列表中,则它会提供给您
答案 1 :(得分:0)
我没有找到任何解决方案,最后我做了一个网络服务来获取来电者的姓名。