@Override protected void onHandleIntent(Intent intent) { if (intent.getAction().equals(ACTION_ENROL_SMS)) { doEnrolmentBySMS(this); } else if (intent.getAction().equals(ACTION_VALIDATE)) { // Get the validation code from the SMS String smsText = intent.getStringExtra(VALIDATION_CODE); handleValidationResponseSMS(smsText); } else if (intent.getAction().equals(ACTION_SCAN_SMS_INBOX)) { // TODO // typically invoked when // - app starts // - phone boots } else if (intent.getAction().equals(ACTION_RETRY_ENROLMENT)) { // TODO - retry enrolment or validation // typically invoked // - phone boots // - network status changes // - app starts } else if (intent.getAction().equals(ACTION_SMS_FAILED)) { // Failed to send the SMS notification = new Notification( R.drawable.icon22, getText(R.string.enrolment_sms_sending_failed), new Date().getTime()); Intent notificationIntent = new Intent(this, Sipdroid.class); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); notification.setLatestEventInfo( this, getText(R.string.enrolment_sms_sending_failed_title), getText(R.string.enrolment_sms_sending_failed), contentIntent); nm.notify(10, notification); LumicallDataSource ds = new LumicallDataSource(this); ds.open(); for (SIP5060ProvisioningRequest req : ds.getSIP5060ProvisioningRequests()) ds.deleteSIP5060ProvisioningRequest(req); ds.close(); logger.warning( "SMS sending failed, all provisioning requests deleted, user must start again"); } }
protected void setupSIP(Context context, SIP5060ProvisioningRequest req) throws IOException { AppProperties props = new AppProperties(context); // Setup the SIP preferences SharedPreferences settings = context.getSharedPreferences(RegisterAccount.PREFS_FILE, Context.MODE_PRIVATE); SharedPreferences sipSettings = context.getSharedPreferences(Settings.sharedPrefsFile, Context.MODE_PRIVATE); Editor edSIP = sipSettings.edit(); String num = req.getPhoneNumber(); LumicallDataSource ds = new LumicallDataSource(context); ds.open(); SIPIdentity sipIdentity = createSIPIdentity(props, settings, req); for (SIPIdentity s : ds.getSIPIdentities()) { if (s.getUri().equals(sipIdentity.getUri())) sipIdentity.setId(s.getId()); } ds.persistSIPIdentity(sipIdentity); ds.deleteSIP5060ProvisioningRequest(req); ds.close(); edSIP.putString(Settings.PREF_SIP, Long.toString(sipIdentity.getId())); if (!sipSettings.contains(Settings.PREF_TEL)) edSIP.putString(Settings.PREF_TEL, "-1"); /* edSIP.putString(Settings.PREF_USERNAME, settings.getString(RegisterAccount.PREF_PHONE_NUMBER, null)); edSIP.putString(Settings.PREF_PASSWORD, settings.getString(RegisterAccount.PREF_SECRET, null)); edSIP.putString(Settings.PREF_SERVER, DEFAULT_SIP_SERVER); edSIP.putString(Settings.PREF_DOMAIN, DEFAULT_SIP_DOMAIN); edSIP.putString(Settings.PREF_PROTOCOL, "tcp"); // FIXME - change to TLS edSIP.putBoolean(Settings.PREF_STUN, true); edSIP.putString(Settings.PREF_STUN_SERVER, DEFAULT_STUN_SERVER); edSIP.putString(Settings.PREF_STUN_SERVER_PORT, "" + DEFAULT_STUN_SERVER_PORT); */ edSIP.putBoolean(Settings.PREF_WLAN, true); edSIP.putBoolean(Settings.PREF_EDGE, true); edSIP.putBoolean(Settings.PREF_3G, true); edSIP.putBoolean(Settings.PREF_ON, true); if (edSIP.commit()) Log.v(TAG, "Configured prefs for number " + num); else { Log.e(TAG, "error while committing preferences"); } // Receiver.engine(context).updateDNS(); Receiver.engine(context).halt(); Receiver.engine(context).StartEngine(); }