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 [[[ERROR: [NOKX000E] Unable to find definition for key reference 'CTelephony']]]CTelephony
  2. use [[[ERROR: [NOKX000E] Unable to find definition for key reference 'CTelephony']]]CTelephony::GetNetworkRegistrationStatus() to get the registration status information from the network
  3. use [[[ERROR: [NOKX000E] Unable to find definition for key reference 'CTelephony']]]CTelephony::EGetNetworkRegistrationStatusCancel to cancel the asynchronous request
  4. use [[[ERROR: [NOKX000E] Unable to find definition for key reference 'CTelephony']]]CTelephony::ENetworkRegistrationStatusChange to get the notification of any changes to the registration status
  5. pass the enumeration [[[ERROR: [NOKX000E] Unable to find definition for key reference 'CTelephony']]]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);
    }