This tutorial describes how an application gets the subscriber identification information.
CTelephony CTelephony::GetSubscriberId() to get the IMSI number  CTelephony::TSubscriberIdV1 object  CTelephony::EGetSubscriberIdCancel to cancel the asynchronous request.  #include <e32base.h>
#include <Etel3rdParty.h>
class CClientApp : public CActive
    { 
private:
    CTelephony* iTelephony;
    CTelephony::TSubscriberIdV1 iSubscriberIdV1;
    CTelephony::TSubscriberIdV1Pckg iSubscriberIdV1Pckg;
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),
      iSubscriberIdV1Pckg(iSubscriberIdV1)
    {
    //default constructor
    }
void CClientApp::SomeFunction()
    {
    iTelephony->GetSubscriberId(iStatus, iSubscriberIdV1Pckg);
    SetActive();
    }
void CClientApp::RunL()
    {
    if(iStatus==KErrNone)
       {
       TBuf<CTelephony::KIMSISize> suscriberId = iSubscriberIdV1.iSubscriberId;
       }
    }
void CClientApp::DoCancel()
    {
    iTelephony->CancelAsync(CTelephony::EGetSubscriberIdCancel);
    }