Привет, я хочу разработать приложение для вызова и ответа на вызовы, с приведенным ниже кодом, я получаю ответ «Закрытие SipManager» и Toast «Not registered».Регистрация SIP - Android Studio
Я не получаю никакого исключения, и тост в «setRegistrationListener» никогда не запускался.
Что не так? В чем проблема?
private void inicializarPerfilLocal(){
if(mSipManager == null){
Toast.makeText(getApplicationContext(), "Error al iniciar administrador SIP", Toast.LENGTH_LONG);
return;
}
String username = COUNTRYCODE+PHONE_NUMBER;
String domain = "xx.yy.zz";
String password = "ABCABCABC";
try{
SipProfile.Builder builder = new SipProfile.Builder(username, domain);
builder.setPassword(password);
builder.setAuthUserName(username+"@"+domain);
builder.setOutboundProxy("255.255.255.0");
builder.setProfileName(username + "@" + domain);
builder.setDisplayName("Test");
builder.setProtocol("TCP");
builder.setAutoRegistration(true);
mSipProfile = builder.build();
Intent i = new Intent();
i.setAction("android.SipDemo.INCOMING_CALL");
PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, Intent.FILL_IN_DATA);
mSipManager.open(mSipProfile, pi, null);
if (mSipManager.isOpened(mSipProfile.getUriString())){
Toast.makeText(getApplicationContext(), "Administrador abierto", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext(), "Administrador cerrado", Toast.LENGTH_LONG).show();
}
mSipManager.setRegistrationListener(mSipProfile.getUriString(), new SipRegistrationListener() {
public void onRegistering(String localProfileUri) {
Toast.makeText(getApplicationContext(), "Registrando...",
Toast.LENGTH_LONG).show();
}
public void onRegistrationDone(String localProfileUri, long expiryTime) {
Toast.makeText(getApplicationContext(), "Registrado",
Toast.LENGTH_LONG).show();
}
public void onRegistrationFailed(String localProfileUri, int errorCode,
String errorMessage) {
Toast.makeText(getApplicationContext(), "Error en registro errorCode :: "+errorMessage,
Toast.LENGTH_LONG).show();
}
});
if (mSipManager.isRegistered(mSipProfile.getUriString())){
Toast.makeText(getApplicationContext(), "Registrado", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext(), "No registrado", Toast.LENGTH_LONG).show();
}
}catch(ParseException pe){
Toast.makeText(getApplicationContext(), "Excepcion de parseo", Toast.LENGTH_LONG).show();
}catch(SipException se){
Toast.makeText(getApplicationContext(), "Excepcion SIP", Toast.LENGTH_LONG);
}
}
Hi Ravi! о ваших рекомендациях, IP и порт открыты, потому что я настраиваю службу с помощью CSIPSimple, и она работает. Во второй рекомендации я перешел на «UDP», и теперь у меня есть «SipManager открыт», но не зарегистрирован. Я получаю ошибку «-9» (RegistrationFailed -9 :: 0) и «-4» (RegistrationFailed -4 :: registration not running) в журнале. –
Пожалуйста, проверьте журналы через tcpdump и какую ошибку вы получаете на tcpdump. Надеюсь, что CSIPSimple принимает все типы заголовков, но ваше приложение не – Ravi