diff -r 4816d766a08a -r f345bda72bc4 Symbian3/PDK/Source/GUID-FA5782F2-3E30-5EB9-A9E2-843CB9614FD6.dita --- a/Symbian3/PDK/Source/GUID-FA5782F2-3E30-5EB9-A9E2-843CB9614FD6.dita Tue Mar 30 11:42:04 2010 +0100 +++ b/Symbian3/PDK/Source/GUID-FA5782F2-3E30-5EB9-A9E2-843CB9614FD6.dita Tue Mar 30 11:56:28 2010 +0100 @@ -1,116 +1,116 @@ - - - - - -Licensee -TSY Tutorial This topic describes how to implement a licensee TSY. - -
Introduction

LTSY -functionality

The following functionality is implemented by the -device creators in the LTSY.

    -
  • Message Router

  • -
  • Message handler

  • -
  • Utility classes

  • -
  • Baseband sender

  • -
  • Baseband receiver

  • -
Message -router

The message router routes the telephony client requests -to the appropriate methods implemented by the licensees in the baseband. CTSY -provides the functionality through the CMmMessageRouter class. -Licensees should implement this class to acknowledge the CTSY messages. The -message router creates and processes all the message handlers. Each CTSY request -is distinguished by a specific Inter Process Communication (IPC) value. The -IPC number is used to route the calls. When a message router receives a request -from the CTSY, it creates baseband sender and baseband receiver objects.

Message handlers

The main function of the message handlers is -to group the CTSY requests into logical units. There is no limit on the number -of message handlers. The number of message handlers depends on the logical -grouping of baseband messages, decided by the licensees. The message handlers -implement the ExtFuncL() entry point. The message handlers -are responsible for handling the CTSY requests and their response from the -baseband.

Utility -class

The utility class must contain the information that can be -used by the LTSY to adapt baseband data to Symbian platform data format. The -information such as error code mapping is stored in the utility class.

Baseband sender

The purpose of the baseband sender is to send -messages to the baseband. The messages are created based upon the baseband -and should be able to get the information required to acknowledge the CTSY -requests.

Baseband -receiver

The main purpose of the baseband receiver is to receive -messages from the baseband and forward them to the CTSY. It is also responsible -for verifying the status of baseband and format of the data. The class must -format the data so that it can be processed by the CTSY.

-
Procedure
    -
  1. Phone engine starts -during the device startup

  2. -
  3. Phone engine creates -the PhoneTSY.dll

  4. -
  5. PhoneTSY.dll loads the -CommonTSY.dll and the LicenseeTSY.dll

  6. -
  7. LicenseeTSY.dll connects -with the baseband to verify that it is ready to receive requests from the -TSY

  8. -
  9. The baseband updates -the status to the LTSY

  10. -
  11. Any change in the baseband -status is notified to the CTSY by the LTSY.

  12. -
-Voice call -example

If a client application wants to make a call the following -sequence of events takes place after the TSY is initialised:

    -
  1. The client application -sends a request to the telephony server.

  2. -
  3. The server calls the -Dial function through the client side telephony object.

  4. -
  5. The dial request is -processed by the CTSY and forwarded to the message manager.

  6. -
  7. The message manager -forwards the request to the message router in LTSY.

  8. -
  9. After getting the information -from the message manager, the message router calls the ExtFunc, and forwards -the request to the baseband.

  10. -
  11. The baseband should -notify of the status changes and the call details to the LTSY. These details -should be forwarded to the CTSY using the Complete() method.

  12. -
  13. The complete method -should return the call details with:

      -
    • a KErrNone, -if the call is established successfully.

    • -
    • one of the GSM error -code, as specified in the reference section, -if the call establishment is unsuccessful.

    • -
  14. -
- -

The events can -be logged and debugged with the CommsDebugUtility.

The -Common TSY uses the CommsDebugUtility to log the TSY events. -The CommsDebugUtility can be enabled by adding LOG TSY -CTSY in commsdbg.ini file located at c:\logs.

-
Intermediate library

This topic describes how -to build and load the licensee TSY.

System -state manager

The system state manager is an ECOM plug-in used -by the CTSY. An alternative to the system state plug-in is available as a -stubbed method in ctsy/systemstateplugin.

Licensee TSY intermediate library

Phonetsy.tsy is -the DLL that loads the common TSY and the Licensee TSY. Each device has its -own LTSY. To load the TSYs dynamically:

    -
  • The LTSY to be used -in the device is known at ROM build time.

  • -
  • There is only one LTSY -per device.

  • -
  • The CTSY must not load -or unload any other TSY at runtime.

  • -

The common TSY does not use the ECOM plug-in, instead it is developed -as a IMPLIB target type. The IMPLIB target -will generates a licenseetsy.lib. The runtime library is -not available. The run time library must be developed and built by the licensees. -The licensees can name and configure the LTSY modules.

