Registration Status Tutorial

This tutorial describes how to get the registration information with the telephony API for applications.

Context

The information about the network service like Roaming, Busy, Emergency calls only or No service is provided to the client applications.

Steps

  1. create a new instance of CTelephony
  2. use CTelephony::GetNetworkRegistrationStatus() to get the registration status information from the network
  3. use CTelephony::EGetNetworkRegistrationStatusCancel to cancel the asynchronous request
  4. use CTelephony::ENetworkRegistrationStatusChange to get the notification of any changes to the registration status
  5. pass the enumeration CTelephony::ENetworkRegistrationStatusChangeCancel to cancel the notification request.

Registration status example

#include <e32base.h>
#include <Etel3rdParty.h>

class CClientApp : public CActive
    { 

private:
    CTelephony* iTelephony;
    CTelephony::TNetworkRegistrationV1 iNetworkRegistrationV1;
    CTelephony::TNetworkRegistrationV1Pckg iNetworkRegistrationV1Pckg;

public:
    CClientApp(CTelephony* aTelephony);
    void SomeFunction();

private:
    /*
       These are the pure virtual methods from CActive that  
       MUST be implemented by all active objects
       */
    void RunL();
    void DoCancel();
    };

CClientApp::CClientApp(CTelephony* aTelephony)
    : CActive(EPriorityStandard),
      iTelephony(aTelephony),
      iNetworkRegistrationV1Pckg(iNetworkRegistrationV1)
    {
    //default constructor
    }

void CClientApp::SomeFunction()
    {
    iTelephony->GetNetworkRegistrationStatus(iStatus, iNetworkRegistrationV1Pckg);
    SetActive();
    }

void CClientApp::RunL()
    {
    if(iStatus==KErrNone)
       {
       CTelephony::TRegistrationStatus regStatus = iNetworkRegistrationV1.iRegStatus;
       }
    }

void CClientApp::DoCancel()
    {
    iTelephony->CancelAsync(CTelephony::EGetNetworkRegistrationStatusCancel);
    }