SipDemo Исходящий звонок
Я полностью вовлечен приложением SipDemo. Я делаю Sip Call, и это сделано. Я слышу голос, но другой глоток не может услышать мой голос.
Это мой регистрационный код:-
public void initializeLocalProfile() {
if (manager == null) {
return;
}
if (me != null) {
closeLocalProfile();
}
//sipcallid
// username and password should be same
// sipAddress = "101@217.xx.xxx.xxx";
String domain = sipAddress.substring(sipAddress.indexOf('@')+1);
String username = sipAddress.substring(0,sipAddress.indexOf('@'));
Toast.makeText(outcall.this, "domain = "+domain+" username "+username, Toast.LENGTH_LONG).show();
try {
SipProfile.Builder builder = new SipProfile.Builder(username, domain);
builder.setPassword("123456");
builder.setOutboundProxy(domain);
builder.setDisplayName(username);
builder.setAuthUserName(username);
//builder.setDisplayName(username);
// builder.setAutoRegistration(true);
// builder.setSendKeepAlive(true);
me = builder.build();
manager.setRegistrationListener(me.getUriString(), new SipRegistrationListener() {
public void onRegistering(String localProfileUri) {
updateStatus("Registering with SIP Server...");
}
public void onRegistrationDone(String localProfileUri, long expiryTime) {
updateStatus("Ready");
}
public void onRegistrationFailed(String localProfileUri, int errorCode,
String errorMessage) {
updateStatus("Registration failed. Please check settings.");
}
});
} catch (SipException se) {
updateStatus("Connection error.");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Это мой посвященный вызов:-
// sipcallid = "rahul22@sip2sip.info";
updateStatus(sipcallid);
try {
SipAudioCall.Listener listener = new SipAudioCall.Listener() {
@Override
public void onCallEstablished(SipAudioCall call) {
call.startAudio();
//call.setSpeakerMode(true);
call.toggleMute();
updateStatus1("on call established");
}
@Override
public void onCallEnded(SipAudioCall call) {
updateStatus1("on call end");
finish();
}
};
call = manager.makeAudioCall(me.getUriString(), sipcallid, listener, 30);
updateStatus1(""+call.getState());
}
catch (Exception e) {
Toast.makeText(outcall.this, "Error when trying to close manager"+ e.getMessage(), Toast.LENGTH_LONG).show();
if (me != null) {
try {
manager.close(me.getUriString());
} catch (Exception ee) {
Toast.makeText(outcall.this, "ee"+ e.getMessage(), Toast.LENGTH_LONG).show();
ee.printStackTrace();
}
}
if (call != null) {
call.close();
}
}
}
Пожалуйста, за исключением. Я слышу голос другого человека, но другой человек не слышит мой голос.
Помогите мне, пожалуйста!. Спасибо за ваше время.
2 ответа
Он поднимается, когда ваш IP-адрес обычно является NAT-адресом. Android не поддерживает NAT по умолчанию. Для поддержки с NAT вы будете использовать другие внешние библиотеки, такие как CSipSimple.
Я вижу, что вы вызываете call.toggleMute()
Может быть, вы выключаете микрофон? В приложении SipDemo есть кнопка, которая включает микрофон.
public boolean onTouch(View v, MotionEvent event) {
if (call == null) {
return false;
} else if (event.getAction() == MotionEvent.ACTION_DOWN && call != null && call.isMuted()) {
call.toggleMute();
} else if (event.getAction() == MotionEvent.ACTION_UP && !call.isMuted()) {
call.toggleMute();
}
return false;
}
Может быть, вы просто выключаете микрофон, когда начинаете разговор, но не включаете звук?