doubango
doubango copied to clipboard
about 4G or Wifi disconnect
when 4G or wifi disconnect, i how to reconnect SipService. please help me. thx
this is my current solution:
private void register() { if (netIsOK()) { SetPara setPara = DiskCacheHelper.getSip(); if (setPara == null) { return; } String SIP_DOMAIN = setPara.getImsDomain(); String SIP_USERNAME = setPara.getSipAccount(); String SIP_PASSWORD = setPara.getSipPassword(); String SIP_SERVER_HOST = setPara.getBackupProxy(); // Register Logger.r(TAG, "引擎启动? " + mEngine.isStarted()); while (!mEngine.isStarted()) { mEngine.start(); } if (mEngine.isStarted()) { Logger.r(TAG, "当前是否注册? " + mEngine.getSipService().isRegistered()); if (!mEngine.getSipService().isRegistered()) { // Set credentials设置凭证 mEngine.getConfigurationService() .putString(NgnConfigurationEntry.IDENTITY_IMPI, String.format("%s@%s", SIP_USERNAME, SIP_DOMAIN)); mEngine.getConfigurationService() .putString(NgnConfigurationEntry.IDENTITY_IMPU, String.format("sip:%s@%s", SIP_USERNAME, SIP_DOMAIN)); mEngine.getConfigurationService() .putString(NgnConfigurationEntry.IDENTITY_PASSWORD, SIP_PASSWORD); mEngine.getConfigurationService() .putString(NgnConfigurationEntry.NETWORK_PCSCF_HOST, SIP_SERVER_HOST); if (DiskCacheHelper.getLogin().getEncryptionFlag().equals("true")) { mEngine.getConfigurationService() .putInt(NgnConfigurationEntry.NETWORK_PCSCF_PORT, 5070); } else { mEngine.getConfigurationService() .putInt(NgnConfigurationEntry.NETWORK_PCSCF_PORT, 5060); } mEngine.getConfigurationService() .putString(NgnConfigurationEntry.NETWORK_REALM, SIP_DOMAIN); // VERY IMPORTANT: Commit changes mEngine.getConfigurationService().commit(); // register (log in) asyn Logger.r(TAG, "register (log in) asyn"); mEngine.getSipService().register(this); } } } }