2013-12-15 7 views
7

Вот мой регистрационный код:Android регистрации SIP не удалось (-9 IN_PROGRESS)

protected void initializeManagerOpen(){ 
    consoleWrite("initializeOpen"); 
    if(mSipManager==null) { 
     return; 
    } 
    SipProfile.Builder builder; 
    try { 
     builder = new SipProfile.Builder("13", "10.0.0.4"); 
     builder.setPassword("13"); 
     builder.setPort(5062); 
     builder.setProtocol("UDP"); 
     mSipProfile = builder.build(); 

     try { 
      Intent intent = new Intent(); 
      intent.setAction("android.SipDemo.INCOMING_CALL"); 
      PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0, intent, Intent.FILL_IN_DATA); 
      mSipManager.open(mSipProfile, pendingIntent, null); 

      mSipManager.setRegistrationListener(mSipProfile.getUriString(), new SipRegistrationListener() { 

       public void onRegistering(String localProfileUri) { 
        mNotificationTask.endNotification(); 
        mNotificationTask.createNotification(R.drawable.ic_stat_connecting,"Test","Connecting"); 

        consoleWrite("Registering with SIP Server..."); 
       } 

       public void onRegistrationDone(String localProfileUri, long expiryTime){ 
        mNotificationTask.endNotification(); 
        mNotificationTask.createNotification(R.drawable.ic_stat_connected,"Test","Connected"); 

        consoleWrite("Ready"); 
       } 

       public void onRegistrationFailed(String localProfileUri, int errorCode, String errorMessage){ 
        mNotificationTask.endNotification(); 
        mNotificationTask.createNotification(R.drawable.ic_stat_disconnected,"Test","Failed to connect:"+errorCode); 

        consoleWrite("Registration failed. Please check settings."); 
        consoleWrite(""+errorCode); 
        consoleWrite(errorMessage); 
       } 

      }); 
     } catch (SipException e) { 
      e.printStackTrace(); 
     } 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
} 

Хотя иногда он зарегистрирован успешно, самое время я получил код ошибки -9:

Registration failed. Please check settings. 
-9 
0 

я нашел это описание на официальном сайте:

public static final int IN_PROGRESS 
The client is in a transaction and cannot initiate a new one. 
Constant Value: -9 (0xfffffff7) 

Что это значит? У меня нет другого приложения SIP, работающего на моем телефоне.

PS. В первый раз, когда я пытаюсь подключиться, он работает. Но второй раз он возвращает -9. Может быть, я не закрываю соединение правильно? Я думаю, что у меня есть проблемы, потому что я пытаюсь закрыть соединение, но это не закрывает ...

public void closeLocalProfile() { 
    if(mSipManager==null){ 
     return; 
    } 
    try{ 
     if(mSipProfile!=null){ 
      mSipManager.close(mSipProfile.getUriString()); 

      consoleWrite("mSipManager Closed - "+mSipProfile.getUriString()); 
     } 
    }catch(Exception e){ 
     consoleWrite("Failed to close local profile. - "+e); 
    } 
} 
+0

Привет, у вас есть решение этой проблемы? Я также сталкиваюсь с тем же. –

+0

Нет. Я все еще работаю над этим. – VoW

+0

надеюсь, что у вас есть решение для этого и желание поделиться им У меня такая же проблема, и я начал думать о переходе на стороннюю библиотеку sip – MolhamStein

ответ

2

Удалить все счета SIP вызовов от параметра и повторите:

Вызов App-> параметрируемую> Вызов счет интернет Удалить все данные аккаунта

PS: Извините за меню имя, мой телефон не на английском

1

Я столкнулся с такой же проблемой, и комментарий zicos22 помог мне решить. Проблема начинается из-за незакрытых SipProfiles, поэтому вам нужно запустить метод closeLocalProfile() внутри метода onPause() (он не работает при вызове внутри onDestroy()). На самом деле, я думаю, что мне нужно запустить этот материал sip в отдельном потоке, но пока я просто закрываю профиль в onPause. На моем телефоне Android с ZenUI i'am можно закрыть текущие открытые профили sip вручную в Настройки -> Настройки звонков -> Настройки учетной записи телефона -> учетные записи SIP.

Смежные вопросы