Android-cuttlefish cvd tool
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
cuttlefish::SupService Class Reference

#include <sup_service.h>

Inheritance diagram for cuttlefish::SupService:
Inheritance graph
[legend]
Collaboration diagram for cuttlefish::SupService:
Collaboration graph
[legend]

Classes

struct  CallForwardInfo
 
struct  CallWaitingInfo
 
struct  ClirStatusInfo
 

Public Member Functions

 SupService (int32_t service_id, ChannelMonitor *channel_monitor, ThreadLooper *thread_looper)
 
 ~SupService ()=default
 
 SupService (const SupService &)=delete
 
SupServiceoperator= (const SupService &)=delete
 
void HandleUSSD (const Client &client, std::string &command)
 
void HandleCLIR (const Client &client, std::string &command)
 
void HandleCallWaiting (const Client &client, std::string &command)
 
void HandleCLIP (const Client &client)
 
void HandleCallForward (const Client &client, std::string &command)
 
void HandleSuppServiceNotifications (const Client &client, std::string &command)
 
- Public Member Functions inherited from cuttlefish::ModemService
virtual ~ModemService ()=default
 
 ModemService (const ModemService &)=delete
 
ModemServiceoperator= (const ModemService &)=delete
 
bool HandleModemCommand (const Client &client, std::string command)
 
void CloseRemoteConnection (ClientId remote_client)
 

Private Member Functions

std::vector< CommandHandlerInitializeCommandHandlers ()
 
void InitializeServiceState ()
 

Private Attributes

ClirStatusInfo clir_status_
 
std::vector< CallForwardInfocall_forward_infos_
 
CallWaitingInfo call_waiting_info_
 

Additional Inherited Members

- Static Public Attributes inherited from cuttlefish::ModemService
static constexpr char kCmeErrorOperationNotAllowed [] = "+CME ERROR: 3"
 
static constexpr char kCmeErrorOperationNotSupported [] = "+CME ERROR: 4"
 
static constexpr char kCmeErrorSimNotInserted [] = "+CME ERROR: 10"
 
static constexpr char kCmeErrorSimPinRequired [] = "+CME ERROR: 11"
 
static constexpr char kCmeErrorSimPukRequired [] = "+CME ERROR: 12"
 
static constexpr char kCmeErrorSimBusy [] = "+CME ERROR: 14"
 
static constexpr char kCmeErrorIncorrectPassword [] = "+CME ERROR: 16"
 
static constexpr char kCmeErrorMemoryFull [] = "+CME ERROR: 20"
 
static constexpr char kCmeErrorInvalidIndex [] = "+CME ERROR: 21"
 
static constexpr char kCmeErrorNotFound [] = "+CME ERROR: 22"
 
static constexpr char kCmeErrorInvalidCharactersInTextString []
 
static constexpr char kCmeErrorNoNetworkService [] = "+CME ERROR: 30"
 
static constexpr char kCmeErrorNetworkNotAllowedEmergencyCallsOnly []
 
static constexpr char kCmeErrorInCorrectParameters [] = "+CME ERROR: 50"
 
static constexpr char kCmeErrorNetworkNotAttachedDueToMTFunctionalRestrictions []
 
static constexpr char kCmeErrorFixedDialNumberOnlyAllowed []
 
static constexpr char kCmsErrorOperationNotAllowed [] = "+CMS ERROR: 302"
 
static constexpr char kCmsErrorOperationNotSupported [] = "+CMS ERROR: 303"
 
static constexpr char kCmsErrorInvalidPDUModeParam [] = "+CMS ERROR: 304"
 
static constexpr char kCmsErrorSCAddressUnknown [] = "+CMS ERROR: 304"
 
static constexpr std::pair< int, int > kRemotePortRange {6520, 6527}
 
- Protected Member Functions inherited from cuttlefish::ModemService
 ModemService (int32_t service_id, std::vector< CommandHandler > command_handlers, ChannelMonitor *channel_monitor, ThreadLooper *thread_looper)
 
void HandleCommandDefaultSupported (const Client &client)
 
void SendUnsolicitedCommand (std::string unsol_command)
 
cuttlefish::SharedFD ConnectToRemoteCvd (std::string port)
 
void SendCommandToRemote (ClientId remote_client, std::string response)
 
- Static Protected Member Functions inherited from cuttlefish::ModemService
static std::string GetHostId ()
 
- Protected Attributes inherited from cuttlefish::ModemService
int32_t service_id_
 
const std::vector< CommandHandlercommand_handlers_
 
ThreadLooperthread_looper_
 
ChannelMonitorchannel_monitor_
 

Constructor & Destructor Documentation

◆ SupService() [1/2]

cuttlefish::SupService::SupService ( int32_t  service_id,
ChannelMonitor channel_monitor,
ThreadLooper thread_looper 
)

◆ ~SupService()

cuttlefish::SupService::~SupService ( )
default

◆ SupService() [2/2]

cuttlefish::SupService::SupService ( const SupService )
delete

Member Function Documentation

◆ HandleCallForward()

void cuttlefish::SupService::HandleCallForward ( const Client client,
std::string &  command 
)

AT+CCFCU The command allows control of the communication forwarding supplementary service according to 3GPP TS 22.072 [31], 3GPP TS 22.082 [4] and 3GPP TS 24.604 [132].