Licensees should -implement the interface defined by MLtsyFactoryV1 class -in ctsy/licenseetsy_lib/inc/mltsyfactory.h. The UID3 value -used in the intermediate library must be the same UID3 used in the LTSY implementation.

+ + + + + +Licensee +TSY Tutorial This topic describes how to implement a licensee TSY. + +
Introduction

LTSY +functionality

The following functionality is implemented by the +device creators in the LTSY.

    +
  • Message Router

  • +
  • Message handler

  • +
  • Utility classes

  • +
  • Baseband sender

  • +
  • Baseband receiver

  • +
Message +router

The message router routes the telephony client requests +to the appropriate methods implemented by the licensees in the baseband. CTSY +provides the functionality through the CMmMessageRouter class. +Licensees should implement this class to acknowledge the CTSY messages. The +message router creates and processes all the message handlers. Each CTSY request +is distinguished by a specific Inter Process Communication (IPC) value. The +IPC number is used to route the calls. When a message router receives a request +from the CTSY, it creates baseband sender and baseband receiver objects.

Message handlers

The main function of the message handlers is +to group the CTSY requests into logical units. There is no limit on the number +of message handlers. The number of message handlers depends on the logical +grouping of baseband messages, decided by the licensees. The message handlers +implement the ExtFuncL() entry point. The message handlers +are responsible for handling the CTSY requests and their response from the +baseband.

Utility +class

The utility class must contain the information that can be +used by the LTSY to adapt baseband data to Symbian platform data format. The +information such as error code mapping is stored in the utility class.

Baseband sender

The purpose of the baseband sender is to send +messages to the baseband. The messages are created based upon the baseband +and should be able to get the information required to acknowledge the CTSY +requests.

Baseband +receiver

The main purpose of the baseband receiver is to receive +messages from the baseband and forward them to the CTSY. It is also responsible +for verifying the status of baseband and format of the data. The class must +format the data so that it can be processed by the CTSY.

+
Procedure
    +
  1. Phone engine starts +during the device startup

  2. +
  3. Phone engine creates +the PhoneTSY.dll

  4. +
  5. PhoneTSY.dll loads the +CommonTSY.dll and the LicenseeTSY.dll

  6. +
  7. LicenseeTSY.dll connects +with the baseband to verify that it is ready to receive requests from the +TSY

  8. +
  9. The baseband updates +the status to the LTSY

  10. +
  11. Any change in the baseband +status is notified to the CTSY by the LTSY.

  12. +
+Voice call +example

If a client application wants to make a call the following +sequence of events takes place after the TSY is initialised:

    +
  1. The client application +sends a request to the telephony server.

  2. +
  3. The server calls the +Dial function through the client side telephony object.

  4. +
  5. The dial request is +processed by the CTSY and forwarded to the message manager.

  6. +
  7. The message manager +forwards the request to the message router in LTSY.

  8. +
  9. After getting the information +from the message manager, the message router calls the ExtFunc, and forwards +the request to the baseband.

  10. +
  11. The baseband should +notify of the status changes and the call details to the LTSY. These details +should be forwarded to the CTSY using the Complete() method.

  12. +
  13. The complete method +should return the call details with:

      +
    • a KErrNone, +if the call is established successfully.

    • +
    • one of the GSM error +code, as specified in the reference section, +if the call establishment is unsuccessful.

    • +
  14. +
+ +

The events can +be logged and debugged with the CommsDebugUtility.

The +Common TSY uses the CommsDebugUtility to log the TSY events. +The CommsDebugUtility can be enabled by adding LOG TSY +CTSY in commsdbg.ini file located at c:\logs.

+
Intermediate library

This topic describes how +to build and load the licensee TSY.

System +state manager

The system state manager is an ECOM plug-in used +by the CTSY. An alternative to the system state plug-in is available as a +stubbed method in ctsy/systemstateplugin.

Licensee TSY intermediate library

Phonetsy.tsy is +the DLL that loads the common TSY and the Licensee TSY. Each device has its +own LTSY. To load the TSYs dynamically:

    +
  • The LTSY to be used +in the device is known at ROM build time.

  • +
  • There is only one LTSY +per device.

  • +
  • The CTSY must not load +or unload any other TSY at runtime.

  • +

The common TSY does not use the ECOM plug-in, instead it is developed +as a IMPLIB target type. The IMPLIB target +will generates a licenseetsy.lib. The runtime library is +not available. The run time library must be developed and built by the licensees. +The licensees can name and configure the LTSY modules.

Licensees should +implement the interface defined by MLtsyFactoryV1 class +in ctsy/licenseetsy_lib/inc/mltsyfactory.h. The UID3 value +used in the intermediate library must be the same UID3 used in the LTSY implementation.

\ No newline at end of file