Proactive
Command Tutorial
The proactive command tutorial describes how to use the different
proactive commands in Symbian platform.
The proactive commands are inherited from TSatPCmdBase object.
A proactive command is executed when one the SAT engines have requested for
a notification. TSY responds with an error message in the terminal response,
without a SAT engine request. Developers can start with a reference TSY framework
which implements the Core telephony API or write a new TSY. Add the other
features like Multimode then create a SAT engine. The member functions of
the RSat API are used to implement the SAT engine.
Create an instance of RPhone
Create an instance of RSat client
Get the features supported by the phone hardware and the TSY by calling GetMeSideSatProfile().
The features are returned to the SAT engine as a profile.
Now modify the features supported by the new SAT engine by setting up
the flags in the profile and send the features to the ICC by calling ClientSatProfileIndication().
Request some proactive command
notification messages. The phone polls the TSY for proactive commands. The
TSY notifies the SAT engine when a proactive command requested by the SAT
engine is received.
Some of proactive commands that you can request are:
- Use NotifyDisplayTextPCmd() to send a request to display
text to the user.
TSY completes the request when it receives a display text proactive
command from the ICC. The proactive command information is sent to the SAT
engine in a TDisplayTextV6 object and a terminal
response is sent to the ICC.
- Use NotifyGetInkeyPCmd() to get a single character input
from the user.
The TSY completes the request when it receives a get inkey proactive
command from the ICC. The proactive command information is sent to the SAT
engine in a TGetInkeyV6 object and a terminal
response is sent to the ICC.
- Use NotifyGetInputPCmd() to get a string as an input from
the user.
The TSY completes the request when it receives a get input proactive
command from the ICC. The proactive command information is sent to the SAT
engine in a TGetInputV6 object and a terminal
response is sent to the ICC.
- Use NotifyPlayTonePCmd to request the TSY to play a tone.
The TSY completes the request when it receives the play tone proactive
command from the ICC. The proactive command information is sent to the SAT
engine in a TPlayToneV6 and a terminal response
is sent to the ICC.
- Use NotifySetUpMenuPCmd() to request the TSY to set up
a menu item.
The TSY completes the request when it receives a proactive command from
the ICC. The common menu based commands are:
set up menu
set up a menu item
add a menu item
select a menu item
The TSY completes these commands when there are some outstanding requests
from a SAT engine.
- Use NotifySelectItemPCmd() to request the TSY to send
a selected menu item to the ICC.
When the TSY completes the request the selected menu item is sent to
the ICC in a terminal response. For more options in using the menu based proactive
commands, see RSat.
- Use NotifySendSmPCmd() to request the TSY to send an SMS.
The TSY sends an SMS as soon as it receives a send SM proactive command
from the ICC. The proactive command information is sent to the SAT engine
in a TSendSmV6 object and a terminal response
is sent to the ICC.
- Use NotifySendSsPCmd() to request for a supplementary
service (SS).
The TSY completes the request when it receives a send SS proactive command
from the ICC. The proactive command information is sent to the SAT engine
in a TSendSsV6 and a terminal response is
sent to the ICC.
- Use NotifySendussdPCmd() to request the TSY for an Unstructured
service data (USSD).
The TSY completes the request when it receives a send USSD proactive
command from the ICC. The proactive command information is sent in a TSendUssdV6 object and a terminal response is sent
to the ICC.
- Use NotifySetUpCallPCmd() to request the TSY to set up
a call.
The TSY completes the request when it receives a set up call proactive
command from the ICC. The proactive command information is sent to the SAT
engine in a TSetUpCallV6 object and a terminal
response is sent to the ICC.
- Use NotifyRefreshPCmd() to get the notification of any
changes in the ICC.
The TSY first completes an outstanding NotifyRefreshRequired() command.
The TSY checks if a refresh is allowed by calling NotifyRefreshAllowed().
The list of file identifiers are sent to the SAT engine using a TRefreshFileList and
the proactive command information is sent in a TRefreshV2 object.
A terminal response is sent to the ICC.
- Use NotifySetUpEventListPCmd() to request the TSY to notify
the ICC with the list of events occurring in the phone.
The TSY completes the request when it receives a setup event list proactive
command. The proactive command information is sent in a TSetUpEventListV1 object
and a terminal response is sent to the ICC.
- Use NotifySetUpIdleModePCmd() to request the TSY to display
a text or an icon when the phone is idle.
The TSY completes the request when it receives a setup idle mode text
proactive command from the ICC. The proactive command information is sent
to the SAT engine in a TSetUpIdleModeTextV6 object
and a terminal response is sent to the ICC.
- Use NotifySendDtmfPCmd() to request the TSY to send a
DTMF string.
The TSY completes the request when it receives a send DTMF proactive
command from the ICC. The proactive command information is sent to the SAT
engine in a TSendDtmfV6 object and a terminal
response is sent to the ICC.
- Use NotifySendApduPCmd() to request the TSY to perform
a card APDU.
The TSY completes the request when it receives a perform card APDU proactive
command from the ICC. The SAT engine must perform the a card APDU in the card
specified by the ICC. The APDU command and the destination ID of the specific
card is sent to the TSY in a TPerformCardApduV2 object
and a terminal response is sent to the ICC.
- Use NotifyPowerOffCardPCmd() to request the TSY to close
a specific session with a card.
The TSY completes the request when it receives a power off proactive
command from the ICC. The SAT engine must close the session with a card specified
by the ICC. The destination ID of the specific card is sent in a TPowerOffCardV2 object and a terminal response is
sent to the ICC.
- Use NotifyPowerOnCardPCmd() to request the TSY to open
a session with a new card.
The TSY completes the request when it receives a power on card proactive
command from the ICC. The SAT engine must open a session with the card specified
by the ICC. The destination ID of the specific card is sent in a TPowerOnCardV2 object and a terminal response is sent
to the ICC. If the card is already switched on then a reset is applied. It
is recommended to power the card only for the necessary duration for an efficient
use of the battery.
- Use NotifyGetReaderStatusPCmd() to request the TSY to
get the status of a card reader.
The TSY completes the request when it receives a get card reader proactive
command from the ICC. The SAT engine scans all the cards, if the requested
mode is card reader status it sends the status using a TGetCardReaderStatusV2.
If the requested mode is card reader identifier then the identifier of the
card is returned by the SAT engine. When the request is complete a terminal
response is sent to the ICC.
- Use NotifyRunAtCommandPCmd() to request the TSY to run
an AT command.
The TSY completes the request when it receives a run AT proactive command
from the ICC. The AT commands are specified in a TRunAtCommandV6 object.
SAT engine must pass the AT command to the phone. When completed the result
is returned in a terminal response.
- Use NotifyLanguageNotificationPCmd() to send the text
language issued by the ICC.
The TSY completes the request when it receives a language notification
proactive command from the ICC. The proactive command information is sent
in a TLanguageNotificationV2 object. The
SAT engine must use the language specified by the ICC. A terminal response
is then sent to the ICC.
- Use NotifyLaunchBrowserPCmd() to request to launch a browser
and open a specific URL.
The TSY completes the request when it receives a launch browser proactive
command from the ICC. The proactive command information is sent in a TLaunchBrowserV6 object. The SAT engine must execute
the command and try to connect to the specified URL. The SAT engine get the
confirmation from the user about the session. The user selects to use the
existing session or to terminate the browser. A terminal response is then
sent to the ICC.
- Use NotifyOpenChannelPCmd() to request the TSY to open
a specific channel.
The TSY completes the request when it receives an open channel proactive
command from the ICC. The proactive command information is sent in a TOpenChannelBaseV2 object. The SAT engine can request
the TSY to open a specific type of channel such as GPRS. The SAT engine must
notify the user about the new channel with an alpha identifier or an icon.
A terminal response is sent to the ICC.
Use TOpenCsChannelV6 for packet switching
network, TOpenGprsChannelV6 for GPRS, and TOpenLocalLinksChannelV6 for Bluetooth or IRDA connections.
- Use NotifyCloseChannelPCmd() to request the TSY to close
a specific channel.
The TSY completes the request when it receives a close channel proactive
command from the ICC. The proactive command information is sent in a TCloseChannelV6 object. The SAT engine must terminate
the channel and notify the user. A terminal response is then sent to the ICC.
- Use NotifyReceiveDataPCmd() to request the TSY to get
the data from a channel.
The TSY completes the request when it receives a receive data proactive
command from the ICC. The proactive command information is sent in a TReceivedataV6 object. The SAT engine must read the
data from the buffer and send it to the ICC. If sufficient amount of data
is not received, the ICC requests for more data from the SAT engine. The SAT
engine must notify the user about the data received with an alpha identifier
or an icon. A terminal response is then sent to the ICC.
- Use NotifySendDataPCmd() to request the TSY to send data
in an open channel.
The TSY completes the request when it receives a send data proactive
command from the ICC. The proactive command information is sent in a TSendDataV6 object. The SAT engine must read the data
from the ICC and store it in the transmission (Tx) buffer or send the data
immediately when ICC issues a Send Immediate in the send
data command. A terminal response is then sent to the ICC.
- Use NotifyGetChannelStatusPCmd() to request the TSY to
get the status of an open channel.
The TSY completes the request when it receives a get channel status
proactive command from the ICC. The proactive command information is sent
in a TGetChannelStatusV2 object and a terminal
response is then sent to the ICC.
- Use NotifyServiceSearchPCmd() to request the TSY to search
for a service.
The TSY completes the request when it receives a search service proactive
command from the ICC. The proactive commands information is sent in a TSearchServiceV6 object and a terminal response is
sent to the ICC.
- Use NotifyGetServiceInfoPCmd() to request the TSY to get
information about a service.
The TSY completes the request when it receives a get service info proactive
command from the ICC. The proactive command information is sent in a TGetServiceInfoV6 object and a terminal response is
sent to the ICC.
- Use NotifyDeclareServicePCmd() to request the TSY to declare
a service.
The TSY completes the request when it receives a declare service proactive
command from the ICC. The proactive command information is sent in a TDeclareServiceV2 object and a terminal response is
sent to the ICC.
- Use NotifyTimerMgmtPCmd() to request the TSY to start,
stop or get the values of timers.
The TSY completes the request when it receives a timer management proactive
command from the ICC. The proactive command information is sent in a TTimerMgmtV3 object and a terminal response is sent
to the ICC.
- Use NotifyLocalInfoPCmd() to request the TSY to send the
local information to the ICC.
The TSY completes the request when it receives a provide local information
proactive command from the ICC. The proactive command information is sent
in a TLocalInfoV6 object and a terminal response
is sent to the ICC.
- Use NotifyPollingIntervalPCmd() to instruct the phone
about the polling frequency required by the ICC.
The TSY completes the request when it receives a polling interval proactive
command from the ICC. The proactive command information is sent in a TPollingIntervalV3 object and a terminal response
is sent to the ICC.
- Use NotifyPollingOffPCmd to instruct the phone to stop
polling the ICC.
The TSY completes the request when it receives a polling off proactive
command from the ICC. The proactive command information is sent in a TPollingOffV3 object and a terminal response is sent
to the ICC.
A feedback to each proactive command is sent to the TSY using a terminal
response. The TSY analyses the result and the additional information present
in the response and then sends a terminal response to the ICC.
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.