Command Possible response(s) +CCFCU=<reason>,<mode> +CME ERROR: <err> [,<numbertype>,<ton>,<number> when <mode>=2 and command successful: [,<class>,<ruleset> +CCFCU: <status>,<class1>[,<numbertype>, [,<subaddr>[,<satype>[,<time>]]]]] <ton>,<number>[,<subaddr>,<satype>[,<time>]]] [,<class>,<ruleset>

see SupService::CallForwardInfo

see RIL_REQUEST_SET_CALL_FORWARD or RIL_REQUEST_QUERY_CALL_FORWARD_STATUS in RIL

◆ HandleCallWaiting()

void cuttlefish::SupService::HandleCallWaiting ( const Client client,
std::string &  command 
)

AT+CCWA This command allows control of the supplementary service Call Waiting according to 3GPP TS 22.083 [5] and Communication Waiting according to 3GPP TS 24.607 [137]. Activation, deactivation and status query are supported.

Command Possible response(s) +CCWA=[<n>[,<mode>[,<class>]]] +CME ERROR: <err> when <mode>=2 and command successful +CCWA: <status>,<class1> [<CR><LF>+CCWA: <status>,<class2> <n>: integer type (sets/shows the result code presentation status to the TE). 0 disable 1 enable <mode>: integer type (when <mode> parameter is not given, network is not interrogated). 0 disable 1 enable 2 query status <classx>: a sum of integers each representing a class of information (default 7 - voice, data and fax). <status>: integer type 0 not active 1 active

see RIL_REQUEST_QUERY_CALL_WAITING and RIL_REQUEST_SET_CALL_WAITING in RIL

◆ HandleCLIP()

void cuttlefish::SupService::HandleCLIP ( const Client client)

AT+CLIP This command refers to the supplementary service CLIP (Calling Line Identification Presentation) according to 3GPP TS 22.081 [3] and OIP (Originating Identification Presentation) according to 3GPP TS 24.607 [119] that enables a called subscriber to get the calling line identity (CLI) of the calling party when receiving a mobile terminated call.

Command Possible response(s) +CLIP? +CLIP: <n>,<m>

<n>: integer type (parameter sets/shows the result code presentation status to the TE). 0 disable 1 enable <m>: integer type (parameter shows the subscriber CLIR / OIR service status in the network). 0 CLIP / OIP not provisioned 1 CLIP / OIP provisioned 2 unknown (e.g. no network, etc.)

see RIL_REQUEST_QUERY_CLIP in RIL

◆ HandleCLIR()

void cuttlefish::SupService::HandleCLIR ( const Client client,
std::string &  command 
)

AT+CLIR This command refers to CLIR‑service according to 3GPP TS 22.081 that allows a calling subscriber to enable or disable the presentation of the CLI to the called party when originating a call.

Command Possible response(s) +CLIR: <n> +CLIR? +CLIR: <n>,<m>

<n>: integer type (parameter sets the adjustment for outgoing calls). 0 presentation indicator is used according to the subscription of the CLIR service 1 CLIR invocation 2 CLIR suppression <m>: integer type (parameter shows the subscriber CLIR / OIR service status in the network). 0 CLIR / OIR not provisioned 1 CLIR / OIR provisioned in permanent mode 2 unknown (e.g. no network, etc.) 3 CLIR / OIR temporary mode presentation restricted 4 CLIR / OIR temporary mode presentation allowed

see RIL_REQUEST_SET_CLIR or RIL_REQUEST_GET_CLIR in RIL

◆ HandleSuppServiceNotifications()

void cuttlefish::SupService::HandleSuppServiceNotifications ( const Client client,
std::string &  command 
)

AT+CSSN This command refers to supplementary service related network initiated notifications. The set command enables/disables the presentation of notification result codes from TA to TE.

Command Possible response(s) +CSSN: [<n>[,<m>]]

<n>: integer type (parameter sets/shows the +CSSI intermediate result code presentation status to the TE) 0 disable 1 enable <m>: integer type (parameter sets/shows the +CSSU unsolicited result code presentation status to the TE) 0 disable 1 enable

see RIL_REQUEST_SET_SUPP_SVC_NOTIFICATION in RIL

◆ HandleUSSD()

void cuttlefish::SupService::HandleUSSD ( const Client client,
std::string &  command 
)

AT+CUSD This command allows control of the Unstructured Supplementary Service Data (USSD) according to 3GPP TS 22.090 [23], 3GPP TS 24.090 [148] and 3GPP TS 24.390 [131]. Both network and mobile initiated operations are supported.

Command Possible response(s) +CUSD=[<n>[,<str>[,<dcs>]]] +CME ERROR: <err> +CUSD? +CUSD: <n>

<n>: integer type (sets/shows the result code presentation status to the TE). 0 disable the result code presentation to the TE 1 enable the result code presentation to the TE 2 cancel session (not applicable to read command response) <str>: string type USSD string when <str> parameter is not given, network is not interrogated <dcs>: integer type (shows Cell Broadcast Data Coding Scheme, see 3GPP TS 23.038 [25]). Default value is 0.

see RIL_REQUEST_SEND_USSD or RIL_REQUEST_CANCEL_USSD in RIL

◆ InitializeCommandHandlers()

std::vector< CommandHandler > cuttlefish::SupService::InitializeCommandHandlers ( )
private

◆ InitializeServiceState()

void cuttlefish::SupService::InitializeServiceState ( )
private

◆ operator=()

SupService & cuttlefish::SupService::operator= ( const SupService )
delete

Member Data Documentation

◆ call_forward_infos_

std::vector<CallForwardInfo> cuttlefish::SupService::call_forward_infos_
private

◆ call_waiting_info_

CallWaitingInfo cuttlefish::SupService::call_waiting_info_
private

◆ clir_status_

ClirStatusInfo cuttlefish::SupService::clir_status_
private

The documentation for this class was generated from the following files: