Hi Vijay, > +static void netreg_status_watch(int status, int lac, int ci, int tech, > + const char *mcc, const char *mnc, > + void *data) > +{ > + struct ofono_modem *modem = data; > + > + if (status != NETWORK_REGISTRATION_STATUS_REGISTERED && > + status != NETWORK_REGISTRATION_STATUS_ROAMING) > + return; > + > + switch (tech) { > + case ACCESS_TECHNOLOGY_EUTRAN: > + switch(modem->pref_mode) { > + case PREFERRED_UE_MODE_PS_VOICE_CENTRIC: > + case PREFERRED_UE_MODE_PS_DATA_CENTRIC: > + /* No need to do any switching */ > + break; > + case PREFERRED_UE_MODE_CS_PS_VOICE_CENTRIC: > + case PREFERRED_UE_MODE_CS_PS_DATA_CENTRIC: > + /* > + * All atoms needs to be created which is > + * already done > + */ > + break; > + } > + break; > + case ACCESS_TECHNOLOGY_GSM: > + case ACCESS_TECHNOLOGY_GSM_COMPACT: > + case ACCESS_TECHNOLOGY_UTRAN: > + case ACCESS_TECHNOLOGY_GSM_EGPRS: > + case ACCESS_TECHNOLOGY_UTRAN_HSDPA: > + case ACCESS_TECHNOLOGY_UTRAN_HSUPA: > + case ACCESS_TECHNOLOGY_UTRAN_HSDPA_HSUPA: > + switch(modem->pref_mode) { > + case PREFERRED_UE_MODE_PS_VOICE_CENTRIC: > + /* Switch to 3G */ > + break; > + case PREFERRED_UE_MODE_CS_PS_VOICE_CENTRIC: > + case PREFERRED_UE_MODE_CS_PS_DATA_CENTRIC: > + /* > + * All atoms needs to be created which is already > + * done. > + */ > + break; > + default: > + break; > + } > + break; > + } > +} > + So what exactly needs to be done here? Regards, -Denis