* [Patch]: Reducing clutter in the src directory + Introduction of HACKING file
@ 2010-05-27 22:31 Naresh Mehta
2010-05-28 2:46 ` Marcel Holtmann
2010-05-28 6:57 ` Kalle Valo
0 siblings, 2 replies; 6+ messages in thread
From: Naresh Mehta @ 2010-05-27 22:31 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 718 bytes --]
Hi All,
I have re-organized the directory structure inside phonesim for easy
management of respective files. Everything was in src directory and as
the simulator will grow in functionality, it will become all the more
cluttered and not so pretty to handle. I have updated the Makefile.am
to reflect the changes and have also tested most of the phonesim
functionality.
I have also added a HACKING file for people to quickly understand and
grasp the concept and execution of phonesim.
Sorry for the size of the patch. It basically increased because of the
moving around of files. Hope it is not much of a problem. Please
review and feedback.
--
BR; Naresh
visit me at:
http://www.naresh.se/
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Reduced-clutter-in-the-src-directory-by-moving-.h-fi.patch --]
[-- Type: text/x-patch, Size: 1106053 bytes --]
From 8c4d239f144e70f4315adb1dc57cac69e2b95c48 Mon Sep 17 00:00:00 2001
From: Naresh Mehta <nareshtechs@gmail.com>
Date: Fri, 28 May 2010 02:17:11 +0200
Subject: [PATCH] Reduced clutter in the src directory by moving .h files to include
and xml files to xml directory. Also included a HACKING file for
quick intro and clarifications. Updated & tested the Makefile.am
to work with the changes.
---
HACKING | 102 +
Makefile.am | 60 +-
include/attranslator.h | 41 +
include/callmanager.h | 155 ++
include/control.h | 57 +
include/gsmitem.h | 46 +
include/gsmspec.h | 86 +
include/hardwaremanipulator.h | 101 +
include/phonesim.h | 376 ++++
include/qatresult.h | 172 ++
include/qatresultparser.h | 86 +
include/qatutils.h | 55 +
include/qcbsmessage.h | 100 +
include/qgsmcodec.h | 49 +
include/qsimcommand.h | 385 ++++
include/qsimcontrolevent.h | 70 +
include/qsimenvelope.h | 94 +
include/qsimterminalresponse.h | 163 ++
include/qsmsmessage.h | 170 ++
include/qsmsmessage_p.h | 185 ++
include/qsmsmessagelist.h | 61 +
include/qwsppdu.h | 230 ++
include/server.h | 52 +
include/simapplication.h | 98 +
include/simfilesystem.h | 126 ++
src/GSMSpecification.xml | 4685 ----------------------------------------
src/attranslator.h | 41 -
src/callmanager.h | 155 --
src/control.h | 57 -
src/default.xml | 3387 -----------------------------
src/gsmitem.h | 46 -
src/gsmspec.h | 86 -
src/hardwaremanipulator.h | 101 -
src/phonesim.h | 376 ----
src/qatresult.h | 172 --
src/qatresultparser.h | 86 -
src/qatutils.h | 55 -
src/qcbsmessage.h | 100 -
src/qgsmcodec.h | 49 -
src/qsimcommand.h | 385 ----
src/qsimcontrolevent.h | 70 -
src/qsimenvelope.h | 94 -
src/qsimterminalresponse.h | 163 --
src/qsmsmessage.h | 170 --
src/qsmsmessage_p.h | 185 --
src/qsmsmessagelist.h | 61 -
src/qwsppdu.h | 230 --
src/server.h | 52 -
src/simapplication.h | 98 -
src/simfilesystem.h | 126 --
xml/GSMSpecification.xml | 4685 ++++++++++++++++++++++++++++++++++++++++
xml/default.xml | 3387 +++++++++++++++++++++++++++++
52 files changed, 11161 insertions(+), 11061 deletions(-)
create mode 100644 HACKING
create mode 100644 include/attranslator.h
create mode 100644 include/callmanager.h
create mode 100644 include/control.h
create mode 100644 include/gsmitem.h
create mode 100644 include/gsmspec.h
create mode 100644 include/hardwaremanipulator.h
create mode 100644 include/phonesim.h
create mode 100644 include/qatresult.h
create mode 100644 include/qatresultparser.h
create mode 100644 include/qatutils.h
create mode 100644 include/qcbsmessage.h
create mode 100644 include/qgsmcodec.h
create mode 100644 include/qsimcommand.h
create mode 100644 include/qsimcontrolevent.h
create mode 100644 include/qsimenvelope.h
create mode 100644 include/qsimterminalresponse.h
create mode 100644 include/qsmsmessage.h
create mode 100644 include/qsmsmessage_p.h
create mode 100644 include/qsmsmessagelist.h
create mode 100644 include/qwsppdu.h
create mode 100644 include/server.h
create mode 100644 include/simapplication.h
create mode 100644 include/simfilesystem.h
delete mode 100644 src/GSMSpecification.xml
delete mode 100644 src/attranslator.h
delete mode 100644 src/callmanager.h
delete mode 100644 src/control.h
delete mode 100644 src/default.xml
delete mode 100644 src/gsmitem.h
delete mode 100644 src/gsmspec.h
delete mode 100644 src/hardwaremanipulator.h
delete mode 100644 src/phonesim.h
delete mode 100644 src/qatresult.h
delete mode 100644 src/qatresultparser.h
delete mode 100644 src/qatutils.h
delete mode 100644 src/qcbsmessage.h
delete mode 100644 src/qgsmcodec.h
delete mode 100644 src/qsimcommand.h
delete mode 100644 src/qsimcontrolevent.h
delete mode 100644 src/qsimenvelope.h
delete mode 100644 src/qsimterminalresponse.h
delete mode 100644 src/qsmsmessage.h
delete mode 100644 src/qsmsmessage_p.h
delete mode 100644 src/qsmsmessagelist.h
delete mode 100644 src/qwsppdu.h
delete mode 100644 src/server.h
delete mode 100644 src/simapplication.h
delete mode 100644 src/simfilesystem.h
create mode 100644 xml/GSMSpecification.xml
create mode 100644 xml/default.xml
diff --git a/HACKING b/HACKING
new file mode 100644
index 0000000..310d5fb
--- /dev/null
+++ b/HACKING
@@ -0,0 +1,102 @@
+Hacking on phonesim
+*******************
+
+phonesim is a soft modem that eliminates the need to have an actual AT
+modem connected to the system for testing and developing Ofono.
+
+Build tools requirements
+========================
+
+When building and testing directly from the repository it is important to
+have at least automake version 1.10 or later installed. All modern
+distributions should default to the latest version, but it seems that
+Debian's default is still an earlier version:
+
+ Check version
+ # dpkg -l '*automake*'
+
+ Install new version
+ # apt-get install automake1.10
+ # update-alternatives --config automake
+
+QT development libraries (libqt4-dev) are also required for building
+phonesim. It is recommended to install the QT 4 development tools package
+(qt4-dev-tools) as an alternative if available with your distribution.
+
+Working with the source code repository
+=======================================
+
+The repository contains two extra scripts that accomplish the bootstrap
+process. One is called "bootstrap" which is the basic scripts that uses the
+autotools scripts to create the needed files for building and installing.
+It makes sure to call the right programs depending on the usage of shared or
+static libraries or translations etc.
+
+The second program is called "bootstrap-configure". This program will make
+sure to properly clean the repository, call the "bootstrap" script and then
+call configure with proper settings for development. It will use the best
+options and pass them over to configure. These options normally include
+the enabling the maintainer mode and the debugging features.
+
+So while in a normal source project the call "./configure ..." is used to
+configure the project with its settings like prefix and extra options. In
+case of bare repositories call "./bootstrap-configure" and it will bootstrap
+the repository and calls configure with all the correct options to make
+development easier.
+
+In case of preparing for a release with "make distcheck", don't use
+bootstrap-configure since it could export development specific settings.
+
+So the normal steps to checkout, build and install such a repository is
+like this:
+
+ Checkout repository
+ # git clone git://git.kernel.org/pub/scm/network/ofono/phonesim.git
+ # cd phonesim
+
+ Configure and build
+ # ./bootstrap-configure
+ # make
+
+ Check installation
+ # make install DESTDIR=$PWD/x
+ # find x
+ # rm -rf x
+
+ Check distribution
+ # make distcheck
+
+ Final installation
+ # sudo make install
+
+ Remove autogenerated files
+ # make maintainer-clean
+
+
+Running from within the source code repository
+==============================================
+
+When using "./configure --enable-maintainer-mode" the automake scripts will
+use the plugins directly from within the repository. This removes the need
+to use "make install" when testing "phonesim". The "bootstrap-configure"
+automatically includes this option.
+
+ Run phonesim in foreground using the following options
+ # ./src/phonesim -p 12345 -gui xml/default.xml
+
+Check your modem.conf file and enable the phonesim configuration before
+executing the above command. Argument -p should be followed by the proper
+port number, in case you have changed the default "12345". Argument -gui
+will launch the gui once the modem is enabled.
+
+To enable the modem, make sure the ofono daemon is running and execute the
+enable-modem script with /phonesim argument (default defined in modem.conf,
+change if changes to that section has been made). The AT chat can then
+be seen in the GUI window. Running the script disable-modem with /phonesim
+argument will turn off the soft modem.
+
+The default.xml can be tweaked further to include additional AT-Commands and
+supposed responses from the soft modem.
+
+For production installations or distribution packaging it is important that
+the "--enable-maintainer-mode" option is NOT used.
diff --git a/Makefile.am b/Makefile.am
index 34198a5..e4ddef8 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -3,33 +3,31 @@ AM_MAKEFLAGS = --no-print-directory
bin_PROGRAMS = src/phonesim
-src_phonesim_SOURCES = src/main.cpp \
- src/control.h src/control.cpp \
- src/attranslator.h src/attranslator.cpp \
- src/gsmspec.h src/gsmspec.cpp \
- src/gsmitem.h src/gsmitem.cpp \
- src/phonesim.h src/phonesim.cpp \
- src/server.h src/server.cpp \
- src/hardwaremanipulator.h src/hardwaremanipulator.cpp \
- src/qsmsmessagelist.h src/qsmsmessagelist.cpp \
- src/qsmsmessage_p.h \
- src/qsmsmessage.h src/qsmsmessage.cpp \
- src/qcbsmessage.h src/qcbsmessage.cpp \
- src/callmanager.h src/callmanager.cpp \
- src/simfilesystem.h src/simfilesystem.cpp \
- src/simapplication.h src/simapplication.cpp \
- src/qgsmcodec.h src/qgsmcodec.cpp \
- src/qatutils.h src/qatutils.cpp \
- src/qatresultparser.h src/qatresultparser.cpp \
- src/qatresult.h src/qatresult.cpp \
- src/qwsppdu.h src/qwsppdu.cpp \
- src/qsimcommand.h src/qsimcommand.cpp \
- src/qsimenvelope.h src/qsimenvelope.cpp \
- src/qsimterminalresponse.h src/qsimterminalresponse.cpp \
- src/qsimcontrolevent.h src/qsimcontrolevent.cpp
-
-nodist_src_phonesim_SOURCES = src/ui_controlbase.h \
- src/moc_control.cpp \
+include_HEADERS = include/control.h include/attranslator.h \
+ include/gsmspec.h include/gsmitem.h \
+ include/phonesim.h include/server.h \
+ include/hardwaremanipulator.h include/qsmsmessagelist.h \
+ include/qsmsmessage_p.h include/qsmsmessage.h \
+ include/qcbsmessage.h include/callmanager.h \
+ include/simfilesystem.h include/simapplication.h \
+ include/qgsmcodec.h include/qatutils.h \
+ include/qatresultparser.h include/qatresult.h \
+ include/qwsppdu.h include/qsimcommand.h \
+ include/qsimenvelope.h include/qsimterminalresponse.h include/qsimcontrolevent.h
+
+src_phonesim_SOURCES = src/main.cpp src/control.cpp \
+ src/attranslator.cpp src/gsmspec.cpp \
+ src/gsmitem.cpp src/phonesim.cpp \
+ src/server.cpp src/hardwaremanipulator.cpp \
+ src/qsmsmessagelist.cpp src/qsmsmessage.cpp \
+ src/qcbsmessage.cpp src/callmanager.cpp \
+ src/simfilesystem.cpp src/simapplication.cpp \
+ src/qgsmcodec.cpp src/qatutils.cpp \
+ src/qatresultparser.cpp src/qatresult.cpp \
+ src/qwsppdu.cpp src/qsimcommand.cpp \
+ src/qsimenvelope.cpp src/qsimterminalresponse.cpp src/qsimcontrolevent.cpp
+
+nodist_src_phonesim_SOURCES = src/ui_controlbase.h src/moc_control.cpp \
src/moc_phonesim.cpp \
src/moc_hardwaremanipulator.cpp \
src/moc_callmanager.cpp \
@@ -41,13 +39,13 @@ src_phonesim_LDADD = $(QT_LIBS)
AM_CXXFLAGS = -Wall $(QT_CFLAGS)
-INCLUDES = -I$(top_srcdir)/src -I$(top_builddir)/src
+INCLUDES = -I$(top_srcdir)/src -I$(top_builddir)/src -I$(top_builddir)/include -I$(top_srcdir)/include
CLEANFILES = src/control.moc $(nodist_src_phonesim_SOURCES)
-dist_pkgdata_DATA = src/default.xml
+dist_pkgdata_DATA = xml/default.xml
-EXTRA_DIST = src/controlbase.ui src/GSMSpecification.xml
+EXTRA_DIST = src/controlbase.ui xml/GSMSpecification.xml
MAINTAINERCLEANFILES = Makefile.in \
aclocal.m4 configure depcomp missing install-sh
@@ -62,7 +60,7 @@ QT_V_MOC_0 = @echo " MOC " $@;
src/control.moc: src/control.cpp
$(QT_V_MOC)$(MOC) $(QT_CFLAGS) $(INCLUDES) $< -o $@
-src/moc_%.cpp: src/%.h
+src/moc_%.cpp: include/%.h
$(QT_V_MOC)$(MOC) $< -o $@
QT_V_UIC = $(QT_V_UIC_$(V))
diff --git a/include/attranslator.h b/include/attranslator.h
new file mode 100644
index 0000000..3d5a2ea
--- /dev/null
+++ b/include/attranslator.h
@@ -0,0 +1,41 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+
+#ifndef ATTRANSLATOR_H
+#define ATTRANSLATOR_H
+
+#include <QString>
+#include <QMap>
+#include <QStringList>
+#include "gsmspec.h"
+
+class AtTranslator
+{
+
+public:
+ AtTranslator(const QString& specFile);
+ QString translateCommand( const QString& );
+ QString translateResponse( const QString& );
+ void resetSpecification(const QString& );
+
+private:
+ GSMSpec gsmSpec;
+};
+
+#endif
diff --git a/include/callmanager.h b/include/callmanager.h
new file mode 100644
index 0000000..875687e
--- /dev/null
+++ b/include/callmanager.h
@@ -0,0 +1,155 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+
+#ifndef CALLMANAGER_H
+#define CALLMANAGER_H
+
+#include "phonesim.h"
+
+enum CallState
+{
+ CallState_Active = 0,
+ CallState_Held = 1,
+ CallState_Dialing = 2,
+ CallState_Alerting = 3,
+ CallState_Incoming = 4,
+ CallState_Waiting = 5,
+ CallState_Hangup = 6, // Call about to go away.
+ CallState_SwapDummy = 7 // Used internally in phonesim only.
+};
+
+struct CallInfo
+{
+ int id;
+ CallState state;
+ QString number;
+ bool incoming;
+ bool dialBack;
+};
+
+class QSimControlEvent;
+
+class CallManager : public QObject
+{
+ Q_OBJECT
+public:
+ CallManager( QObject *parent = 0 );
+ ~CallManager();
+
+ // Process an AT command. Returns false if not a call-related command.
+ bool command( const QString& cmd );
+
+ // Get the active call list.
+ QList<CallInfo> calls() const { return callList; }
+
+ // Hangup calls.
+ void hangupAll();
+ void hangupConnected();
+ void hangupHeld();
+ void hangupConnectedAndHeld();
+ void hangupCall( int id );
+
+ // Accept the incoming call.
+ bool acceptCall();
+
+ // Primitive GSM 22.030 call operations with AT+CHLD.
+ bool chld0();
+ bool chld1();
+ bool chld1x( int x );
+ bool chld2();
+ bool chld2x( int x );
+ bool chld3();
+ bool chld4();
+
+ // Adjust whether various commands will fail even if they would normally succeed.
+ bool holdWillFail() const { return _holdWillFail; }
+ void setHoldWillFail( bool value ) { _holdWillFail = value; }
+ bool activateWillFail() const { return _activateWillFail; }
+ void setActivateWillFail( bool value ) { _activateWillFail = value; }
+ bool joinWillFail() const { return _joinWillFail; }
+ void setJoinWillFail( bool value ) { _joinWillFail = value; }
+ bool deflectWillFail() const { return _deflectWillFail; }
+ void setDeflectWillFail( bool value ) { _deflectWillFail = value; }
+
+ // Get or set the maximum number of participants in a multiparty (-1 means unlimited).
+ int multipartyLimit() const { return _multipartyLimit; }
+ void setMultipartyLimit( int value ) { _multipartyLimit = value; }
+
+public slots:
+ // Start an incoming call simulation.
+ void startIncomingCall( const QString& number, bool dialBack );
+ void startIncomingCall( const QString& number );
+
+signals:
+ // Send a response to a command.
+ void send( const QString& line );
+
+ // Send an unsolicited notification related to calls.
+ void unsolicited( const QString& line );
+
+ // Verify a phone number to see if dialing is allowed.
+ // Set "ok" to false if the number should be disallowed.
+ void dialCheck( const QString& number, bool& ok );
+
+ // Send a call control event.
+ void controlEvent( const QSimControlEvent& event );
+
+private slots:
+ // Transition the active dialing or alerting call to connected.
+ void dialingToConnected();
+
+ // Transition the active dialing call to alerting.
+ void dialingToAlerting();
+
+ // Handle dial-backs.
+ void dialBack();
+ void dialBackWithHangup5();
+ void dialBackWithHangup4();
+
+ // Hangup after a dial-back timeout.
+ void hangupTimeout();
+
+ // Send the next RING indication for incoming calls.
+ void sendNextRing();
+
+private:
+ QList<CallInfo> callList;
+ QTimer *connectTimer;
+ QTimer *alertingTimer;
+ QTimer *hangupTimer;
+ QTimer *ringTimer;
+ bool _holdWillFail;
+ bool _activateWillFail;
+ bool _joinWillFail;
+ bool _deflectWillFail;
+ int _multipartyLimit;
+ int numRings;
+
+ int newId();
+ int idForDialing();
+ int idForIncoming();
+ int idForState( CallState state );
+ int countForState( CallState state );
+ int indexForId( int id );
+ bool hasCall( CallState state );
+ void changeGroup( CallState oldState, CallState newState );
+ void sendState( const CallInfo& info );
+};
+
+#endif
diff --git a/include/control.h b/include/control.h
new file mode 100644
index 0000000..32db57e
--- /dev/null
+++ b/include/control.h
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+
+#ifndef CONTROL_H
+#define CONTROL_H
+
+#include <hardwaremanipulator.h>
+
+class ControlWidget;
+
+class Control: public HardwareManipulator
+{
+Q_OBJECT
+
+public:
+ Control(const QString& ruleFile, SimRules *sr, QObject *parent=0);
+ virtual ~Control();
+
+public slots:
+ void handleFromData( const QString& );
+ void handleToData( const QString& );
+ void setPhoneNumber( const QString& );
+ void handleNewApp();
+
+protected:
+ virtual void warning( const QString&, const QString& );
+
+private:
+ ControlWidget *widget;
+ friend class ControlWidget;
+};
+
+class ControlFactory : public HardwareManipulatorFactory
+{
+public:
+ inline virtual HardwareManipulator *create(SimRules *sr, QObject *parent)
+ { return new Control(ruleFile(), sr, parent); }
+};
+
+
+#endif
diff --git a/include/gsmitem.h b/include/gsmitem.h
new file mode 100644
index 0000000..baaccb3
--- /dev/null
+++ b/include/gsmitem.h
@@ -0,0 +1,46 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+
+#ifndef GSMITEM_H
+#define GSMITEM_H
+
+#include <QString>
+#include <QStringList>
+
+class GSMItem
+{
+
+public:
+ GSMItem(const QString&, const QString&, const QStringList&, const QStringList&, const QString&);
+ GSMItem();
+ QString getDescription();
+ QString getProfile();
+ QStringList getParameterFormat();
+ QStringList getResponseFormat();
+
+private:
+ QString command;
+ QString profile;
+ QStringList parameterFormat;
+ QStringList responses;
+ QString description;
+
+};
+
+#endif
diff --git a/include/gsmspec.h b/include/gsmspec.h
new file mode 100644
index 0000000..03a5aa2
--- /dev/null
+++ b/include/gsmspec.h
@@ -0,0 +1,86 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+
+#ifndef GSMSPEC_H
+#define GSMSPEC_H
+
+#include <QString>
+#include <QMap>
+#include <QStringList>
+#include "gsmitem.h"
+#include <QFile>
+#include <QXmlStreamReader>
+#include <QDir>
+
+class GsmXmlNode
+{
+public:
+ GsmXmlNode( const QString& tag );
+ ~GsmXmlNode();
+
+ GsmXmlNode *parent, *next, *children, *attributes;
+ QString tag;
+ QString contents;
+
+ void addChild( GsmXmlNode *child );
+ void addAttribute( GsmXmlNode *child );
+ QString getAttribute( const QString& name );
+};
+
+
+class GsmXmlHandler
+{
+public:
+ GsmXmlHandler();
+ ~GsmXmlHandler();
+
+ bool startElement( const QString& name, const QXmlStreamAttributes& atts );
+ bool endElement();
+ bool characters( const QString& ch );
+
+ GsmXmlNode *documentElement() const;
+
+private:
+ GsmXmlNode *tree;
+ GsmXmlNode *current;
+};
+
+class GSMSpec
+{
+
+public:
+ GSMSpec(const QString& specFile);
+ bool commandExists(const QString&);
+ QString getDescription(const QString&);
+ QString getProfile(const QString&);
+ QStringList getParameterFormat(const QString&);
+ QStringList getResponseFormat(const QString&);
+
+ bool validateCommand(QString format, QString pars);
+ bool validateResponse(QString format, QString pars);
+ void resetDictionary( const QString& );
+
+private:
+ QMap<QString, GSMItem> commandMap;
+ GSMItem getGSMItem( const QString& );
+ void setupDictionary( const QString& );
+ //GSMItem createGSMItem( QString command, QString profile, QStringList pars, QStringList resps );
+};
+
+#endif
diff --git a/include/hardwaremanipulator.h b/include/hardwaremanipulator.h
new file mode 100644
index 0000000..6571c06
--- /dev/null
+++ b/include/hardwaremanipulator.h
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+
+#ifndef HARDWAREMANIPULATOR_H
+#define HARDWAREMANIPULATOR_H
+
+#include <QObject>
+
+#include "qsmsmessagelist.h"
+
+class QSMSMessage;
+class QVMMessage;
+class SimRules;
+class HardwareManipulator : public QObject
+{
+Q_OBJECT
+
+public:
+ HardwareManipulator(SimRules *sr, QObject *parent=0);
+ QSMSMessageList & getSMSList();
+ bool getSimPresent();
+ QString getSimAppName();
+
+public slots:
+ virtual void handleFromData( const QString& );
+ virtual void handleToData( const QString& );
+ virtual void setPhoneNumber( const QString& );
+ virtual void constructSMSMessage(const int type, const QString &sender, const QString &serviceCenter, const QString &text);
+ virtual void sendSMS( const QSMSMessage& m );
+ virtual void sendVMNotify( int type, int count, const QList<QVMMessage> &received, const QList<QVMMessage> &deleted, const QString &mailbox );
+ virtual void sendUSSD( bool cancel, bool response, const QString &content );
+ virtual void setSimPresent( bool present );
+ virtual void simAppStart();
+ virtual void simAppAbort();
+ virtual void handleNewApp();
+
+signals:
+ void unsolicitedCommand(const QString &cmd);
+ void command(const QString &cmd);
+ void variableChanged(const QString &n, const QString &v);
+ void switchTo(const QString &cmd);
+ void startIncomingCall(const QString &number);
+
+protected:
+ virtual QString constructCBMessage(const QString &messageCode, int geographicalScope, const QString &updateNumber, const QString &channel,
+ const QString &scheme, int language, const QString &numPages, const QString &page, const QString &content);
+ virtual void constructSMSDatagram(int port, const QString &sender, const QByteArray &data, const QByteArray &contentType);
+
+ virtual void warning(const QString &title, const QString &message);
+
+ virtual int convertString(const QString &number, int maxValue, int numChar, int base, bool *ok);
+
+private:
+ QSMSMessageList SMSList;
+ SimRules *rules;
+ bool simPresent;
+};
+
+class HardwareManipulatorFactory
+{
+public:
+ virtual ~HardwareManipulatorFactory() {};
+ inline virtual HardwareManipulator *create(SimRules *sr, QObject *p)
+ { return new HardwareManipulator(sr, p); }
+
+ QString ruleFile() const { return ruleFilename; }
+ void setRuleFile(const QString& filename) { ruleFilename = filename; }
+
+private:
+ QString ruleFilename;
+};
+
+class QVMMessage {
+public:
+ QVMMessage(int _id, const QString &from, bool pr) : id(_id),
+ sender(from), priority(pr), lengthSecs(50), retentionDays(2) {}
+
+ int id;
+ QString sender;
+ bool priority;
+ int lengthSecs;
+ int retentionDays;
+};
+
+#endif
diff --git a/include/phonesim.h b/include/phonesim.h
new file mode 100644
index 0000000..cb7a5e1
--- /dev/null
+++ b/include/phonesim.h
@@ -0,0 +1,376 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+
+#ifndef PHONESIM_H
+#define PHONESIM_H
+
+#include <qstring.h>
+#include <qstringlist.h>
+#include <qlist.h>
+#include <qfile.h>
+#include <qfileinfo.h>
+#include <qxmlstream.h>
+#include <qtcpsocket.h>
+#include <qapplication.h>
+#include <qmap.h>
+#include <qtimer.h>
+#include <qpointer.h>
+#include <qsimcontrolevent.h>
+
+#include <string.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <signal.h>
+#include <sys/time.h>
+#include <sys/wait.h>
+#include <sys/select.h>
+#include <netdb.h>
+#include <arpa/inet.h>
+#include <netinet/in.h>
+
+class SimState;
+class SimItem;
+class SimChat;
+class SimUnsolicited;
+class SimRules;
+class SimFileSystem;
+class CallManager;
+class SimApplication;
+
+
+class SimXmlNode
+{
+public:
+ SimXmlNode( const QString& tag );
+ ~SimXmlNode();
+
+ SimXmlNode *parent, *next, *children, *attributes;
+ QString tag;
+ QString contents;
+
+ void addChild( SimXmlNode *child );
+ void addAttribute( SimXmlNode *child );
+ QString getAttribute( const QString& name );
+};
+
+
+class SimXmlHandler
+{
+public:
+ SimXmlHandler();
+ ~SimXmlHandler();
+
+ bool startElement( const QString& name, const QXmlStreamAttributes& atts );
+ bool endElement();
+ bool characters( const QString& ch );
+
+ SimXmlNode *documentElement() const;
+
+private:
+ SimXmlNode *tree;
+ SimXmlNode *current;
+};
+
+
+class SimState
+{
+ friend class SimRules;
+public:
+ SimState( SimRules *rules, SimXmlNode& e );
+ ~SimState() {}
+
+ // Get the rules object that contains this state.
+ SimRules *rules() const { return _rules; }
+
+ // Get the name of this state.
+ QString name() const { return _name; }
+
+ // Enter this state, and enable unsolicited events.
+ void enter();
+
+ // Leave this state, after disabling unsolicited events.
+ void leave();
+
+ // Handle a command. Returns false if the command was not understood.
+ bool command( const QString& cmd );
+
+private:
+ QPointer<SimRules> _rules;
+ QString _name;
+ QList<SimItem *> items;
+
+};
+
+
+class SimItem : public QObject
+{
+ Q_OBJECT
+public:
+ SimItem( SimState *state ) { _state = state; }
+ virtual ~SimItem() {}
+
+ // Get the state that contains this item.
+ SimState *state() { return _state; }
+
+ // Receive notification of the item's state being entered.
+ virtual void enter() {}
+
+ // Receive notification of the item's state being left.
+ virtual void leave() {}
+
+ // Attempt to handle a command. Returns false if not recognised.
+ virtual bool command( const QString& ) { return false; }
+
+private:
+ SimState *_state;
+
+};
+
+
+class SimChat : public SimItem
+{
+ Q_OBJECT
+public:
+ SimChat( SimState *state, SimXmlNode& e );
+ ~SimChat() {}
+
+ virtual bool command( const QString& cmd );
+
+private:
+ QString _command;
+ QString response;
+ int responseDelay;
+ QString switchTo;
+ bool wildcard;
+ bool eol;
+ QStringList variables;
+ QStringList values;
+ QString newCallVar;
+ QString forgetCallId;
+ bool listSMS;
+ bool deleteSMS;
+ bool readSMS;
+};
+
+
+class SimUnsolicited : public SimItem
+{
+ Q_OBJECT
+public:
+ SimUnsolicited( SimState *state, SimXmlNode& e );
+ ~SimUnsolicited() {}
+
+ virtual void enter();
+ virtual void leave();
+
+private:
+ QString response;
+ int responseDelay;
+ QString switchTo;
+ bool doOnce;
+ bool done;
+ QTimer *timer;
+
+private slots:
+ void timeout();
+
+};
+
+
+class SimPhoneBook : public QObject
+{
+ Q_OBJECT
+public:
+ SimPhoneBook( int size, QObject *parent );
+ ~SimPhoneBook();
+
+ int size() const { return numbers.size(); }
+ int used() const;
+
+ QString number( int index ) const;
+ QString name( int index ) const;
+ int hidden( int index ) const;
+ QString group( int index ) const;
+ QString adNumber( int index ) const;
+ QString secondText( int index ) const;
+ QString email( int index ) const;
+ QString sipUri( int index ) const;
+ QString telUri( int index ) const;
+
+ void setDetails( int index, const QString& number, const QString& name,
+ int hidden = -1, const QString& group = QString(),
+ const QString& adNumber = QString(),
+ const QString& secondText = QString(),
+ const QString& email = QString(),
+ const QString& sipUri = QString(),
+ const QString& telUri = QString() );
+
+ bool contains( const QString& number ) const { return numbers.contains( number ); }
+
+private:
+ QStringList numbers;
+ QStringList names;
+ QList<int> hiddens;
+ QStringList groups;
+ QStringList adNumbers;
+ QStringList secondTexts;
+ QStringList emails;
+ QStringList sipUris;
+ QStringList telUris;
+};
+
+class HardwareManipulatorFactory;
+class HardwareManipulator;
+class SimRules : public QTcpSocket
+{
+ Q_OBJECT
+public:
+ SimRules(int fd, QObject *parent, const QString& filename, HardwareManipulatorFactory *hmf );
+ ~SimRules() {}
+
+ // get the variable value for.
+ QString variable(const QString &name);
+
+ // Get the current simulator state.
+ SimState *current() const { return currentState; }
+
+ // Get the default simulator state.
+ SimState *defaultState() const { return defState; }
+
+ // Issue a response to the client.
+ void respond( const QString& resp, int delay, bool eol=true );
+
+ // Expand variable references in a string.
+ QString expand( const QString& s );
+
+ // force the next returned reply to be 'error'
+ void setReturnError( const QString &error, uint repeat = 0 );
+
+ // Allocate a new call identifier.
+ int newCall();
+
+ // Forget a call identifier.
+ void forgetCall( int id );
+
+ // Forget all call identifiers (global hangup).
+ void forgetAllCalls();
+
+ void setPhoneNumber(const QString &s);
+
+ // Gets the hardware manipulator
+ HardwareManipulator * getMachine() const;
+
+ // Get the call manager for this rule object.
+ CallManager *callManager() const { return _callManager; }
+
+ // Get or set the SIM toolkit application.
+ SimApplication *simApplication() const { return toolkitApp; }
+ void setSimApplication( SimApplication *app );
+
+signals:
+ void returnQueryVariable( const QString&, const QString & );
+ void returnQueryState( const QString& );
+ void modemCommand( const QString& );
+ void modemResponse( const QString& );
+
+public slots:
+ void queryVariable( const QString &name );
+ void queryState( );
+ // Set a variable to a new value.
+ void setVariable( const QString& name, const QString& value );
+
+ // Switch to a new simulator state.
+ void switchTo(const QString& name);
+
+ // Process a command.
+ void command( const QString& cmd );
+
+ // Send an unsolicited response to the client.
+ void unsolicited( const QString& resp );
+
+ // Send a response line.
+ void respond( const QString& resp ) { respond( resp, 0 ); }
+
+ void proactiveCommandNotify( const QByteArray& cmd );
+ void callControlEventNotify( const QSimControlEvent& event );
+
+private slots:
+ void tryReadCommand();
+ void destruct();
+ void delayTimeout();
+ void dialCheck( const QString& number, bool& ok );
+
+private:
+ SimState *currentState;
+ SimState *defState;
+ QList<SimState *> states;
+ QMap<QString,QString> variables;
+ int usedCallIds;
+ bool useGsm0710;
+ int currentChannel;
+ char incomingBuffer[1024];
+ int incomingUsed;
+ char lineBuffer[1024];
+ int lineUsed;
+ SimFileSystem *fileSystem;
+ SimApplication *defaultToolkitApp;
+ SimApplication *toolkitApp;
+
+ // Get a particular state object.
+ SimState *state( const QString& name ) const;
+
+ QString return_error_string;
+ uint return_error_count;
+ QString mPhoneNumber;
+ HardwareManipulator *machine;
+
+ void writeGsmFrame( int type, const char *data, uint len );
+ void writeChatData( const char *data, uint len );
+
+ QString convertCharset( const QString& s );
+ void initPhoneBooks();
+ void phoneBook( const QString& cmd );
+ bool simCommand( const QString& cmd );
+ void changePin( const QString& cmd );
+ SimPhoneBook *currentPB() const;
+ void loadPhoneBook( SimXmlNode& node );
+
+ QString currentPhoneBook;
+ QMap< QString, SimPhoneBook * > phoneBooks;
+
+ CallManager *_callManager;
+
+ bool simCsimOk( const QByteArray& payload );
+};
+
+
+class SimDelayTimer : public QTimer
+{
+ Q_OBJECT
+public:
+ SimDelayTimer( const QString& response, int channel )
+ : QTimer() { this->response = response; this->channel = channel; }
+
+public:
+ QString response;
+ int channel;
+};
+
+#endif
diff --git a/include/qatresult.h b/include/qatresult.h
new file mode 100644
index 0000000..d0178dc
--- /dev/null
+++ b/include/qatresult.h
@@ -0,0 +1,172 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+
+#ifndef QATRESULT_H
+#define QATRESULT_H
+
+#include <qobject.h>
+#include <qstring.h>
+
+class QAtResultPrivate;
+
+class QAtResult
+{
+public:
+ enum ResultCode
+ {
+ OK = -1,
+ Connect = -2,
+ NoCarrier = -3,
+ Error = -4,
+ NoDialtone = -5,
+ Busy = -6,
+ NoAnswer = -7,
+ Dead = -8,
+
+ // General errors (GSM 27.07, section 9.2.1).
+ PhoneFailure = 0,
+ NoConnectionToPhone = 1,
+ PhoneAdapterLinkReserved = 2,
+ OperationNotAllowed = 3,
+ OperationNotSupported = 4,
+ PhSimPinRequired = 5,
+ PhFSimPinRequired = 6,
+ PhFSimPukRequired = 7,
+ SimNotInserted = 10,
+ SimPinRequired = 11,
+ SimPukRequired = 12,
+ SimFailure = 13,
+ SimBusy = 14,
+ SimWrong = 15,
+ IncorrectPassword = 16,
+ SimPin2Required = 17,
+ SimPuk2Required = 18,
+ MemoryFull = 20,
+ InvalidIndex = 21,
+ NotFound = 22,
+ MemoryFailure = 23,
+ TextStringTooLong = 24,
+ InvalidCharsInTextString = 25,
+ DialStringTooLong = 26,
+ InvalidCharsInDialString = 27,
+ NoNetworkService = 30,
+ NetworkTimeout = 31,
+ NetworkNotAllowed = 32,
+ NetPersPinRequired = 40,
+ NetPersPukRequired = 41,
+ NetSubsetPersPinRequired = 42,
+ NetSubsetPersPukRequired = 43,
+ ServProvPersPinRequired = 44,
+ ServProvPersPukRequired = 45,
+ CorpPersPinRequired = 46,
+ CorpPersPukRequired = 47, // 23 according to spec ???
+ HiddenKeyRequired = 48, // 24 according to spec ???
+ Unknown = 100,
+
+ // GPRS-related errors (GSM 27.07, section 9.2.2).
+ IllegalMS = 103,
+ IllegalME = 106,
+ GPRSServicesNotAllowed = 107,
+ PLMNNotAllowed = 111,
+ LocationAreaNotAllowed = 112,
+ RoamingNotAllowed = 113,
+ ServiceOptionNotSupported = 132,
+ ServiceOptionNotSubscribed = 133,
+ ServiceOptionOutOfOrder = 134,
+ UnspecifiedGPRSError = 148,
+ PDPAuthenticationFailure = 149,
+ InvalidMobileClass = 150,
+
+ // VBS/VGCS and eMLPP errors (GSM 27.07, section 9.2.3).
+ VBSVGCSNotSupported = 151,
+ NoServiceSubscriptionOnSim = 152,
+ NoSubscriptionForGroupId = 153,
+ GroupIdNotActivatedOnSim = 154,
+ NoMatchingNotification = 155,
+ VBSVGCSCallAlreadyPresent = 156,
+ Congestion = 157,
+ NetworkFailure = 158,
+ UplinkBusy = 159,
+ NoAccessRightsForSimFile = 160,
+ NoSubscriptionForPriority = 161,
+ OperationNotApplicable = 162,
+
+ // SMS errors (GSM 27.05, section 3.2.5).
+ MEFailure = 300,
+ SMSServiceOfMEReserved = 301,
+ SMSOperationNotAllowed = 302,
+ SMSOperationNotSupported = 303,
+ InvalidPDUModeParameter = 304,
+ InvalidTextModeParameter = 305,
+ USimNotInserted = 310,
+ USimPinRequired = 311,
+ PHUSimPinRequired = 312,
+ USimFailure = 313,
+ USimBusy = 314,
+ USimWrong = 315,
+ USimPukRequired = 316,
+ USimPin2Required = 317,
+ USimPuk2Required = 318,
+ SMSMemoryFailure = 320,
+ InvalidMemoryIndex = 321,
+ SMSMemoryFull = 322,
+ SMSCAddressUnknown = 330,
+ SMSNoNetworkService = 331,
+ SMSNetworkTimeout = 332,
+ NoCNMAAckExpected = 340,
+ UnknownError = 500
+ };
+
+ class UserData
+ {
+ public:
+ virtual ~UserData() {}
+ };
+
+ QAtResult();
+ QAtResult( const QAtResult& other );
+ ~QAtResult();
+
+ QAtResult& operator=( const QAtResult& other );
+
+ QString result() const;
+ void setResult( const QString& value );
+
+ QString content() const;
+ void setContent( const QString& value );
+ void append( const QString& value );
+
+ QAtResult::ResultCode resultCode() const;
+ void setResultCode( QAtResult::ResultCode value );
+
+ bool ok() const;
+
+ QString verboseResult() const;
+
+ QAtResult::UserData *userData() const;
+ void setUserData( QAtResult::UserData *value );
+
+private:
+ QAtResultPrivate *d;
+
+ void resultToCode( const QString& value );
+ QString codeToResult( const QString& defaultValue ) const;
+};
+
+#endif
diff --git a/include/qatresultparser.h b/include/qatresultparser.h
new file mode 100644
index 0000000..abaf88f
--- /dev/null
+++ b/include/qatresultparser.h
@@ -0,0 +1,86 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+
+#ifndef QATRESULTPARSER_H
+#define QATRESULTPARSER_H
+
+#include <qobject.h>
+#include <qstring.h>
+#include <qstringlist.h>
+#include <qlist.h>
+
+class QAtResultParserPrivate;
+class QAtResult;
+
+class QAtResultParser
+{
+public:
+ QAtResultParser( const QAtResult& result );
+ QAtResultParser( const QString& notification );
+ ~QAtResultParser();
+
+ class Node
+ {
+ friend class QAtResultParser;
+ private:
+ enum Kind { Number, Range, String, List };
+
+ Node( uint number );
+ Node( uint first, uint last );
+ Node( const QString& str );
+ Node( QList<Node> *list );
+ public:
+ Node( const Node& other );
+ ~Node();
+
+ bool isNumber() const { return ( _kind == Number ); }
+ bool isRange() const { return ( _kind == Range ); }
+ bool isString() const { return ( _kind == String ); }
+ bool isList() const { return ( _kind == List ); }
+
+ uint asNumber() const { return ( _kind == Number ? _number : 0 ); }
+ uint asFirst() const { return ( _kind == Range ? _number : 0 ); }
+ uint asLast() const { return ( _kind == Range ? _last : 0 ); }
+ QString asString() const { return _str; }
+ QList<QAtResultParser::Node> asList() const
+ { return ( _list ? *_list : QList<QAtResultParser::Node>() ); }
+
+ private:
+ Kind _kind;
+ uint _number;
+ uint _last;
+ QString _str;
+ QList<QAtResultParser::Node> *_list;
+ };
+
+ void reset();
+ bool next( const QString& prefix );
+ QString line();
+ uint readNumeric();
+ QString readString();
+ void skip();
+ QString readNextLine();
+ QStringList lines( const QString& prefix );
+ QList<QAtResultParser::Node> readList();
+
+private:
+ QAtResultParserPrivate *d;
+};
+
+#endif
diff --git a/include/qatutils.h b/include/qatutils.h
new file mode 100644
index 0000000..27e3c2d
--- /dev/null
+++ b/include/qatutils.h
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+
+#ifndef QATUTILS_H
+#define QATUTILS_H
+
+#include <qobject.h>
+#include <qstring.h>
+#include <qbytearray.h>
+
+class QAtResultParser;
+class QTextCodec;
+
+class QAtUtils
+{
+private:
+ QAtUtils() {}
+
+public:
+
+ static QString quote( const QString& str );
+ static QString quote( const QString& str, QTextCodec *codec );
+ static QString decode( const QString& str, QTextCodec *codec );
+ static QTextCodec *codec( const QString& gsmCharset );
+ static QString toHex( const QByteArray& binary );
+ static QByteArray fromHex( const QString& hex );
+ static QString decodeNumber( const QString& value, uint type );
+ static QString decodeNumber( QAtResultParser& parser );
+ static QString encodeNumber( const QString& value, bool keepPlus = false );
+ static QString nextString( const QString& buf, uint& posn );
+ static uint parseNumber( const QString& str, uint& posn, int invalidValue = 0);
+ static void skipField( const QString& str, uint& posn );
+ static QString stripNumber( const QString& number );
+ static bool octalEscapes();
+ static void setOctalEscapes( bool value );
+ static QString decodeString( const QString& value, uint dcs );
+};
+
+#endif
diff --git a/include/qcbsmessage.h b/include/qcbsmessage.h
new file mode 100644
index 0000000..0f86e3e
--- /dev/null
+++ b/include/qcbsmessage.h
@@ -0,0 +1,100 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+
+#ifndef QCBSMESSAGE_H
+#define QCBSMESSAGE_H
+
+#include <qstring.h>
+
+class QCBSMessagePrivate;
+
+class QCBSMessage
+{
+public:
+ QCBSMessage();
+ QCBSMessage(const QCBSMessage &);
+ ~QCBSMessage();
+
+ enum GeographicalScope
+ {
+ CellWide = 0,
+ PLMNWide = 1,
+ LocationAreaWide = 2,
+ CellWide2 = 3
+ };
+
+ enum Language
+ {
+ German = 0,
+ English = 1,
+ Italian = 2,
+ French = 3,
+ Spanish = 4,
+ Dutch = 5,
+ Swedish = 6,
+ Danish = 7,
+ Portuguese = 8,
+ Finnish = 9,
+ Norwegian = 10,
+ Greek = 11,
+ Turkish = 12,
+ Hungarian = 13,
+ Polish = 14,
+ Unspecified = 15
+ };
+
+ QCBSMessage& operator=(const QCBSMessage &);
+
+ uint messageCode() const;
+ void setMessageCode( uint code );
+
+ QCBSMessage::GeographicalScope scope() const;
+ void setScope( QCBSMessage::GeographicalScope scope );
+
+ uint updateNumber() const;
+ void setUpdateNumber( uint num );
+
+ uint channel() const;
+ void setChannel( uint chan );
+
+ QCBSMessage::Language language() const;
+ void setLanguage( QCBSMessage::Language lang );
+
+ uint page() const;
+ void setPage( uint page );
+
+ uint numPages() const;
+ void setNumPages( uint npages );
+
+ void setText(const QString &);
+ QString text() const;
+
+ bool operator==( const QCBSMessage& other ) const;
+ bool operator!=( const QCBSMessage& other ) const;
+
+ void print();
+
+ QByteArray toPdu() const;
+ static QCBSMessage fromPdu( const QByteArray& pdu );
+
+private:
+ QCBSMessagePrivate *d;
+};
+
+#endif
diff --git a/include/qgsmcodec.h b/include/qgsmcodec.h
new file mode 100644
index 0000000..8ecb6f9
--- /dev/null
+++ b/include/qgsmcodec.h
@@ -0,0 +1,49 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+
+#ifndef QGSMCODEC_H
+#define QGSMCODEC_H
+
+#include <qstring.h>
+#include <qtextcodec.h>
+
+class QGsmCodec : public QTextCodec
+{
+public:
+ explicit QGsmCodec( bool noLoss=false );
+ ~QGsmCodec();
+
+ QByteArray name() const;
+ int mibEnum() const;
+
+ static char singleFromUnicode(QChar ch);
+ static QChar singleToUnicode(char ch);
+
+ static unsigned short twoByteFromUnicode(QChar ch);
+ static QChar twoByteToUnicode(unsigned short ch);
+
+protected:
+ QString convertToUnicode(const char *in, int length, ConverterState *state) const;
+ QByteArray convertFromUnicode(const QChar *in, int length, ConverterState *state) const;
+
+private:
+ bool noLoss;
+};
+
+#endif
diff --git a/include/qsimcommand.h b/include/qsimcommand.h
new file mode 100644
index 0000000..ff99cc7
--- /dev/null
+++ b/include/qsimcommand.h
@@ -0,0 +1,385 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+#ifndef QSIMCOMMAND_H
+#define QSIMCOMMAND_H
+
+#include <qlist.h>
+#include <qdatastream.h>
+
+class QSimMenuItemPrivate;
+class QSimCommandPrivate;
+
+class QSimMenuItem
+{
+public:
+ QSimMenuItem();
+ QSimMenuItem( const QSimMenuItem& value );
+ ~QSimMenuItem();
+
+ uint identifier() const;
+ void setIdentifier( uint value );
+
+ QString label() const;
+ void setLabel( const QString& value );
+
+ QByteArray labelAttribute() const;
+ void setLabelAttribute( const QByteArray& value );
+
+ QString labelHtml() const;
+
+ bool hasHelp() const;
+ void setHasHelp( bool value );
+
+ uint iconId() const;
+ void setIconId( uint value );
+
+ bool iconSelfExplanatory() const;
+ void setIconSelfExplanatory( bool value );
+
+ uint nextAction() const;
+ void setNextAction( uint value );
+
+ QSimMenuItem& operator=( const QSimMenuItem & );
+
+private:
+ QSimMenuItemPrivate *d;
+};
+
+class QSimCommand
+{
+public:
+ QSimCommand();
+ QSimCommand( const QSimCommand& value );
+ ~QSimCommand();
+
+ // Command types.
+ enum Type
+ {
+ NoCommand = -1,
+ Timeout = -2,
+ Refresh = 0x01,
+ MoreTime = 0x02,
+ PollInterval = 0x03,
+ PollingOff = 0x04,
+ SetupEventList = 0x05,
+ SetupCall = 0x10,
+ SendSS = 0x11,
+ SendUSSD = 0x12,
+ SendSMS = 0x13,
+ SendDTMF = 0x14,
+ LaunchBrowser = 0x15,
+ PlayTone = 0x20,
+ DisplayText = 0x21,
+ GetInkey = 0x22,
+ GetInput = 0x23,
+ SelectItem = 0x24,
+ SetupMenu = 0x25,
+ ProvideLocalInformation = 0x26,
+ TimerManagement = 0x27,
+ SetupIdleModeText = 0x28,
+ PerformCardAPDU = 0x30,
+ PowerOnCard = 0x31,
+ PowerOffCard = 0x32,
+ GetReaderStatus = 0x33,
+ RunATCommand = 0x34,
+ LanguageNotification = 0x35,
+ OpenChannel = 0x40,
+ CloseChannel = 0x41,
+ ReceiveData = 0x42,
+ SendData = 0x43,
+ GetChannelStatus = 0x44,
+ ServiceSearch = 0x45,
+ GetServiceInformation = 0x46,
+ DeclareService = 0x47,
+ SetFrames = 0x50,
+ GetFramesStatus = 0x51,
+ RetrieveMultimediaMessage = 0x60,
+ SubmitMultimediaMessage = 0x61,
+ DisplayMultimediaMessage = 0x62,
+ EndSession = 0x81,
+
+ SetupMainMenu = SetupMenu,
+ SetupSubMenu = SelectItem
+ };
+
+ // Disposition of other calls during a call setup.
+ enum Disposition
+ {
+ IfNoOtherCalls = 0, // Setup if no other calls.
+ PutOnHold = 1, // Put other calls on hold first.
+ Disconnect = 2 // Disconnect other calls first.
+ };
+
+ // Class of call to setup.
+ enum CallClass
+ {
+ Voice = 0,
+ Data = 1,
+ Fax = 2
+ };
+
+ // Tones that can be played.
+ enum Tone
+ {
+ ToneNone = -1,
+ ToneDial = 0x01,
+ ToneBusy = 0x02,
+ ToneCongestion = 0x03,
+ ToneRadioAck = 0x04,
+ ToneDropped = 0x05,
+ ToneError = 0x06,
+ ToneCallWaiting = 0x07,
+ ToneRinging = 0x08,
+ ToneGeneralBeep = 0x10,
+ TonePositiveBeep = 0x11,
+ ToneNegativeBeep = 0x12
+ };
+
+ // The type of refresh to perform.
+ enum RefreshType
+ {
+ InitAndFullFileChange = 0,
+ FileChange = 1,
+ InitAndFileChange = 2,
+ Initialization = 3,
+ Reset = 4,
+ NaaApplicationReset = 5,
+ NaaSessionReset = 6
+ };
+
+ // Event types.
+ enum Event
+ {
+ NoEvent = 0,
+ IdleScreen = 1,
+ UserActivity = 2,
+ Both = 3,
+ Cancel = 4
+ };
+
+ // Browser launch mode.
+ enum BrowserLaunchMode
+ {
+ IfNotAlreadyLaunched = 0,
+ UseExisting = 2,
+ CloseExistingAndLaunch = 3
+ };
+
+ // Menu presentation type.
+ enum MenuPresentation
+ {
+ AnyPresentation = 0,
+ DataValuesPresentation = 1,
+ NavigationOptionsPresentation = 2
+ };
+
+ // Device identities for source and destination of commands.
+ enum Device
+ {
+ Keypad = 0x01,
+ Display = 0x02,
+ Earpiece = 0x03,
+ CardReader0 = 0x10,
+ CardReader1 = 0x11,
+ CardReader2 = 0x12,
+ CardReader3 = 0x13,
+ CardReader4 = 0x14,
+ CardReader5 = 0x15,
+ CardReader6 = 0x16,
+ CardReader7 = 0x17,
+ Channel1 = 0x21,
+ Channel2 = 0x22,
+ Channel3 = 0x23,
+ Channel4 = 0x24,
+ Channel5 = 0x25,
+ Channel6 = 0x26,
+ Channel7 = 0x27,
+ SIM = 0x81,
+ ME = 0x82,
+ Network = 0x83
+ };
+
+ int commandNumber() const;
+ void setCommandNumber( int value );
+
+ Type type() const;
+ void setType( QSimCommand::Type value );
+
+ QSimCommand::Device sourceDevice() const;
+ void setSourceDevice( QSimCommand::Device value );
+
+ QSimCommand::Device destinationDevice() const;
+ void setDestinationDevice( QSimCommand::Device value );
+
+ bool hasHelp() const;
+ void setHasHelp( bool value );
+
+ QString text() const;
+ void setText( const QString& value );
+
+ QByteArray textAttribute() const;
+ void setTextAttribute( const QByteArray& value );
+
+ QString textHtml() const;
+
+ bool suppressUserFeedback() const;
+ void setSuppressUserFeedback( bool value );
+
+ QString otherText() const;
+ void setOtherText( const QString& value );
+
+ QByteArray otherTextAttribute() const;
+ void setOtherTextAttribute( const QByteArray& value );
+
+ QString otherTextHtml() const;
+
+ QString defaultText() const;
+ void setDefaultText( const QString& value );
+
+ bool highPriority() const;
+ void setHighPriority( bool value );
+
+ bool clearAfterDelay() const;
+ void setClearAfterDelay( bool value );
+
+ bool immediateResponse() const;
+ void setImmediateResponse( bool value );
+
+ bool ucs2Input() const;
+ void setUcs2Input( bool value );
+
+ bool packedInput() const;
+ void setPackedInput( bool value );
+
+ bool wantDigits() const;
+ void setWantDigits( bool value );
+
+ bool wantYesNo() const;
+ void setWantYesNo( bool value );
+
+ uint minimumLength() const;
+ void setMinimumLength( uint value );
+
+ uint maximumLength() const;
+ void setMaximumLength( uint value );
+
+ bool echo() const;
+ void setEcho( bool value );
+
+ QSimCommand::Disposition disposition() const;
+ void setDisposition( QSimCommand::Disposition value );
+
+ bool withRedial() const;
+ void setWithRedial( bool value );
+
+ QString number() const;
+ void setNumber( const QString& value );
+
+ QString subAddress() const;
+ void setSubAddress( const QString& value );
+
+ QSimCommand::CallClass callClass() const;
+ void setCallClass( QSimCommand::CallClass value );
+
+ QSimCommand::Tone tone() const;
+ void setTone( QSimCommand::Tone value );
+
+ uint toneTime() const;
+ void setToneTime( uint value );
+
+ uint duration() const;
+ void setDuration( uint value );
+
+ bool softKeysPreferred() const;
+ void setSoftKeysPreferred( bool value );
+
+ QSimCommand::MenuPresentation menuPresentation() const;
+ void setMenuPresentation( QSimCommand::MenuPresentation value );
+
+ QString title() const;
+ void setTitle( const QString& value );
+
+ QByteArray titleAttribute() const;
+ void setTitleAttribute( const QByteArray& value );
+
+ QString titleHtml() const;
+
+ uint defaultItem() const;
+ void setDefaultItem( uint value );
+
+ QList<QSimMenuItem> menuItems() const;
+ void setMenuItems( const QList<QSimMenuItem>& value );
+
+ QSimCommand::RefreshType refreshType() const;
+ void setRefreshType( QSimCommand::RefreshType value );
+
+ QSimCommand::Event events() const;
+ void setEvents( QSimCommand::Event value );
+
+ QSimCommand::BrowserLaunchMode browserLaunchMode() const;
+ void setBrowserLaunchMode( QSimCommand::BrowserLaunchMode value );
+
+ QString url() const;
+ void setUrl( const QString& value );
+
+ uint iconId() const;
+ void setIconId( uint value );
+
+ bool iconSelfExplanatory() const;
+ void setIconSelfExplanatory( bool value );
+
+ uint otherIconId() const;
+ void setOtherIconId( uint value );
+
+ bool otherIconSelfExplanatory() const;
+ void setOtherIconSelfExplanatory( bool value );
+
+ bool smsPacking() const;
+ void setSmsPacking( bool value );
+
+ int qualifier() const;
+ void setQualifier( int value );
+
+ QByteArray extensionData() const;
+ void setExtensionData( QByteArray value );
+
+ QByteArray extensionField( int tag ) const;
+ void addExtensionField( int tag, const QByteArray& value );
+
+ enum ToPduOptions
+ {
+ NoPduOptions = 0x00,
+ NoBerWrapper = 0x01,
+ PackedStrings = 0x02,
+ UCS2Strings = 0x04,
+ EncodeEmptyStrings = 0x08
+ };
+
+ static QSimCommand fromPdu( const QByteArray& pdu );
+ QByteArray toPdu( QSimCommand::ToPduOptions options = NoPduOptions ) const;
+
+ QSimCommand& operator=( const QSimCommand & );
+
+private:
+ QSimCommandPrivate *d;
+
+ QSimCommandPrivate *dwrite();
+};
+
+#endif
diff --git a/include/qsimcontrolevent.h b/include/qsimcontrolevent.h
new file mode 100644
index 0000000..bab4545
--- /dev/null
+++ b/include/qsimcontrolevent.h
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+#ifndef QSIMCONTROLEVENT_H
+#define QSIMCONTROLEVENT_H
+
+#include <QString>
+
+class QSimControlEventPrivate;
+
+class QSimControlEvent
+{
+public:
+ QSimControlEvent();
+ QSimControlEvent( const QSimControlEvent& value );
+ ~QSimControlEvent();
+
+ enum Type
+ {
+ Call = 0,
+ Sms = 1
+ };
+
+ enum Result
+ {
+ Allowed = 0,
+ NotAllowed = 1,
+ AllowedWithModifications = 2
+ };
+
+ QSimControlEvent::Type type() const;
+ void setType( QSimControlEvent::Type value );
+
+ QSimControlEvent::Result result() const;
+ void setResult( QSimControlEvent::Result value );
+
+ QString text() const;
+ void setText( const QString& value );
+
+ QByteArray extensionData() const;
+ void setExtensionData( QByteArray value );
+
+ QByteArray extensionField( int tag ) const;
+ void addExtensionField( int tag, const QByteArray& value );
+
+ static QSimControlEvent fromPdu( QSimControlEvent::Type type, const QByteArray& pdu );
+ QByteArray toPdu() const;
+
+ QSimControlEvent& operator=( const QSimControlEvent & );
+
+private:
+ QSimControlEventPrivate *d;
+};
+
+#endif
diff --git a/include/qsimenvelope.h b/include/qsimenvelope.h
new file mode 100644
index 0000000..0bd3fe5
--- /dev/null
+++ b/include/qsimenvelope.h
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+#ifndef QSIMENVELOPE_H
+#define QSIMENVELOPE_H
+
+#include <qsimcommand.h>
+
+class QSimEnvelopePrivate;
+
+class QSimEnvelope
+{
+public:
+ QSimEnvelope();
+ QSimEnvelope( const QSimEnvelope& value );
+ ~QSimEnvelope();
+
+ enum Type
+ {
+ NoEnvelope = -1,
+ SMSPPDownload = 0xD1,
+ CellBroadcastDownload = 0xD2,
+ MenuSelection = 0xD3,
+ CallControl = 0xD4,
+ MOSMSControl = 0xD5,
+ EventDownload = 0xD6,
+ TimerExpiration = 0xD7
+ };
+
+ enum Event
+ {
+ NoEvent = -1,
+ MTCall = 0,
+ CallConnected = 1,
+ CallDisconnected = 2,
+ LocationStatus = 3,
+ UserActivity = 4,
+ IdleScreenAvailable = 5,
+ CardReaderStatus = 6,
+ LanguageSelection = 7,
+ BrowserTermination = 8,
+ DataAvailable = 9,
+ ChannelStatus = 10
+ };
+
+ QSimEnvelope::Type type() const;
+ void setType( QSimEnvelope::Type value );
+
+ QSimCommand::Device sourceDevice() const;
+ void setSourceDevice( QSimCommand::Device value );
+
+ QSimCommand::Device destinationDevice() const;
+ void setDestinationDevice( QSimCommand::Device value );
+
+ uint menuItem() const;
+ void setMenuItem( uint value );
+
+ bool requestHelp() const;
+ void setRequestHelp( bool value );
+
+ QSimEnvelope::Event event() const;
+ void setEvent( QSimEnvelope::Event value );
+
+ QByteArray extensionData() const;
+ void setExtensionData( QByteArray value );
+
+ QByteArray extensionField( int tag ) const;
+ void addExtensionField( int tag, const QByteArray& value );
+
+ static QSimEnvelope fromPdu( const QByteArray& pdu );
+ QByteArray toPdu() const;
+
+ QSimEnvelope& operator=( const QSimEnvelope & );
+
+private:
+ QSimEnvelopePrivate *d;
+};
+
+#endif
diff --git a/include/qsimterminalresponse.h b/include/qsimterminalresponse.h
new file mode 100644
index 0000000..86a4bf0
--- /dev/null
+++ b/include/qsimterminalresponse.h
@@ -0,0 +1,163 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+#ifndef QSIMTERMINALRESPONSE_H
+#define QSIMTERMINALRESPONSE_H
+
+#include <qsimcommand.h>
+
+class QSimTerminalResponsePrivate;
+
+class QSimTerminalResponse
+{
+public:
+ QSimTerminalResponse();
+ QSimTerminalResponse( const QSimTerminalResponse& value );
+ ~QSimTerminalResponse();
+
+ enum Result
+ {
+ Success = 0x00,
+ PartialComprehension = 0x01,
+ MissingInformation = 0x02,
+ RefreshPerformed = 0x03,
+ IconNotDisplayed = 0x04,
+ ModifiedCallControl = 0x05,
+ LimitedService = 0x06,
+ WithModification = 0x07,
+ SessionTerminated = 0x10,
+ BackwardMove = 0x11,
+ NoResponseFromUser = 0x12,
+ HelpInformationRequested = 0x13,
+ UssdOrSsTerminatedByUser = 0x14,
+
+ MEUnableToProcess = 0x20,
+ NetworkUnableToProcess = 0x21,
+ UserDidNotAccept = 0x22,
+ UserClearedDownCall = 0x23,
+ ActionInContradictionWithTimer = 0x24,
+ TemporaryCallControlProblem = 0x25,
+ LaunchBrowserError = 0x26,
+
+ BeyondMECapabilities = 0x30,
+ TypeNotUnderstood = 0x31,
+ DataNotUnderstood = 0x32,
+ NumberNotUnderstood = 0x33,
+ SsReturnError = 0x34,
+ SmsRpError = 0x35,
+ RequiredValuesMissing = 0x36,
+ UssdReturnError = 0x37,
+ MultipleCardError = 0x38,
+ PermanentCallControlProblem = 0x39,
+ BearerIndependentProtocolProblem = 0x3A
+ };
+
+ enum Cause
+ {
+ // Common causes.
+ NoSpecificCause = 0x00,
+
+ // MEUnableToProcess causes.
+ ScreenIsBusy = 0x01,
+ BusyOnCall = 0x02,
+ BusyOnSsTransaction = 0x03,
+ NoService = 0x04,
+ AccessControlClassBar = 0x05,
+ RadioResourceNotGranted = 0x06,
+ NotInSpeechCall = 0x07,
+ BusyOnUssdTransaction = 0x08,
+ BusyOnDtmf = 0x09,
+
+ // PermanentCallControlProblem causes.
+ ActionNotAllowed = 0x01,
+ TypeOfRequestHasChanged = 0x02,
+
+ // MultipleCardError causes.
+ CardReaderRemovedOrNotPresent = 0x01,
+ CardRemovedOrNotPresent = 0x02,
+ CardReaderBusy = 0x03,
+ CardPoweredOff = 0x04,
+ CAPDUFormatError = 0x05,
+ MuteCard = 0x06,
+ TransmissionError = 0x07,
+ ProtocolNotSupported = 0x08,
+ SpecifiedReaderNotValid = 0x09,
+
+ // LaunchBrowserError causes.
+ BearerUnavailable = 0x01,
+ BrowserUnavailable = 0x02,
+ UnableToReadProvisioningData = 0x03,
+
+ // BearerIndependentProtocolProblem causes.
+ NoChannelAvailable = 0x01,
+ ChannelClosed = 0x02,
+ ChannelIdentifierNotValid = 0x03,
+ RequestedBufferSizeNotAvailable = 0x04,
+ SecurityError = 0x05,
+ RequestedTransportNotAvailable = 0x06
+ };
+
+ QSimCommand command() const;
+ void setCommand( const QSimCommand& value );
+
+ QByteArray commandPdu() const;
+ void setCommandPdu( const QByteArray& value );
+
+ QSimCommand::Device sourceDevice() const;
+ void setSourceDevice( QSimCommand::Device value );
+
+ QSimCommand::Device destinationDevice() const;
+ void setDestinationDevice( QSimCommand::Device value );
+
+ QSimTerminalResponse::Result result() const;
+ void setResult( QSimTerminalResponse::Result value );
+
+ QSimTerminalResponse::Cause cause() const;
+ void setCause( QSimTerminalResponse::Cause value );
+
+ QByteArray causeData() const;
+ void setCauseData( const QByteArray& value );
+
+ QString text() const;
+ void setText( const QString& value );
+
+ uint duration() const;
+ void setDuration( uint value );
+
+ uint menuItem() const;
+ void setMenuItem( uint value );
+
+ int dataCodingScheme() const;
+ void setDataCodingScheme( int value );
+
+ QByteArray extensionData() const;
+ void setExtensionData( QByteArray value );
+
+ QByteArray extensionField( int tag ) const;
+ void addExtensionField( int tag, const QByteArray& value );
+
+ static QSimTerminalResponse fromPdu( const QByteArray& pdu );
+ QByteArray toPdu() const;
+
+ QSimTerminalResponse& operator=( const QSimTerminalResponse & );
+
+private:
+ QSimTerminalResponsePrivate *d;
+};
+
+#endif
diff --git a/include/qsmsmessage.h b/include/qsmsmessage.h
new file mode 100644
index 0000000..6deb962
--- /dev/null
+++ b/include/qsmsmessage.h
@@ -0,0 +1,170 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+
+#ifndef QSMSMESSAGE_H
+#define QSMSMESSAGE_H
+
+#include <qstring.h>
+#include <qdatetime.h>
+#include <qdatastream.h>
+#include <qlist.h>
+#include <quuid.h>
+
+class QSMSMessagePartPrivate;
+class QSMSMessagePrivate;
+class QTextCodec;
+
+
+class QSMSMessagePart
+{
+public:
+ QSMSMessagePart();
+ explicit QSMSMessagePart( const QString& text );
+ QSMSMessagePart( const QString& mimeType, const QByteArray& data );
+ QSMSMessagePart( const QString& mimeType, const QByteArray& data, uint position );
+ QSMSMessagePart( const QSMSMessagePart& part );
+ ~QSMSMessagePart();
+
+ QSMSMessagePart& operator=( const QSMSMessagePart& part );
+
+ bool isText() const;
+ QString text() const;
+ QString mimeType() const;
+ const QByteArray& data() const;
+ uint position() const;
+
+private:
+ QSMSMessagePartPrivate *d;
+};
+
+enum QSMSDataCodingScheme {
+ QSMS_Compressed = 0x0020,
+ QSMS_MessageClass = 0x0010,
+ QSMS_DefaultAlphabet = 0x0000,
+ QSMS_8BitAlphabet = 0x0004,
+ QSMS_UCS2Alphabet = 0x0008,
+ QSMS_ReservedAlphabet= 0x000C
+};
+
+class QSMSMessage
+{
+ friend class QSMSSubmitMessage;
+ friend class QSMSDeliverMessage;
+public:
+ QSMSMessage();
+ QSMSMessage(const QSMSMessage &);
+ ~QSMSMessage();
+
+ QSMSMessage& operator=(const QSMSMessage &);
+
+ void setText(const QString &);
+ QString text() const;
+
+ void setTextCodec(QTextCodec *codec);
+ QTextCodec *textCodec() const;
+
+ void setForceGsm(bool force);
+ bool forceGsm() const;
+
+ void setBestScheme(QSMSDataCodingScheme);
+ QSMSDataCodingScheme bestScheme() const;
+
+ void setRecipient(const QString &);
+ QString recipient() const;
+
+ void setSender(const QString &);
+ QString sender() const;
+
+ void setServiceCenter(const QString &);
+ QString serviceCenter() const;
+
+ void setReplyRequest(bool on );
+ bool replyRequest() const;
+
+ void setStatusReportRequested(bool on );
+ bool statusReportRequested() const;
+
+ void setValidityPeriod(uint minutes);
+ uint validityPeriod() const;
+
+ void setGsmValidityPeriod(uint value);
+ uint gsmValidityPeriod() const;
+
+ void setTimestamp(const QDateTime &);
+ QDateTime timestamp() const;
+
+ void setHeaders(const QByteArray& value);
+ const QByteArray& headers() const;
+
+ void clearParts();
+ void addPart( const QSMSMessagePart& part );
+ void addParts( const QList<QSMSMessagePart>& parts );
+ QList<QSMSMessagePart> parts() const;
+
+ enum MessageType {
+ Normal, CellBroadCast, StatusReport
+ };
+
+ MessageType messageType() const;
+
+ void computeSize( uint& numMessages, uint& spaceLeftInLast ) const;
+
+ int destinationPort() const;
+ void setDestinationPort(int value);
+
+ int sourcePort() const;
+ void setSourcePort(int value);
+
+ QByteArray applicationData() const;
+ void setApplicationData(const QByteArray& value);
+
+ void setDataCodingScheme(int);
+ int dataCodingScheme() const;
+
+ void setMessageClass(int);
+ int messageClass() const;
+
+ void setProtocol(int);
+ int protocol() const;
+
+ bool shouldSplit() const;
+
+ QList<QSMSMessage> split() const;
+
+ QByteArray toPdu() const;
+ static QSMSMessage fromPdu( const QByteArray& pdu );
+ static int pduAddressLength( const QByteArray& pdu );
+ static void appendAddress( QByteArray &buffer, const QString &strin, bool SCAddress );
+
+protected:
+ void setMessageType(MessageType);
+
+private:
+ mutable QSMSMessagePrivate *d;
+
+ QSMSMessagePrivate *dwrite();
+
+ int findPart( const QString& mimeType ) const;
+ void removeParts( const QString& mimeType );
+ void setFragmentHeader( uint refNum, uint part, uint numParts,
+ QSMSDataCodingScheme scheme );
+ void unpackHeaderParts();
+};
+
+#endif
diff --git a/include/qsmsmessage_p.h b/include/qsmsmessage_p.h
new file mode 100644
index 0000000..f26d066
--- /dev/null
+++ b/include/qsmsmessage_p.h
@@ -0,0 +1,185 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+
+#ifndef QSMSMESSAGE_P_H
+#define QSMSMESSAGE_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt Extended API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <qsmsmessage.h>
+#include <qcbsmessage.h>
+
+// Values are their bit reprensentation (defined in GSM-03.40 Section 9)
+// bits 6 5 4 ( shl 4 )
+enum SMSAddressType {
+ SMS_Address_Unknown = 0,
+ SMS_Address_International = 1,
+ SMS_Address_National = 2,
+ SMS_Address_NetworkSpecific = 3,
+ SMS_Address_SubscriberNmb = 4,
+ SMS_Address_AlphaNumeric = 5,
+ SMS_Address_Abbreviated = 6,
+ SMS_Address_Reserved = 7
+};
+
+// Values are their bit reprensentation (defined in GSM-03.40 Section 9)
+// bits 3 2 1 0 ( shl 0 )
+enum SMSNumbering {
+ SMS_NumberId_Unknown = 0,
+ SMS_Phone = 1
+ // .. 6 more defined though.
+};
+
+// TP-MTI (2 bits)
+enum SMSMessageType {
+ SMS_Deliver = 0,
+ SMS_DeliverReport = 0,
+ SMS_StatusReport = 2,
+ SMS_Command = 2,
+ SMS_Submit = 1,
+ SMS_SubmitReport = 1,
+ SMS_Reserved = 3
+};
+
+// TP_VPF (2 bits);
+enum SMSValidityFormat {
+ SMS_VF_NoPresent = 0,
+ SMS_VF_Relative = 2,
+ SMS_VF_Enhanced = 1,
+ SMS_VF_Absolute = 3
+};
+
+// User data header kinds from GSM 03.40 and GSM 23.040.
+enum SMSHeaderKind {
+ SMS_HK_Concat_8Bit = 0x00,
+ SMS_HK_Special_Msg_Indic = 0x01,
+ SMS_HK_AppPort_8Bit = 0x04,
+ SMS_HK_AppPort_16Bit = 0x05,
+ SMS_HK_Control_Parameters = 0x06,
+ SMS_HK_UDH_Source_Indic = 0x07,
+ SMS_HK_Concat_16Bit = 0x08,
+ SMS_HK_WCMP = 0x09,
+ SMS_HK_Text_Formatting = 0x0A,
+ SMS_HK_Predefined_Sound = 0x0B,
+ SMS_HK_User_Defined_Sound = 0x0C,
+ SMS_HK_Predefined_Animation = 0x0D,
+ SMS_HK_Large_Animation = 0x0E,
+ SMS_HK_Small_Animation = 0x0F,
+ SMS_HK_Large_Picture = 0x10,
+ SMS_HK_Small_Picture = 0x11,
+ SMS_HK_Variable_Picture = 0x12,
+ SMS_HK_User_Prompt_Indic = 0x13,
+ SMS_HK_Extended_Object = 0x14,
+ SMS_HK_Reused_Extended_Object = 0x15,
+ SMS_HK_Compression_Control = 0x16,
+ SMS_HK_Object_Dist_Indic = 0x17,
+ SMS_HK_Standard_WVG_Object = 0x18,
+ SMS_HK_Char_Size_WVG_Object = 0x19,
+ SMS_HK_Data_Request_Command = 0x1A,
+ SMS_HK_RFC_822_Header = 0x20,
+ SMS_HK_Hyperlink_Format_Element = 0x21,
+ SMS_HK_Reply_Address_Element = 0x22
+};
+
+class QPDUMessage
+{
+public:
+ QPDUMessage();
+ explicit QPDUMessage(const QByteArray &);
+ ~QPDUMessage();
+ QPDUMessage(const QPDUMessage &);
+
+ QByteArray toByteArray() const { return mBuffer; }
+
+ static void setBit(int b, bool on);
+ static void setBits(int offset, int len, int val);
+ void commitBits();
+ static void commitBits(QByteArray& buffer);
+ void appendOctet(uchar c) { mBuffer += (char)c; }
+
+ bool bit(int b);
+ unsigned char bits(int offset, int len);
+ unsigned char getOctet();
+ unsigned char peekOctet() const;
+ void skipOctet();
+ void abort() { mPosn = mBuffer.size(); }
+
+ QByteArray getOctets( uint len );
+
+ void setAddress(const QString &, bool SCAddress);
+ QString address(bool SCAddress);
+
+ uint addressLength() const;
+
+ void setTimeStamp(const QDateTime &);
+ QDateTime timeStamp();
+
+ void setUserData(const QString &txt, QSMSDataCodingScheme scheme, QTextCodec *codec, const QByteArray& headers, bool implicitLength = false);
+ QString userData(QSMSDataCodingScheme scheme, QTextCodec *codec, QByteArray *& headers, bool hasHeaders, bool implicitLength = false);
+
+ SMSMessageType messageType();
+
+ void reset() { mPosn = 0; }
+
+ bool needOctets( uint num ) const
+ { return ((uint)(mBuffer.size() - mPosn) >= num); }
+
+ static void appendAddress( QByteArray &buffer, const QString &strin, bool SCAddress );
+
+protected:
+ QByteArray mBuffer;
+ static int mPosn;
+ static char mBits;
+};
+
+
+class QSMSSubmitMessage: public QPDUMessage
+{
+public:
+ explicit QSMSSubmitMessage(const QSMSMessage &m, bool isDeliver=false);
+};
+
+class QSMSDeliverMessage: public QPDUMessage
+{
+public:
+ explicit QSMSDeliverMessage(const QByteArray &pdu);
+
+ QSMSMessage unpack(QTextCodec *codec=0);
+};
+
+class QCBSDeliverMessage: public QPDUMessage
+{
+public:
+ QCBSDeliverMessage();
+ explicit QCBSDeliverMessage(const QByteArray &pdu);
+
+ QCBSMessage unpack(QTextCodec *codec=0);
+ void pack(const QCBSMessage &m, QSMSDataCodingScheme scheme);
+};
+
+#endif
diff --git a/include/qsmsmessagelist.h b/include/qsmsmessagelist.h
new file mode 100644
index 0000000..8c47fc4
--- /dev/null
+++ b/include/qsmsmessagelist.h
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+
+#ifndef QSMSMESSAGELIST_H
+#define QSMSMESSAGELIST_H
+
+#include <QList>
+#include <QByteArray>
+
+class QSMSMessageList
+{
+public:
+ enum SMSStatus{
+ REC_UNREAD =0,
+ REC_READ =1,
+ STO_UNSENT =2,
+ STO_SENT =3
+ };
+
+ QSMSMessageList();
+ ~QSMSMessageList();
+
+ void appendSMS( const QByteArray &, int len );
+ void deleteSMS( int ); //note SMS's are not actually physically deleted. A flag is set
+
+ int count() const; //returns the total number, even those that are 'deleted'
+
+ SMSStatus getStatus( int ) const;
+ void setStatus( const SMSStatus &, int );
+
+ bool getDeletedFlag( int ) const;
+ void setDeletedFlag( bool, int );
+ int getLength( int ) const;
+
+ QByteArray & readSMS( int );//returns and sets the status of an SMS
+ QByteArray & operator[]( int );//only returns an SMS, does not set status
+
+private:
+ QList<QByteArray> SMSList;
+ QList<SMSStatus> statusList;
+ QList<bool> deletedFlagList;
+ QList<int> lengthList;
+};
+
+#endif
diff --git a/include/qwsppdu.h b/include/qwsppdu.h
new file mode 100644
index 0000000..91b3880
--- /dev/null
+++ b/include/qwsppdu.h
@@ -0,0 +1,230 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+
+#ifndef QWSPPDU_H
+#define QWSPPDU_H
+
+#include <qstring.h>
+#include <qobject.h>
+#include <qdatetime.h>
+
+class QIODevice;
+
+class QWspField
+{
+public:
+ QWspField();
+ QWspField( const QWspField& field );
+ ~QWspField();
+
+ QWspField& operator=( const QWspField& field );
+
+ QString name;
+ QString value;
+};
+
+class QWspDateTime
+{
+public:
+ static QDateTime parseDate(QString in);
+ static QString dateString(QDateTime d);
+ static QDateTime fromGmtTime_t(quint32);
+ static quint32 toTime_t(const QDateTime &);
+ static quint32 toGmtTime_t(const QDateTime &);
+};
+
+class QWspPduDecoder;
+class QWspPduEncoder;
+
+class QWspHeaderCodec
+{
+public:
+ virtual ~QWspHeaderCodec();
+ virtual QWspField decode(QWspPduDecoder &) = 0;
+ virtual bool encode(QWspPduEncoder &, const QWspField &) = 0;
+ virtual quint8 codePage() const = 0;
+};
+
+class QWspPart
+{
+public:
+ QWspPart();
+ QWspPart( const QWspPart& part );
+ ~QWspPart();
+
+ QWspPart& operator=( const QWspPart& part );
+
+ const QList<QWspField> &headers() const { return hdr; }
+ const QWspField *header(const QString &name) const;
+ void addHeader(const QWspField &);
+ void addHeader(const QString &name, const QString &value);
+
+ const QByteArray &data() const { return ba; }
+ void setData(const char *d, int l);
+ void readData(QIODevice *d, int l);
+ void writeData(QIODevice *d) const;
+
+private:
+ QList<QWspField> hdr;
+ QByteArray ba;
+};
+
+class QWspMultipart
+{
+public:
+ QWspMultipart();
+ QWspMultipart( const QWspMultipart& mpart );
+ ~QWspMultipart();
+
+ QWspMultipart& operator=( const QWspMultipart& mpart );
+
+ int count() const { return parts.count(); }
+ void addPart(const QWspPart &);
+ const QWspPart &part(int idx) const { return parts[idx]; }
+
+private:
+ QList<QWspPart> parts;
+};
+
+class QWspPush : public QWspPart
+{
+public:
+ QWspPush();
+ QWspPush( const QWspPush& push );
+ ~QWspPush();
+
+ QWspPush& operator=( const QWspPush& push );
+
+ int identifier() const { return ident; }
+ int pduType() const { return pdu; }
+
+ void setIdentifier( int value ) { ident = value; }
+ void setPduType( int value ) { pdu = value; }
+
+ static QString quickContentType( const QByteArray& data );
+
+private:
+ int ident;
+ int pdu;
+};
+
+class QWspPduDecoder : public QObject
+{
+ Q_OBJECT
+public:
+ explicit QWspPduDecoder(QIODevice *);
+ ~QWspPduDecoder();
+
+ quint8 peekOctet();
+ quint8 decodeOctet();
+ quint8 decodeUInt8();
+ quint16 decodeUInt16();
+ quint32 decodeUInt32();
+ quint32 decodeUIntVar();
+ quint8 decodeShortInteger();
+ quint32 decodeLongInteger();
+ quint32 decodeInteger();
+ quint32 decodeLength();
+ QString decodeTextString();
+ QString decodeEncodedString();
+ QString decodeTokenText();
+ QString decodeVersion();
+ QString decodeContentType();
+ QWspField decodeField();
+ QString decodeParameter();
+ QWspMultipart decodeMultipart();
+ void decodeContentTypeAndHeaders(QWspPart& part, quint32 hdrLen);
+ QWspPart decodePart();
+ QWspPush decodePush();
+
+ void setHeaderCodec(QWspHeaderCodec *c) {
+ if (c)
+ headerCodec = c;
+ else
+ headerCodec = defaultCodec;
+ }
+
+ enum Status { OK, Unhandled, Eof, Fatal };
+ Status status() const { return stat; }
+ void setStatus(Status s) { stat = s; }
+
+ QIODevice *device() { return dev; }
+
+signals:
+ void selectCodePage(quint8);
+
+private:
+ QString decodeCharset( const QString &encoded, quint32 mib);
+ QString decodeTextBlock(int length);
+private:
+ QIODevice *dev;
+ QWspHeaderCodec *headerCodec;
+ QWspHeaderCodec *defaultCodec;
+ Status stat;
+};
+
+class QWspPduEncoder : public QObject
+{
+ Q_OBJECT
+public:
+ explicit QWspPduEncoder(QIODevice *);
+ ~QWspPduEncoder();
+
+ void encodeOctet(quint8);
+ void encodeUInt8(quint8);
+ void encodeUInt16(quint16);
+ void encodeUInt32(quint32);
+ void encodeUIntVar(quint32);
+ void encodeShortInteger(quint8);
+ void encodeLongInteger(quint32);
+ void encodeInteger(quint32);
+ void encodeLength(quint32);
+ void encodeTextString(const QString &str);
+ void encodeEncodedString(const QString &str);
+ void encodeVersion(const QString &);
+ void encodeTokenText(const QString &str);
+ void encodeContentType(const QString &str);
+ void encodeField(const QWspField &);
+ void encodeParameter(const QString &);
+ void encodeMultipart(const QWspMultipart &);
+ void encodePart(const QWspPart &);
+ void encodePush(const QWspPush &);
+
+ int longIntegerLength(quint32 d);
+ int integerLength(quint32 d);
+
+ void setHeaderCodec(QWspHeaderCodec *c) {
+ if (c)
+ headerCodec = c;
+ else
+ headerCodec = defaultCodec;
+ }
+
+// void setCodePage(quint8);
+
+private:
+ QString unquoteString(const QString &str);
+
+private:
+ QIODevice *dev;
+ QWspHeaderCodec *headerCodec;
+ QWspHeaderCodec *defaultCodec;
+};
+
+#endif
diff --git a/include/server.h b/include/server.h
new file mode 100644
index 0000000..5915cc1
--- /dev/null
+++ b/include/server.h
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+
+#ifndef SERVER_H
+#define SERVER_H
+
+#include <qtcpserver.h>
+#include <qtcpsocket.h>
+#include <qpointer.h>
+
+#include "phonesim.h"
+
+class PhoneTestServer;
+class HardwareManipulatorFactory;
+
+class PhoneSimServer : public QTcpServer
+{
+public:
+ PhoneSimServer(const QString &, quint16 port, QObject *parent = 0);
+ ~PhoneSimServer();
+
+ void setHardwareManipulator(HardwareManipulatorFactory *f);
+
+ SimRules *rules() const { return currentRules; }
+
+protected:
+ void incomingConnection(int s);
+
+private:
+ QString filename;
+
+ HardwareManipulatorFactory *fact;
+ QPointer<SimRules> currentRules;
+};
+
+#endif
diff --git a/include/simapplication.h b/include/simapplication.h
new file mode 100644
index 0000000..1cfcbe4
--- /dev/null
+++ b/include/simapplication.h
@@ -0,0 +1,98 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+
+#ifndef SIMAPPLICATION_H
+#define SIMAPPLICATION_H
+
+#include "phonesim.h"
+#include <qsimcommand.h>
+#include <qsimterminalresponse.h>
+#include <qsimenvelope.h>
+#include <qsimcontrolevent.h>
+
+class SimApplicationPrivate;
+
+class SimApplication : public QObject
+{
+ Q_OBJECT
+public:
+ SimApplication( SimRules *rules, QObject *parent = 0 );
+ ~SimApplication();
+
+ virtual bool envelope( const QSimEnvelope& env );
+ virtual bool response( const QSimTerminalResponse& resp );
+ virtual QByteArray fetch( bool clear = false );
+
+ virtual const QString getName() = 0;
+
+public slots:
+ virtual void start();
+ virtual void abort();
+
+protected slots:
+ void command( const QSimCommand& cmd,
+ QObject *target, const char *slot,
+ QSimCommand::ToPduOptions options
+ = QSimCommand::NoPduOptions );
+ void controlEvent( const QSimControlEvent& event );
+
+ virtual void mainMenu() = 0;
+ virtual void mainMenuSelection( int id );
+ virtual void mainMenuHelpRequest( int id );
+
+private:
+ SimApplicationPrivate *d;
+};
+
+class DemoSimApplication : public SimApplication
+{
+ Q_OBJECT
+public:
+ DemoSimApplication( SimRules *rules, QObject *parent = 0 );
+ ~DemoSimApplication();
+
+ const QString getName();
+
+protected slots:
+ void mainMenu();
+ void mainMenuSelection( int id );
+ void sendSportsMenu();
+ void sportsMenu( const QSimTerminalResponse& resp );
+ void startSticksGame();
+ void sticksGameShow();
+ void sticksGameLoop( const QSimTerminalResponse& resp );
+ void getInputLoop( const QSimTerminalResponse& resp );
+ void sticksGamePlayAgain( const QSimTerminalResponse& resp );
+ void sendToneMenu();
+ void toneMenu( const QSimTerminalResponse& resp );
+ void sendIconMenu();
+ void iconMenu( const QSimTerminalResponse& resp );
+ void sendIconSEMenu();
+ void iconSEMenu( const QSimTerminalResponse& resp );
+ void sendDisplayText();
+ void displayTextResponse( const QSimTerminalResponse& resp );
+ void sendBrowserMenu();
+ void browserMenu( const QSimTerminalResponse& resp );
+
+private:
+ int sticksLeft;
+ bool immediateResponse;
+};
+
+#endif
diff --git a/include/simfilesystem.h b/include/simfilesystem.h
new file mode 100644
index 0000000..150416f
--- /dev/null
+++ b/include/simfilesystem.h
@@ -0,0 +1,126 @@
+/****************************************************************************
+**
+** This file is part of the Qt Extended Opensource Package.
+**
+** Copyright (C) 2009 Trolltech ASA.
+**
+** Contact: Qt Extended Information (info@qtextended.org)
+**
+** This file may be used under the terms of the GNU General Public License
+** version 2.0 as published by the Free Software Foundation and appearing
+** in the file LICENSE.GPL included in the packaging of this file.
+**
+** Please review the following information to ensure GNU General Public
+** Licensing requirements will be met:
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
+**
+**
+****************************************************************************/
+
+#ifndef SIMFILESYSTEM_H
+#define SIMFILESYSTEM_H
+
+#include "phonesim.h"
+
+class SimFileItem;
+
+enum file_type {
+ FILE_TYPE_TRANSPARENT = 0,
+ FILE_TYPE_LINEAR_FIXED = 1,
+ FILE_TYPE_CYCLIC = 3,
+ FILE_TYPE_INVALID = 0xff
+};
+
+enum file_access {
+ FILE_ACCESS_ALWAYS = 0,
+ FILE_ACCESS_CHV1 = 1,
+ FILE_ACCESS_CHV2 = 2,
+ FILE_ACCESS_RESERVED = 3,
+ FILE_ACCESS_ADM = 4,
+ FILE_ACCESS_NEVER = 15,
+};
+
+enum file_op {
+ FILE_OP_READ = 20,
+ FILE_OP_UPDATE = 16,
+ FILE_OP_INCREASE = 12,
+ FILE_OP_REHABILITATE = 4,
+ FILE_OP_INVALIDATE = 0,
+};
+
+class SimFileSystem : public QObject
+{
+ Q_OBJECT
+public:
+ SimFileSystem( SimRules *rules, SimXmlNode& e );
+ ~SimFileSystem();
+
+ // Execute an AT+CRSM command against the filesystem.
+ void crsm( const QString& args );
+
+ // Find an item with a specific id.
+ SimFileItem *findItem( const QString& fileid ) const;
+
+ // Find access conditions for an item with a specific id.
+ int findItemAccess( const QString& _fileid ) const;
+
+ // Find file type for an item with a specific id.
+ enum file_type findItemFileType( const QString& _fileid ) const;
+
+ // Find the parent of an item with a specific id even if the
+ // item itself does not exist. The parameter should be fully qualified.
+ SimFileItem *findItemParent( const QString& fileid ) const;
+
+ // Find an item relative to the current item and update current item.
+ SimFileItem *findItemRelative( const QString& fileid );
+
+ // Resolve a file identifier to its full path from the root directory.
+ QString resolveFileId( const QString& fileid ) const;
+
+private:
+ SimRules *rules;
+ SimFileItem *rootItem;
+ SimFileItem *currentItem;
+};
+
+class SimFileItem : public QObject
+{
+ Q_OBJECT
+public:
+ SimFileItem( const QString& fileid, SimFileItem *parentDir,
+ int access = 0, enum file_type type = FILE_TYPE_INVALID);
+ ~SimFileItem();
+
+ QString fileid() const { return _fileid; }
+ SimFileItem *parentDir() const { return _parentDir; }
+
+ QByteArray contents() const { return _contents; }
+ void setContents( const QByteArray& value ) { _contents = value; }
+
+ int recordSize() const { return _recordSize; }
+ void setRecordSize( int value ) { _recordSize = value; }
+
+ int access() const { return _access; }
+ enum file_type type() const { return _type; }
+
+ bool isDirectory() const { return _isDirectory; }
+ void setIsDirectory( bool value ) { _isDirectory = value; }
+
+ QList<SimFileItem *> children() const { return _children; }
+
+ SimFileItem *findItem( const QString& fileid );
+
+ bool checkAccess( enum file_op op, bool havepin ) const;
+
+private:
+ QString _fileid;
+ SimFileItem *_parentDir;
+ QByteArray _contents;
+ int _recordSize;
+ bool _isDirectory;
+ QList<SimFileItem *> _children;
+ int _access;
+ enum file_type _type;
+};
+
+#endif
diff --git a/src/GSMSpecification.xml b/src/GSMSpecification.xml
deleted file mode 100644
index c20a4a0..0000000
--- a/src/GSMSpecification.xml
+++ /dev/null
@@ -1,4685 +0,0 @@
-<gsm>
-<spec>
- <command>AT+CGMI</command>
- <profile>Request manufacturer identification </profile>
- <description>Execution command causes the TA to return one or more lines of information text [manufacturer], determined by the MT manufacturer, which is intended to permit the user of the TA to identify the manufacturer of the MT to which it is connected to. Typically, the text will consist of a single line containing the name of the manufacturer, but manufacturers may choose to provide more information if desired. Refer subclause 9.2 for possible [err] values.
-Defined values
-[manufacturer]: the total number of characters, including line terminators, in the information text shall not exceed 2048 characters.
-Text shall not contain the sequence 0[CR] or OK[CR]
-</description>
-</spec>
-<spec>
- <command>AT+CGMI=?</command>
- <profile>Request manufacturer identification (Query all)</profile>
- <description>Execution command causes the TA to return one or more lines of information text [manufacturer], determined by the MT manufacturer, which is intended to permit the user of the TA to identify the manufacturer of the MT to which it is connected to. Typically, the text will consist of a single line containing the name of the manufacturer, but manufacturers may choose to provide more information if desired. Refer subclause 9.2 for possible [err] values.
-Defined values
-[manufacturer]: the total number of characters, including line terminators, in the information text shall not exceed 2048 characters.
-Text shall not contain the sequence 0[CR] or OK[CR]
-</description>
-</spec>
-<spec>
- <command>AT+CGMM</command>
- <profile>Request model identification </profile>
- <description>Execution command causes the TA to return one or more lines of information text [model], determined by the MT manufacturer, which is intended to permit the user of the TA to identify the specific model of the MT to which it is connected to. Typically, the text will consist of a single line containing the name of the product, but manufacturers may choose to provide more information if desired. Refer to subclause 9.2 for possible [err] values.
-Defined values
-[model]: the total number of characters, including line terminators, in the information text shall not exceed 2048 characters.
-Text shall not contain the sequence 0[CR] or OK[CR]
-</description>
-</spec>
-<spec>
- <command>AT+CGMM=?</command>
- <profile>Request model identification (Query all)</profile>
- <description>Execution command causes the TA to return one or more lines of information text [model], determined by the MT manufacturer, which is intended to permit the user of the TA to identify the specific model of the MT to which it is connected to. Typically, the text will consist of a single line containing the name of the product, but manufacturers may choose to provide more information if desired. Refer to subclause 9.2 for possible [err] values.
-Defined values
-[model]: the total number of characters, including line terminators, in the information text shall not exceed 2048 characters.
-Text shall not contain the sequence 0[CR] or OK[CR]
-</description>
-</spec>
-<spec>
- <command>AT+CGMR</command>
- <profile>Request revision identification </profile>
- <description>Execution command causes the TA to return one or more lines of information text [revision], determined by the MT manufacturer, which is intended to permit the user of the TA to identify the version, revision level or date, or other pertinent information of the MT to which it is connected to. Typically, the text will consist of a single line containing the version of the product, but manufacturers may choose to provide more information if desired. Refer subclause 9.2 for possible [err] values.
-Defined values
-[revision]: the total number of characters, including line terminators, in the information text shall not exceed 2048 characters.
-Text shall not contain the sequence 0[CR] or OK[CR]
-</description>
-</spec>
-<spec>
- <command>AT+CGMR=?</command>
- <profile>Request revision identification (Query all)</profile>
- <description>Execution command causes the TA to return one or more lines of information text [revision], determined by the MT manufacturer, which is intended to permit the user of the TA to identify the version, revision level or date, or other pertinent information of the MT to which it is connected to. Typically, the text will consist of a single line containing the version of the product, but manufacturers may choose to provide more information if desired. Refer subclause 9.2 for possible [err] values.
-Defined values
-[revision]: the total number of characters, including line terminators, in the information text shall not exceed 2048 characters.
-Text shall not contain the sequence 0[CR] or OK[CR]
-</description>
-</spec>
-<spec>
- <command>AT+CGSN</command>
- <profile>Request product serial number identification </profile>
- <description>Execution command causes the TA to return one or more lines of information text [sn], determined by the MT manufacturer, which is intended to permit the user of the TA to identify the individual MT to which it is connected to. Typically, the text will consist of a single line containing the IMEI (International Mobile station Equipment Identity; refer 3GPP TS 23.003 [7]) number of the MT, but manufacturers may choose to provide more information if desired. Refer subclause 9.2 for possible [err] values.
-Defined values
-[sn]: the total number of characters, including line terminators, in the information text shall not exceed 2048 characters.
-Text shall not contain the sequence 0[CR] or OK[CR]
-</description>
-</spec>
-<spec>
- <command>AT+CGSN=?</command>
- <profile>Request product serial number identification (Query all)</profile>
- <description>Execution command causes the TA to return one or more lines of information text [sn], determined by the MT manufacturer, which is intended to permit the user of the TA to identify the individual MT to which it is connected to. Typically, the text will consist of a single line containing the IMEI (International Mobile station Equipment Identity; refer 3GPP TS 23.003 [7]) number of the MT, but manufacturers may choose to provide more information if desired. Refer subclause 9.2 for possible [err] values.
-Defined values
-[sn]: the total number of characters, including line terminators, in the information text shall not exceed 2048 characters.
-Text shall not contain the sequence 0[CR] or OK[CR]
-</description>
-</spec>
-<spec>
- <command>AT+CSCS=</command>
- <profile>Select TE character set (Assign)</profile>
- <description>Set command informs TA which character set [chset] is used by the TE. TA is then able to convert character strings correctly between TE and MT character sets.
-When TA‑TE interface is set to 8‑bit operation and used TE alphabet is 7‑bit, the highest bit shall be set to zero.
-NOTE 1: It is manufacturer specific how the internal alphabet of MT is converted to/from the TE alphabet.
-Read command shows current setting and test command displays conversion schemes implemented in the TA.
-Defined values
-[chset] (conversion schemes not listed here can be defined by manufacturers):
-'GSM' GSM 7 bit default alphabet (3GPP TS 23.038 [25]); this setting causes easily software flow control (XON/XOFF) problems.
-'HEX' Character strings consist only of hexadecimal numbers from 00 to FF; e.g. '032FE6' equals three 8-bit characters with decimal values 3, 47 and 230; no conversions to the original MT character set shall be done.
-NOTE 2: If MT is using GSM 7 bit default alphabet, its characters shall be padded with 8th bit (zero) before converting them to hexadecimal numbers (i.e. no SMS‑style packing of 7‑bit alphabet).
-'IRA' International reference alphabet (ITU‑T T.50 [13]).
-'PCCPxxx' PC character set Code Page xxx
-'PCDN' PC Danish/Norwegian character set
-'UCS2' 16-bit universal multiple-octet coded character set (ISO/IEC10646 [32]); UCS2 character strings are converted to hexadecimal numbers from 0000 to FFFF; e.g. '004100620063' equals three 16-bit characters with decimal values 65, 98 and 99.
-'UTF-8' Octet (8-bit) lossless encoding of UCS characters (RFC 3629 [69]); UTF-8 encodes each UCS character as a variable number of octets, where the number of octets depends on the integer value assigned to the UCS character. The input format shall be a stream of octets. It shall not be converted to hexadecimal numbers as in 'HEX' or 'UCS2'. This character set requires an 8-bit TA – TE interface.
-'8859-n' ISO 8859 Latin n (1‑6) character set
-'8859-C' ISO 8859 Latin/Cyrillic character set
-'8859-A' ISO 8859 Latin/Arabic character set
-'8859-G' ISO 8859 Latin/Greek character set
-'8859-H' ISO 8859 Latin/Hebrew character set
-</description>
-</spec>
-<spec>
- <command>AT+CSCS?</command>
- <profile>Select TE character set (Query)</profile>
- <description>Set command informs TA which character set [chset] is used by the TE. TA is then able to convert character strings correctly between TE and MT character sets.
-When TA‑TE interface is set to 8‑bit operation and used TE alphabet is 7‑bit, the highest bit shall be set to zero.
-NOTE 1: It is manufacturer specific how the internal alphabet of MT is converted to/from the TE alphabet.
-Read command shows current setting and test command displays conversion schemes implemented in the TA.
-Defined values
-[chset] (conversion schemes not listed here can be defined by manufacturers):
-'GSM' GSM 7 bit default alphabet (3GPP TS 23.038 [25]); this setting causes easily software flow control (XON/XOFF) problems.
-'HEX' Character strings consist only of hexadecimal numbers from 00 to FF; e.g. '032FE6' equals three 8-bit characters with decimal values 3, 47 and 230; no conversions to the original MT character set shall be done.
-NOTE 2: If MT is using GSM 7 bit default alphabet, its characters shall be padded with 8th bit (zero) before converting them to hexadecimal numbers (i.e. no SMS‑style packing of 7‑bit alphabet).
-'IRA' International reference alphabet (ITU‑T T.50 [13]).
-'PCCPxxx' PC character set Code Page xxx
-'PCDN' PC Danish/Norwegian character set
-'UCS2' 16-bit universal multiple-octet coded character set (ISO/IEC10646 [32]); UCS2 character strings are converted to hexadecimal numbers from 0000 to FFFF; e.g. '004100620063' equals three 16-bit characters with decimal values 65, 98 and 99.
-'UTF-8' Octet (8-bit) lossless encoding of UCS characters (RFC 3629 [69]); UTF-8 encodes each UCS character as a variable number of octets, where the number of octets depends on the integer value assigned to the UCS character. The input format shall be a stream of octets. It shall not be converted to hexadecimal numbers as in 'HEX' or 'UCS2'. This character set requires an 8-bit TA – TE interface.
-'8859-n' ISO 8859 Latin n (1‑6) character set
-'8859-C' ISO 8859 Latin/Cyrillic character set
-'8859-A' ISO 8859 Latin/Arabic character set
-'8859-G' ISO 8859 Latin/Greek character set
-'8859-H' ISO 8859 Latin/Hebrew character set
-</description>
-</spec>
-<spec>
- <command>AT+CSCS=?</command>
- <profile>Select TE character set (Query all)</profile>
- <description>Set command informs TA which character set [chset] is used by the TE. TA is then able to convert character strings correctly between TE and MT character sets.
-When TA‑TE interface is set to 8‑bit operation and used TE alphabet is 7‑bit, the highest bit shall be set to zero.
-NOTE 1: It is manufacturer specific how the internal alphabet of MT is converted to/from the TE alphabet.
-Read command shows current setting and test command displays conversion schemes implemented in the TA.
-Defined values
-[chset] (conversion schemes not listed here can be defined by manufacturers):
-'GSM' GSM 7 bit default alphabet (3GPP TS 23.038 [25]); this setting causes easily software flow control (XON/XOFF) problems.
-'HEX' Character strings consist only of hexadecimal numbers from 00 to FF; e.g. '032FE6' equals three 8-bit characters with decimal values 3, 47 and 230; no conversions to the original MT character set shall be done.
-NOTE 2: If MT is using GSM 7 bit default alphabet, its characters shall be padded with 8th bit (zero) before converting them to hexadecimal numbers (i.e. no SMS‑style packing of 7‑bit alphabet).
-'IRA' International reference alphabet (ITU‑T T.50 [13]).
-'PCCPxxx' PC character set Code Page xxx
-'PCDN' PC Danish/Norwegian character set
-'UCS2' 16-bit universal multiple-octet coded character set (ISO/IEC10646 [32]); UCS2 character strings are converted to hexadecimal numbers from 0000 to FFFF; e.g. '004100620063' equals three 16-bit characters with decimal values 65, 98 and 99.
-'UTF-8' Octet (8-bit) lossless encoding of UCS characters (RFC 3629 [69]); UTF-8 encodes each UCS character as a variable number of octets, where the number of octets depends on the integer value assigned to the UCS character. The input format shall be a stream of octets. It shall not be converted to hexadecimal numbers as in 'HEX' or 'UCS2'. This character set requires an 8-bit TA – TE interface.
-'8859-n' ISO 8859 Latin n (1‑6) character set
-'8859-C' ISO 8859 Latin/Cyrillic character set
-'8859-A' ISO 8859 Latin/Arabic character set
-'8859-G' ISO 8859 Latin/Greek character set
-'8859-H' ISO 8859 Latin/Hebrew character set
-</description>
-</spec>
-<spec>
- <command>AT+CIMI</command>
- <profile>Request international mobile subscriber identity </profile>
- <description>Execution command causes the TA to return [IMSI], which is intended to permit the TE to identify the individual SIM card or active application in the UICC (GSM or USIM) which is attached to MT. Refer subclause 9.2 for possible [err] values.
-Defined values
-[IMSI]: International Mobile Subscriber Identity (string without double quotes)
-</description>
-</spec>
-<spec>
- <command>AT+CIMI=?</command>
- <profile>Request international mobile subscriber identity (Query all)</profile>
- <description>Execution command causes the TA to return [IMSI], which is intended to permit the TE to identify the individual SIM card or active application in the UICC (GSM or USIM) which is attached to MT. Refer subclause 9.2 for possible [err] values.
-Defined values
-[IMSI]: International Mobile Subscriber Identity (string without double quotes)
-</description>
-</spec>
-<spec>
- <command>AT+CMUX=</command>
- <profile>Multiplexing mode (Assign)</profile>
- <description>This command is used to enable/disable the 3GPP TS 27.010 [45] multiplexing protocol control channel. Refer to subclause 9.2 for possible [err] values. The AT command sets parameters for the Control Channel. If the parameters are left out, the default value is used.
-Read command returns the current mode and the settings.
-Test command returns the supported modes and parameters.
-It is recommended that the MT/TA/TE should autobaud to the +CMUX command up to and including an interface speed of 9600 bits/s.
-The OK or +CME ERROR: [err] response is returned at the speed of the +CMUX command prior to entering [mode].
-It is recommended that whenever the multiplexer control channel is released the MT/TA/TE should assume an interface rate of up to and including 9600 bits/s for auto bauding purposes irrespective of any previous higher speed having been selected.
-If a +CMUX command is issued whilst in any multiplexer mode then that +CMUX command shall be ignored and the MT/TA shall return an +CME ERROR: [err] response.
-Defined values
-[operation] (multiplexer Transparency Mechanism)
-0 Basic option
-1 Advanced option
-[subset]:
- This parameter defines the way in which the multiplexer control channel is set up. A virtual channel may subsequently be set up differently but in the absence of any negotiation for the settings of a virtual channel, the virtual channel shall be set up according to the control channel [subset] setting.
-0 UIH frames used only
-1 UI frames used only
-2 I frames used only
-Default value: 0
-[port_speed] (transmission rate):
-1 9 600 bit/s
-2 19 200 bit/s
-3 38 400 bit/s
-4 57 600 bit/s
-5 115 200 bit/s
-6 230 400 bits/s
-[N1] (maximum frame size):
-1- 32768
-default Value : 31 (64 if Advanced option is used)
-[T1] (acknowledgement timer in units of ten milliseconds):
-1-255, where 10 is default (100 ms)
-[N2] (maximum number of re-transmissions):
-0-100, where 3 is default
-[T2] (response timer for the multiplexer control channel in units of ten milliseconds):
-2-255, where 30 is default (300 ms)
-NOTE: T2 must be longer than T1.
-[T3] (wake up response timer in seconds):
-1-255, where 10 is default
-[k] (window size, for Advanced operation with Error Recovery options):
-1-7, where 2 is default
-</description>
-</spec>
-<spec>
- <command>AT+CMUX?</command>
- <profile>Multiplexing mode (Query)</profile>
- <description>This command is used to enable/disable the 3GPP TS 27.010 [45] multiplexing protocol control channel. Refer to subclause 9.2 for possible [err] values. The AT command sets parameters for the Control Channel. If the parameters are left out, the default value is used.
-Read command returns the current mode and the settings.
-Test command returns the supported modes and parameters.
-It is recommended that the MT/TA/TE should autobaud to the +CMUX command up to and including an interface speed of 9600 bits/s.
-The OK or +CME ERROR: [err] response is returned at the speed of the +CMUX command prior to entering [mode].
-It is recommended that whenever the multiplexer control channel is released the MT/TA/TE should assume an interface rate of up to and including 9600 bits/s for auto bauding purposes irrespective of any previous higher speed having been selected.
-If a +CMUX command is issued whilst in any multiplexer mode then that +CMUX command shall be ignored and the MT/TA shall return an +CME ERROR: [err] response.
-Defined values
-[operation] (multiplexer Transparency Mechanism)
-0 Basic option
-1 Advanced option
-[subset]:
- This parameter defines the way in which the multiplexer control channel is set up. A virtual channel may subsequently be set up differently but in the absence of any negotiation for the settings of a virtual channel, the virtual channel shall be set up according to the control channel [subset] setting.
-0 UIH frames used only
-1 UI frames used only
-2 I frames used only
-Default value: 0
-[port_speed] (transmission rate):
-1 9 600 bit/s
-2 19 200 bit/s
-3 38 400 bit/s
-4 57 600 bit/s
-5 115 200 bit/s
-6 230 400 bits/s
-[N1] (maximum frame size):
-1- 32768
-default Value : 31 (64 if Advanced option is used)
-[T1] (acknowledgement timer in units of ten milliseconds):
-1-255, where 10 is default (100 ms)
-[N2] (maximum number of re-transmissions):
-0-100, where 3 is default
-[T2] (response timer for the multiplexer control channel in units of ten milliseconds):
-2-255, where 30 is default (300 ms)
-NOTE: T2 must be longer than T1.
-[T3] (wake up response timer in seconds):
-1-255, where 10 is default
-[k] (window size, for Advanced operation with Error Recovery options):
-1-7, where 2 is default
-</description>
-</spec>
-<spec>
- <command>AT+CMUX=?</command>
- <profile>Multiplexing mode (Query all)</profile>
- <description>This command is used to enable/disable the 3GPP TS 27.010 [45] multiplexing protocol control channel. Refer to subclause 9.2 for possible [err] values. The AT command sets parameters for the Control Channel. If the parameters are left out, the default value is used.
-Read command returns the current mode and the settings.
-Test command returns the supported modes and parameters.
-It is recommended that the MT/TA/TE should autobaud to the +CMUX command up to and including an interface speed of 9600 bits/s.
-The OK or +CME ERROR: [err] response is returned at the speed of the +CMUX command prior to entering [mode].
-It is recommended that whenever the multiplexer control channel is released the MT/TA/TE should assume an interface rate of up to and including 9600 bits/s for auto bauding purposes irrespective of any previous higher speed having been selected.
-If a +CMUX command is issued whilst in any multiplexer mode then that +CMUX command shall be ignored and the MT/TA shall return an +CME ERROR: [err] response.
-Defined values
-[operation] (multiplexer Transparency Mechanism)
-0 Basic option
-1 Advanced option
-[subset]:
- This parameter defines the way in which the multiplexer control channel is set up. A virtual channel may subsequently be set up differently but in the absence of any negotiation for the settings of a virtual channel, the virtual channel shall be set up according to the control channel [subset] setting.
-0 UIH frames used only
-1 UI frames used only
-2 I frames used only
-Default value: 0
-[port_speed] (transmission rate):
-1 9 600 bit/s
-2 19 200 bit/s
-3 38 400 bit/s
-4 57 600 bit/s
-5 115 200 bit/s
-6 230 400 bits/s
-[N1] (maximum frame size):
-1- 32768
-default Value : 31 (64 if Advanced option is used)
-[T1] (acknowledgement timer in units of ten milliseconds):
-1-255, where 10 is default (100 ms)
-[N2] (maximum number of re-transmissions):
-0-100, where 3 is default
-[T2] (response timer for the multiplexer control channel in units of ten milliseconds):
-2-255, where 30 is default (300 ms)
-NOTE: T2 must be longer than T1.
-[T3] (wake up response timer in seconds):
-1-255, where 10 is default
-[k] (window size, for Advanced operation with Error Recovery options):
-1-7, where 2 is default
-</description>
-</spec>
-<spec>
- <command>AT+CSTA=</command>
- <profile>Select type of address (Assign)</profile>
- <description>Set command selects the type of number for further dialling commands (D) according to GSM/UMTS specifications. Test command returns values supported a compound value.
-Defined values
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
-</description>
-</spec>
-<spec>
- <command>AT+CSTA?</command>
- <profile>Select type of address (Query)</profile>
- <description>Set command selects the type of number for further dialling commands (D) according to GSM/UMTS specifications. Test command returns values supported a compound value.
-Defined values
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
-</description>
-</spec>
-<spec>
- <command>AT+CSTA=?</command>
- <profile>Select type of address (Query all)</profile>
- <description>Set command selects the type of number for further dialling commands (D) according to GSM/UMTS specifications. Test command returns values supported a compound value.
-Defined values
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
-</description>
-</spec>
-<spec>
- <command>AT+CMOD=</command>
- <profile>Call mode (Assign)</profile>
- <description>Set command selects the call mode of further dialling commands (D) or for next answering command (A). Mode can be either single or alternating (in the present document, terms 'alternating mode' and 'alternating call' refer to all GSM/UMTS bearer and teleservices that incorporate more than one basic service (voice, data, fax) within one call). When single mode is selected the call originating and hangup procedures are similar to procedures specified in ITU‑T Recommendations V.250 [14], T.31 [11] and T.32 [12]. In GSM/UMTS there can be voice followed by data (refer 3GPP TS 22.002 [1]), alternating voice/data (refer 3GPP TS 22.002 [1]) and alternating voice/fax calls (refer 3GPP TS 22.003 [2]). Refer next two subclauses for alternating call control methods.
-Test command returns values supported as a compound value.
-NOTE: +CMOD shall be set to zero after a successfully completed alternating mode call. It shall be set to zero also after a failed answering. The power‑up, factory (:F) and user resets (Z) shall also set the value to zero. This reduces the possibility that alternating mode calls are originated or answered accidentally.
-Defined values
-[mode]:
-0 single mode
-1 alternating voice/fax (teleservice 61)
-2 alternating voice/data (bearer service 61)
-3 voice followed by data (bearer service 81)
-also all other values below 128 are reserved by the present document
-</description>
-</spec>
-<spec>
- <command>AT+CMOD?</command>
- <profile>Call mode (Query)</profile>
- <description>Set command selects the call mode of further dialling commands (D) or for next answering command (A). Mode can be either single or alternating (in the present document, terms 'alternating mode' and 'alternating call' refer to all GSM/UMTS bearer and teleservices that incorporate more than one basic service (voice, data, fax) within one call). When single mode is selected the call originating and hangup procedures are similar to procedures specified in ITU‑T Recommendations V.250 [14], T.31 [11] and T.32 [12]. In GSM/UMTS there can be voice followed by data (refer 3GPP TS 22.002 [1]), alternating voice/data (refer 3GPP TS 22.002 [1]) and alternating voice/fax calls (refer 3GPP TS 22.003 [2]). Refer next two subclauses for alternating call control methods.
-Test command returns values supported as a compound value.
-NOTE: +CMOD shall be set to zero after a successfully completed alternating mode call. It shall be set to zero also after a failed answering. The power‑up, factory (:F) and user resets (Z) shall also set the value to zero. This reduces the possibility that alternating mode calls are originated or answered accidentally.
-Defined values
-[mode]:
-0 single mode
-1 alternating voice/fax (teleservice 61)
-2 alternating voice/data (bearer service 61)
-3 voice followed by data (bearer service 81)
-also all other values below 128 are reserved by the present document
-</description>
-</spec>
-<spec>
- <command>AT+CMOD=?</command>
- <profile>Call mode (Query all)</profile>
- <description>Set command selects the call mode of further dialling commands (D) or for next answering command (A). Mode can be either single or alternating (in the present document, terms 'alternating mode' and 'alternating call' refer to all GSM/UMTS bearer and teleservices that incorporate more than one basic service (voice, data, fax) within one call). When single mode is selected the call originating and hangup procedures are similar to procedures specified in ITU‑T Recommendations V.250 [14], T.31 [11] and T.32 [12]. In GSM/UMTS there can be voice followed by data (refer 3GPP TS 22.002 [1]), alternating voice/data (refer 3GPP TS 22.002 [1]) and alternating voice/fax calls (refer 3GPP TS 22.003 [2]). Refer next two subclauses for alternating call control methods.
-Test command returns values supported as a compound value.
-NOTE: +CMOD shall be set to zero after a successfully completed alternating mode call. It shall be set to zero also after a failed answering. The power‑up, factory (:F) and user resets (Z) shall also set the value to zero. This reduces the possibility that alternating mode calls are originated or answered accidentally.
-Defined values
-[mode]:
-0 single mode
-1 alternating voice/fax (teleservice 61)
-2 alternating voice/data (bearer service 61)
-3 voice followed by data (bearer service 81)
-also all other values below 128 are reserved by the present document
-</description>
-</spec>
-<spec>
- <command>AT+CHUP</command>
- <profile>Hangup call </profile>
- <description>Execution command causes the TA to hangup the current GSM/UMTS call of the MT.
-NOTE: The purpose of this command is not to replace the V.250 [14] command H, but to give an assured procedure to terminate an alternating mode call. Refer next subclause.
-</description>
-</spec>
-<spec>
- <command>AT+CHUP=?</command>
- <profile>Hangup call (Query all)</profile>
- <description>Execution command causes the TA to hangup the current GSM/UMTS call of the MT.
-NOTE: The purpose of this command is not to replace the V.250 [14] command H, but to give an assured procedure to terminate an alternating mode call. Refer next subclause.
-</description>
-</spec>
-<spec>
- <command>AT+CBST=</command>
- <profile>Select bearer service type (Assign)</profile>
- <description>Set command selects the bearer service [name] with data rate [speed], and the connection element [ce] to be used when data calls are originated (refer 3GPP TS 22.002 [1]). Values may also be used during mobile terminated data call setup, especially in case of single numbering scheme calls (refer +CSNS).
-Test command returns values supported as compound values.
-Defined values
-NOTE: The default values of the subparameters are manufacturer specific since they depend on the purpose of the device and data services provided by it. Not all combinations of these subparameters are supported by GSM/UMTS (refer 3GPP TS 22.002 [1]).
-[speed]:
-0 autobauding (automatic selection of the speed; this setting is possible in case of 3.1 kHz modem and non-transparent service)
-1 300 bps (V.21)
-2 1200 bps (V.22)
-3 1200/75 bps (V.23)
-4 2400 bps (V.22bis)
-5 2400 bps (V.26ter)
-6 4800 bps (V.32)
-7 9600 bps (V.32)
-12 9600 bps (V.34)
-14 14400 bps (V.34)
-15 19200 bps (V.34)
-16 28800 bps (V.34)
-17 33600 bps (V.34)
-34 1200 bps (V.120)
-36 2400 bps (V.120)
-38 4800 bps (V.120)
-39 9600 bps (V.120)
-43 14400 bps (V.120)
-47 19200 bps (V.120)
-48 28800 bps (V.120)
-49 38400 bps (V.120)
-50 48000 bps (V.120)
-51 56000 bps (V.120)
-65 300 bps (V.110)
-66 1200 bps (V.110)
-68 2400 bps (V.110 or X.31 flag stuffing)
-70 4800 bps (V.110 or X.31 flag stuffing)
-71 9600 bps (V.110 or X.31 flag stuffing)
-75 14400 bps (V.110 or X.31 flag stuffing)
-79 19200 bps (V.110 or X.31 flag stuffing)
-80 28800 bps (V.110 or X.31 flag stuffing)
-81 38400 bps (V.110 or X.31 flag stuffing)
-82 48000 bps (V.110 or X.31 flag stuffing)
-83 56000 bps (V.110 or X.31 flag stuffing; this setting can be used in conjunction with asynchronous non-transparent UDI or RDI service in order to get FTM)
-84 64000 bps (X.31 flag stuffing; this setting can be used in conjunction with asynchronous non-transparent UDI service in order to get FTM)
-115 56000 bps (bit transparent)
-116 64000 bps (bit transparent)
-120 32000 bps (PIAFS32k)
-121 64000 bps (PIAFS64k)
-130 28800 bps (multimedia)
-131 32000 bps (multimedia)
-132 33600 bps (multimedia)
-133 56000 bps (multimedia)
-134 64000 bps (multimedia)
-
-also all other values below 128 are reserved by the present document.
-[name]:
-0 data circuit asynchronous (UDI or 3.1 kHz modem)
-1 data circuit synchronous (UDI or 3.1 kHz modem)
-2 PAD Access (asynchronous) (UDI)
-3 Packet Access (synchronous) (UDI)
-4 data circuit asynchronous (RDI)
-5 data circuit synchronous (RDI)
-6 PAD Access (asynchronous) (RDI)
-7 Packet Access (synchronous) (RDI)
-also all other values below 128 are reserved by the present document.
-[ce]:
-0 transparent
-1 non-transparent
-2 both, transparent preferred
-3 both, non-transparent preferred
-</description>
-</spec>
-<spec>
- <command>AT+CBST?</command>
- <profile>Select bearer service type (Query)</profile>
- <description>Set command selects the bearer service [name] with data rate [speed], and the connection element [ce] to be used when data calls are originated (refer 3GPP TS 22.002 [1]). Values may also be used during mobile terminated data call setup, especially in case of single numbering scheme calls (refer +CSNS).
-Test command returns values supported as compound values.
-Defined values
-NOTE: The default values of the subparameters are manufacturer specific since they depend on the purpose of the device and data services provided by it. Not all combinations of these subparameters are supported by GSM/UMTS (refer 3GPP TS 22.002 [1]).
-[speed]:
-0 autobauding (automatic selection of the speed; this setting is possible in case of 3.1 kHz modem and non-transparent service)
-1 300 bps (V.21)
-2 1200 bps (V.22)
-3 1200/75 bps (V.23)
-4 2400 bps (V.22bis)
-5 2400 bps (V.26ter)
-6 4800 bps (V.32)
-7 9600 bps (V.32)
-12 9600 bps (V.34)
-14 14400 bps (V.34)
-15 19200 bps (V.34)
-16 28800 bps (V.34)
-17 33600 bps (V.34)
-34 1200 bps (V.120)
-36 2400 bps (V.120)
-38 4800 bps (V.120)
-39 9600 bps (V.120)
-43 14400 bps (V.120)
-47 19200 bps (V.120)
-48 28800 bps (V.120)
-49 38400 bps (V.120)
-50 48000 bps (V.120)
-51 56000 bps (V.120)
-65 300 bps (V.110)
-66 1200 bps (V.110)
-68 2400 bps (V.110 or X.31 flag stuffing)
-70 4800 bps (V.110 or X.31 flag stuffing)
-71 9600 bps (V.110 or X.31 flag stuffing)
-75 14400 bps (V.110 or X.31 flag stuffing)
-79 19200 bps (V.110 or X.31 flag stuffing)
-80 28800 bps (V.110 or X.31 flag stuffing)
-81 38400 bps (V.110 or X.31 flag stuffing)
-82 48000 bps (V.110 or X.31 flag stuffing)
-83 56000 bps (V.110 or X.31 flag stuffing; this setting can be used in conjunction with asynchronous non-transparent UDI or RDI service in order to get FTM)
-84 64000 bps (X.31 flag stuffing; this setting can be used in conjunction with asynchronous non-transparent UDI service in order to get FTM)
-115 56000 bps (bit transparent)
-116 64000 bps (bit transparent)
-120 32000 bps (PIAFS32k)
-121 64000 bps (PIAFS64k)
-130 28800 bps (multimedia)
-131 32000 bps (multimedia)
-132 33600 bps (multimedia)
-133 56000 bps (multimedia)
-134 64000 bps (multimedia)
-
-also all other values below 128 are reserved by the present document.
-[name]:
-0 data circuit asynchronous (UDI or 3.1 kHz modem)
-1 data circuit synchronous (UDI or 3.1 kHz modem)
-2 PAD Access (asynchronous) (UDI)
-3 Packet Access (synchronous) (UDI)
-4 data circuit asynchronous (RDI)
-5 data circuit synchronous (RDI)
-6 PAD Access (asynchronous) (RDI)
-7 Packet Access (synchronous) (RDI)
-also all other values below 128 are reserved by the present document.
-[ce]:
-0 transparent
-1 non-transparent
-2 both, transparent preferred
-3 both, non-transparent preferred
-</description>
-</spec>
-<spec>
- <command>AT+CBST=?</command>
- <profile>Select bearer service type (Query all)</profile>
- <description>Set command selects the bearer service [name] with data rate [speed], and the connection element [ce] to be used when data calls are originated (refer 3GPP TS 22.002 [1]). Values may also be used during mobile terminated data call setup, especially in case of single numbering scheme calls (refer +CSNS).
-Test command returns values supported as compound values.
-Defined values
-NOTE: The default values of the subparameters are manufacturer specific since they depend on the purpose of the device and data services provided by it. Not all combinations of these subparameters are supported by GSM/UMTS (refer 3GPP TS 22.002 [1]).
-[speed]:
-0 autobauding (automatic selection of the speed; this setting is possible in case of 3.1 kHz modem and non-transparent service)
-1 300 bps (V.21)
-2 1200 bps (V.22)
-3 1200/75 bps (V.23)
-4 2400 bps (V.22bis)
-5 2400 bps (V.26ter)
-6 4800 bps (V.32)
-7 9600 bps (V.32)
-12 9600 bps (V.34)
-14 14400 bps (V.34)
-15 19200 bps (V.34)
-16 28800 bps (V.34)
-17 33600 bps (V.34)
-34 1200 bps (V.120)
-36 2400 bps (V.120)
-38 4800 bps (V.120)
-39 9600 bps (V.120)
-43 14400 bps (V.120)
-47 19200 bps (V.120)
-48 28800 bps (V.120)
-49 38400 bps (V.120)
-50 48000 bps (V.120)
-51 56000 bps (V.120)
-65 300 bps (V.110)
-66 1200 bps (V.110)
-68 2400 bps (V.110 or X.31 flag stuffing)
-70 4800 bps (V.110 or X.31 flag stuffing)
-71 9600 bps (V.110 or X.31 flag stuffing)
-75 14400 bps (V.110 or X.31 flag stuffing)
-79 19200 bps (V.110 or X.31 flag stuffing)
-80 28800 bps (V.110 or X.31 flag stuffing)
-81 38400 bps (V.110 or X.31 flag stuffing)
-82 48000 bps (V.110 or X.31 flag stuffing)
-83 56000 bps (V.110 or X.31 flag stuffing; this setting can be used in conjunction with asynchronous non-transparent UDI or RDI service in order to get FTM)
-84 64000 bps (X.31 flag stuffing; this setting can be used in conjunction with asynchronous non-transparent UDI service in order to get FTM)
-115 56000 bps (bit transparent)
-116 64000 bps (bit transparent)
-120 32000 bps (PIAFS32k)
-121 64000 bps (PIAFS64k)
-130 28800 bps (multimedia)
-131 32000 bps (multimedia)
-132 33600 bps (multimedia)
-133 56000 bps (multimedia)
-134 64000 bps (multimedia)
-
-also all other values below 128 are reserved by the present document.
-[name]:
-0 data circuit asynchronous (UDI or 3.1 kHz modem)
-1 data circuit synchronous (UDI or 3.1 kHz modem)
-2 PAD Access (asynchronous) (UDI)
-3 Packet Access (synchronous) (UDI)
-4 data circuit asynchronous (RDI)
-5 data circuit synchronous (RDI)
-6 PAD Access (asynchronous) (RDI)
-7 Packet Access (synchronous) (RDI)
-also all other values below 128 are reserved by the present document.
-[ce]:
-0 transparent
-1 non-transparent
-2 both, transparent preferred
-3 both, non-transparent preferred
-</description>
-</spec>
-<spec>
- <command>AT+CRLP=</command>
- <profile>Radio link protocol (Assign)</profile>
- <description>Radio link protocol (RLP) parameters used when non-transparent data calls are originated may be altered with set command. Available command subparameters depend on the RLP versions implemented by the device (e.g. [ver] may not be available if device supports only versions 0 and 1).
-NOTE 1: If radio link protocol is not used, but some other error correcting protocol (for transparent data calls), V.250 [14] Error Control Selection test command +ES=? may be used to indicate the presence of the protocol.
-Read command returns current settings for each supported RLP version [verx]. Only RLP parameters applicable to the corresponding [verx] are returned.
-Test command returns values supported as a compound value. If MT/TA supports several RLP versions [verx], the RLP parameter value ranges for each [verx] are returned in a separate line.
-Defined values
-[ver], [verx]: RLP version number in integer format; when version indication is not present it shall equal 0
-NOTE 2: Versions 0 and 1 share the same parameter set. Read and test commands shall return only one line for this set (where [verx] is not present).
-[iws], [mws], [T1], [N2], [T4]: IWF to MS window size, MS to IWF window size, acknowledgement timer T1, retransmission attempts N2, re-sequencing period T4 in integer format (default values and value ranges depend on RLP version; refer 3GPP TS 24.022 [18]): T1 and T4 are in units of 10 ms.
-</description>
-</spec>
-<spec>
- <command>AT+CRLP?</command>
- <profile>Radio link protocol (Query)</profile>
- <description>Radio link protocol (RLP) parameters used when non-transparent data calls are originated may be altered with set command. Available command subparameters depend on the RLP versions implemented by the device (e.g. [ver] may not be available if device supports only versions 0 and 1).
-NOTE 1: If radio link protocol is not used, but some other error correcting protocol (for transparent data calls), V.250 [14] Error Control Selection test command +ES=? may be used to indicate the presence of the protocol.
-Read command returns current settings for each supported RLP version [verx]. Only RLP parameters applicable to the corresponding [verx] are returned.
-Test command returns values supported as a compound value. If MT/TA supports several RLP versions [verx], the RLP parameter value ranges for each [verx] are returned in a separate line.
-Defined values
-[ver], [verx]: RLP version number in integer format; when version indication is not present it shall equal 0
-NOTE 2: Versions 0 and 1 share the same parameter set. Read and test commands shall return only one line for this set (where [verx] is not present).
-[iws], [mws], [T1], [N2], [T4]: IWF to MS window size, MS to IWF window size, acknowledgement timer T1, retransmission attempts N2, re-sequencing period T4 in integer format (default values and value ranges depend on RLP version; refer 3GPP TS 24.022 [18]): T1 and T4 are in units of 10 ms.
-</description>
-</spec>
-<spec>
- <command>AT+CRLP=?</command>
- <profile>Radio link protocol (Query all)</profile>
- <description>Radio link protocol (RLP) parameters used when non-transparent data calls are originated may be altered with set command. Available command subparameters depend on the RLP versions implemented by the device (e.g. [ver] may not be available if device supports only versions 0 and 1).
-NOTE 1: If radio link protocol is not used, but some other error correcting protocol (for transparent data calls), V.250 [14] Error Control Selection test command +ES=? may be used to indicate the presence of the protocol.
-Read command returns current settings for each supported RLP version [verx]. Only RLP parameters applicable to the corresponding [verx] are returned.
-Test command returns values supported as a compound value. If MT/TA supports several RLP versions [verx], the RLP parameter value ranges for each [verx] are returned in a separate line.
-Defined values
-[ver], [verx]: RLP version number in integer format; when version indication is not present it shall equal 0
-NOTE 2: Versions 0 and 1 share the same parameter set. Read and test commands shall return only one line for this set (where [verx] is not present).
-[iws], [mws], [T1], [N2], [T4]: IWF to MS window size, MS to IWF window size, acknowledgement timer T1, retransmission attempts N2, re-sequencing period T4 in integer format (default values and value ranges depend on RLP version; refer 3GPP TS 24.022 [18]): T1 and T4 are in units of 10 ms.
-</description>
-</spec>
-<spec>
- <command>AT+CR=</command>
- <profile>Service reporting control (Assign)</profile>
- <description>Set command controls whether or not intermediate result code +CR: [serv] is returned from the TA to the TE. If enabled, the intermediate result code is transmitted at the point during connect negotiation at which the TA has determined which speed and quality of service will be used, before any error control or data compression reports are transmitted, and before the intermediate result code CONNECT is transmitted.
-NOTE: This command replaces V.250 [14] command Modulation Reporting Control +MR, which is not appropriate for use in the GSM/UMTS network. Possible error control (other than radio link protocol) and data compression reporting can be enabled with V.250 commands Error Control Reporting +ER and Data Compression Reporting +DR.
-Test command returns values supported as a compound value.
-Defined values
-[mode]:
-0 disables reporting
-1 enables reporting
-[serv]:
-ASYNC asynchronous transparent
-SYNC synchronous transparent
-REL ASYNC asynchronous non‑transparent
-REL SYNC synchronous non‑transparent
-GPRS [[L2P]] GPRS
-The optional [L2P] proposes a layer 2 protocol to use between the MT and the TE. It is defined in the Enter GPRS Data Mode (+CGDATA) command.
-</description>
-</spec>
-<spec>
- <command>AT+CR?</command>
- <profile>Service reporting control (Query)</profile>
- <description>Set command controls whether or not intermediate result code +CR: [serv] is returned from the TA to the TE. If enabled, the intermediate result code is transmitted at the point during connect negotiation at which the TA has determined which speed and quality of service will be used, before any error control or data compression reports are transmitted, and before the intermediate result code CONNECT is transmitted.
-NOTE: This command replaces V.250 [14] command Modulation Reporting Control +MR, which is not appropriate for use in the GSM/UMTS network. Possible error control (other than radio link protocol) and data compression reporting can be enabled with V.250 commands Error Control Reporting +ER and Data Compression Reporting +DR.
-Test command returns values supported as a compound value.
-Defined values
-[mode]:
-0 disables reporting
-1 enables reporting
-[serv]:
-ASYNC asynchronous transparent
-SYNC synchronous transparent
-REL ASYNC asynchronous non‑transparent
-REL SYNC synchronous non‑transparent
-GPRS [[L2P]] GPRS
-The optional [L2P] proposes a layer 2 protocol to use between the MT and the TE. It is defined in the Enter GPRS Data Mode (+CGDATA) command.
-</description>
-</spec>
-<spec>
- <command>AT+CR=?</command>
- <profile>Service reporting control (Query all)</profile>
- <description>Set command controls whether or not intermediate result code +CR: [serv] is returned from the TA to the TE. If enabled, the intermediate result code is transmitted at the point during connect negotiation at which the TA has determined which speed and quality of service will be used, before any error control or data compression reports are transmitted, and before the intermediate result code CONNECT is transmitted.
-NOTE: This command replaces V.250 [14] command Modulation Reporting Control +MR, which is not appropriate for use in the GSM/UMTS network. Possible error control (other than radio link protocol) and data compression reporting can be enabled with V.250 commands Error Control Reporting +ER and Data Compression Reporting +DR.
-Test command returns values supported as a compound value.
-Defined values
-[mode]:
-0 disables reporting
-1 enables reporting
-[serv]:
-ASYNC asynchronous transparent
-SYNC synchronous transparent
-REL ASYNC asynchronous non‑transparent
-REL SYNC synchronous non‑transparent
-GPRS [[L2P]] GPRS
-The optional [L2P] proposes a layer 2 protocol to use between the MT and the TE. It is defined in the Enter GPRS Data Mode (+CGDATA) command.
-</description>
-</spec>
-<spec>
- <command>AT+CEER</command>
- <profile>Extended error report </profile>
- <description>Execution command causes the TA to return one or more lines of information text [report], determined by the MT manufacturer, which should offer the user of the TA an extended report of the reason for
-- the failure in the last unsuccessful call setup (originating or answering) or in‑call modification;
-- the last call release;
-- the last unsuccessful GPRS attach or unsuccessful PDP context activation;
-- the last GPRS detach or PDP context deactivation.
-Typically, the text will consist of a single line containing the cause information given by GSM/UMTS network in textual format.
-Defined values
-[report]: the total number of characters, including line terminators, in the information text shall not exceed 2041 characters.
-Text shall not contain the sequence 0[CR] or OK[CR].
-</description>
-</spec>
-<spec>
- <command>AT+CEER=?</command>
- <profile>Extended error report (Query all)</profile>
- <description>Execution command causes the TA to return one or more lines of information text [report], determined by the MT manufacturer, which should offer the user of the TA an extended report of the reason for
-- the failure in the last unsuccessful call setup (originating or answering) or in‑call modification;
-- the last call release;
-- the last unsuccessful GPRS attach or unsuccessful PDP context activation;
-- the last GPRS detach or PDP context deactivation.
-Typically, the text will consist of a single line containing the cause information given by GSM/UMTS network in textual format.
-Defined values
-[report]: the total number of characters, including line terminators, in the information text shall not exceed 2041 characters.
-Text shall not contain the sequence 0[CR] or OK[CR].
-</description>
-</spec>
-<spec>
- <command>AT+CRC=</command>
- <profile>Cellular result codes (Assign)</profile>
- <description>Set command controls whether or not the extended format of incoming call indication or GPRS network request for PDP context activation or notification for VBS/VGCS calls is used. When enabled, an incoming call is indicated to the TE with unsolicited result code +CRING: [type] instead of the normal RING.
-Test command returns values supported as a compound value.
-NOTE: Similar command may be found in TIA IS‑99 [15] and TIA IS‑135 [16].
-Defined values
-[mode]:
-0 disables extended format
-1 enables extended format
-[type]:
-ASYNC [,[priority][,[subaddr],[satype]]] asynchronous transparent
-SYNC [,[priority][,[subaddr],[satype]]] synchronous transparent
-REL ASYNC [,[priority][,[subaddr],[satype]]] asynchronous non‑transparent
-REL SYNC [,[priority][,[subaddr],[satype]]] synchronous non‑transparent
-FAX [,[priority][,[subaddr],[satype]]] facsimile (TS 62)
-VOICE [,[priority][,[subaddr],[satype]]] normal voice (TS 11)
-VOICE/XXX [,[priority][,[subaddr],[satype]]] voice followed by data (BS 81) (XXX is ASYNC, SYNC, REL ASYNC or REL SYNC)
-ALT VOICE/XXX [,[priority][,[subaddr],[satype]]] alternating voice/data, voice first (BS 61)
-ALT XXX/VOICE [,[priority][,[subaddr],[satype]]] alternating voice/data, data first (BS 61)
-ALT VOICE/FAX [,[priority][,[subaddr],[satype]]] alternating voice/fax, voice first (TS 61)
-ALT FAX/VOICE [,[priority][,[subaddr],[satype]]] alternating voice/fax, fax first (TS 61)
-GPRS [PDP_type], [PDP_addr][, [[L2P]][,[APN]]] GPRS network request for PDP context activation
-VGC [GCA], [GId], [ackflag] [,[priority]] voice group call (TS 91)
-VBC [GCA], [GId], [ackflag] [,[priority]] voice broadcast call (TS 92)
-The optional [priority] indicates the eMLPP priority level of the incoming call by paging, notification or setup message. The priority level values are as defined in eMLPP specification 3GPP TS 22.067 [54].
-[subaddr]: string type subaddress of format specified by [satype]
-[satype]: type of subaddress octet in integer format (refer 3GPP TS 24.008 [8] subclause 10.5.4.8)
-[PDP_type] ,[PDP_addr] and [APN] are as defined in the Define PDP Context (+CGDCONT) command. The optional [L2P] proposes a layer 2 protocol to use between the MT and the TE. It is defined in the Enter GPRS Data Mode (+CGDATA) command. If the MT is unable to announce to the TE the network's request (for example it is in V.250 online data state) the MT shall reject the request. No corresponding unsolicited result code shall be issued when the MT returns to a command state.
-[GCA] is a part of the group call reference as specified in 3GPP TS 23.003 [7] and indicates group call area.
-[GId] is a part of the group call reference as specified in 3GPP TS 23.003 [7] and indicates group call identification.The [ackflag]=1 proposes that a predefined confirmation procedure is to be used after the call is ended. For [ackflag]=0 no confirmation procedure is required.
-</description>
-</spec>
-<spec>
- <command>AT+CRC?</command>
- <profile>Cellular result codes (Query)</profile>
- <description>Set command controls whether or not the extended format of incoming call indication or GPRS network request for PDP context activation or notification for VBS/VGCS calls is used. When enabled, an incoming call is indicated to the TE with unsolicited result code +CRING: [type] instead of the normal RING.
-Test command returns values supported as a compound value.
-NOTE: Similar command may be found in TIA IS‑99 [15] and TIA IS‑135 [16].
-Defined values
-[mode]:
-0 disables extended format
-1 enables extended format
-[type]:
-ASYNC [,[priority][,[subaddr],[satype]]] asynchronous transparent
-SYNC [,[priority][,[subaddr],[satype]]] synchronous transparent
-REL ASYNC [,[priority][,[subaddr],[satype]]] asynchronous non‑transparent
-REL SYNC [,[priority][,[subaddr],[satype]]] synchronous non‑transparent
-FAX [,[priority][,[subaddr],[satype]]] facsimile (TS 62)
-VOICE [,[priority][,[subaddr],[satype]]] normal voice (TS 11)
-VOICE/XXX [,[priority][,[subaddr],[satype]]] voice followed by data (BS 81) (XXX is ASYNC, SYNC, REL ASYNC or REL SYNC)
-ALT VOICE/XXX [,[priority][,[subaddr],[satype]]] alternating voice/data, voice first (BS 61)
-ALT XXX/VOICE [,[priority][,[subaddr],[satype]]] alternating voice/data, data first (BS 61)
-ALT VOICE/FAX [,[priority][,[subaddr],[satype]]] alternating voice/fax, voice first (TS 61)
-ALT FAX/VOICE [,[priority][,[subaddr],[satype]]] alternating voice/fax, fax first (TS 61)
-GPRS [PDP_type], [PDP_addr][, [[L2P]][,[APN]]] GPRS network request for PDP context activation
-VGC [GCA], [GId], [ackflag] [,[priority]] voice group call (TS 91)
-VBC [GCA], [GId], [ackflag] [,[priority]] voice broadcast call (TS 92)
-The optional [priority] indicates the eMLPP priority level of the incoming call by paging, notification or setup message. The priority level values are as defined in eMLPP specification 3GPP TS 22.067 [54].
-[subaddr]: string type subaddress of format specified by [satype]
-[satype]: type of subaddress octet in integer format (refer 3GPP TS 24.008 [8] subclause 10.5.4.8)
-[PDP_type] ,[PDP_addr] and [APN] are as defined in the Define PDP Context (+CGDCONT) command. The optional [L2P] proposes a layer 2 protocol to use between the MT and the TE. It is defined in the Enter GPRS Data Mode (+CGDATA) command. If the MT is unable to announce to the TE the network's request (for example it is in V.250 online data state) the MT shall reject the request. No corresponding unsolicited result code shall be issued when the MT returns to a command state.
-[GCA] is a part of the group call reference as specified in 3GPP TS 23.003 [7] and indicates group call area.
-[GId] is a part of the group call reference as specified in 3GPP TS 23.003 [7] and indicates group call identification.The [ackflag]=1 proposes that a predefined confirmation procedure is to be used after the call is ended. For [ackflag]=0 no confirmation procedure is required.
-</description>
-</spec>
-<spec>
- <command>AT+CRC=?</command>
- <profile>Cellular result codes (Query all)</profile>
- <description>Set command controls whether or not the extended format of incoming call indication or GPRS network request for PDP context activation or notification for VBS/VGCS calls is used. When enabled, an incoming call is indicated to the TE with unsolicited result code +CRING: [type] instead of the normal RING.
-Test command returns values supported as a compound value.
-NOTE: Similar command may be found in TIA IS‑99 [15] and TIA IS‑135 [16].
-Defined values
-[mode]:
-0 disables extended format
-1 enables extended format
-[type]:
-ASYNC [,[priority][,[subaddr],[satype]]] asynchronous transparent
-SYNC [,[priority][,[subaddr],[satype]]] synchronous transparent
-REL ASYNC [,[priority][,[subaddr],[satype]]] asynchronous non‑transparent
-REL SYNC [,[priority][,[subaddr],[satype]]] synchronous non‑transparent
-FAX [,[priority][,[subaddr],[satype]]] facsimile (TS 62)
-VOICE [,[priority][,[subaddr],[satype]]] normal voice (TS 11)
-VOICE/XXX [,[priority][,[subaddr],[satype]]] voice followed by data (BS 81) (XXX is ASYNC, SYNC, REL ASYNC or REL SYNC)
-ALT VOICE/XXX [,[priority][,[subaddr],[satype]]] alternating voice/data, voice first (BS 61)
-ALT XXX/VOICE [,[priority][,[subaddr],[satype]]] alternating voice/data, data first (BS 61)
-ALT VOICE/FAX [,[priority][,[subaddr],[satype]]] alternating voice/fax, voice first (TS 61)
-ALT FAX/VOICE [,[priority][,[subaddr],[satype]]] alternating voice/fax, fax first (TS 61)
-GPRS [PDP_type], [PDP_addr][, [[L2P]][,[APN]]] GPRS network request for PDP context activation
-VGC [GCA], [GId], [ackflag] [,[priority]] voice group call (TS 91)
-VBC [GCA], [GId], [ackflag] [,[priority]] voice broadcast call (TS 92)
-The optional [priority] indicates the eMLPP priority level of the incoming call by paging, notification or setup message. The priority level values are as defined in eMLPP specification 3GPP TS 22.067 [54].
-[subaddr]: string type subaddress of format specified by [satype]
-[satype]: type of subaddress octet in integer format (refer 3GPP TS 24.008 [8] subclause 10.5.4.8)
-[PDP_type] ,[PDP_addr] and [APN] are as defined in the Define PDP Context (+CGDCONT) command. The optional [L2P] proposes a layer 2 protocol to use between the MT and the TE. It is defined in the Enter GPRS Data Mode (+CGDATA) command. If the MT is unable to announce to the TE the network's request (for example it is in V.250 online data state) the MT shall reject the request. No corresponding unsolicited result code shall be issued when the MT returns to a command state.
-[GCA] is a part of the group call reference as specified in 3GPP TS 23.003 [7] and indicates group call area.
-[GId] is a part of the group call reference as specified in 3GPP TS 23.003 [7] and indicates group call identification.The [ackflag]=1 proposes that a predefined confirmation procedure is to be used after the call is ended. For [ackflag]=0 no confirmation procedure is required.
-</description>
-</spec>
-<spec>
- <command>AT+CHSD</command>
- <profile>HSCSD device parameters </profile>
- <description>Execution command returns information about HSCSD features (refer 3GPP TS 22.034 [29]) supported by the MT/TA. Refer subclause 9.2 for possible [err] values.
-The return information is only applicable in GERAN.
-Defined values
-[mclass]: integer type; multislot class
-[maxRx]: integer type; maximum number of receive timeslots that MT can use
-[maxTx]: integer type; maximum number of transmit timeslots that MT can use
-[sum]: integer type; total number of receive and transmit timeslots that MT can use at the same time (per TDMA frame). The following applies in a HSCSD call: 1 (receive slots) + (transmit slots) [sum]
-[codings] is a sum of integers each representing a supported channel coding (e.g. value 5 indicates that 4,8k and 9,6k channel codings are supported):
-1 4,8k full rate data traffic channel
-4 9,6k full rate data traffic channel
-8 14,4k full rate data traffic channel
-16 28,8k full rate data traffic channel (only possible when 14.4k is supported)
-32 32,0k full rate data traffic channel (only possible in a two-timeslot configuration)
-64 43,2k full rate data traffic channel (only possible when 14.4k is supported)
-</description>
-</spec>
-<spec>
- <command>AT+CHSD=?</command>
- <profile>HSCSD device parameters (Query all)</profile>
- <description>Execution command returns information about HSCSD features (refer 3GPP TS 22.034 [29]) supported by the MT/TA. Refer subclause 9.2 for possible [err] values.
-The return information is only applicable in GERAN.
-Defined values
-[mclass]: integer type; multislot class
-[maxRx]: integer type; maximum number of receive timeslots that MT can use
-[maxTx]: integer type; maximum number of transmit timeslots that MT can use
-[sum]: integer type; total number of receive and transmit timeslots that MT can use at the same time (per TDMA frame). The following applies in a HSCSD call: 1 (receive slots) + (transmit slots) [sum]
-[codings] is a sum of integers each representing a supported channel coding (e.g. value 5 indicates that 4,8k and 9,6k channel codings are supported):
-1 4,8k full rate data traffic channel
-4 9,6k full rate data traffic channel
-8 14,4k full rate data traffic channel
-16 28,8k full rate data traffic channel (only possible when 14.4k is supported)
-32 32,0k full rate data traffic channel (only possible in a two-timeslot configuration)
-64 43,2k full rate data traffic channel (only possible when 14.4k is supported)
-</description>
-</spec>
-<spec>
- <command>AT+CHST=</command>
- <profile>HSCSD transparent call configuration (Assign)</profile>
- <description>Set command controls parameters for transparent HSCSD calls in GERAN. Changing them during a call does not affect the current call.
-NOTE: In UTRAN, values set with this command are not needed. The only applicable parameter is [SPEED], which is set with +CBST command.
-Defined values
-[wRx]: integer type; wanted amount of receive timeslots. Default value 0 indicates that TA shall calculate a proper value from currently selected fixed network user rate ([speed] subparameter from +CBST command) and [codings]
-[codings]: a sum of integers each representing a channel coding that is accepted for transparent HSCSD calls. Default value 0 indicates that all supported codings are accepted (refer +CHSD command for other values)
-</description>
-</spec>
-<spec>
- <command>AT+CHST?</command>
- <profile>HSCSD transparent call configuration (Query)</profile>
- <description>Set command controls parameters for transparent HSCSD calls in GERAN. Changing them during a call does not affect the current call.
-NOTE: In UTRAN, values set with this command are not needed. The only applicable parameter is [SPEED], which is set with +CBST command.
-Defined values
-[wRx]: integer type; wanted amount of receive timeslots. Default value 0 indicates that TA shall calculate a proper value from currently selected fixed network user rate ([speed] subparameter from +CBST command) and [codings]
-[codings]: a sum of integers each representing a channel coding that is accepted for transparent HSCSD calls. Default value 0 indicates that all supported codings are accepted (refer +CHSD command for other values)
-</description>
-</spec>
-<spec>
- <command>AT+CHST=?</command>
- <profile>HSCSD transparent call configuration (Query all)</profile>
- <description>Set command controls parameters for transparent HSCSD calls in GERAN. Changing them during a call does not affect the current call.
-NOTE: In UTRAN, values set with this command are not needed. The only applicable parameter is [SPEED], which is set with +CBST command.
-Defined values
-[wRx]: integer type; wanted amount of receive timeslots. Default value 0 indicates that TA shall calculate a proper value from currently selected fixed network user rate ([speed] subparameter from +CBST command) and [codings]
-[codings]: a sum of integers each representing a channel coding that is accepted for transparent HSCSD calls. Default value 0 indicates that all supported codings are accepted (refer +CHSD command for other values)
-</description>
-</spec>
-<spec>
- <command>AT+CHSC</command>
- <profile>HSCSD current call parameters </profile>
- <description>Execution command returns information about current HSCSD call. If no HSCSD call is active, all parameters returned shall equal zero. If HSCSD call is active in UTRAN, all non-applicable parameters returned shall be equal to zero. (It is manufacturer specific whether non-zero information is returned in case of an active normal single-slot data call.)
-Defined values
-[rx]: integer type; number of receive timeslots currently in use. This parameter is not applicable in UTRAN.
-[tx]: integer type; number of transmit timeslots currently in use. This parameter is not applicable in UTRAN.
-[aiur]: integer type; current air interface user rate (in case of transparent service this equals fixed network user rate) (refer +CHSN command for possible values). For the two-timeslot ECSD bit transparent configuration the following additional values apply:
-8 56000 bps
-9 64000 bps
-[coding]: current channel coding (refer +CHSD command for possible values). This parameter is not applicable in UTRAN.
-</description>
-</spec>
-<spec>
- <command>AT+CHSC=?</command>
- <profile>HSCSD current call parameters (Query all)</profile>
- <description>Execution command returns information about current HSCSD call. If no HSCSD call is active, all parameters returned shall equal zero. If HSCSD call is active in UTRAN, all non-applicable parameters returned shall be equal to zero. (It is manufacturer specific whether non-zero information is returned in case of an active normal single-slot data call.)
-Defined values
-[rx]: integer type; number of receive timeslots currently in use. This parameter is not applicable in UTRAN.
-[tx]: integer type; number of transmit timeslots currently in use. This parameter is not applicable in UTRAN.
-[aiur]: integer type; current air interface user rate (in case of transparent service this equals fixed network user rate) (refer +CHSN command for possible values). For the two-timeslot ECSD bit transparent configuration the following additional values apply:
-8 56000 bps
-9 64000 bps
-[coding]: current channel coding (refer +CHSD command for possible values). This parameter is not applicable in UTRAN.
-</description>
-</spec>
-<spec>
- <command>AT+CHSR=</command>
- <profile>HSCSD parameters report (Assign)</profile>
- <description>Enabled command returns intermediate result code +CHSR: [type] from the TA to the TE when an HSCSD call is being set up. The result code represents the current (negotiated or renegotiated) HSCSD parameters. If enabled, the intermediate result code is transmitted at the point of the call setup negotiation where the TA has determined what type of an HSCSD connection will be used. Result code transmission is done after possible service (+CR), error control (+ER), and/or compression (+DR) reporting but before possible TE-TA rate (+ILRR) reporting and before the intermediate result code CONNECT is transmitted. The format of the intermediate result code is:
-+CHSR: [rx],[tx],[aiur],[coding]
-For the value definitions, refer to +CHSN and +CHSC commands. For instance, for a non-transparent HSCSD call, result code '+CHSR: 2,2,4,8' means that the call has two timeslots in both up- and downlink, the air interface user rate is 28800 bps, and the used channel coding TCH/F14.4.
-In UTRAN, all non-applicable parameters returned shall be equal to zero.
-Defined values
-[mode]:
-0 disables reporting
-1 enables reporting
-</description>
-</spec>
-<spec>
- <command>AT+CHSR?</command>
- <profile>HSCSD parameters report (Query)</profile>
- <description>Enabled command returns intermediate result code +CHSR: [type] from the TA to the TE when an HSCSD call is being set up. The result code represents the current (negotiated or renegotiated) HSCSD parameters. If enabled, the intermediate result code is transmitted at the point of the call setup negotiation where the TA has determined what type of an HSCSD connection will be used. Result code transmission is done after possible service (+CR), error control (+ER), and/or compression (+DR) reporting but before possible TE-TA rate (+ILRR) reporting and before the intermediate result code CONNECT is transmitted. The format of the intermediate result code is:
-+CHSR: [rx],[tx],[aiur],[coding]
-For the value definitions, refer to +CHSN and +CHSC commands. For instance, for a non-transparent HSCSD call, result code '+CHSR: 2,2,4,8' means that the call has two timeslots in both up- and downlink, the air interface user rate is 28800 bps, and the used channel coding TCH/F14.4.
-In UTRAN, all non-applicable parameters returned shall be equal to zero.
-Defined values
-[mode]:
-0 disables reporting
-1 enables reporting
-</description>
-</spec>
-<spec>
- <command>AT+CHSR=?</command>
- <profile>HSCSD parameters report (Query all)</profile>
- <description>Enabled command returns intermediate result code +CHSR: [type] from the TA to the TE when an HSCSD call is being set up. The result code represents the current (negotiated or renegotiated) HSCSD parameters. If enabled, the intermediate result code is transmitted at the point of the call setup negotiation where the TA has determined what type of an HSCSD connection will be used. Result code transmission is done after possible service (+CR), error control (+ER), and/or compression (+DR) reporting but before possible TE-TA rate (+ILRR) reporting and before the intermediate result code CONNECT is transmitted. The format of the intermediate result code is:
-+CHSR: [rx],[tx],[aiur],[coding]
-For the value definitions, refer to +CHSN and +CHSC commands. For instance, for a non-transparent HSCSD call, result code '+CHSR: 2,2,4,8' means that the call has two timeslots in both up- and downlink, the air interface user rate is 28800 bps, and the used channel coding TCH/F14.4.
-In UTRAN, all non-applicable parameters returned shall be equal to zero.
-Defined values
-[mode]:
-0 disables reporting
-1 enables reporting
-</description>
-</spec>
-<spec>
- <command>AT+CSNS=</command>
- <profile>Single numbering scheme (Assign)</profile>
- <description>Set command selects the bearer or teleservice to be used when mobile terminated single numbering scheme call is established. Parameter values set with +CBST command shall be used when [mode] equals to a data service.
-Test command returns values supported as compound values.
-Defined values
-[mode]:
-0 voice
-1 alternating voice/fax, voice first (TS 61)
-2 fax (TS 62)
-3 alternating voice/data, voice first (BS 61)
-4 data
-5 alternating voice/fax, fax first (TS 61)
-6 alternating voice/data, data first (BS 61)
-7 voice followed by data (BS 81)
-</description>
-</spec>
-<spec>
- <command>AT+CSNS?</command>
- <profile>Single numbering scheme (Query)</profile>
- <description>Set command selects the bearer or teleservice to be used when mobile terminated single numbering scheme call is established. Parameter values set with +CBST command shall be used when [mode] equals to a data service.
-Test command returns values supported as compound values.
-Defined values
-[mode]:
-0 voice
-1 alternating voice/fax, voice first (TS 61)
-2 fax (TS 62)
-3 alternating voice/data, voice first (BS 61)
-4 data
-5 alternating voice/fax, fax first (TS 61)
-6 alternating voice/data, data first (BS 61)
-7 voice followed by data (BS 81)
-</description>
-</spec>
-<spec>
- <command>AT+CSNS=?</command>
- <profile>Single numbering scheme (Query all)</profile>
- <description>Set command selects the bearer or teleservice to be used when mobile terminated single numbering scheme call is established. Parameter values set with +CBST command shall be used when [mode] equals to a data service.
-Test command returns values supported as compound values.
-Defined values
-[mode]:
-0 voice
-1 alternating voice/fax, voice first (TS 61)
-2 fax (TS 62)
-3 alternating voice/data, voice first (BS 61)
-4 data
-5 alternating voice/fax, fax first (TS 61)
-6 alternating voice/data, data first (BS 61)
-7 voice followed by data (BS 81)
-</description>
-</spec>
-<spec>
- <command>AT+CVHU=</command>
- <profile>Voice Hangup Control (Assign)</profile>
- <description>Set command selects whether ATH or 'drop DTR' shall cause a voice connection to be disconnected or not. By voice connection is also meant alternating mode calls that are currently in voice mode. (See subclause 6.6).
-NOTE: When [mode] = 2, this command must be seen in conjunction with the V.250 [14] command :D. Else :D shall be ignored.
-Defined values
-[mode]:
-0 'Drop DTR' ignored but OK response given. ATH disconnects.
-1 'Drop DTR' and ATH ignored but OK response given.
-2 'Drop DTR' behaviour according to :D setting. ATH disconnects.
-</description>
-</spec>
-<spec>
- <command>AT+CVHU?</command>
- <profile>Voice Hangup Control (Query)</profile>
- <description>Set command selects whether ATH or 'drop DTR' shall cause a voice connection to be disconnected or not. By voice connection is also meant alternating mode calls that are currently in voice mode. (See subclause 6.6).
-NOTE: When [mode] = 2, this command must be seen in conjunction with the V.250 [14] command :D. Else :D shall be ignored.
-Defined values
-[mode]:
-0 'Drop DTR' ignored but OK response given. ATH disconnects.
-1 'Drop DTR' and ATH ignored but OK response given.
-2 'Drop DTR' behaviour according to :D setting. ATH disconnects.
-</description>
-</spec>
-<spec>
- <command>AT+CVHU=?</command>
- <profile>Voice Hangup Control (Query all)</profile>
- <description>Set command selects whether ATH or 'drop DTR' shall cause a voice connection to be disconnected or not. By voice connection is also meant alternating mode calls that are currently in voice mode. (See subclause 6.6).
-NOTE: When [mode] = 2, this command must be seen in conjunction with the V.250 [14] command :D. Else :D shall be ignored.
-Defined values
-[mode]:
-0 'Drop DTR' ignored but OK response given. ATH disconnects.
-1 'Drop DTR' and ATH ignored but OK response given.
-2 'Drop DTR' behaviour according to :D setting. ATH disconnects.
-</description>
-</spec>
-<spec>
- <command>AT+CSDF=</command>
- <profile>Settings date format (Assign)</profile>
- <description>This command sets the date format via MMI of the date information presented to the user, which is specified by use of the [mode] parameter. The [mode] affects the date format on the phone display and doesn't affect the date format of the AT command serial interface. The command also sets the date format of the TE-TA interface, which is specified by use of the [auxmode] parameter (e.g. the [auxmode] affects the [time] of +CCLK and +CALA). If the parameter is omitted ('+CSDF =','+CSDF =[mode]','+CSDF=,[auxmode]'),then this sets the default value.
-Defined values
-[mode]:
-NOTE: It is manufacturer specific which modes that are supported.
-1 DD-MMM-YYYY
-NOTE: Presentation of MMM is language dependent.
-2 DD-MM-YY
-3 MM/DD/YY
-4 DD/MM/YY
-5 DD.MM.YY
-6 YYMMDD
-7 YY-MM-DD
-8-255 Manufacturer specific
-[auxmode]:
-1yy/MM/dd (default)
-2 yyyy/MM/dd
-also all other values are reserved by the present document
-NOTE: The [time] format of +CCLK and +CALA 'yy/MM/dd,hh:mm:sszz' when [auxmode]=1 and it is 'yyyy/MM/dd,hh:mm:sszz' when [auxmode]=2. If the MT does not support time zone information then the three last characters may be omitted (see +CCLK command).
-</description>
-</spec>
-<spec>
- <command>AT+CSDF?</command>
- <profile>Settings date format (Query)</profile>
- <description>This command sets the date format via MMI of the date information presented to the user, which is specified by use of the [mode] parameter. The [mode] affects the date format on the phone display and doesn't affect the date format of the AT command serial interface. The command also sets the date format of the TE-TA interface, which is specified by use of the [auxmode] parameter (e.g. the [auxmode] affects the [time] of +CCLK and +CALA). If the parameter is omitted ('+CSDF =','+CSDF =[mode]','+CSDF=,[auxmode]'),then this sets the default value.
-Defined values
-[mode]:
-NOTE: It is manufacturer specific which modes that are supported.
-1 DD-MMM-YYYY
-NOTE: Presentation of MMM is language dependent.
-2 DD-MM-YY
-3 MM/DD/YY
-4 DD/MM/YY
-5 DD.MM.YY
-6 YYMMDD
-7 YY-MM-DD
-8-255 Manufacturer specific
-[auxmode]:
-1yy/MM/dd (default)
-2 yyyy/MM/dd
-also all other values are reserved by the present document
-NOTE: The [time] format of +CCLK and +CALA 'yy/MM/dd,hh:mm:sszz' when [auxmode]=1 and it is 'yyyy/MM/dd,hh:mm:sszz' when [auxmode]=2. If the MT does not support time zone information then the three last characters may be omitted (see +CCLK command).
-</description>
-</spec>
-<spec>
- <command>AT+CSDF=?</command>
- <profile>Settings date format (Query all)</profile>
- <description>This command sets the date format via MMI of the date information presented to the user, which is specified by use of the [mode] parameter. The [mode] affects the date format on the phone display and doesn't affect the date format of the AT command serial interface. The command also sets the date format of the TE-TA interface, which is specified by use of the [auxmode] parameter (e.g. the [auxmode] affects the [time] of +CCLK and +CALA). If the parameter is omitted ('+CSDF =','+CSDF =[mode]','+CSDF=,[auxmode]'),then this sets the default value.
-Defined values
-[mode]:
-NOTE: It is manufacturer specific which modes that are supported.
-1 DD-MMM-YYYY
-NOTE: Presentation of MMM is language dependent.
-2 DD-MM-YY
-3 MM/DD/YY
-4 DD/MM/YY
-5 DD.MM.YY
-6 YYMMDD
-7 YY-MM-DD
-8-255 Manufacturer specific
-[auxmode]:
-1yy/MM/dd (default)
-2 yyyy/MM/dd
-also all other values are reserved by the present document
-NOTE: The [time] format of +CCLK and +CALA 'yy/MM/dd,hh:mm:sszz' when [auxmode]=1 and it is 'yyyy/MM/dd,hh:mm:sszz' when [auxmode]=2. If the MT does not support time zone information then the three last characters may be omitted (see +CCLK command).
-</description>
-</spec>
-<spec>
- <command>AT+CSIL=</command>
- <profile>Silence Command (Assign)</profile>
- <description>Set command enables/disables the silent mode. When the phone is in silent mode, all sounds from MT are suppressed except voice.
-Read command reads the current setting.
-Test command lists the supported modes.
-Defined values
-[mode]:
-0 Silent mode off
-1 Silent mode on
-</description>
-</spec>
-<spec>
- <command>AT+CSIL?</command>
- <profile>Silence Command (Query)</profile>
- <description>Set command enables/disables the silent mode. When the phone is in silent mode, all sounds from MT are suppressed except voice.
-Read command reads the current setting.
-Test command lists the supported modes.
-Defined values
-[mode]:
-0 Silent mode off
-1 Silent mode on
-</description>
-</spec>
-<spec>
- <command>AT+CSIL=?</command>
- <profile>Silence Command (Query all)</profile>
- <description>Set command enables/disables the silent mode. When the phone is in silent mode, all sounds from MT are suppressed except voice.
-Read command reads the current setting.
-Test command lists the supported modes.
-Defined values
-[mode]:
-0 Silent mode off
-1 Silent mode on
-</description>
-</spec>
-<spec>
- <command>AT+CSTF=</command>
- <profile>Settings time format (Assign)</profile>
- <description>Set command sets the time format of the time information presented to the user.
-Read commands reads the current setting.
-Test commands reads the supported [modes]s.
-Defined values
-[mode]:
-1 HH:MM (24 hour clock)
-2 HH:MM a.m./p.m.
-3-7 Manufacturer specific
-</description>
-</spec>
-<spec>
- <command>AT+CSTF?</command>
- <profile>Settings time format (Query)</profile>
- <description>Set command sets the time format of the time information presented to the user.
-Read commands reads the current setting.
-Test commands reads the supported [modes]s.
-Defined values
-[mode]:
-1 HH:MM (24 hour clock)
-2 HH:MM a.m./p.m.
-3-7 Manufacturer specific
-</description>
-</spec>
-<spec>
- <command>AT+CSTF=?</command>
- <profile>Settings time format (Query all)</profile>
- <description>Set command sets the time format of the time information presented to the user.
-Read commands reads the current setting.
-Test commands reads the supported [modes]s.
-Defined values
-[mode]:
-1 HH:MM (24 hour clock)
-2 HH:MM a.m./p.m.
-3-7 Manufacturer specific
-</description>
-</spec>
-<spec>
- <command>AT+CNUM</command>
- <profile>Subscriber number </profile>
- <description>Action command returns the MSISDNs related to the subscriber (this information can be stored in the SIM/UICC or in the MT). When storing information in the SIM/UICC, if a SIM card is present or if a UICC with an active GSM application is present, the information is stored in the EFMSISDN under DFTelecom. If a UICC with an active USIM application is present, the information is stored in the EFMSISDN under ADFUSIM). If subscriber has different MSISDN for different services, each MSISDN is returned in a separate line. Refer subclause 9.2 for possible [err] values.
-Defined values
-[alphax]: optional alphanumeric string associated with [numberx]; used character set should be the one selected with command Select TE Character Set +CSCS
-[numberx]: string type phone number of format specified by [typex]
-[typex]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[speed]: as defined in subclause 6.7
-[service] (service related to the phone number):
-0 asynchronous modem
-1 synchronous modem
-2 PAD Access (asynchronous)
-3 Packet Access (synchronous)
-4 voice
-5 fax
-also all other values below 128 are reserved by the present document
-[itc] (information transfer capability):
-0 3,1 kHz
-1 UDI
-</description>
-</spec>
-<spec>
- <command>AT+CNUM=?</command>
- <profile>Subscriber number (Query all)</profile>
- <description>Action command returns the MSISDNs related to the subscriber (this information can be stored in the SIM/UICC or in the MT). When storing information in the SIM/UICC, if a SIM card is present or if a UICC with an active GSM application is present, the information is stored in the EFMSISDN under DFTelecom. If a UICC with an active USIM application is present, the information is stored in the EFMSISDN under ADFUSIM). If subscriber has different MSISDN for different services, each MSISDN is returned in a separate line. Refer subclause 9.2 for possible [err] values.
-Defined values
-[alphax]: optional alphanumeric string associated with [numberx]; used character set should be the one selected with command Select TE Character Set +CSCS
-[numberx]: string type phone number of format specified by [typex]
-[typex]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[speed]: as defined in subclause 6.7
-[service] (service related to the phone number):
-0 asynchronous modem
-1 synchronous modem
-2 PAD Access (asynchronous)
-3 Packet Access (synchronous)
-4 voice
-5 fax
-also all other values below 128 are reserved by the present document
-[itc] (information transfer capability):
-0 3,1 kHz
-1 UDI
-</description>
-</spec>
-<spec>
- <command>AT+CREG=</command>
- <profile>Network registration (Assign)</profile>
- <description>Set command controls the presentation of an unsolicited result code +CREG: [stat] when [n]=1 and there is a change in the MT network registration status, or code +CREG: [stat][,[lac],[ci][,[AcT]]] when [n]=2 and there is a change of the network cell.
-Read command returns the status of result code presentation and an integer [stat] which shows whether the network has currently indicated the registration of the MT. Location information elements [lac], [ci] and [AcT]are returned only when [n]=2 and MT is registered in the network. Refer subclause 9.2 for possible [err] values.
-Defined values
-[n]:
-0 disable network registration unsolicited result code
-1 enable network registration unsolicited result code +CREG: [stat]
-2 enable network registration and location information unsolicited result code +CREG: [stat][,[lac],[ci][,[AcT]]]
-[stat]: registration status
-0 not registered, MT is not currently searching a new operator to register to
-1 registered, home network
-2 not registered, but MT is currently searching a new operator to register to
-3 registration denied
-4 unknown
-5 registered, roaming
-[lac]: string type; two byte location area code in hexadecimal format (e.g. '00C3' equals 195 in decimal)
-[ci]: string type; four byte UTRAN/GERAN cell ID in hexadecimal format
-[AcT]: access technology of the registered network
-0 GSM
-1 GSM Compact
-2 UTRAN
-</description>
-</spec>
-<spec>
- <command>AT+CREG?</command>
- <profile>Network registration (Query)</profile>
- <description>Set command controls the presentation of an unsolicited result code +CREG: [stat] when [n]=1 and there is a change in the MT network registration status, or code +CREG: [stat][,[lac],[ci][,[AcT]]] when [n]=2 and there is a change of the network cell.
-Read command returns the status of result code presentation and an integer [stat] which shows whether the network has currently indicated the registration of the MT. Location information elements [lac], [ci] and [AcT]are returned only when [n]=2 and MT is registered in the network. Refer subclause 9.2 for possible [err] values.
-Defined values
-[n]:
-0 disable network registration unsolicited result code
-1 enable network registration unsolicited result code +CREG: [stat]
-2 enable network registration and location information unsolicited result code +CREG: [stat][,[lac],[ci][,[AcT]]]
-[stat]: registration status
-0 not registered, MT is not currently searching a new operator to register to
-1 registered, home network
-2 not registered, but MT is currently searching a new operator to register to
-3 registration denied
-4 unknown
-5 registered, roaming
-[lac]: string type; two byte location area code in hexadecimal format (e.g. '00C3' equals 195 in decimal)
-[ci]: string type; four byte UTRAN/GERAN cell ID in hexadecimal format
-[AcT]: access technology of the registered network
-0 GSM
-1 GSM Compact
-2 UTRAN
-</description>
-</spec>
-<spec>
- <command>AT+CREG=?</command>
- <profile>Network registration (Query all)</profile>
- <description>Set command controls the presentation of an unsolicited result code +CREG: [stat] when [n]=1 and there is a change in the MT network registration status, or code +CREG: [stat][,[lac],[ci][,[AcT]]] when [n]=2 and there is a change of the network cell.
-Read command returns the status of result code presentation and an integer [stat] which shows whether the network has currently indicated the registration of the MT. Location information elements [lac], [ci] and [AcT]are returned only when [n]=2 and MT is registered in the network. Refer subclause 9.2 for possible [err] values.
-Defined values
-[n]:
-0 disable network registration unsolicited result code
-1 enable network registration unsolicited result code +CREG: [stat]
-2 enable network registration and location information unsolicited result code +CREG: [stat][,[lac],[ci][,[AcT]]]
-[stat]: registration status
-0 not registered, MT is not currently searching a new operator to register to
-1 registered, home network
-2 not registered, but MT is currently searching a new operator to register to
-3 registration denied
-4 unknown
-5 registered, roaming
-[lac]: string type; two byte location area code in hexadecimal format (e.g. '00C3' equals 195 in decimal)
-[ci]: string type; four byte UTRAN/GERAN cell ID in hexadecimal format
-[AcT]: access technology of the registered network
-0 GSM
-1 GSM Compact
-2 UTRAN
-</description>
-</spec>
-<spec>
- <command>AT+COPS=</command>
- <profile>PLMN selection (Assign)</profile>
- <description>Set command forces an attempt to select and register the GSM/UMTS network operator. [mode] is used to select whether the selection is done automatically by the MT or is forced by this command to operator [oper] (it shall be given in format [format]) to a certain access technology, indicated in [AcT]. If the selected operator is not available, no other operator shall be selected (except [mode]=4). If the selected access technology is not available, then the same operator shall be selected in other access technology. The selected operator name format shall apply to further read commands (+COPS?) also. [mode]=2 forces an attempt to deregister from the network. The selected mode affects to all further network registration (e.g. after [mode]=2, MT shall be unregistered until [mode]=0 or 1 is selected). Refer subclause 9.2 for possible [err] values. This command should be abortable when registration/deregistration attempt is made.
-Read command returns the current mode, the currently selected operator and the current Access Technology. If no operator is selected, [format], [oper] and [ AcT] are omitted.
-Test command returns a set of five parameters, each representing an operator present in the network. A set consists of an integer indicating the availability of the operator [stat], long and short alphanumeric format of the name of the operator, numeric format representation of the operator and access technology. Any of the formats may be unavailable and should then be an empty field. The list of operators shall be in order: home network, networks referenced in SIM or active application in the UICC (GSM or USIM) in the following order: HPLMN selector, User controlled PLMN selector, Operator controlled PLMN selector and PLMN selector (in the SIM or GSM application), and other networks.
-It is recommended (although optional) that after the operator list TA returns lists of supported [mode]s and [format]s. These lists shall be delimited from the operator list by two commas.
-NOTE: The access technology selected parameters, [AcT], should only be used in terminals capable to register to more than one access technology. Selection of [AcT] does not limit the capability to cell reselections, even though access technology is selected, the phone may still re-select a cell in other access technology.
-Defined values
-[mode]:
-0 automatic ([oper] field is ignored)
-1 manual ([oper] field shall be present, and [AcT] optionally)
-2 deregister from network
-3 set only [format] (for read command +COPS?), do not attempt registration/deregistration ([oper] and [ AcT] fields are ignored); this value is not applicable in read command response
-4 manual/automatic ([oper] field shall be present); if manual selection fails, automatic mode ([mode]=0) is entered
-[format]:
-0 long format alphanumeric [oper]
-1 short format alphanumeric [oper]
-2 numeric [oper]
-[oper]: string type; [format] indicates if the format is alphanumeric or numeric; long alphanumeric format can be upto 16 characters long and short format up to 8 characters (refer GSM MoU SE.13 [9]); numeric format is the GSM Location Area Identification number (refer TS 24.008 [8] subclause 10.5.1.3) which consists of a three BCD digit country code coded as in ITU‑T E.212 Annex A [10], plus a two BCD digit network code, which is administration specific; returned [oper] shall not be in BCD format, but in IRA characters converted from BCD; hence the number has structure: (country code digit 3)(country code digit 2)(country code digit 1)(network code digit 3)(network code digit 2)(network code digit 1)
-[stat]:
-0 unknown
-1 available
-2 current
-3 forbidden
-[AcT] access technology selected:
-0 GSM
-1 GSM Compact
-2 UTRAN
-</description>
-</spec>
-<spec>
- <command>AT+COPS?</command>
- <profile>PLMN selection (Query)</profile>
- <description>Set command forces an attempt to select and register the GSM/UMTS network operator. [mode] is used to select whether the selection is done automatically by the MT or is forced by this command to operator [oper] (it shall be given in format [format]) to a certain access technology, indicated in [AcT]. If the selected operator is not available, no other operator shall be selected (except [mode]=4). If the selected access technology is not available, then the same operator shall be selected in other access technology. The selected operator name format shall apply to further read commands (+COPS?) also. [mode]=2 forces an attempt to deregister from the network. The selected mode affects to all further network registration (e.g. after [mode]=2, MT shall be unregistered until [mode]=0 or 1 is selected). Refer subclause 9.2 for possible [err] values. This command should be abortable when registration/deregistration attempt is made.
-Read command returns the current mode, the currently selected operator and the current Access Technology. If no operator is selected, [format], [oper] and [ AcT] are omitted.
-Test command returns a set of five parameters, each representing an operator present in the network. A set consists of an integer indicating the availability of the operator [stat], long and short alphanumeric format of the name of the operator, numeric format representation of the operator and access technology. Any of the formats may be unavailable and should then be an empty field. The list of operators shall be in order: home network, networks referenced in SIM or active application in the UICC (GSM or USIM) in the following order: HPLMN selector, User controlled PLMN selector, Operator controlled PLMN selector and PLMN selector (in the SIM or GSM application), and other networks.
-It is recommended (although optional) that after the operator list TA returns lists of supported [mode]s and [format]s. These lists shall be delimited from the operator list by two commas.
-NOTE: The access technology selected parameters, [AcT], should only be used in terminals capable to register to more than one access technology. Selection of [AcT] does not limit the capability to cell reselections, even though access technology is selected, the phone may still re-select a cell in other access technology.
-Defined values
-[mode]:
-0 automatic ([oper] field is ignored)
-1 manual ([oper] field shall be present, and [AcT] optionally)
-2 deregister from network
-3 set only [format] (for read command +COPS?), do not attempt registration/deregistration ([oper] and [ AcT] fields are ignored); this value is not applicable in read command response
-4 manual/automatic ([oper] field shall be present); if manual selection fails, automatic mode ([mode]=0) is entered
-[format]:
-0 long format alphanumeric [oper]
-1 short format alphanumeric [oper]
-2 numeric [oper]
-[oper]: string type; [format] indicates if the format is alphanumeric or numeric; long alphanumeric format can be upto 16 characters long and short format up to 8 characters (refer GSM MoU SE.13 [9]); numeric format is the GSM Location Area Identification number (refer TS 24.008 [8] subclause 10.5.1.3) which consists of a three BCD digit country code coded as in ITU‑T E.212 Annex A [10], plus a two BCD digit network code, which is administration specific; returned [oper] shall not be in BCD format, but in IRA characters converted from BCD; hence the number has structure: (country code digit 3)(country code digit 2)(country code digit 1)(network code digit 3)(network code digit 2)(network code digit 1)
-[stat]:
-0 unknown
-1 available
-2 current
-3 forbidden
-[AcT] access technology selected:
-0 GSM
-1 GSM Compact
-2 UTRAN
-</description>
-</spec>
-<spec>
- <command>AT+COPS=?</command>
- <profile>PLMN selection (Query all)</profile>
- <description>Set command forces an attempt to select and register the GSM/UMTS network operator. [mode] is used to select whether the selection is done automatically by the MT or is forced by this command to operator [oper] (it shall be given in format [format]) to a certain access technology, indicated in [AcT]. If the selected operator is not available, no other operator shall be selected (except [mode]=4). If the selected access technology is not available, then the same operator shall be selected in other access technology. The selected operator name format shall apply to further read commands (+COPS?) also. [mode]=2 forces an attempt to deregister from the network. The selected mode affects to all further network registration (e.g. after [mode]=2, MT shall be unregistered until [mode]=0 or 1 is selected). Refer subclause 9.2 for possible [err] values. This command should be abortable when registration/deregistration attempt is made.
-Read command returns the current mode, the currently selected operator and the current Access Technology. If no operator is selected, [format], [oper] and [ AcT] are omitted.
-Test command returns a set of five parameters, each representing an operator present in the network. A set consists of an integer indicating the availability of the operator [stat], long and short alphanumeric format of the name of the operator, numeric format representation of the operator and access technology. Any of the formats may be unavailable and should then be an empty field. The list of operators shall be in order: home network, networks referenced in SIM or active application in the UICC (GSM or USIM) in the following order: HPLMN selector, User controlled PLMN selector, Operator controlled PLMN selector and PLMN selector (in the SIM or GSM application), and other networks.
-It is recommended (although optional) that after the operator list TA returns lists of supported [mode]s and [format]s. These lists shall be delimited from the operator list by two commas.
-NOTE: The access technology selected parameters, [AcT], should only be used in terminals capable to register to more than one access technology. Selection of [AcT] does not limit the capability to cell reselections, even though access technology is selected, the phone may still re-select a cell in other access technology.
-Defined values
-[mode]:
-0 automatic ([oper] field is ignored)
-1 manual ([oper] field shall be present, and [AcT] optionally)
-2 deregister from network
-3 set only [format] (for read command +COPS?), do not attempt registration/deregistration ([oper] and [ AcT] fields are ignored); this value is not applicable in read command response
-4 manual/automatic ([oper] field shall be present); if manual selection fails, automatic mode ([mode]=0) is entered
-[format]:
-0 long format alphanumeric [oper]
-1 short format alphanumeric [oper]
-2 numeric [oper]
-[oper]: string type; [format] indicates if the format is alphanumeric or numeric; long alphanumeric format can be upto 16 characters long and short format up to 8 characters (refer GSM MoU SE.13 [9]); numeric format is the GSM Location Area Identification number (refer TS 24.008 [8] subclause 10.5.1.3) which consists of a three BCD digit country code coded as in ITU‑T E.212 Annex A [10], plus a two BCD digit network code, which is administration specific; returned [oper] shall not be in BCD format, but in IRA characters converted from BCD; hence the number has structure: (country code digit 3)(country code digit 2)(country code digit 1)(network code digit 3)(network code digit 2)(network code digit 1)
-[stat]:
-0 unknown
-1 available
-2 current
-3 forbidden
-[AcT] access technology selected:
-0 GSM
-1 GSM Compact
-2 UTRAN
-</description>
-</spec>
-<spec>
- <command>AT+CLCK=</command>
- <profile>Facility lock (Assign)</profile>
- <description>Execute command is used to lock, unlock or interrogate a MT or a network facility [fac]. Password is normally needed to do such actions. When querying the status of a network service ([mode]=2) the response line for 'not active' case ([status]=0) should be returned only if service is not active for any [class]. Refer subclause 9.2 for possible [err] values. This command should be abortable when network facilities are set or interrogated.
-Call barring facilities are based on GSM/UMTS supplementary services (refer 3GPP TS 22.088 [6]). The interaction of these with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standard.
-Test command returns facility values supported as a compound value.
-Defined values
-[fac] values reserved by the present document:
-'CS' CNTRL (lock CoNTRoL surface (e.g. phone keyboard))
-'PS' PH‑SIM (lock PHone to SIM/UICC card) (MT asks password when other than current SIM/UICC card inserted; MT may remember certain amount of previously used cards thus not requiring password when they are inserted)
-'PF' lock Phone to the very First inserted SIM/UICC card (also referred in the present document as PH-FSIM) (MT asks password when other than the first SIM/UICC card is inserted)
-'SC' SIM (lock SIM/UICC card) (SIM/UICC asks password in MT power‑up and when this lock command issued)
-'AO' BAOC (Barr All Outgoing Calls) (refer 3GPP TS 22.088 [6] clause 1)
-'OI' BOIC (Barr Outgoing International Calls) (refer 3GPP TS 22.088 [6] clause 1)
-'OX' BOIC‑exHC (Barr Outgoing International Calls except to Home Country) (refer 3GPP TS 22.088 [6] clause 1)
-'AI' BAIC (Barr All Incoming Calls) (refer 3GPP TS 22.088 [6] clause 2)
-'IR' BIC‑Roam (Barr Incoming Calls when Roaming outside the home country) (refer 3GPP TS 22.088 [6] clause 2)
-'NT' barr incoming calls from numbers Not stored to TA memory
-'NM' barr incoming calls from numbers Not stored to MT memory
-'NS' barr incoming calls from numbers Not stored to SIM/UICC memory
-'NA' barr incoming calls from numbers Not stored in Any memory
-'AB' All Barring services (refer 3GPP TS 22.030 [19]) (applicable only for [mode]=0)
-'AG' All outGoing barring services (refer 3GPP TS 22.030 [19]) (applicable only for [mode]=0)
-'AC' All inComing barring services (refer 3GPP TS 22.030 [19]) (applicable only for [mode]=0)
-'FD' SIM card or active application in the UICC (GSM or USIM) fixed dialling memory feature (if PIN2 authentication has not been done during the current session, PIN2 is required as [passwd])
-'PN' Network Personalization (refer 3GPP TS 22.022 [33])
-'PU' network sUbset Personalization (refer 3GPP TS 22.022 [33])
-'PP' service Provider Personalization (refer 3GPP TS 22.022 [33])
-'PC' Corporate Personalization (refer 3GPP TS 22.022 [33])
-[mode]:
-0 unlock
-1 lock
-2 query status
-[status]:
-0 not active
-1 active
-[passwd]: string type; shall be the same as password specified for the facility from the MT user interface or with command Change Password +CPWD
-[classx] is a sum of integers each representing a class of information (default 7):
-1 voice (telephony)
-2 data (refers to all bearer services; with [mode]=2 this may refer only to some bearer service if TA does not support values 16, 32, 64 and 128)
-4 fax (facsimile services)
-8 short message service
-16 data circuit sync
-32 data circuit async
-64 dedicated packet access
-128 dedicated PAD access
-</description>
-</spec>
-<spec>
- <command>AT+CLCK=?</command>
- <profile>Facility lock (Query all)</profile>
- <description>Execute command is used to lock, unlock or interrogate a MT or a network facility [fac]. Password is normally needed to do such actions. When querying the status of a network service ([mode]=2) the response line for 'not active' case ([status]=0) should be returned only if service is not active for any [class]. Refer subclause 9.2 for possible [err] values. This command should be abortable when network facilities are set or interrogated.
-Call barring facilities are based on GSM/UMTS supplementary services (refer 3GPP TS 22.088 [6]). The interaction of these with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standard.
-Test command returns facility values supported as a compound value.
-Defined values
-[fac] values reserved by the present document:
-'CS' CNTRL (lock CoNTRoL surface (e.g. phone keyboard))
-'PS' PH‑SIM (lock PHone to SIM/UICC card) (MT asks password when other than current SIM/UICC card inserted; MT may remember certain amount of previously used cards thus not requiring password when they are inserted)
-'PF' lock Phone to the very First inserted SIM/UICC card (also referred in the present document as PH-FSIM) (MT asks password when other than the first SIM/UICC card is inserted)
-'SC' SIM (lock SIM/UICC card) (SIM/UICC asks password in MT power‑up and when this lock command issued)
-'AO' BAOC (Barr All Outgoing Calls) (refer 3GPP TS 22.088 [6] clause 1)
-'OI' BOIC (Barr Outgoing International Calls) (refer 3GPP TS 22.088 [6] clause 1)
-'OX' BOIC‑exHC (Barr Outgoing International Calls except to Home Country) (refer 3GPP TS 22.088 [6] clause 1)
-'AI' BAIC (Barr All Incoming Calls) (refer 3GPP TS 22.088 [6] clause 2)
-'IR' BIC‑Roam (Barr Incoming Calls when Roaming outside the home country) (refer 3GPP TS 22.088 [6] clause 2)
-'NT' barr incoming calls from numbers Not stored to TA memory
-'NM' barr incoming calls from numbers Not stored to MT memory
-'NS' barr incoming calls from numbers Not stored to SIM/UICC memory
-'NA' barr incoming calls from numbers Not stored in Any memory
-'AB' All Barring services (refer 3GPP TS 22.030 [19]) (applicable only for [mode]=0)
-'AG' All outGoing barring services (refer 3GPP TS 22.030 [19]) (applicable only for [mode]=0)
-'AC' All inComing barring services (refer 3GPP TS 22.030 [19]) (applicable only for [mode]=0)
-'FD' SIM card or active application in the UICC (GSM or USIM) fixed dialling memory feature (if PIN2 authentication has not been done during the current session, PIN2 is required as [passwd])
-'PN' Network Personalization (refer 3GPP TS 22.022 [33])
-'PU' network sUbset Personalization (refer 3GPP TS 22.022 [33])
-'PP' service Provider Personalization (refer 3GPP TS 22.022 [33])
-'PC' Corporate Personalization (refer 3GPP TS 22.022 [33])
-[mode]:
-0 unlock
-1 lock
-2 query status
-[status]:
-0 not active
-1 active
-[passwd]: string type; shall be the same as password specified for the facility from the MT user interface or with command Change Password +CPWD
-[classx] is a sum of integers each representing a class of information (default 7):
-1 voice (telephony)
-2 data (refers to all bearer services; with [mode]=2 this may refer only to some bearer service if TA does not support values 16, 32, 64 and 128)
-4 fax (facsimile services)
-8 short message service
-16 data circuit sync
-32 data circuit async
-64 dedicated packet access
-128 dedicated PAD access
-</description>
-</spec>
-<spec>
- <command>AT+CPWD=</command>
- <profile>Change password (Assign)</profile>
- <description>Action command sets a new password for the facility lock function defined by command Facility Lock +CLCK. Refer subclause 9.2 for possible [err] values.
-Test command returns a list of pairs which present the available facilities and the maximum length of their password.
-Defined values
-[fac]:
-'P2' SIM PIN2
- refer Facility Lock +CLCK for other values
-[oldpwd], [newpwd]: string type; [oldpwd] shall be the same as password specified for the facility from the MT user interface or with command Change Password +CPWD and [newpwd] is the new password; maximum length of password can be determined with [pwdlength]
-[pwdlength]: integer type maximum length of the password for the facility
-</description>
-</spec>
-<spec>
- <command>AT+CPWD=?</command>
- <profile>Change password (Query all)</profile>
- <description>Action command sets a new password for the facility lock function defined by command Facility Lock +CLCK. Refer subclause 9.2 for possible [err] values.
-Test command returns a list of pairs which present the available facilities and the maximum length of their password.
-Defined values
-[fac]:
-'P2' SIM PIN2
- refer Facility Lock +CLCK for other values
-[oldpwd], [newpwd]: string type; [oldpwd] shall be the same as password specified for the facility from the MT user interface or with command Change Password +CPWD and [newpwd] is the new password; maximum length of password can be determined with [pwdlength]
-[pwdlength]: integer type maximum length of the password for the facility
-</description>
-</spec>
-<spec>
- <command>AT+CLIP=</command>
- <profile>Calling line identification presentation (Assign)</profile>
- <description>This command refers to the GSM/UMTS supplementary service CLIP (Calling Line Identification Presentation) that enables a called subscriber to get the calling line identity (CLI) of the calling party when receiving a mobile terminated call. Set command enables or disables the presentation of the CLI at the TE. It has no effect on the execution of the supplementary service CLIP in the network.
-When the presentation of the CLI at the TE is enabled (and calling subscriber allows), +CLIP: [number],[type][,[subaddr],[satype][,[[alpha]][,[CLI validity]]]] response is returned after every RING (or +CRING: [type]; refer subclause 'Cellular result codes +CRC') result code sent from TA to TE. It is manufacturer specific if this response is used when normal voice call is answered.
-Read command gives the status of [n], and also triggers an interrogation of the provision status of the CLIP service according 3GPP TS 22.081 [3] (given in [m]).Test command returns values supported as a compound value.
-Defined values
-[n] (parameter sets/shows the result code presentation status to the TE):
-0 disable
-1 enable
-[m] (parameter shows the subscriber CLIP service status in the network):
-0 CLIP not provisioned
-1 CLIP provisioned
-2 unknown (e.g. no network, etc.)
-[number]: string type phone number of format specified by [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[subaddr]: string type subaddress of format specified by [satype]
-[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
-[alpha]: optional string type alphanumeric representation of [number] corresponding to the entry found in phonebook; used character set should be the one selected with command Select TE Character Set +CSCS
-[CLI validity]:
-0 CLI valid
-1 CLI has been withheld by the originator.
-2 CLI is not available due to interworking problems or limitations of originating network.
-When CLI is not available ( [CLI validity]=2), [number] shall be an empty string ('') and [type] value will not be significant. Nevertheless, TA may return the recommended value 128 for [type] ((TON/NPI unknown in accordance with TS 24.008 [8] subclause 10.5.4.7).
-When CLI has been withheld by the originator, ([CLI validity]=1) and the CLIP is provisioned with the 'override category' option (refer 3GPP TS 22.081[3] and 3GPP TS 23.081[40]), [number] and [type] is provided. Otherwise, TA shall return the same setting for [number] and [type] as if the CLI was not available.
-</description>
-</spec>
-<spec>
- <command>AT+CLIP?</command>
- <profile>Calling line identification presentation (Query)</profile>
- <description>This command refers to the GSM/UMTS supplementary service CLIP (Calling Line Identification Presentation) that enables a called subscriber to get the calling line identity (CLI) of the calling party when receiving a mobile terminated call. Set command enables or disables the presentation of the CLI at the TE. It has no effect on the execution of the supplementary service CLIP in the network.
-When the presentation of the CLI at the TE is enabled (and calling subscriber allows), +CLIP: [number],[type][,[subaddr],[satype][,[[alpha]][,[CLI validity]]]] response is returned after every RING (or +CRING: [type]; refer subclause 'Cellular result codes +CRC') result code sent from TA to TE. It is manufacturer specific if this response is used when normal voice call is answered.
-Read command gives the status of [n], and also triggers an interrogation of the provision status of the CLIP service according 3GPP TS 22.081 [3] (given in [m]).Test command returns values supported as a compound value.
-Defined values
-[n] (parameter sets/shows the result code presentation status to the TE):
-0 disable
-1 enable
-[m] (parameter shows the subscriber CLIP service status in the network):
-0 CLIP not provisioned
-1 CLIP provisioned
-2 unknown (e.g. no network, etc.)
-[number]: string type phone number of format specified by [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[subaddr]: string type subaddress of format specified by [satype]
-[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
-[alpha]: optional string type alphanumeric representation of [number] corresponding to the entry found in phonebook; used character set should be the one selected with command Select TE Character Set +CSCS
-[CLI validity]:
-0 CLI valid
-1 CLI has been withheld by the originator.
-2 CLI is not available due to interworking problems or limitations of originating network.
-When CLI is not available ( [CLI validity]=2), [number] shall be an empty string ('') and [type] value will not be significant. Nevertheless, TA may return the recommended value 128 for [type] ((TON/NPI unknown in accordance with TS 24.008 [8] subclause 10.5.4.7).
-When CLI has been withheld by the originator, ([CLI validity]=1) and the CLIP is provisioned with the 'override category' option (refer 3GPP TS 22.081[3] and 3GPP TS 23.081[40]), [number] and [type] is provided. Otherwise, TA shall return the same setting for [number] and [type] as if the CLI was not available.
-</description>
-</spec>
-<spec>
- <command>AT+CLIP=?</command>
- <profile>Calling line identification presentation (Query all)</profile>
- <description>This command refers to the GSM/UMTS supplementary service CLIP (Calling Line Identification Presentation) that enables a called subscriber to get the calling line identity (CLI) of the calling party when receiving a mobile terminated call. Set command enables or disables the presentation of the CLI at the TE. It has no effect on the execution of the supplementary service CLIP in the network.
-When the presentation of the CLI at the TE is enabled (and calling subscriber allows), +CLIP: [number],[type][,[subaddr],[satype][,[[alpha]][,[CLI validity]]]] response is returned after every RING (or +CRING: [type]; refer subclause 'Cellular result codes +CRC') result code sent from TA to TE. It is manufacturer specific if this response is used when normal voice call is answered.
-Read command gives the status of [n], and also triggers an interrogation of the provision status of the CLIP service according 3GPP TS 22.081 [3] (given in [m]).Test command returns values supported as a compound value.
-Defined values
-[n] (parameter sets/shows the result code presentation status to the TE):
-0 disable
-1 enable
-[m] (parameter shows the subscriber CLIP service status in the network):
-0 CLIP not provisioned
-1 CLIP provisioned
-2 unknown (e.g. no network, etc.)
-[number]: string type phone number of format specified by [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[subaddr]: string type subaddress of format specified by [satype]
-[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
-[alpha]: optional string type alphanumeric representation of [number] corresponding to the entry found in phonebook; used character set should be the one selected with command Select TE Character Set +CSCS
-[CLI validity]:
-0 CLI valid
-1 CLI has been withheld by the originator.
-2 CLI is not available due to interworking problems or limitations of originating network.
-When CLI is not available ( [CLI validity]=2), [number] shall be an empty string ('') and [type] value will not be significant. Nevertheless, TA may return the recommended value 128 for [type] ((TON/NPI unknown in accordance with TS 24.008 [8] subclause 10.5.4.7).
-When CLI has been withheld by the originator, ([CLI validity]=1) and the CLIP is provisioned with the 'override category' option (refer 3GPP TS 22.081[3] and 3GPP TS 23.081[40]), [number] and [type] is provided. Otherwise, TA shall return the same setting for [number] and [type] as if the CLI was not available.
-</description>
-</spec>
-<spec>
- <command>AT+CLIR=</command>
- <profile>Calling line identification restriction (Assign)</profile>
- <description>This command refers to CLIR‑service according to 3GPP TS 22.081 [3] that allows a calling subscriber to enable or disable the presentation of the CLI to the called party when originating a call.
-Set command overrides the CLIR subscription (default is restricted or allowed) when temporary mode is provisioned as a default adjustment for all following outgoing calls. This adjustment can be revoked by using the opposite command.. If this command is used by a subscriber without provision of CLIR in permanent mode the network will act according 3GPP TS 22.081 [3].
-Read command gives the default adjustment for all outgoing calls (given in [n]), and also triggers an interrogation of the provision status of the CLIR service (given in [m]). Test command returns values supported as a compound value.
-NOTE: On a per call base CLIR functionality is explained in subclause 'ITU‑T V.250 [14] dial command'.
-Defined values
-[n] (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] (parameter shows the subscriber CLIR service status in the network):
-0 CLIR not provisioned
-1 CLIR provisioned in permanent mode
-2 unknown (e.g. no network, etc.)
-3 CLIR temporary mode presentation restricted
-4 CLIR temporary mode presentation allowed
-</description>
-</spec>
-<spec>
- <command>AT+CLIR?</command>
- <profile>Calling line identification restriction (Query)</profile>
- <description>This command refers to CLIR‑service according to 3GPP TS 22.081 [3] that allows a calling subscriber to enable or disable the presentation of the CLI to the called party when originating a call.
-Set command overrides the CLIR subscription (default is restricted or allowed) when temporary mode is provisioned as a default adjustment for all following outgoing calls. This adjustment can be revoked by using the opposite command.. If this command is used by a subscriber without provision of CLIR in permanent mode the network will act according 3GPP TS 22.081 [3].
-Read command gives the default adjustment for all outgoing calls (given in [n]), and also triggers an interrogation of the provision status of the CLIR service (given in [m]). Test command returns values supported as a compound value.
-NOTE: On a per call base CLIR functionality is explained in subclause 'ITU‑T V.250 [14] dial command'.
-Defined values
-[n] (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] (parameter shows the subscriber CLIR service status in the network):
-0 CLIR not provisioned
-1 CLIR provisioned in permanent mode
-2 unknown (e.g. no network, etc.)
-3 CLIR temporary mode presentation restricted
-4 CLIR temporary mode presentation allowed
-</description>
-</spec>
-<spec>
- <command>AT+CLIR=?</command>
- <profile>Calling line identification restriction (Query all)</profile>
- <description>This command refers to CLIR‑service according to 3GPP TS 22.081 [3] that allows a calling subscriber to enable or disable the presentation of the CLI to the called party when originating a call.
-Set command overrides the CLIR subscription (default is restricted or allowed) when temporary mode is provisioned as a default adjustment for all following outgoing calls. This adjustment can be revoked by using the opposite command.. If this command is used by a subscriber without provision of CLIR in permanent mode the network will act according 3GPP TS 22.081 [3].
-Read command gives the default adjustment for all outgoing calls (given in [n]), and also triggers an interrogation of the provision status of the CLIR service (given in [m]). Test command returns values supported as a compound value.
-NOTE: On a per call base CLIR functionality is explained in subclause 'ITU‑T V.250 [14] dial command'.
-Defined values
-[n] (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] (parameter shows the subscriber CLIR service status in the network):
-0 CLIR not provisioned
-1 CLIR provisioned in permanent mode
-2 unknown (e.g. no network, etc.)
-3 CLIR temporary mode presentation restricted
-4 CLIR temporary mode presentation allowed
-</description>
-</spec>
-<spec>
- <command>AT+COLP=</command>
- <profile>Connected line identification presentation (Assign)</profile>
- <description>This command refers to the GSM/UMTS supplementary service COLP (Connected Line Identification Presentation) that enables a calling subscriber to get the connected line identity (COL) of the called party after setting up a mobile originated call. The command enables or disables the presentation of the COL at the TE. It has no effect on the execution of the supplementary service COLR in the network.
-When enabled (and called subscriber allows), +COLP:
-[number],[type][,[subaddr],[satype] [,[alpha]]] intermediate result code is returned from TA to TE before any +CR or V.250 [14] responses. It is manufacturer specific if this response is used when normal voice call is established.
-Read command gives the status of [n], and also triggers an interrogation of the provision status of the COLP service according 3GPP TS 22.081 [3] (given in [m]).
-Test command returns values supported as a compound value.
-Defined values
-[n] (parameter sets/shows the result code presentation status to the TE):
-0 disable
-1 enable
-[m] (parameter shows the subscriber COLP service status in the network):
-0 COLP not provisioned
-1 COLP provisioned
-2 unknown (e.g. no network, etc.)
-[number], [type], [subaddr], [satype], [alpha]: refer +CLIP
-</description>
-</spec>
-<spec>
- <command>AT+COLP?</command>
- <profile>Connected line identification presentation (Query)</profile>
- <description>This command refers to the GSM/UMTS supplementary service COLP (Connected Line Identification Presentation) that enables a calling subscriber to get the connected line identity (COL) of the called party after setting up a mobile originated call. The command enables or disables the presentation of the COL at the TE. It has no effect on the execution of the supplementary service COLR in the network.
-When enabled (and called subscriber allows), +COLP:
-[number],[type][,[subaddr],[satype] [,[alpha]]] intermediate result code is returned from TA to TE before any +CR or V.250 [14] responses. It is manufacturer specific if this response is used when normal voice call is established.
-Read command gives the status of [n], and also triggers an interrogation of the provision status of the COLP service according 3GPP TS 22.081 [3] (given in [m]).
-Test command returns values supported as a compound value.
-Defined values
-[n] (parameter sets/shows the result code presentation status to the TE):
-0 disable
-1 enable
-[m] (parameter shows the subscriber COLP service status in the network):
-0 COLP not provisioned
-1 COLP provisioned
-2 unknown (e.g. no network, etc.)
-[number], [type], [subaddr], [satype], [alpha]: refer +CLIP
-</description>
-</spec>
-<spec>
- <command>AT+COLP=?</command>
- <profile>Connected line identification presentation (Query all)</profile>
- <description>This command refers to the GSM/UMTS supplementary service COLP (Connected Line Identification Presentation) that enables a calling subscriber to get the connected line identity (COL) of the called party after setting up a mobile originated call. The command enables or disables the presentation of the COL at the TE. It has no effect on the execution of the supplementary service COLR in the network.
-When enabled (and called subscriber allows), +COLP:
-[number],[type][,[subaddr],[satype] [,[alpha]]] intermediate result code is returned from TA to TE before any +CR or V.250 [14] responses. It is manufacturer specific if this response is used when normal voice call is established.
-Read command gives the status of [n], and also triggers an interrogation of the provision status of the COLP service according 3GPP TS 22.081 [3] (given in [m]).
-Test command returns values supported as a compound value.
-Defined values
-[n] (parameter sets/shows the result code presentation status to the TE):
-0 disable
-1 enable
-[m] (parameter shows the subscriber COLP service status in the network):
-0 COLP not provisioned
-1 COLP provisioned
-2 unknown (e.g. no network, etc.)
-[number], [type], [subaddr], [satype], [alpha]: refer +CLIP
-</description>
-</spec>
-<spec>
- <command>AT+CDIP=</command>
- <profile>Called line identification presentation (Assign)</profile>
- <description>This command related to a network service that provides 'multiple called numbers (called line identifications) service' to an MT. This command enables a called subscriber to get the called line identification of the called party when receiving a mobile terminated call. Set command enables or disables the presentation of the called line identifications at the TE.
-When the presentation of the called line identification at the TE is enabled, +CDIP:[number],[type][,[subaddr],[satype]] response is returned after every RING (or +CRING: [type]; refer subclause 'Cellular result codes +CRC') result code sent from TA to TE. It is manufacturer specific if this response is used when normal voice call is answered.
-Read command gives the status of [n], and also triggers an interrogation of the provision status of the 'multiple called numbers' service. Test command returns values supported as a compound value.
-Defined values
-[n] (parameter sets/shows the result code presentation status to the TE):
-0 disable
-1 enable
-[m] (parameter shows the subscriber 'multiple called numbers' service status in the network):
-0 'multiple called numbers service' is not provisioned
-1 'multiple called numbers service' is provisioned
-2 unknown (e.g. no network, etc.)
-[number]: string type phone number of format specified by [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[subaddr]: string type subaddress of format specified by [satype]
-[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
-</description>
-</spec>
-<spec>
- <command>AT+CDIP?</command>
- <profile>Called line identification presentation (Query)</profile>
- <description>This command related to a network service that provides 'multiple called numbers (called line identifications) service' to an MT. This command enables a called subscriber to get the called line identification of the called party when receiving a mobile terminated call. Set command enables or disables the presentation of the called line identifications at the TE.
-When the presentation of the called line identification at the TE is enabled, +CDIP:[number],[type][,[subaddr],[satype]] response is returned after every RING (or +CRING: [type]; refer subclause 'Cellular result codes +CRC') result code sent from TA to TE. It is manufacturer specific if this response is used when normal voice call is answered.
-Read command gives the status of [n], and also triggers an interrogation of the provision status of the 'multiple called numbers' service. Test command returns values supported as a compound value.
-Defined values
-[n] (parameter sets/shows the result code presentation status to the TE):
-0 disable
-1 enable
-[m] (parameter shows the subscriber 'multiple called numbers' service status in the network):
-0 'multiple called numbers service' is not provisioned
-1 'multiple called numbers service' is provisioned
-2 unknown (e.g. no network, etc.)
-[number]: string type phone number of format specified by [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[subaddr]: string type subaddress of format specified by [satype]
-[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
-</description>
-</spec>
-<spec>
- <command>AT+CDIP=?</command>
- <profile>Called line identification presentation (Query all)</profile>
- <description>This command related to a network service that provides 'multiple called numbers (called line identifications) service' to an MT. This command enables a called subscriber to get the called line identification of the called party when receiving a mobile terminated call. Set command enables or disables the presentation of the called line identifications at the TE.
-When the presentation of the called line identification at the TE is enabled, +CDIP:[number],[type][,[subaddr],[satype]] response is returned after every RING (or +CRING: [type]; refer subclause 'Cellular result codes +CRC') result code sent from TA to TE. It is manufacturer specific if this response is used when normal voice call is answered.
-Read command gives the status of [n], and also triggers an interrogation of the provision status of the 'multiple called numbers' service. Test command returns values supported as a compound value.
-Defined values
-[n] (parameter sets/shows the result code presentation status to the TE):
-0 disable
-1 enable
-[m] (parameter shows the subscriber 'multiple called numbers' service status in the network):
-0 'multiple called numbers service' is not provisioned
-1 'multiple called numbers service' is provisioned
-2 unknown (e.g. no network, etc.)
-[number]: string type phone number of format specified by [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[subaddr]: string type subaddress of format specified by [satype]
-[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
-</description>
-</spec>
-<spec>
- <command>AT+CCUG=</command>
- <profile>Closed user group (Assign)</profile>
- <description>This command allows control of the Closed User Group supplementary service (refer 3GPP TS 22.085 [21]). Set command enables the served subscriber to select a CUG index, to suppress the Outgoing Access (OA), and to suppress the preferential CUG.
-Set command with [n]=1 enables to control the CUG information on the air interface as a default adjustment for all following outgoing calls. The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standard.
-NOTE: On a per call base CUG functionality is explained in subclause 'ITU‑T V.250 [14] dial command'.
-Defined values
-[n]:
-0 disable CUG temporary mode
-1 enable CUG temporary mode
-[index]:
-0...9 CUG index
-10 no index (preferred CUG taken from subscriber data)
-[info]:
-0 no information
-1 suppress OA
-2 suppress preferential CUG
-3 suppress OA and preferential CUG
-</description>
-</spec>
-<spec>
- <command>AT+CCUG?</command>
- <profile>Closed user group (Query)</profile>
- <description>This command allows control of the Closed User Group supplementary service (refer 3GPP TS 22.085 [21]). Set command enables the served subscriber to select a CUG index, to suppress the Outgoing Access (OA), and to suppress the preferential CUG.
-Set command with [n]=1 enables to control the CUG information on the air interface as a default adjustment for all following outgoing calls. The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standard.
-NOTE: On a per call base CUG functionality is explained in subclause 'ITU‑T V.250 [14] dial command'.
-Defined values
-[n]:
-0 disable CUG temporary mode
-1 enable CUG temporary mode
-[index]:
-0...9 CUG index
-10 no index (preferred CUG taken from subscriber data)
-[info]:
-0 no information
-1 suppress OA
-2 suppress preferential CUG
-3 suppress OA and preferential CUG
-</description>
-</spec>
-<spec>
- <command>AT+CCUG=?</command>
- <profile>Closed user group (Query all)</profile>
- <description>This command allows control of the Closed User Group supplementary service (refer 3GPP TS 22.085 [21]). Set command enables the served subscriber to select a CUG index, to suppress the Outgoing Access (OA), and to suppress the preferential CUG.
-Set command with [n]=1 enables to control the CUG information on the air interface as a default adjustment for all following outgoing calls. The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standard.
-NOTE: On a per call base CUG functionality is explained in subclause 'ITU‑T V.250 [14] dial command'.
-Defined values
-[n]:
-0 disable CUG temporary mode
-1 enable CUG temporary mode
-[index]:
-0...9 CUG index
-10 no index (preferred CUG taken from subscriber data)
-[info]:
-0 no information
-1 suppress OA
-2 suppress preferential CUG
-3 suppress OA and preferential CUG
-</description>
-</spec>
-<spec>
- <command>AT+CCFC=</command>
- <profile>Call forwarding number and conditions (Assign)</profile>
- <description>This command allows control of the call forwarding supplementary service according to 3GPP TS 22.082 [4]. Registration, erasure, activation, deactivation, and status query are supported. When querying the status of a network service ([mode]=2) the response line for 'not active' case ([status]=0) should be returned only if service is not active for any [class].
-Test command returns reason values supported as a compound value.
-Defined values
-[reason]:
-0 unconditional
-1 mobile busy
-2 no reply
-3 not reachable
-4 all call forwarding (refer 3GPP TS 22.030 [19])
-5 all conditional call forwarding (refer 3GPP TS 22.030 [19])
-[mode]:
-0 disable
-1 enable
-2 query status
-3 registration
-4 erasure
-[number]: string type phone number of forwarding address in format specified by [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
-[subaddr]: string type subaddress of format specified by [satype]
-[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8); default 128
-[classx] is a sum of integers each representing a class of information (default 7):
-1 voice (telephony)
-2 data (refers to all bearer services; with [mode]=2 this may refer only to some bearer service if TA does not support values 16, 32, 64 and 128)
-4 fax (facsimile services)
-8 short message service
-16 data circuit sync
-32 data circuit async
-64 dedicated packet access
-128 dedicated PAD access
-[time]:
-1...30 when 'no reply' is enabled or queried, this gives the time in seconds to wait before call is forwarded, default value 20
-[status]:
-0 not active
-1 active
-</description>
-</spec>
-<spec>
- <command>AT+CCFC=?</command>
- <profile>Call forwarding number and conditions (Query all)</profile>
- <description>This command allows control of the call forwarding supplementary service according to 3GPP TS 22.082 [4]. Registration, erasure, activation, deactivation, and status query are supported. When querying the status of a network service ([mode]=2) the response line for 'not active' case ([status]=0) should be returned only if service is not active for any [class].
-Test command returns reason values supported as a compound value.
-Defined values
-[reason]:
-0 unconditional
-1 mobile busy
-2 no reply
-3 not reachable
-4 all call forwarding (refer 3GPP TS 22.030 [19])
-5 all conditional call forwarding (refer 3GPP TS 22.030 [19])
-[mode]:
-0 disable
-1 enable
-2 query status
-3 registration
-4 erasure
-[number]: string type phone number of forwarding address in format specified by [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
-[subaddr]: string type subaddress of format specified by [satype]
-[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8); default 128
-[classx] is a sum of integers each representing a class of information (default 7):
-1 voice (telephony)
-2 data (refers to all bearer services; with [mode]=2 this may refer only to some bearer service if TA does not support values 16, 32, 64 and 128)
-4 fax (facsimile services)
-8 short message service
-16 data circuit sync
-32 data circuit async
-64 dedicated packet access
-128 dedicated PAD access
-[time]:
-1...30 when 'no reply' is enabled or queried, this gives the time in seconds to wait before call is forwarded, default value 20
-[status]:
-0 not active
-1 active
-</description>
-</spec>
-<spec>
- <command>AT+CCWA=</command>
- <profile>Call waiting (Assign)</profile>
- <description>This command allows control of the Call Waiting supplementary service according to 3GPP TS 22.083 [5]. Activation, deactivation and status query are supported. When querying the status of a network service ([mode]=2) the response line for 'not active' case ([status]=0) should be returned only if service is not active for any [class]. Parameter [n] is used to disable/enable the presentation of an unsolicited result code +CCWA: [number],[type],[class],[[alpha]][,[CLI validity][,[subaddr],[satype] [,[priority] ]]] to the TE when call waiting service is enabled. Command should be abortable when network is interrogated.
-The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
-Test command returns values supported as a compound value.
-Defined values
-[n] (sets/shows the result code presentation status to the TE):
-0 disable
-1 enable
-[mode] (when [mode] parameter is not given, network is not interrogated):
-0 disable
-1 enable
-2 query status
-[classx] is a sum of integers each representing a class of information (default 7):
-1 voice (telephony)
-2 data (refers to all bearer services; with [mode]=2 this may refer only to some bearer service if TA does not support values 16, 32, 64 and 128)
-4 fax (facsimile services)
-8 short message service
-16 data circuit sync
-32 data circuit async
-64 dedicated packet access
-128 dedicated PAD access
-[status]:
-0 not active
-1 active
-[number]: string type phone number of calling address in format specified by [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[alpha]: optional string type alphanumeric representation of [number] corresponding to the entry found in phonebook; used character set should be the one selected with command Select TE Character Set +CSCS
-[CLI validity]:
-0 CLI valid
-1 CLI has been withheld by the originator.
-2 CLI is not available due to interworking problems or limitations of originating network.
-When CLI is not available ([CLI validity]=2), [number] shall be an empty string ('') and [type] value will not be significant. Nevertheless, TA may return the recommended value 128 for [type] ((TON/NPI unknown in accordance with TS 24.008 [8] subclause 10.5.4.7).
-When CLI has been withheld by the originator, ([CLI validity]=1) and the CLIP is provisioned with the 'override category' option (refer 3GPP TS 22.081[3] and 3GPP TS 23.081[40]), [number] and [type] is provided. Otherwise, TA shall return the same setting for [number] and [type] as if the CLI was not available.
-[subaddr]: string type subaddress of format specified by [satype]
-[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
-[priority]: optional digit type parameter indicating that the eMLPP priority level of the incoming call. The priority level values are as defined in eMLPP specification 3GPP TS 22.067 [54].
-
-</description>
-</spec>
-<spec>
- <command>AT+CCWA?</command>
- <profile>Call waiting (Query)</profile>
- <description>This command allows control of the Call Waiting supplementary service according to 3GPP TS 22.083 [5]. Activation, deactivation and status query are supported. When querying the status of a network service ([mode]=2) the response line for 'not active' case ([status]=0) should be returned only if service is not active for any [class]. Parameter [n] is used to disable/enable the presentation of an unsolicited result code +CCWA: [number],[type],[class],[[alpha]][,[CLI validity][,[subaddr],[satype] [,[priority] ]]] to the TE when call waiting service is enabled. Command should be abortable when network is interrogated.
-The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
-Test command returns values supported as a compound value.
-Defined values
-[n] (sets/shows the result code presentation status to the TE):
-0 disable
-1 enable
-[mode] (when [mode] parameter is not given, network is not interrogated):
-0 disable
-1 enable
-2 query status
-[classx] is a sum of integers each representing a class of information (default 7):
-1 voice (telephony)
-2 data (refers to all bearer services; with [mode]=2 this may refer only to some bearer service if TA does not support values 16, 32, 64 and 128)
-4 fax (facsimile services)
-8 short message service
-16 data circuit sync
-32 data circuit async
-64 dedicated packet access
-128 dedicated PAD access
-[status]:
-0 not active
-1 active
-[number]: string type phone number of calling address in format specified by [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[alpha]: optional string type alphanumeric representation of [number] corresponding to the entry found in phonebook; used character set should be the one selected with command Select TE Character Set +CSCS
-[CLI validity]:
-0 CLI valid
-1 CLI has been withheld by the originator.
-2 CLI is not available due to interworking problems or limitations of originating network.
-When CLI is not available ([CLI validity]=2), [number] shall be an empty string ('') and [type] value will not be significant. Nevertheless, TA may return the recommended value 128 for [type] ((TON/NPI unknown in accordance with TS 24.008 [8] subclause 10.5.4.7).
-When CLI has been withheld by the originator, ([CLI validity]=1) and the CLIP is provisioned with the 'override category' option (refer 3GPP TS 22.081[3] and 3GPP TS 23.081[40]), [number] and [type] is provided. Otherwise, TA shall return the same setting for [number] and [type] as if the CLI was not available.
-[subaddr]: string type subaddress of format specified by [satype]
-[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
-[priority]: optional digit type parameter indicating that the eMLPP priority level of the incoming call. The priority level values are as defined in eMLPP specification 3GPP TS 22.067 [54].
-
-</description>
-</spec>
-<spec>
- <command>AT+CCWA=?</command>
- <profile>Call waiting (Query all)</profile>
- <description>This command allows control of the Call Waiting supplementary service according to 3GPP TS 22.083 [5]. Activation, deactivation and status query are supported. When querying the status of a network service ([mode]=2) the response line for 'not active' case ([status]=0) should be returned only if service is not active for any [class]. Parameter [n] is used to disable/enable the presentation of an unsolicited result code +CCWA: [number],[type],[class],[[alpha]][,[CLI validity][,[subaddr],[satype] [,[priority] ]]] to the TE when call waiting service is enabled. Command should be abortable when network is interrogated.
-The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
-Test command returns values supported as a compound value.
-Defined values
-[n] (sets/shows the result code presentation status to the TE):
-0 disable
-1 enable
-[mode] (when [mode] parameter is not given, network is not interrogated):
-0 disable
-1 enable
-2 query status
-[classx] is a sum of integers each representing a class of information (default 7):
-1 voice (telephony)
-2 data (refers to all bearer services; with [mode]=2 this may refer only to some bearer service if TA does not support values 16, 32, 64 and 128)
-4 fax (facsimile services)
-8 short message service
-16 data circuit sync
-32 data circuit async
-64 dedicated packet access
-128 dedicated PAD access
-[status]:
-0 not active
-1 active
-[number]: string type phone number of calling address in format specified by [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[alpha]: optional string type alphanumeric representation of [number] corresponding to the entry found in phonebook; used character set should be the one selected with command Select TE Character Set +CSCS
-[CLI validity]:
-0 CLI valid
-1 CLI has been withheld by the originator.
-2 CLI is not available due to interworking problems or limitations of originating network.
-When CLI is not available ([CLI validity]=2), [number] shall be an empty string ('') and [type] value will not be significant. Nevertheless, TA may return the recommended value 128 for [type] ((TON/NPI unknown in accordance with TS 24.008 [8] subclause 10.5.4.7).
-When CLI has been withheld by the originator, ([CLI validity]=1) and the CLIP is provisioned with the 'override category' option (refer 3GPP TS 22.081[3] and 3GPP TS 23.081[40]), [number] and [type] is provided. Otherwise, TA shall return the same setting for [number] and [type] as if the CLI was not available.
-[subaddr]: string type subaddress of format specified by [satype]
-[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
-[priority]: optional digit type parameter indicating that the eMLPP priority level of the incoming call. The priority level values are as defined in eMLPP specification 3GPP TS 22.067 [54].
-
-</description>
-</spec>
-<spec>
- <command>AT+CHLD=</command>
- <profile>Call related supplementary services (Assign)</profile>
- <description>This command allows the control of the following call related services:
-- a call can be temporarily disconnected from the MT but the connection is retained by the network;
-- multiparty conversation (conference calls);
-- the served subscriber who has two calls (one held and the other either active or alerting) can connect the other parties and release the served subscriber's own connection.
-Calls can be put on hold, recovered, released, added to conversation, and transferred similarly as defined in 3GPP TS 22.030 [19]. Refer subclause 9.2 for possible [err] values.
-This is based on the GSM/UMTS supplementary services HOLD (Call Hold; refer 3GPP TS 22.083 [5] clause 2), MPTY (MultiParty; refer 3GPP TS 22.084 [22]) and ECT (Explicit Call Transfer; refer 3GPP TS 22.091 [29]). The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
-NOTE: Call Hold, MultiParty and Explicit Call Transfer are only applicable to teleservice 11.
-It is recommended (although optional) that test command returns a list of operations which are supported. The call number required by some operations shall be denoted by 'x' (e.g. +CHLD: (0,1,1x,2,2x,3)).
-Defined values
-[n]: integer type; equals to numbers entered before SEND button in 3GPP TS 22.030 [19] subclause 6.5.5.1
-NOTE: The 'directory number' case shall be handled with dial command D, and the END case with hangup command H (or +CHUP). The 4*'directory number' case is handled with +CTFR command.
-</description>
-</spec>
-<spec>
- <command>AT+CHLD=?</command>
- <profile>Call related supplementary services (Query all)</profile>
- <description>This command allows the control of the following call related services:
-- a call can be temporarily disconnected from the MT but the connection is retained by the network;
-- multiparty conversation (conference calls);
-- the served subscriber who has two calls (one held and the other either active or alerting) can connect the other parties and release the served subscriber's own connection.
-Calls can be put on hold, recovered, released, added to conversation, and transferred similarly as defined in 3GPP TS 22.030 [19]. Refer subclause 9.2 for possible [err] values.
-This is based on the GSM/UMTS supplementary services HOLD (Call Hold; refer 3GPP TS 22.083 [5] clause 2), MPTY (MultiParty; refer 3GPP TS 22.084 [22]) and ECT (Explicit Call Transfer; refer 3GPP TS 22.091 [29]). The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
-NOTE: Call Hold, MultiParty and Explicit Call Transfer are only applicable to teleservice 11.
-It is recommended (although optional) that test command returns a list of operations which are supported. The call number required by some operations shall be denoted by 'x' (e.g. +CHLD: (0,1,1x,2,2x,3)).
-Defined values
-[n]: integer type; equals to numbers entered before SEND button in 3GPP TS 22.030 [19] subclause 6.5.5.1
-NOTE: The 'directory number' case shall be handled with dial command D, and the END case with hangup command H (or +CHUP). The 4*'directory number' case is handled with +CTFR command.
-</description>
-</spec>
-<spec>
- <command>AT+CTFR=</command>
- <profile>Call deflection (Assign)</profile>
- <description>This refers to a service that causes an incoming alerting call to be forwarded to a specified number. Action command does this. Refer subclause 9.2 for possible [err] values.
-This is based on the GSM/UMTS supplementary service CD (Call Deflection; refer 3GPP TS 22.072 [30]). The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
-NOTE: Call Deflection is only applicable to teleservice 11.
-Defined values
-[number]: string type phone number of format specified by [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
-[subaddr]: string type subaddress of format specified by [satype]
-[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8); default 128
-</description>
-</spec>
-<spec>
- <command>AT+CTFR=?</command>
- <profile>Call deflection (Query all)</profile>
- <description>This refers to a service that causes an incoming alerting call to be forwarded to a specified number. Action command does this. Refer subclause 9.2 for possible [err] values.
-This is based on the GSM/UMTS supplementary service CD (Call Deflection; refer 3GPP TS 22.072 [30]). The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
-NOTE: Call Deflection is only applicable to teleservice 11.
-Defined values
-[number]: string type phone number of format specified by [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
-[subaddr]: string type subaddress of format specified by [satype]
-[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8); default 128
-</description>
-</spec>
-<spec>
- <command>AT+CUSD=</command>
- <profile>Unstructured supplementary service data (Assign)</profile>
- <description>This command allows control of the Unstuctured Supplementary Service Data (USSD) according to 3GPP TS 22.090 [23]. Both network and mobile initiated operations are supported. Parameter [n] is used to disable/enable the presentation of an unsolicited result code (USSD response from the network, or network initiated operation) +CUSD: [m][,[str],[dcs]] to the TE. In addition, value [n]=2 is used to cancel an ongoing USSD session.
-When [str] is given, a mobile initiated USSD‑string or a response USSD‑string to a network initiated operation is sent to the network. The response USSD‑string from the network is returned in a subsequent unsolicited +CUSD result code.
-NOTE: In case of successful mobile initiated operation, TA implemented according to a version prior to 6 of this standard, waits the USSD response from the network and sends it to the TE before the final result code. This will block the AT command interface for the period of the operation. Such TA does not support [n] value 2.
-The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
-Test command returns values supported as a compound value.
-Defined values
-[n]:
-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):
-‑ if [dcs] indicates that 3GPP TS 23.038 [25] 7 bit default alphabet is used:
-‑ if TE character set other than 'HEX' (refer command Select TE Character Set +CSCS): MT/TA converts GSM alphabet into current TE character set according to rules of 3GPP TS 27.005 [24] Annex A
-‑ if TE character set is 'HEX': MT/TA converts each 7‑bit character of GSM alphabet into two IRA character long hexadecimal number (e.g. character (GSM 23) is presented as 17 (IRA 49 and 55))
-‑ if [dcs] indicates that 8‑bit data coding scheme is used: MT/TA converts each 8‑bit octet into two IRA character long hexadecimal number (e.g. octet with integer value 42 is presented to TE as two characters 2A (IRA 50 and 65))
-[dcs]: 3GPP TS 23.038 [25] Cell Broadcast Data Coding Scheme in integer format (default 0)
-[m]:
-0 no further user action required (network initiated USSD‑Notify, or no further information needed after mobile initiated operation)
-1 further user action required (network initiated USSD‑Request, or further information needed after mobile initiated operation)
-2 USSD terminated by network
-3 other local client has responded
-4 operation not supported
-5 network time out
-</description>
-</spec>
-<spec>
- <command>AT+CUSD?</command>
- <profile>Unstructured supplementary service data (Query)</profile>
- <description>This command allows control of the Unstuctured Supplementary Service Data (USSD) according to 3GPP TS 22.090 [23]. Both network and mobile initiated operations are supported. Parameter [n] is used to disable/enable the presentation of an unsolicited result code (USSD response from the network, or network initiated operation) +CUSD: [m][,[str],[dcs]] to the TE. In addition, value [n]=2 is used to cancel an ongoing USSD session.
-When [str] is given, a mobile initiated USSD‑string or a response USSD‑string to a network initiated operation is sent to the network. The response USSD‑string from the network is returned in a subsequent unsolicited +CUSD result code.
-NOTE: In case of successful mobile initiated operation, TA implemented according to a version prior to 6 of this standard, waits the USSD response from the network and sends it to the TE before the final result code. This will block the AT command interface for the period of the operation. Such TA does not support [n] value 2.
-The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
-Test command returns values supported as a compound value.
-Defined values
-[n]:
-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):
-‑ if [dcs] indicates that 3GPP TS 23.038 [25] 7 bit default alphabet is used:
-‑ if TE character set other than 'HEX' (refer command Select TE Character Set +CSCS): MT/TA converts GSM alphabet into current TE character set according to rules of 3GPP TS 27.005 [24] Annex A
-‑ if TE character set is 'HEX': MT/TA converts each 7‑bit character of GSM alphabet into two IRA character long hexadecimal number (e.g. character (GSM 23) is presented as 17 (IRA 49 and 55))
-‑ if [dcs] indicates that 8‑bit data coding scheme is used: MT/TA converts each 8‑bit octet into two IRA character long hexadecimal number (e.g. octet with integer value 42 is presented to TE as two characters 2A (IRA 50 and 65))
-[dcs]: 3GPP TS 23.038 [25] Cell Broadcast Data Coding Scheme in integer format (default 0)
-[m]:
-0 no further user action required (network initiated USSD‑Notify, or no further information needed after mobile initiated operation)
-1 further user action required (network initiated USSD‑Request, or further information needed after mobile initiated operation)
-2 USSD terminated by network
-3 other local client has responded
-4 operation not supported
-5 network time out
-</description>
-</spec>
-<spec>
- <command>AT+CUSD=?</command>
- <profile>Unstructured supplementary service data (Query all)</profile>
- <description>This command allows control of the Unstuctured Supplementary Service Data (USSD) according to 3GPP TS 22.090 [23]. Both network and mobile initiated operations are supported. Parameter [n] is used to disable/enable the presentation of an unsolicited result code (USSD response from the network, or network initiated operation) +CUSD: [m][,[str],[dcs]] to the TE. In addition, value [n]=2 is used to cancel an ongoing USSD session.
-When [str] is given, a mobile initiated USSD‑string or a response USSD‑string to a network initiated operation is sent to the network. The response USSD‑string from the network is returned in a subsequent unsolicited +CUSD result code.
-NOTE: In case of successful mobile initiated operation, TA implemented according to a version prior to 6 of this standard, waits the USSD response from the network and sends it to the TE before the final result code. This will block the AT command interface for the period of the operation. Such TA does not support [n] value 2.
-The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
-Test command returns values supported as a compound value.
-Defined values
-[n]:
-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):
-‑ if [dcs] indicates that 3GPP TS 23.038 [25] 7 bit default alphabet is used:
-‑ if TE character set other than 'HEX' (refer command Select TE Character Set +CSCS): MT/TA converts GSM alphabet into current TE character set according to rules of 3GPP TS 27.005 [24] Annex A
-‑ if TE character set is 'HEX': MT/TA converts each 7‑bit character of GSM alphabet into two IRA character long hexadecimal number (e.g. character (GSM 23) is presented as 17 (IRA 49 and 55))
-‑ if [dcs] indicates that 8‑bit data coding scheme is used: MT/TA converts each 8‑bit octet into two IRA character long hexadecimal number (e.g. octet with integer value 42 is presented to TE as two characters 2A (IRA 50 and 65))
-[dcs]: 3GPP TS 23.038 [25] Cell Broadcast Data Coding Scheme in integer format (default 0)
-[m]:
-0 no further user action required (network initiated USSD‑Notify, or no further information needed after mobile initiated operation)
-1 further user action required (network initiated USSD‑Request, or further information needed after mobile initiated operation)
-2 USSD terminated by network
-3 other local client has responded
-4 operation not supported
-5 network time out
-</description>
-</spec>
-<spec>
- <command>AT+CAOC[=</command>
- <profile>Advice of Charge (Assign)</profile>
- <description>This refers to Advice of Charge supplementary service (3GPP TS 22.024 [26] and 3GPP TS 22.086 [27]) that enables subscriber to get information about the cost of calls. With [mode]=0, the execute command returns the current call meter value from the MT.
-The command also includes the possibility to enable an unsolicited event reporting of the CCM information. The unsolicited result code +CCCM: [ccm] is sent when the CCM value changes, but not more that every 10 seconds. Deactivation of the unsolicited event reporting is made with the same command.
-Refer subclause 9.2 for possible [err] values.
-NOTE: Advice of Charge values stored in the SIM card or in the active application in the UICC (GSM or USIM) (ACM, ACMmax, PUCT) can be accessed with generic or restricted SIM access command (+CSIM or +CRSM)).Those values can be more readily accessed with commands +CACM, +CAMM and +CPUC.
-The Read command indicates whether the unsolicited reporting is activated or not. Read command is available when the unsolicited result code is supported.
-It is recommended (although optional) that the test command returns the supported mode values.
-Defined values
-[mode]:
-0 query CCM value
-1 deactivate the unsolicited reporting of CCM value
-2 activate the unsolicited reporting of CCM value
-[ccm]: string type; three bytes of the current call meter value in hexadecimal format (e.g. '00001E' indicates decimal value 30); value is in home units and bytes are similarly coded as ACMmax value in the SIM card or in the active application in the UICC (GSM or USIM)
-</description>
-</spec>
-<spec>
- <command>AT+CAOC?</command>
- <profile>Advice of Charge (Query)</profile>
- <description>This refers to Advice of Charge supplementary service (3GPP TS 22.024 [26] and 3GPP TS 22.086 [27]) that enables subscriber to get information about the cost of calls. With [mode]=0, the execute command returns the current call meter value from the MT.
-The command also includes the possibility to enable an unsolicited event reporting of the CCM information. The unsolicited result code +CCCM: [ccm] is sent when the CCM value changes, but not more that every 10 seconds. Deactivation of the unsolicited event reporting is made with the same command.
-Refer subclause 9.2 for possible [err] values.
-NOTE: Advice of Charge values stored in the SIM card or in the active application in the UICC (GSM or USIM) (ACM, ACMmax, PUCT) can be accessed with generic or restricted SIM access command (+CSIM or +CRSM)).Those values can be more readily accessed with commands +CACM, +CAMM and +CPUC.
-The Read command indicates whether the unsolicited reporting is activated or not. Read command is available when the unsolicited result code is supported.
-It is recommended (although optional) that the test command returns the supported mode values.
-Defined values
-[mode]:
-0 query CCM value
-1 deactivate the unsolicited reporting of CCM value
-2 activate the unsolicited reporting of CCM value
-[ccm]: string type; three bytes of the current call meter value in hexadecimal format (e.g. '00001E' indicates decimal value 30); value is in home units and bytes are similarly coded as ACMmax value in the SIM card or in the active application in the UICC (GSM or USIM)
-</description>
-</spec>
-<spec>
- <command>AT+CAOC=?</command>
- <profile>Advice of Charge (Query all)</profile>
- <description>This refers to Advice of Charge supplementary service (3GPP TS 22.024 [26] and 3GPP TS 22.086 [27]) that enables subscriber to get information about the cost of calls. With [mode]=0, the execute command returns the current call meter value from the MT.
-The command also includes the possibility to enable an unsolicited event reporting of the CCM information. The unsolicited result code +CCCM: [ccm] is sent when the CCM value changes, but not more that every 10 seconds. Deactivation of the unsolicited event reporting is made with the same command.
-Refer subclause 9.2 for possible [err] values.
-NOTE: Advice of Charge values stored in the SIM card or in the active application in the UICC (GSM or USIM) (ACM, ACMmax, PUCT) can be accessed with generic or restricted SIM access command (+CSIM or +CRSM)).Those values can be more readily accessed with commands +CACM, +CAMM and +CPUC.
-The Read command indicates whether the unsolicited reporting is activated or not. Read command is available when the unsolicited result code is supported.
-It is recommended (although optional) that the test command returns the supported mode values.
-Defined values
-[mode]:
-0 query CCM value
-1 deactivate the unsolicited reporting of CCM value
-2 activate the unsolicited reporting of CCM value
-[ccm]: string type; three bytes of the current call meter value in hexadecimal format (e.g. '00001E' indicates decimal value 30); value is in home units and bytes are similarly coded as ACMmax value in the SIM card or in the active application in the UICC (GSM or USIM)
-</description>
-</spec>
-<spec>
- <command>AT+CSSN=</command>
- <profile>Supplementary service notifications (Assign)</profile>
- <description>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.
-When [n]=1 and a supplementary service notification is received after a mobile originated call setup, intermediate result code +CSSI: [code1][,[index]] is sent to TE before any other MO call setup result codes presented in the present document or in V.250 [14]. When several different [code1]s are received from the network, each of them shall have its own +CSSI result code.
-When [m]=1 and a supplementary service notification is received during a mobile terminated call setup or during a call, or when a forward check supplementary service notification is received, unsolicited result code +CSSU: [code2][,[index][,[number],[type][,[subaddr],[satype]]]] is sent to TE. In case of MT call setup, result code is sent after every +CLIP result code (refer command 'Calling line identification presentation +CLIP') and when several different [code2]s are received from the network, each of them shall have its own +CSSU result code.
-Test command returns values supported as a compound value.
-Defined values
-[n] (parameter sets/shows the +CSSI result code presentation status to the TE):
-0 disable
-1 enable
-[m] (parameter sets/shows the +CSSU result code presentation status to the TE):
-0 disable
-1 enable
-[code1] (it is manufacturer specific, which of these codes are supported):
-0 unconditional call forwarding is active
-1 some of the conditional call forwardings are active
-2 call has been forwarded
-3 call is waiting
-4 this is a CUG call (also [index] present)
-5 outgoing calls are barred
-6 incoming calls are barred
-7 CLIR suppression rejected
-8 call has been deflected
-[index]: refer 'Closed user group +CCUG'
-[code2] (it is manufacturer specific, which of these codes are supported):
-0 this is a forwarded call (MT call setup)
-1 this is a CUG call (also [index] present) (MT call setup)
-2 call has been put on hold (during a voice call)
-3 call has been retrieved (during a voice call)
-4 multiparty call entered (during a voice call)
-5 call on hold has been released (this is not a SS notification) (during a voice call)
-6 forward check SS message received (can be received whenever)
-7 call is being connected (alerting) with the remote party in alerting state in explicit call transfer operation (during a voice call)
-8 call has been connected with the other remote party in explicit call transfer operation (also number and subaddress parameters may be present) (during a voice call or MT call setup)
-9 this is a deflected call (MT call setup)
-10 sdditional incoming call forwarded
-[number]: string type phone number of format specified by [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[subaddr]: string type subaddress of format specified by [satype]
-[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
-</description>
-</spec>
-<spec>
- <command>AT+CSSN?</command>
- <profile>Supplementary service notifications (Query)</profile>
- <description>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.
-When [n]=1 and a supplementary service notification is received after a mobile originated call setup, intermediate result code +CSSI: [code1][,[index]] is sent to TE before any other MO call setup result codes presented in the present document or in V.250 [14]. When several different [code1]s are received from the network, each of them shall have its own +CSSI result code.
-When [m]=1 and a supplementary service notification is received during a mobile terminated call setup or during a call, or when a forward check supplementary service notification is received, unsolicited result code +CSSU: [code2][,[index][,[number],[type][,[subaddr],[satype]]]] is sent to TE. In case of MT call setup, result code is sent after every +CLIP result code (refer command 'Calling line identification presentation +CLIP') and when several different [code2]s are received from the network, each of them shall have its own +CSSU result code.
-Test command returns values supported as a compound value.
-Defined values
-[n] (parameter sets/shows the +CSSI result code presentation status to the TE):
-0 disable
-1 enable
-[m] (parameter sets/shows the +CSSU result code presentation status to the TE):
-0 disable
-1 enable
-[code1] (it is manufacturer specific, which of these codes are supported):
-0 unconditional call forwarding is active
-1 some of the conditional call forwardings are active
-2 call has been forwarded
-3 call is waiting
-4 this is a CUG call (also [index] present)
-5 outgoing calls are barred
-6 incoming calls are barred
-7 CLIR suppression rejected
-8 call has been deflected
-[index]: refer 'Closed user group +CCUG'
-[code2] (it is manufacturer specific, which of these codes are supported):
-0 this is a forwarded call (MT call setup)
-1 this is a CUG call (also [index] present) (MT call setup)
-2 call has been put on hold (during a voice call)
-3 call has been retrieved (during a voice call)
-4 multiparty call entered (during a voice call)
-5 call on hold has been released (this is not a SS notification) (during a voice call)
-6 forward check SS message received (can be received whenever)
-7 call is being connected (alerting) with the remote party in alerting state in explicit call transfer operation (during a voice call)
-8 call has been connected with the other remote party in explicit call transfer operation (also number and subaddress parameters may be present) (during a voice call or MT call setup)
-9 this is a deflected call (MT call setup)
-10 sdditional incoming call forwarded
-[number]: string type phone number of format specified by [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[subaddr]: string type subaddress of format specified by [satype]
-[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
-</description>
-</spec>
-<spec>
- <command>AT+CSSN=?</command>
- <profile>Supplementary service notifications (Query all)</profile>
- <description>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.
-When [n]=1 and a supplementary service notification is received after a mobile originated call setup, intermediate result code +CSSI: [code1][,[index]] is sent to TE before any other MO call setup result codes presented in the present document or in V.250 [14]. When several different [code1]s are received from the network, each of them shall have its own +CSSI result code.
-When [m]=1 and a supplementary service notification is received during a mobile terminated call setup or during a call, or when a forward check supplementary service notification is received, unsolicited result code +CSSU: [code2][,[index][,[number],[type][,[subaddr],[satype]]]] is sent to TE. In case of MT call setup, result code is sent after every +CLIP result code (refer command 'Calling line identification presentation +CLIP') and when several different [code2]s are received from the network, each of them shall have its own +CSSU result code.
-Test command returns values supported as a compound value.
-Defined values
-[n] (parameter sets/shows the +CSSI result code presentation status to the TE):
-0 disable
-1 enable
-[m] (parameter sets/shows the +CSSU result code presentation status to the TE):
-0 disable
-1 enable
-[code1] (it is manufacturer specific, which of these codes are supported):
-0 unconditional call forwarding is active
-1 some of the conditional call forwardings are active
-2 call has been forwarded
-3 call is waiting
-4 this is a CUG call (also [index] present)
-5 outgoing calls are barred
-6 incoming calls are barred
-7 CLIR suppression rejected
-8 call has been deflected
-[index]: refer 'Closed user group +CCUG'
-[code2] (it is manufacturer specific, which of these codes are supported):
-0 this is a forwarded call (MT call setup)
-1 this is a CUG call (also [index] present) (MT call setup)
-2 call has been put on hold (during a voice call)
-3 call has been retrieved (during a voice call)
-4 multiparty call entered (during a voice call)
-5 call on hold has been released (this is not a SS notification) (during a voice call)
-6 forward check SS message received (can be received whenever)
-7 call is being connected (alerting) with the remote party in alerting state in explicit call transfer operation (during a voice call)
-8 call has been connected with the other remote party in explicit call transfer operation (also number and subaddress parameters may be present) (during a voice call or MT call setup)
-9 this is a deflected call (MT call setup)
-10 sdditional incoming call forwarded
-[number]: string type phone number of format specified by [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[subaddr]: string type subaddress of format specified by [satype]
-[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
-</description>
-</spec>
-<spec>
- <command>AT+CLCC</command>
- <profile>List current calls </profile>
- <description>Returns list of current calls of MT. If command succeeds but no calls are available, no information response is sent to TE. Refer subclause 9.2 for possible [err] values.
-Defined values
-[idx]: integer type; call identification number as described in 3GPP TS 22.030 [19] subclause 4.5.5.1; this number can be used in +CHLD command operations
-[dir]:
-0 mobile originated (MO) call
-1 mobile terminated (MT) call
-[stat] (state of the call):
-0 active
-1 held
-2 dialing (MO call)
-3 alerting (MO call)
-4 incoming (MT call)
-5 waiting (MT call)
-[mode] (bearer/teleservice):
-0 voice
-1 data
-2 fax
-3 voice followed by data, voice mode
-4 alternating voice/data, voice mode
-5 alternating voice/fax, voice mode
-6 voice followed by data, data mode
-7 alternating voice/data, data mode
-8 alternating voice/fax, fax mode
-9 unknown
-[mpty]:
-0 call is not one of multiparty (conference) call parties
-1 call is one of multiparty (conference) call parties
-[number]: string type phone number in format specified by [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[alpha]: string type alphanumeric representation of [number] corresponding to the entry found in phonebook; used character set should be the one selected with command Select TE Character Set +CSCS
-[priority]: optional digit type parameter indicating the eMLPP priority level of the call, values specified in 3GPP TS 22.067 [54]
-</description>
-</spec>
-<spec>
- <command>AT+CLCC=?</command>
- <profile>List current calls (Query all)</profile>
- <description>Returns list of current calls of MT. If command succeeds but no calls are available, no information response is sent to TE. Refer subclause 9.2 for possible [err] values.
-Defined values
-[idx]: integer type; call identification number as described in 3GPP TS 22.030 [19] subclause 4.5.5.1; this number can be used in +CHLD command operations
-[dir]:
-0 mobile originated (MO) call
-1 mobile terminated (MT) call
-[stat] (state of the call):
-0 active
-1 held
-2 dialing (MO call)
-3 alerting (MO call)
-4 incoming (MT call)
-5 waiting (MT call)
-[mode] (bearer/teleservice):
-0 voice
-1 data
-2 fax
-3 voice followed by data, voice mode
-4 alternating voice/data, voice mode
-5 alternating voice/fax, voice mode
-6 voice followed by data, data mode
-7 alternating voice/data, data mode
-8 alternating voice/fax, fax mode
-9 unknown
-[mpty]:
-0 call is not one of multiparty (conference) call parties
-1 call is one of multiparty (conference) call parties
-[number]: string type phone number in format specified by [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[alpha]: string type alphanumeric representation of [number] corresponding to the entry found in phonebook; used character set should be the one selected with command Select TE Character Set +CSCS
-[priority]: optional digit type parameter indicating the eMLPP priority level of the call, values specified in 3GPP TS 22.067 [54]
-</description>
-</spec>
-<spec>
- <command>AT+CPOL=</command>
- <profile>Preferred PLMN list (Assign)</profile>
- <description>This command is used to edit the PLMN selector with Access Technology lists in the SIM card or active application in the UICC(GSM or USIM).
-Execute command writes an entry in the SIM/USIM list of preferred PLMNs, previously selected by the command +CPLS. If no list has been previously selected, the User controlled PLMN selector with Access Technology, EFPLMNwAcT, is the one accessed by default. If [index] is given but [oper] is left out, entry is deleted. If [oper] is given but [index] is left out, [oper] is put in the next free location. If only [format] is given, the format of the [oper] in the read command is changed. The Access Technology selection parameters, [GSM_AcT], [GSM_Compact_AcT] and [UTRAN_AcT], are required when writing User controlled PLMN selector with Access Technology, EF EFPLMNwAcT, Operator controlled PLMN selector with Access Technology EFOPLMNwAcT and HPLMN selector with Access Technology EFHPLMNwAcT, see TS 31.102. Refer subclause 9.2 for possible [err] values.
-NOTE1: MT may also update the User controlled PLMN selector with Access Technology, EFPLMNwAcT, automatically when new networks are selected.
-NOTE2: The Operator controlled PLMN selector with Access Technology EFOPLMNwAcT, can only be written if the write access condition in the SIM/USIM has been previously verified.
-Read command returns all used entries from the SIM/USIM list of preferred PLMNs, previously selected by the command +CPLS, with the Access Technologies for each PLMN in the list.
-Test command returns the whole index range supported by the SIM.
-Defined values
-[indexn]: integer type; the order number of operator in the SIM/USIM preferred operator list
-[format]:
-0 long format alphanumeric [oper]
-1 short format alphanumeric [oper]
-2 numeric [oper]
-[opern]: string type; [format] indicates if the format is alphanumeric or numeric (see +COPS)
-[GSM_AcTn]: GSM access technology:
-0 access technology not selected
-1access technology selected
-[GSM_Compact_AcTn]: GSM compact access technology:
-0 access technology not selected
-1access technology selected
-[UTRA_AcTn]: UTRA access technology:
-0 access technology not selected
-1 access technology selected
-</description>
-</spec>
-<spec>
- <command>AT+CPOL?</command>
- <profile>Preferred PLMN list (Query)</profile>
- <description>This command is used to edit the PLMN selector with Access Technology lists in the SIM card or active application in the UICC(GSM or USIM).
-Execute command writes an entry in the SIM/USIM list of preferred PLMNs, previously selected by the command +CPLS. If no list has been previously selected, the User controlled PLMN selector with Access Technology, EFPLMNwAcT, is the one accessed by default. If [index] is given but [oper] is left out, entry is deleted. If [oper] is given but [index] is left out, [oper] is put in the next free location. If only [format] is given, the format of the [oper] in the read command is changed. The Access Technology selection parameters, [GSM_AcT], [GSM_Compact_AcT] and [UTRAN_AcT], are required when writing User controlled PLMN selector with Access Technology, EF EFPLMNwAcT, Operator controlled PLMN selector with Access Technology EFOPLMNwAcT and HPLMN selector with Access Technology EFHPLMNwAcT, see TS 31.102. Refer subclause 9.2 for possible [err] values.
-NOTE1: MT may also update the User controlled PLMN selector with Access Technology, EFPLMNwAcT, automatically when new networks are selected.
-NOTE2: The Operator controlled PLMN selector with Access Technology EFOPLMNwAcT, can only be written if the write access condition in the SIM/USIM has been previously verified.
-Read command returns all used entries from the SIM/USIM list of preferred PLMNs, previously selected by the command +CPLS, with the Access Technologies for each PLMN in the list.
-Test command returns the whole index range supported by the SIM.
-Defined values
-[indexn]: integer type; the order number of operator in the SIM/USIM preferred operator list
-[format]:
-0 long format alphanumeric [oper]
-1 short format alphanumeric [oper]
-2 numeric [oper]
-[opern]: string type; [format] indicates if the format is alphanumeric or numeric (see +COPS)
-[GSM_AcTn]: GSM access technology:
-0 access technology not selected
-1access technology selected
-[GSM_Compact_AcTn]: GSM compact access technology:
-0 access technology not selected
-1access technology selected
-[UTRA_AcTn]: UTRA access technology:
-0 access technology not selected
-1 access technology selected
-</description>
-</spec>
-<spec>
- <command>AT+CPOL=?</command>
- <profile>Preferred PLMN list (Query all)</profile>
- <description>This command is used to edit the PLMN selector with Access Technology lists in the SIM card or active application in the UICC(GSM or USIM).
-Execute command writes an entry in the SIM/USIM list of preferred PLMNs, previously selected by the command +CPLS. If no list has been previously selected, the User controlled PLMN selector with Access Technology, EFPLMNwAcT, is the one accessed by default. If [index] is given but [oper] is left out, entry is deleted. If [oper] is given but [index] is left out, [oper] is put in the next free location. If only [format] is given, the format of the [oper] in the read command is changed. The Access Technology selection parameters, [GSM_AcT], [GSM_Compact_AcT] and [UTRAN_AcT], are required when writing User controlled PLMN selector with Access Technology, EF EFPLMNwAcT, Operator controlled PLMN selector with Access Technology EFOPLMNwAcT and HPLMN selector with Access Technology EFHPLMNwAcT, see TS 31.102. Refer subclause 9.2 for possible [err] values.
-NOTE1: MT may also update the User controlled PLMN selector with Access Technology, EFPLMNwAcT, automatically when new networks are selected.
-NOTE2: The Operator controlled PLMN selector with Access Technology EFOPLMNwAcT, can only be written if the write access condition in the SIM/USIM has been previously verified.
-Read command returns all used entries from the SIM/USIM list of preferred PLMNs, previously selected by the command +CPLS, with the Access Technologies for each PLMN in the list.
-Test command returns the whole index range supported by the SIM.
-Defined values
-[indexn]: integer type; the order number of operator in the SIM/USIM preferred operator list
-[format]:
-0 long format alphanumeric [oper]
-1 short format alphanumeric [oper]
-2 numeric [oper]
-[opern]: string type; [format] indicates if the format is alphanumeric or numeric (see +COPS)
-[GSM_AcTn]: GSM access technology:
-0 access technology not selected
-1access technology selected
-[GSM_Compact_AcTn]: GSM compact access technology:
-0 access technology not selected
-1access technology selected
-[UTRA_AcTn]: UTRA access technology:
-0 access technology not selected
-1 access technology selected
-</description>
-</spec>
-<spec>
- <command>AT+CPLS=</command>
- <profile>Selection of preferred PLMN list (Assign)</profile>
- <description>This command is used to select one PLMN selector with Access Technology list in the SIM card or active application in the UICC(GSM or USIM), that is used by +CPOL command.
-Execute command selects a list in the SIM/USIM. Refer subclause 9.2 for possible [err] values.
-Read command returns the selected PLMN selector list from the SIM/USIM
-Test command returns the whole index range supported lists by the SIM./USIM
-Defined values
-[list]:
-0 User controlled PLMN selector with Access Technology EFPLMNwAcT, if not found in the SIM/UICC then PLMN preferred list EFPLMNsel (this file is only available in SIM card or GSM application selected in UICC)
-1 Operator controlled PLMN selector with Access Technology EFOPLMNwAcT
-2HPLMN selector with Access Technology EFHPLMNwAcT
-</description>
-</spec>
-<spec>
- <command>AT+CPLS?</command>
- <profile>Selection of preferred PLMN list (Query)</profile>
- <description>This command is used to select one PLMN selector with Access Technology list in the SIM card or active application in the UICC(GSM or USIM), that is used by +CPOL command.
-Execute command selects a list in the SIM/USIM. Refer subclause 9.2 for possible [err] values.
-Read command returns the selected PLMN selector list from the SIM/USIM
-Test command returns the whole index range supported lists by the SIM./USIM
-Defined values
-[list]:
-0 User controlled PLMN selector with Access Technology EFPLMNwAcT, if not found in the SIM/UICC then PLMN preferred list EFPLMNsel (this file is only available in SIM card or GSM application selected in UICC)
-1 Operator controlled PLMN selector with Access Technology EFOPLMNwAcT
-2HPLMN selector with Access Technology EFHPLMNwAcT
-</description>
-</spec>
-<spec>
- <command>AT+CPLS=?</command>
- <profile>Selection of preferred PLMN list (Query all)</profile>
- <description>This command is used to select one PLMN selector with Access Technology list in the SIM card or active application in the UICC(GSM or USIM), that is used by +CPOL command.
-Execute command selects a list in the SIM/USIM. Refer subclause 9.2 for possible [err] values.
-Read command returns the selected PLMN selector list from the SIM/USIM
-Test command returns the whole index range supported lists by the SIM./USIM
-Defined values
-[list]:
-0 User controlled PLMN selector with Access Technology EFPLMNwAcT, if not found in the SIM/UICC then PLMN preferred list EFPLMNsel (this file is only available in SIM card or GSM application selected in UICC)
-1 Operator controlled PLMN selector with Access Technology EFOPLMNwAcT
-2HPLMN selector with Access Technology EFHPLMNwAcT
-</description>
-</spec>
-<spec>
- <command>AT+COPN</command>
- <profile>Read operator names </profile>
- <description>Execute command returns the list of operator names from the MT. Each operator code [numericn] that has an alphanumeric equivalent [alphan] in the MT memory shall be returned. Refer subclause 9.2 for possible [err] values.
-Defined values
-[numericn]: string type; operator in numeric format (see +COPS)
-[alphan]: string type; operator in long alphanumeric format (see +COPS)
-</description>
-</spec>
-<spec>
- <command>AT+COPN=?</command>
- <profile>Read operator names (Query all)</profile>
- <description>Execute command returns the list of operator names from the MT. Each operator code [numericn] that has an alphanumeric equivalent [alphan] in the MT memory shall be returned. Refer subclause 9.2 for possible [err] values.
-Defined values
-[numericn]: string type; operator in numeric format (see +COPS)
-[alphan]: string type; operator in long alphanumeric format (see +COPS)
-</description>
-</spec>
-<spec>
- <command>AT+CFCS=</command>
- <profile>Fast call setup conditions (Assign)</profile>
- <description>The set command is used to edit the status of the priority level for fast call set-up stored on the SIM card or in the active application in the UICC (GSM or USIM) EFeMLPP. If the user has no subscription to the priority level status he wants to edit, an ERROR or +CME ERROR result code is returned.
-The read command returns all enabled priority levels for fast call set-up stored on the SIM card or in the active application in the UICC (GSM or USIM) EFeMLPP. If no priority level is enabled for fast call set-up, the result code OK is returned.
-
-Defined values
-[priority]: integer type, eMLPP fast call set-up priority level {0,1,..,4} as defined in 3GPP TS 22.067 [45]
-[status]: integer type
-0 disable [priority] for fast call set-up
-1 enable [priority] for fast call set-up
-</description>
-</spec>
-<spec>
- <command>AT+CFCS?</command>
- <profile>Fast call setup conditions (Query)</profile>
- <description>The set command is used to edit the status of the priority level for fast call set-up stored on the SIM card or in the active application in the UICC (GSM or USIM) EFeMLPP. If the user has no subscription to the priority level status he wants to edit, an ERROR or +CME ERROR result code is returned.
-The read command returns all enabled priority levels for fast call set-up stored on the SIM card or in the active application in the UICC (GSM or USIM) EFeMLPP. If no priority level is enabled for fast call set-up, the result code OK is returned.
-
-Defined values
-[priority]: integer type, eMLPP fast call set-up priority level {0,1,..,4} as defined in 3GPP TS 22.067 [45]
-[status]: integer type
-0 disable [priority] for fast call set-up
-1 enable [priority] for fast call set-up
-</description>
-</spec>
-<spec>
- <command>AT+CFCS=?</command>
- <profile>Fast call setup conditions (Query all)</profile>
- <description>The set command is used to edit the status of the priority level for fast call set-up stored on the SIM card or in the active application in the UICC (GSM or USIM) EFeMLPP. If the user has no subscription to the priority level status he wants to edit, an ERROR or +CME ERROR result code is returned.
-The read command returns all enabled priority levels for fast call set-up stored on the SIM card or in the active application in the UICC (GSM or USIM) EFeMLPP. If no priority level is enabled for fast call set-up, the result code OK is returned.
-
-Defined values
-[priority]: integer type, eMLPP fast call set-up priority level {0,1,..,4} as defined in 3GPP TS 22.067 [45]
-[status]: integer type
-0 disable [priority] for fast call set-up
-1 enable [priority] for fast call set-up
-</description>
-</spec>
-<spec>
- <command>AT+CAAP=</command>
- <profile>Automatic answer for eMLPP Service (Assign)</profile>
- <description>The set command is used to edit the status of the priority level for automatic answering for eMLPP stored on the SIM card or in the active application in the UICC (GSM or USIM) EFAAeM. If the user has no subscription to the priority level status he wants to edit, an ERROR or +CME ERROR result code is returned.
-The read command returns all enabled priority levels for automatic answering for eMLPP stored on the SIM card or in the active application in the UICC (GSM or USIM) EFAAeM. If no priority level is enabled for automatic answering for eMLPP, the result code OK is returned.
-Defined values
-[priority]: eMLPP automatic answer priority level value {A,B,0,1,..,4} as defined in 3GPP TS 22.067 [45]
-[status]: integer type
-0 disable eMLPP [priority] for automatic answering
-1 enable eMLPP [priority] for automatic answering
-</description>
-</spec>
-<spec>
- <command>AT+CAAP?</command>
- <profile>Automatic answer for eMLPP Service (Query)</profile>
- <description>The set command is used to edit the status of the priority level for automatic answering for eMLPP stored on the SIM card or in the active application in the UICC (GSM or USIM) EFAAeM. If the user has no subscription to the priority level status he wants to edit, an ERROR or +CME ERROR result code is returned.
-The read command returns all enabled priority levels for automatic answering for eMLPP stored on the SIM card or in the active application in the UICC (GSM or USIM) EFAAeM. If no priority level is enabled for automatic answering for eMLPP, the result code OK is returned.
-Defined values
-[priority]: eMLPP automatic answer priority level value {A,B,0,1,..,4} as defined in 3GPP TS 22.067 [45]
-[status]: integer type
-0 disable eMLPP [priority] for automatic answering
-1 enable eMLPP [priority] for automatic answering
-</description>
-</spec>
-<spec>
- <command>AT+CAAP=?</command>
- <profile>Automatic answer for eMLPP Service (Query all)</profile>
- <description>The set command is used to edit the status of the priority level for automatic answering for eMLPP stored on the SIM card or in the active application in the UICC (GSM or USIM) EFAAeM. If the user has no subscription to the priority level status he wants to edit, an ERROR or +CME ERROR result code is returned.
-The read command returns all enabled priority levels for automatic answering for eMLPP stored on the SIM card or in the active application in the UICC (GSM or USIM) EFAAeM. If no priority level is enabled for automatic answering for eMLPP, the result code OK is returned.
-Defined values
-[priority]: eMLPP automatic answer priority level value {A,B,0,1,..,4} as defined in 3GPP TS 22.067 [45]
-[status]: integer type
-0 disable eMLPP [priority] for automatic answering
-1 enable eMLPP [priority] for automatic answering
-</description>
-</spec>
-<spec>
- <command>AT+CPAS</command>
- <profile>Phone activity status </profile>
- <description>Execution command returns the activity status [pas] of the MT. It can be used to interrogate the MT before requesting action from the phone. Refer subclause 9.2 for possible [err] values.
-Test command returns values supported by the MT as a compound value.
-Defined values
-[pas]:
-0 ready (MT allows commands from TA/TE)
-1 unavailable (MT does not allow commands from TA/TE)
-2 unknown (MT is not guaranteed to respond to instructions)
-3 ringing (MT is ready for commands from TA/TE, but the ringer is active)
-4 call in progress (MT is ready for commands from TA/TE, but a call is in progress)
-5 asleep (MT is unable to process commands from TA/TE because it is in a low functionality state)
-also all other values below 128 are reserved by the present document.
-</description>
-</spec>
-<spec>
- <command>AT+CPAS=?</command>
- <profile>Phone activity status (Query all)</profile>
- <description>Execution command returns the activity status [pas] of the MT. It can be used to interrogate the MT before requesting action from the phone. Refer subclause 9.2 for possible [err] values.
-Test command returns values supported by the MT as a compound value.
-Defined values
-[pas]:
-0 ready (MT allows commands from TA/TE)
-1 unavailable (MT does not allow commands from TA/TE)
-2 unknown (MT is not guaranteed to respond to instructions)
-3 ringing (MT is ready for commands from TA/TE, but the ringer is active)
-4 call in progress (MT is ready for commands from TA/TE, but a call is in progress)
-5 asleep (MT is unable to process commands from TA/TE because it is in a low functionality state)
-also all other values below 128 are reserved by the present document.
-</description>
-</spec>
-<spec>
- <command>AT+CFUN=</command>
- <profile>Set phone functionality (Assign)</profile>
- <description>Set command selects the level of functionality [fun] in the MT. Level 'full functionality' is where the highest level of power is drawn. 'Minimum functionality' is where minimum power is drawn. Level of functionality between these may also be specified by manufacturers. When supported by manufacturers, MT resetting with [rst] parameter may be utilized. Refer subclause 9.2 for possible [err] values.
-NOTE: It is manufacturer specific does this command affect network registration. Command Operator Selection +COPS is used to force registration/deregistration.
-Test command returns values supported by the MT as a compound value.
-Defined values
-[fun]:
-0 minimum functionality
-1 full functionality
-2 disable phone transmit RF circuits only
-3 disable phone receive RF circuits only
-4 disable phone both transmit and receive RF circuits
-5...127 reserved for manufacturers as intermediate states between full and minimum functionality
-[rst]:
-0 do not reset the MT before setting it to [fun] power level
-NOTE: This shall be always default when [rst] is not given.
-1 reset the MT before setting it to [fun] power level
-</description>
-</spec>
-<spec>
- <command>AT+CFUN?</command>
- <profile>Set phone functionality (Query)</profile>
- <description>Set command selects the level of functionality [fun] in the MT. Level 'full functionality' is where the highest level of power is drawn. 'Minimum functionality' is where minimum power is drawn. Level of functionality between these may also be specified by manufacturers. When supported by manufacturers, MT resetting with [rst] parameter may be utilized. Refer subclause 9.2 for possible [err] values.
-NOTE: It is manufacturer specific does this command affect network registration. Command Operator Selection +COPS is used to force registration/deregistration.
-Test command returns values supported by the MT as a compound value.
-Defined values
-[fun]:
-0 minimum functionality
-1 full functionality
-2 disable phone transmit RF circuits only
-3 disable phone receive RF circuits only
-4 disable phone both transmit and receive RF circuits
-5...127 reserved for manufacturers as intermediate states between full and minimum functionality
-[rst]:
-0 do not reset the MT before setting it to [fun] power level
-NOTE: This shall be always default when [rst] is not given.
-1 reset the MT before setting it to [fun] power level
-</description>
-</spec>
-<spec>
- <command>AT+CFUN=?</command>
- <profile>Set phone functionality (Query all)</profile>
- <description>Set command selects the level of functionality [fun] in the MT. Level 'full functionality' is where the highest level of power is drawn. 'Minimum functionality' is where minimum power is drawn. Level of functionality between these may also be specified by manufacturers. When supported by manufacturers, MT resetting with [rst] parameter may be utilized. Refer subclause 9.2 for possible [err] values.
-NOTE: It is manufacturer specific does this command affect network registration. Command Operator Selection +COPS is used to force registration/deregistration.
-Test command returns values supported by the MT as a compound value.
-Defined values
-[fun]:
-0 minimum functionality
-1 full functionality
-2 disable phone transmit RF circuits only
-3 disable phone receive RF circuits only
-4 disable phone both transmit and receive RF circuits
-5...127 reserved for manufacturers as intermediate states between full and minimum functionality
-[rst]:
-0 do not reset the MT before setting it to [fun] power level
-NOTE: This shall be always default when [rst] is not given.
-1 reset the MT before setting it to [fun] power level
-</description>
-</spec>
-<spec>
- <command>AT+CPIN=</command>
- <profile>Enter PIN (Assign)</profile>
- <description>Set command sends to the MT a password which is necessary before it can be operated (SIM PIN, SIM PUK, PH‑SIM PIN, etc.). If the PIN is to be entered twice, the TA shall automatically repeat the PIN. If no PIN request is pending, no action is taken towards MT and an error message, +CME ERROR, is returned to TE. Refer subclause 9.2 for possible [err] values.
-NOTE: SIM PIN, SIM PUK, PH-SIM PIN, PH-FSIM PIN, PH-FSIM PUK, SIM PIN2 and SIM PUK2 refer to the PIN of the selected application on the UICC. For example, in an UTRAN context, the selected application on a UICC should be a USIM and the SIM PIN then represents the PIN of the selected USIM. See TS 31.101 [65] for further details on application selection on the UICC.
-If the PIN required is SIM PUK or SIM PUK2, the second pin is required. This second pin, [newpin], is used to replace the old pin in the SIM.
-NOTE: Commands which interact with MT that are accepted when MT is pending SIM PIN, SIM PUK, or PH‑SIM are: +CGMI, +CGMM, +CGMR, +CGSN, D112; (emergency call), +CPAS, +CFUN, +CPIN, +CDIS (read and test command only), and +CIND (read and test command only).
-Read command returns an alphanumeric string indicating whether some password is required or not.
-Defined values
-[pin], [newpin]: string type values
-[code] values reserved by the present document:
-READY MT is not pending for any password
-SIM PIN MT is waiting SIM PIN to be given
-SIM PUK MT is waiting SIM PUK to be given
-PH-SIM PIN MT is waiting phone‑to‑SIM card password to be given
-PH-FSIM PIN MT is waiting phone-to-very first SIM card password to be given
-PH-FSIM PUK MT is waiting phone-to-very first SIM card unblocking password to be given
-SIM PIN2 MT is waiting SIM PIN2 to be given (this [code] is recommended to be returned only when the last executed command resulted in PIN2 authentication failure (i.e. +CME ERROR: 17); if PIN2 is not entered right after the failure, it is recommended that MT does not block its operation)
-SIM PUK2 MT is waiting SIM PUK2 to be given (this [code] is recommended to be returned only when the last executed command resulted in PUK2 authentication failure (i.e. +CME ERROR: 18); if PUK2 and new PIN2 are not entered right after the failure, it is recommended that MT does not block its operation)
-PH-NET PIN MT is waiting network personalization password to be given
-PH-NET PUK MT is waiting network personalization unblocking password to be given
-PH-NETSUB PIN MT is waiting network subset personalization password to be given
-PH-NETSUB PUK MT is waiting network subset personalization unblocking password to be given
-PH-SP PIN MT is waiting service provider personalization password to be given
-PH-SP PUK MT is waiting service provider personalization unblocking password to be given
-PH-CORP PIN MT is waiting corporate personalization password to be given
-PH-CORP PUK MT is waiting corporate personalization unblocking password to be given
-</description>
-</spec>
-<spec>
- <command>AT+CPIN?</command>
- <profile>Enter PIN (Query)</profile>
- <description>Set command sends to the MT a password which is necessary before it can be operated (SIM PIN, SIM PUK, PH‑SIM PIN, etc.). If the PIN is to be entered twice, the TA shall automatically repeat the PIN. If no PIN request is pending, no action is taken towards MT and an error message, +CME ERROR, is returned to TE. Refer subclause 9.2 for possible [err] values.
-NOTE: SIM PIN, SIM PUK, PH-SIM PIN, PH-FSIM PIN, PH-FSIM PUK, SIM PIN2 and SIM PUK2 refer to the PIN of the selected application on the UICC. For example, in an UTRAN context, the selected application on a UICC should be a USIM and the SIM PIN then represents the PIN of the selected USIM. See TS 31.101 [65] for further details on application selection on the UICC.
-If the PIN required is SIM PUK or SIM PUK2, the second pin is required. This second pin, [newpin], is used to replace the old pin in the SIM.
-NOTE: Commands which interact with MT that are accepted when MT is pending SIM PIN, SIM PUK, or PH‑SIM are: +CGMI, +CGMM, +CGMR, +CGSN, D112; (emergency call), +CPAS, +CFUN, +CPIN, +CDIS (read and test command only), and +CIND (read and test command only).
-Read command returns an alphanumeric string indicating whether some password is required or not.
-Defined values
-[pin], [newpin]: string type values
-[code] values reserved by the present document:
-READY MT is not pending for any password
-SIM PIN MT is waiting SIM PIN to be given
-SIM PUK MT is waiting SIM PUK to be given
-PH-SIM PIN MT is waiting phone‑to‑SIM card password to be given
-PH-FSIM PIN MT is waiting phone-to-very first SIM card password to be given
-PH-FSIM PUK MT is waiting phone-to-very first SIM card unblocking password to be given
-SIM PIN2 MT is waiting SIM PIN2 to be given (this [code] is recommended to be returned only when the last executed command resulted in PIN2 authentication failure (i.e. +CME ERROR: 17); if PIN2 is not entered right after the failure, it is recommended that MT does not block its operation)
-SIM PUK2 MT is waiting SIM PUK2 to be given (this [code] is recommended to be returned only when the last executed command resulted in PUK2 authentication failure (i.e. +CME ERROR: 18); if PUK2 and new PIN2 are not entered right after the failure, it is recommended that MT does not block its operation)
-PH-NET PIN MT is waiting network personalization password to be given
-PH-NET PUK MT is waiting network personalization unblocking password to be given
-PH-NETSUB PIN MT is waiting network subset personalization password to be given
-PH-NETSUB PUK MT is waiting network subset personalization unblocking password to be given
-PH-SP PIN MT is waiting service provider personalization password to be given
-PH-SP PUK MT is waiting service provider personalization unblocking password to be given
-PH-CORP PIN MT is waiting corporate personalization password to be given
-PH-CORP PUK MT is waiting corporate personalization unblocking password to be given
-</description>
-</spec>
-<spec>
- <command>AT+CPIN=?</command>
- <profile>Enter PIN (Query all)</profile>
- <description>Set command sends to the MT a password which is necessary before it can be operated (SIM PIN, SIM PUK, PH‑SIM PIN, etc.). If the PIN is to be entered twice, the TA shall automatically repeat the PIN. If no PIN request is pending, no action is taken towards MT and an error message, +CME ERROR, is returned to TE. Refer subclause 9.2 for possible [err] values.
-NOTE: SIM PIN, SIM PUK, PH-SIM PIN, PH-FSIM PIN, PH-FSIM PUK, SIM PIN2 and SIM PUK2 refer to the PIN of the selected application on the UICC. For example, in an UTRAN context, the selected application on a UICC should be a USIM and the SIM PIN then represents the PIN of the selected USIM. See TS 31.101 [65] for further details on application selection on the UICC.
-If the PIN required is SIM PUK or SIM PUK2, the second pin is required. This second pin, [newpin], is used to replace the old pin in the SIM.
-NOTE: Commands which interact with MT that are accepted when MT is pending SIM PIN, SIM PUK, or PH‑SIM are: +CGMI, +CGMM, +CGMR, +CGSN, D112; (emergency call), +CPAS, +CFUN, +CPIN, +CDIS (read and test command only), and +CIND (read and test command only).
-Read command returns an alphanumeric string indicating whether some password is required or not.
-Defined values
-[pin], [newpin]: string type values
-[code] values reserved by the present document:
-READY MT is not pending for any password
-SIM PIN MT is waiting SIM PIN to be given
-SIM PUK MT is waiting SIM PUK to be given
-PH-SIM PIN MT is waiting phone‑to‑SIM card password to be given
-PH-FSIM PIN MT is waiting phone-to-very first SIM card password to be given
-PH-FSIM PUK MT is waiting phone-to-very first SIM card unblocking password to be given
-SIM PIN2 MT is waiting SIM PIN2 to be given (this [code] is recommended to be returned only when the last executed command resulted in PIN2 authentication failure (i.e. +CME ERROR: 17); if PIN2 is not entered right after the failure, it is recommended that MT does not block its operation)
-SIM PUK2 MT is waiting SIM PUK2 to be given (this [code] is recommended to be returned only when the last executed command resulted in PUK2 authentication failure (i.e. +CME ERROR: 18); if PUK2 and new PIN2 are not entered right after the failure, it is recommended that MT does not block its operation)
-PH-NET PIN MT is waiting network personalization password to be given
-PH-NET PUK MT is waiting network personalization unblocking password to be given
-PH-NETSUB PIN MT is waiting network subset personalization password to be given
-PH-NETSUB PUK MT is waiting network subset personalization unblocking password to be given
-PH-SP PIN MT is waiting service provider personalization password to be given
-PH-SP PUK MT is waiting service provider personalization unblocking password to be given
-PH-CORP PIN MT is waiting corporate personalization password to be given
-PH-CORP PUK MT is waiting corporate personalization unblocking password to be given
-</description>
-</spec>
-<spec>
- <command>AT+CBC</command>
- <profile>Battery charge </profile>
- <description>Execution command returns battery connection status [bcs] and battery charge level [bcl] of the MT. Refer subclause 9.2 for possible [err] values.
-Test command returns values supported as compound values.
-Defined values
-[bcs]:
-0 MT is powered by the battery
-1 MT has a battery connected, but is not powered by it
-2 MT does not have a battery connected
-3 Recognized power fault, calls inhibited
-[bcl]:
-0 battery is exhausted, or MT does not have a battery connected
-1...100 battery has 1‑100 percent of capacity remaining
-</description>
-</spec>
-<spec>
- <command>AT+CBC=?</command>
- <profile>Battery charge (Query all)</profile>
- <description>Execution command returns battery connection status [bcs] and battery charge level [bcl] of the MT. Refer subclause 9.2 for possible [err] values.
-Test command returns values supported as compound values.
-Defined values
-[bcs]:
-0 MT is powered by the battery
-1 MT has a battery connected, but is not powered by it
-2 MT does not have a battery connected
-3 Recognized power fault, calls inhibited
-[bcl]:
-0 battery is exhausted, or MT does not have a battery connected
-1...100 battery has 1‑100 percent of capacity remaining
-</description>
-</spec>
-<spec>
- <command>AT+CSQ</command>
- <profile>Signal quality </profile>
- <description>Execution command returns received signal strength indication [rssi] and channel bit error rate [ber] from the MT. Refer subclause 9.2 for possible [err] values.
-Test command returns values supported as compound values.
-Defined values
-[rssi]:
-0 ‑113 dBm or less
-1 ‑111 dBm
-2...30 ‑109... ‑53 dBm
-31 ‑51 dBm or greater
-99 not known or not detectable
-[ber] (in percent):
-0...7 as RXQUAL values in the table in TS 45.008 [20] subclause 8.2.4
-99 not known or not detectable
-</description>
-</spec>
-<spec>
- <command>AT+CSQ=?</command>
- <profile>Signal quality (Query all)</profile>
- <description>Execution command returns received signal strength indication [rssi] and channel bit error rate [ber] from the MT. Refer subclause 9.2 for possible [err] values.
-Test command returns values supported as compound values.
-Defined values
-[rssi]:
-0 ‑113 dBm or less
-1 ‑111 dBm
-2...30 ‑109... ‑53 dBm
-31 ‑51 dBm or greater
-99 not known or not detectable
-[ber] (in percent):
-0...7 as RXQUAL values in the table in TS 45.008 [20] subclause 8.2.4
-99 not known or not detectable
-</description>
-</spec>
-<spec>
- <command>AT+CIND=</command>
- <profile>Indicator control (Assign)</profile>
- <description>Set command is used to set the values of MT indicators. [ind] value 0 means that the indicator is off (or in state which can be identified as 'off'‑state), 1 means that indicator is on (or in a state which is more substantial than 'off'‑state), 2 is more substantial than 1, and so on. If the indicator is a simple on/off style element, it has values 0 and 1. The number of elements is MT specific. If MT does not allow setting of indicators or MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values. If certain indicator is not writable, setting of it should be ignored. If parameter is empty field, indicator shall remain in the previous value.
-Read command returns the status of MT indicators. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Test command returns pairs, where string value [descr] is a maximum 16 character description of the indicator and compound value is the allowed values for the indicator. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-NOTE: MT manufacturer should offer the description of supported indicators not listed here and their value ranges and default values.
-Defined values
-[ind]: integer type value, which shall be in range of corresponding [descr]
-[descr] values reserved by the present document and their [ind] ranges:
-'battchg' battery charge level (0‑5)
-'signal' signal quality (0‑5)
-'service' service availability (0‑1)
-'sounder' sounder activity (0‑1)
-'message' message received (0‑1)
-'call' call in progress (0‑1)
-'vox' transmit activated by voice activity (0‑1)
-'roam' roaming indicator (0‑1)
-'smsfull' a short message memory storage in the MT has become full and a short message has been rejected (2), has become full (1), or memory locations are available (0); i.e. the range is (0‑2)
-
-</description>
-</spec>
-<spec>
- <command>AT+CIND?</command>
- <profile>Indicator control (Query)</profile>
- <description>Set command is used to set the values of MT indicators. [ind] value 0 means that the indicator is off (or in state which can be identified as 'off'‑state), 1 means that indicator is on (or in a state which is more substantial than 'off'‑state), 2 is more substantial than 1, and so on. If the indicator is a simple on/off style element, it has values 0 and 1. The number of elements is MT specific. If MT does not allow setting of indicators or MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values. If certain indicator is not writable, setting of it should be ignored. If parameter is empty field, indicator shall remain in the previous value.
-Read command returns the status of MT indicators. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Test command returns pairs, where string value [descr] is a maximum 16 character description of the indicator and compound value is the allowed values for the indicator. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-NOTE: MT manufacturer should offer the description of supported indicators not listed here and their value ranges and default values.
-Defined values
-[ind]: integer type value, which shall be in range of corresponding [descr]
-[descr] values reserved by the present document and their [ind] ranges:
-'battchg' battery charge level (0‑5)
-'signal' signal quality (0‑5)
-'service' service availability (0‑1)
-'sounder' sounder activity (0‑1)
-'message' message received (0‑1)
-'call' call in progress (0‑1)
-'vox' transmit activated by voice activity (0‑1)
-'roam' roaming indicator (0‑1)
-'smsfull' a short message memory storage in the MT has become full and a short message has been rejected (2), has become full (1), or memory locations are available (0); i.e. the range is (0‑2)
-
-</description>
-</spec>
-<spec>
- <command>AT+CIND=?</command>
- <profile>Indicator control (Query all)</profile>
- <description>Set command is used to set the values of MT indicators. [ind] value 0 means that the indicator is off (or in state which can be identified as 'off'‑state), 1 means that indicator is on (or in a state which is more substantial than 'off'‑state), 2 is more substantial than 1, and so on. If the indicator is a simple on/off style element, it has values 0 and 1. The number of elements is MT specific. If MT does not allow setting of indicators or MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values. If certain indicator is not writable, setting of it should be ignored. If parameter is empty field, indicator shall remain in the previous value.
-Read command returns the status of MT indicators. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Test command returns pairs, where string value [descr] is a maximum 16 character description of the indicator and compound value is the allowed values for the indicator. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-NOTE: MT manufacturer should offer the description of supported indicators not listed here and their value ranges and default values.
-Defined values
-[ind]: integer type value, which shall be in range of corresponding [descr]
-[descr] values reserved by the present document and their [ind] ranges:
-'battchg' battery charge level (0‑5)
-'signal' signal quality (0‑5)
-'service' service availability (0‑1)
-'sounder' sounder activity (0‑1)
-'message' message received (0‑1)
-'call' call in progress (0‑1)
-'vox' transmit activated by voice activity (0‑1)
-'roam' roaming indicator (0‑1)
-'smsfull' a short message memory storage in the MT has become full and a short message has been rejected (2), has become full (1), or memory locations are available (0); i.e. the range is (0‑2)
-
-</description>
-</spec>
-<spec>
- <command>AT+CPBR=</command>
- <profile>Read phonebook entries (Assign)</profile>
- <description>Execution command returns phonebook entries in location number range [index1]... [index2] from the current phonebook memory storage selected with +CPBS. If [index2] is left out, only location [index1] is returned. Entry fields returned are location number [indexn], phone number stored there [number] (of format [type]), text [text] associated with the number, if the selected phonebook supports hidden entries, [hidden] indicating if the entry is hidden, [group] indicating a group the entry may belong to, [adnumber] an additional number (of format [adtype]), [secondtext] a second text field associated with the number and [email] an email field. If all queried locations are empty (but available), no information text lines may be returned. If listing fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Test command returns location range supported by the current storage as a compound value and the maximum lengths of [number], [text], [group], [secondtext] and [email] fields. In case of (U)SIM storage, the lengths may not be available. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Defined values
-[index1], [index2], [index]: integer type values in the range of location numbers of phonebook memory
-[number]: string type phone number of format [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[text]: string type field of maximum length [tlength]; character set as specified by command Select TE Character Set +CSCS
-[group]: string type field of maximum length [glength]; character set as specified by command Select TE Character Set +CSCS
-[adnumber]: string type phone number of format [adtype]
-[adtype]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[secondtext]: string type field of maximum length [slength]; character set as specified by command Select TE Character Set +CSCS
-[email]: string type field of maximum length [elength]; character set as specified by command Select TE Character Set +CSCS
-[nlength]: integer type value indicating the maximum length of field [number]
-[tlength]: integer type value indicating the maximum length of field [text]
-[glength]: integer type value indicating the maximum length of field [group]
-[slength]: integer type value indicating the maximum length of field [secondtext]
-[elength]: integer type value indicating the maximum length of field [email]
-[hidden]: indicates if the entry is hidden or not
-0: phonebook entry not hidden
-1: phonebook entry hidden
-</description>
-</spec>
-<spec>
- <command>AT+CPBR=?</command>
- <profile>Read phonebook entries (Query all)</profile>
- <description>Execution command returns phonebook entries in location number range [index1]... [index2] from the current phonebook memory storage selected with +CPBS. If [index2] is left out, only location [index1] is returned. Entry fields returned are location number [indexn], phone number stored there [number] (of format [type]), text [text] associated with the number, if the selected phonebook supports hidden entries, [hidden] indicating if the entry is hidden, [group] indicating a group the entry may belong to, [adnumber] an additional number (of format [adtype]), [secondtext] a second text field associated with the number and [email] an email field. If all queried locations are empty (but available), no information text lines may be returned. If listing fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Test command returns location range supported by the current storage as a compound value and the maximum lengths of [number], [text], [group], [secondtext] and [email] fields. In case of (U)SIM storage, the lengths may not be available. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Defined values
-[index1], [index2], [index]: integer type values in the range of location numbers of phonebook memory
-[number]: string type phone number of format [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[text]: string type field of maximum length [tlength]; character set as specified by command Select TE Character Set +CSCS
-[group]: string type field of maximum length [glength]; character set as specified by command Select TE Character Set +CSCS
-[adnumber]: string type phone number of format [adtype]
-[adtype]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[secondtext]: string type field of maximum length [slength]; character set as specified by command Select TE Character Set +CSCS
-[email]: string type field of maximum length [elength]; character set as specified by command Select TE Character Set +CSCS
-[nlength]: integer type value indicating the maximum length of field [number]
-[tlength]: integer type value indicating the maximum length of field [text]
-[glength]: integer type value indicating the maximum length of field [group]
-[slength]: integer type value indicating the maximum length of field [secondtext]
-[elength]: integer type value indicating the maximum length of field [email]
-[hidden]: indicates if the entry is hidden or not
-0: phonebook entry not hidden
-1: phonebook entry hidden
-</description>
-</spec>
-<spec>
- <command>AT+CPBF=</command>
- <profile>Find phonebook entries (Assign)</profile>
- <description>Execution command returns phonebook entries (from the current phonebook memory storage selected with +CPBS) which alphanumeric field start with string [findtext]. Entry fields returned are location number [indexn], phone number stored there [number] (of format [type]), text [text] associated with the number, if the selected phonebook supports hidden entries, [hidden] indicating if the entry is hidden, [group] indicating a group the entry may belong to, [adnumber] an additional number (of format [adtype]), [secondtext] a second text field associated with the number and [email] an email field. If listing fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Test command returns the maximum lengths of [number], [text], [group], [secondtext] and [email] fields. In case of (U)SIM storage, the lengths may not be available. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-
-Defined values
-[index1], [index2]: integer type values in the range of location numbers of phonebook memory
-[number]: string type phone number of format [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[group]: string type field of maximum length [glength]; character set as specified by command Select TE Character Set +CSCS
-[adnumber]: string type phone number of format [adtype]
-[adtype]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[secondtext]: string type field of maximum length [slength]; character set as specified by command Select TE Character Set +CSCS
-[email]: string type field of maximum length [elength]; character set as specified by command Select TE Character Set +CSCS
-[findtext], [text]: string type field of maximum length [tlength]; character set as specified by command Select TE Character Set +CSCS
-[nlength]: integer type value indicating the maximum length of field [number]
-[tlength]: integer type value indicating the maximum length of field [text]
-[glength]: integer type value indicating the maximum length of field [group]
-[slength]: integer type value indicating the maximum length of field [secondtext]
-[elength]: integer type value indicating the maximum length of field [email]
-[hidden]: indicates if the entry is hidden or not
-0: phonebook entry not hidden
-1: phonebook entry hidden
-</description>
-</spec>
-<spec>
- <command>AT+CPBF=?</command>
- <profile>Find phonebook entries (Query all)</profile>
- <description>Execution command returns phonebook entries (from the current phonebook memory storage selected with +CPBS) which alphanumeric field start with string [findtext]. Entry fields returned are location number [indexn], phone number stored there [number] (of format [type]), text [text] associated with the number, if the selected phonebook supports hidden entries, [hidden] indicating if the entry is hidden, [group] indicating a group the entry may belong to, [adnumber] an additional number (of format [adtype]), [secondtext] a second text field associated with the number and [email] an email field. If listing fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Test command returns the maximum lengths of [number], [text], [group], [secondtext] and [email] fields. In case of (U)SIM storage, the lengths may not be available. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-
-Defined values
-[index1], [index2]: integer type values in the range of location numbers of phonebook memory
-[number]: string type phone number of format [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[group]: string type field of maximum length [glength]; character set as specified by command Select TE Character Set +CSCS
-[adnumber]: string type phone number of format [adtype]
-[adtype]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[secondtext]: string type field of maximum length [slength]; character set as specified by command Select TE Character Set +CSCS
-[email]: string type field of maximum length [elength]; character set as specified by command Select TE Character Set +CSCS
-[findtext], [text]: string type field of maximum length [tlength]; character set as specified by command Select TE Character Set +CSCS
-[nlength]: integer type value indicating the maximum length of field [number]
-[tlength]: integer type value indicating the maximum length of field [text]
-[glength]: integer type value indicating the maximum length of field [group]
-[slength]: integer type value indicating the maximum length of field [secondtext]
-[elength]: integer type value indicating the maximum length of field [email]
-[hidden]: indicates if the entry is hidden or not
-0: phonebook entry not hidden
-1: phonebook entry hidden
-</description>
-</spec>
-<spec>
- <command>AT+CPBW=</command>
- <profile>Write phonebook entry (Assign)</profile>
- <description>Execution command writes phonebook entry in location number [index] in the current phonebook memory storage selected with +CPBS. Entry fields written are phone number [number] (in the format [type]), text [text] associated with the number, if the selected phonebook supports hidden entries, [hidden] parameter, which indicates if the entry is hidden or not, [group] indicating a group the entry may belong to, [adnumber] an additional number (of format [adtype]), [secondtext] a second text field associated with the number and [email] an email field. If those fields are omitted, phonebook entry is deleted. If [index] is left out, but [number] is given, entry is written to the first free location in the phonebook (the implementation of this feature is manufacturer specific). If writing fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Test command returns location range supported by the current storage as a compound value, the maximum length of [number] field, supported number formats of the storage, the maximum length of [text] field, the maximum length of [group], the maximum length of [secondtext], and the maximum length of [email]. In case of SIM storage, the lengths may not be available. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values. If storage does not offer format information, the format list should be empty parenthesis
-Defined values
-[index]: integer type values in the range of location numbers of phonebook memory
-[number]: string type phone number of format [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7) ; default 145 when dialling string includes international access code character '+', otherwise 129
-[text]: string type field of maximum length [tlength]; character set as specified by command Select TE Character Set +CSCS
-[group]: string type field of maximum length [glength]; character set as specified by command Select TE Character Set +CSCS
-[adnumber]: string type phone number of format [adtype]
-[adtype]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[secondtext]: string type field of maximum length [slength]; character set as specified by command Select TE Character Set +CSCS
-[email]: string type field of maximum length [elength]; character set as specified by command Select TE Character Set +CSCS
-[nlength]: integer type value indicating the maximum length of field [number]
-[tlength]: integer type value indicating the maximum length of field [text]
-[glength]: integer type value indicating the maximum length of field [group]
-[slength]: integer type value indicating the maximum length of field [secondtext]
-[elength]: integer type value indicating the maximum length of field [email]
-[hidden]: indicates if the entry is hidden or not
-0: phonebook entry not hidden
-1: phonebook entry hidden
-</description>
-</spec>
-<spec>
- <command>AT+CPBW=?</command>
- <profile>Write phonebook entry (Query all)</profile>
- <description>Execution command writes phonebook entry in location number [index] in the current phonebook memory storage selected with +CPBS. Entry fields written are phone number [number] (in the format [type]), text [text] associated with the number, if the selected phonebook supports hidden entries, [hidden] parameter, which indicates if the entry is hidden or not, [group] indicating a group the entry may belong to, [adnumber] an additional number (of format [adtype]), [secondtext] a second text field associated with the number and [email] an email field. If those fields are omitted, phonebook entry is deleted. If [index] is left out, but [number] is given, entry is written to the first free location in the phonebook (the implementation of this feature is manufacturer specific). If writing fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Test command returns location range supported by the current storage as a compound value, the maximum length of [number] field, supported number formats of the storage, the maximum length of [text] field, the maximum length of [group], the maximum length of [secondtext], and the maximum length of [email]. In case of SIM storage, the lengths may not be available. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values. If storage does not offer format information, the format list should be empty parenthesis
-Defined values
-[index]: integer type values in the range of location numbers of phonebook memory
-[number]: string type phone number of format [type]
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7) ; default 145 when dialling string includes international access code character '+', otherwise 129
-[text]: string type field of maximum length [tlength]; character set as specified by command Select TE Character Set +CSCS
-[group]: string type field of maximum length [glength]; character set as specified by command Select TE Character Set +CSCS
-[adnumber]: string type phone number of format [adtype]
-[adtype]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
-[secondtext]: string type field of maximum length [slength]; character set as specified by command Select TE Character Set +CSCS
-[email]: string type field of maximum length [elength]; character set as specified by command Select TE Character Set +CSCS
-[nlength]: integer type value indicating the maximum length of field [number]
-[tlength]: integer type value indicating the maximum length of field [text]
-[glength]: integer type value indicating the maximum length of field [group]
-[slength]: integer type value indicating the maximum length of field [secondtext]
-[elength]: integer type value indicating the maximum length of field [email]
-[hidden]: indicates if the entry is hidden or not
-0: phonebook entry not hidden
-1: phonebook entry hidden
-</description>
-</spec>
-<spec>
- <command>AT+CCLK=</command>
- <profile>Clock (Assign)</profile>
- <description>Set command sets the real‑time clock of the MT. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current setting of the clock.
-Defined values
-[time]: string type value; format is 'yy/MM/dd,hh:mm:sszz', where characters indicate year (two last digits), month, day, hour, minutes, seconds and time zone (indicates the difference, expressed in quarters of an hour, between the local time and GMT; range -96...+96). E.g. 6th of May 1994, 22:10:00 GMT+2 hours equals to '94/05/06,22:10:00+08'
-NOTE: If MT does not support time zone information then the three last characters of [time] are not returned by +CCLK?. The format of [time] is specified by use of the +CSDF command.
-</description>
-</spec>
-<spec>
- <command>AT+CCLK?</command>
- <profile>Clock (Query)</profile>
- <description>Set command sets the real‑time clock of the MT. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current setting of the clock.
-Defined values
-[time]: string type value; format is 'yy/MM/dd,hh:mm:sszz', where characters indicate year (two last digits), month, day, hour, minutes, seconds and time zone (indicates the difference, expressed in quarters of an hour, between the local time and GMT; range -96...+96). E.g. 6th of May 1994, 22:10:00 GMT+2 hours equals to '94/05/06,22:10:00+08'
-NOTE: If MT does not support time zone information then the three last characters of [time] are not returned by +CCLK?. The format of [time] is specified by use of the +CSDF command.
-</description>
-</spec>
-<spec>
- <command>AT+CCLK=?</command>
- <profile>Clock (Query all)</profile>
- <description>Set command sets the real‑time clock of the MT. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current setting of the clock.
-Defined values
-[time]: string type value; format is 'yy/MM/dd,hh:mm:sszz', where characters indicate year (two last digits), month, day, hour, minutes, seconds and time zone (indicates the difference, expressed in quarters of an hour, between the local time and GMT; range -96...+96). E.g. 6th of May 1994, 22:10:00 GMT+2 hours equals to '94/05/06,22:10:00+08'
-NOTE: If MT does not support time zone information then the three last characters of [time] are not returned by +CCLK?. The format of [time] is specified by use of the +CSDF command.
-</description>
-</spec>
-<spec>
- <command>AT+CALA=</command>
- <profile>Alarm (Assign)</profile>
- <description>Set command sets an alarm time in the MT. There can be an array of different types of alarms, and each alarm may cause different text to be displayed in the MT display. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-To set up a recurrent alarm for one or more days in the week, the [recurr]-parameter may be used.
-When an alarm is timed out and executed, the unsolicited result code +CALV: [n] is always returned, even if the alarm is set up to be silent.
-Read command returns the list of current active alarm settings in the MT.
-Test command returns supported array index values, alarm types, and maximum length of the text to be displayed.
-Defined values
-[time]: refer +CCLK,+CSDF
-NOTE: If the [recurr]-parameter is used, the [time]-parameter must not contain a date.
-[n], [n1], [n2]: integer type value indicating the index of the alarm; default is manufacturer specific
-[type]: integer type value indicating the type of the alarm (e.g. sound, volume, LED); values and default are manufacturer specific
-[text]: string type value indicating the text to be displayed when alarm time is reached; maximum length [tlength]
-[tlength]: integer type value indicating the maximum length of [text]
-[recurr]: string type value indicating day of week for the alarm in one of the following formats:
-
-'[1..7][,[1..7][…]]' – Sets a recurrent alarm for one or more days in the week. The digits 1 to 7 corresponds to the days in the week, Monday (1), …, Sunday (7).
-Example: The string '1,2,3,4,5' may be used to set an alarm for all weekdays.
-
-'0' – Sets a recurrent alarm for all days in the week.
-[rlength]: integer type value indicating the maximum length of [recurr]
-[silent]: Integer type value indicating if the alarm is silent or not. If set to 1 the alarm will be silent and the only result from the alarm is the unsolicited result code +CALV. If set to 0 the alarm will not be silent.
-</description>
-</spec>
-<spec>
- <command>AT+CALA?</command>
- <profile>Alarm (Query)</profile>
- <description>Set command sets an alarm time in the MT. There can be an array of different types of alarms, and each alarm may cause different text to be displayed in the MT display. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-To set up a recurrent alarm for one or more days in the week, the [recurr]-parameter may be used.
-When an alarm is timed out and executed, the unsolicited result code +CALV: [n] is always returned, even if the alarm is set up to be silent.
-Read command returns the list of current active alarm settings in the MT.
-Test command returns supported array index values, alarm types, and maximum length of the text to be displayed.
-Defined values
-[time]: refer +CCLK,+CSDF
-NOTE: If the [recurr]-parameter is used, the [time]-parameter must not contain a date.
-[n], [n1], [n2]: integer type value indicating the index of the alarm; default is manufacturer specific
-[type]: integer type value indicating the type of the alarm (e.g. sound, volume, LED); values and default are manufacturer specific
-[text]: string type value indicating the text to be displayed when alarm time is reached; maximum length [tlength]
-[tlength]: integer type value indicating the maximum length of [text]
-[recurr]: string type value indicating day of week for the alarm in one of the following formats:
-
-'[1..7][,[1..7][…]]' – Sets a recurrent alarm for one or more days in the week. The digits 1 to 7 corresponds to the days in the week, Monday (1), …, Sunday (7).
-Example: The string '1,2,3,4,5' may be used to set an alarm for all weekdays.
-
-'0' – Sets a recurrent alarm for all days in the week.
-[rlength]: integer type value indicating the maximum length of [recurr]
-[silent]: Integer type value indicating if the alarm is silent or not. If set to 1 the alarm will be silent and the only result from the alarm is the unsolicited result code +CALV. If set to 0 the alarm will not be silent.
-</description>
-</spec>
-<spec>
- <command>AT+CALA=?</command>
- <profile>Alarm (Query all)</profile>
- <description>Set command sets an alarm time in the MT. There can be an array of different types of alarms, and each alarm may cause different text to be displayed in the MT display. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-To set up a recurrent alarm for one or more days in the week, the [recurr]-parameter may be used.
-When an alarm is timed out and executed, the unsolicited result code +CALV: [n] is always returned, even if the alarm is set up to be silent.
-Read command returns the list of current active alarm settings in the MT.
-Test command returns supported array index values, alarm types, and maximum length of the text to be displayed.
-Defined values
-[time]: refer +CCLK,+CSDF
-NOTE: If the [recurr]-parameter is used, the [time]-parameter must not contain a date.
-[n], [n1], [n2]: integer type value indicating the index of the alarm; default is manufacturer specific
-[type]: integer type value indicating the type of the alarm (e.g. sound, volume, LED); values and default are manufacturer specific
-[text]: string type value indicating the text to be displayed when alarm time is reached; maximum length [tlength]
-[tlength]: integer type value indicating the maximum length of [text]
-[recurr]: string type value indicating day of week for the alarm in one of the following formats:
-
-'[1..7][,[1..7][…]]' – Sets a recurrent alarm for one or more days in the week. The digits 1 to 7 corresponds to the days in the week, Monday (1), …, Sunday (7).
-Example: The string '1,2,3,4,5' may be used to set an alarm for all weekdays.
-
-'0' – Sets a recurrent alarm for all days in the week.
-[rlength]: integer type value indicating the maximum length of [recurr]
-[silent]: Integer type value indicating if the alarm is silent or not. If set to 1 the alarm will be silent and the only result from the alarm is the unsolicited result code +CALV. If set to 0 the alarm will not be silent.
-</description>
-</spec>
-<spec>
- <command>AT+CSIM=</command>
- <profile>Generic SIM access (Assign)</profile>
- <description>Set command transmits to the MT the [command] it then shall send as it is to the SIM. In the same manner the SIM [response] shall be sent back by the MT to the TA as it is. Refer subclause 9.2 for [err] values.
-This command allows a direct control of the SIM by an distant application on the TE. The TE shall then take care of processing SIM information within the frame specified by GSM/UMTS.
-NOTE: Compared to Restricted SIM Access command +CRSM, the definition of +CSIM allows TE to take more control over the SIM‑MT interface. The locking and unlocking of the interface may be done by a special [command] value or automatically by TA/MT (by interpreting [command] parameter). In case that TE application does not use the unlock command (or does not send a [command] causing automatic unlock) in a certain timeout value, MT may release the locking.
-Defined values
-[length] : integer type; length of the characters that are sent to TE in [command] or [response] (two times the actual length of the command or response)
-[command] : command passed on by the MT to the SIM in the format as described in GSM 51.011 [28] (hexadecimal character format; refer +CSCS)
-[response] : response to the command passed on by the SIM to the MT in the format as described in GSM 51.011 [28] (hexadecimal character format; refer +CSCS)
-</description>
-</spec>
-<spec>
- <command>AT+CSIM=?</command>
- <profile>Generic SIM access (Query all)</profile>
- <description>Set command transmits to the MT the [command] it then shall send as it is to the SIM. In the same manner the SIM [response] shall be sent back by the MT to the TA as it is. Refer subclause 9.2 for [err] values.
-This command allows a direct control of the SIM by an distant application on the TE. The TE shall then take care of processing SIM information within the frame specified by GSM/UMTS.
-NOTE: Compared to Restricted SIM Access command +CRSM, the definition of +CSIM allows TE to take more control over the SIM‑MT interface. The locking and unlocking of the interface may be done by a special [command] value or automatically by TA/MT (by interpreting [command] parameter). In case that TE application does not use the unlock command (or does not send a [command] causing automatic unlock) in a certain timeout value, MT may release the locking.
-Defined values
-[length] : integer type; length of the characters that are sent to TE in [command] or [response] (two times the actual length of the command or response)
-[command] : command passed on by the MT to the SIM in the format as described in GSM 51.011 [28] (hexadecimal character format; refer +CSCS)
-[response] : response to the command passed on by the SIM to the MT in the format as described in GSM 51.011 [28] (hexadecimal character format; refer +CSCS)
-</description>
-</spec>
-<spec>
- <command>AT+CRSM=</command>
- <profile>Restricted SIM access (Assign)</profile>
- <description>By using this command instead of Generic SIM Access +CSIM TE application has easier but more limited access to the SIM database. Set command transmits to the MT the SIM [command] and its required parameters. MT handles internally all SIM‑MT interface locking and file selection routines. As response to the command, MT sends the actual SIM information parameters and response data. MT error result code +CME ERROR may be returned when the command cannot be passed to the SIM, but failure in the execution of the command in the SIM is reported in [sw1] and [sw2] parameters. Refer to subclause 9.2 for [err] values.
-Coordination of command requests to SIM and the ones issued by GSM/UMTS application inside the MT is implementation dependent. However the TE should be aware of the precedence of the GSM/UMTS application commands to the TE commands.
-Defined values
-[command] (command passed on by the MT to the SIM; refer GSM 51.011 [28]):
-176 READ BINARY
-178 READ RECORD
-192 GET RESPONSE
-214 UPDATE BINARY
-220 UPDATE RECORD
-242 STATUS
-203 RETRIEVE DATA
-219 SET DATA
-all other values are reserved
-NOTE 1: The MT internally executes all commands necessary for selecting the desired file, before performing the actual command.
-[fileid]: integer type; this is the identifier of a elementary datafile on SIM. Mandatory for every command except STATUS
-NOTE 2: The range of valid file identifiers depends on the actual SIM and is defined in GSM 51.011 [28]. Optional files may not be present at all.
-[P1], [P2], [P3]: integer type; parameters passed on by the MT to the SIM. These parameters are mandatory for every command, except GET RESPONSE and STATUS. The values are described in GSM 51.011 [28]
-[data]: information which shall be written to the SIM (hexadecimal character format; refer +CSCS)
-[pathid]: string type; contains the path of an elementary file on the SIM/UICC in hexadecimal format as defined in ETSI TS 102 221 [60] (e.g. '7F205F70' in SIM and UICC case). The [pathid] shall only be used in the mode 'select by path from MF' as defined in ETSI TS 102 221 [60].
-NOTE 3: Since valid elementary file identifiers may not be unique over all valid dedicated file identifiers the [pathid] indicates the targeted UICC/SIM directory path in case of ambiguous file identifiers. For earlier versions of this specification or if [pathid] is omitted, it could be implementation specific which one will be selected.
-[sw1], [sw2]: integer type; information from the SIM about the execution of the actual command. These parameters are delivered to the TE in both cases, on successful or failed execution of the command
-[response]: response of a successful completion of the command previously issued (hexadecimal character format; refer +CSCS). STATUS and GET RESPONSE return data, which gives information about the current elementary datafield. This information includes the type of file and its size (refer GSM 51.011 [28]). After READ BINARY, READ RECORD or RETRIEVE DATA command the requested data will be returned. [response] is not returned after a successful UPDATE BINARY, UPDATE RECORD or SET DATA command
-</description>
-</spec>
-<spec>
- <command>AT+CRSM=?</command>
- <profile>Restricted SIM access (Query all)</profile>
- <description>By using this command instead of Generic SIM Access +CSIM TE application has easier but more limited access to the SIM database. Set command transmits to the MT the SIM [command] and its required parameters. MT handles internally all SIM‑MT interface locking and file selection routines. As response to the command, MT sends the actual SIM information parameters and response data. MT error result code +CME ERROR may be returned when the command cannot be passed to the SIM, but failure in the execution of the command in the SIM is reported in [sw1] and [sw2] parameters. Refer to subclause 9.2 for [err] values.
-Coordination of command requests to SIM and the ones issued by GSM/UMTS application inside the MT is implementation dependent. However the TE should be aware of the precedence of the GSM/UMTS application commands to the TE commands.
-Defined values
-[command] (command passed on by the MT to the SIM; refer GSM 51.011 [28]):
-176 READ BINARY
-178 READ RECORD
-192 GET RESPONSE
-214 UPDATE BINARY
-220 UPDATE RECORD
-242 STATUS
-203 RETRIEVE DATA
-219 SET DATA
-all other values are reserved
-NOTE 1: The MT internally executes all commands necessary for selecting the desired file, before performing the actual command.
-[fileid]: integer type; this is the identifier of a elementary datafile on SIM. Mandatory for every command except STATUS
-NOTE 2: The range of valid file identifiers depends on the actual SIM and is defined in GSM 51.011 [28]. Optional files may not be present at all.
-[P1], [P2], [P3]: integer type; parameters passed on by the MT to the SIM. These parameters are mandatory for every command, except GET RESPONSE and STATUS. The values are described in GSM 51.011 [28]
-[data]: information which shall be written to the SIM (hexadecimal character format; refer +CSCS)
-[pathid]: string type; contains the path of an elementary file on the SIM/UICC in hexadecimal format as defined in ETSI TS 102 221 [60] (e.g. '7F205F70' in SIM and UICC case). The [pathid] shall only be used in the mode 'select by path from MF' as defined in ETSI TS 102 221 [60].
-NOTE 3: Since valid elementary file identifiers may not be unique over all valid dedicated file identifiers the [pathid] indicates the targeted UICC/SIM directory path in case of ambiguous file identifiers. For earlier versions of this specification or if [pathid] is omitted, it could be implementation specific which one will be selected.
-[sw1], [sw2]: integer type; information from the SIM about the execution of the actual command. These parameters are delivered to the TE in both cases, on successful or failed execution of the command
-[response]: response of a successful completion of the command previously issued (hexadecimal character format; refer +CSCS). STATUS and GET RESPONSE return data, which gives information about the current elementary datafield. This information includes the type of file and its size (refer GSM 51.011 [28]). After READ BINARY, READ RECORD or RETRIEVE DATA command the requested data will be returned. [response] is not returned after a successful UPDATE BINARY, UPDATE RECORD or SET DATA command
-</description>
-</spec>
-<spec>
- <command>AT+CSCC=</command>
- <profile>Secure control command (Assign)</profile>
- <description>This command is used to enable/disable access to commands protected by security mechanism. This enables/disables access to command sets designated as 'secure' such as programming of MT. Refer subclause 9.2 for possible [err] values.
-The TE asks for a [challenge] with [mode]=1 and one specific command set ([cmd_set]), the MT replies with the [challenge], which should be inserted into the identification algorithm in both entities (TE and MT). The algorithm output [token] is sent to the MT with [mode]=2 to enable the specified command set. [mode]=3 is used to disable the command set.
-The read command returns the status ([mode] 2 or 3) of each supported command set.
-Defined values
-[mode]:
-1 request challenge token to enable access to specified command set
-2 enable access to specified command set ([token] required)
-3 disable access to specified command set
-[cmd_set], [cmd_set1], [cmd_set2]:
-0 MT/TA code re-programming command set.
-other values below 128 are reserved by the present document
-[token]: string type; a variable length bit string represented with IRA characters 0 - 9 and A - F, each character representing a nibble; e.g. bit string '0110 1100 1001 1010' is represented by the IRA string '6C9A'. The length of the required bit string varies depending on the value of [cmd_set].
-[challenge]: same format as token
-</description>
-</spec>
-<spec>
- <command>AT+CSCC?</command>
- <profile>Secure control command (Query)</profile>
- <description>This command is used to enable/disable access to commands protected by security mechanism. This enables/disables access to command sets designated as 'secure' such as programming of MT. Refer subclause 9.2 for possible [err] values.
-The TE asks for a [challenge] with [mode]=1 and one specific command set ([cmd_set]), the MT replies with the [challenge], which should be inserted into the identification algorithm in both entities (TE and MT). The algorithm output [token] is sent to the MT with [mode]=2 to enable the specified command set. [mode]=3 is used to disable the command set.
-The read command returns the status ([mode] 2 or 3) of each supported command set.
-Defined values
-[mode]:
-1 request challenge token to enable access to specified command set
-2 enable access to specified command set ([token] required)
-3 disable access to specified command set
-[cmd_set], [cmd_set1], [cmd_set2]:
-0 MT/TA code re-programming command set.
-other values below 128 are reserved by the present document
-[token]: string type; a variable length bit string represented with IRA characters 0 - 9 and A - F, each character representing a nibble; e.g. bit string '0110 1100 1001 1010' is represented by the IRA string '6C9A'. The length of the required bit string varies depending on the value of [cmd_set].
-[challenge]: same format as token
-</description>
-</spec>
-<spec>
- <command>AT+CSCC=?</command>
- <profile>Secure control command (Query all)</profile>
- <description>This command is used to enable/disable access to commands protected by security mechanism. This enables/disables access to command sets designated as 'secure' such as programming of MT. Refer subclause 9.2 for possible [err] values.
-The TE asks for a [challenge] with [mode]=1 and one specific command set ([cmd_set]), the MT replies with the [challenge], which should be inserted into the identification algorithm in both entities (TE and MT). The algorithm output [token] is sent to the MT with [mode]=2 to enable the specified command set. [mode]=3 is used to disable the command set.
-The read command returns the status ([mode] 2 or 3) of each supported command set.
-Defined values
-[mode]:
-1 request challenge token to enable access to specified command set
-2 enable access to specified command set ([token] required)
-3 disable access to specified command set
-[cmd_set], [cmd_set1], [cmd_set2]:
-0 MT/TA code re-programming command set.
-other values below 128 are reserved by the present document
-[token]: string type; a variable length bit string represented with IRA characters 0 - 9 and A - F, each character representing a nibble; e.g. bit string '0110 1100 1001 1010' is represented by the IRA string '6C9A'. The length of the required bit string varies depending on the value of [cmd_set].
-[challenge]: same format as token
-</description>
-</spec>
-<spec>
- <command>AT+CALM=</command>
- <profile>Alert sound mode (Assign)</profile>
- <description>This command is used to select the general alert sound mode of the MT. Refer subclause 9.2 for possible [err] values.
-Test command returns supported values as compound value.
-Defined values
-[mode]:
-0 normal mode
-1 silent mode (all sounds from MT are prevented)
-2… manufacturer specific
-</description>
-</spec>
-<spec>
- <command>AT+CALM?</command>
- <profile>Alert sound mode (Query)</profile>
- <description>This command is used to select the general alert sound mode of the MT. Refer subclause 9.2 for possible [err] values.
-Test command returns supported values as compound value.
-Defined values
-[mode]:
-0 normal mode
-1 silent mode (all sounds from MT are prevented)
-2… manufacturer specific
-</description>
-</spec>
-<spec>
- <command>AT+CALM=?</command>
- <profile>Alert sound mode (Query all)</profile>
- <description>This command is used to select the general alert sound mode of the MT. Refer subclause 9.2 for possible [err] values.
-Test command returns supported values as compound value.
-Defined values
-[mode]:
-0 normal mode
-1 silent mode (all sounds from MT are prevented)
-2… manufacturer specific
-</description>
-</spec>
-<spec>
- <command>AT+CRSL=</command>
- <profile>Ringer sound level (Assign)</profile>
- <description>This command is used to select the incoming call ringer sound level of the MT. Refer subclause 9.2 for possible [err] values.
-Test command returns supported values as compound value.
-Defined values
-[level]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
-</description>
-</spec>
-<spec>
- <command>AT+CRSL?</command>
- <profile>Ringer sound level (Query)</profile>
- <description>This command is used to select the incoming call ringer sound level of the MT. Refer subclause 9.2 for possible [err] values.
-Test command returns supported values as compound value.
-Defined values
-[level]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
-</description>
-</spec>
-<spec>
- <command>AT+CRSL=?</command>
- <profile>Ringer sound level (Query all)</profile>
- <description>This command is used to select the incoming call ringer sound level of the MT. Refer subclause 9.2 for possible [err] values.
-Test command returns supported values as compound value.
-Defined values
-[level]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
-</description>
-</spec>
-<spec>
- <command>AT+CVIB=</command>
- <profile>Vibrator mode (Assign)</profile>
- <description>This command is used to enable and disable the vibrator alert feature of the MT. It is manufacturer specific how this interacts with +CALM command. Refer subclause 9.2 for possible [err] values.
-Test command returns supported values as compound value.
-Defined values
-[mode]:
-0 disable
-1 enable
-...15 reserved by the present document
-16… manufacturer specific
-</description>
-</spec>
-<spec>
- <command>AT+CVIB?</command>
- <profile>Vibrator mode (Query)</profile>
- <description>This command is used to enable and disable the vibrator alert feature of the MT. It is manufacturer specific how this interacts with +CALM command. Refer subclause 9.2 for possible [err] values.
-Test command returns supported values as compound value.
-Defined values
-[mode]:
-0 disable
-1 enable
-...15 reserved by the present document
-16… manufacturer specific
-</description>
-</spec>
-<spec>
- <command>AT+CVIB=?</command>
- <profile>Vibrator mode (Query all)</profile>
- <description>This command is used to enable and disable the vibrator alert feature of the MT. It is manufacturer specific how this interacts with +CALM command. Refer subclause 9.2 for possible [err] values.
-Test command returns supported values as compound value.
-Defined values
-[mode]:
-0 disable
-1 enable
-...15 reserved by the present document
-16… manufacturer specific
-</description>
-</spec>
-<spec>
- <command>AT+CLVL=</command>
- <profile>Loudspeaker volume level (Assign)</profile>
- <description>This command is used to select the volume of the internal loudspeaker of the MT. Refer subclause 9.2 for possible [err] values.
-Test command returns supported values as compound value.
-Defined values
-[level]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
-</description>
-</spec>
-<spec>
- <command>AT+CLVL?</command>
- <profile>Loudspeaker volume level (Query)</profile>
- <description>This command is used to select the volume of the internal loudspeaker of the MT. Refer subclause 9.2 for possible [err] values.
-Test command returns supported values as compound value.
-Defined values
-[level]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
-</description>
-</spec>
-<spec>
- <command>AT+CLVL=?</command>
- <profile>Loudspeaker volume level (Query all)</profile>
- <description>This command is used to select the volume of the internal loudspeaker of the MT. Refer subclause 9.2 for possible [err] values.
-Test command returns supported values as compound value.
-Defined values
-[level]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
-</description>
-</spec>
-<spec>
- <command>AT+CMUT=</command>
- <profile>Mute control (Assign)</profile>
- <description>This command is used to enable and disable the uplink voice muting during a voice call. Refer subclause 9.2 for possible [err] values.
-Test command returns supported values as compound value.
-Defined values
-[n]:
-0 mute off
-1 mute on
-</description>
-</spec>
-<spec>
- <command>AT+CMUT?</command>
- <profile>Mute control (Query)</profile>
- <description>This command is used to enable and disable the uplink voice muting during a voice call. Refer subclause 9.2 for possible [err] values.
-Test command returns supported values as compound value.
-Defined values
-[n]:
-0 mute off
-1 mute on
-</description>
-</spec>
-<spec>
- <command>AT+CMUT=?</command>
- <profile>Mute control (Query all)</profile>
- <description>This command is used to enable and disable the uplink voice muting during a voice call. Refer subclause 9.2 for possible [err] values.
-Test command returns supported values as compound value.
-Defined values
-[n]:
-0 mute off
-1 mute on
-</description>
-</spec>
-<spec>
- <command>AT+CACM=</command>
- <profile>Accumulated call meter (Assign)</profile>
- <description>Set command resets the Advice of Charge related accumulated call meter value in SIM card or in the active application in the UICC (GSM or USIM) file EFACM. ACM contains the total number of home units for both the current and preceding calls. SIM PIN2 is usually required to reset the value. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current value of ACM.
-Defined values
-[passwd]: string type; SIM PIN2
-[acm]: string type; accumulated call meter value similarly coded as [ccm] under +CAOC
-</description>
-</spec>
-<spec>
- <command>AT+CACM?</command>
- <profile>Accumulated call meter (Query)</profile>
- <description>Set command resets the Advice of Charge related accumulated call meter value in SIM card or in the active application in the UICC (GSM or USIM) file EFACM. ACM contains the total number of home units for both the current and preceding calls. SIM PIN2 is usually required to reset the value. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current value of ACM.
-Defined values
-[passwd]: string type; SIM PIN2
-[acm]: string type; accumulated call meter value similarly coded as [ccm] under +CAOC
-</description>
-</spec>
-<spec>
- <command>AT+CACM=?</command>
- <profile>Accumulated call meter (Query all)</profile>
- <description>Set command resets the Advice of Charge related accumulated call meter value in SIM card or in the active application in the UICC (GSM or USIM) file EFACM. ACM contains the total number of home units for both the current and preceding calls. SIM PIN2 is usually required to reset the value. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current value of ACM.
-Defined values
-[passwd]: string type; SIM PIN2
-[acm]: string type; accumulated call meter value similarly coded as [ccm] under +CAOC
-</description>
-</spec>
-<spec>
- <command>AT+CAMM=</command>
- <profile>Accumulated call meter maximum (Assign)</profile>
- <description>Set command sets the Advice of Charge related accumulated call meter maximum value in SIM card or in the active application in the UICC (GSM or USIM) file EFACMmax. ACMmax contains the maximum number of home units allowed to be consumed by the subscriber. When ACM (refer +CACM) reaches ACMmax calls are prohibited (see also 3GPP TS 22.024 [26]). SIM PIN2 is usually required to set the value. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current value of ACMmax.
-Defined values
-[acmmax]: string type; accumulated call meter maximum value similarly coded as [ccm] under +CAOC; value zero disables ACMmax feature
-[passwd]: string type; SIM PIN2
-</description>
-</spec>
-<spec>
- <command>AT+CAMM?</command>
- <profile>Accumulated call meter maximum (Query)</profile>
- <description>Set command sets the Advice of Charge related accumulated call meter maximum value in SIM card or in the active application in the UICC (GSM or USIM) file EFACMmax. ACMmax contains the maximum number of home units allowed to be consumed by the subscriber. When ACM (refer +CACM) reaches ACMmax calls are prohibited (see also 3GPP TS 22.024 [26]). SIM PIN2 is usually required to set the value. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current value of ACMmax.
-Defined values
-[acmmax]: string type; accumulated call meter maximum value similarly coded as [ccm] under +CAOC; value zero disables ACMmax feature
-[passwd]: string type; SIM PIN2
-</description>
-</spec>
-<spec>
- <command>AT+CAMM=?</command>
- <profile>Accumulated call meter maximum (Query all)</profile>
- <description>Set command sets the Advice of Charge related accumulated call meter maximum value in SIM card or in the active application in the UICC (GSM or USIM) file EFACMmax. ACMmax contains the maximum number of home units allowed to be consumed by the subscriber. When ACM (refer +CACM) reaches ACMmax calls are prohibited (see also 3GPP TS 22.024 [26]). SIM PIN2 is usually required to set the value. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current value of ACMmax.
-Defined values
-[acmmax]: string type; accumulated call meter maximum value similarly coded as [ccm] under +CAOC; value zero disables ACMmax feature
-[passwd]: string type; SIM PIN2
-</description>
-</spec>
-<spec>
- <command>AT+CPUC=</command>
- <profile>Price per unit and currency table (Assign)</profile>
- <description>Set command sets the parameters of Advice of Charge related price per unit and currency table in SIM card or in the active application in the UICC (GSM or USIM) file EFPUCT. PUCT information can be used to convert the home units (as used in +CAOC, +CACM and +CAMM) into currency units. SIM PIN2 is usually required to set the parameters. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current parameters of PUCT.
-Defined values
-[currency]: string type; three-character currency code (e.g. 'GBP', 'DEM'); character set as specified by command Select TE Character Set +CSCS
-[ppu]: string type; price per unit; dot is used as a decimal separator (e.g. '2.66')
-[passwd]: string type; SIM PIN2
-</description>
-</spec>
-<spec>
- <command>AT+CPUC?</command>
- <profile>Price per unit and currency table (Query)</profile>
- <description>Set command sets the parameters of Advice of Charge related price per unit and currency table in SIM card or in the active application in the UICC (GSM or USIM) file EFPUCT. PUCT information can be used to convert the home units (as used in +CAOC, +CACM and +CAMM) into currency units. SIM PIN2 is usually required to set the parameters. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current parameters of PUCT.
-Defined values
-[currency]: string type; three-character currency code (e.g. 'GBP', 'DEM'); character set as specified by command Select TE Character Set +CSCS
-[ppu]: string type; price per unit; dot is used as a decimal separator (e.g. '2.66')
-[passwd]: string type; SIM PIN2
-</description>
-</spec>
-<spec>
- <command>AT+CPUC=?</command>
- <profile>Price per unit and currency table (Query all)</profile>
- <description>Set command sets the parameters of Advice of Charge related price per unit and currency table in SIM card or in the active application in the UICC (GSM or USIM) file EFPUCT. PUCT information can be used to convert the home units (as used in +CAOC, +CACM and +CAMM) into currency units. SIM PIN2 is usually required to set the parameters. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current parameters of PUCT.
-Defined values
-[currency]: string type; three-character currency code (e.g. 'GBP', 'DEM'); character set as specified by command Select TE Character Set +CSCS
-[ppu]: string type; price per unit; dot is used as a decimal separator (e.g. '2.66')
-[passwd]: string type; SIM PIN2
-</description>
-</spec>
-<spec>
- <command>AT+CCWE=</command>
- <profile>Call Meter maximum event (Assign)</profile>
- <description>Shortly before the ACM (Accumulated Call Meter) maximum value is reached, an unsolicited result code +CCWV will be sent, if enabled by this command. The warning is issued approximately when 30 seconds call time remains. It is also issued when starting a call if less than 30 s call time remains. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current setting.
-Test command returns supported settings.
-Defined values
-[mode]:
-0 Disable the call meter warning event
-1 Enable the call meter warning event
-</description>
-</spec>
-<spec>
- <command>AT+CCWE?</command>
- <profile>Call Meter maximum event (Query)</profile>
- <description>Shortly before the ACM (Accumulated Call Meter) maximum value is reached, an unsolicited result code +CCWV will be sent, if enabled by this command. The warning is issued approximately when 30 seconds call time remains. It is also issued when starting a call if less than 30 s call time remains. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current setting.
-Test command returns supported settings.
-Defined values
-[mode]:
-0 Disable the call meter warning event
-1 Enable the call meter warning event
-</description>
-</spec>
-<spec>
- <command>AT+CCWE=?</command>
- <profile>Call Meter maximum event (Query all)</profile>
- <description>Shortly before the ACM (Accumulated Call Meter) maximum value is reached, an unsolicited result code +CCWV will be sent, if enabled by this command. The warning is issued approximately when 30 seconds call time remains. It is also issued when starting a call if less than 30 s call time remains. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current setting.
-Test command returns supported settings.
-Defined values
-[mode]:
-0 Disable the call meter warning event
-1 Enable the call meter warning event
-</description>
-</spec>
-<spec>
- <command>AT+CPWC=</command>
- <profile>Power class (Assign)</profile>
- <description>This command is used to set the preferred MT power class for each GSM frequency band supported. The interaction of this setting with the selected bearer service (+CBST and HSCSD commands) is manufacturer specific (for example, selecting a multislot operation might reduce the power class automatically). If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the currently selected output power class and default output power class for each supported frequency band (as defined by MT manufacturer). Parameter [band1] and its associated power class parameters refer to the currently used frequency band. For example, +CPWC: 2,1,1,5,4,0 in case of a dual-band MT currently using band GSM1800, for which the power class is currently set to 2, the default being class 1, and for which the currently set power class value for GSM900 is class 5 the default being class 4.
-Test command returns supported bands and their power classes. For example,
-+CPWC: (0,(0,4,5)),(1,(0-2)) in case of a dual-band handheld MT.
-Defined values
-[class], [curr_classn]s, [def_classn]s:
-0 default (not applicable to [curr_class]s or [def_classn]s)
-1… MT output power class as in GSM 45.005 [38]
-[band], [bandn]s:
-0 GSM900
-1 GSM1800
-2 reserved for GSM1900
-3 GSM 400
-</description>
-</spec>
-<spec>
- <command>AT+CPWC?</command>
- <profile>Power class (Query)</profile>
- <description>This command is used to set the preferred MT power class for each GSM frequency band supported. The interaction of this setting with the selected bearer service (+CBST and HSCSD commands) is manufacturer specific (for example, selecting a multislot operation might reduce the power class automatically). If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the currently selected output power class and default output power class for each supported frequency band (as defined by MT manufacturer). Parameter [band1] and its associated power class parameters refer to the currently used frequency band. For example, +CPWC: 2,1,1,5,4,0 in case of a dual-band MT currently using band GSM1800, for which the power class is currently set to 2, the default being class 1, and for which the currently set power class value for GSM900 is class 5 the default being class 4.
-Test command returns supported bands and their power classes. For example,
-+CPWC: (0,(0,4,5)),(1,(0-2)) in case of a dual-band handheld MT.
-Defined values
-[class], [curr_classn]s, [def_classn]s:
-0 default (not applicable to [curr_class]s or [def_classn]s)
-1… MT output power class as in GSM 45.005 [38]
-[band], [bandn]s:
-0 GSM900
-1 GSM1800
-2 reserved for GSM1900
-3 GSM 400
-</description>
-</spec>
-<spec>
- <command>AT+CPWC=?</command>
- <profile>Power class (Query all)</profile>
- <description>This command is used to set the preferred MT power class for each GSM frequency band supported. The interaction of this setting with the selected bearer service (+CBST and HSCSD commands) is manufacturer specific (for example, selecting a multislot operation might reduce the power class automatically). If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the currently selected output power class and default output power class for each supported frequency band (as defined by MT manufacturer). Parameter [band1] and its associated power class parameters refer to the currently used frequency band. For example, +CPWC: 2,1,1,5,4,0 in case of a dual-band MT currently using band GSM1800, for which the power class is currently set to 2, the default being class 1, and for which the currently set power class value for GSM900 is class 5 the default being class 4.
-Test command returns supported bands and their power classes. For example,
-+CPWC: (0,(0,4,5)),(1,(0-2)) in case of a dual-band handheld MT.
-Defined values
-[class], [curr_classn]s, [def_classn]s:
-0 default (not applicable to [curr_class]s or [def_classn]s)
-1… MT output power class as in GSM 45.005 [38]
-[band], [bandn]s:
-0 GSM900
-1 GSM1800
-2 reserved for GSM1900
-3 GSM 400
-</description>
-</spec>
-<spec>
- <command>AT+CLAN=</command>
- <profile>Set Language (Assign)</profile>
- <description>This command sets the language in the MT. The set-command must confirm the selected language with the MMI-module in the MT. If setting fails, a MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-The [code]-parameter is a two-letter abbreviation of the language. The language codes, as defined in ISO 639, consists of two characters, e.g. 'sv', 'en' etc.
-The complete set of language codes to be used are manufacturer specific and should all be possible to use with the command. Some examples are described under [code]. For a complete list see ISO 639.
-The read command gives the current language as output. If the language has been set to 'AUTO', the read command returns the current language set from the SIM-card /UICC. Hence, the 'AUTO'-code is never returned by the read-command.
-Test command returns supported [code]s.
-Defined values
-[code]: (not all language codes are present in this list)
-'AUTO' Read language from SIM-card /UICC. 'Auto' is not returned by the read-command.
-'sw' Swedish
-'fi' Finnish
-'da' Danish
-'no' Norwegian
-'de' German
-'fr' French
-'es' Spanish
-'it' Italian
-'en' English
-</description>
-</spec>
-<spec>
- <command>AT+CLAN?</command>
- <profile>Set Language (Query)</profile>
- <description>This command sets the language in the MT. The set-command must confirm the selected language with the MMI-module in the MT. If setting fails, a MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-The [code]-parameter is a two-letter abbreviation of the language. The language codes, as defined in ISO 639, consists of two characters, e.g. 'sv', 'en' etc.
-The complete set of language codes to be used are manufacturer specific and should all be possible to use with the command. Some examples are described under [code]. For a complete list see ISO 639.
-The read command gives the current language as output. If the language has been set to 'AUTO', the read command returns the current language set from the SIM-card /UICC. Hence, the 'AUTO'-code is never returned by the read-command.
-Test command returns supported [code]s.
-Defined values
-[code]: (not all language codes are present in this list)
-'AUTO' Read language from SIM-card /UICC. 'Auto' is not returned by the read-command.
-'sw' Swedish
-'fi' Finnish
-'da' Danish
-'no' Norwegian
-'de' German
-'fr' French
-'es' Spanish
-'it' Italian
-'en' English
-</description>
-</spec>
-<spec>
- <command>AT+CLAN=?</command>
- <profile>Set Language (Query all)</profile>
- <description>This command sets the language in the MT. The set-command must confirm the selected language with the MMI-module in the MT. If setting fails, a MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-The [code]-parameter is a two-letter abbreviation of the language. The language codes, as defined in ISO 639, consists of two characters, e.g. 'sv', 'en' etc.
-The complete set of language codes to be used are manufacturer specific and should all be possible to use with the command. Some examples are described under [code]. For a complete list see ISO 639.
-The read command gives the current language as output. If the language has been set to 'AUTO', the read command returns the current language set from the SIM-card /UICC. Hence, the 'AUTO'-code is never returned by the read-command.
-Test command returns supported [code]s.
-Defined values
-[code]: (not all language codes are present in this list)
-'AUTO' Read language from SIM-card /UICC. 'Auto' is not returned by the read-command.
-'sw' Swedish
-'fi' Finnish
-'da' Danish
-'no' Norwegian
-'de' German
-'fr' French
-'es' Spanish
-'it' Italian
-'en' English
-</description>
-</spec>
-<spec>
- <command>AT+CLAE=</command>
- <profile>Language Event (Assign)</profile>
- <description>This command is used to enable/disable unsolicited result code +CLAV: [code]. If [mode]=1, +CLAV: [code ] is sent from the MT when the language in the MT is changed. If setting fails, a MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current status for [mode].
-Test command returns supported [mode]s.
-Defined values
-[mode]:
-0 Disable unsolicited result code +CLAE
-1 Enable unsolicited result code +CLAE
-[code]: For description see +CLAN.
-</description>
-</spec>
-<spec>
- <command>AT+CLAE?</command>
- <profile>Language Event (Query)</profile>
- <description>This command is used to enable/disable unsolicited result code +CLAV: [code]. If [mode]=1, +CLAV: [code ] is sent from the MT when the language in the MT is changed. If setting fails, a MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current status for [mode].
-Test command returns supported [mode]s.
-Defined values
-[mode]:
-0 Disable unsolicited result code +CLAE
-1 Enable unsolicited result code +CLAE
-[code]: For description see +CLAN.
-</description>
-</spec>
-<spec>
- <command>AT+CLAE=?</command>
- <profile>Language Event (Query all)</profile>
- <description>This command is used to enable/disable unsolicited result code +CLAV: [code]. If [mode]=1, +CLAV: [code ] is sent from the MT when the language in the MT is changed. If setting fails, a MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current status for [mode].
-Test command returns supported [mode]s.
-Defined values
-[mode]:
-0 Disable unsolicited result code +CLAE
-1 Enable unsolicited result code +CLAE
-[code]: For description see +CLAN.
-</description>
-</spec>
-<spec>
- <command>AT+CSGT=</command>
- <profile>Set Greeting Text (Assign)</profile>
- <description>This command sets and activates the greeting text in the MT. The greeting text is shown in the MT display when the MT is turned on. The command can also be used to deactivate a text. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-The read command queries the current [text] and the status of the [mode] parameter
-Test command returns supported [mode]s and the maximum number of characters in [text]. For example,
-+CSGT: (0-1),20
-Defined values
-[text]: string type; A free text that shall be displayed. The text can not include [CR]
-[mode]:
-0 Turn off greeting text.
-1 Turn on greeting text
-</description>
-</spec>
-<spec>
- <command>AT+CSGT?</command>
- <profile>Set Greeting Text (Query)</profile>
- <description>This command sets and activates the greeting text in the MT. The greeting text is shown in the MT display when the MT is turned on. The command can also be used to deactivate a text. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-The read command queries the current [text] and the status of the [mode] parameter
-Test command returns supported [mode]s and the maximum number of characters in [text]. For example,
-+CSGT: (0-1),20
-Defined values
-[text]: string type; A free text that shall be displayed. The text can not include [CR]
-[mode]:
-0 Turn off greeting text.
-1 Turn on greeting text
-</description>
-</spec>
-<spec>
- <command>AT+CSGT=?</command>
- <profile>Set Greeting Text (Query all)</profile>
- <description>This command sets and activates the greeting text in the MT. The greeting text is shown in the MT display when the MT is turned on. The command can also be used to deactivate a text. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-The read command queries the current [text] and the status of the [mode] parameter
-Test command returns supported [mode]s and the maximum number of characters in [text]. For example,
-+CSGT: (0-1),20
-Defined values
-[text]: string type; A free text that shall be displayed. The text can not include [CR]
-[mode]:
-0 Turn off greeting text.
-1 Turn on greeting text
-</description>
-</spec>
-<spec>
- <command>AT+CSVM=</command>
- <profile>Set Voice Mail Number (Assign)</profile>
- <description>The number to the voice mail server is set with this command. The parameters [number] and [type] can be left out if the parameter [mode] is set to 0. If setting fails, an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the currently selected voice mail number and the status (i.e. enabled/disabled).
-Test command returns supported [mode]s and [type]s.
-Defined values
-[mode]:
-0 Disable the voice mail number.
-1 Enable the voice mail number.
-[number]: string type; Character string [0..9,+]
-[type]: integer type; Type of address octet. (refer TS 24.008 subclause 10.5.4.7)
-129 ISDN / telephony numbering plan, national / international unknown
-145 ISDN / telephony numbering plan, international number
-161 ISDN / telephony numbering plan, national number
-128 - 255 Other values refer TS 24.008 section 10.5.4.7
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
-</description>
-</spec>
-<spec>
- <command>AT+CSVM?</command>
- <profile>Set Voice Mail Number (Query)</profile>
- <description>The number to the voice mail server is set with this command. The parameters [number] and [type] can be left out if the parameter [mode] is set to 0. If setting fails, an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the currently selected voice mail number and the status (i.e. enabled/disabled).
-Test command returns supported [mode]s and [type]s.
-Defined values
-[mode]:
-0 Disable the voice mail number.
-1 Enable the voice mail number.
-[number]: string type; Character string [0..9,+]
-[type]: integer type; Type of address octet. (refer TS 24.008 subclause 10.5.4.7)
-129 ISDN / telephony numbering plan, national / international unknown
-145 ISDN / telephony numbering plan, international number
-161 ISDN / telephony numbering plan, national number
-128 - 255 Other values refer TS 24.008 section 10.5.4.7
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
-</description>
-</spec>
-<spec>
- <command>AT+CSVM=?</command>
- <profile>Set Voice Mail Number (Query all)</profile>
- <description>The number to the voice mail server is set with this command. The parameters [number] and [type] can be left out if the parameter [mode] is set to 0. If setting fails, an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the currently selected voice mail number and the status (i.e. enabled/disabled).
-Test command returns supported [mode]s and [type]s.
-Defined values
-[mode]:
-0 Disable the voice mail number.
-1 Enable the voice mail number.
-[number]: string type; Character string [0..9,+]
-[type]: integer type; Type of address octet. (refer TS 24.008 subclause 10.5.4.7)
-129 ISDN / telephony numbering plan, national / international unknown
-145 ISDN / telephony numbering plan, international number
-161 ISDN / telephony numbering plan, national number
-128 - 255 Other values refer TS 24.008 section 10.5.4.7
-[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
-</description>
-</spec>
-<spec>
- <command>AT+CRMC=</command>
- <profile>Ring Melody Control (Assign)</profile>
- <description>Write command causes the MT to set a specific ring melody and volume for the selected call type and profile. The default values for the optional parameters are defined by the manufacturer.
-Read command queries the settings for the ring melody. If call types and profiles are available the corresponding ring melodies are listed. Starting with call type1 and profile1 the ring melody settings for each available profile and call type is issued.
-Test command returns the list of available ring melodies, volumes, call types and profiles.
-Defined values:
-[index]: integer type; manufacturer specific number to identify a certain ring melody
-[volume]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
-[call typex]: integer type; manufacturer specific number for a call type
-[profilex]: integer type; manufacturer specific number for a profile
-</description>
-</spec>
-<spec>
- <command>AT+CRMC?</command>
- <profile>Ring Melody Control (Query)</profile>
- <description>Write command causes the MT to set a specific ring melody and volume for the selected call type and profile. The default values for the optional parameters are defined by the manufacturer.
-Read command queries the settings for the ring melody. If call types and profiles are available the corresponding ring melodies are listed. Starting with call type1 and profile1 the ring melody settings for each available profile and call type is issued.
-Test command returns the list of available ring melodies, volumes, call types and profiles.
-Defined values:
-[index]: integer type; manufacturer specific number to identify a certain ring melody
-[volume]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
-[call typex]: integer type; manufacturer specific number for a call type
-[profilex]: integer type; manufacturer specific number for a profile
-</description>
-</spec>
-<spec>
- <command>AT+CRMC=?</command>
- <profile>Ring Melody Control (Query all)</profile>
- <description>Write command causes the MT to set a specific ring melody and volume for the selected call type and profile. The default values for the optional parameters are defined by the manufacturer.
-Read command queries the settings for the ring melody. If call types and profiles are available the corresponding ring melodies are listed. Starting with call type1 and profile1 the ring melody settings for each available profile and call type is issued.
-Test command returns the list of available ring melodies, volumes, call types and profiles.
-Defined values:
-[index]: integer type; manufacturer specific number to identify a certain ring melody
-[volume]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
-[call typex]: integer type; manufacturer specific number for a call type
-[profilex]: integer type; manufacturer specific number for a profile
-</description>
-</spec>
-<spec>
- <command>AT+CRMP=</command>
- <profile>Ring Melody Playback (Assign)</profile>
- <description>Execution command causes the MT to playback a specific ring type. The default values for the optional parameters are the current selected in the MT.
-Test command returns the available ring melodies.
-Defined values:
-[call type]: integer type; manufacturer specific
-[volume]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
-[type]:
-0 Manufacturer defined
-1 User defined
-[index]: integer type;
-</description>
-</spec>
-<spec>
- <command>AT+CRMP=?</command>
- <profile>Ring Melody Playback (Query all)</profile>
- <description>Execution command causes the MT to playback a specific ring type. The default values for the optional parameters are the current selected in the MT.
-Test command returns the available ring melodies.
-Defined values:
-[call type]: integer type; manufacturer specific
-[volume]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
-[type]:
-0 Manufacturer defined
-1 User defined
-[index]: integer type;
-</description>
-</spec>
-<spec>
- <command>AT+CMAR=</command>
- <profile>Master Reset (Assign)</profile>
- <description>This command requests the MT to reset user data. The user data in the phone will be reset to default values. If setting fails, a MT error, +CME ERROR: [err], is returned. Refer subclause 9.2 for [err] values.
-If the MT is locked and this command is used, then the MT will be unlocked after the master reset.
-Test command returns OK
-Defined values
-[phone lock code ] string type; Security code (Phone Lock code) must be verified before performing the master reset.
-</description>
-</spec>
-<spec>
- <command>AT+CMAR=?</command>
- <profile>Master Reset (Query all)</profile>
- <description>This command requests the MT to reset user data. The user data in the phone will be reset to default values. If setting fails, a MT error, +CME ERROR: [err], is returned. Refer subclause 9.2 for [err] values.
-If the MT is locked and this command is used, then the MT will be unlocked after the master reset.
-Test command returns OK
-Defined values
-[phone lock code ] string type; Security code (Phone Lock code) must be verified before performing the master reset.
-</description>
-</spec>
-<spec>
- <command>AT+CLAC</command>
- <profile>List all available AT commands </profile>
- <description>Execution command causes the MT to return one or more lines of AT Commands.
-Note: This command only returns the AT commands that are available for the user.
-Defined values
-[AT Command ]:
-Defines the AT command including the prefix AT. Text shall not contain the sequence 0[CR] or OK[CR]
-</description>
-</spec>
-<spec>
- <command>AT+CLAC=?</command>
- <profile>List all available AT commands (Query all)</profile>
- <description>Execution command causes the MT to return one or more lines of AT Commands.
-Note: This command only returns the AT commands that are available for the user.
-Defined values
-[AT Command ]:
-Defines the AT command including the prefix AT. Text shall not contain the sequence 0[CR] or OK[CR]
-</description>
-</spec>
-<spec>
- <command>AT+CALD=</command>
- <profile>Delete alarm (Assign)</profile>
- <description>Action command deletes an alarm in the MT. If the command fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Test command returns supported array index values.
-Defined values
-[n]: integer type value indicating the index of the alarm; default is manufacturer specific
-</description>
-</spec>
-<spec>
- <command>AT+CALD=?</command>
- <profile>Delete alarm (Query all)</profile>
- <description>Action command deletes an alarm in the MT. If the command fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Test command returns supported array index values.
-Defined values
-[n]: integer type value indicating the index of the alarm; default is manufacturer specific
-</description>
-</spec>
-<spec>
- <command>AT+CAPD=</command>
- <profile>Postpone or dismiss an alarm (Assign)</profile>
- <description>Set command postpones or dismisses a currently active alarm. If the command fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Test command returns supported [sec]-parameter values.
-Defined values
-[sec]: integer type value indicating the number of seconds to postpone the alarm. If [sec] is set to 0 (default), the alarm is dismissed.
-</description>
-</spec>
-<spec>
- <command>AT+CAPD=?</command>
- <profile>Postpone or dismiss an alarm (Query all)</profile>
- <description>Set command postpones or dismisses a currently active alarm. If the command fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Test command returns supported [sec]-parameter values.
-Defined values
-[sec]: integer type value indicating the number of seconds to postpone the alarm. If [sec] is set to 0 (default), the alarm is dismissed.
-</description>
-</spec>
-<spec>
- <command>AT+CTZU=</command>
- <profile>Automatic Time Zone Update (Assign)</profile>
- <description>Set command enables and disables automatic time zone update via NITZ. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current settings in the MT.
-Test command returns supported on- and off-values.
-Defined values
-[onoff]: integer type value indicating:
- 0 – Disable automatic time zone update via NITZ (default).
- 1 – Enable automatic time zone update via NITZ.
-</description>
-</spec>
-<spec>
- <command>AT+CTZU?</command>
- <profile>Automatic Time Zone Update (Query)</profile>
- <description>Set command enables and disables automatic time zone update via NITZ. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current settings in the MT.
-Test command returns supported on- and off-values.
-Defined values
-[onoff]: integer type value indicating:
- 0 – Disable automatic time zone update via NITZ (default).
- 1 – Enable automatic time zone update via NITZ.
-</description>
-</spec>
-<spec>
- <command>AT+CTZU=?</command>
- <profile>Automatic Time Zone Update (Query all)</profile>
- <description>Set command enables and disables automatic time zone update via NITZ. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current settings in the MT.
-Test command returns supported on- and off-values.
-Defined values
-[onoff]: integer type value indicating:
- 0 – Disable automatic time zone update via NITZ (default).
- 1 – Enable automatic time zone update via NITZ.
-</description>
-</spec>
-<spec>
- <command>AT+CTZR=</command>
- <profile>Time Zone Reporting (Assign)</profile>
- <description>This set command enables and disables the time zone change event reporting. If the reporting is enabled the MT returns the unsolicited result code +CTZV: [tz] whenever the time zone is changed. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current reporting settings in the MT.
-Test command returns supported [onoff]-values.
- NOTE: The Time Zone reporting is not affected by the Automatic Time Zone setting command, +CTZU.
-Defined values
-[onoff]: integer type value indicating:
- 0 – disable time zone change event reporting (default).
- 1 – Enable time zone change event reporting.
-</description>
-</spec>
-<spec>
- <command>AT+CTZR?</command>
- <profile>Time Zone Reporting (Query)</profile>
- <description>This set command enables and disables the time zone change event reporting. If the reporting is enabled the MT returns the unsolicited result code +CTZV: [tz] whenever the time zone is changed. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current reporting settings in the MT.
-Test command returns supported [onoff]-values.
- NOTE: The Time Zone reporting is not affected by the Automatic Time Zone setting command, +CTZU.
-Defined values
-[onoff]: integer type value indicating:
- 0 – disable time zone change event reporting (default).
- 1 – Enable time zone change event reporting.
-</description>
-</spec>
-<spec>
- <command>AT+CTZR=?</command>
- <profile>Time Zone Reporting (Query all)</profile>
- <description>This set command enables and disables the time zone change event reporting. If the reporting is enabled the MT returns the unsolicited result code +CTZV: [tz] whenever the time zone is changed. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
-Read command returns the current reporting settings in the MT.
-Test command returns supported [onoff]-values.
- NOTE: The Time Zone reporting is not affected by the Automatic Time Zone setting command, +CTZU.
-Defined values
-[onoff]: integer type value indicating:
- 0 – disable time zone change event reporting (default).
- 1 – Enable time zone change event reporting.
-</description>
-</spec>
-<spec>
- <command>AT+CPROT=</command>
- <profile>Enter protocol mode(Assign)</profile>
- <description>Set command informs TA that TE wants to establish a peer-to-peer protocol [proto] or upper layer connection (indicating by the [lsap]s setting) with the MT on the link from which the command was received.
-This command can be used in case the link between TE and MT does not provide itself such a mechanism.
-If MT has succeeded in establishing a logical link between application protocols and external interface, it will send CONNECT message to the TE. Otherwise, the NO CARRIER response will be returned.
-If the CONNECT response is received, TE can start sending [proto] or upper layer frames.
-The connection shall always return for [proto] mode when the protocol session is ended. When the MT receives a disconnect request from its peer entity, it will process it and send OK response to the TE indicating its capability for receiving new AT commands. Since [proto] or upper layers can be accessed in other ways, TA must have pre-knowledge of the fact that connection is initiated with AT+CPROT command. This means that switch to [proto] mode must include some sort of notification to the protocol entity.
-This command can be aborted by sending a [proto] or upper layer disconnection frame. In that case, MT will return in command mode by sending the OK response.
-Refer subclause 9.2 for possible [err] values.
-Test command returns values supported as a compound value.
-Defined values
-[proto]
-0 OBEX (refer.[44])
-…15 reserved by the present document
-16... manufacturer specific
-[version]: version number of [proto]: string type
-[lsap1]: defines a level of service or application protocol on the top of [proto] layer. It may refer to services or protocols defined in other standards development organizations (SDOs).
-1 IrMC level 1 (Minimum Level) Only .(refer [43] subclause 2.9.4)
-2 IrMC level 1 and 2 (Minimum and Access Levels) Only. .(refer [43] subclause 2.9.4)
-4IrMC level 1, 2 and 3 (Minimum, Access, Index Levels) Only- implies static index support. .(refer [43] subclause 2.9.4)
-8IrMC level 1, 2 and 4 (Minimum, Access and Sync Levels) Only-implies unique index support. .(refer [43] subclause 2.9.4)
-10 IrMC level 1, 2, 3 and 4 (Minimum, Access, Index and Sync Levels)-implies support of static and unique index. .(refer [43] subclause 2.9.4)
-…15 reserved by the present document
-16... manufacturer specific
-[lsap2]...[lsapN]
-In case [lsapN],[lsapN+1] received in the +CPROT command identifies protocol layers, the protocol identified by N+1 shall be on the top of the protocol identified by N on a framework point of view.
-0…15 reserved by the present document
-16... manufacturer specific
-</description>
-</spec>
-<spec>
- <command>AT+CPROT=?</command>
- <profile>Enter protocol mode(Query all)</profile>
- <description>Set command informs TA that TE wants to establish a peer-to-peer protocol [proto] or upper layer connection (indicating by the [lsap]s setting) with the MT on the link from which the command was received.
-This command can be used in case the link between TE and MT does not provide itself such a mechanism.
-If MT has succeeded in establishing a logical link between application protocols and external interface, it will send CONNECT message to the TE. Otherwise, the NO CARRIER response will be returned.
-If the CONNECT response is received, TE can start sending [proto] or upper layer frames.
-The connection shall always return for [proto] mode when the protocol session is ended. When the MT receives a disconnect request from its peer entity, it will process it and send OK response to the TE indicating its capability for receiving new AT commands. Since [proto] or upper layers can be accessed in other ways, TA must have pre-knowledge of the fact that connection is initiated with AT+CPROT command. This means that switch to [proto] mode must include some sort of notification to the protocol entity.
-This command can be aborted by sending a [proto] or upper layer disconnection frame. In that case, MT will return in command mode by sending the OK response.
-Refer subclause 9.2 for possible [err] values.
-Test command returns values supported as a compound value.
-Defined values
-[proto]
-0 OBEX (refer.[44])
-…15 reserved by the present document
-16... manufacturer specific
-[version]: version number of [proto]: string type
-[lsap1]: defines a level of service or application protocol on the top of [proto] layer. It may refer to services or protocols defined in other standards development organizations (SDOs).
-1 IrMC level 1 (Minimum Level) Only .(refer [43] subclause 2.9.4)
-2 IrMC level 1 and 2 (Minimum and Access Levels) Only. .(refer [43] subclause 2.9.4)
-4IrMC level 1, 2 and 3 (Minimum, Access, Index Levels) Only- implies static index support. .(refer [43] subclause 2.9.4)
-8IrMC level 1, 2 and 4 (Minimum, Access and Sync Levels) Only-implies unique index support. .(refer [43] subclause 2.9.4)
-10 IrMC level 1, 2, 3 and 4 (Minimum, Access, Index and Sync Levels)-implies support of static and unique index. .(refer [43] subclause 2.9.4)
-…15 reserved by the present document
-16... manufacturer specific
-[lsap2]...[lsapN]
-In case [lsapN],[lsapN+1] received in the +CPROT command identifies protocol layers, the protocol identified by N+1 shall be on the top of the protocol identified by N on a framework point of view.
-0…15 reserved by the present document
-16... manufacturer specific
-</description>
-</spec>
-<spec>
- <command>AT+CGLA=</command>
- <profile>Generic UICC Logical Channel access (Assign)</profile>
- <description>Set command transmits to the MT the [command] it then shall send as it is to the UICC. In the same manner the UICC [response] shall be sent back by the MT to the TA as it is. Refer subclause 9.2 for [err] values.
-This command allows a direct control of the UICC by a distant application on the TE. The TE shall then take care of processing UICC information within the frame specified by GSM/UMTS.
-Although Generic UICC Logical Channel Access command +CGLA allows TE to take control over the UICC‑MT interface, there are some functions of the UICC-MT interface that logically do not need to be accessed from outside the TA/MT. Moreover, for security reason the GSM network authentication should not be handled outside the TA/MT. Therefore it shall not be allowed to execute a Run GSM Algorithm command or an Authenticate command in GSM context from the TE using +CGLA at all time whether the +CGLA is locked or unlocked. This shall not forbid the TE to send Authenticate commands in other security contexts (e.g. EAP security context).
-For example, the TA/MT shall forbid the transfer of the Authenticate command to a USIM application when parameters P2 = 0 (GSM security context). See TS 31.102 [59] for USIM authenticate command definition.
-NOTE: Compared to Restricted UICC Access command +CRLA, the definition of +CGLA allows TE to take more control over the UICC‑MT interface. The locking and unlocking of the interface may be done by a special [command] value or automatically by TA/MT (by interpreting [command] parameter). In case that TE application does not use the unlock command (or does not send a [command] causing automatic unlock) in a certain timeout value, MT may release the locking.
-Defined values
-[sessionid]: integer type; this is the identifier of the session to be used in order to send the APDU commands to the UICC. It is manadatory in order to send commands to the UICC when targeting applications on the smart card using a logical channel other than the default channel (channel '0').
-[length] : integer type; length of the characters that are sent to TE in [command] or [response] (two times the actual length of the command or response)
-[command] : command passed on by the MT to the UICC in the format as described in 3GPP TS 31.101 [65] (hexadecimal character format; refer +CSCS)
-[response] : response to the command passed on by the UICC to the MT in the format as described in 3GPP TS 31.101 [65] (hexadecimal character format; refer +CSCS)
-</description>
-</spec>
-<spec>
- <command>AT+CGLA=?</command>
- <profile>Generic UICC Logical Channel access (Query all)</profile>
- <description>Set command transmits to the MT the [command] it then shall send as it is to the UICC. In the same manner the UICC [response] shall be sent back by the MT to the TA as it is. Refer subclause 9.2 for [err] values.
-This command allows a direct control of the UICC by a distant application on the TE. The TE shall then take care of processing UICC information within the frame specified by GSM/UMTS.
-Although Generic UICC Logical Channel Access command +CGLA allows TE to take control over the UICC‑MT interface, there are some functions of the UICC-MT interface that logically do not need to be accessed from outside the TA/MT. Moreover, for security reason the GSM network authentication should not be handled outside the TA/MT. Therefore it shall not be allowed to execute a Run GSM Algorithm command or an Authenticate command in GSM context from the TE using +CGLA at all time whether the +CGLA is locked or unlocked. This shall not forbid the TE to send Authenticate commands in other security contexts (e.g. EAP security context).
-For example, the TA/MT shall forbid the transfer of the Authenticate command to a USIM application when parameters P2 = 0 (GSM security context). See TS 31.102 [59] for USIM authenticate command definition.
-NOTE: Compared to Restricted UICC Access command +CRLA, the definition of +CGLA allows TE to take more control over the UICC‑MT interface. The locking and unlocking of the interface may be done by a special [command] value or automatically by TA/MT (by interpreting [command] parameter). In case that TE application does not use the unlock command (or does not send a [command] causing automatic unlock) in a certain timeout value, MT may release the locking.
-Defined values
-[sessionid]: integer type; this is the identifier of the session to be used in order to send the APDU commands to the UICC. It is manadatory in order to send commands to the UICC when targeting applications on the smart card using a logical channel other than the default channel (channel '0').
-[length] : integer type; length of the characters that are sent to TE in [command] or [response] (two times the actual length of the command or response)
-[command] : command passed on by the MT to the UICC in the format as described in 3GPP TS 31.101 [65] (hexadecimal character format; refer +CSCS)
-[response] : response to the command passed on by the UICC to the MT in the format as described in 3GPP TS 31.101 [65] (hexadecimal character format; refer +CSCS)
-</description>
-</spec>
-<spec>
- <command>AT+CRLA=</command>
- <profile>Restricted UICC Logical Channel access (Assign)</profile>
- <description>By using this command instead of Generic UICC Access +CGLA TE application has easier but more limited access to the UICC database. Set command transmits to the MT the UICC [command] and its required parameters. MT handles internally all UICC‑MT interface locking and file selection routines. As response to the command, MT sends the actual UICC information parameters and response data. MT error result code +CME ERROR may be returned when the command cannot be passed to the UICC, but failure in the execution of the command in the UICC is reported in [sw1] and [sw2] parameters. Refer to subclause 9.2 for [err] values.
-Coordination of command requests to UICC and the ones issued by GSM/UMTS application inside the MT is implementation dependent. However the TE should be aware of the precedence of the GSM/UMTS application commands to the TE commands.
-Defined values
-[sessionid]: integer type; this is the identifier of the session to be used in order to send the APDU commands to the UICC. It is mandatory in order to send commands to the UICC when targeting applications on the smart card using a logical channel other than the default channel (channel '0').
-[command] (command passed on by the MT to the UICC; refer 3GPP TS 31.101 [65]):
-176 READ BINARY
-178 READ RECORD
-192 GET RESPONSE
-214 UPDATE BINARY
-220 UPDATE RECORD
-242 STATUS
-203 RETRIEVE DATA
-219 SET DATA
-all other values are reserved
-
-NOTE 1: The MT internally executes all commands necessary for selecting the desired file, before performing the actual command.[fileid]: integer type; this is the identifier of a elementary datafile on UICC. Mandatory for every command except STATUS.
-NOTE 2: The range of valid file identifiers depends on the actual UICC and is defined in 3GPP TS 31.101 [65]. Optional files may not be present at all.[P1], [P2], [P3]: integer type; parameters passed on by the MT to the UICC. These parameters are mandatory for every command, except GET RESPONSE and STATUS. The values are described in 3GPP TS 31.101 [65]
-[data]: information which shall be written to the SIM (hexadecimal character format; refer +CSCS)
-[pathid]: string type; contains the path of an elementary file on the UICC in hexadecimal format (e.g. '5F704F30' for DFSoLSA/EFSAI). The [pathid] shall only be used in the mode 'select by path from current DF' as defined in ETSI TS 102 221 [60].
-[sw1], [sw2]: integer type; information from the UICC about the execution of the actual command. These parameters are delivered to the TE in both cases, on successful or failed execution of the command
-[response]: response of a successful completion of the command previously issued (hexadecimal character format; refer +CSCS). STATUS and GET RESPONSE return data, which gives information about the current elementary datafield. This information includes the type of file and its size (refer 3GPP TS 31.101 [65]). After READ BINARY, READ RECORD or RETRIEVE DATA command the requested data will be returned. [response] is not returned after a successful UPDATE BINARY, UPDATE RECORD or SET DATA command
-</description>
-</spec>
-<spec>
- <command>AT+CRLA=?</command>
- <profile>Restricted UICC Logical Channel access (Query all)</profile>
- <description>By using this command instead of Generic UICC Access +CGLA TE application has easier but more limited access to the UICC database. Set command transmits to the MT the UICC [command] and its required parameters. MT handles internally all UICC‑MT interface locking and file selection routines. As response to the command, MT sends the actual UICC information parameters and response data. MT error result code +CME ERROR may be returned when the command cannot be passed to the UICC, but failure in the execution of the command in the UICC is reported in [sw1] and [sw2] parameters. Refer to subclause 9.2 for [err] values.
-Coordination of command requests to UICC and the ones issued by GSM/UMTS application inside the MT is implementation dependent. However the TE should be aware of the precedence of the GSM/UMTS application commands to the TE commands.
-Defined values
-[sessionid]: integer type; this is the identifier of the session to be used in order to send the APDU commands to the UICC. It is mandatory in order to send commands to the UICC when targeting applications on the smart card using a logical channel other than the default channel (channel '0').
-[command] (command passed on by the MT to the UICC; refer 3GPP TS 31.101 [65]):
-176 READ BINARY
-178 READ RECORD
-192 GET RESPONSE
-214 UPDATE BINARY
-220 UPDATE RECORD
-242 STATUS
-203 RETRIEVE DATA
-219 SET DATA
-all other values are reserved
-
-NOTE 1: The MT internally executes all commands necessary for selecting the desired file, before performing the actual command.[fileid]: integer type; this is the identifier of a elementary datafile on UICC. Mandatory for every command except STATUS.
-NOTE 2: The range of valid file identifiers depends on the actual UICC and is defined in 3GPP TS 31.101 [65]. Optional files may not be present at all.[P1], [P2], [P3]: integer type; parameters passed on by the MT to the UICC. These parameters are mandatory for every command, except GET RESPONSE and STATUS. The values are described in 3GPP TS 31.101 [65]
-[data]: information which shall be written to the SIM (hexadecimal character format; refer +CSCS)
-[pathid]: string type; contains the path of an elementary file on the UICC in hexadecimal format (e.g. '5F704F30' for DFSoLSA/EFSAI). The [pathid] shall only be used in the mode 'select by path from current DF' as defined in ETSI TS 102 221 [60].
-[sw1], [sw2]: integer type; information from the UICC about the execution of the actual command. These parameters are delivered to the TE in both cases, on successful or failed execution of the command
-[response]: response of a successful completion of the command previously issued (hexadecimal character format; refer +CSCS). STATUS and GET RESPONSE return data, which gives information about the current elementary datafield. This information includes the type of file and its size (refer 3GPP TS 31.101 [65]). After READ BINARY, READ RECORD or RETRIEVE DATA command the requested data will be returned. [response] is not returned after a successful UPDATE BINARY, UPDATE RECORD or SET DATA command
-</description>
-</spec>
-<spec>
- <command>AT+CCHO=</command>
- <profile>Open Logical Channel (Assign)</profile>
- <description>Execution of the command causes the MT to return [sessionid] to allow the TE to identify a channel that is being allocated by the UICC, which is attached to ME. The UICC will open a new logical channel; select the application identified by the [dfname] received with this command and return a session Id as the response. The ME shall restrict the communication between the TE and the UICC to this logical channel.
-This [sessionid] is to be used when sending commands with Restricted UICC Logical Channel access +CRLA or Generic UICC Logical Channel access +CGLA commands.
-Note that the logical channel number is contained in the CLASS byte of an APDU command, thus implicitly contained in all APDU commands sent to a UICC. In this case it will be up to the MT to manage the logical channel part of the APDU CLASS byte and to ensure that the chosen logical channel is relevant to the [sessionid] indicated in the AT command. See 3GPP TS 31.101 [65] for further information on logical channels in APDU commands protocol.
-Refer subclause 9.2 for possible [err] values.
-Defined values
-[dfname]: all selectable applications in the UICC are referenced by a DF name coded on 1 to 16 bytes
-[sessionid]:A session Id to be used in order to target a specific application on the smart card (e.g. (U)SIM, WIM, ISIM) using logical channels mechanism (string without double quotes that represents a decimal value)
-See 3GPP TS 31.101 [65] for more information about defined values.
-</description>
-</spec>
-<spec>
- <command>AT+CCHO=?</command>
- <profile>Open Logical Channel (Query all)</profile>
- <description>Execution of the command causes the MT to return [sessionid] to allow the TE to identify a channel that is being allocated by the UICC, which is attached to ME. The UICC will open a new logical channel; select the application identified by the [dfname] received with this command and return a session Id as the response. The ME shall restrict the communication between the TE and the UICC to this logical channel.
-This [sessionid] is to be used when sending commands with Restricted UICC Logical Channel access +CRLA or Generic UICC Logical Channel access +CGLA commands.
-Note that the logical channel number is contained in the CLASS byte of an APDU command, thus implicitly contained in all APDU commands sent to a UICC. In this case it will be up to the MT to manage the logical channel part of the APDU CLASS byte and to ensure that the chosen logical channel is relevant to the [sessionid] indicated in the AT command. See 3GPP TS 31.101 [65] for further information on logical channels in APDU commands protocol.
-Refer subclause 9.2 for possible [err] values.
-Defined values
-[dfname]: all selectable applications in the UICC are referenced by a DF name coded on 1 to 16 bytes
-[sessionid]:A session Id to be used in order to target a specific application on the smart card (e.g. (U)SIM, WIM, ISIM) using logical channels mechanism (string without double quotes that represents a decimal value)
-See 3GPP TS 31.101 [65] for more information about defined values.
-</description>
-</spec>
-<spec>
- <command>AT+CCHC=</command>
- <profile>Close Logical Channel (Assign)</profile>
- <description>This command asks the ME to close a communication session with the UICC. The ME shall close the previously opened logical channel. The TE will no longer be able to send commands on this logical channel. The UICC will close the logical channel when receiving this command. Refer subclause 9.2 for possible [err] values.
-Defined values
-[sessionid]:A session Id to be used in order to target a specific application on the smart card (e.g. (U)SIM, WIM, ISIM) using logical channels mechanism (string without double quotes that represents a decimal value)
-</description>
-</spec>
-<spec>
- <command>AT+CCHC=?</command>
- <profile>Close Logical Channel (Query all)</profile>
- <description>This command asks the ME to close a communication session with the UICC. The ME shall close the previously opened logical channel. The TE will no longer be able to send commands on this logical channel. The UICC will close the logical channel when receiving this command. Refer subclause 9.2 for possible [err] values.
-Defined values
-[sessionid]:A session Id to be used in order to target a specific application on the smart card (e.g. (U)SIM, WIM, ISIM) using logical channels mechanism (string without double quotes that represents a decimal value)
-</description>
-</spec>
-<spec>
- <command>AT+CEAP=</command>
- <profile>EAP authentication (Assign)</profile>
- <description>This command allows a TE to exchange EAP packets with the UICC or the ME.
-Prior to the execution of this command, the TE shall retrieve the available AIDs using the +CUAD command. The TE shall select one appropriate AID to be addressed. Selection may include asking the user, and considering EAP methods supported by the AIDs. The TE shall set the [dfname] value using the selected AID and shall set the [EAPMethod] value to the requested EAP method.
-If the targeted application on the UICC does support the requested EAP method, the MT shall derive the directory file identifier (see ETSI TS 102 310 [66]) from [dfname] and [EAPMethod], and it shall transmit the [EAP packet data] to the UICC application using the Authenticate APDU command as defined in ETSI TS 102 310 [66]. The appropriate DFEAP in the ADF must be selected prior to the submission of an EAP Authenticate command with the [EAP packet data]. Then the EAP Response data sent by the UICC application in its response to the Authenticate command shall be provided to the TE in [EAP packet response].
-If the targeted application on the UICC does not support the requested EAP method and if the MT does support this method then the [EAP packet data] shall be handled by the MT. During the handling of the EAP method, the MT shall run the authentication algorithm on the SIM or USIM, respectively.
-Also the MT has to allocate an [EAPsessionid] in order to identify an EAP session and its corresponding keys and parameters.
-If neither the MT nor the appropriate UICC application support the requested EAP method, the MT shall respond with 'EAP method not supported'.
-Refer subclause 9.2 for possible [err] values.
-Defined values
-[dfname]: string type; all selectable applications represented in the UICC by an AID are referenced by a DF name coded on 1 to 16 bytes.
-[EAPMethod]: octet type; this is the EAP Method Type as defined in [68]
-[EAP packet data]: as defined in ETSI TS 102 310 [66]
-[EAPsessionid]: integer type; this is the identifier of the EAP session to be used in order to retrieve the EAP parameters with EAP Retreive Parameters +CERP command.
-[EAP packet response]: as defined in ETSI TS 102 310 [66]
-</description>
-</spec>
-<spec>
- <command>AT+CEAP=?</command>
- <profile>EAP authentication (Query all)</profile>
- <description>This command allows a TE to exchange EAP packets with the UICC or the ME.
-Prior to the execution of this command, the TE shall retrieve the available AIDs using the +CUAD command. The TE shall select one appropriate AID to be addressed. Selection may include asking the user, and considering EAP methods supported by the AIDs. The TE shall set the [dfname] value using the selected AID and shall set the [EAPMethod] value to the requested EAP method.
-If the targeted application on the UICC does support the requested EAP method, the MT shall derive the directory file identifier (see ETSI TS 102 310 [66]) from [dfname] and [EAPMethod], and it shall transmit the [EAP packet data] to the UICC application using the Authenticate APDU command as defined in ETSI TS 102 310 [66]. The appropriate DFEAP in the ADF must be selected prior to the submission of an EAP Authenticate command with the [EAP packet data]. Then the EAP Response data sent by the UICC application in its response to the Authenticate command shall be provided to the TE in [EAP packet response].
-If the targeted application on the UICC does not support the requested EAP method and if the MT does support this method then the [EAP packet data] shall be handled by the MT. During the handling of the EAP method, the MT shall run the authentication algorithm on the SIM or USIM, respectively.
-Also the MT has to allocate an [EAPsessionid] in order to identify an EAP session and its corresponding keys and parameters.
-If neither the MT nor the appropriate UICC application support the requested EAP method, the MT shall respond with 'EAP method not supported'.
-Refer subclause 9.2 for possible [err] values.
-Defined values
-[dfname]: string type; all selectable applications represented in the UICC by an AID are referenced by a DF name coded on 1 to 16 bytes.
-[EAPMethod]: octet type; this is the EAP Method Type as defined in [68]
-[EAP packet data]: as defined in ETSI TS 102 310 [66]
-[EAPsessionid]: integer type; this is the identifier of the EAP session to be used in order to retrieve the EAP parameters with EAP Retreive Parameters +CERP command.
-[EAP packet response]: as defined in ETSI TS 102 310 [66]
-</description>
-</spec>
-<spec>
- <command>AT+CERP=</command>
- <profile>EAP Retrieve Parameters (Assign)</profile>
- <description>This command allows a TE to retrieve EAP session parameters / derived keys after a run of the +CEAP command. If the EAP session is handled by the UICC then the MT shall return the content of the elementary file corresponding to the indicated [EAPparameter]. Those EFs are defined in ETSI TS 102 310 [66].
-If the MT handles the EAP session then the MT shall return the corresponding parameter encoded as defined for EAP files, see ETSI TS 102 310 [66].
-For example, the keys shall be retrieved in the TLV format described in ETSI TS 102 310 [66].
-If neither the MT nor the appropriate UICC application can provide the requested information (e.g. because the requested EAP session ID does not exist), the MT shall respond with 'Incorrect parameters'.
-Refer subclause 9.2 for possible [err] values.
-Defined values
-[EAPparameter]:
-1Keys
-2Status
-3Identity
-4Pseudonym
-[EAPsessionid]: integer type; this is the identifier of the EAP session to be used in order to retrieve the EAP parameters corresponding to an active EAP session with EAP Retreive Parameters +CERP command.
-[EAP parameter response]: depends on the value of [EAPparameter]; format of the parameter retrieved is as defined in ETSI TS 102 310 [66].
-</description>
-</spec>
-<spec>
- <command>AT+CERP=?</command>
- <profile>EAP Retrieve Parameters (Query all)</profile>
- <description>This command allows a TE to retrieve EAP session parameters / derived keys after a run of the +CEAP command. If the EAP session is handled by the UICC then the MT shall return the content of the elementary file corresponding to the indicated [EAPparameter]. Those EFs are defined in ETSI TS 102 310 [66].
-If the MT handles the EAP session then the MT shall return the corresponding parameter encoded as defined for EAP files, see ETSI TS 102 310 [66].
-For example, the keys shall be retrieved in the TLV format described in ETSI TS 102 310 [66].
-If neither the MT nor the appropriate UICC application can provide the requested information (e.g. because the requested EAP session ID does not exist), the MT shall respond with 'Incorrect parameters'.
-Refer subclause 9.2 for possible [err] values.
-Defined values
-[EAPparameter]:
-1Keys
-2Status
-3Identity
-4Pseudonym
-[EAPsessionid]: integer type; this is the identifier of the EAP session to be used in order to retrieve the EAP parameters corresponding to an active EAP session with EAP Retreive Parameters +CERP command.
-[EAP parameter response]: depends on the value of [EAPparameter]; format of the parameter retrieved is as defined in ETSI TS 102 310 [66].
-</description>
-</spec>
-<spec>
- <command>AT+CUAD=</command>
- <profile>UICC Application Discovery (Assign)</profile>
- <description>This command asks the MT to discover what applications are available for selection on the UICC. According to TS 102.221 [60], the ME shall access and read the EFDIR file in the UICC and return the values that are stored in its records. Each record contains the AID and optionally application parameters of one of the applications available on the UICC.
-Defined values
-[response]:the response is the content of the EFDIR.
-</description>
-</spec>
-<spec>
- <command>AT+CUAD=?</command>
- <profile>UICC Application Discovery (Query all)</profile>
- <description>This command asks the MT to discover what applications are available for selection on the UICC. According to TS 102.221 [60], the ME shall access and read the EFDIR file in the UICC and return the values that are stored in its records. Each record contains the AID and optionally application parameters of one of the applications available on the UICC.
-Defined values
-[response]:the response is the content of the EFDIR.
-</description>
-</spec>
-<spec>
- <command>AT+CMEE=</command>
- <profile>Report Mobile Termination error (Assign)</profile>
- <description>Set command disables or enables the use of result code +CME ERROR: [err] as an indication of an error relating to the functionality of the MT. When enabled, MT related errors cause +CME ERROR: [err] final result code instead of the regular ERROR final result code. ERROR is returned normally when error is related to syntax, invalid parameters, or TA functionality.
-Test command returns values supported as a compound value.
-Defined values
-[n]:
-0 disable +CME ERROR: [err] result code and use ERROR instead
-1 enable +CME ERROR: [err] result code and use numeric [err] values (refer next subclause)
-2 enable +CME ERROR: [err] result code and use verbose [err] values (refer next subclause)
-</description>
-</spec>
-<spec>
- <command>AT+CMEE?</command>
- <profile>Report Mobile Termination error (Query)</profile>
- <description>Set command disables or enables the use of result code +CME ERROR: [err] as an indication of an error relating to the functionality of the MT. When enabled, MT related errors cause +CME ERROR: [err] final result code instead of the regular ERROR final result code. ERROR is returned normally when error is related to syntax, invalid parameters, or TA functionality.
-Test command returns values supported as a compound value.
-Defined values
-[n]:
-0 disable +CME ERROR: [err] result code and use ERROR instead
-1 enable +CME ERROR: [err] result code and use numeric [err] values (refer next subclause)
-2 enable +CME ERROR: [err] result code and use verbose [err] values (refer next subclause)
-</description>
-</spec>
-<spec>
- <command>AT+CMEE=?</command>
- <profile>Report Mobile Termination error (Query all)</profile>
- <description>Set command disables or enables the use of result code +CME ERROR: [err] as an indication of an error relating to the functionality of the MT. When enabled, MT related errors cause +CME ERROR: [err] final result code instead of the regular ERROR final result code. ERROR is returned normally when error is related to syntax, invalid parameters, or TA functionality.
-Test command returns values supported as a compound value.
-Defined values
-[n]:
-0 disable +CME ERROR: [err] result code and use ERROR instead
-1 enable +CME ERROR: [err] result code and use numeric [err] values (refer next subclause)
-2 enable +CME ERROR: [err] result code and use verbose [err] values (refer next subclause)
-</description>
-</spec>
-<spec>
- <command>AT+CGDSCONT=</command>
- <profile>Define Secondary PDP Context (Assign)</profile>
- <description>The set command specifies PDP context parameter values for a Secondary PDP context identified by the (local) context identification parameter, [cid]. The number of PDP contexts that may be in a defined state at the same time is given by the range returned by the test command.
-A special form of the set command, +CGDSCONT= [cid] causes the values for context number [cid] to become undefined.
-The read command returns the current settings for each defined context.
-Defined values
-[cid]: (PDP Context Identifier) a numeric parameter which specifies a particular PDP context definition. The parameter is local to the TE-MT interface and is used in other PDP context-related commands. The range of permitted values (minimum value = 1) is returned by the test form of the command.
-[p_cid]: (Primary PDP Context Identifier) a numeric parameter which specifies a particular PDP context definition which has been specified by use of the +CGDCONT command. The parameter is local to the TE-MT interface. The list of permitted values is returned by the test form of the command.
-[d_comp]: a numeric parameter that controls PDP data compression (applicable for SNDCPonly) (refer 3GPP TS 44.065 [61])
-0 - off (default if value is omitted)
-1 - on (manufacturer preferred compression)
-2 - V.42bis
-3 - V.44
-Other values are reserved.
-[h_comp]: a numeric parameter that controls PDP header compression (refer 3GPP TS 44.065 [61] and 3GPP TS 25.323 [62])
-0 - off (default if value is omitted)
-1 - on (manufacturer preferred compression)
-2 - RFC1144 (applicable for SNDCP only)
-3 - RFC2507
-4 - RFC3095 (applicable for PDCP only)
-Other values are reserved.
-</description>
-</spec>
-<spec>
- <command>AT+CGDSCONT?</command>
- <profile>Define Secondary PDP Context (Query)</profile>
- <description>The set command specifies PDP context parameter values for a Secondary PDP context identified by the (local) context identification parameter, [cid]. The number of PDP contexts that may be in a defined state at the same time is given by the range returned by the test command.
-A special form of the set command, +CGDSCONT= [cid] causes the values for context number [cid] to become undefined.
-The read command returns the current settings for each defined context.
-Defined values
-[cid]: (PDP Context Identifier) a numeric parameter which specifies a particular PDP context definition. The parameter is local to the TE-MT interface and is used in other PDP context-related commands. The range of permitted values (minimum value = 1) is returned by the test form of the command.
-[p_cid]: (Primary PDP Context Identifier) a numeric parameter which specifies a particular PDP context definition which has been specified by use of the +CGDCONT command. The parameter is local to the TE-MT interface. The list of permitted values is returned by the test form of the command.
-[d_comp]: a numeric parameter that controls PDP data compression (applicable for SNDCPonly) (refer 3GPP TS 44.065 [61])
-0 - off (default if value is omitted)
-1 - on (manufacturer preferred compression)
-2 - V.42bis
-3 - V.44
-Other values are reserved.
-[h_comp]: a numeric parameter that controls PDP header compression (refer 3GPP TS 44.065 [61] and 3GPP TS 25.323 [62])
-0 - off (default if value is omitted)
-1 - on (manufacturer preferred compression)
-2 - RFC1144 (applicable for SNDCP only)
-3 - RFC2507
-4 - RFC3095 (applicable for PDCP only)
-Other values are reserved.
-</description>
-</spec>
-<spec>
- <command>AT+CGDSCONT=?</command>
- <profile>Define Secondary PDP Context (Query all)</profile>
- <description>The set command specifies PDP context parameter values for a Secondary PDP context identified by the (local) context identification parameter, [cid]. The number of PDP contexts that may be in a defined state at the same time is given by the range returned by the test command.
-A special form of the set command, +CGDSCONT= [cid] causes the values for context number [cid] to become undefined.
-The read command returns the current settings for each defined context.
-Defined values
-[cid]: (PDP Context Identifier) a numeric parameter which specifies a particular PDP context definition. The parameter is local to the TE-MT interface and is used in other PDP context-related commands. The range of permitted values (minimum value = 1) is returned by the test form of the command.
-[p_cid]: (Primary PDP Context Identifier) a numeric parameter which specifies a particular PDP context definition which has been specified by use of the +CGDCONT command. The parameter is local to the TE-MT interface. The list of permitted values is returned by the test form of the command.
-[d_comp]: a numeric parameter that controls PDP data compression (applicable for SNDCPonly) (refer 3GPP TS 44.065 [61])
-0 - off (default if value is omitted)
-1 - on (manufacturer preferred compression)
-2 - V.42bis
-3 - V.44
-Other values are reserved.
-[h_comp]: a numeric parameter that controls PDP header compression (refer 3GPP TS 44.065 [61] and 3GPP TS 25.323 [62])
-0 - off (default if value is omitted)
-1 - on (manufacturer preferred compression)
-2 - RFC1144 (applicable for SNDCP only)
-3 - RFC2507
-4 - RFC3095 (applicable for PDCP only)
-Other values are reserved.
-</description>
-</spec>
-<spec>
- <command>AT+CGAUTO=</command>
- <profile>Automatic response to a network request for PDP context activation (Assign)</profile>
- <description>The set command disables or enables an automatic positive response (auto-answer) to the receipt of a Request PDP Context Activation message from the network. It also provides control over the use of the V.250 basic commands 'S0', 'A and 'H' for handling network requests for PDP context activation. The setting does not affect the issuing of the unsolicited result code RING or +CRING.
-The test command returns the values of [n] supported by the MT as a compound value.
-When the +CGAUTO=0 command is received, the MT shall not perform a PS detach if it is attached. Subsequently, when the MT announces a network request for PDP context activation by issuing the unsolicited result code RING or +CRING, the TE may manually accept or reject the request by issuing the +CGANS command or may simply ignore the network request.
-When the +CGAUTO=1 command is received, the MT shall attempt to perform a PS attach if it is not already attached. Failure will result in ERROR or, if enabled, +CME ERROR being returned to the TE. Subsequently, when the MT announces a network request for PDP context activation by issuing the unsolicited result code RING or +CRING to the TE, this is followed by the intermediate result code CONNECT. The MT then enters V.250 online data state and follows the same procedure as it would after having received a +CGANS=1 with no [L2P] or [cid] values specified.
-Defined values
-[n]:
-0 turn off automatic response for Packet Domain only
-1 turn on automatic response for Packet Domain only
-2 modem compatibility mode, Packet Domain only
-3 modem compatibility mode, Packet Domain and circuit switched calls (default)
-For [n] = 0 Packet DomainS network requests are manually accepted or rejected by the +CGANS command.
-For [n] = 1 Packet Domain network requests are automatically accepted according to the description above.
-For [n] = 2, automatic acceptance of Packet Domain network requests is controlled by the 'S0' command. Manual control uses the 'A' and 'H' commands, respectively, to accept and reject Packet Domain requests. (+CGANS may also be used.) Incoming circuit switched calls can be neither manually nor automatically answered.
-For [n] = 3, automatic acceptance of both Packet Domain network requests and incoming circuit switched calls is controlled by the 'S0' command. Manual control uses the 'A' and 'H' commands, respectively, to accept and reject Packet Domain requests. (+CGANS may also be used.) Circuit switched calls are handled as described elsewhere in this specification.
-</description>
-</spec>
-<spec>
- <command>AT+CGAUTO?</command>
- <profile>Automatic response to a network request for PDP context activation (Query)</profile>
- <description>The set command disables or enables an automatic positive response (auto-answer) to the receipt of a Request PDP Context Activation message from the network. It also provides control over the use of the V.250 basic commands 'S0', 'A and 'H' for handling network requests for PDP context activation. The setting does not affect the issuing of the unsolicited result code RING or +CRING.
-The test command returns the values of [n] supported by the MT as a compound value.
-When the +CGAUTO=0 command is received, the MT shall not perform a PS detach if it is attached. Subsequently, when the MT announces a network request for PDP context activation by issuing the unsolicited result code RING or +CRING, the TE may manually accept or reject the request by issuing the +CGANS command or may simply ignore the network request.
-When the +CGAUTO=1 command is received, the MT shall attempt to perform a PS attach if it is not already attached. Failure will result in ERROR or, if enabled, +CME ERROR being returned to the TE. Subsequently, when the MT announces a network request for PDP context activation by issuing the unsolicited result code RING or +CRING to the TE, this is followed by the intermediate result code CONNECT. The MT then enters V.250 online data state and follows the same procedure as it would after having received a +CGANS=1 with no [L2P] or [cid] values specified.
-Defined values
-[n]:
-0 turn off automatic response for Packet Domain only
-1 turn on automatic response for Packet Domain only
-2 modem compatibility mode, Packet Domain only
-3 modem compatibility mode, Packet Domain and circuit switched calls (default)
-For [n] = 0 Packet DomainS network requests are manually accepted or rejected by the +CGANS command.
-For [n] = 1 Packet Domain network requests are automatically accepted according to the description above.
-For [n] = 2, automatic acceptance of Packet Domain network requests is controlled by the 'S0' command. Manual control uses the 'A' and 'H' commands, respectively, to accept and reject Packet Domain requests. (+CGANS may also be used.) Incoming circuit switched calls can be neither manually nor automatically answered.
-For [n] = 3, automatic acceptance of both Packet Domain network requests and incoming circuit switched calls is controlled by the 'S0' command. Manual control uses the 'A' and 'H' commands, respectively, to accept and reject Packet Domain requests. (+CGANS may also be used.) Circuit switched calls are handled as described elsewhere in this specification.
-</description>
-</spec>
-<spec>
- <command>AT+CGAUTO=?</command>
- <profile>Automatic response to a network request for PDP context activation (Query all)</profile>
- <description>The set command disables or enables an automatic positive response (auto-answer) to the receipt of a Request PDP Context Activation message from the network. It also provides control over the use of the V.250 basic commands 'S0', 'A and 'H' for handling network requests for PDP context activation. The setting does not affect the issuing of the unsolicited result code RING or +CRING.
-The test command returns the values of [n] supported by the MT as a compound value.
-When the +CGAUTO=0 command is received, the MT shall not perform a PS detach if it is attached. Subsequently, when the MT announces a network request for PDP context activation by issuing the unsolicited result code RING or +CRING, the TE may manually accept or reject the request by issuing the +CGANS command or may simply ignore the network request.
-When the +CGAUTO=1 command is received, the MT shall attempt to perform a PS attach if it is not already attached. Failure will result in ERROR or, if enabled, +CME ERROR being returned to the TE. Subsequently, when the MT announces a network request for PDP context activation by issuing the unsolicited result code RING or +CRING to the TE, this is followed by the intermediate result code CONNECT. The MT then enters V.250 online data state and follows the same procedure as it would after having received a +CGANS=1 with no [L2P] or [cid] values specified.
-Defined values
-[n]:
-0 turn off automatic response for Packet Domain only
-1 turn on automatic response for Packet Domain only
-2 modem compatibility mode, Packet Domain only
-3 modem compatibility mode, Packet Domain and circuit switched calls (default)
-For [n] = 0 Packet DomainS network requests are manually accepted or rejected by the +CGANS command.
-For [n] = 1 Packet Domain network requests are automatically accepted according to the description above.
-For [n] = 2, automatic acceptance of Packet Domain network requests is controlled by the 'S0' command. Manual control uses the 'A' and 'H' commands, respectively, to accept and reject Packet Domain requests. (+CGANS may also be used.) Incoming circuit switched calls can be neither manually nor automatically answered.
-For [n] = 3, automatic acceptance of both Packet Domain network requests and incoming circuit switched calls is controlled by the 'S0' command. Manual control uses the 'A' and 'H' commands, respectively, to accept and reject Packet Domain requests. (+CGANS may also be used.) Circuit switched calls are handled as described elsewhere in this specification.
-</description>
-</spec>
-<spec>
- <command>AT+CGANS=</command>
- <profile>Manual response to a network request for PDP context activation (Assign)</profile>
- <description>The execution command requests the MT to respond to a network request for Packet Domain PDP context activation which has been signalled to the TE by the RING or +CRING: unsolicited result code. The [response] parameter allows the TE to accept or reject the request.
-If [response] is 0, the request is rejected and the MT returns OK to the TE.
-If [response] is 1, the following procedure is followed by the MT.
-Commands following the +CGANS command in the AT command line shall not be processed by the MT.
-If the [L2P] parameter value is unacceptable to the MT, the MT shall return an ERROR or +CME ERROR response. Otherwise, the MT issues the intermediate result code CONNECT and enters V.250 online data state.
-The detailed behaviour after the online data state has been entered is dependent on the PDP type. It is described briefly in 3GPP TS 27.060[34] and in more detail in 3GPP TS 29.061[39] and the specifications for the relevant PDPs. PDP context activation procedures shall take place prior to or during the PDP startup.
-One or more [cid]s may be specified in order to provide the values needed for the context activation request.
-During the PDP startup procedure the MT has the PDP type and the PDP address provided by the network in the Request PDP Context Activation message. The MT may also have some or all of the following information -
- The MT may have a priori knowledge, for example, it may implement only one PDP type.
- The command may have provided an [L2P] parameter value.
- The TE may provide one or both of PDP type and PDP address to the MT in the PDP startup.
-If any of this information is in conflict, the command will fail.
-If one or more [cid] is given then an attempt shall be made to identify an appropriate context definition by matching the PDP type and PDP address in the network request with the PDP type and PDP address in each of the specified context definitions (in the order in which their [cid]s appear in the command) as follows -
- The PDP type must match exactly.
- The PDP addresses are considered to match if they are identical or if the address in the context definition is unspecified.
-The context shall be activated using the values for PDP type and PDP address provided by the network, together with the other information found in the PDP context definition. An APN may or may not re required, depending on the application.
-If no [cid] is given or if there is no matching context definition, the MT will attempt to activate the context using the values for PDP type and PDP address provided by the network, together with any other relevant information known to the MT. The other context parameters will be set to their default values.
-If the activation is successful, data transfer may proceed.
-After data transfer is complete, and the layer 2 protocol termination procedure has completed successfully, the V.250 command state is re-entered and the MT returns the final result code OK
-In the event of an erroneous termination or a failure to startup, the V.250 command state is re-entered and the MT returns the final result code NO CARRIER or, if enabled, +CME ERROR. Attach, activate and other errors may be reported. It is also an error to issue the +CGANS command when there is no outstanding network request.
-NOTE: This is not the same as if the MT issues a +CGDATA (or +CGACT) command after receiving a +CRING unsolicited result code. A +CGDATA (or +CGACT) does not command the MT to acknowledge the network request but rather to make a new request for context activation. The network request would be ignored.
-The test command returns the values of [response] and [L2P] supported by the MT as compound values.
-This command may be used in both normal and modem compatibility modes.
-Defined values
-[response]: is a numeric parameter which specifies how the request should be responded to.
-0 reject the request
-1 accept and request that the PDP context be activated
-If [response] is omitted it is assumed to be 0. Other values are reserved and will result in the ERROR response.
-[L2P]: a string parameter which indicates the layer 2 protocol to be used (see +CGDATA command).
-[cid]: a numeric parameter which specifies a particular PDP context definition (see the +CGDCONT and +CGDSCONT commands).
-</description>
-</spec>
-<spec>
- <command>AT+CGANS=?</command>
- <profile>Manual response to a network request for PDP context activation (Query all)</profile>
- <description>The execution command requests the MT to respond to a network request for Packet Domain PDP context activation which has been signalled to the TE by the RING or +CRING: unsolicited result code. The [response] parameter allows the TE to accept or reject the request.
-If [response] is 0, the request is rejected and the MT returns OK to the TE.
-If [response] is 1, the following procedure is followed by the MT.
-Commands following the +CGANS command in the AT command line shall not be processed by the MT.
-If the [L2P] parameter value is unacceptable to the MT, the MT shall return an ERROR or +CME ERROR response. Otherwise, the MT issues the intermediate result code CONNECT and enters V.250 online data state.
-The detailed behaviour after the online data state has been entered is dependent on the PDP type. It is described briefly in 3GPP TS 27.060[34] and in more detail in 3GPP TS 29.061[39] and the specifications for the relevant PDPs. PDP context activation procedures shall take place prior to or during the PDP startup.
-One or more [cid]s may be specified in order to provide the values needed for the context activation request.
-During the PDP startup procedure the MT has the PDP type and the PDP address provided by the network in the Request PDP Context Activation message. The MT may also have some or all of the following information -
- The MT may have a priori knowledge, for example, it may implement only one PDP type.
- The command may have provided an [L2P] parameter value.
- The TE may provide one or both of PDP type and PDP address to the MT in the PDP startup.
-If any of this information is in conflict, the command will fail.
-If one or more [cid] is given then an attempt shall be made to identify an appropriate context definition by matching the PDP type and PDP address in the network request with the PDP type and PDP address in each of the specified context definitions (in the order in which their [cid]s appear in the command) as follows -
- The PDP type must match exactly.
- The PDP addresses are considered to match if they are identical or if the address in the context definition is unspecified.
-The context shall be activated using the values for PDP type and PDP address provided by the network, together with the other information found in the PDP context definition. An APN may or may not re required, depending on the application.
-If no [cid] is given or if there is no matching context definition, the MT will attempt to activate the context using the values for PDP type and PDP address provided by the network, together with any other relevant information known to the MT. The other context parameters will be set to their default values.
-If the activation is successful, data transfer may proceed.
-After data transfer is complete, and the layer 2 protocol termination procedure has completed successfully, the V.250 command state is re-entered and the MT returns the final result code OK
-In the event of an erroneous termination or a failure to startup, the V.250 command state is re-entered and the MT returns the final result code NO CARRIER or, if enabled, +CME ERROR. Attach, activate and other errors may be reported. It is also an error to issue the +CGANS command when there is no outstanding network request.
-NOTE: This is not the same as if the MT issues a +CGDATA (or +CGACT) command after receiving a +CRING unsolicited result code. A +CGDATA (or +CGACT) does not command the MT to acknowledge the network request but rather to make a new request for context activation. The network request would be ignored.
-The test command returns the values of [response] and [L2P] supported by the MT as compound values.
-This command may be used in both normal and modem compatibility modes.
-Defined values
-[response]: is a numeric parameter which specifies how the request should be responded to.
-0 reject the request
-1 accept and request that the PDP context be activated
-If [response] is omitted it is assumed to be 0. Other values are reserved and will result in the ERROR response.
-[L2P]: a string parameter which indicates the layer 2 protocol to be used (see +CGDATA command).
-[cid]: a numeric parameter which specifies a particular PDP context definition (see the +CGDCONT and +CGDSCONT commands).
-</description>
-</spec>
-<spec>
- <command>AT+CGCS=</command>
- <profile>VGCS subscriptions and GId status (Assign)</profile>
- <description>This command works with SIM Card and when the GSM Application is selected in UICC. Function with USIM is for further study. The set command is used to edit the status of the GId EFVGCSS on the SIM. The read command returns all subscribed GIds in EFVGCS and their status in EFVGCSS from the SIM.
-
-Defined values
-[GId] integer type, group Id as specified in 3GPP TS 22.030 [19]
-[status]: integer type, value
- 0 deactivated
- 1 activated
-</description>
-</spec>
-<spec>
- <command>AT+CGCS?</command>
- <profile>VGCS subscriptions and GId status (Query)</profile>
- <description>This command works with SIM Card and when the GSM Application is selected in UICC. Function with USIM is for further study. The set command is used to edit the status of the GId EFVGCSS on the SIM. The read command returns all subscribed GIds in EFVGCS and their status in EFVGCSS from the SIM.
-
-Defined values
-[GId] integer type, group Id as specified in 3GPP TS 22.030 [19]
-[status]: integer type, value
- 0 deactivated
- 1 activated
-</description>
-</spec>
-<spec>
- <command>AT+CGCS=?</command>
- <profile>VGCS subscriptions and GId status (Query all)</profile>
- <description>This command works with SIM Card and when the GSM Application is selected in UICC. Function with USIM is for further study. The set command is used to edit the status of the GId EFVGCSS on the SIM. The read command returns all subscribed GIds in EFVGCS and their status in EFVGCSS from the SIM.
-
-Defined values
-[GId] integer type, group Id as specified in 3GPP TS 22.030 [19]
-[status]: integer type, value
- 0 deactivated
- 1 activated
-</description>
-</spec>
-<spec>
- <command>AT+CBCS=</command>
- <profile>VBS subscriptions and GId status (Assign)</profile>
- <description>This command works with SIM Card and when the GSM Application is selected in UICC. Function with USIM is for further study. The set command is used to edit the status of the GId EFVBSS on the SIM. The read command returns all subscribed GIds in EFVBS and their status in EFVBSS from the SIM.
-
-Defined values
-[GId] integer type, group Id as specified in 3GPP TS 22.030 [19]
-[status]: integer type, value
- 0 deactivated
- 1 activated
-</description>
-</spec>
-<spec>
- <command>AT+CBCS?</command>
- <profile>VBS subscriptions and GId status (Query)</profile>
- <description>This command works with SIM Card and when the GSM Application is selected in UICC. Function with USIM is for further study. The set command is used to edit the status of the GId EFVBSS on the SIM. The read command returns all subscribed GIds in EFVBS and their status in EFVBSS from the SIM.
-
-Defined values
-[GId] integer type, group Id as specified in 3GPP TS 22.030 [19]
-[status]: integer type, value
- 0 deactivated
- 1 activated
-</description>
-</spec>
-<spec>
- <command>AT+CBCS=?</command>
- <profile>VBS subscriptions and GId status (Query all)</profile>
- <description>This command works with SIM Card and when the GSM Application is selected in UICC. Function with USIM is for further study. The set command is used to edit the status of the GId EFVBSS on the SIM. The read command returns all subscribed GIds in EFVBS and their status in EFVBSS from the SIM.
-
-Defined values
-[GId] integer type, group Id as specified in 3GPP TS 22.030 [19]
-[status]: integer type, value
- 0 deactivated
- 1 activated
-</description>
-</spec>
-</gsm>
\ No newline at end of file
diff --git a/src/attranslator.h b/src/attranslator.h
deleted file mode 100644
index 3d5a2ea..0000000
--- a/src/attranslator.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-
-#ifndef ATTRANSLATOR_H
-#define ATTRANSLATOR_H
-
-#include <QString>
-#include <QMap>
-#include <QStringList>
-#include "gsmspec.h"
-
-class AtTranslator
-{
-
-public:
- AtTranslator(const QString& specFile);
- QString translateCommand( const QString& );
- QString translateResponse( const QString& );
- void resetSpecification(const QString& );
-
-private:
- GSMSpec gsmSpec;
-};
-
-#endif
diff --git a/src/callmanager.h b/src/callmanager.h
deleted file mode 100644
index 875687e..0000000
--- a/src/callmanager.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-
-#ifndef CALLMANAGER_H
-#define CALLMANAGER_H
-
-#include "phonesim.h"
-
-enum CallState
-{
- CallState_Active = 0,
- CallState_Held = 1,
- CallState_Dialing = 2,
- CallState_Alerting = 3,
- CallState_Incoming = 4,
- CallState_Waiting = 5,
- CallState_Hangup = 6, // Call about to go away.
- CallState_SwapDummy = 7 // Used internally in phonesim only.
-};
-
-struct CallInfo
-{
- int id;
- CallState state;
- QString number;
- bool incoming;
- bool dialBack;
-};
-
-class QSimControlEvent;
-
-class CallManager : public QObject
-{
- Q_OBJECT
-public:
- CallManager( QObject *parent = 0 );
- ~CallManager();
-
- // Process an AT command. Returns false if not a call-related command.
- bool command( const QString& cmd );
-
- // Get the active call list.
- QList<CallInfo> calls() const { return callList; }
-
- // Hangup calls.
- void hangupAll();
- void hangupConnected();
- void hangupHeld();
- void hangupConnectedAndHeld();
- void hangupCall( int id );
-
- // Accept the incoming call.
- bool acceptCall();
-
- // Primitive GSM 22.030 call operations with AT+CHLD.
- bool chld0();
- bool chld1();
- bool chld1x( int x );
- bool chld2();
- bool chld2x( int x );
- bool chld3();
- bool chld4();
-
- // Adjust whether various commands will fail even if they would normally succeed.
- bool holdWillFail() const { return _holdWillFail; }
- void setHoldWillFail( bool value ) { _holdWillFail = value; }
- bool activateWillFail() const { return _activateWillFail; }
- void setActivateWillFail( bool value ) { _activateWillFail = value; }
- bool joinWillFail() const { return _joinWillFail; }
- void setJoinWillFail( bool value ) { _joinWillFail = value; }
- bool deflectWillFail() const { return _deflectWillFail; }
- void setDeflectWillFail( bool value ) { _deflectWillFail = value; }
-
- // Get or set the maximum number of participants in a multiparty (-1 means unlimited).
- int multipartyLimit() const { return _multipartyLimit; }
- void setMultipartyLimit( int value ) { _multipartyLimit = value; }
-
-public slots:
- // Start an incoming call simulation.
- void startIncomingCall( const QString& number, bool dialBack );
- void startIncomingCall( const QString& number );
-
-signals:
- // Send a response to a command.
- void send( const QString& line );
-
- // Send an unsolicited notification related to calls.
- void unsolicited( const QString& line );
-
- // Verify a phone number to see if dialing is allowed.
- // Set "ok" to false if the number should be disallowed.
- void dialCheck( const QString& number, bool& ok );
-
- // Send a call control event.
- void controlEvent( const QSimControlEvent& event );
-
-private slots:
- // Transition the active dialing or alerting call to connected.
- void dialingToConnected();
-
- // Transition the active dialing call to alerting.
- void dialingToAlerting();
-
- // Handle dial-backs.
- void dialBack();
- void dialBackWithHangup5();
- void dialBackWithHangup4();
-
- // Hangup after a dial-back timeout.
- void hangupTimeout();
-
- // Send the next RING indication for incoming calls.
- void sendNextRing();
-
-private:
- QList<CallInfo> callList;
- QTimer *connectTimer;
- QTimer *alertingTimer;
- QTimer *hangupTimer;
- QTimer *ringTimer;
- bool _holdWillFail;
- bool _activateWillFail;
- bool _joinWillFail;
- bool _deflectWillFail;
- int _multipartyLimit;
- int numRings;
-
- int newId();
- int idForDialing();
- int idForIncoming();
- int idForState( CallState state );
- int countForState( CallState state );
- int indexForId( int id );
- bool hasCall( CallState state );
- void changeGroup( CallState oldState, CallState newState );
- void sendState( const CallInfo& info );
-};
-
-#endif
diff --git a/src/control.h b/src/control.h
deleted file mode 100644
index 32db57e..0000000
--- a/src/control.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-
-#ifndef CONTROL_H
-#define CONTROL_H
-
-#include <hardwaremanipulator.h>
-
-class ControlWidget;
-
-class Control: public HardwareManipulator
-{
-Q_OBJECT
-
-public:
- Control(const QString& ruleFile, SimRules *sr, QObject *parent=0);
- virtual ~Control();
-
-public slots:
- void handleFromData( const QString& );
- void handleToData( const QString& );
- void setPhoneNumber( const QString& );
- void handleNewApp();
-
-protected:
- virtual void warning( const QString&, const QString& );
-
-private:
- ControlWidget *widget;
- friend class ControlWidget;
-};
-
-class ControlFactory : public HardwareManipulatorFactory
-{
-public:
- inline virtual HardwareManipulator *create(SimRules *sr, QObject *parent)
- { return new Control(ruleFile(), sr, parent); }
-};
-
-
-#endif
diff --git a/src/default.xml b/src/default.xml
deleted file mode 100644
index 4080676..0000000
--- a/src/default.xml
+++ /dev/null
@@ -1,3387 +0,0 @@
-<?xml version="1.0"?>
-<simulator>
-
-<!-- Phone simulator definition file for the "Qt Extended Pseudo Phone" -->
-
-<!-- Note: dialing 199 will cause a dialback to simulate an incoming call -->
-<!-- Note: dialing 177 will cause a dialback to simulate an incoming call, and hangup after 5 seconds -->
-<!-- Note: dialing 166 will accept the incoming call and hangup up after 5 seconds-->
-<!-- Note: dialing 155 will elicit a 'BUSY' response from the recipient-->
-
-<!-- Initialize state variables -->
-
- <!-- Advice of charge -->
- <!-- Call Meter -->
- <set name="AOC" value="000000"/>
-
- <!-- Call Meter reporting -->
- <set name="AOCMODE" value="1"/>
-
- <!-- Accumulated Call Meter -->
- <set name="ACM" value="000480"/>
-
- <!-- Accumulated Call Meter Maximum -->
- <set name="ACMMAX" value="000500"/>
-
- <!-- Price per Unit and Currency -->
- <set name="PPU" value='GBP","2.66'/>
-
- <!-- Battery Capacity
- first value
- 0-powered by battery
- 1-battery connected, powered by charger
- 2-no battery.
-
- second value is percentage battery remaining.
- 0-exhausted
- 1-99-partial charge
- 100-fully charged.
- -->
- <set name="BC" value="0,100"/>
-
- <!-- Signal Quality -->
- <set name="SQ" value="99,99"/>
-
- <!-- Manufacturer -->
- <set name="GMI" value="MeeGo"/>
-
- <!-- Model -->
- <set name="GMM" value="Synthetic Device"/>
-
- <!-- Revision -->
- <set name="GMR" value="REV1"/>
-
- <!-- Serial number -->
- <set name="GSN" value="1234567890"/>
-
- <!-- SIM card id -->
- <set name="IMSI" value="246813579"/>
-
- <!-- Identifier for ATI command -->
- <set name="ID" value="MeeGo Synthetic Phone"/>
-
- <!-- Character set -->
- <set name="SCS" value="IRA"/>
-
- <!-- Type of address (local = 129, international = 145) -->
- <set name="STA" value="129"/>
-
- <!-- Service reporting control flag -->
- <set name="CR" value="0"/>
-
- <!-- Cellular result code control flag -->
- <set name="CRC" value="0"/>
-
- <!-- Extended error message string -->
- <set name="ERR" value="EXTENDED ERROR STRING"/>
-
- <!-- Network registration presentation flag -->
- <set name="REG" value="1,0"/>
-
- <!-- GPRS network registration presentation flag -->
- <set name="GREG" value="0"/>
-
- <!-- Mobile phone operator selection mode (0=auto, 1=manual, 2=deregister, 3=set only <format>, 4=manual / automatic) -->
- <set name="OPMODE" value="0"/>
-
- <!-- Mobile phone operator selection format (0=long alphanumeric, 1=short alphanumeric, 2=numeric -->
- <set name="OPFORMAT" value="0"/>
-
- <!-- GCF Operator List, format <status(1:available,2:current,3:forbidden)>,"<alphanum.operator name>","<short operator name>","<MCC/MNC num>"-->
- <set name="OP1" value="T-MeeGo"/>
- <set name="OP1PLMN" value="23401"/>
- <set name="OP1STATE" value="2"/>
-
- <set name="OP2" value="Maybe Forbidden Net"/>
- <set name="OP2PLMN" value="23402"/>
- <set name="OP2STATE" value="3"/>
-
- <set name="OP3" value="Competitor Net"/>
- <set name="OP3PLMN" value="23403"/>
- <set name="OP3STATE" value="3"/>
-
- <set name="OP4" value="Blocked Net"/>
- <set name="OP4PLMN" value="23404"/>
- <set name="OP4STATE" value="3"/>
-
- <set name="OP5" value="Inaccessible Net"/>
- <set name="OP5PLMN" value="23405"/>
- <set name="OP5STATE" value="3"/>
-
- <set name="OP6" value="Phone Net"/>
- <set name="OP6PLMN" value="23406"/>
- <set name="OP6STATE" value="1"/>
-
- <set name="OP7" value="Teleco Net"/>
- <set name="OP7PLMN" value="24681"/>
- <set name="OP7STATE" value="1"/>
-
- <set name="OP8" value="Mobile Net"/>
- <set name="OP8PLMN" value="24682"/>
- <set name="OP8STATE" value="1"/>
-
- <set name="OP9" value="IMSI Unknown"/>
- <set name="OP9PLMN" value="24683"/>
- <set name="OP9STATE" value="1"/>
-
- <set name="OP10" value="NotAllowed"/>
- <set name="OP10PLMN" value="24684"/>
- <set name="OP10STATE" value="1"/>
-
- <set name="OP11" value="NoService"/>
- <set name="OP11PLMN" value="24685"/>
- <set name="OP11STATE" value="1"/>
-
- <!-- Preferred Operators -->
- <set name="PO1" value="1,2,23401"/>
- <set name="PO2" value="2,2,23402"/>
-
- <!-- Name of current mobile phone operator -->
- <set name="OP" value="${OP1}"/>
- <set name="OPPLMN" value="${OP1PLMN}"/>
-
- <!-- Calling line identification presentation flag -->
- <set name="LIP" value="0"/>
-
- <!-- Calling line identification restriction flag -->
- <set name="LIR" value="0"/>
- <set name="LIR_STATUS" value="3"/>
-
- <!-- Originating line identification presentation flag -->
- <set name="OLP" value="0"/>
-
- <!-- Call waiting presentation mode -->
- <set name="CWA_V" value="1"/>
- <set name="CWA_D" value="0"/>
- <set name="CWA_F" value="0"/>
-
- <!-- Call forwarding -->
- <set name="CF0C1" value="0"/>
- <set name="CF0C2" value="0"/>
- <set name="CF0C4" value="0"/>
- <set name="CF0C8" value="0"/>
- <set name="CF1C1" value="0"/>
- <set name="CF1C2" value="0"/>
- <set name="CF1C4" value="0"/>
- <set name="CF1C8" value="0"/>
- <set name="CF2C1" value="0"/>
- <set name="CF2C2" value="0"/>
- <set name="CF2C4" value="0"/>
- <set name="CF2C8" value="0"/>
- <set name="CF3C1" value="0"/>
- <set name="CF3C2" value="0"/>
- <set name="CF3C4" value="0"/>
- <set name="CF3C8" value="0"/>
- <set name="CF0C1T" value="129"/>
- <set name="CF1C1T" value="129"/>
- <set name="CF2C1T" value="129"/>
- <set name="CF3C1T" value="129"/>
- <set name="CF2C1O" value="20"/>
-
- <!-- Service Center Address -->
- <set name="SCA" value="+15551234567"/>
- <set name="SCAT" value="145"/>
-
- <!-- Fixed Dialling presentation mode -->
- <set name="FD" value="0"/>
-
- <!-- Unstructured service presentation mode -->
- <set name="USD" value="0"/>
-
- <!-- Supplementary service notification flags -->
- <set name="SSN" value="0,0"/>
-
- <!-- Phone activity status (ready = 0, ringing = 3, call active = 4) -->
- <set name="PAS" value="0"/>
-
- <!-- Phone functionality power consumption level (minimal = 0, full = 1) -->
- <set name="FUN" value="0"/>
-
- <!-- Mobile equipment control modes -->
- <set name="MEC" value="0,0,0"/>
-
- <!-- Mobile equipment event reporting modes -->
- <set name="MER" value="0,0,0,0,0"/>
-
- <!-- Ericsson-style call monitoring status values -->
- <set name="ECAM" value="0"/>
-
- <!-- SMS text vs PDU message format (1 = text, 0 = PDU) -->
- <set name="CMGF" value="0"/>
-
- <!-- Error reporting mode -->
- <set name="MEE" value="0"/>
-
- <!-- SMS message list -->
- <set name="MSGLIST" value=""/>
- <set name="MSGLISTCOPY" value=""/>
- <set name="MSGMEM" value="SM"/>
-
- <!-- Number of messages in the SMS message list -->
- <set name="MSGCOUNT" value="0"/>
-
- <!-- Identifier for the current call -->
- <set name="CALLID" value="1"/>
-
- <!-- Name of the PIN that is required (eg. "PIN") -->
- <!-- READY: PIN/PUK not required; SIM PIN: PIN required; SIM PUK: PUK REQUIRED -->
- <set name="PINNAME" value="READY"/>
-
- <!-- Value of the PIN that is required -->
- <set name="PINVALUE" value="2468"/>
-
- <!-- pin protection status -->
- <set name="SC" value="0"/>
-
- <!-- Value of the PIN2 that is required -->
- <set name="PIN2VALUE" value="3579"/>
-
- <!-- Value of the PUK that is required -->
- <set name="PUKVALUE" value="13243546"/>
-
- <!-- Value of the PUK2 that is required -->
- <set name="PUK2VALUE" value="08978675"/>
-
- <!-- Value of the PSPIN that is required -->
- <set name="PSPINVALUE" value="4321"/>
-
- <!-- phone to sim pin protection status -->
- <set name="PS" value="0"/>
-
- <!-- Value of the SIM PIN2 that is required -->
- <set name="SIMPIN2VALUE" value="31337"/>
-
- <!-- Call Barring -->
- <set name="BARVAO" value="0"/>
- <set name="BARVOI" value="0"/>
- <set name="BARVOX" value="0"/>
- <set name="BARVAI" value="0"/>
- <set name="BARVIR" value="0"/>
- <set name="BARVNT" value="0"/>
- <set name="BARVNM" value="0"/>
- <set name="BARVNS" value="0"/>
- <set name="BARVNA" value="0"/>
- <set name="BARVAB" value="0"/>
- <set name="BARVAG" value="0"/>
- <set name="BARVAC" value="0"/>
-
- <!-- accessories, handsfree and car. 0 means not connected, 1 for connected -->
- <set name="HANDSFREE" value="0"/>
-
- <set name="CARHANDSFREE" value="0"/>
-
- <!-- list of available bands -->
- <set name="BAND0" value="GSM & EGSM"/>
- <set name="BAND1" value="GSM 1800"/>
- <set name="BAND2" value="Dualband 900/1800"/>
- <set name="BAND3" value="PCS 1900"/>
- <set name="BAND4" value="GSM 850"/>
- <set name="BAND5" value="Dualband 1900/850"/>
- <set name="BAND6" value=""/>
- <set name="BAND7" value=""/>
- <set name="BAND8" value=""/>
- <set name="BAND9" value=""/>
- <set name="BANDA" value=""/>
- <set name="BANDB" value=""/>
- <set name="BANDC" value=""/>
- <set name="BANDD" value=""/>
- <set name="BANDE" value=""/>
- <set name="BANDF" value=""/>
-
- <!-- current band. 0 means automatic and 1,"name" means manually select "name" -->
- <set name="BAND" value="0"/>
-
- <!-- Loudspeaker Volume Level -->
- <set name="LVL" value="125"/>
-
- <!-- Muting control -->
- <set name="MUT" value="0"/>
-
-<!-- Time -->
-<!-- Enable for testing
-<unsolicited delay="3000" once="true">*TTZ: 2, "11/25/2007, 12:12:12+40", 0</unsolicited>
-<unsolicited delay="3000" once="true">*TTZ: 2, "Cingluar", 0</unsolicited>
--->
-
-
-<!-- GSM 07.07: General commands -->
-
-<chat>
- <!-- Get manufacturer identifier -->
- <command>AT+CGMI</command>
- <response>${GMI}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Get manufacturer identifier support check -->
- <command>AT+CGMI=?</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Get manufacturer identifier, V.25ter version -->
- <command>AT+GMI</command>
- <response>${GMI}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Get manufacturer model -->
- <command>AT+CGMM</command>
- <response>${GMM}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Get manufacturer model, V.25ter version -->
- <command>AT+GMM</command>
- <response>${GMM}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Get manufacturer model support check -->
- <command>AT+CGMM=?</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Get manufacturer revision -->
- <command>AT+CGMR</command>
- <response>${GMR}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Get manufacturer revision, V.25ter version -->
- <command>AT+GMR</command>
- <response>${GMR}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Get manufacturer revision support check -->
- <command>AT+CGMR=?</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Get serial number -->
- <command>AT+CGSN</command>
- <response>${GSN}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Get serial number support check -->
- <command>AT+CGSN=?</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Get serial number, V.25ter version -->
- <command>AT+GSN</command>
- <response>${GSN}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Get SIM id -->
- <command>AT+CIMI</command>
- <response>${IMSI}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Get SIM id support check -->
- <command>AT+CIMI=?</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Query current character set -->
- <command>AT+CSCS?</command>
- <response>+CSCS: "${SCS}"\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query all supported character sets -->
- <command>AT+CSCS=?</command>
- <response>+CSCS: "GSM","IRA","PCCP437","PCDN","8859-1","HEX","UCS2"\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set character set -->
- <command>AT+CSCS="*"</command>
- <response>OK</response>
- <set name="SCS" value="*"/>
-</chat>
-
-<chat>
- <!-- Query current wireless network (GSM = 12) -->
- <command>AT+WS46?</command>
- <response>12\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query all supported wireless network types -->
- <command>AT+WS46=?</command>
- <response>(12)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Select GSM wireless network -->
- <command>AT+WS46=12</command>
- <response>OK</response>
-</chat>
-
-<!-- GSM 07.07: Call control commands and methods -->
-
-<chat>
- <!-- Query current type of address (local = 129, international = 145) -->
- <command>AT+CSTA?</command>
- <response>${STA}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported address types -->
- <command>AT+CSTA=?</command>
- <response>(129, 145)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set type of address to local -->
- <command>AT+CSTA=129</command>
- <response>OK</response>
- <set name="STA" value="129"/>
-</chat>
-
-<chat>
- <!-- Set type of address to international -->
- <command>AT+CSTA=145</command>
- <response>OK</response>
- <set name="STA" value="145"/>
-</chat>
-
-<chat>
- <!-- Query bearer service type (autobauding = 0) -->
- <command>AT+CBST?</command>
- <response>+CBST: 0\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported bearer service types -->
- <command>AT+CBST=?</command>
- <response>+CBST: (0),(0),(0)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set bearer service type -->
- <command>AT+CBST=*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Query radio link protocol -->
- <command>AT+CRLP?</command>
- <response>+CRLP: 61,61,48,6\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported radio link protocols -->
- <command>AT+CRLP=?</command>
- <response>+CRLP: (61),(61),(48),(6)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set radio link protocol -->
- <command>AT+CRLP=*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Query service reporting control -->
- <command>AT+CR?</command>
- <response>+CR: ${CR}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported service reporting controls -->
- <command>AT+CR=?</command>
- <response>+CR: (0,1)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Disable service reporting control -->
- <command>AT+CR=0</command>
- <response>OK</response>
- <set name="CR" value="0"/>
-</chat>
-
-<chat>
- <!-- Enable service reporting control -->
- <command>AT+CR=1</command>
- <response>OK</response>
- <set name="CR" value="1"/>
-</chat>
-
-<chat>
- <!-- Extended error report -->
- <command>AT+CEER</command>
- <response>+CEER: ${ERR}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query extended celluar result code status -->
- <command>AT+CRC?</command>
- <response>+CRC: ${CRC}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported cellular result code status values -->
- <command>AT+CRC=?</command>
- <response>+CRC: (0,1)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Disable extended cellular result codes -->
- <command>AT+CRC=0</command>
- <response>OK</response>
- <set name="CRC" value="0"/>
-</chat>
-
-<chat>
- <!-- Enable extended cellular result codes -->
- <command>AT+CRC=1</command>
- <response>OK</response>
- <set name="CRC" value="1"/>
-</chat>
-
-<chat>
- <!-- Query Ericsson-style call monitoring status -->
- <command>AT*ECAM?</command>
- <response>*ECAM: ${ECAM}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported call monitoring status values -->
- <command>AT*ECAM=?</command>
- <response>*ECAM: (0,1)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Disable call monitoring -->
- <command>AT*ECAM=0</command>
- <response>OK</response>
- <set name="ECAM" value="0"/>
-</chat>
-
-<chat>
- <!-- Enable call monitoring -->
- <command>AT*ECAM=1</command>
- <response>OK</response>
- <set name="ECAM" value="1"/>
-</chat>
-
-<!-- GSM 07.07: Network service related commands -->
-
-<chat>
- <!-- Query subscriber number -->
- <command>AT+CNUM</command>
- <response>+CNUM: ,"+358501234567",145,,4\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Determine if subscriber number queries are supported -->
- <command>AT+CNUM=?</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Query network registration result code presentation -->
- <command>AT+CREG?</command>
- <response>+CREG: ${REG},1\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported network registration result code presentation types -->
- <command>AT+CREG=?</command>
- <response>+CREG: (0,1,2)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set network registration result code presentation -->
- <command>AT+CREG=*</command>
- <response>OK</response>
- <set name="REG" value="*"/>
-</chat>
-
-<chat>
- <!-- Query GPRS network registration result code presentation -->
- <command>AT+CGREG?</command>
- <response>+CGREG: ${GREG},0\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query GPRS network registration result code presentation types -->
- <command>AT+CGREG=?</command>
- <response>+CGREG: (0,1,2)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set GPRS network registration result code presentation -->
- <command>AT+CGREG=*</command>
- <response>OK</response>
- <set name="GREG" value="*"/>
-</chat>
-
-
-<!-- ****************** PLMN Selection ***************************** -->
-<chat>
- <!-- Request PLMNS descriptors -->
- <command>AT+COPN</command>
- <response delay="2000">+COPN: ${OP1PLMN},"${OP1}"\n+COPN: ${OP2PLMN},"${OP2}"\n+COPN: ${OP3PLMN},"${OP3}"\n+COPN: ${OP4PLMN},"${OP4}"\n+COPN: ${OP5PLMN},"${OP5}"\n+COPN: ${OP6PLMN},"${OP6}"\n+COPN: ${OP7PLMN},"${OP7}"\n+COPN: ${OP8PLMN},"${OP8}"\n+COPN: ${OP9PLMN},"${OP9}"\n+COPN: ${OP10PLMN},"${OP10}"\n+COPN: ${OP11PLMN},"${OP11}"\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query current operator selection -->
- <command>AT+COPS?</command>
- <response delay="500">+COPS: ${OPMODE},${OPFORMAT},${OPDATA}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query current operator and plmn (Example) -->
- <command>AT+COPS=3,2;+COPS?;+COPS=3,0;+COPS?</command>
- <response delay="500">+COPS: 0,2,"${OPPLMN}"\n+COPS: 0,0,"${OP}"\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported operators, always reports -->
- <command>AT+COPS=?</command>
- <response delay="2000">+COPS: (${OP1STATE},"${OP1}","TTAU","${OP1PLMN}",2),(${OP2STATE},"${OP2}","MFN","${OP2PLMN}",0),(${OP2STATE},"${OP2}","MFN","${OP2PLMN}",2),(${OP3STATE},"${OP3}","CNT","${OP3PLMN}"),(${OP4STATE},"${OP4}","BNT","${OP4PLMN}"),(${OP5STATE},"${OP5}","INT","${OP5PLMN}"),(${OP6STATE},"${OP6}","PNT","${OP6PLMN}"),(${OP7STATE},"${OP7}","TNT","${OP7PLMN}"),(${OP8STATE},"${OP8}","MNT","${OP8PLMN}"),(${OP9STATE},"${OP9}","IMSI","${OP9PLMN}"),(${OP10STATE},"${OP10}","NOT","${OP10PLMN}"),(${OP11STATE},"${OP11}","SER","${OP11PLMN}"),(${OP1STATE},"${OP1}","TTAU","${OP1PLMN}",0)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Use long name for operators -->
- <command>AT+COPS=3,0</command>
- <set name="OPFORMAT" value="0"/>
- <set name="OPDATA" value=""${OP}""/>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Use MCC/MNC for operators -->
- <command>AT+COPS=3,2</command>
- <set name="OPFORMAT" value="2"/>
- <set name="OPDATA" value=""${OPPLMN}""/>
- <response delay="500">OK</response>
-</chat>
-
-<chat>
- <!-- Set automatic operator selection -->
- <command>AT+COPS=0*</command>
- <set name="OPMODE" value="0"/>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Set manual operator selection OP1 (Alphanumeric) -->
- <command>AT+COPS=1,0,"${OP1}"</command>
- <set name="OP" value="${OP1}"/>
- <set name="OPPLMN" value="${OP1PLMN}"/>
- <set name="OPMODE" value="1"/>
- <set name="OP1STATE" value="2"/>
- <set name="OP6STATE" value="1"/>
- <response delay="500">OK</response>
-</chat>
-
-<chat>
- <!-- Set manual operator selection OP1 (MCC/MNC) -->
- <command>AT+COPS=1,2,"${OP1PLMN}"</command>
- <set name="OP" value="${OP1}"/>
- <set name="OPPLMN" value="${OP1PLMN}"/>
- <set name="OPMODE" value="1"/>
- <set name="OP1STATE" value="2"/>
- <set name="OP6STATE" value="1"/>
- <response delay="500">OK</response>
-</chat>
-
-<!-- ****************************************** -->
-<!-- Networks 2 - 4 refuse network registration -->
-<chat>
- <!-- Refuse access to OP2 (Alphanumeric) -->
- <command>AT+COPS=1,0,${OP2}</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- Refuse access to OP3 (Alphanumeric) -->
- <command>AT+COPS=1,0,${OP3}</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- Refuse access to OP4 (Alphanumeric) -->
- <command>AT+COPS=1,0,${OP4}</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- Refuse access to OP2 (MCC/MNC) -->
- <command>AT+COPS=1,2,${OP2PLMN}</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- Refuse access to OP3 (MCC/MNC) -->
- <command>AT+COPS=1,2,${OP3PLMN}</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- Refuse access to OP4 (MCC/MNC) -->
- <command>AT+COPS=1,2,${OP4PLMN}</command>
- <response>ERROR</response>
-</chat>
-
-<!-- ****************************************** -->
-
-<chat>
- <!-- Set manual operator selection OP6 (Alphanumeric) -->
- <command>AT+COPS=1,0,"${OP6}"</command>
- <set name="OP" value="${OP6}"/>
- <set name="OPPLMN" value="${OP6PLMN}"/>
- <set name="OPMODE" value="1"/>
- <set name="OP6STATE" value="2"/>
- <set name="OP1STATE" value="1"/>
- <set name="OP7STATE" value="1"/>
- <set name="OP8STATE" value="1"/>
- <response delay="500">OK</response>
-</chat>
-
-<chat>
- <!-- Set manual operator selection OP6 (MCC/MNC) -->
- <command>AT+COPS=1,2,"${OP6PLMN}"</command>
- <set name="OP" value="${OP6}"/>
- <set name="OPPLMN" value="${OP6PLMN}"/>
- <set name="OPMODE" value="1"/>
- <set name="OP6STATE" value="2"/>
- <set name="OP1STATE" value="1"/>
- <set name="OP7STATE" value="1"/>
- <set name="OP8STATE" value="1"/>
- <response delay="500">OK</response>
-</chat>
-
-<chat>
- <!-- Set manual operator selection OP7 (Alphanumeric) -->
- <command>AT+COPS=1,0,"${OP7}"</command>
- <set name="OP" value="${OP7}"/>
- <set name="OPPLMN" value="${OP7PLMN}"/>
- <set name="OPMODE" value="1"/>
- <set name="OP7STATE" value="2"/>
- <set name="OP1STATE" value="1"/>
- <set name="OP6STATE" value="1"/>
- <set name="OP8STATE" value="1"/>
- <response delay="500">OK</response>
-</chat>
-
-<chat>
- <!-- Set manual operator selection OP7 (MCC/MNC) -->
- <command>AT+COPS=1,2,"${OP7PLMN}"</command>
- <set name="OP" value="${OP7}"/>
- <set name="OPPLMN" value="${OP7PLMN}"/>
- <set name="OPMODE" value="1"/>
- <set name="OP7STATE" value="2"/>
- <set name="OP1STATE" value="1"/>
- <set name="OP6STATE" value="1"/>
- <set name="OP8STATE" value="1"/>
- <response delay="500">OK</response>
-</chat>
-
-<chat>
- <!-- Set manual operator selection OP8 (Alphanumeric) -->
- <command>AT+COPS=1,0,"${OP8}"</command>
- <set name="OP" value="${OP8}"/>
- <set name="OPPLMN" value="${OP8PLMN}"/>
- <set name="OPMODE" value="1"/>
- <set name="OP8STATE" value="2"/>
- <set name="OP1STATE" value="1"/>
- <set name="OP6STATE" value="1"/>
- <set name="OP7STATE" value="1"/>
- <response delay="500">OK</response>
-</chat>
-
-<chat>
- <!-- Set manual operator selection OP8 (MCC/MNC) -->
- <command>AT+COPS=1,2,"${OP8PLMN}"</command>
- <set name="OP" value="${OP8}"/>
- <set name="OPPLMN" value="${OP8PLMN}"/>
- <set name="OPMODE" value="1"/>
- <set name="OP8STATE" value="2"/>
- <set name="OP1STATE" value="1"/>
- <set name="OP6STATE" value="1"/>
- <set name="OP7STATE" value="1"/>
- <response delay="500">OK</response>
-</chat>
-
-<!-- *********** Error Service providers ********************** -->
-<chat>
- <!-- Set failed register (IMSI unknown) to OP9 (Alphanumeric) -->
- <command>AT+COPS=1,0,"${OP9}"</command>
- <response delay="1500">+CMS ERROR: 30</response>
-</chat>
-
-<chat>
- <!-- Set failed register (IMSI unknown) to OP9 (MCC/MNC) -->
- <command>AT+COPS=1,2,${OP9PLMN}</command>
- <response delay="1500">+CMS ERROR: 30</response>
-</chat>
-
-<chat>
- <!-- Set failed register (Not Allowed) to OP10 (Alphanumeric) -->
- <command>AT+COPS=1,0,"${OP10}"</command>
- <response delay="1500">+CME ERROR: 32</response>
-</chat>
-
-<chat>
- <!-- Set failed register (Not Allowed) to OP10 (MCC/MNC) -->
- <command>AT+COPS=1,2,${OP10PLMN}</command>
- <response delay="1500">+CME ERROR: 32</response>
-</chat>
-
-<chat>
- <!-- Set failed register (No Service) to OP11 (Alphanumeric) -->
- <command>AT+COPS=1,0,"${OP11}"</command>
- <response delay="1500">+CME ERROR: 30</response>
-</chat>
-
-<chat>
- <!-- Set failed register (No Service) to OP11 (MCC/MNC) -->
- <command>AT+COPS=1,2,${OP11PLMN}</command>
- <response delay="1500">+CME ERROR: 30</response>
-</chat>
-
-<!-- ****************** Preferred Operator Selection ***************************** -->
-<chat>
- <!-- Request selection of preferred PLMN list -->
- <command>AT+CPLS?</command>
- <response delay="1000">+CPLS: 0\n\nOK</response> -->
-</chat>
-
-<chat>
- <!-- Request preferred operators -->
- <command>AT+CPOL?</command>
- <response delay="2000">+CPOL: ${PO1}\n+CPOL: ${PO2}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set preferred operator 1 -->
- <command>AT+CPOL=1,2,*</command>
- <response>OK</response>
- <set name="PO1" value="1,2,${*}"/>
-</chat>
-
-<chat>
- <!-- Remove preferred operator 1 -->
- <command>AT+CPOL=1</command>
- <response>OK</response>
- <set name="PO1" value=""/>
-</chat>
-
-<chat>
- <!-- Set preferred operator 2 -->
- <command>AT+CPOL=2,2,*</command>
- <response>OK</response>
- <set name="PO2" value="2,2,${*}"/>
-</chat>
-
-<chat>
- <!-- Remove preferred operator 2 -->
- <command>AT+CPOL=2</command>
- <response>OK</response>
- <set name="PO2" value=""/>
-</chat>
-
-<chat>
- <!-- Set preferred operator 3 -->
- <command>AT+CPOL=3,2,*</command>
- <response>OK</response>
- <set name="PO3" value="3,2,${*}"/>
-</chat>
-
-<chat>
- <!-- Remove preferred operator 3 -->
- <command>AT+CPOL=3</command>
- <response>OK</response>
- <set name="PO3" value=""/>
-</chat>
-
-<chat>
- <!-- Set preferred operator 4 -->
- <command>AT+CPOL=4,2,*</command>
- <response>OK</response>
- <set name="PO4" value="4,2,${*}"/>
-</chat>
-
-<chat>
- <!-- Remove preferred operator 4 -->
- <command>AT+CPOL=4</command>
- <response>OK</response>
- <set name="PO4" value=""/>
-</chat>
-
-<chat>
- <!-- Set preferred operator 5 -->
- <command>AT+CPOL=5,2,*</command>
- <response>OK</response>
- <set name="PO5" value="5,2,${*}"/>
-</chat>
-
-<chat>
- <!-- Remove preferred operator 5 -->
- <command>AT+CPOL=5</command>
- <response>OK</response>
- <set name="PO5" value=""/>
-</chat>
-
-<chat>
- <!-- Set preferred operator 6 -->
- <command>AT+CPOL=6,2,*</command>
- <response>OK</response>
- <set name="PO6" value="6,2,${*}"/>
-</chat>
-
-<chat>
- <!-- Remove preferred operator 6 -->
- <command>AT+CPOL=6</command>
- <response>OK</response>
- <set name="PO6" value=""/>
-</chat>
-
-<chat>
- <!-- Set preferred operator 7 -->
- <command>AT+CPOL=7,2,*</command>
- <response>OK</response>
- <set name="PO7" value="7,2,${*}"/>
-</chat>
-
-<chat>
- <!-- Remove preferred operator 7 -->
- <command>AT+CPOL=7</command>
- <response>OK</response>
- <set name="PO7" value=""/>
-</chat>
-
-<chat>
- <!-- Set preferred operator 8 -->
- <command>AT+CPOL=8,2,*</command>
- <response>OK</response>
- <set name="PO8" value="8,2,${*}"/>
-</chat>
-
-<chat>
- <!-- Remove preferred operator 8 -->
- <command>AT+CPOL=8</command>
- <response>OK</response>
- <set name="PO8" value=""/>
-</chat>
-
-<!-- ******************* CALL BARRING *****************************-->
-
-<chat>
- <!-- BAOC (Barr All Outgoing Calls) - Assign -->
- <command>AT+CLCK="AO",1,"${PIN2VALUE}",1</command>
- <response>OK</response>
- <set name="BARVAO" value="1"/>
- <set name="BARVOI" value="0"/>
- <set name="BARVOX" value="0"/>
-</chat>
-
-<chat>
- <!-- BAOC (Barr All Outgoing Calls) - Query -->
- <command>AT+CLCK="AO",2</command>
- <response>+CLCK: ${BARVAO},1\n\nOK</response>
-</chat>
-
-
-<chat>
- <!-- BOIC (Barr Outgoing International Calls) - Assign -->
- <command>AT+CLCK="OI",1,"${PIN2VALUE}",1</command>
- <response>OK</response>
- <set name="BARVAO" value="0"/>
- <set name="BARVOI" value="1"/>
- <set name="BARVOX" value="0"/>
-</chat>
-
-<chat>
- <!-- BOIC (Barr Outgoing International Calls) - Query -->
- <command>AT+CLCK="OI",2</command>
- <response>+CLCK: ${BARVOI},1\n\nOK</response>
-</chat>
-
-
-<chat>
- <!-- BOIC-exHC (Barr Outgoing International Calls except to Home Country) - Assign -->
- <command>AT+CLCK="OX",1,"${PIN2VALUE}",1</command>
- <response>OK</response>
- <set name="BARVAO" value="0"/>
- <set name="BARVOI" value="0"/>
- <set name="BARVOX" value="1"/>
-</chat>
-
-<chat>
- <!-- BOIC-exHC (Barr Outgoing International Calls except to Home Country) - Query -->
- <command>AT+CLCK="OX",2</command>
- <response>+CLCK: ${BARVOX},1\n\nOK</response>
-</chat>
-
-<chat>
- <!-- BAIC (Barr All Incoming Calls) - Assign -->
- <command>AT+CLCK="AI",1,"${PIN2VALUE}",1</command>
- <response>OK</response>
- <set name="BARVAI" value="1"/>
- <set name="BARVIR" value="0"/>
- <set name="BARVNT" value="0"/>
- <set name="BARVNM" value="0"/>
- <set name="BARVNS" value="0"/>
- <set name="BARVNA" value="0"/>
-</chat>
-
-<chat>
- <!-- BAIC (Barr All Incoming Calls) - Query -->
- <command>AT+CLCK="AI",2</command>
- <response>+CLCK: ${BARVAI},1\n\nOK</response>
-</chat>
-
-<chat>
- <!-- BIC-Roam (Barr Incoming Calls when Roaming outside the home country) - Assign -->
- <command>AT+CLCK="IR",1,"${PIN2VALUE}",1</command>
- <response>OK</response>
- <set name="BARVAI" value="0"/>
- <set name="BARVIR" value="1"/>
- <set name="BARVNT" value="0"/>
- <set name="BARVNM" value="0"/>
- <set name="BARVNS" value="0"/>
- <set name="BARVNA" value="0"/>
-</chat>
-
-<chat>
- <!-- BIC-Roam (Barr Incoming Calls when Roaming outside the home country) - Query -->
- <command>AT+CLCK="IR",2</command>
- <response>+CLCK: ${BARVIR},1\n\nOK</response>
-</chat>
-
-<chat>
- <!-- barr incoming calls from numbers Not stored to TA memory - Assign -->
- <command>AT+CLCK="NT",1,"${PIN2VALUE}",1</command>
- <response>OK</response>
- <set name="BARVAI" value="0"/>
- <set name="BARVIR" value="0"/>
- <set name="BARVNT" value="1"/>
- <set name="BARVNM" value="0"/>
- <set name="BARVNS" value="0"/>
- <set name="BARVNA" value="0"/>
-</chat>
-
-<chat>
- <!-- barr incoming calls from numbers Not stored to TA memory - Query -->
- <command>AT+CLCK="NT",2</command>
- <response>+CLCK: ${BARVNT},7\n\nOK</response>
-</chat>
-
-<chat>
- <!-- barr incoming calls from numbers Not stored to MT memory - Assign -->
- <command>AT+CLCK="NM",1,"${PIN2VALUE}",1</command>
- <response>OK</response>
- <set name="BARVAI" value="0"/>
- <set name="BARVIR" value="0"/>
- <set name="BARVNT" value="0"/>
- <set name="BARVNM" value="1"/>
- <set name="BARVNS" value="0"/>
- <set name="BARVNA" value="0"/>
-</chat>
-
-<chat>
- <!-- barr incoming calls from numbers Not stored to MT memory - Query -->
- <command>AT+CLCK="NM",2</command>
- <response>+CLCK: ${BARVNM},7\n\nOK</response>
-</chat>
-
-<chat>
- <!-- barr incoming calls from numbers Not stored to SIM/UICC memory - Assign -->
- <command>AT+CLCK="NS",1,"${PIN2VALUE}",1</command>
- <response>OK</response>
- <set name="BARVAI" value="0"/>
- <set name="BARVIR" value="0"/>
- <set name="BARVNT" value="0"/>
- <set name="BARVNM" value="0"/>
- <set name="BARVNS" value="1"/>
- <set name="BARVNA" value="0"/>
-</chat>
-
-<chat>
- <!-- barr incoming calls from numbers Not stored to SIM/UICC memory - Query -->
- <command>AT+CLCK="NS",2</command>
- <response>+CLCK: ${BARVNS},7\n\nOK</response>
-</chat>
-
-<chat>
- <!-- barr incoming calls from numbers Not stored to Any memory - Assign -->
- <command>AT+CLCK="NA",1,"${PIN2VALUE}",1</command>
- <response>OK</response>
- <set name="BARVAI" value="0"/>
- <set name="BARVIR" value="0"/>
- <set name="BARVNT" value="0"/>
- <set name="BARVNM" value="0"/>
- <set name="BARVNS" value="0"/>
- <set name="BARVNA" value="1"/>
-</chat>
-
-<chat>
- <!-- barr incoming calls from numbers Not stored to Any memory - Query -->
- <command>AT+CLCK="NA",2</command>
- <response>+CLCK: ${BARVNA},7\n\nOK</response>
-</chat>
-
-<chat>
- <!-- All Barring Services - UNLOCK ONLY -->
- <command>AT+CLCK="AB",0,"${PIN2VALUE}"</command>
- <response>OK</response>
- <set name="BARVAO" value="0"/>
- <set name="BARVOI" value="0"/>
- <set name="BARVOX" value="0"/>
- <set name="BARVAI" value="0"/>
- <set name="BARVIR" value="0"/>
- <set name="BARVNT" value="0"/>
- <set name="BARVNM" value="0"/>
- <set name="BARVNS" value="0"/>
- <set name="BARVNA" value="0"/>
-</chat>
-
-<chat>
- <!-- All outGoing barring services - UNLOCK ONLY -->
- <command>AT+CLCK="AG",0,"${PIN2VALUE}",1</command>
- <response>OK</response>
- <set name="BARVAO" value="0"/>
- <set name="BARVOI" value="0"/>
- <set name="BARVOX" value="0"/>
-</chat>
-
-<chat>
- <!-- All inComing barring services - UNLOCK ONLY -->
- <command>AT+CLCK="AC",0,"${PIN2VALUE}",1</command>
- <response>OK</response>
- <set name="BARVAI" value="0"/>
- <set name="BARVIR" value="0"/>
- <set name="BARVNT" value="0"/>
- <set name="BARVNM" value="0"/>
- <set name="BARVNS" value="0"/>
- <set name="BARVNA" value="0"/>
-</chat>
-
-<!-- ****************** Facility Locks ***************************** -->
-
-<chat>
- <!-- Query available facility locks -->
- <command>AT+CLCK=?</command>
- <response>+CLCK: PS(8),SC(8)\n\nOK</response>
-</chat>
-
-<!-- FIXED DIALLING LOCKS -->
-<chat>
- <!-- Query available facility lock -->
- <command>AT+CLCK="FD",2</command>
- <response>+CLCK: ${FD}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query available facility locks -->
- <command>AT+CLCK="FD",0,"${PIN2VALUE}"</command>
- <response>OK</response>
- <set name="FD" value="0"/>
-</chat>
-
-<chat>
- <!-- Query available facility locks -->
- <command>AT+CLCK="FD",1,"${PIN2VALUE}"</command>
- <response>OK</response>
- <set name="FD" value="1"/>
-</chat>
-
-<chat>
- <!-- Query available facility locks -->
- <command>AT+CLCK="FD",*</command>
- <response>ERROR</response>
-</chat>
-
-<!-- SIM CARD LOCKS -->
-<chat>
- <!-- Query available facility locks -->
- <command>AT+CLCK="SC",2</command>
- <response delay="1000">+CLCK: ${SC}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query available facility locks -->
- <command>AT+CLCK="SC",0,"${PINVALUE}"</command>
- <response>OK</response>
- <set name="SC" value="0"/>
-</chat>
-
-<chat>
- <!-- Query available facility locks -->
- <command>AT+CLCK="SC",1,"${PINVALUE}"</command>
- <response>OK</response>
- <set name="SC" value="1"/>
-</chat>
-
-<chat>
- <!-- Query available facility locks -->
- <command>AT+CLCK="SC",*</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- Query available facility locks -->
- <command>AT+CLCK="PS",2</command>
- <response delay="1000">+CLCK: ${PS}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query available facility locks -->
- <command>AT+CLCK="PS",0,"${PSPINVALUE}"</command>
- <response>OK</response>
- <set name="PS" value="0"/>
-</chat>
-
-<chat>
- <!-- Query available facility locks -->
- <command>AT+CLCK="PS",1,"${PSPINVALUE}"</command>
- <response>OK</response>
- <set name="PS" value="1"/>
-</chat>
-
-<chat>
- <!-- Query available facility locks -->
- <command>AT+CLCK="PS",*</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- Set facility lock (we just ignore this) -->
- <!-- AT+CLCK="SC",2,"${PINVALUE}"
- return status of require pin at power on -->
- <!-- AT+CLCK="SC",*,"${PINVALUE}"
- set require pin at startup to ${*}, (either 0, or 1,
- -->
-</chat>
-
-<chat>
- <!-- Change SIMCARD PIN (success) -->
- <command>AT+CPWD="PS","${PSPINVALUE}","*"</command>
- <response>OK</response>
- <set name="PSPINVALUE" value="${*}"/>
-</chat>
-
-<!-- ******************** Change Call Barring Passwords ********************** -->
-<chat>
- <!-- Change Barring PIN (success) -->
- <command>AT+CPWD="AB","${PIN2VALUE}","*"</command>
- <response>OK</response>
- <set name="PIN2VALUE" value="${*}"/>
-</chat>
-
-<chat>
- <!-- Change Barring PIN (success) -->
- <command>AT+CPWD="AO","${PIN2VALUE}","*"</command>
- <response>OK</response>
- <set name="PIN2VALUE" value="${*}"/>
-</chat>
-
-<chat>
- <!-- Change Barring PIN (success) -->
- <command>AT+CPWD="OI","${PIN2VALUE}","*"</command>
- <response>OK</response>
- <set name="PIN2VALUE" value="${*}"/>
-</chat>
-
-<chat>
- <!-- Change Barring PIN (success) -->
- <command>AT+CPWD="OX","${PIN2VALUE}","*"</command>
- <response>OK</response>
- <set name="PIN2VALUE" value="${*}"/>
-</chat>
-
-<chat>
- <!-- Change Barring PIN (success) -->
- <command>AT+CPWD="AI","${PIN2VALUE}","*"</command>
- <response>OK</response>
- <set name="PIN2VALUE" value="${*}"/>
-</chat>
-
-<chat>
- <!-- Change Barring PIN (success) -->
- <command>AT+CPWD="IR","${PIN2VALUE}","*"</command>
- <response>OK</response>
- <set name="PIN2VALUE" value="${*}"/>
-</chat>
-
-<chat>
- <!-- Change Barring PIN (success) -->
- <command>AT+CPWD="NT","${PIN2VALUE}","*"</command>
- <response>OK</response>
- <set name="PIN2VALUE" value="${*}"/>
-</chat>
-
-<chat>
- <!-- Change Barring PIN (success) -->
- <command>AT+CPWD="NM","${PIN2VALUE}","*"</command>
- <response>OK</response>
- <set name="PIN2VALUE" value="${*}"/>
-</chat>
-
-<chat>
- <!-- Change Barring PIN (success) -->
- <command>AT+CPWD="NS","${PIN2VALUE}","*"</command>
- <response>OK</response>
- <set name="PIN2VALUE" value="${*}"/>
-</chat>
-
-<chat>
- <!-- Change Barring PIN (success) -->
- <command>AT+CPWD="NA","${PIN2VALUE}","*"</command>
- <response>OK</response>
- <set name="PIN2VALUE" value="${*}"/>
-</chat>
-
-<chat>
- <!-- Query calling line identifier presentation mode -->
- <command>AT+CLIP?</command>
- <response>+CLIP: ${LIP},1\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported calling line identifier presentation modes -->
- <command>AT+CLIP=?</command>
- <response>+CLIP: (0,1)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set calling line identifier presentation mode -->
- <command>AT+CLIP=*</command>
- <response>OK</response>
- <set name="LIP" value="*"/>
-</chat>
-
-<chat>
- <!-- Query calling line identication restriction mode -->
- <command>AT+CLIR?</command>
- <response>+CLIR: ${LIR},${LIR_STATUS}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported calling line identication restriction modes -->
- <command>AT+CLIR=?</command>
- <response>+CLIR: (0,1,2)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set calling line identication restriction mode -->
- <command>AT+CLIR=*</command>
- <response>OK</response>
- <set name="LIR" value="*"/>
-</chat>
-
-<chat>
- <!-- Query originating line identifier presentation mode -->
- <command>AT+COLP?</command>
- <response>+COLP: ${OLP},1\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported originating line identifier presentation modes -->
- <command>AT+COLP=?</command>
- <response>+COLP: (0,1)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set originating line identifier presentation mode -->
- <command>AT+COLP=*</command>
- <response>OK</response>
- <set name="OLP" value="*"/>
-</chat>
-
-<chat>
- <!-- Query closed user group status (not supported yet) -->
- <command>AT+CCUG?</command>
- <response>+CCUG: 0,0,0\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Control closed user group status (not supported yet) -->
- <command>AT+CCUG*</command>
- <response>OK</response>
-</chat>
-
-
-<chat>
- <!-- Query supported call forwarding reasons -->
- <command>AT+CCFC=?</command>
- <response>+CCFC: (0,1,2,3,4,5)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set call forwarding number international (voice, no reply) -->
- <command>AT+CCFC=2,3,*,145,1,,,20</command>
- <response>OK</response>
- <set name="CF2C1" value="1"/>
- <set name="CF2C1N" value="${*}"/>
- <set name="CF2C1T" value="145"/>
- <set name="CF2C1O" value="20"/>
-</chat>
-
-<chat>
- <!-- Set call forwarding number (voice, no reply) -->
- <command>AT+CCFC=2,3,*,129,1,,,20</command>
- <response>OK</response>
- <set name="CF2C1" value="1"/>
- <set name="CF2C1N" value="${*}"/>
- <set name="CF2C1T" value="129"/>
- <set name="CF2C1O" value="20"/>
-</chat>
-
-<chat>
- <!-- Set call forwarding number international (voice, no reply) -->
- <command>AT+CCFC=2,3,*,145,1,,,30</command>
- <response>OK</response>
- <set name="CF2C1" value="1"/>
- <set name="CF2C1N" value="${*}"/>
- <set name="CF2C1T" value="145"/>
- <set name="CF2C1O" value="30"/>
-</chat>
-
-<chat>
- <!-- Set call forwarding number (voice, no reply) -->
- <command>AT+CCFC=2,3,*,129,1,,,30</command>
- <response>OK</response>
- <set name="CF2C1" value="1"/>
- <set name="CF2C1N" value="${*}"/>
- <set name="CF2C1T" value="129"/>
- <set name="CF2C1O" value="30"/>
-</chat>
-
-<chat>
- <!-- Set call forwarding number international (voice, not reachable) -->
- <command>AT+CCFC=3,3,*,145,1</command>
- <response>OK</response>
- <set name="CF3C1" value="1"/>
- <set name="CF3C1N" value="${*}"/>
- <set name="CF3C1T" value="145"/>
-</chat>
-
-<chat>
- <!-- Set call forwarding number (voice, not reachable) -->
- <command>AT+CCFC=3,3,*,129,1</command>
- <response>OK</response>
- <set name="CF3C1" value="1"/>
- <set name="CF3C1N" value="${*}"/>
- <set name="CF3C1T" value="129"/>
-</chat>
-
-<chat>
- <!-- Set call forwarding number international (voice, unconditional) -->
- <command>AT+CCFC=0,3,*,145,1</command>
- <response>OK</response>
- <set name="CF0C1" value="1"/>
- <set name="CF0C1N" value="${*}"/>
- <set name="CF0C1T" value="145"/>
-</chat>
-
-<chat>
- <!-- Set call forwarding number (voice, unconditional) -->
- <command>AT+CCFC=0,3,*,129,1</command>
- <response>OK</response>
- <set name="CF0C1" value="1"/>
- <set name="CF0C1N" value="${*}"/>
- <set name="CF0C1T" value="129"/>
-</chat>
-
-<chat>
- <!-- Set call forwarding number international (voice, when busy) -->
- <command>AT+CCFC=1,3,*,145,1</command>
- <response>OK</response>
- <set name="CF1C1" value="1"/>
- <set name="CF1C1N" value="${*}"/>
- <set name="CF1C1T" value="145"/>
-</chat>
-
-<chat>
- <!-- Set call forwarding number (voice, when busy) -->
- <command>AT+CCFC=1,3,*,129,1</command>
- <response>OK</response>
- <set name="CF1C1" value="1"/>
- <set name="CF1C1N" value="${*}"/>
- <set name="CF1C1T" value="129"/>
-</chat>
-
-<chat>
- <!-- Disable all call forwarding -->
- <command>AT+CCFC=4,4</command>
- <response>OK</response>
- <set name="CF0C1" value="0"/>
- <set name="CF0C2" value="0"/>
- <set name="CF0C4" value="0"/>
- <set name="CF0C8" value="0"/>
- <set name="CF1C1" value="0"/>
- <set name="CF1C2" value="0"/>
- <set name="CF1C4" value="0"/>
- <set name="CF1C8" value="0"/>
- <set name="CF2C1" value="0"/>
- <set name="CF2C2" value="0"/>
- <set name="CF2C4" value="0"/>
- <set name="CF2C8" value="0"/>
- <set name="CF3C1" value="0"/>
- <set name="CF3C2" value="0"/>
- <set name="CF3C4" value="0"/>
- <set name="CF3C8" value="0"/>
- <set name="CF0C1N" value=""/>
- <set name="CF0C2N" value=""/>
- <set name="CF0C4N" value=""/>
- <set name="CF0C8N" value=""/>
- <set name="CF1C1N" value=""/>
- <set name="CF1C2N" value=""/>
- <set name="CF1C4N" value=""/>
- <set name="CF1C8N" value=""/>
- <set name="CF2C1N" value=""/>
- <set name="CF2C2N" value=""/>
- <set name="CF2C4N" value=""/>
- <set name="CF2C8N" value=""/>
- <set name="CF3C1N" value=""/>
- <set name="CF3C2N" value=""/>
- <set name="CF3C4N" value=""/>
- <set name="CF3C8N" value=""/>
- <set name="CF0C1T" value="129"/>
- <set name="CF1C1T" value="129"/>
- <set name="CF2C1T" value="129"/>
- <set name="CF2C1O" value="20"/>
- <set name="CF3C1T" value="129"/>
-</chat>
-
-<chat>
- <!-- Disable all call forwarding (conditional) -->
- <command>AT+CCFC=5,4</command>
- <response>OK</response>
- <set name="CF1C1" value="0"/>
- <set name="CF1C2" value="0"/>
- <set name="CF1C4" value="0"/>
- <set name="CF1C8" value="0"/>
- <set name="CF2C1" value="0"/>
- <set name="CF2C2" value="0"/>
- <set name="CF2C4" value="0"/>
- <set name="CF2C8" value="0"/>
- <set name="CF3C1" value="0"/>
- <set name="CF3C2" value="0"/>
- <set name="CF3C4" value="0"/>
- <set name="CF3C8" value="0"/>
- <set name="CF1C1N" value=""/>
- <set name="CF1C2N" value=""/>
- <set name="CF1C4N" value=""/>
- <set name="CF1C8N" value=""/>
- <set name="CF2C1N" value=""/>
- <set name="CF2C2N" value=""/>
- <set name="CF2C4N" value=""/>
- <set name="CF2C8N" value=""/>
- <set name="CF3C1N" value=""/>
- <set name="CF3C2N" value=""/>
- <set name="CF3C4N" value=""/>
- <set name="CF3C8N" value=""/>
- <set name="CF1C1T" value="129"/>
- <set name="CF2C1T" value="129"/>
- <set name="CF2C1O" value="20"/>
- <set name="CF3C1T" value="129"/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, unconditional -->
- <command>AT+CCFC=0,4</command>
- <response>OK</response>
- <set name="CF0C1" value="0"/>
- <set name="CF0C2" value="0"/>
- <set name="CF0C4" value="0"/>
- <set name="CF0C8" value="0"/>
- <set name="CF0C1N" value=""/>
- <set name="CF0C2N" value=""/>
- <set name="CF0C4N" value=""/>
- <set name="CF0C8N" value=""/>
- <set name="CF0C1T" value="129"/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, unconditional voice -->
- <command>AT+CCFC=0,4,,,1</command>
- <response>OK</response>
- <set name="CF0C1" value="0"/>
- <set name="CF0C1N" value=""/>
- <set name="CF0C1T" value="129"/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, unconditional data -->
- <command>AT+CCFC=0,4,,,2</command>
- <response>OK</response>
- <set name="CF0C2" value="0"/>
- <set name="CF0C2N" value=""/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, unconditional fax -->
- <command>AT+CCFC=0,4,,,4</command>
- <response>OK</response>
- <set name="CF0C4" value="0"/>
- <set name="CF0C4N" value=""/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, unconditional sms -->
- <command>AT+CCFC=0,4,,,8</command>
- <response>OK</response>
- <set name="CF0C8" value="0"/>
- <set name="CF0C8N" value=""/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, when busy -->
- <command>AT+CCFC=1,4</command>
- <response>OK</response>
- <set name="CF1C1" value="0"/>
- <set name="CF1C2" value="0"/>
- <set name="CF1C4" value="0"/>
- <set name="CF1C8" value="0"/>
- <set name="CF1C1N" value=""/>
- <set name="CF1C2N" value=""/>
- <set name="CF1C4N" value=""/>
- <set name="CF1C8N" value=""/>
- <set name="CF1C1T" value="129"/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, when busy voice -->
- <command>AT+CCFC=1,4,,,1</command>
- <response>OK</response>
- <set name="CF1C1" value="0"/>
- <set name="CF1C1N" value=""/>
- <set name="CF1C1T" value="129"/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, when busy data -->
- <command>AT+CCFC=1,4,,,2</command>
- <response>OK</response>
- <set name="CF1C2" value="0"/>
- <set name="CF1C2N" value=""/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, when busy fax -->
- <command>AT+CCFC=1,4,,,4</command>
- <response>OK</response>
- <set name="CF1C4" value="0"/>
- <set name="CF1C4N" value=""/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, when busy sms -->
- <command>AT+CCFC=1,4,,,8</command>
- <response>OK</response>
- <set name="CF1C8" value="0"/>
- <set name="CF1C8N" value=""/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, no reply -->
- <command>AT+CCFC=2,4</command>
- <response>OK</response>
- <set name="CF2C1" value="0"/>
- <set name="CF2C2" value="0"/>
- <set name="CF2C4" value="0"/>
- <set name="CF2C8" value="0"/>
- <set name="CF2C1N" value=""/>
- <set name="CF2C2N" value=""/>
- <set name="CF2C4N" value=""/>
- <set name="CF2C8N" value=""/>
- <set name="CF2C1T" value="129"/>
- <set name="CF2C1O" value="20"/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, no reply voice -->
- <command>AT+CCFC=2,4,,,1</command>
- <response>OK</response>
- <set name="CF2C1" value="0"/>
- <set name="CF2C1N" value=""/>
- <set name="CF2C1T" value="129"/>
- <set name="CF2C1O" value="20"/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, no reply data -->
- <command>AT+CCFC=2,4,,,2</command>
- <response>OK</response>
- <set name="CF2C2" value="0"/>
- <set name="CF2C2N" value=""/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, no reply fax -->
- <command>AT+CCFC=2,4,,,4</command>
- <response>OK</response>
- <set name="CF2C4" value="0"/>
- <set name="CF2C4N" value="*"/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, no reply sms -->
- <command>AT+CCFC=2,4,,,8</command>
- <response>OK</response>
- <set name="CF2C8" value="0"/>
- <set name="CF2C8N" value=""/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, not reachable -->
- <command>AT+CCFC=3,4</command>
- <response>OK</response>
- <set name="CF3C1" value="0"/>
- <set name="CF3C2" value="0"/>
- <set name="CF3C4" value="0"/>
- <set name="CF3C8" value="0"/>
- <set name="CF3C1N" value=""/>
- <set name="CF3C2N" value=""/>
- <set name="CF3C4N" value=""/>
- <set name="CF3C8N" value=""/>
- <set name="CF3C1T" value="129"/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, not reachable voice -->
- <command>AT+CCFC=3,4,,,1</command>
- <response>OK</response>
- <set name="CF3C1" value="0"/>
- <set name="CF3C1N" value=""/>
- <set name="CF3C1T" value="129"/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, not reachable data -->
- <command>AT+CCFC=3,4,,,2</command>
- <response>OK</response>
- <set name="CF3C2" value="0"/>
- <set name="CF3C2N" value=""/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, not reachable fax -->
- <command>AT+CCFC=3,4,,,4</command>
- <response>OK</response>
- <set name="CF3C4" value="0"/>
- <set name="CF3C4N" value=""/>
-</chat>
-
-<chat>
- <!-- Erase forwarding, not reachable sms -->
- <command>AT+CCFC=3,4,,,8</command>
- <response>OK</response>
- <set name="CF3C8" value="0"/>
- <set name="CF3C8N" value=""/>
-</chat>
-<chat>
- <!-- Query call forwarding number (unconditional) -->
- <command>AT+CCFC=0,2</command>
- <response>+CCFC: ${CF0C1},1,${CF0C1N},${CF0C1T}\n+CCFC: ${CF0C2},2,${CF0C2N}\n+CCFC: ${CF0C4},4,${CF0C4N}\n+CCFC: ${CF0C8},8,${CF0C8N}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query call forwarding number (when busy) -->
- <command>AT+CCFC=1,2</command>
- <response>+CCFC: ${CF1C1},1,${CF1C1N},${CF1C1T}\n+CCFC: ${CF1C2},2,${CF1C2N}\n+CCFC: ${CF1C4},4,${CF1C4N}\n+CCFC: ${CF1C8},8,${CF1C8N}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query call forwarding number (no reply) -->
- <command>AT+CCFC=2,2</command>
- <response>+CCFC: ${CF2C1},1,${CF2C1N},${CF2C1T},,,${CF2C1O}\n+CCFC: ${CF2C2},2,${CF2C2N}\n+CCFC: ${CF2C4},4,${CF2C4N}\n+CCFC: ${CF2C8},8,${CF2C8N}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query call forwarding number (not reachable) -->
- <command>AT+CCFC=3,2</command>
- <response>+CCFC: ${CF3C1},1,${CF3C1N},${CF3C1T}\n+CCFC: ${CF3C2},2,${CF3C2N}\n+CCFC: ${CF3C4},4,${CF3C4N}\n+CCFC: ${CF3C8},8,${CF3C8N}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query call waiting presentation mode -->
- <command>AT+CCWA?</command>
- <response>+CCWA: 1\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query call waiting -->
- <command>AT+CCWA=1,2</command>
- <response delay="2000">+CCWA: ${CWA_V},1\n+CCWA: ${CWA_D},2\n+CCWA: ${CWA_F},4\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query call waiting -->
- <command>AT+CCWA=1,2,7</command>
- <response delay="2000">+CCWA: ${CWA_V},1\n+CCWA: ${CWA_D},2\n+CCWA: ${CWA_F},4\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query call waiting -->
- <command>AT+CCWA=1,2,1</command>
- <response delay="2000">+CCWA: ${CWA_V},1\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query call waiting -->
- <command>AT+CCWA=1,2,2</command>
- <response delay="2000">+CCWA: ${CWA_D},2\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query call waiting -->
- <command>AT+CCWA=1,2,4</command>
- <response delay="2000">+CCWA: ${CWA_F},4\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query call waiting -->
- <command>AT+CCWA=1,2,3</command>
- <response delay="2000">+CCWA: ${CWA_V},1\n+CCWA: ${CWA_D},2\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query call waiting -->
- <command>AT+CCWA=1,2,5</command>
- <response delay="2000">+CCWA: ${CWA_V},1\n+CCWA: ${CWA_F},4\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query call waiting -->
- <command>AT+CCWA=1,2,6</command>
- <response delay="2000">+CCWA: ${CWA_D},2\n+CCWA: ${CWA_F},4\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported call waiting presentation modes -->
- <command>AT+CCWA=?</command>
- <response>+CCWA: (0,1)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Enable call waiting presentation mode -->
- <command>AT+CCWA=1</command>
- <response>OK</response>
-</chat>
-
-<!-- Disable call waiting -->
-<chat><command>AT+CCWA=1,0,1</command><response delay="1000">OK</response>
- <set name="CWA_V" value="0"/>
-</chat>
-<chat><command>AT+CCWA=1,0,2</command><response delay="1000">OK</response>
- <set name="CWA_D" value="0"/>
-</chat>
-<chat><command>AT+CCWA=1,0,3</command><response delay="1000">OK</response>
- <set name="CWA_V" value="0"/>
- <set name="CWA_D" value="0"/>
-</chat>
-<chat><command>AT+CCWA=1,0,4</command><response delay="1000">OK</response>
- <set name="CWA_F" value="0"/>
-</chat>
-<chat><command>AT+CCWA=1,0,5</command><response delay="1000">OK</response>
- <set name="CWA_V" value="0"/>
- <set name="CWA_F" value="0"/>
-</chat>
-<chat><command>AT+CCWA=1,0,6</command><response delay="1000">OK</response>
- <set name="CWA_D" value="0"/>
- <set name="CWA_F" value="0"/>
-</chat>
-<chat><command>AT+CCWA=1,0,7</command><response delay="1000">OK</response>
- <set name="CWA_V" value="0"/>
- <set name="CWA_D" value="0"/>
- <set name="CWA_F" value="0"/>
-</chat>
-<!-- Enable call waiting -->
-<chat><command>AT+CCWA=1,1,1</command><response delay="1000">OK</response>
- <set name="CWA_V" value="1"/>
-</chat>
-<chat><command>AT+CCWA=1,1,2</command><response delay="1000">OK</response>
- <set name="CWA_D" value="1"/>
-</chat>
-<chat><command>AT+CCWA=1,1,3</command><response delay="1000">OK</response>
- <set name="CWA_V" value="1"/>
- <set name="CWA_D" value="1"/>
-</chat>
-<chat><command>AT+CCWA=1,1,4</command><response delay="1000">OK</response>
- <set name="CWA_F" value="1"/>
-</chat>
-<chat><command>AT+CCWA=1,1,5</command><response delay="1000">OK</response>
- <set name="CWA_V" value="1"/>
- <set name="CWA_F" value="1"/>
-</chat>
-<chat><command>AT+CCWA=1,1,6</command><response delay="1000">OK</response>
- <set name="CWA_D" value="1"/>
- <set name="CWA_F" value="1"/>
-</chat>
-<chat><command>AT+CCWA=1,1,7</command><response delay="1000">OK</response>
- <set name="CWA_V" value="1"/>
- <set name="CWA_D" value="1"/>
- <set name="CWA_F" value="1"/>
-</chat>
-
-<chat>
- <!-- Query unstructured supplementary service presentation mode -->
- <command>AT+CUSD?</command>
- <response>+CUSD: ${USD}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported unstructured supplementary presentation modes -->
- <command>AT+CUSD=?</command>
- <response>+CUSD: (0,1)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Initiate USSD query that is supported by the network -->
- <command>AT+CUSD=1,"*225#",15</command>
- <response>+CUSD: 0,"Thank you, your request is being processed. A message will be sent to your phone.",15\n\nOK</response>
- <set name="USD" value="1"/>
-</chat>
-
-<chat>
- <!-- Initiate USSD query that is not supported b the network -->
- <command>AT+CUSD=1,*</command>
- <response>+CUSD: 4\n\nOK</response>
- <set name="USD" value="1"/>
-</chat>
-
-<chat>
- <!-- Enable unstructured supplementary service presentation mode -->
- <command>AT+CUSD=1</command>
- <response>OK</response>
- <set name="USD" value="1"/>
-</chat>
-
-<chat>
- <!-- Disable unstructured supplementary service presentation mode -->
- <command>AT+CUSD=0</command>
- <response>OK</response>
- <set name="USD" value="0"/>
-</chat>
-
-<chat>
- <!-- Query Advice of charge value from the ME -->
- <command>AT+CAOC=0</command>
- <response>+CAOC: "${AOC}"\n\nOK</response>
-</chat>
-
-<chat>
- <!-- (De)activate the unsolicited reporting of CCM value -->
- <command>AT+CAOC=*</command>
- <response>OK</response>
- <set name="AOCMODE" value="*"/>
-</chat>
-
-<chat>
- <!-- Query CCM reporting mode command -->
- <command>AT+CAOC?</command>
- <response>+CAOC: ${AOCMODE}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query support for advice of charge command -->
- <command>AT+CAOC=?</command>
- <response>+CAOC: (0-2)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Reset Accumulated Call Meter command -->
- <command>AT+CACM="${SIMPIN2VALUE}"</command>
- <response>OK</response>
- <set name="ACM" value="000000"/>
-</chat>
-
-<chat>
- <!-- Query Accumulated Call Meter value -->
- <command>AT+CACM?</command>
- <response>+CACM: "${ACM}"\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query Accumulated Call Meter support command -->
- <command>AT+CACM=?</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Set Accumulated Call Meter Maximum command -->
- <command>AT+CAMM="*","${SIMPIN2VALUE}"</command>
- <response>OK</response>
- <set name="ACMMAX" value="*"/>
-</chat>
-
-<chat>
- <!-- Query Accumulated Call Meter Maximum value -->
- <command>AT+CAMM?</command>
- <response>+CAMM: "${ACMMAX}"\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query Accumulated Call Meter Maximum support command -->
- <command>AT+CAMM=?</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Set Price per Unit and Currency command -->
- <command>AT+CPUC="*","${SIMPIN2VALUE}"</command>
- <response>OK</response>
- <set name="PPU" value="${*}"/>
-</chat>
-
-<chat>
- <!-- Query Price per Unit and Currency command -->
- <command>AT+CPUC?</command>
- <response>+CPUC: "${PPU}"\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query Price per Unit and Currency support command -->
- <command>AT+CPUC=?</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Set Call Meter maximum event mode command -->
- <command>AT+CCWE=*</command>
- <response>OK</response>
- <set name="CWEMODE" value="*"/>
-</chat>
-
-<chat>
- <!-- Query Call Meter maximum event mode command -->
- <command>AT+CCWE?</command>
- <response>+CCWE: ${CWEMODE}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query Call Meter maximum event support command -->
- <command>AT+CCWE=?</command>
- <response>+CCWE: (0,1)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supplementary service notifications -->
- <command>AT+CSSN?</command>
- <response>+CSSN: ${SSN}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query support for supplementary service notifications -->
- <command>AT+CSSN=?</command>
- <response>+CSSN: (0,1),(0,1)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set supplementary service notification flags -->
- <command>AT+CSSN=*</command>
- <response>OK</response>
- <set name="SSN" value="*"/>
-</chat>
-
-<chat>
- <!-- Query phone activity status -->
- <command>AT+CPAS</command>
- <response>+CPAS: ${PAS}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported phone activity status values -->
- <command>AT+CPAS=?</command>
- <response>+CPAS: (0-5)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query phone functionality setting -->
- <command>AT+CFUN?</command>
- <response>+CFUN: ${FUN}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported phone functionality settings -->
- <command>AT+CFUN=?</command>
- <response>+CFUN: (0-4)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set phone functionality -->
- <command>AT+CFUN=*</command>
- <response>OK</response>
- <set name="FUN" value="*"/>
-</chat>
-
-<chat>
- <!-- Query CSMS Support -->
- <command>AT+CSMS=?</command>
- <response>+CSMS=(0)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query CSMS Setting -->
- <command>AT+CSMS?</command>
- <response>+CSMS: 0,1,1,1\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set CSMS -->
- <command>AT+CSMS=0</command>
- <response>+CSMS: 1,1,1\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Supports? SMS Service Center Address -->
- <command>AT+CSCA=?</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Query SMS Service Center Address -->
- <command>AT+CSCA?</command>
- <response>+CSCA: "${SCA}",${SCAT}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set SMS Service Center Address -->
- <command>AT+CSCA="*",145</command>
- <response>OK</response>
- <set name="SCA" value="*"/>
- <set name="SCAT" value="145"/>
-</chat>
-
-<chat>
- <!-- Set SMS Service Center Address, unknwon -->
- <command>AT+CSCA="*",129</command>
- <response>OK</response>
- <set name="SCA" value="*"/>
- <set name="SCAT" value="129"/>
-</chat>
-
-<chat>
- <!-- Check for which PIN is required -->
- <command>AT+CPIN?</command>
- <response delay="2000">+CPIN: ${PINNAME}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Enter PIN (success) -->
- <command>AT+CPIN="${PINVALUE}"</command>
- <response>+CPIN: READY\n\nOK</response>
- <set name="PINNAME" value="READY"/>
-</chat>
-
-<chat>
- <!-- Change PIN2 (success) -->
- <command>AT+CPWD="P2","${PIN2VALUE}","*"</command>
- <response>OK</response>
- <set name="PIN2VALUE" value="${*}"/>
-</chat>
-
-<chat>
- <!-- Change PIN using PUK (success) -->
- <command>AT+CPIN="${PUKVALUE}","*"</command>
- <response>+CPIN: READY\n\nOK</response>
- <set name="PINVALUE" value="${*}"/>
- <set name="PINNAME" value="READY"/>
-</chat>
-
-<chat>
- <!-- Change PIN2 using PUK2 (success) -->
- <command>AT+CPIN="${PUK2VALUE}","*"</command>
- <response>+CPIN: READY\n\nOK</response>
- <set name="PIN2VALUE" value="${*}"/>
- <set name="PINNAME" value="READY"/>
-</chat>
-
-<chat>
- <!-- Enter PIN (PUK failure when PINNAME was "SIM PUK" from start) -->
- <command>AT+CPIN="*","*"</command>
- <response>+CPIN: SIM PUK\nERROR</response>
- <set name="PINNAME" value="SIM PUK"/>
-</chat>
-
-<chat>
- <!-- Enter PIN (failure) -->
- <command>AT+CPIN=*</command>
- <response>+CPIN: SIM PIN\nERROR</response>
- <set name="PINNAME" value="SIM PIN"/>
- <switch name="pinretry1"/>
-</chat>
-
-<state name="pinretry1">
-
- <chat>
- <!-- Enter PIN (success) -->
- <command>AT+CPIN="${PINVALUE}"</command>
- <response>+CPIN: READY\n\nOK</response>
- <set name="PINNAME" value="READY"/>
- <switch name="default"/>
- </chat>
-
- <chat>
- <!-- Change PIN using PUK (success) -->
- <command>AT+CPIN="${PUKVALUE}","*"</command>
- <response>+CPIN: READY\n\nOK</response>
- <set name="PINVALUE" value="${*}"/>
- <set name="PINNAME" value="READY"/>
- <switch name="default"/>
- </chat>
-
- <chat>
- <!-- Enter PIN (failure) -->
- <command>AT+CPIN=*</command>
- <response>+CPIN: SIM PIN\nERROR</response>
- <set name="PINNAME" value="SIM PIN"/>
- <switch name="pinretry2"/>
- </chat>
-
-</state>
-
-<state name="pinretry2">
-
- <chat>
- <!-- Enter PIN (success) -->
- <command>AT+CPIN="${PINVALUE}"</command>
- <response>+CPIN: READY\n\nOK</response>
- <set name="PINNAME" value="READY"/>
- <switch name="default"/>
- </chat>
-
- <chat>
- <!-- Change PIN using PUK (success) -->
- <command>AT+CPIN="${PUKVALUE}","*"</command>
- <response>+CPIN: READY\n\nOK</response>
- <set name="PINVALUE" value="${*}"/>
- <set name="PINNAME" value="READY"/>
- <switch name="default"/>
- </chat>
-
- <chat>
- <!-- Enter PIN (failure) -->
- <command>AT+CPIN=*</command>
- <response>+CPIN: SIM PUK\nERROR</response>
- <set name="PINNAME" value="SIM PUK"/>
- </chat>
-
-</state>
-
-<chat>
- <!-- Query battery charge -->
- <command>AT+CBC</command>
- <response>+CBC: ${BC}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported battery charge values -->
- <command>AT+CBC=?</command>
- <response>+CBC: (0,1,2,3),(1-100)\n\nOK</response>
-</chat>
-
-<chat>
- <command>AT+CCED=1,8</command>
- <response>OK\n+CSQ: ${SQ}</response>
-</chat>
-
-<chat>
- <!-- Query signal quality (default reported as "not detectable") -->
- <command>AT+CSQ</command>
- <response>+CSQ: ${SQ}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported signal quality values -->
- <command>AT+CSQ=?</command>
- <response>+CSQ: (0-31,99),(0-7,99)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query mobile equipment control mode -->
- <command>AT+CMEC?</command>
- <response>+CMEC: ${MEC}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported mobile equipment control modes -->
- <command>AT+CMEC=?</command>
- <response>+CMEC: (0-2),(0-2),(0-2)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set mobile equipment control mode -->
- <command>AT+CMEC=*</command>
- <response>OK</response>
- <set name="MEC" value="*"/>
-</chat>
-
-<chat>
- <!-- Keypad control (ignored in this version) -->
- <command>AT+CKPD=*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Display control (ignored in this version) -->
- <command>AT+CDIS*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Indicator control (ignored in this version) -->
- <command>AT+CIND*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Query mobile equipment event reporting mode -->
- <command>AT+CMER?</command>
- <response>+CMER: ${MER}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported mobile equipment event reporting modes -->
- <command>AT+CMER=?</command>
- <response>+CMER: (0-3),(0-2),(0-2),(0-2),(0-1)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set mobile equipment event reporting mode -->
- <command>AT+CMER=*</command>
- <response>OK</response>
- <set name="MER" value="*"/>
-</chat>
-
-<chat>
- <!-- Clock (always ignored) -->
- <command>AT+CCLK*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Alarm (always ignored) -->
- <command>AT+CALA*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Generic SIM access (not supported yet) -->
- <command>AT+CSIM*</command>
- <response>ERROR</response>
-</chat>
-
-<!-- Band Selection -->
-
-<chat>
- <!-- Query the current band -->
- <command>AT*TBAND?</command>
- <response>*TBAND: ${BAND}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query the list of available bands -->
- <command>AT*TBAND=?</command>
- <response>*TBAND: "${BAND0}"\n*TBAND: "${BAND1}"\n*TBAND: "${BAND2}"\n*TBAND: "${BAND3}"\n*TBAND: "${BAND4}"\n*TBAND: "${BAND5}"\n*TBAND: "${BAND6}"\n*TBAND: "${BAND7}"\n*TBAND: "${BAND8}"\n*TBAND: "${BAND9}"\n*TBAND: "${BANDA}"\n*TBAND: "${BANDB}"\n*TBAND: "${BANDC}"\n*TBAND: "${BANDD}"\n*TBAND: "${BANDE}"\n*TBAND: "${BANDF}"\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set the current band to automatic -->
- <command>AT*TBAND=0</command>
- <response>OK</response>
- <set name="BAND" value="0"/>
-</chat>
-
-<chat>
- <!-- Set the current band (bad band name) -->
- <command>AT*TBAND=1,""</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- Set the current band to BAND0 -->
- <command>AT*TBAND=1,"${BAND0}"</command>
- <response>OK</response>
- <set name="BAND" value="1,"${BAND0}""/>
-</chat>
-
-<chat>
- <!-- Set the current band to BAND1 -->
- <command>AT*TBAND=1,"${BAND1}"</command>
- <response>OK</response>
- <set name="BAND" value="1,"${BAND1}""/>
-</chat>
-
-<chat>
- <!-- Set the current band to BAND2 -->
- <command>AT*TBAND=1,"${BAND2}"</command>
- <response>OK</response>
- <set name="BAND" value="1,"${BAND2}""/>
-</chat>
-
-<chat>
- <!-- Set the current band to BAND3 -->
- <command>AT*TBAND=1,"${BAND3}"</command>
- <response>OK</response>
- <set name="BAND" value="1,"${BAND3}""/>
-</chat>
-
-<chat>
- <!-- Set the current band to BAND4 -->
- <command>AT*TBAND=1,"${BAND4}"</command>
- <response>OK</response>
- <set name="BAND" value="1,"${BAND4}""/>
-</chat>
-
-<chat>
- <!-- Set the current band to BAND5 -->
- <command>AT*TBAND=1,"${BAND5}"</command>
- <response>OK</response>
- <set name="BAND" value="1,"${BAND5}""/>
-</chat>
-
-<chat>
- <!-- Set the current band to BAND6 -->
- <command>AT*TBAND=1,"${BAND6}"</command>
- <response>OK</response>
- <set name="BAND" value="1,"${BAND6}""/>
-</chat>
-
-<chat>
- <!-- Set the current band to BAND7 -->
- <command>AT*TBAND=1,"${BAND7}"</command>
- <response>OK</response>
- <set name="BAND" value="1,"${BAND7}""/>
-</chat>
-
-<chat>
- <!-- Set the current band to BAND8 -->
- <command>AT*TBAND=1,"${BAND8}"</command>
- <response>OK</response>
- <set name="BAND" value="1,"${BAND8}""/>
-</chat>
-
-<chat>
- <!-- Set the current band to BAND9 -->
- <command>AT*TBAND=1,"${BAND9}"</command>
- <response>OK</response>
- <set name="BAND" value="1,"${BAND9}""/>
-</chat>
-
-<chat>
- <!-- Set the current band to BANDA -->
- <command>AT*TBAND=1,"${BANDA}"</command>
- <response>OK</response>
- <set name="BAND" value="1,"${BANDA}""/>
-</chat>
-
-<chat>
- <!-- Set the current band to BANDB -->
- <command>AT*TBAND=1,"${BANDB}"</command>
- <response>OK</response>
- <set name="BAND" value="1,"${BANDB}""/>
-</chat>
-
-<chat>
- <!-- Set the current band to BANDC -->
- <command>AT*TBAND=1,"${BANDC}"</command>
- <response>OK</response>
- <set name="BAND" value="1,"${BANDC}""/>
-</chat>
-
-<chat>
- <!-- Set the current band to BANDD -->
- <command>AT*TBAND=1,"${BANDD}"</command>
- <response>OK</response>
- <set name="BAND" value="1,"${BANDD}""/>
-</chat>
-
-<chat>
- <!-- Set the current band to BANDE -->
- <command>AT*TBAND=1,"${BANDE}"</command>
- <response>OK</response>
- <set name="BAND" value="1,"${BANDE}""/>
-</chat>
-
-<chat>
- <!-- Set the current band to BANDF -->
- <command>AT*TBAND=1,"${BANDF}"</command>
- <response>OK</response>
- <set name="BAND" value="1,"${BANDF}""/>
-</chat>
-
-<chat>
- <!-- Set the current band (unknown band name) -->
- <command>AT*TBAND=1,*</command>
- <response>ERROR</response>
-</chat>
-
-<!-- GSM 07.07: Phone book storage -->
-
-<!-- Phonebook commands are implemented in the phone simulator source code -->
-
-<phonebook name="SM" size="150">
- <entry index="1" number="123" name="ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEF"/>
- <entry index="2" number="24685" name="Adam Zucker/m"/>
- <entry index="3" number="48759" name="Bradley Young"/>
- <entry index="4" number="45575" name="Chuck Woodbury/w"/>
- <entry index="5" number="57968" name="Chuck Woodbury/h"/>
- <entry index="6" number="48959" name="Darren Umber"/>
- <entry index="7" number="48759" name="Courtney Umber/h"/>
- <entry index="8" number="42887" name="Courtney Umber/m"/>
- <entry index="9" number="87683" name="Evan Ungar"/>
- <entry index="10" number="15798" name="Frank Twedell"/>
- <entry index="11" number="12497" name="Greg Smith/w"/>
- <entry index="12" number="89765" name="Greg Smith/m"/>
- <entry index="13" number="12498" name="Greg Smith/o"/>
- <entry index="14" number="34967" name="Greg Smith/h"/>
- <entry index="15" number="57682" name="Henry Ross/m"/>
- <entry index="16" number="78952" name="Henry Ross/h"/>
- <entry index="17" number="44585" name="Ivan Prischmann"/>
- <entry index="19" number="13553" name="Jack Odegard/h"/>
- <entry index="20" number="49755" name="Jack Odegard/m"/>
- <entry index="21" number="57683" name="Rachel Odegard"/>
- <entry index="22" number="14573" name="Kevin Norris"/>
- <entry index="23" number="48468" name="Logan Minkoff"/>
- <entry index="24" number="48468" name="Tracy Minkoff"/>
- <entry index="25" number="89624" name="Matthew LeBlanc"/>
- <entry index="26" number="57439" name="Nathan Kelly/m"/>
- <entry index="27" number="13596" name="Nathan Kelly/w"/>
- <entry index="28" number="18279" name="Paul Jacobs"/>
- <entry index="29" number="62755" name="Robert Irving"/>
- <entry index="30" number="13466" name="Sean Hunt/h"/>
- <entry index="31" number="59786" name="Sean Hunt/m"/>
- <entry index="32" number="13664" name="Thomas Grayson"/>
- <entry index="33" number="77957" name="Victor Frey"/>
- <entry index="34" number="14535" name="Wade Emerson"/>
- <entry index="35" number="98735" name="Monica Emerson"/>
- <entry index="36" number="65865" name="Dorathy Foster"/>
- <entry index="37" number="66573" name="Gina Haylock/m"/>
- <entry index="38" number="33846" name="Gina Haylock/w"/>
- <entry index="39" number="35933" name="BuyIt"/>
- <entry index="40" number="2468DD" name="Wildcard"/>
- <entry index="101" number="10101" name="GSM Test"/>
- <entry index="121" number="10101" name="Test for 75 characters a line: ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
- <entry index="122" number="+12345" name="Test for International number"/>
- <entry index="123" number="12345" name="Test for slash: AB;CD,EFG"/>
- <entry index="124" number="800820" name="abc/h" hidden="1" group="FSF" adnumber="+800821"/>
- <entry index="125" number="800820" name="def/m" hidden="1" group="FSF" adnumber="+800821" secondtext="abd" email="ofono@ofono.org" sip_uri="ofono_sip@ofono.org" tel_uri="ofono_tel@ofono.org"/>
- <entry index="126" number="800820" name="上海/m" hidden="1" group="英特尔" adnumber="+800821"/>
-</phonebook>
-
-<phonebook name="FD" size="20">
- <entry index="1" number="+1357924680" name="FDN111"/>
- <entry index="2" number="24680" name="FDN222"/>
- <entry index="3" number="+123465678901234567890" name="FDN333"/>
- <entry index="4" number="112" name="Emergency"/>
-</phonebook>
-
-<phonebook name="SN" size="50">
- <entry index="1" number="013" name="Directory Assistance"/>
- <entry index="2" number="121" name="Call Minding"/>
-</phonebook>
-
-<!-- GSM 07.05: SMS related commands -->
-
-<chat>
- <!-- Query SMS message format -->
- <command>AT+CMGF?</command>
- <response>+CMGF: ${CMGF}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query SMS message format values -->
- <command>AT+CMGF=?</command>
- <response>+CMGF: (0,1)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set SMS message format to PDU -->
- <command>AT+CMGF=0</command>
- <response>OK</response>
- <set name="CMGF" value="0"/>
-</chat>
-
-<chat>
- <!-- Set SMS message format to text -->
- <command>AT+CMGF=1</command>
- <response>OK</response>
- <set name="CMGF" value="1"/>
-</chat>
-
-<chat>
- <!-- Send an SMS message -->
- <command>AT+CMGS=*</command>
- <response eol="false">> </response>
- <switch name="smsread"/>
-</chat>
-
-<state name="smsread">
- <!-- Read an SMS PDU sent by the client (which is assumed
- to start with an empty service centre address). Messages
- sent to "199" are reflected back into the incoming queue -->
- <chat>
- <command>00110003A191F9*</command>
- <response>OK\n+CMTI: "ME",1</response>
- <switch name="default"/>
- <set name="MSGLIST" value="+CMGL: 1,0,,999\n00110003A191F9${*}\n"/>
- <set name="MSGCOUNT" value="1"/>
- </chat>
- <chat>
- <!-- messages with the user data header bit set -->
- <command>00510003A191F9*</command>
- <response>OK\n+CMTI: "ME",1</response>
- <switch name="default"/>
- <set name="MSGLIST" value="+CMGL: 1,0,,999\n00510003A191F9${*}\n"/>
- <set name="MSGCOUNT" value="1"/>
- </chat>
-
- <chat>
- <command wildcard="true">00*</command>
- <response>+CMGS: 0\n\nOK</response>
- <switch name="default"/>
- </chat>
-</state>
-
-<chat>
- <!-- CPMS Support -->
- <command>AT+CPMS=?</command>
- <response>+CPMS: ("SM","ME"),("SM","ME"),("SM")\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Request the number of messages in the incoming SIM queue -->
- <command>AT+CPMS="SM","SM","SM"</command>
- <response>+CPMS: 0,99,${MSGCOUNT},99,${MSGCOUNT},99\n\nOK</response>
- <set name="MSGLISTCOPY" value=""/>
- <set name="MSGMEM" value="SM"/>
-</chat>
-
-<chat>
- <!-- Request the number of messages in the incoming ordinary queue -->
- <command>AT+CPMS="ME","ME","SM"</command>
- <response>+CPMS: ${MSGCOUNT},99,${MSGCOUNT},99,${MSGCOUNT},99\n\nOK</response>
- <set name="MSGLISTCOPY" value="${MSGLIST}"/>
- <set name="MSGMEM" value="ME"/>
-</chat>
-
-<chat>
- <!-- Query CGDCONT support -->
- <command>AT+CGDCONT=?</command>
- <response>+CGDCONT: (5-10),("IP"),,,(0-1),(0-1)\n+CGDCONT: (5-10),("IPV6"),,,(0-1),(0-1)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Fake attach -->
- <command>AT+CGATT=1</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Fake detach -->
- <command>AT+CGATT=0</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Query CNMI support -->
- <command>AT+CNMI=?</command>
- <response>+CNMI: (0,1,2,3),(0,1),(0,1,2),(0),(0,1)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Enable new message indications -->
- <command>AT+CNMI=*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- List the messages in an SMS message store -->
- <command>AT+CMGL*</command>
- <listSMS/>
-</chat>
-
-<chat>
- <!-- Delete a particular message from an SMS message store -->
- <command>AT+CMGD=*</command>
- <deleteSMS/>
-</chat>
-
-<chat>
- <!-- Reads a particular message from the SMS message store -->
- <command>AT+CMGR=*</command>
- <readSMS/>
-</chat>
-
-<chat>
- <!-- Query Cell broadcast service presentation mode -->
- <command>AT+CSCB=?</command>
- <response>+CSCB: (0-1)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set cell broadcast channels -->
- <command>AT+CSCB=0,*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Remove cell broadcast channels -->
- <command>AT+CSCB=1,*</command>
- <response>OK</response>
-</chat>
-
-<!-- GSM 07.07: Mobile equipment errors -->
-
-<chat>
- <!-- Query mobile equipment error reporting mode -->
- <command>AT+CMEE?</command>
- <response>+CMEE: ${MEE}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query available mobile equipment error reporting modes -->
- <command>AT+CMEE=?</command>
- <response>+CMEE: (0-2)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set mobile equipment error reporting mode (ignored) -->
- <command>AT+CMEE=?</command>
- <response>OK</response>
- <set name="MEE" value="*"/>
-</chat>
-
-<!-- GSM 07.07: Voice-related commands -->
-
-<chat>
- <!-- Query supported levels -->
- <command>AT+CLVL=?</command>
- <response>+CLVL: (100-150)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set sound level -->
- <command>AT+CLVL=*</command>
- <response>OK</response>
- <set name="LVL" value="*"/>
-</chat>
-
-<chat>
- <!-- Read sound level -->
- <command>AT+CLVL?</command>
- <response>+CLVL: ${LVL}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Query supported levels -->
- <command>AT+CMUT=?</command>
- <response>+CMUT: (0,1)\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Set sound level -->
- <command>AT+CMUT=*</command>
- <response>OK</response>
- <set name="MUT" value="*"/>
-</chat>
-
-<chat>
- <!-- Read sound level -->
- <command>AT+CMUT?</command>
- <response>+CMUT: ${MUT}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Select operation class (ignored) -->
- <command>AT+FCLASS*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Buffer threshold (not supported yet) -->
- <command>AT+VBT*</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- Calling number ID presentation (use AT+CLIP instead) -->
- <command>AT+VCID*</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- Receive gain selector (not supported yet) -->
- <command>AT+VGR*</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- Transmit gain selector (not supported yet) -->
- <command>AT+VGT*</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- Initialize voice parameters (not supported yet) -->
- <command>AT+VGT*</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- Control inactivity timer (not supported yet) -->
- <command>AT+VIT*</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- Line selection (not supported yet) -->
- <command>AT+VLS*</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- Receive data state (not supported yet) -->
- <command>AT+VRX*</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- Select compression method (not supported yet) -->
- <command>AT+VSM*</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- DTMF tone generation (ignored) -->
- <command>AT+VTS*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- DTMF tone duration (not supported by GSM phones) -->
- <command>AT+VTD*</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- Transmit data state (not supported yet) -->
- <command>AT+VTX*</command>
- <response>ERROR</response>
-</chat>
-
-<!-- Modem compatibility commands for phones that support data services -->
-
-<chat>
- <!-- Select tone dialing (ignored by GSM phones) -->
- <command>ATT</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Select pulse dialing (ignored by GSM phones) -->
- <command>ATP</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Answer modem call (we don't support modem calls yet) -->
- <command>ATA</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- Hangup modem call, with options -->
- <command>ATH*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Return to online state (we don't support modem calls yet) -->
- <command>ATO*</command>
- <response>ERROR</response>
-</chat>
-
-<chat>
- <!-- Set modem option -->
- <command>ATS*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Set speaker loudness -->
- <command>ATL*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Set speaker mode -->
- <command>ATM*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Modem identifier -->
- <command>ATI</command>
- <response>${ID}\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Control data compression options -->
- <command>AT+DS*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Control extended modem reporting codes -->
- <command>AT+DR*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Circuit 109 behaviour -->
- <command>AT&C*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Circuit 108 behaviour -->
- <command>AT&D*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Set to factory defaults -->
- <command>AT&F*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Country of installation -->
- <command>AT+GCI</command>
- <response>TROLLVILLE\n\nOK</response>
-</chat>
-
-<chat>
- <!-- Global object identification (ignored) -->
- <command>AT+GOI</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Character framing (ignored) -->
- <command>AT+ICF*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Local flow control (ignored) -->
- <command>AT+IFC*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Local rate reporting (ignored) -->
- <command>AT+ILRR*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- DTE rate (ignored) -->
- <command>AT+IPR*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Command echo (ignored) -->
- <command>ATE*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Result code suppression (ignored) -->
- <command>ATQ*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Result code response format (ignored) -->
- <command>ATV*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Result code selection and progress monitoring (ignored) -->
- <command>ATX*</command>
- <response>OK</response>
-</chat>
-
-<chat>
- <!-- Reset to default configuration -->
- <command>ATZ*</command>
- <response>OK</response>
-</chat>
-
-<!-- List of all supported commands -->
-
-<chat>
- <command>AT*</command>
- <alias>AT+GCAP</alias>
- <response>+CGMI
-+CGMM
-+CGMR
-+CGSN
-+CSCS
-+WS46
-+CSTA
-+CHUP
-+CBST
-+CRLP
-+CR
-+CEER
-+CRC
-+CNUM
-+CREG
-+COPS
-+CLCK
-+CPWD
-+CLIP
-+CLIR
-+COLP
-+CCUG
-+CCFC
-+CCWA
-+CHLD
-+CTFR
-+CUSD
-+CAOC
-+CACM
-+CAMM
-+CPUC
-+CCWE
-+CSSN
-+CPAS
-+CFUN
-+CPIN
-+CBC
-+CSQ
-+CMEC
-+CKPD
-+CDIS
-+CIND
-+CMER
-+CCLK
-+CALA
-+CSIM
-+CPBS
-+CPBR
-+CPBF
-+CPBW
-+CMEE
-+CMGF
-+CMGS
-+DR
-+DS
-+GCAP
-+GCI
-+GMI
-+GMM
-+GMR
-+GOI
-+GSN
-+ICF
-+IFC
-+ILRR
-+IPR
-+FCLASS
-+VBT
-+VCID
-+VGR
-+VGT
-+VIP
-+VIT
-+VLS
-+VRX
-+VSM
-+VTS
-+VTD
-+VTX
-*ECAM
-A
-D
-E
-H
-I
-L
-M
-O
-P
-Q
-S0
-S3
-S4
-S5
-S6
-S7
-S8
-S10
-T
-V
-X
-Z
-&C
-&D
-&F
-*
-OK</response>
-</chat>
-
-<!-- SIM filesystem definition, based on standard test strings
- presented in GSM 11.10-4. This is primarily intended for
- testing icon definitions within SIM toolkit applications -->
-
-<filesystem>
-
-<file name="EFiccid">
- 98 94 22 02 47 54 21 24 60 F6
-</file>
-
-<file name="EFimsi">
- 08 09 10 10 10 32 54 76 98
-</file>
-
-<file name="EFimg" recordsize="20">
- 01 2E 28 11 4F 01 00 00 00 E8 FF FF FF FF FF FF FF FF FF FF
- 01 08 08 21 4F 02 00 00 00 1F FF FF FF FF FF FF FF FF FF FF
- 01 18 10 11 4F 03 00 00 00 32 FF FF FF FF FF FF FF FF FF FF
- 01 08 08 11 4F 04 00 00 00 0A FF FF FF FF FF FF FF FF FF FF
- 01 05 05 11 4F 05 00 00 00 08 FF FF FF FF FF FF FF FF FF FF
-</file>
-
-<file name="EFimg1">
- 2E 28 00 00 00 00 00 00 00 01 FF 80 00 00 00 0F
- FF 00 00 00 00 77 FE 00 00 00 01 BF F8 00 00 00
- 06 FF E0 00 00 00 1A 03 80 00 00 00 6B F6 BC 00
- 00 01 AF D8 38 00 00 06 BF 60 20 00 00 1A FD 80
- 40 00 00 6B F6 00 80 00 01 A0 1F 02 00 00 06 FF
- E4 04 00 00 1B FF 90 10 00 00 6D EE 40 40 00 01
- BF F9 01 00 00 6F FF E4 04 00 00 1B FF 90 10 00
- 00 6F FE 40 40 00 01 BF F9 01 00 00 06 FF E6 04
- 00 00 1B FF 88 10 00 00 6F FE 20 40 00 01 BF F8
- 66 00 00 06 FF E0 F0 00 00 1B FF 80 80 00 00 7F
- FE 00 00 00 03 00 0C 00 00 00 1F FF F8 00 00 00
- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 1C 21 08 44 EE 00 48 C4 31 92 20 01 25 11 45 50
- 80 07 14 45 15 43 80 12 71 1C 4D 08 00 4A 24 89
- 32 20 01 C8 9E 24 4E E0
-</file>
-
-<file name="EFimg2">
- 08 08 02 03 00 16 AA AA 80 02 85 42 81 42 81 42
- 81 52 80 02 AA AA FF 00 00 00 FF 00 00 00 FF
-</file>
-
-<file name="EFimg3">
- 18 10 FF FF FF 80 00 01 80 00 01 80 00 01 8F 3C
- F1 89 20 81 89 20 81 89 20 F1 89 20 11 89 20 11
- 89 20 11 8F 3C F1 80 00 01 80 00 01 80 00 01 FF
- FF FF
-</file>
-
-<file name="EFimg4">
- 08 08 FF 03 A5 99 99 A5 C3 FF
-</file>
-
-<file name="EFimg5">
- 05 05 FE EB BF FF FF FF
-</file>
-
-<file name="EFspn">
- 03 6F 46 6F 6E 6F FF FF FF FF FF FF FF FF FF FF FF
-</file>
-
-<file name="EFmsisdn" recordsize="28">
- 4F 57 4E 20 4E 55 4D 42 45 52 FF FF FF FF
- 07 81 53 58 10 32 54 76 FF FF FF FF FF FF
- FF FF FF FF FF FF FF FF FF FF FF FF FF FF
- FF FF FF FF FF FF FF FF FF FF FF FF FF FF
- FF FF FF FF FF FF FF FF FF FF FF FF FF FF
- FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-</file>
-
-<file name="EFust">
- 3C 00 FC 0C 00 00 7F DF 00 31 0F C0
-</file>
-
-<file name="EFcbmi">
- 03 E7 FF FF FF FF FF FF FF FF FF FF FF FF
-</file>
-
-<file name="EFcbmid">
- 10 01 FF FF FF FF FF FF FF FF FF FF FF FF
-</file>
-
-<file name="EFcbmir">
- 00 32 00 32 FF FF FF FF FF FF FF FF FF FF FF FF
-</file>
-
-<!-- Record 1
- Length of alpha identifier: 32 chars
- Alpha Identifier: "ABC"
- Length of BCD number: "03"
- TON & NPI: Telephony & Unknown
- Dialed Number: 123
- CCI: None
- EXT2: None
-
- Record 2
- Length of alpha identifier: 32 chars
- Alpha Identifier: "DEF"
- Length of BCD number "04"
- TON & NPI: Telephony & Unknown
- Dialed Number: 9876
- CCI: None
- EXT2: None
--->
-<file name="EFfdn" recordsize="48">
- 41 42 43 FF FF FF FF FF FF FF FF FF FF FF FF FF
- FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
- 03 81 21 F3 FF FF FF FF FF FF FF FF FF FF 44 45
- 46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
- FF FF FF FF FF FF FF FF FF FF FF FF FF FF 03 81
- 89 67 FF FF FF FF FF FF FF FF FF FF
-</file>
-
-<file name="EFbdn" recordsize="48">
- 43 42 41 FF FF FF FF FF FF FF FF FF FF FF FF FF
- FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
- 03 81 23 F1 FF FF FF FF FF FF FF FF FF FF
-</file>
-
-<file name="EFecc" recordsize="4">
- 01 02 FF 00
- 11 F2 FF 00
-</file>
-
-<file name="EFsmsp" recordsize="28">
- FD FF FF FF FF FF FF FF FF FF FF FF FF 09
- 91 11 22 33 44 55 66 77 F8 FF FF FF FF FF
-</file>
-
-<file name="EFspdi">
- A3 05 80 03 42 F6 18
-</file>
-
-<file name="EFopl" recordsize="8">
- 42 F6 1D 00 00 FF FE 01
-</file>
-
-<file name="EFpnn" recordsize="20">
- 43 0A 00 54 75 78 20 43 6F 6D 6D FF FF FF FF FF FF FF FF FF
- 43 05 00 4C 6F 6E 67 45 06 00 53 68 6F 72 74 FF FF FF FF FF
-</file>
-
-<file name="EFmwis" recordsize="6">
- 01 01 00 00 00 00
-</file>
-
-<file name="EFmbdn" recordsize="48">
- FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
- FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
- FF FF 03 81 76 98 FF FF FF FF FF FF FF FF FF FF
-</file>
-
-<file name="EFmbi" recordsize="5">
- 01 00 00 00 00
-</file>
-
-<file name="EFad">
- 00 FF FF 02
-</file>
-
-<file name="EFli">
- 00 01 02 03 04 05
-</file>
-
-<file name="EFpl">
- FF FF FF FF FF FF
-</file>
-
-<file name="EFsdn" recordsize="28">
- 2E 65 44 65 73 6B FF FF FF FF FF FF FF FF
- 04 FF 1A 01 FB FF FF FF FF FF FF FF FF FF
- 31 31 32 FF FF FF FF FF FF FF FF FF FF FF
- 03 81 11 F2 FF FF FF FF FF FF FF FF FF FF
- 45 6D 65 72 67 65 6E 63 79 FF FF FF FF FF
- 03 81 99 F9 FF FF FF FF FF FF FF FF FF FF
- 50 6F 6C 69 63 65 FF FF FF FF FF FF FF FF
- 03 81 99 F7 FF FF FF FF FF FF FF FF FF FF
- 46 69 72 65 6D 65 6E FF FF FF FF FF FF FF
- 03 81 99 F8 FF FF FF FF FF FF FF FF FF FF
- 53 65 61 20 65 6D 65 72 67 65 6E 63 79 FF
- 07 91 84 06 11 00 01 F0 FF FF FF FF FF FF
- 4D 6F 75 6E 74 61 69 6E 20 65 6D 65 72 2E
- 07 91 84 06 11 00 03 F0 FF FF FF FF FF FF
- 2E 48 45 4C 50 20 44 45 53 4B FF FF FF FF
- 03 81 62 10 FF FF FF FF FF FF FF FF FF FF
- 2E 52 45 43 48 41 52 47 45 FF FF FF FF FF
- 03 81 55 55 FF FF FF FF FF FF FF FF FF FF
- 2E 43 72 65 64 69 74 20 6C 65 66 74 FF FF
- 04 FF 1A 52 FB FF FF FF FF FF FF FF FF FF
- 2E 45 6E 67 6C 69 73 68 FF FF FF FF FF FF
- 05 FF 1A 50 1A B0 FF FF FF FF FF FF FF FF
- 2E 53 70 61 6E 69 73 68 FF FF FF FF FF FF
- 05 FF 1A 50 2A B0 FF FF FF FF FF FF FF FF
- 2E 56 6D 61 69 6C 2E 20 73 74 61 74 75 73
- 04 FF 1A 22 FB FF FF FF FF FF FF FF FF FF
- 2E 56 6F 69 63 65 6D 61 69 6C 20 6F 66 66
- 05 FF 1A 22 0A B0 FF FF FF FF FF FF FF FF
- 2E 56 6F 69 63 65 6D 61 69 6C 20 6F 6E FF
- 05 FF 1A 22 1A B1 FF FF FF FF FF FF FF FF
- 2E 52 6F 61 6D 69 6E 67 20 6F 6E FF FF FF
- 07 FF 1A 10 1A A1 10 FB FF FF FF FF FF FF
- 2E 52 6F 61 6D 69 6E 67 20 6F 66 66 FF FF
- 07 FF 1A 10 0A A0 10 FB FF FF FF FF FF FF
- 2E 47 50 52 53 2F 4D 4D 53 20 6F 6E FF FF
- 07 FF 1A 10 1A A1 20 FB FF FF FF FF FF FF
- 2E 47 50 52 53 2F 4D 4D 53 20 6F 66 66 FF
- 07 FF 1A 10 0A A0 20 FB FF FF FF FF FF FF
- 2E 41 63 74 2E 20 73 65 72 76 69 63 65 73
- 04 FF 1A 10 FB FF FF FF FF FF FF FF FF FF
- 2E 53 65 6C 65 63 74 20 54 45 41 4D 37 FF
- 05 FF 1A 74 7A B0 FF FF FF FF FF FF FF FF
- 2E 53 65 6C 65 63 74 20 45 41 53 59 FF FF
- 05 FF 1A 74 8A B0 FF FF FF FF FF FF FF FF
- 2E 56 6F 69 63 65 6D 61 69 6C FF FF FF FF
- 07 91 84 06 21 22 22 F2 FF FF FF FF FF FF
- 2E 56 6F 69 63 65 20 61 63 63 65 73 73 FF
- 07 91 84 06 11 40 44 F4 FF FF FF FF FF FF
- FF FF FF FF FF FF FF FF FF FF FF FF FF FF
- FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-</file>
-
-<file name="EFcphs_info">
- 02 3C 03 00
-</file>
-
-<file name="EFcphs_mbdn" recordsize="48">
- FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
- FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
- FF FF 03 81 76 90 FF FF FF FF FF FF FF FF FF FF
-</file>
-
-<file name="EFcphs_mwis">
- 5A 55
-</file>
-
-</filesystem>
-
-</simulator>
diff --git a/src/gsmitem.h b/src/gsmitem.h
deleted file mode 100644
index baaccb3..0000000
--- a/src/gsmitem.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-
-#ifndef GSMITEM_H
-#define GSMITEM_H
-
-#include <QString>
-#include <QStringList>
-
-class GSMItem
-{
-
-public:
- GSMItem(const QString&, const QString&, const QStringList&, const QStringList&, const QString&);
- GSMItem();
- QString getDescription();
- QString getProfile();
- QStringList getParameterFormat();
- QStringList getResponseFormat();
-
-private:
- QString command;
- QString profile;
- QStringList parameterFormat;
- QStringList responses;
- QString description;
-
-};
-
-#endif
diff --git a/src/gsmspec.h b/src/gsmspec.h
deleted file mode 100644
index 03a5aa2..0000000
--- a/src/gsmspec.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-
-#ifndef GSMSPEC_H
-#define GSMSPEC_H
-
-#include <QString>
-#include <QMap>
-#include <QStringList>
-#include "gsmitem.h"
-#include <QFile>
-#include <QXmlStreamReader>
-#include <QDir>
-
-class GsmXmlNode
-{
-public:
- GsmXmlNode( const QString& tag );
- ~GsmXmlNode();
-
- GsmXmlNode *parent, *next, *children, *attributes;
- QString tag;
- QString contents;
-
- void addChild( GsmXmlNode *child );
- void addAttribute( GsmXmlNode *child );
- QString getAttribute( const QString& name );
-};
-
-
-class GsmXmlHandler
-{
-public:
- GsmXmlHandler();
- ~GsmXmlHandler();
-
- bool startElement( const QString& name, const QXmlStreamAttributes& atts );
- bool endElement();
- bool characters( const QString& ch );
-
- GsmXmlNode *documentElement() const;
-
-private:
- GsmXmlNode *tree;
- GsmXmlNode *current;
-};
-
-class GSMSpec
-{
-
-public:
- GSMSpec(const QString& specFile);
- bool commandExists(const QString&);
- QString getDescription(const QString&);
- QString getProfile(const QString&);
- QStringList getParameterFormat(const QString&);
- QStringList getResponseFormat(const QString&);
-
- bool validateCommand(QString format, QString pars);
- bool validateResponse(QString format, QString pars);
- void resetDictionary( const QString& );
-
-private:
- QMap<QString, GSMItem> commandMap;
- GSMItem getGSMItem( const QString& );
- void setupDictionary( const QString& );
- //GSMItem createGSMItem( QString command, QString profile, QStringList pars, QStringList resps );
-};
-
-#endif
diff --git a/src/hardwaremanipulator.h b/src/hardwaremanipulator.h
deleted file mode 100644
index 6571c06..0000000
--- a/src/hardwaremanipulator.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-
-#ifndef HARDWAREMANIPULATOR_H
-#define HARDWAREMANIPULATOR_H
-
-#include <QObject>
-
-#include "qsmsmessagelist.h"
-
-class QSMSMessage;
-class QVMMessage;
-class SimRules;
-class HardwareManipulator : public QObject
-{
-Q_OBJECT
-
-public:
- HardwareManipulator(SimRules *sr, QObject *parent=0);
- QSMSMessageList & getSMSList();
- bool getSimPresent();
- QString getSimAppName();
-
-public slots:
- virtual void handleFromData( const QString& );
- virtual void handleToData( const QString& );
- virtual void setPhoneNumber( const QString& );
- virtual void constructSMSMessage(const int type, const QString &sender, const QString &serviceCenter, const QString &text);
- virtual void sendSMS( const QSMSMessage& m );
- virtual void sendVMNotify( int type, int count, const QList<QVMMessage> &received, const QList<QVMMessage> &deleted, const QString &mailbox );
- virtual void sendUSSD( bool cancel, bool response, const QString &content );
- virtual void setSimPresent( bool present );
- virtual void simAppStart();
- virtual void simAppAbort();
- virtual void handleNewApp();
-
-signals:
- void unsolicitedCommand(const QString &cmd);
- void command(const QString &cmd);
- void variableChanged(const QString &n, const QString &v);
- void switchTo(const QString &cmd);
- void startIncomingCall(const QString &number);
-
-protected:
- virtual QString constructCBMessage(const QString &messageCode, int geographicalScope, const QString &updateNumber, const QString &channel,
- const QString &scheme, int language, const QString &numPages, const QString &page, const QString &content);
- virtual void constructSMSDatagram(int port, const QString &sender, const QByteArray &data, const QByteArray &contentType);
-
- virtual void warning(const QString &title, const QString &message);
-
- virtual int convertString(const QString &number, int maxValue, int numChar, int base, bool *ok);
-
-private:
- QSMSMessageList SMSList;
- SimRules *rules;
- bool simPresent;
-};
-
-class HardwareManipulatorFactory
-{
-public:
- virtual ~HardwareManipulatorFactory() {};
- inline virtual HardwareManipulator *create(SimRules *sr, QObject *p)
- { return new HardwareManipulator(sr, p); }
-
- QString ruleFile() const { return ruleFilename; }
- void setRuleFile(const QString& filename) { ruleFilename = filename; }
-
-private:
- QString ruleFilename;
-};
-
-class QVMMessage {
-public:
- QVMMessage(int _id, const QString &from, bool pr) : id(_id),
- sender(from), priority(pr), lengthSecs(50), retentionDays(2) {}
-
- int id;
- QString sender;
- bool priority;
- int lengthSecs;
- int retentionDays;
-};
-
-#endif
diff --git a/src/phonesim.h b/src/phonesim.h
deleted file mode 100644
index cb7a5e1..0000000
--- a/src/phonesim.h
+++ /dev/null
@@ -1,376 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-
-#ifndef PHONESIM_H
-#define PHONESIM_H
-
-#include <qstring.h>
-#include <qstringlist.h>
-#include <qlist.h>
-#include <qfile.h>
-#include <qfileinfo.h>
-#include <qxmlstream.h>
-#include <qtcpsocket.h>
-#include <qapplication.h>
-#include <qmap.h>
-#include <qtimer.h>
-#include <qpointer.h>
-#include <qsimcontrolevent.h>
-
-#include <string.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <signal.h>
-#include <sys/time.h>
-#include <sys/wait.h>
-#include <sys/select.h>
-#include <netdb.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-
-class SimState;
-class SimItem;
-class SimChat;
-class SimUnsolicited;
-class SimRules;
-class SimFileSystem;
-class CallManager;
-class SimApplication;
-
-
-class SimXmlNode
-{
-public:
- SimXmlNode( const QString& tag );
- ~SimXmlNode();
-
- SimXmlNode *parent, *next, *children, *attributes;
- QString tag;
- QString contents;
-
- void addChild( SimXmlNode *child );
- void addAttribute( SimXmlNode *child );
- QString getAttribute( const QString& name );
-};
-
-
-class SimXmlHandler
-{
-public:
- SimXmlHandler();
- ~SimXmlHandler();
-
- bool startElement( const QString& name, const QXmlStreamAttributes& atts );
- bool endElement();
- bool characters( const QString& ch );
-
- SimXmlNode *documentElement() const;
-
-private:
- SimXmlNode *tree;
- SimXmlNode *current;
-};
-
-
-class SimState
-{
- friend class SimRules;
-public:
- SimState( SimRules *rules, SimXmlNode& e );
- ~SimState() {}
-
- // Get the rules object that contains this state.
- SimRules *rules() const { return _rules; }
-
- // Get the name of this state.
- QString name() const { return _name; }
-
- // Enter this state, and enable unsolicited events.
- void enter();
-
- // Leave this state, after disabling unsolicited events.
- void leave();
-
- // Handle a command. Returns false if the command was not understood.
- bool command( const QString& cmd );
-
-private:
- QPointer<SimRules> _rules;
- QString _name;
- QList<SimItem *> items;
-
-};
-
-
-class SimItem : public QObject
-{
- Q_OBJECT
-public:
- SimItem( SimState *state ) { _state = state; }
- virtual ~SimItem() {}
-
- // Get the state that contains this item.
- SimState *state() { return _state; }
-
- // Receive notification of the item's state being entered.
- virtual void enter() {}
-
- // Receive notification of the item's state being left.
- virtual void leave() {}
-
- // Attempt to handle a command. Returns false if not recognised.
- virtual bool command( const QString& ) { return false; }
-
-private:
- SimState *_state;
-
-};
-
-
-class SimChat : public SimItem
-{
- Q_OBJECT
-public:
- SimChat( SimState *state, SimXmlNode& e );
- ~SimChat() {}
-
- virtual bool command( const QString& cmd );
-
-private:
- QString _command;
- QString response;
- int responseDelay;
- QString switchTo;
- bool wildcard;
- bool eol;
- QStringList variables;
- QStringList values;
- QString newCallVar;
- QString forgetCallId;
- bool listSMS;
- bool deleteSMS;
- bool readSMS;
-};
-
-
-class SimUnsolicited : public SimItem
-{
- Q_OBJECT
-public:
- SimUnsolicited( SimState *state, SimXmlNode& e );
- ~SimUnsolicited() {}
-
- virtual void enter();
- virtual void leave();
-
-private:
- QString response;
- int responseDelay;
- QString switchTo;
- bool doOnce;
- bool done;
- QTimer *timer;
-
-private slots:
- void timeout();
-
-};
-
-
-class SimPhoneBook : public QObject
-{
- Q_OBJECT
-public:
- SimPhoneBook( int size, QObject *parent );
- ~SimPhoneBook();
-
- int size() const { return numbers.size(); }
- int used() const;
-
- QString number( int index ) const;
- QString name( int index ) const;
- int hidden( int index ) const;
- QString group( int index ) const;
- QString adNumber( int index ) const;
- QString secondText( int index ) const;
- QString email( int index ) const;
- QString sipUri( int index ) const;
- QString telUri( int index ) const;
-
- void setDetails( int index, const QString& number, const QString& name,
- int hidden = -1, const QString& group = QString(),
- const QString& adNumber = QString(),
- const QString& secondText = QString(),
- const QString& email = QString(),
- const QString& sipUri = QString(),
- const QString& telUri = QString() );
-
- bool contains( const QString& number ) const { return numbers.contains( number ); }
-
-private:
- QStringList numbers;
- QStringList names;
- QList<int> hiddens;
- QStringList groups;
- QStringList adNumbers;
- QStringList secondTexts;
- QStringList emails;
- QStringList sipUris;
- QStringList telUris;
-};
-
-class HardwareManipulatorFactory;
-class HardwareManipulator;
-class SimRules : public QTcpSocket
-{
- Q_OBJECT
-public:
- SimRules(int fd, QObject *parent, const QString& filename, HardwareManipulatorFactory *hmf );
- ~SimRules() {}
-
- // get the variable value for.
- QString variable(const QString &name);
-
- // Get the current simulator state.
- SimState *current() const { return currentState; }
-
- // Get the default simulator state.
- SimState *defaultState() const { return defState; }
-
- // Issue a response to the client.
- void respond( const QString& resp, int delay, bool eol=true );
-
- // Expand variable references in a string.
- QString expand( const QString& s );
-
- // force the next returned reply to be 'error'
- void setReturnError( const QString &error, uint repeat = 0 );
-
- // Allocate a new call identifier.
- int newCall();
-
- // Forget a call identifier.
- void forgetCall( int id );
-
- // Forget all call identifiers (global hangup).
- void forgetAllCalls();
-
- void setPhoneNumber(const QString &s);
-
- // Gets the hardware manipulator
- HardwareManipulator * getMachine() const;
-
- // Get the call manager for this rule object.
- CallManager *callManager() const { return _callManager; }
-
- // Get or set the SIM toolkit application.
- SimApplication *simApplication() const { return toolkitApp; }
- void setSimApplication( SimApplication *app );
-
-signals:
- void returnQueryVariable( const QString&, const QString & );
- void returnQueryState( const QString& );
- void modemCommand( const QString& );
- void modemResponse( const QString& );
-
-public slots:
- void queryVariable( const QString &name );
- void queryState( );
- // Set a variable to a new value.
- void setVariable( const QString& name, const QString& value );
-
- // Switch to a new simulator state.
- void switchTo(const QString& name);
-
- // Process a command.
- void command( const QString& cmd );
-
- // Send an unsolicited response to the client.
- void unsolicited( const QString& resp );
-
- // Send a response line.
- void respond( const QString& resp ) { respond( resp, 0 ); }
-
- void proactiveCommandNotify( const QByteArray& cmd );
- void callControlEventNotify( const QSimControlEvent& event );
-
-private slots:
- void tryReadCommand();
- void destruct();
- void delayTimeout();
- void dialCheck( const QString& number, bool& ok );
-
-private:
- SimState *currentState;
- SimState *defState;
- QList<SimState *> states;
- QMap<QString,QString> variables;
- int usedCallIds;
- bool useGsm0710;
- int currentChannel;
- char incomingBuffer[1024];
- int incomingUsed;
- char lineBuffer[1024];
- int lineUsed;
- SimFileSystem *fileSystem;
- SimApplication *defaultToolkitApp;
- SimApplication *toolkitApp;
-
- // Get a particular state object.
- SimState *state( const QString& name ) const;
-
- QString return_error_string;
- uint return_error_count;
- QString mPhoneNumber;
- HardwareManipulator *machine;
-
- void writeGsmFrame( int type, const char *data, uint len );
- void writeChatData( const char *data, uint len );
-
- QString convertCharset( const QString& s );
- void initPhoneBooks();
- void phoneBook( const QString& cmd );
- bool simCommand( const QString& cmd );
- void changePin( const QString& cmd );
- SimPhoneBook *currentPB() const;
- void loadPhoneBook( SimXmlNode& node );
-
- QString currentPhoneBook;
- QMap< QString, SimPhoneBook * > phoneBooks;
-
- CallManager *_callManager;
-
- bool simCsimOk( const QByteArray& payload );
-};
-
-
-class SimDelayTimer : public QTimer
-{
- Q_OBJECT
-public:
- SimDelayTimer( const QString& response, int channel )
- : QTimer() { this->response = response; this->channel = channel; }
-
-public:
- QString response;
- int channel;
-};
-
-#endif
diff --git a/src/qatresult.h b/src/qatresult.h
deleted file mode 100644
index d0178dc..0000000
--- a/src/qatresult.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-
-#ifndef QATRESULT_H
-#define QATRESULT_H
-
-#include <qobject.h>
-#include <qstring.h>
-
-class QAtResultPrivate;
-
-class QAtResult
-{
-public:
- enum ResultCode
- {
- OK = -1,
- Connect = -2,
- NoCarrier = -3,
- Error = -4,
- NoDialtone = -5,
- Busy = -6,
- NoAnswer = -7,
- Dead = -8,
-
- // General errors (GSM 27.07, section 9.2.1).
- PhoneFailure = 0,
- NoConnectionToPhone = 1,
- PhoneAdapterLinkReserved = 2,
- OperationNotAllowed = 3,
- OperationNotSupported = 4,
- PhSimPinRequired = 5,
- PhFSimPinRequired = 6,
- PhFSimPukRequired = 7,
- SimNotInserted = 10,
- SimPinRequired = 11,
- SimPukRequired = 12,
- SimFailure = 13,
- SimBusy = 14,
- SimWrong = 15,
- IncorrectPassword = 16,
- SimPin2Required = 17,
- SimPuk2Required = 18,
- MemoryFull = 20,
- InvalidIndex = 21,
- NotFound = 22,
- MemoryFailure = 23,
- TextStringTooLong = 24,
- InvalidCharsInTextString = 25,
- DialStringTooLong = 26,
- InvalidCharsInDialString = 27,
- NoNetworkService = 30,
- NetworkTimeout = 31,
- NetworkNotAllowed = 32,
- NetPersPinRequired = 40,
- NetPersPukRequired = 41,
- NetSubsetPersPinRequired = 42,
- NetSubsetPersPukRequired = 43,
- ServProvPersPinRequired = 44,
- ServProvPersPukRequired = 45,
- CorpPersPinRequired = 46,
- CorpPersPukRequired = 47, // 23 according to spec ???
- HiddenKeyRequired = 48, // 24 according to spec ???
- Unknown = 100,
-
- // GPRS-related errors (GSM 27.07, section 9.2.2).
- IllegalMS = 103,
- IllegalME = 106,
- GPRSServicesNotAllowed = 107,
- PLMNNotAllowed = 111,
- LocationAreaNotAllowed = 112,
- RoamingNotAllowed = 113,
- ServiceOptionNotSupported = 132,
- ServiceOptionNotSubscribed = 133,
- ServiceOptionOutOfOrder = 134,
- UnspecifiedGPRSError = 148,
- PDPAuthenticationFailure = 149,
- InvalidMobileClass = 150,
-
- // VBS/VGCS and eMLPP errors (GSM 27.07, section 9.2.3).
- VBSVGCSNotSupported = 151,
- NoServiceSubscriptionOnSim = 152,
- NoSubscriptionForGroupId = 153,
- GroupIdNotActivatedOnSim = 154,
- NoMatchingNotification = 155,
- VBSVGCSCallAlreadyPresent = 156,
- Congestion = 157,
- NetworkFailure = 158,
- UplinkBusy = 159,
- NoAccessRightsForSimFile = 160,
- NoSubscriptionForPriority = 161,
- OperationNotApplicable = 162,
-
- // SMS errors (GSM 27.05, section 3.2.5).
- MEFailure = 300,
- SMSServiceOfMEReserved = 301,
- SMSOperationNotAllowed = 302,
- SMSOperationNotSupported = 303,
- InvalidPDUModeParameter = 304,
- InvalidTextModeParameter = 305,
- USimNotInserted = 310,
- USimPinRequired = 311,
- PHUSimPinRequired = 312,
- USimFailure = 313,
- USimBusy = 314,
- USimWrong = 315,
- USimPukRequired = 316,
- USimPin2Required = 317,
- USimPuk2Required = 318,
- SMSMemoryFailure = 320,
- InvalidMemoryIndex = 321,
- SMSMemoryFull = 322,
- SMSCAddressUnknown = 330,
- SMSNoNetworkService = 331,
- SMSNetworkTimeout = 332,
- NoCNMAAckExpected = 340,
- UnknownError = 500
- };
-
- class UserData
- {
- public:
- virtual ~UserData() {}
- };
-
- QAtResult();
- QAtResult( const QAtResult& other );
- ~QAtResult();
-
- QAtResult& operator=( const QAtResult& other );
-
- QString result() const;
- void setResult( const QString& value );
-
- QString content() const;
- void setContent( const QString& value );
- void append( const QString& value );
-
- QAtResult::ResultCode resultCode() const;
- void setResultCode( QAtResult::ResultCode value );
-
- bool ok() const;
-
- QString verboseResult() const;
-
- QAtResult::UserData *userData() const;
- void setUserData( QAtResult::UserData *value );
-
-private:
- QAtResultPrivate *d;
-
- void resultToCode( const QString& value );
- QString codeToResult( const QString& defaultValue ) const;
-};
-
-#endif
diff --git a/src/qatresultparser.h b/src/qatresultparser.h
deleted file mode 100644
index abaf88f..0000000
--- a/src/qatresultparser.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-
-#ifndef QATRESULTPARSER_H
-#define QATRESULTPARSER_H
-
-#include <qobject.h>
-#include <qstring.h>
-#include <qstringlist.h>
-#include <qlist.h>
-
-class QAtResultParserPrivate;
-class QAtResult;
-
-class QAtResultParser
-{
-public:
- QAtResultParser( const QAtResult& result );
- QAtResultParser( const QString& notification );
- ~QAtResultParser();
-
- class Node
- {
- friend class QAtResultParser;
- private:
- enum Kind { Number, Range, String, List };
-
- Node( uint number );
- Node( uint first, uint last );
- Node( const QString& str );
- Node( QList<Node> *list );
- public:
- Node( const Node& other );
- ~Node();
-
- bool isNumber() const { return ( _kind == Number ); }
- bool isRange() const { return ( _kind == Range ); }
- bool isString() const { return ( _kind == String ); }
- bool isList() const { return ( _kind == List ); }
-
- uint asNumber() const { return ( _kind == Number ? _number : 0 ); }
- uint asFirst() const { return ( _kind == Range ? _number : 0 ); }
- uint asLast() const { return ( _kind == Range ? _last : 0 ); }
- QString asString() const { return _str; }
- QList<QAtResultParser::Node> asList() const
- { return ( _list ? *_list : QList<QAtResultParser::Node>() ); }
-
- private:
- Kind _kind;
- uint _number;
- uint _last;
- QString _str;
- QList<QAtResultParser::Node> *_list;
- };
-
- void reset();
- bool next( const QString& prefix );
- QString line();
- uint readNumeric();
- QString readString();
- void skip();
- QString readNextLine();
- QStringList lines( const QString& prefix );
- QList<QAtResultParser::Node> readList();
-
-private:
- QAtResultParserPrivate *d;
-};
-
-#endif
diff --git a/src/qatutils.h b/src/qatutils.h
deleted file mode 100644
index 27e3c2d..0000000
--- a/src/qatutils.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-
-#ifndef QATUTILS_H
-#define QATUTILS_H
-
-#include <qobject.h>
-#include <qstring.h>
-#include <qbytearray.h>
-
-class QAtResultParser;
-class QTextCodec;
-
-class QAtUtils
-{
-private:
- QAtUtils() {}
-
-public:
-
- static QString quote( const QString& str );
- static QString quote( const QString& str, QTextCodec *codec );
- static QString decode( const QString& str, QTextCodec *codec );
- static QTextCodec *codec( const QString& gsmCharset );
- static QString toHex( const QByteArray& binary );
- static QByteArray fromHex( const QString& hex );
- static QString decodeNumber( const QString& value, uint type );
- static QString decodeNumber( QAtResultParser& parser );
- static QString encodeNumber( const QString& value, bool keepPlus = false );
- static QString nextString( const QString& buf, uint& posn );
- static uint parseNumber( const QString& str, uint& posn, int invalidValue = 0);
- static void skipField( const QString& str, uint& posn );
- static QString stripNumber( const QString& number );
- static bool octalEscapes();
- static void setOctalEscapes( bool value );
- static QString decodeString( const QString& value, uint dcs );
-};
-
-#endif
diff --git a/src/qcbsmessage.h b/src/qcbsmessage.h
deleted file mode 100644
index 0f86e3e..0000000
--- a/src/qcbsmessage.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-
-#ifndef QCBSMESSAGE_H
-#define QCBSMESSAGE_H
-
-#include <qstring.h>
-
-class QCBSMessagePrivate;
-
-class QCBSMessage
-{
-public:
- QCBSMessage();
- QCBSMessage(const QCBSMessage &);
- ~QCBSMessage();
-
- enum GeographicalScope
- {
- CellWide = 0,
- PLMNWide = 1,
- LocationAreaWide = 2,
- CellWide2 = 3
- };
-
- enum Language
- {
- German = 0,
- English = 1,
- Italian = 2,
- French = 3,
- Spanish = 4,
- Dutch = 5,
- Swedish = 6,
- Danish = 7,
- Portuguese = 8,
- Finnish = 9,
- Norwegian = 10,
- Greek = 11,
- Turkish = 12,
- Hungarian = 13,
- Polish = 14,
- Unspecified = 15
- };
-
- QCBSMessage& operator=(const QCBSMessage &);
-
- uint messageCode() const;
- void setMessageCode( uint code );
-
- QCBSMessage::GeographicalScope scope() const;
- void setScope( QCBSMessage::GeographicalScope scope );
-
- uint updateNumber() const;
- void setUpdateNumber( uint num );
-
- uint channel() const;
- void setChannel( uint chan );
-
- QCBSMessage::Language language() const;
- void setLanguage( QCBSMessage::Language lang );
-
- uint page() const;
- void setPage( uint page );
-
- uint numPages() const;
- void setNumPages( uint npages );
-
- void setText(const QString &);
- QString text() const;
-
- bool operator==( const QCBSMessage& other ) const;
- bool operator!=( const QCBSMessage& other ) const;
-
- void print();
-
- QByteArray toPdu() const;
- static QCBSMessage fromPdu( const QByteArray& pdu );
-
-private:
- QCBSMessagePrivate *d;
-};
-
-#endif
diff --git a/src/qgsmcodec.h b/src/qgsmcodec.h
deleted file mode 100644
index 8ecb6f9..0000000
--- a/src/qgsmcodec.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-
-#ifndef QGSMCODEC_H
-#define QGSMCODEC_H
-
-#include <qstring.h>
-#include <qtextcodec.h>
-
-class QGsmCodec : public QTextCodec
-{
-public:
- explicit QGsmCodec( bool noLoss=false );
- ~QGsmCodec();
-
- QByteArray name() const;
- int mibEnum() const;
-
- static char singleFromUnicode(QChar ch);
- static QChar singleToUnicode(char ch);
-
- static unsigned short twoByteFromUnicode(QChar ch);
- static QChar twoByteToUnicode(unsigned short ch);
-
-protected:
- QString convertToUnicode(const char *in, int length, ConverterState *state) const;
- QByteArray convertFromUnicode(const QChar *in, int length, ConverterState *state) const;
-
-private:
- bool noLoss;
-};
-
-#endif
diff --git a/src/qsimcommand.h b/src/qsimcommand.h
deleted file mode 100644
index ff99cc7..0000000
--- a/src/qsimcommand.h
+++ /dev/null
@@ -1,385 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-#ifndef QSIMCOMMAND_H
-#define QSIMCOMMAND_H
-
-#include <qlist.h>
-#include <qdatastream.h>
-
-class QSimMenuItemPrivate;
-class QSimCommandPrivate;
-
-class QSimMenuItem
-{
-public:
- QSimMenuItem();
- QSimMenuItem( const QSimMenuItem& value );
- ~QSimMenuItem();
-
- uint identifier() const;
- void setIdentifier( uint value );
-
- QString label() const;
- void setLabel( const QString& value );
-
- QByteArray labelAttribute() const;
- void setLabelAttribute( const QByteArray& value );
-
- QString labelHtml() const;
-
- bool hasHelp() const;
- void setHasHelp( bool value );
-
- uint iconId() const;
- void setIconId( uint value );
-
- bool iconSelfExplanatory() const;
- void setIconSelfExplanatory( bool value );
-
- uint nextAction() const;
- void setNextAction( uint value );
-
- QSimMenuItem& operator=( const QSimMenuItem & );
-
-private:
- QSimMenuItemPrivate *d;
-};
-
-class QSimCommand
-{
-public:
- QSimCommand();
- QSimCommand( const QSimCommand& value );
- ~QSimCommand();
-
- // Command types.
- enum Type
- {
- NoCommand = -1,
- Timeout = -2,
- Refresh = 0x01,
- MoreTime = 0x02,
- PollInterval = 0x03,
- PollingOff = 0x04,
- SetupEventList = 0x05,
- SetupCall = 0x10,
- SendSS = 0x11,
- SendUSSD = 0x12,
- SendSMS = 0x13,
- SendDTMF = 0x14,
- LaunchBrowser = 0x15,
- PlayTone = 0x20,
- DisplayText = 0x21,
- GetInkey = 0x22,
- GetInput = 0x23,
- SelectItem = 0x24,
- SetupMenu = 0x25,
- ProvideLocalInformation = 0x26,
- TimerManagement = 0x27,
- SetupIdleModeText = 0x28,
- PerformCardAPDU = 0x30,
- PowerOnCard = 0x31,
- PowerOffCard = 0x32,
- GetReaderStatus = 0x33,
- RunATCommand = 0x34,
- LanguageNotification = 0x35,
- OpenChannel = 0x40,
- CloseChannel = 0x41,
- ReceiveData = 0x42,
- SendData = 0x43,
- GetChannelStatus = 0x44,
- ServiceSearch = 0x45,
- GetServiceInformation = 0x46,
- DeclareService = 0x47,
- SetFrames = 0x50,
- GetFramesStatus = 0x51,
- RetrieveMultimediaMessage = 0x60,
- SubmitMultimediaMessage = 0x61,
- DisplayMultimediaMessage = 0x62,
- EndSession = 0x81,
-
- SetupMainMenu = SetupMenu,
- SetupSubMenu = SelectItem
- };
-
- // Disposition of other calls during a call setup.
- enum Disposition
- {
- IfNoOtherCalls = 0, // Setup if no other calls.
- PutOnHold = 1, // Put other calls on hold first.
- Disconnect = 2 // Disconnect other calls first.
- };
-
- // Class of call to setup.
- enum CallClass
- {
- Voice = 0,
- Data = 1,
- Fax = 2
- };
-
- // Tones that can be played.
- enum Tone
- {
- ToneNone = -1,
- ToneDial = 0x01,
- ToneBusy = 0x02,
- ToneCongestion = 0x03,
- ToneRadioAck = 0x04,
- ToneDropped = 0x05,
- ToneError = 0x06,
- ToneCallWaiting = 0x07,
- ToneRinging = 0x08,
- ToneGeneralBeep = 0x10,
- TonePositiveBeep = 0x11,
- ToneNegativeBeep = 0x12
- };
-
- // The type of refresh to perform.
- enum RefreshType
- {
- InitAndFullFileChange = 0,
- FileChange = 1,
- InitAndFileChange = 2,
- Initialization = 3,
- Reset = 4,
- NaaApplicationReset = 5,
- NaaSessionReset = 6
- };
-
- // Event types.
- enum Event
- {
- NoEvent = 0,
- IdleScreen = 1,
- UserActivity = 2,
- Both = 3,
- Cancel = 4
- };
-
- // Browser launch mode.
- enum BrowserLaunchMode
- {
- IfNotAlreadyLaunched = 0,
- UseExisting = 2,
- CloseExistingAndLaunch = 3
- };
-
- // Menu presentation type.
- enum MenuPresentation
- {
- AnyPresentation = 0,
- DataValuesPresentation = 1,
- NavigationOptionsPresentation = 2
- };
-
- // Device identities for source and destination of commands.
- enum Device
- {
- Keypad = 0x01,
- Display = 0x02,
- Earpiece = 0x03,
- CardReader0 = 0x10,
- CardReader1 = 0x11,
- CardReader2 = 0x12,
- CardReader3 = 0x13,
- CardReader4 = 0x14,
- CardReader5 = 0x15,
- CardReader6 = 0x16,
- CardReader7 = 0x17,
- Channel1 = 0x21,
- Channel2 = 0x22,
- Channel3 = 0x23,
- Channel4 = 0x24,
- Channel5 = 0x25,
- Channel6 = 0x26,
- Channel7 = 0x27,
- SIM = 0x81,
- ME = 0x82,
- Network = 0x83
- };
-
- int commandNumber() const;
- void setCommandNumber( int value );
-
- Type type() const;
- void setType( QSimCommand::Type value );
-
- QSimCommand::Device sourceDevice() const;
- void setSourceDevice( QSimCommand::Device value );
-
- QSimCommand::Device destinationDevice() const;
- void setDestinationDevice( QSimCommand::Device value );
-
- bool hasHelp() const;
- void setHasHelp( bool value );
-
- QString text() const;
- void setText( const QString& value );
-
- QByteArray textAttribute() const;
- void setTextAttribute( const QByteArray& value );
-
- QString textHtml() const;
-
- bool suppressUserFeedback() const;
- void setSuppressUserFeedback( bool value );
-
- QString otherText() const;
- void setOtherText( const QString& value );
-
- QByteArray otherTextAttribute() const;
- void setOtherTextAttribute( const QByteArray& value );
-
- QString otherTextHtml() const;
-
- QString defaultText() const;
- void setDefaultText( const QString& value );
-
- bool highPriority() const;
- void setHighPriority( bool value );
-
- bool clearAfterDelay() const;
- void setClearAfterDelay( bool value );
-
- bool immediateResponse() const;
- void setImmediateResponse( bool value );
-
- bool ucs2Input() const;
- void setUcs2Input( bool value );
-
- bool packedInput() const;
- void setPackedInput( bool value );
-
- bool wantDigits() const;
- void setWantDigits( bool value );
-
- bool wantYesNo() const;
- void setWantYesNo( bool value );
-
- uint minimumLength() const;
- void setMinimumLength( uint value );
-
- uint maximumLength() const;
- void setMaximumLength( uint value );
-
- bool echo() const;
- void setEcho( bool value );
-
- QSimCommand::Disposition disposition() const;
- void setDisposition( QSimCommand::Disposition value );
-
- bool withRedial() const;
- void setWithRedial( bool value );
-
- QString number() const;
- void setNumber( const QString& value );
-
- QString subAddress() const;
- void setSubAddress( const QString& value );
-
- QSimCommand::CallClass callClass() const;
- void setCallClass( QSimCommand::CallClass value );
-
- QSimCommand::Tone tone() const;
- void setTone( QSimCommand::Tone value );
-
- uint toneTime() const;
- void setToneTime( uint value );
-
- uint duration() const;
- void setDuration( uint value );
-
- bool softKeysPreferred() const;
- void setSoftKeysPreferred( bool value );
-
- QSimCommand::MenuPresentation menuPresentation() const;
- void setMenuPresentation( QSimCommand::MenuPresentation value );
-
- QString title() const;
- void setTitle( const QString& value );
-
- QByteArray titleAttribute() const;
- void setTitleAttribute( const QByteArray& value );
-
- QString titleHtml() const;
-
- uint defaultItem() const;
- void setDefaultItem( uint value );
-
- QList<QSimMenuItem> menuItems() const;
- void setMenuItems( const QList<QSimMenuItem>& value );
-
- QSimCommand::RefreshType refreshType() const;
- void setRefreshType( QSimCommand::RefreshType value );
-
- QSimCommand::Event events() const;
- void setEvents( QSimCommand::Event value );
-
- QSimCommand::BrowserLaunchMode browserLaunchMode() const;
- void setBrowserLaunchMode( QSimCommand::BrowserLaunchMode value );
-
- QString url() const;
- void setUrl( const QString& value );
-
- uint iconId() const;
- void setIconId( uint value );
-
- bool iconSelfExplanatory() const;
- void setIconSelfExplanatory( bool value );
-
- uint otherIconId() const;
- void setOtherIconId( uint value );
-
- bool otherIconSelfExplanatory() const;
- void setOtherIconSelfExplanatory( bool value );
-
- bool smsPacking() const;
- void setSmsPacking( bool value );
-
- int qualifier() const;
- void setQualifier( int value );
-
- QByteArray extensionData() const;
- void setExtensionData( QByteArray value );
-
- QByteArray extensionField( int tag ) const;
- void addExtensionField( int tag, const QByteArray& value );
-
- enum ToPduOptions
- {
- NoPduOptions = 0x00,
- NoBerWrapper = 0x01,
- PackedStrings = 0x02,
- UCS2Strings = 0x04,
- EncodeEmptyStrings = 0x08
- };
-
- static QSimCommand fromPdu( const QByteArray& pdu );
- QByteArray toPdu( QSimCommand::ToPduOptions options = NoPduOptions ) const;
-
- QSimCommand& operator=( const QSimCommand & );
-
-private:
- QSimCommandPrivate *d;
-
- QSimCommandPrivate *dwrite();
-};
-
-#endif
diff --git a/src/qsimcontrolevent.h b/src/qsimcontrolevent.h
deleted file mode 100644
index bab4545..0000000
--- a/src/qsimcontrolevent.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-#ifndef QSIMCONTROLEVENT_H
-#define QSIMCONTROLEVENT_H
-
-#include <QString>
-
-class QSimControlEventPrivate;
-
-class QSimControlEvent
-{
-public:
- QSimControlEvent();
- QSimControlEvent( const QSimControlEvent& value );
- ~QSimControlEvent();
-
- enum Type
- {
- Call = 0,
- Sms = 1
- };
-
- enum Result
- {
- Allowed = 0,
- NotAllowed = 1,
- AllowedWithModifications = 2
- };
-
- QSimControlEvent::Type type() const;
- void setType( QSimControlEvent::Type value );
-
- QSimControlEvent::Result result() const;
- void setResult( QSimControlEvent::Result value );
-
- QString text() const;
- void setText( const QString& value );
-
- QByteArray extensionData() const;
- void setExtensionData( QByteArray value );
-
- QByteArray extensionField( int tag ) const;
- void addExtensionField( int tag, const QByteArray& value );
-
- static QSimControlEvent fromPdu( QSimControlEvent::Type type, const QByteArray& pdu );
- QByteArray toPdu() const;
-
- QSimControlEvent& operator=( const QSimControlEvent & );
-
-private:
- QSimControlEventPrivate *d;
-};
-
-#endif
diff --git a/src/qsimenvelope.h b/src/qsimenvelope.h
deleted file mode 100644
index 0bd3fe5..0000000
--- a/src/qsimenvelope.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-#ifndef QSIMENVELOPE_H
-#define QSIMENVELOPE_H
-
-#include <qsimcommand.h>
-
-class QSimEnvelopePrivate;
-
-class QSimEnvelope
-{
-public:
- QSimEnvelope();
- QSimEnvelope( const QSimEnvelope& value );
- ~QSimEnvelope();
-
- enum Type
- {
- NoEnvelope = -1,
- SMSPPDownload = 0xD1,
- CellBroadcastDownload = 0xD2,
- MenuSelection = 0xD3,
- CallControl = 0xD4,
- MOSMSControl = 0xD5,
- EventDownload = 0xD6,
- TimerExpiration = 0xD7
- };
-
- enum Event
- {
- NoEvent = -1,
- MTCall = 0,
- CallConnected = 1,
- CallDisconnected = 2,
- LocationStatus = 3,
- UserActivity = 4,
- IdleScreenAvailable = 5,
- CardReaderStatus = 6,
- LanguageSelection = 7,
- BrowserTermination = 8,
- DataAvailable = 9,
- ChannelStatus = 10
- };
-
- QSimEnvelope::Type type() const;
- void setType( QSimEnvelope::Type value );
-
- QSimCommand::Device sourceDevice() const;
- void setSourceDevice( QSimCommand::Device value );
-
- QSimCommand::Device destinationDevice() const;
- void setDestinationDevice( QSimCommand::Device value );
-
- uint menuItem() const;
- void setMenuItem( uint value );
-
- bool requestHelp() const;
- void setRequestHelp( bool value );
-
- QSimEnvelope::Event event() const;
- void setEvent( QSimEnvelope::Event value );
-
- QByteArray extensionData() const;
- void setExtensionData( QByteArray value );
-
- QByteArray extensionField( int tag ) const;
- void addExtensionField( int tag, const QByteArray& value );
-
- static QSimEnvelope fromPdu( const QByteArray& pdu );
- QByteArray toPdu() const;
-
- QSimEnvelope& operator=( const QSimEnvelope & );
-
-private:
- QSimEnvelopePrivate *d;
-};
-
-#endif
diff --git a/src/qsimterminalresponse.h b/src/qsimterminalresponse.h
deleted file mode 100644
index 86a4bf0..0000000
--- a/src/qsimterminalresponse.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-#ifndef QSIMTERMINALRESPONSE_H
-#define QSIMTERMINALRESPONSE_H
-
-#include <qsimcommand.h>
-
-class QSimTerminalResponsePrivate;
-
-class QSimTerminalResponse
-{
-public:
- QSimTerminalResponse();
- QSimTerminalResponse( const QSimTerminalResponse& value );
- ~QSimTerminalResponse();
-
- enum Result
- {
- Success = 0x00,
- PartialComprehension = 0x01,
- MissingInformation = 0x02,
- RefreshPerformed = 0x03,
- IconNotDisplayed = 0x04,
- ModifiedCallControl = 0x05,
- LimitedService = 0x06,
- WithModification = 0x07,
- SessionTerminated = 0x10,
- BackwardMove = 0x11,
- NoResponseFromUser = 0x12,
- HelpInformationRequested = 0x13,
- UssdOrSsTerminatedByUser = 0x14,
-
- MEUnableToProcess = 0x20,
- NetworkUnableToProcess = 0x21,
- UserDidNotAccept = 0x22,
- UserClearedDownCall = 0x23,
- ActionInContradictionWithTimer = 0x24,
- TemporaryCallControlProblem = 0x25,
- LaunchBrowserError = 0x26,
-
- BeyondMECapabilities = 0x30,
- TypeNotUnderstood = 0x31,
- DataNotUnderstood = 0x32,
- NumberNotUnderstood = 0x33,
- SsReturnError = 0x34,
- SmsRpError = 0x35,
- RequiredValuesMissing = 0x36,
- UssdReturnError = 0x37,
- MultipleCardError = 0x38,
- PermanentCallControlProblem = 0x39,
- BearerIndependentProtocolProblem = 0x3A
- };
-
- enum Cause
- {
- // Common causes.
- NoSpecificCause = 0x00,
-
- // MEUnableToProcess causes.
- ScreenIsBusy = 0x01,
- BusyOnCall = 0x02,
- BusyOnSsTransaction = 0x03,
- NoService = 0x04,
- AccessControlClassBar = 0x05,
- RadioResourceNotGranted = 0x06,
- NotInSpeechCall = 0x07,
- BusyOnUssdTransaction = 0x08,
- BusyOnDtmf = 0x09,
-
- // PermanentCallControlProblem causes.
- ActionNotAllowed = 0x01,
- TypeOfRequestHasChanged = 0x02,
-
- // MultipleCardError causes.
- CardReaderRemovedOrNotPresent = 0x01,
- CardRemovedOrNotPresent = 0x02,
- CardReaderBusy = 0x03,
- CardPoweredOff = 0x04,
- CAPDUFormatError = 0x05,
- MuteCard = 0x06,
- TransmissionError = 0x07,
- ProtocolNotSupported = 0x08,
- SpecifiedReaderNotValid = 0x09,
-
- // LaunchBrowserError causes.
- BearerUnavailable = 0x01,
- BrowserUnavailable = 0x02,
- UnableToReadProvisioningData = 0x03,
-
- // BearerIndependentProtocolProblem causes.
- NoChannelAvailable = 0x01,
- ChannelClosed = 0x02,
- ChannelIdentifierNotValid = 0x03,
- RequestedBufferSizeNotAvailable = 0x04,
- SecurityError = 0x05,
- RequestedTransportNotAvailable = 0x06
- };
-
- QSimCommand command() const;
- void setCommand( const QSimCommand& value );
-
- QByteArray commandPdu() const;
- void setCommandPdu( const QByteArray& value );
-
- QSimCommand::Device sourceDevice() const;
- void setSourceDevice( QSimCommand::Device value );
-
- QSimCommand::Device destinationDevice() const;
- void setDestinationDevice( QSimCommand::Device value );
-
- QSimTerminalResponse::Result result() const;
- void setResult( QSimTerminalResponse::Result value );
-
- QSimTerminalResponse::Cause cause() const;
- void setCause( QSimTerminalResponse::Cause value );
-
- QByteArray causeData() const;
- void setCauseData( const QByteArray& value );
-
- QString text() const;
- void setText( const QString& value );
-
- uint duration() const;
- void setDuration( uint value );
-
- uint menuItem() const;
- void setMenuItem( uint value );
-
- int dataCodingScheme() const;
- void setDataCodingScheme( int value );
-
- QByteArray extensionData() const;
- void setExtensionData( QByteArray value );
-
- QByteArray extensionField( int tag ) const;
- void addExtensionField( int tag, const QByteArray& value );
-
- static QSimTerminalResponse fromPdu( const QByteArray& pdu );
- QByteArray toPdu() const;
-
- QSimTerminalResponse& operator=( const QSimTerminalResponse & );
-
-private:
- QSimTerminalResponsePrivate *d;
-};
-
-#endif
diff --git a/src/qsmsmessage.h b/src/qsmsmessage.h
deleted file mode 100644
index 6deb962..0000000
--- a/src/qsmsmessage.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-
-#ifndef QSMSMESSAGE_H
-#define QSMSMESSAGE_H
-
-#include <qstring.h>
-#include <qdatetime.h>
-#include <qdatastream.h>
-#include <qlist.h>
-#include <quuid.h>
-
-class QSMSMessagePartPrivate;
-class QSMSMessagePrivate;
-class QTextCodec;
-
-
-class QSMSMessagePart
-{
-public:
- QSMSMessagePart();
- explicit QSMSMessagePart( const QString& text );
- QSMSMessagePart( const QString& mimeType, const QByteArray& data );
- QSMSMessagePart( const QString& mimeType, const QByteArray& data, uint position );
- QSMSMessagePart( const QSMSMessagePart& part );
- ~QSMSMessagePart();
-
- QSMSMessagePart& operator=( const QSMSMessagePart& part );
-
- bool isText() const;
- QString text() const;
- QString mimeType() const;
- const QByteArray& data() const;
- uint position() const;
-
-private:
- QSMSMessagePartPrivate *d;
-};
-
-enum QSMSDataCodingScheme {
- QSMS_Compressed = 0x0020,
- QSMS_MessageClass = 0x0010,
- QSMS_DefaultAlphabet = 0x0000,
- QSMS_8BitAlphabet = 0x0004,
- QSMS_UCS2Alphabet = 0x0008,
- QSMS_ReservedAlphabet= 0x000C
-};
-
-class QSMSMessage
-{
- friend class QSMSSubmitMessage;
- friend class QSMSDeliverMessage;
-public:
- QSMSMessage();
- QSMSMessage(const QSMSMessage &);
- ~QSMSMessage();
-
- QSMSMessage& operator=(const QSMSMessage &);
-
- void setText(const QString &);
- QString text() const;
-
- void setTextCodec(QTextCodec *codec);
- QTextCodec *textCodec() const;
-
- void setForceGsm(bool force);
- bool forceGsm() const;
-
- void setBestScheme(QSMSDataCodingScheme);
- QSMSDataCodingScheme bestScheme() const;
-
- void setRecipient(const QString &);
- QString recipient() const;
-
- void setSender(const QString &);
- QString sender() const;
-
- void setServiceCenter(const QString &);
- QString serviceCenter() const;
-
- void setReplyRequest(bool on );
- bool replyRequest() const;
-
- void setStatusReportRequested(bool on );
- bool statusReportRequested() const;
-
- void setValidityPeriod(uint minutes);
- uint validityPeriod() const;
-
- void setGsmValidityPeriod(uint value);
- uint gsmValidityPeriod() const;
-
- void setTimestamp(const QDateTime &);
- QDateTime timestamp() const;
-
- void setHeaders(const QByteArray& value);
- const QByteArray& headers() const;
-
- void clearParts();
- void addPart( const QSMSMessagePart& part );
- void addParts( const QList<QSMSMessagePart>& parts );
- QList<QSMSMessagePart> parts() const;
-
- enum MessageType {
- Normal, CellBroadCast, StatusReport
- };
-
- MessageType messageType() const;
-
- void computeSize( uint& numMessages, uint& spaceLeftInLast ) const;
-
- int destinationPort() const;
- void setDestinationPort(int value);
-
- int sourcePort() const;
- void setSourcePort(int value);
-
- QByteArray applicationData() const;
- void setApplicationData(const QByteArray& value);
-
- void setDataCodingScheme(int);
- int dataCodingScheme() const;
-
- void setMessageClass(int);
- int messageClass() const;
-
- void setProtocol(int);
- int protocol() const;
-
- bool shouldSplit() const;
-
- QList<QSMSMessage> split() const;
-
- QByteArray toPdu() const;
- static QSMSMessage fromPdu( const QByteArray& pdu );
- static int pduAddressLength( const QByteArray& pdu );
- static void appendAddress( QByteArray &buffer, const QString &strin, bool SCAddress );
-
-protected:
- void setMessageType(MessageType);
-
-private:
- mutable QSMSMessagePrivate *d;
-
- QSMSMessagePrivate *dwrite();
-
- int findPart( const QString& mimeType ) const;
- void removeParts( const QString& mimeType );
- void setFragmentHeader( uint refNum, uint part, uint numParts,
- QSMSDataCodingScheme scheme );
- void unpackHeaderParts();
-};
-
-#endif
diff --git a/src/qsmsmessage_p.h b/src/qsmsmessage_p.h
deleted file mode 100644
index f26d066..0000000
--- a/src/qsmsmessage_p.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-
-#ifndef QSMSMESSAGE_P_H
-#define QSMSMESSAGE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt Extended API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <qsmsmessage.h>
-#include <qcbsmessage.h>
-
-// Values are their bit reprensentation (defined in GSM-03.40 Section 9)
-// bits 6 5 4 ( shl 4 )
-enum SMSAddressType {
- SMS_Address_Unknown = 0,
- SMS_Address_International = 1,
- SMS_Address_National = 2,
- SMS_Address_NetworkSpecific = 3,
- SMS_Address_SubscriberNmb = 4,
- SMS_Address_AlphaNumeric = 5,
- SMS_Address_Abbreviated = 6,
- SMS_Address_Reserved = 7
-};
-
-// Values are their bit reprensentation (defined in GSM-03.40 Section 9)
-// bits 3 2 1 0 ( shl 0 )
-enum SMSNumbering {
- SMS_NumberId_Unknown = 0,
- SMS_Phone = 1
- // .. 6 more defined though.
-};
-
-// TP-MTI (2 bits)
-enum SMSMessageType {
- SMS_Deliver = 0,
- SMS_DeliverReport = 0,
- SMS_StatusReport = 2,
- SMS_Command = 2,
- SMS_Submit = 1,
- SMS_SubmitReport = 1,
- SMS_Reserved = 3
-};
-
-// TP_VPF (2 bits);
-enum SMSValidityFormat {
- SMS_VF_NoPresent = 0,
- SMS_VF_Relative = 2,
- SMS_VF_Enhanced = 1,
- SMS_VF_Absolute = 3
-};
-
-// User data header kinds from GSM 03.40 and GSM 23.040.
-enum SMSHeaderKind {
- SMS_HK_Concat_8Bit = 0x00,
- SMS_HK_Special_Msg_Indic = 0x01,
- SMS_HK_AppPort_8Bit = 0x04,
- SMS_HK_AppPort_16Bit = 0x05,
- SMS_HK_Control_Parameters = 0x06,
- SMS_HK_UDH_Source_Indic = 0x07,
- SMS_HK_Concat_16Bit = 0x08,
- SMS_HK_WCMP = 0x09,
- SMS_HK_Text_Formatting = 0x0A,
- SMS_HK_Predefined_Sound = 0x0B,
- SMS_HK_User_Defined_Sound = 0x0C,
- SMS_HK_Predefined_Animation = 0x0D,
- SMS_HK_Large_Animation = 0x0E,
- SMS_HK_Small_Animation = 0x0F,
- SMS_HK_Large_Picture = 0x10,
- SMS_HK_Small_Picture = 0x11,
- SMS_HK_Variable_Picture = 0x12,
- SMS_HK_User_Prompt_Indic = 0x13,
- SMS_HK_Extended_Object = 0x14,
- SMS_HK_Reused_Extended_Object = 0x15,
- SMS_HK_Compression_Control = 0x16,
- SMS_HK_Object_Dist_Indic = 0x17,
- SMS_HK_Standard_WVG_Object = 0x18,
- SMS_HK_Char_Size_WVG_Object = 0x19,
- SMS_HK_Data_Request_Command = 0x1A,
- SMS_HK_RFC_822_Header = 0x20,
- SMS_HK_Hyperlink_Format_Element = 0x21,
- SMS_HK_Reply_Address_Element = 0x22
-};
-
-class QPDUMessage
-{
-public:
- QPDUMessage();
- explicit QPDUMessage(const QByteArray &);
- ~QPDUMessage();
- QPDUMessage(const QPDUMessage &);
-
- QByteArray toByteArray() const { return mBuffer; }
-
- static void setBit(int b, bool on);
- static void setBits(int offset, int len, int val);
- void commitBits();
- static void commitBits(QByteArray& buffer);
- void appendOctet(uchar c) { mBuffer += (char)c; }
-
- bool bit(int b);
- unsigned char bits(int offset, int len);
- unsigned char getOctet();
- unsigned char peekOctet() const;
- void skipOctet();
- void abort() { mPosn = mBuffer.size(); }
-
- QByteArray getOctets( uint len );
-
- void setAddress(const QString &, bool SCAddress);
- QString address(bool SCAddress);
-
- uint addressLength() const;
-
- void setTimeStamp(const QDateTime &);
- QDateTime timeStamp();
-
- void setUserData(const QString &txt, QSMSDataCodingScheme scheme, QTextCodec *codec, const QByteArray& headers, bool implicitLength = false);
- QString userData(QSMSDataCodingScheme scheme, QTextCodec *codec, QByteArray *& headers, bool hasHeaders, bool implicitLength = false);
-
- SMSMessageType messageType();
-
- void reset() { mPosn = 0; }
-
- bool needOctets( uint num ) const
- { return ((uint)(mBuffer.size() - mPosn) >= num); }
-
- static void appendAddress( QByteArray &buffer, const QString &strin, bool SCAddress );
-
-protected:
- QByteArray mBuffer;
- static int mPosn;
- static char mBits;
-};
-
-
-class QSMSSubmitMessage: public QPDUMessage
-{
-public:
- explicit QSMSSubmitMessage(const QSMSMessage &m, bool isDeliver=false);
-};
-
-class QSMSDeliverMessage: public QPDUMessage
-{
-public:
- explicit QSMSDeliverMessage(const QByteArray &pdu);
-
- QSMSMessage unpack(QTextCodec *codec=0);
-};
-
-class QCBSDeliverMessage: public QPDUMessage
-{
-public:
- QCBSDeliverMessage();
- explicit QCBSDeliverMessage(const QByteArray &pdu);
-
- QCBSMessage unpack(QTextCodec *codec=0);
- void pack(const QCBSMessage &m, QSMSDataCodingScheme scheme);
-};
-
-#endif
diff --git a/src/qsmsmessagelist.h b/src/qsmsmessagelist.h
deleted file mode 100644
index 8c47fc4..0000000
--- a/src/qsmsmessagelist.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-
-#ifndef QSMSMESSAGELIST_H
-#define QSMSMESSAGELIST_H
-
-#include <QList>
-#include <QByteArray>
-
-class QSMSMessageList
-{
-public:
- enum SMSStatus{
- REC_UNREAD =0,
- REC_READ =1,
- STO_UNSENT =2,
- STO_SENT =3
- };
-
- QSMSMessageList();
- ~QSMSMessageList();
-
- void appendSMS( const QByteArray &, int len );
- void deleteSMS( int ); //note SMS's are not actually physically deleted. A flag is set
-
- int count() const; //returns the total number, even those that are 'deleted'
-
- SMSStatus getStatus( int ) const;
- void setStatus( const SMSStatus &, int );
-
- bool getDeletedFlag( int ) const;
- void setDeletedFlag( bool, int );
- int getLength( int ) const;
-
- QByteArray & readSMS( int );//returns and sets the status of an SMS
- QByteArray & operator[]( int );//only returns an SMS, does not set status
-
-private:
- QList<QByteArray> SMSList;
- QList<SMSStatus> statusList;
- QList<bool> deletedFlagList;
- QList<int> lengthList;
-};
-
-#endif
diff --git a/src/qwsppdu.h b/src/qwsppdu.h
deleted file mode 100644
index 91b3880..0000000
--- a/src/qwsppdu.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-
-#ifndef QWSPPDU_H
-#define QWSPPDU_H
-
-#include <qstring.h>
-#include <qobject.h>
-#include <qdatetime.h>
-
-class QIODevice;
-
-class QWspField
-{
-public:
- QWspField();
- QWspField( const QWspField& field );
- ~QWspField();
-
- QWspField& operator=( const QWspField& field );
-
- QString name;
- QString value;
-};
-
-class QWspDateTime
-{
-public:
- static QDateTime parseDate(QString in);
- static QString dateString(QDateTime d);
- static QDateTime fromGmtTime_t(quint32);
- static quint32 toTime_t(const QDateTime &);
- static quint32 toGmtTime_t(const QDateTime &);
-};
-
-class QWspPduDecoder;
-class QWspPduEncoder;
-
-class QWspHeaderCodec
-{
-public:
- virtual ~QWspHeaderCodec();
- virtual QWspField decode(QWspPduDecoder &) = 0;
- virtual bool encode(QWspPduEncoder &, const QWspField &) = 0;
- virtual quint8 codePage() const = 0;
-};
-
-class QWspPart
-{
-public:
- QWspPart();
- QWspPart( const QWspPart& part );
- ~QWspPart();
-
- QWspPart& operator=( const QWspPart& part );
-
- const QList<QWspField> &headers() const { return hdr; }
- const QWspField *header(const QString &name) const;
- void addHeader(const QWspField &);
- void addHeader(const QString &name, const QString &value);
-
- const QByteArray &data() const { return ba; }
- void setData(const char *d, int l);
- void readData(QIODevice *d, int l);
- void writeData(QIODevice *d) const;
-
-private:
- QList<QWspField> hdr;
- QByteArray ba;
-};
-
-class QWspMultipart
-{
-public:
- QWspMultipart();
- QWspMultipart( const QWspMultipart& mpart );
- ~QWspMultipart();
-
- QWspMultipart& operator=( const QWspMultipart& mpart );
-
- int count() const { return parts.count(); }
- void addPart(const QWspPart &);
- const QWspPart &part(int idx) const { return parts[idx]; }
-
-private:
- QList<QWspPart> parts;
-};
-
-class QWspPush : public QWspPart
-{
-public:
- QWspPush();
- QWspPush( const QWspPush& push );
- ~QWspPush();
-
- QWspPush& operator=( const QWspPush& push );
-
- int identifier() const { return ident; }
- int pduType() const { return pdu; }
-
- void setIdentifier( int value ) { ident = value; }
- void setPduType( int value ) { pdu = value; }
-
- static QString quickContentType( const QByteArray& data );
-
-private:
- int ident;
- int pdu;
-};
-
-class QWspPduDecoder : public QObject
-{
- Q_OBJECT
-public:
- explicit QWspPduDecoder(QIODevice *);
- ~QWspPduDecoder();
-
- quint8 peekOctet();
- quint8 decodeOctet();
- quint8 decodeUInt8();
- quint16 decodeUInt16();
- quint32 decodeUInt32();
- quint32 decodeUIntVar();
- quint8 decodeShortInteger();
- quint32 decodeLongInteger();
- quint32 decodeInteger();
- quint32 decodeLength();
- QString decodeTextString();
- QString decodeEncodedString();
- QString decodeTokenText();
- QString decodeVersion();
- QString decodeContentType();
- QWspField decodeField();
- QString decodeParameter();
- QWspMultipart decodeMultipart();
- void decodeContentTypeAndHeaders(QWspPart& part, quint32 hdrLen);
- QWspPart decodePart();
- QWspPush decodePush();
-
- void setHeaderCodec(QWspHeaderCodec *c) {
- if (c)
- headerCodec = c;
- else
- headerCodec = defaultCodec;
- }
-
- enum Status { OK, Unhandled, Eof, Fatal };
- Status status() const { return stat; }
- void setStatus(Status s) { stat = s; }
-
- QIODevice *device() { return dev; }
-
-signals:
- void selectCodePage(quint8);
-
-private:
- QString decodeCharset( const QString &encoded, quint32 mib);
- QString decodeTextBlock(int length);
-private:
- QIODevice *dev;
- QWspHeaderCodec *headerCodec;
- QWspHeaderCodec *defaultCodec;
- Status stat;
-};
-
-class QWspPduEncoder : public QObject
-{
- Q_OBJECT
-public:
- explicit QWspPduEncoder(QIODevice *);
- ~QWspPduEncoder();
-
- void encodeOctet(quint8);
- void encodeUInt8(quint8);
- void encodeUInt16(quint16);
- void encodeUInt32(quint32);
- void encodeUIntVar(quint32);
- void encodeShortInteger(quint8);
- void encodeLongInteger(quint32);
- void encodeInteger(quint32);
- void encodeLength(quint32);
- void encodeTextString(const QString &str);
- void encodeEncodedString(const QString &str);
- void encodeVersion(const QString &);
- void encodeTokenText(const QString &str);
- void encodeContentType(const QString &str);
- void encodeField(const QWspField &);
- void encodeParameter(const QString &);
- void encodeMultipart(const QWspMultipart &);
- void encodePart(const QWspPart &);
- void encodePush(const QWspPush &);
-
- int longIntegerLength(quint32 d);
- int integerLength(quint32 d);
-
- void setHeaderCodec(QWspHeaderCodec *c) {
- if (c)
- headerCodec = c;
- else
- headerCodec = defaultCodec;
- }
-
-// void setCodePage(quint8);
-
-private:
- QString unquoteString(const QString &str);
-
-private:
- QIODevice *dev;
- QWspHeaderCodec *headerCodec;
- QWspHeaderCodec *defaultCodec;
-};
-
-#endif
diff --git a/src/server.h b/src/server.h
deleted file mode 100644
index 5915cc1..0000000
--- a/src/server.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-
-#ifndef SERVER_H
-#define SERVER_H
-
-#include <qtcpserver.h>
-#include <qtcpsocket.h>
-#include <qpointer.h>
-
-#include "phonesim.h"
-
-class PhoneTestServer;
-class HardwareManipulatorFactory;
-
-class PhoneSimServer : public QTcpServer
-{
-public:
- PhoneSimServer(const QString &, quint16 port, QObject *parent = 0);
- ~PhoneSimServer();
-
- void setHardwareManipulator(HardwareManipulatorFactory *f);
-
- SimRules *rules() const { return currentRules; }
-
-protected:
- void incomingConnection(int s);
-
-private:
- QString filename;
-
- HardwareManipulatorFactory *fact;
- QPointer<SimRules> currentRules;
-};
-
-#endif
diff --git a/src/simapplication.h b/src/simapplication.h
deleted file mode 100644
index 1cfcbe4..0000000
--- a/src/simapplication.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-
-#ifndef SIMAPPLICATION_H
-#define SIMAPPLICATION_H
-
-#include "phonesim.h"
-#include <qsimcommand.h>
-#include <qsimterminalresponse.h>
-#include <qsimenvelope.h>
-#include <qsimcontrolevent.h>
-
-class SimApplicationPrivate;
-
-class SimApplication : public QObject
-{
- Q_OBJECT
-public:
- SimApplication( SimRules *rules, QObject *parent = 0 );
- ~SimApplication();
-
- virtual bool envelope( const QSimEnvelope& env );
- virtual bool response( const QSimTerminalResponse& resp );
- virtual QByteArray fetch( bool clear = false );
-
- virtual const QString getName() = 0;
-
-public slots:
- virtual void start();
- virtual void abort();
-
-protected slots:
- void command( const QSimCommand& cmd,
- QObject *target, const char *slot,
- QSimCommand::ToPduOptions options
- = QSimCommand::NoPduOptions );
- void controlEvent( const QSimControlEvent& event );
-
- virtual void mainMenu() = 0;
- virtual void mainMenuSelection( int id );
- virtual void mainMenuHelpRequest( int id );
-
-private:
- SimApplicationPrivate *d;
-};
-
-class DemoSimApplication : public SimApplication
-{
- Q_OBJECT
-public:
- DemoSimApplication( SimRules *rules, QObject *parent = 0 );
- ~DemoSimApplication();
-
- const QString getName();
-
-protected slots:
- void mainMenu();
- void mainMenuSelection( int id );
- void sendSportsMenu();
- void sportsMenu( const QSimTerminalResponse& resp );
- void startSticksGame();
- void sticksGameShow();
- void sticksGameLoop( const QSimTerminalResponse& resp );
- void getInputLoop( const QSimTerminalResponse& resp );
- void sticksGamePlayAgain( const QSimTerminalResponse& resp );
- void sendToneMenu();
- void toneMenu( const QSimTerminalResponse& resp );
- void sendIconMenu();
- void iconMenu( const QSimTerminalResponse& resp );
- void sendIconSEMenu();
- void iconSEMenu( const QSimTerminalResponse& resp );
- void sendDisplayText();
- void displayTextResponse( const QSimTerminalResponse& resp );
- void sendBrowserMenu();
- void browserMenu( const QSimTerminalResponse& resp );
-
-private:
- int sticksLeft;
- bool immediateResponse;
-};
-
-#endif
diff --git a/src/simfilesystem.h b/src/simfilesystem.h
deleted file mode 100644
index 150416f..0000000
--- a/src/simfilesystem.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/****************************************************************************
-**
-** This file is part of the Qt Extended Opensource Package.
-**
-** Copyright (C) 2009 Trolltech ASA.
-**
-** Contact: Qt Extended Information (info@qtextended.org)
-**
-** This file may be used under the terms of the GNU General Public License
-** version 2.0 as published by the Free Software Foundation and appearing
-** in the file LICENSE.GPL included in the packaging of this file.
-**
-** Please review the following information to ensure GNU General Public
-** Licensing requirements will be met:
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html.
-**
-**
-****************************************************************************/
-
-#ifndef SIMFILESYSTEM_H
-#define SIMFILESYSTEM_H
-
-#include "phonesim.h"
-
-class SimFileItem;
-
-enum file_type {
- FILE_TYPE_TRANSPARENT = 0,
- FILE_TYPE_LINEAR_FIXED = 1,
- FILE_TYPE_CYCLIC = 3,
- FILE_TYPE_INVALID = 0xff
-};
-
-enum file_access {
- FILE_ACCESS_ALWAYS = 0,
- FILE_ACCESS_CHV1 = 1,
- FILE_ACCESS_CHV2 = 2,
- FILE_ACCESS_RESERVED = 3,
- FILE_ACCESS_ADM = 4,
- FILE_ACCESS_NEVER = 15,
-};
-
-enum file_op {
- FILE_OP_READ = 20,
- FILE_OP_UPDATE = 16,
- FILE_OP_INCREASE = 12,
- FILE_OP_REHABILITATE = 4,
- FILE_OP_INVALIDATE = 0,
-};
-
-class SimFileSystem : public QObject
-{
- Q_OBJECT
-public:
- SimFileSystem( SimRules *rules, SimXmlNode& e );
- ~SimFileSystem();
-
- // Execute an AT+CRSM command against the filesystem.
- void crsm( const QString& args );
-
- // Find an item with a specific id.
- SimFileItem *findItem( const QString& fileid ) const;
-
- // Find access conditions for an item with a specific id.
- int findItemAccess( const QString& _fileid ) const;
-
- // Find file type for an item with a specific id.
- enum file_type findItemFileType( const QString& _fileid ) const;
-
- // Find the parent of an item with a specific id even if the
- // item itself does not exist. The parameter should be fully qualified.
- SimFileItem *findItemParent( const QString& fileid ) const;
-
- // Find an item relative to the current item and update current item.
- SimFileItem *findItemRelative( const QString& fileid );
-
- // Resolve a file identifier to its full path from the root directory.
- QString resolveFileId( const QString& fileid ) const;
-
-private:
- SimRules *rules;
- SimFileItem *rootItem;
- SimFileItem *currentItem;
-};
-
-class SimFileItem : public QObject
-{
- Q_OBJECT
-public:
- SimFileItem( const QString& fileid, SimFileItem *parentDir,
- int access = 0, enum file_type type = FILE_TYPE_INVALID);
- ~SimFileItem();
-
- QString fileid() const { return _fileid; }
- SimFileItem *parentDir() const { return _parentDir; }
-
- QByteArray contents() const { return _contents; }
- void setContents( const QByteArray& value ) { _contents = value; }
-
- int recordSize() const { return _recordSize; }
- void setRecordSize( int value ) { _recordSize = value; }
-
- int access() const { return _access; }
- enum file_type type() const { return _type; }
-
- bool isDirectory() const { return _isDirectory; }
- void setIsDirectory( bool value ) { _isDirectory = value; }
-
- QList<SimFileItem *> children() const { return _children; }
-
- SimFileItem *findItem( const QString& fileid );
-
- bool checkAccess( enum file_op op, bool havepin ) const;
-
-private:
- QString _fileid;
- SimFileItem *_parentDir;
- QByteArray _contents;
- int _recordSize;
- bool _isDirectory;
- QList<SimFileItem *> _children;
- int _access;
- enum file_type _type;
-};
-
-#endif
diff --git a/xml/GSMSpecification.xml b/xml/GSMSpecification.xml
new file mode 100644
index 0000000..c20a4a0
--- /dev/null
+++ b/xml/GSMSpecification.xml
@@ -0,0 +1,4685 @@
+<gsm>
+<spec>
+ <command>AT+CGMI</command>
+ <profile>Request manufacturer identification </profile>
+ <description>Execution command causes the TA to return one or more lines of information text [manufacturer], determined by the MT manufacturer, which is intended to permit the user of the TA to identify the manufacturer of the MT to which it is connected to. Typically, the text will consist of a single line containing the name of the manufacturer, but manufacturers may choose to provide more information if desired. Refer subclause 9.2 for possible [err] values.
+Defined values
+[manufacturer]: the total number of characters, including line terminators, in the information text shall not exceed 2048 characters.
+Text shall not contain the sequence 0[CR] or OK[CR]
+</description>
+</spec>
+<spec>
+ <command>AT+CGMI=?</command>
+ <profile>Request manufacturer identification (Query all)</profile>
+ <description>Execution command causes the TA to return one or more lines of information text [manufacturer], determined by the MT manufacturer, which is intended to permit the user of the TA to identify the manufacturer of the MT to which it is connected to. Typically, the text will consist of a single line containing the name of the manufacturer, but manufacturers may choose to provide more information if desired. Refer subclause 9.2 for possible [err] values.
+Defined values
+[manufacturer]: the total number of characters, including line terminators, in the information text shall not exceed 2048 characters.
+Text shall not contain the sequence 0[CR] or OK[CR]
+</description>
+</spec>
+<spec>
+ <command>AT+CGMM</command>
+ <profile>Request model identification </profile>
+ <description>Execution command causes the TA to return one or more lines of information text [model], determined by the MT manufacturer, which is intended to permit the user of the TA to identify the specific model of the MT to which it is connected to. Typically, the text will consist of a single line containing the name of the product, but manufacturers may choose to provide more information if desired. Refer to subclause 9.2 for possible [err] values.
+Defined values
+[model]: the total number of characters, including line terminators, in the information text shall not exceed 2048 characters.
+Text shall not contain the sequence 0[CR] or OK[CR]
+</description>
+</spec>
+<spec>
+ <command>AT+CGMM=?</command>
+ <profile>Request model identification (Query all)</profile>
+ <description>Execution command causes the TA to return one or more lines of information text [model], determined by the MT manufacturer, which is intended to permit the user of the TA to identify the specific model of the MT to which it is connected to. Typically, the text will consist of a single line containing the name of the product, but manufacturers may choose to provide more information if desired. Refer to subclause 9.2 for possible [err] values.
+Defined values
+[model]: the total number of characters, including line terminators, in the information text shall not exceed 2048 characters.
+Text shall not contain the sequence 0[CR] or OK[CR]
+</description>
+</spec>
+<spec>
+ <command>AT+CGMR</command>
+ <profile>Request revision identification </profile>
+ <description>Execution command causes the TA to return one or more lines of information text [revision], determined by the MT manufacturer, which is intended to permit the user of the TA to identify the version, revision level or date, or other pertinent information of the MT to which it is connected to. Typically, the text will consist of a single line containing the version of the product, but manufacturers may choose to provide more information if desired. Refer subclause 9.2 for possible [err] values.
+Defined values
+[revision]: the total number of characters, including line terminators, in the information text shall not exceed 2048 characters.
+Text shall not contain the sequence 0[CR] or OK[CR]
+</description>
+</spec>
+<spec>
+ <command>AT+CGMR=?</command>
+ <profile>Request revision identification (Query all)</profile>
+ <description>Execution command causes the TA to return one or more lines of information text [revision], determined by the MT manufacturer, which is intended to permit the user of the TA to identify the version, revision level or date, or other pertinent information of the MT to which it is connected to. Typically, the text will consist of a single line containing the version of the product, but manufacturers may choose to provide more information if desired. Refer subclause 9.2 for possible [err] values.
+Defined values
+[revision]: the total number of characters, including line terminators, in the information text shall not exceed 2048 characters.
+Text shall not contain the sequence 0[CR] or OK[CR]
+</description>
+</spec>
+<spec>
+ <command>AT+CGSN</command>
+ <profile>Request product serial number identification </profile>
+ <description>Execution command causes the TA to return one or more lines of information text [sn], determined by the MT manufacturer, which is intended to permit the user of the TA to identify the individual MT to which it is connected to. Typically, the text will consist of a single line containing the IMEI (International Mobile station Equipment Identity; refer 3GPP TS 23.003 [7]) number of the MT, but manufacturers may choose to provide more information if desired. Refer subclause 9.2 for possible [err] values.
+Defined values
+[sn]: the total number of characters, including line terminators, in the information text shall not exceed 2048 characters.
+Text shall not contain the sequence 0[CR] or OK[CR]
+</description>
+</spec>
+<spec>
+ <command>AT+CGSN=?</command>
+ <profile>Request product serial number identification (Query all)</profile>
+ <description>Execution command causes the TA to return one or more lines of information text [sn], determined by the MT manufacturer, which is intended to permit the user of the TA to identify the individual MT to which it is connected to. Typically, the text will consist of a single line containing the IMEI (International Mobile station Equipment Identity; refer 3GPP TS 23.003 [7]) number of the MT, but manufacturers may choose to provide more information if desired. Refer subclause 9.2 for possible [err] values.
+Defined values
+[sn]: the total number of characters, including line terminators, in the information text shall not exceed 2048 characters.
+Text shall not contain the sequence 0[CR] or OK[CR]
+</description>
+</spec>
+<spec>
+ <command>AT+CSCS=</command>
+ <profile>Select TE character set (Assign)</profile>
+ <description>Set command informs TA which character set [chset] is used by the TE. TA is then able to convert character strings correctly between TE and MT character sets.
+When TA‑TE interface is set to 8‑bit operation and used TE alphabet is 7‑bit, the highest bit shall be set to zero.
+NOTE 1: It is manufacturer specific how the internal alphabet of MT is converted to/from the TE alphabet.
+Read command shows current setting and test command displays conversion schemes implemented in the TA.
+Defined values
+[chset] (conversion schemes not listed here can be defined by manufacturers):
+'GSM' GSM 7 bit default alphabet (3GPP TS 23.038 [25]); this setting causes easily software flow control (XON/XOFF) problems.
+'HEX' Character strings consist only of hexadecimal numbers from 00 to FF; e.g. '032FE6' equals three 8-bit characters with decimal values 3, 47 and 230; no conversions to the original MT character set shall be done.
+NOTE 2: If MT is using GSM 7 bit default alphabet, its characters shall be padded with 8th bit (zero) before converting them to hexadecimal numbers (i.e. no SMS‑style packing of 7‑bit alphabet).
+'IRA' International reference alphabet (ITU‑T T.50 [13]).
+'PCCPxxx' PC character set Code Page xxx
+'PCDN' PC Danish/Norwegian character set
+'UCS2' 16-bit universal multiple-octet coded character set (ISO/IEC10646 [32]); UCS2 character strings are converted to hexadecimal numbers from 0000 to FFFF; e.g. '004100620063' equals three 16-bit characters with decimal values 65, 98 and 99.
+'UTF-8' Octet (8-bit) lossless encoding of UCS characters (RFC 3629 [69]); UTF-8 encodes each UCS character as a variable number of octets, where the number of octets depends on the integer value assigned to the UCS character. The input format shall be a stream of octets. It shall not be converted to hexadecimal numbers as in 'HEX' or 'UCS2'. This character set requires an 8-bit TA – TE interface.
+'8859-n' ISO 8859 Latin n (1‑6) character set
+'8859-C' ISO 8859 Latin/Cyrillic character set
+'8859-A' ISO 8859 Latin/Arabic character set
+'8859-G' ISO 8859 Latin/Greek character set
+'8859-H' ISO 8859 Latin/Hebrew character set
+</description>
+</spec>
+<spec>
+ <command>AT+CSCS?</command>
+ <profile>Select TE character set (Query)</profile>
+ <description>Set command informs TA which character set [chset] is used by the TE. TA is then able to convert character strings correctly between TE and MT character sets.
+When TA‑TE interface is set to 8‑bit operation and used TE alphabet is 7‑bit, the highest bit shall be set to zero.
+NOTE 1: It is manufacturer specific how the internal alphabet of MT is converted to/from the TE alphabet.
+Read command shows current setting and test command displays conversion schemes implemented in the TA.
+Defined values
+[chset] (conversion schemes not listed here can be defined by manufacturers):
+'GSM' GSM 7 bit default alphabet (3GPP TS 23.038 [25]); this setting causes easily software flow control (XON/XOFF) problems.
+'HEX' Character strings consist only of hexadecimal numbers from 00 to FF; e.g. '032FE6' equals three 8-bit characters with decimal values 3, 47 and 230; no conversions to the original MT character set shall be done.
+NOTE 2: If MT is using GSM 7 bit default alphabet, its characters shall be padded with 8th bit (zero) before converting them to hexadecimal numbers (i.e. no SMS‑style packing of 7‑bit alphabet).
+'IRA' International reference alphabet (ITU‑T T.50 [13]).
+'PCCPxxx' PC character set Code Page xxx
+'PCDN' PC Danish/Norwegian character set
+'UCS2' 16-bit universal multiple-octet coded character set (ISO/IEC10646 [32]); UCS2 character strings are converted to hexadecimal numbers from 0000 to FFFF; e.g. '004100620063' equals three 16-bit characters with decimal values 65, 98 and 99.
+'UTF-8' Octet (8-bit) lossless encoding of UCS characters (RFC 3629 [69]); UTF-8 encodes each UCS character as a variable number of octets, where the number of octets depends on the integer value assigned to the UCS character. The input format shall be a stream of octets. It shall not be converted to hexadecimal numbers as in 'HEX' or 'UCS2'. This character set requires an 8-bit TA – TE interface.
+'8859-n' ISO 8859 Latin n (1‑6) character set
+'8859-C' ISO 8859 Latin/Cyrillic character set
+'8859-A' ISO 8859 Latin/Arabic character set
+'8859-G' ISO 8859 Latin/Greek character set
+'8859-H' ISO 8859 Latin/Hebrew character set
+</description>
+</spec>
+<spec>
+ <command>AT+CSCS=?</command>
+ <profile>Select TE character set (Query all)</profile>
+ <description>Set command informs TA which character set [chset] is used by the TE. TA is then able to convert character strings correctly between TE and MT character sets.
+When TA‑TE interface is set to 8‑bit operation and used TE alphabet is 7‑bit, the highest bit shall be set to zero.
+NOTE 1: It is manufacturer specific how the internal alphabet of MT is converted to/from the TE alphabet.
+Read command shows current setting and test command displays conversion schemes implemented in the TA.
+Defined values
+[chset] (conversion schemes not listed here can be defined by manufacturers):
+'GSM' GSM 7 bit default alphabet (3GPP TS 23.038 [25]); this setting causes easily software flow control (XON/XOFF) problems.
+'HEX' Character strings consist only of hexadecimal numbers from 00 to FF; e.g. '032FE6' equals three 8-bit characters with decimal values 3, 47 and 230; no conversions to the original MT character set shall be done.
+NOTE 2: If MT is using GSM 7 bit default alphabet, its characters shall be padded with 8th bit (zero) before converting them to hexadecimal numbers (i.e. no SMS‑style packing of 7‑bit alphabet).
+'IRA' International reference alphabet (ITU‑T T.50 [13]).
+'PCCPxxx' PC character set Code Page xxx
+'PCDN' PC Danish/Norwegian character set
+'UCS2' 16-bit universal multiple-octet coded character set (ISO/IEC10646 [32]); UCS2 character strings are converted to hexadecimal numbers from 0000 to FFFF; e.g. '004100620063' equals three 16-bit characters with decimal values 65, 98 and 99.
+'UTF-8' Octet (8-bit) lossless encoding of UCS characters (RFC 3629 [69]); UTF-8 encodes each UCS character as a variable number of octets, where the number of octets depends on the integer value assigned to the UCS character. The input format shall be a stream of octets. It shall not be converted to hexadecimal numbers as in 'HEX' or 'UCS2'. This character set requires an 8-bit TA – TE interface.
+'8859-n' ISO 8859 Latin n (1‑6) character set
+'8859-C' ISO 8859 Latin/Cyrillic character set
+'8859-A' ISO 8859 Latin/Arabic character set
+'8859-G' ISO 8859 Latin/Greek character set
+'8859-H' ISO 8859 Latin/Hebrew character set
+</description>
+</spec>
+<spec>
+ <command>AT+CIMI</command>
+ <profile>Request international mobile subscriber identity </profile>
+ <description>Execution command causes the TA to return [IMSI], which is intended to permit the TE to identify the individual SIM card or active application in the UICC (GSM or USIM) which is attached to MT. Refer subclause 9.2 for possible [err] values.
+Defined values
+[IMSI]: International Mobile Subscriber Identity (string without double quotes)
+</description>
+</spec>
+<spec>
+ <command>AT+CIMI=?</command>
+ <profile>Request international mobile subscriber identity (Query all)</profile>
+ <description>Execution command causes the TA to return [IMSI], which is intended to permit the TE to identify the individual SIM card or active application in the UICC (GSM or USIM) which is attached to MT. Refer subclause 9.2 for possible [err] values.
+Defined values
+[IMSI]: International Mobile Subscriber Identity (string without double quotes)
+</description>
+</spec>
+<spec>
+ <command>AT+CMUX=</command>
+ <profile>Multiplexing mode (Assign)</profile>
+ <description>This command is used to enable/disable the 3GPP TS 27.010 [45] multiplexing protocol control channel. Refer to subclause 9.2 for possible [err] values. The AT command sets parameters for the Control Channel. If the parameters are left out, the default value is used.
+Read command returns the current mode and the settings.
+Test command returns the supported modes and parameters.
+It is recommended that the MT/TA/TE should autobaud to the +CMUX command up to and including an interface speed of 9600 bits/s.
+The OK or +CME ERROR: [err] response is returned at the speed of the +CMUX command prior to entering [mode].
+It is recommended that whenever the multiplexer control channel is released the MT/TA/TE should assume an interface rate of up to and including 9600 bits/s for auto bauding purposes irrespective of any previous higher speed having been selected.
+If a +CMUX command is issued whilst in any multiplexer mode then that +CMUX command shall be ignored and the MT/TA shall return an +CME ERROR: [err] response.
+Defined values
+[operation] (multiplexer Transparency Mechanism)
+0 Basic option
+1 Advanced option
+[subset]:
+ This parameter defines the way in which the multiplexer control channel is set up. A virtual channel may subsequently be set up differently but in the absence of any negotiation for the settings of a virtual channel, the virtual channel shall be set up according to the control channel [subset] setting.
+0 UIH frames used only
+1 UI frames used only
+2 I frames used only
+Default value: 0
+[port_speed] (transmission rate):
+1 9 600 bit/s
+2 19 200 bit/s
+3 38 400 bit/s
+4 57 600 bit/s
+5 115 200 bit/s
+6 230 400 bits/s
+[N1] (maximum frame size):
+1- 32768
+default Value : 31 (64 if Advanced option is used)
+[T1] (acknowledgement timer in units of ten milliseconds):
+1-255, where 10 is default (100 ms)
+[N2] (maximum number of re-transmissions):
+0-100, where 3 is default
+[T2] (response timer for the multiplexer control channel in units of ten milliseconds):
+2-255, where 30 is default (300 ms)
+NOTE: T2 must be longer than T1.
+[T3] (wake up response timer in seconds):
+1-255, where 10 is default
+[k] (window size, for Advanced operation with Error Recovery options):
+1-7, where 2 is default
+</description>
+</spec>
+<spec>
+ <command>AT+CMUX?</command>
+ <profile>Multiplexing mode (Query)</profile>
+ <description>This command is used to enable/disable the 3GPP TS 27.010 [45] multiplexing protocol control channel. Refer to subclause 9.2 for possible [err] values. The AT command sets parameters for the Control Channel. If the parameters are left out, the default value is used.
+Read command returns the current mode and the settings.
+Test command returns the supported modes and parameters.
+It is recommended that the MT/TA/TE should autobaud to the +CMUX command up to and including an interface speed of 9600 bits/s.
+The OK or +CME ERROR: [err] response is returned at the speed of the +CMUX command prior to entering [mode].
+It is recommended that whenever the multiplexer control channel is released the MT/TA/TE should assume an interface rate of up to and including 9600 bits/s for auto bauding purposes irrespective of any previous higher speed having been selected.
+If a +CMUX command is issued whilst in any multiplexer mode then that +CMUX command shall be ignored and the MT/TA shall return an +CME ERROR: [err] response.
+Defined values
+[operation] (multiplexer Transparency Mechanism)
+0 Basic option
+1 Advanced option
+[subset]:
+ This parameter defines the way in which the multiplexer control channel is set up. A virtual channel may subsequently be set up differently but in the absence of any negotiation for the settings of a virtual channel, the virtual channel shall be set up according to the control channel [subset] setting.
+0 UIH frames used only
+1 UI frames used only
+2 I frames used only
+Default value: 0
+[port_speed] (transmission rate):
+1 9 600 bit/s
+2 19 200 bit/s
+3 38 400 bit/s
+4 57 600 bit/s
+5 115 200 bit/s
+6 230 400 bits/s
+[N1] (maximum frame size):
+1- 32768
+default Value : 31 (64 if Advanced option is used)
+[T1] (acknowledgement timer in units of ten milliseconds):
+1-255, where 10 is default (100 ms)
+[N2] (maximum number of re-transmissions):
+0-100, where 3 is default
+[T2] (response timer for the multiplexer control channel in units of ten milliseconds):
+2-255, where 30 is default (300 ms)
+NOTE: T2 must be longer than T1.
+[T3] (wake up response timer in seconds):
+1-255, where 10 is default
+[k] (window size, for Advanced operation with Error Recovery options):
+1-7, where 2 is default
+</description>
+</spec>
+<spec>
+ <command>AT+CMUX=?</command>
+ <profile>Multiplexing mode (Query all)</profile>
+ <description>This command is used to enable/disable the 3GPP TS 27.010 [45] multiplexing protocol control channel. Refer to subclause 9.2 for possible [err] values. The AT command sets parameters for the Control Channel. If the parameters are left out, the default value is used.
+Read command returns the current mode and the settings.
+Test command returns the supported modes and parameters.
+It is recommended that the MT/TA/TE should autobaud to the +CMUX command up to and including an interface speed of 9600 bits/s.
+The OK or +CME ERROR: [err] response is returned at the speed of the +CMUX command prior to entering [mode].
+It is recommended that whenever the multiplexer control channel is released the MT/TA/TE should assume an interface rate of up to and including 9600 bits/s for auto bauding purposes irrespective of any previous higher speed having been selected.
+If a +CMUX command is issued whilst in any multiplexer mode then that +CMUX command shall be ignored and the MT/TA shall return an +CME ERROR: [err] response.
+Defined values
+[operation] (multiplexer Transparency Mechanism)
+0 Basic option
+1 Advanced option
+[subset]:
+ This parameter defines the way in which the multiplexer control channel is set up. A virtual channel may subsequently be set up differently but in the absence of any negotiation for the settings of a virtual channel, the virtual channel shall be set up according to the control channel [subset] setting.
+0 UIH frames used only
+1 UI frames used only
+2 I frames used only
+Default value: 0
+[port_speed] (transmission rate):
+1 9 600 bit/s
+2 19 200 bit/s
+3 38 400 bit/s
+4 57 600 bit/s
+5 115 200 bit/s
+6 230 400 bits/s
+[N1] (maximum frame size):
+1- 32768
+default Value : 31 (64 if Advanced option is used)
+[T1] (acknowledgement timer in units of ten milliseconds):
+1-255, where 10 is default (100 ms)
+[N2] (maximum number of re-transmissions):
+0-100, where 3 is default
+[T2] (response timer for the multiplexer control channel in units of ten milliseconds):
+2-255, where 30 is default (300 ms)
+NOTE: T2 must be longer than T1.
+[T3] (wake up response timer in seconds):
+1-255, where 10 is default
+[k] (window size, for Advanced operation with Error Recovery options):
+1-7, where 2 is default
+</description>
+</spec>
+<spec>
+ <command>AT+CSTA=</command>
+ <profile>Select type of address (Assign)</profile>
+ <description>Set command selects the type of number for further dialling commands (D) according to GSM/UMTS specifications. Test command returns values supported a compound value.
+Defined values
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
+</description>
+</spec>
+<spec>
+ <command>AT+CSTA?</command>
+ <profile>Select type of address (Query)</profile>
+ <description>Set command selects the type of number for further dialling commands (D) according to GSM/UMTS specifications. Test command returns values supported a compound value.
+Defined values
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
+</description>
+</spec>
+<spec>
+ <command>AT+CSTA=?</command>
+ <profile>Select type of address (Query all)</profile>
+ <description>Set command selects the type of number for further dialling commands (D) according to GSM/UMTS specifications. Test command returns values supported a compound value.
+Defined values
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
+</description>
+</spec>
+<spec>
+ <command>AT+CMOD=</command>
+ <profile>Call mode (Assign)</profile>
+ <description>Set command selects the call mode of further dialling commands (D) or for next answering command (A). Mode can be either single or alternating (in the present document, terms 'alternating mode' and 'alternating call' refer to all GSM/UMTS bearer and teleservices that incorporate more than one basic service (voice, data, fax) within one call). When single mode is selected the call originating and hangup procedures are similar to procedures specified in ITU‑T Recommendations V.250 [14], T.31 [11] and T.32 [12]. In GSM/UMTS there can be voice followed by data (refer 3GPP TS 22.002 [1]), alternating voice/data (refer 3GPP TS 22.002 [1]) and alternating voice/fax calls (refer 3GPP TS 22.003 [2]). Refer next two subclauses for alternating call control methods.
+Test command returns values supported as a compound value.
+NOTE: +CMOD shall be set to zero after a successfully completed alternating mode call. It shall be set to zero also after a failed answering. The power‑up, factory (:F) and user resets (Z) shall also set the value to zero. This reduces the possibility that alternating mode calls are originated or answered accidentally.
+Defined values
+[mode]:
+0 single mode
+1 alternating voice/fax (teleservice 61)
+2 alternating voice/data (bearer service 61)
+3 voice followed by data (bearer service 81)
+also all other values below 128 are reserved by the present document
+</description>
+</spec>
+<spec>
+ <command>AT+CMOD?</command>
+ <profile>Call mode (Query)</profile>
+ <description>Set command selects the call mode of further dialling commands (D) or for next answering command (A). Mode can be either single or alternating (in the present document, terms 'alternating mode' and 'alternating call' refer to all GSM/UMTS bearer and teleservices that incorporate more than one basic service (voice, data, fax) within one call). When single mode is selected the call originating and hangup procedures are similar to procedures specified in ITU‑T Recommendations V.250 [14], T.31 [11] and T.32 [12]. In GSM/UMTS there can be voice followed by data (refer 3GPP TS 22.002 [1]), alternating voice/data (refer 3GPP TS 22.002 [1]) and alternating voice/fax calls (refer 3GPP TS 22.003 [2]). Refer next two subclauses for alternating call control methods.
+Test command returns values supported as a compound value.
+NOTE: +CMOD shall be set to zero after a successfully completed alternating mode call. It shall be set to zero also after a failed answering. The power‑up, factory (:F) and user resets (Z) shall also set the value to zero. This reduces the possibility that alternating mode calls are originated or answered accidentally.
+Defined values
+[mode]:
+0 single mode
+1 alternating voice/fax (teleservice 61)
+2 alternating voice/data (bearer service 61)
+3 voice followed by data (bearer service 81)
+also all other values below 128 are reserved by the present document
+</description>
+</spec>
+<spec>
+ <command>AT+CMOD=?</command>
+ <profile>Call mode (Query all)</profile>
+ <description>Set command selects the call mode of further dialling commands (D) or for next answering command (A). Mode can be either single or alternating (in the present document, terms 'alternating mode' and 'alternating call' refer to all GSM/UMTS bearer and teleservices that incorporate more than one basic service (voice, data, fax) within one call). When single mode is selected the call originating and hangup procedures are similar to procedures specified in ITU‑T Recommendations V.250 [14], T.31 [11] and T.32 [12]. In GSM/UMTS there can be voice followed by data (refer 3GPP TS 22.002 [1]), alternating voice/data (refer 3GPP TS 22.002 [1]) and alternating voice/fax calls (refer 3GPP TS 22.003 [2]). Refer next two subclauses for alternating call control methods.
+Test command returns values supported as a compound value.
+NOTE: +CMOD shall be set to zero after a successfully completed alternating mode call. It shall be set to zero also after a failed answering. The power‑up, factory (:F) and user resets (Z) shall also set the value to zero. This reduces the possibility that alternating mode calls are originated or answered accidentally.
+Defined values
+[mode]:
+0 single mode
+1 alternating voice/fax (teleservice 61)
+2 alternating voice/data (bearer service 61)
+3 voice followed by data (bearer service 81)
+also all other values below 128 are reserved by the present document
+</description>
+</spec>
+<spec>
+ <command>AT+CHUP</command>
+ <profile>Hangup call </profile>
+ <description>Execution command causes the TA to hangup the current GSM/UMTS call of the MT.
+NOTE: The purpose of this command is not to replace the V.250 [14] command H, but to give an assured procedure to terminate an alternating mode call. Refer next subclause.
+</description>
+</spec>
+<spec>
+ <command>AT+CHUP=?</command>
+ <profile>Hangup call (Query all)</profile>
+ <description>Execution command causes the TA to hangup the current GSM/UMTS call of the MT.
+NOTE: The purpose of this command is not to replace the V.250 [14] command H, but to give an assured procedure to terminate an alternating mode call. Refer next subclause.
+</description>
+</spec>
+<spec>
+ <command>AT+CBST=</command>
+ <profile>Select bearer service type (Assign)</profile>
+ <description>Set command selects the bearer service [name] with data rate [speed], and the connection element [ce] to be used when data calls are originated (refer 3GPP TS 22.002 [1]). Values may also be used during mobile terminated data call setup, especially in case of single numbering scheme calls (refer +CSNS).
+Test command returns values supported as compound values.
+Defined values
+NOTE: The default values of the subparameters are manufacturer specific since they depend on the purpose of the device and data services provided by it. Not all combinations of these subparameters are supported by GSM/UMTS (refer 3GPP TS 22.002 [1]).
+[speed]:
+0 autobauding (automatic selection of the speed; this setting is possible in case of 3.1 kHz modem and non-transparent service)
+1 300 bps (V.21)
+2 1200 bps (V.22)
+3 1200/75 bps (V.23)
+4 2400 bps (V.22bis)
+5 2400 bps (V.26ter)
+6 4800 bps (V.32)
+7 9600 bps (V.32)
+12 9600 bps (V.34)
+14 14400 bps (V.34)
+15 19200 bps (V.34)
+16 28800 bps (V.34)
+17 33600 bps (V.34)
+34 1200 bps (V.120)
+36 2400 bps (V.120)
+38 4800 bps (V.120)
+39 9600 bps (V.120)
+43 14400 bps (V.120)
+47 19200 bps (V.120)
+48 28800 bps (V.120)
+49 38400 bps (V.120)
+50 48000 bps (V.120)
+51 56000 bps (V.120)
+65 300 bps (V.110)
+66 1200 bps (V.110)
+68 2400 bps (V.110 or X.31 flag stuffing)
+70 4800 bps (V.110 or X.31 flag stuffing)
+71 9600 bps (V.110 or X.31 flag stuffing)
+75 14400 bps (V.110 or X.31 flag stuffing)
+79 19200 bps (V.110 or X.31 flag stuffing)
+80 28800 bps (V.110 or X.31 flag stuffing)
+81 38400 bps (V.110 or X.31 flag stuffing)
+82 48000 bps (V.110 or X.31 flag stuffing)
+83 56000 bps (V.110 or X.31 flag stuffing; this setting can be used in conjunction with asynchronous non-transparent UDI or RDI service in order to get FTM)
+84 64000 bps (X.31 flag stuffing; this setting can be used in conjunction with asynchronous non-transparent UDI service in order to get FTM)
+115 56000 bps (bit transparent)
+116 64000 bps (bit transparent)
+120 32000 bps (PIAFS32k)
+121 64000 bps (PIAFS64k)
+130 28800 bps (multimedia)
+131 32000 bps (multimedia)
+132 33600 bps (multimedia)
+133 56000 bps (multimedia)
+134 64000 bps (multimedia)
+
+also all other values below 128 are reserved by the present document.
+[name]:
+0 data circuit asynchronous (UDI or 3.1 kHz modem)
+1 data circuit synchronous (UDI or 3.1 kHz modem)
+2 PAD Access (asynchronous) (UDI)
+3 Packet Access (synchronous) (UDI)
+4 data circuit asynchronous (RDI)
+5 data circuit synchronous (RDI)
+6 PAD Access (asynchronous) (RDI)
+7 Packet Access (synchronous) (RDI)
+also all other values below 128 are reserved by the present document.
+[ce]:
+0 transparent
+1 non-transparent
+2 both, transparent preferred
+3 both, non-transparent preferred
+</description>
+</spec>
+<spec>
+ <command>AT+CBST?</command>
+ <profile>Select bearer service type (Query)</profile>
+ <description>Set command selects the bearer service [name] with data rate [speed], and the connection element [ce] to be used when data calls are originated (refer 3GPP TS 22.002 [1]). Values may also be used during mobile terminated data call setup, especially in case of single numbering scheme calls (refer +CSNS).
+Test command returns values supported as compound values.
+Defined values
+NOTE: The default values of the subparameters are manufacturer specific since they depend on the purpose of the device and data services provided by it. Not all combinations of these subparameters are supported by GSM/UMTS (refer 3GPP TS 22.002 [1]).
+[speed]:
+0 autobauding (automatic selection of the speed; this setting is possible in case of 3.1 kHz modem and non-transparent service)
+1 300 bps (V.21)
+2 1200 bps (V.22)
+3 1200/75 bps (V.23)
+4 2400 bps (V.22bis)
+5 2400 bps (V.26ter)
+6 4800 bps (V.32)
+7 9600 bps (V.32)
+12 9600 bps (V.34)
+14 14400 bps (V.34)
+15 19200 bps (V.34)
+16 28800 bps (V.34)
+17 33600 bps (V.34)
+34 1200 bps (V.120)
+36 2400 bps (V.120)
+38 4800 bps (V.120)
+39 9600 bps (V.120)
+43 14400 bps (V.120)
+47 19200 bps (V.120)
+48 28800 bps (V.120)
+49 38400 bps (V.120)
+50 48000 bps (V.120)
+51 56000 bps (V.120)
+65 300 bps (V.110)
+66 1200 bps (V.110)
+68 2400 bps (V.110 or X.31 flag stuffing)
+70 4800 bps (V.110 or X.31 flag stuffing)
+71 9600 bps (V.110 or X.31 flag stuffing)
+75 14400 bps (V.110 or X.31 flag stuffing)
+79 19200 bps (V.110 or X.31 flag stuffing)
+80 28800 bps (V.110 or X.31 flag stuffing)
+81 38400 bps (V.110 or X.31 flag stuffing)
+82 48000 bps (V.110 or X.31 flag stuffing)
+83 56000 bps (V.110 or X.31 flag stuffing; this setting can be used in conjunction with asynchronous non-transparent UDI or RDI service in order to get FTM)
+84 64000 bps (X.31 flag stuffing; this setting can be used in conjunction with asynchronous non-transparent UDI service in order to get FTM)
+115 56000 bps (bit transparent)
+116 64000 bps (bit transparent)
+120 32000 bps (PIAFS32k)
+121 64000 bps (PIAFS64k)
+130 28800 bps (multimedia)
+131 32000 bps (multimedia)
+132 33600 bps (multimedia)
+133 56000 bps (multimedia)
+134 64000 bps (multimedia)
+
+also all other values below 128 are reserved by the present document.
+[name]:
+0 data circuit asynchronous (UDI or 3.1 kHz modem)
+1 data circuit synchronous (UDI or 3.1 kHz modem)
+2 PAD Access (asynchronous) (UDI)
+3 Packet Access (synchronous) (UDI)
+4 data circuit asynchronous (RDI)
+5 data circuit synchronous (RDI)
+6 PAD Access (asynchronous) (RDI)
+7 Packet Access (synchronous) (RDI)
+also all other values below 128 are reserved by the present document.
+[ce]:
+0 transparent
+1 non-transparent
+2 both, transparent preferred
+3 both, non-transparent preferred
+</description>
+</spec>
+<spec>
+ <command>AT+CBST=?</command>
+ <profile>Select bearer service type (Query all)</profile>
+ <description>Set command selects the bearer service [name] with data rate [speed], and the connection element [ce] to be used when data calls are originated (refer 3GPP TS 22.002 [1]). Values may also be used during mobile terminated data call setup, especially in case of single numbering scheme calls (refer +CSNS).
+Test command returns values supported as compound values.
+Defined values
+NOTE: The default values of the subparameters are manufacturer specific since they depend on the purpose of the device and data services provided by it. Not all combinations of these subparameters are supported by GSM/UMTS (refer 3GPP TS 22.002 [1]).
+[speed]:
+0 autobauding (automatic selection of the speed; this setting is possible in case of 3.1 kHz modem and non-transparent service)
+1 300 bps (V.21)
+2 1200 bps (V.22)
+3 1200/75 bps (V.23)
+4 2400 bps (V.22bis)
+5 2400 bps (V.26ter)
+6 4800 bps (V.32)
+7 9600 bps (V.32)
+12 9600 bps (V.34)
+14 14400 bps (V.34)
+15 19200 bps (V.34)
+16 28800 bps (V.34)
+17 33600 bps (V.34)
+34 1200 bps (V.120)
+36 2400 bps (V.120)
+38 4800 bps (V.120)
+39 9600 bps (V.120)
+43 14400 bps (V.120)
+47 19200 bps (V.120)
+48 28800 bps (V.120)
+49 38400 bps (V.120)
+50 48000 bps (V.120)
+51 56000 bps (V.120)
+65 300 bps (V.110)
+66 1200 bps (V.110)
+68 2400 bps (V.110 or X.31 flag stuffing)
+70 4800 bps (V.110 or X.31 flag stuffing)
+71 9600 bps (V.110 or X.31 flag stuffing)
+75 14400 bps (V.110 or X.31 flag stuffing)
+79 19200 bps (V.110 or X.31 flag stuffing)
+80 28800 bps (V.110 or X.31 flag stuffing)
+81 38400 bps (V.110 or X.31 flag stuffing)
+82 48000 bps (V.110 or X.31 flag stuffing)
+83 56000 bps (V.110 or X.31 flag stuffing; this setting can be used in conjunction with asynchronous non-transparent UDI or RDI service in order to get FTM)
+84 64000 bps (X.31 flag stuffing; this setting can be used in conjunction with asynchronous non-transparent UDI service in order to get FTM)
+115 56000 bps (bit transparent)
+116 64000 bps (bit transparent)
+120 32000 bps (PIAFS32k)
+121 64000 bps (PIAFS64k)
+130 28800 bps (multimedia)
+131 32000 bps (multimedia)
+132 33600 bps (multimedia)
+133 56000 bps (multimedia)
+134 64000 bps (multimedia)
+
+also all other values below 128 are reserved by the present document.
+[name]:
+0 data circuit asynchronous (UDI or 3.1 kHz modem)
+1 data circuit synchronous (UDI or 3.1 kHz modem)
+2 PAD Access (asynchronous) (UDI)
+3 Packet Access (synchronous) (UDI)
+4 data circuit asynchronous (RDI)
+5 data circuit synchronous (RDI)
+6 PAD Access (asynchronous) (RDI)
+7 Packet Access (synchronous) (RDI)
+also all other values below 128 are reserved by the present document.
+[ce]:
+0 transparent
+1 non-transparent
+2 both, transparent preferred
+3 both, non-transparent preferred
+</description>
+</spec>
+<spec>
+ <command>AT+CRLP=</command>
+ <profile>Radio link protocol (Assign)</profile>
+ <description>Radio link protocol (RLP) parameters used when non-transparent data calls are originated may be altered with set command. Available command subparameters depend on the RLP versions implemented by the device (e.g. [ver] may not be available if device supports only versions 0 and 1).
+NOTE 1: If radio link protocol is not used, but some other error correcting protocol (for transparent data calls), V.250 [14] Error Control Selection test command +ES=? may be used to indicate the presence of the protocol.
+Read command returns current settings for each supported RLP version [verx]. Only RLP parameters applicable to the corresponding [verx] are returned.
+Test command returns values supported as a compound value. If MT/TA supports several RLP versions [verx], the RLP parameter value ranges for each [verx] are returned in a separate line.
+Defined values
+[ver], [verx]: RLP version number in integer format; when version indication is not present it shall equal 0
+NOTE 2: Versions 0 and 1 share the same parameter set. Read and test commands shall return only one line for this set (where [verx] is not present).
+[iws], [mws], [T1], [N2], [T4]: IWF to MS window size, MS to IWF window size, acknowledgement timer T1, retransmission attempts N2, re-sequencing period T4 in integer format (default values and value ranges depend on RLP version; refer 3GPP TS 24.022 [18]): T1 and T4 are in units of 10 ms.
+</description>
+</spec>
+<spec>
+ <command>AT+CRLP?</command>
+ <profile>Radio link protocol (Query)</profile>
+ <description>Radio link protocol (RLP) parameters used when non-transparent data calls are originated may be altered with set command. Available command subparameters depend on the RLP versions implemented by the device (e.g. [ver] may not be available if device supports only versions 0 and 1).
+NOTE 1: If radio link protocol is not used, but some other error correcting protocol (for transparent data calls), V.250 [14] Error Control Selection test command +ES=? may be used to indicate the presence of the protocol.
+Read command returns current settings for each supported RLP version [verx]. Only RLP parameters applicable to the corresponding [verx] are returned.
+Test command returns values supported as a compound value. If MT/TA supports several RLP versions [verx], the RLP parameter value ranges for each [verx] are returned in a separate line.
+Defined values
+[ver], [verx]: RLP version number in integer format; when version indication is not present it shall equal 0
+NOTE 2: Versions 0 and 1 share the same parameter set. Read and test commands shall return only one line for this set (where [verx] is not present).
+[iws], [mws], [T1], [N2], [T4]: IWF to MS window size, MS to IWF window size, acknowledgement timer T1, retransmission attempts N2, re-sequencing period T4 in integer format (default values and value ranges depend on RLP version; refer 3GPP TS 24.022 [18]): T1 and T4 are in units of 10 ms.
+</description>
+</spec>
+<spec>
+ <command>AT+CRLP=?</command>
+ <profile>Radio link protocol (Query all)</profile>
+ <description>Radio link protocol (RLP) parameters used when non-transparent data calls are originated may be altered with set command. Available command subparameters depend on the RLP versions implemented by the device (e.g. [ver] may not be available if device supports only versions 0 and 1).
+NOTE 1: If radio link protocol is not used, but some other error correcting protocol (for transparent data calls), V.250 [14] Error Control Selection test command +ES=? may be used to indicate the presence of the protocol.
+Read command returns current settings for each supported RLP version [verx]. Only RLP parameters applicable to the corresponding [verx] are returned.
+Test command returns values supported as a compound value. If MT/TA supports several RLP versions [verx], the RLP parameter value ranges for each [verx] are returned in a separate line.
+Defined values
+[ver], [verx]: RLP version number in integer format; when version indication is not present it shall equal 0
+NOTE 2: Versions 0 and 1 share the same parameter set. Read and test commands shall return only one line for this set (where [verx] is not present).
+[iws], [mws], [T1], [N2], [T4]: IWF to MS window size, MS to IWF window size, acknowledgement timer T1, retransmission attempts N2, re-sequencing period T4 in integer format (default values and value ranges depend on RLP version; refer 3GPP TS 24.022 [18]): T1 and T4 are in units of 10 ms.
+</description>
+</spec>
+<spec>
+ <command>AT+CR=</command>
+ <profile>Service reporting control (Assign)</profile>
+ <description>Set command controls whether or not intermediate result code +CR: [serv] is returned from the TA to the TE. If enabled, the intermediate result code is transmitted at the point during connect negotiation at which the TA has determined which speed and quality of service will be used, before any error control or data compression reports are transmitted, and before the intermediate result code CONNECT is transmitted.
+NOTE: This command replaces V.250 [14] command Modulation Reporting Control +MR, which is not appropriate for use in the GSM/UMTS network. Possible error control (other than radio link protocol) and data compression reporting can be enabled with V.250 commands Error Control Reporting +ER and Data Compression Reporting +DR.
+Test command returns values supported as a compound value.
+Defined values
+[mode]:
+0 disables reporting
+1 enables reporting
+[serv]:
+ASYNC asynchronous transparent
+SYNC synchronous transparent
+REL ASYNC asynchronous non‑transparent
+REL SYNC synchronous non‑transparent
+GPRS [[L2P]] GPRS
+The optional [L2P] proposes a layer 2 protocol to use between the MT and the TE. It is defined in the Enter GPRS Data Mode (+CGDATA) command.
+</description>
+</spec>
+<spec>
+ <command>AT+CR?</command>
+ <profile>Service reporting control (Query)</profile>
+ <description>Set command controls whether or not intermediate result code +CR: [serv] is returned from the TA to the TE. If enabled, the intermediate result code is transmitted at the point during connect negotiation at which the TA has determined which speed and quality of service will be used, before any error control or data compression reports are transmitted, and before the intermediate result code CONNECT is transmitted.
+NOTE: This command replaces V.250 [14] command Modulation Reporting Control +MR, which is not appropriate for use in the GSM/UMTS network. Possible error control (other than radio link protocol) and data compression reporting can be enabled with V.250 commands Error Control Reporting +ER and Data Compression Reporting +DR.
+Test command returns values supported as a compound value.
+Defined values
+[mode]:
+0 disables reporting
+1 enables reporting
+[serv]:
+ASYNC asynchronous transparent
+SYNC synchronous transparent
+REL ASYNC asynchronous non‑transparent
+REL SYNC synchronous non‑transparent
+GPRS [[L2P]] GPRS
+The optional [L2P] proposes a layer 2 protocol to use between the MT and the TE. It is defined in the Enter GPRS Data Mode (+CGDATA) command.
+</description>
+</spec>
+<spec>
+ <command>AT+CR=?</command>
+ <profile>Service reporting control (Query all)</profile>
+ <description>Set command controls whether or not intermediate result code +CR: [serv] is returned from the TA to the TE. If enabled, the intermediate result code is transmitted at the point during connect negotiation at which the TA has determined which speed and quality of service will be used, before any error control or data compression reports are transmitted, and before the intermediate result code CONNECT is transmitted.
+NOTE: This command replaces V.250 [14] command Modulation Reporting Control +MR, which is not appropriate for use in the GSM/UMTS network. Possible error control (other than radio link protocol) and data compression reporting can be enabled with V.250 commands Error Control Reporting +ER and Data Compression Reporting +DR.
+Test command returns values supported as a compound value.
+Defined values
+[mode]:
+0 disables reporting
+1 enables reporting
+[serv]:
+ASYNC asynchronous transparent
+SYNC synchronous transparent
+REL ASYNC asynchronous non‑transparent
+REL SYNC synchronous non‑transparent
+GPRS [[L2P]] GPRS
+The optional [L2P] proposes a layer 2 protocol to use between the MT and the TE. It is defined in the Enter GPRS Data Mode (+CGDATA) command.
+</description>
+</spec>
+<spec>
+ <command>AT+CEER</command>
+ <profile>Extended error report </profile>
+ <description>Execution command causes the TA to return one or more lines of information text [report], determined by the MT manufacturer, which should offer the user of the TA an extended report of the reason for
+- the failure in the last unsuccessful call setup (originating or answering) or in‑call modification;
+- the last call release;
+- the last unsuccessful GPRS attach or unsuccessful PDP context activation;
+- the last GPRS detach or PDP context deactivation.
+Typically, the text will consist of a single line containing the cause information given by GSM/UMTS network in textual format.
+Defined values
+[report]: the total number of characters, including line terminators, in the information text shall not exceed 2041 characters.
+Text shall not contain the sequence 0[CR] or OK[CR].
+</description>
+</spec>
+<spec>
+ <command>AT+CEER=?</command>
+ <profile>Extended error report (Query all)</profile>
+ <description>Execution command causes the TA to return one or more lines of information text [report], determined by the MT manufacturer, which should offer the user of the TA an extended report of the reason for
+- the failure in the last unsuccessful call setup (originating or answering) or in‑call modification;
+- the last call release;
+- the last unsuccessful GPRS attach or unsuccessful PDP context activation;
+- the last GPRS detach or PDP context deactivation.
+Typically, the text will consist of a single line containing the cause information given by GSM/UMTS network in textual format.
+Defined values
+[report]: the total number of characters, including line terminators, in the information text shall not exceed 2041 characters.
+Text shall not contain the sequence 0[CR] or OK[CR].
+</description>
+</spec>
+<spec>
+ <command>AT+CRC=</command>
+ <profile>Cellular result codes (Assign)</profile>
+ <description>Set command controls whether or not the extended format of incoming call indication or GPRS network request for PDP context activation or notification for VBS/VGCS calls is used. When enabled, an incoming call is indicated to the TE with unsolicited result code +CRING: [type] instead of the normal RING.
+Test command returns values supported as a compound value.
+NOTE: Similar command may be found in TIA IS‑99 [15] and TIA IS‑135 [16].
+Defined values
+[mode]:
+0 disables extended format
+1 enables extended format
+[type]:
+ASYNC [,[priority][,[subaddr],[satype]]] asynchronous transparent
+SYNC [,[priority][,[subaddr],[satype]]] synchronous transparent
+REL ASYNC [,[priority][,[subaddr],[satype]]] asynchronous non‑transparent
+REL SYNC [,[priority][,[subaddr],[satype]]] synchronous non‑transparent
+FAX [,[priority][,[subaddr],[satype]]] facsimile (TS 62)
+VOICE [,[priority][,[subaddr],[satype]]] normal voice (TS 11)
+VOICE/XXX [,[priority][,[subaddr],[satype]]] voice followed by data (BS 81) (XXX is ASYNC, SYNC, REL ASYNC or REL SYNC)
+ALT VOICE/XXX [,[priority][,[subaddr],[satype]]] alternating voice/data, voice first (BS 61)
+ALT XXX/VOICE [,[priority][,[subaddr],[satype]]] alternating voice/data, data first (BS 61)
+ALT VOICE/FAX [,[priority][,[subaddr],[satype]]] alternating voice/fax, voice first (TS 61)
+ALT FAX/VOICE [,[priority][,[subaddr],[satype]]] alternating voice/fax, fax first (TS 61)
+GPRS [PDP_type], [PDP_addr][, [[L2P]][,[APN]]] GPRS network request for PDP context activation
+VGC [GCA], [GId], [ackflag] [,[priority]] voice group call (TS 91)
+VBC [GCA], [GId], [ackflag] [,[priority]] voice broadcast call (TS 92)
+The optional [priority] indicates the eMLPP priority level of the incoming call by paging, notification or setup message. The priority level values are as defined in eMLPP specification 3GPP TS 22.067 [54].
+[subaddr]: string type subaddress of format specified by [satype]
+[satype]: type of subaddress octet in integer format (refer 3GPP TS 24.008 [8] subclause 10.5.4.8)
+[PDP_type] ,[PDP_addr] and [APN] are as defined in the Define PDP Context (+CGDCONT) command. The optional [L2P] proposes a layer 2 protocol to use between the MT and the TE. It is defined in the Enter GPRS Data Mode (+CGDATA) command. If the MT is unable to announce to the TE the network's request (for example it is in V.250 online data state) the MT shall reject the request. No corresponding unsolicited result code shall be issued when the MT returns to a command state.
+[GCA] is a part of the group call reference as specified in 3GPP TS 23.003 [7] and indicates group call area.
+[GId] is a part of the group call reference as specified in 3GPP TS 23.003 [7] and indicates group call identification.The [ackflag]=1 proposes that a predefined confirmation procedure is to be used after the call is ended. For [ackflag]=0 no confirmation procedure is required.
+</description>
+</spec>
+<spec>
+ <command>AT+CRC?</command>
+ <profile>Cellular result codes (Query)</profile>
+ <description>Set command controls whether or not the extended format of incoming call indication or GPRS network request for PDP context activation or notification for VBS/VGCS calls is used. When enabled, an incoming call is indicated to the TE with unsolicited result code +CRING: [type] instead of the normal RING.
+Test command returns values supported as a compound value.
+NOTE: Similar command may be found in TIA IS‑99 [15] and TIA IS‑135 [16].
+Defined values
+[mode]:
+0 disables extended format
+1 enables extended format
+[type]:
+ASYNC [,[priority][,[subaddr],[satype]]] asynchronous transparent
+SYNC [,[priority][,[subaddr],[satype]]] synchronous transparent
+REL ASYNC [,[priority][,[subaddr],[satype]]] asynchronous non‑transparent
+REL SYNC [,[priority][,[subaddr],[satype]]] synchronous non‑transparent
+FAX [,[priority][,[subaddr],[satype]]] facsimile (TS 62)
+VOICE [,[priority][,[subaddr],[satype]]] normal voice (TS 11)
+VOICE/XXX [,[priority][,[subaddr],[satype]]] voice followed by data (BS 81) (XXX is ASYNC, SYNC, REL ASYNC or REL SYNC)
+ALT VOICE/XXX [,[priority][,[subaddr],[satype]]] alternating voice/data, voice first (BS 61)
+ALT XXX/VOICE [,[priority][,[subaddr],[satype]]] alternating voice/data, data first (BS 61)
+ALT VOICE/FAX [,[priority][,[subaddr],[satype]]] alternating voice/fax, voice first (TS 61)
+ALT FAX/VOICE [,[priority][,[subaddr],[satype]]] alternating voice/fax, fax first (TS 61)
+GPRS [PDP_type], [PDP_addr][, [[L2P]][,[APN]]] GPRS network request for PDP context activation
+VGC [GCA], [GId], [ackflag] [,[priority]] voice group call (TS 91)
+VBC [GCA], [GId], [ackflag] [,[priority]] voice broadcast call (TS 92)
+The optional [priority] indicates the eMLPP priority level of the incoming call by paging, notification or setup message. The priority level values are as defined in eMLPP specification 3GPP TS 22.067 [54].
+[subaddr]: string type subaddress of format specified by [satype]
+[satype]: type of subaddress octet in integer format (refer 3GPP TS 24.008 [8] subclause 10.5.4.8)
+[PDP_type] ,[PDP_addr] and [APN] are as defined in the Define PDP Context (+CGDCONT) command. The optional [L2P] proposes a layer 2 protocol to use between the MT and the TE. It is defined in the Enter GPRS Data Mode (+CGDATA) command. If the MT is unable to announce to the TE the network's request (for example it is in V.250 online data state) the MT shall reject the request. No corresponding unsolicited result code shall be issued when the MT returns to a command state.
+[GCA] is a part of the group call reference as specified in 3GPP TS 23.003 [7] and indicates group call area.
+[GId] is a part of the group call reference as specified in 3GPP TS 23.003 [7] and indicates group call identification.The [ackflag]=1 proposes that a predefined confirmation procedure is to be used after the call is ended. For [ackflag]=0 no confirmation procedure is required.
+</description>
+</spec>
+<spec>
+ <command>AT+CRC=?</command>
+ <profile>Cellular result codes (Query all)</profile>
+ <description>Set command controls whether or not the extended format of incoming call indication or GPRS network request for PDP context activation or notification for VBS/VGCS calls is used. When enabled, an incoming call is indicated to the TE with unsolicited result code +CRING: [type] instead of the normal RING.
+Test command returns values supported as a compound value.
+NOTE: Similar command may be found in TIA IS‑99 [15] and TIA IS‑135 [16].
+Defined values
+[mode]:
+0 disables extended format
+1 enables extended format
+[type]:
+ASYNC [,[priority][,[subaddr],[satype]]] asynchronous transparent
+SYNC [,[priority][,[subaddr],[satype]]] synchronous transparent
+REL ASYNC [,[priority][,[subaddr],[satype]]] asynchronous non‑transparent
+REL SYNC [,[priority][,[subaddr],[satype]]] synchronous non‑transparent
+FAX [,[priority][,[subaddr],[satype]]] facsimile (TS 62)
+VOICE [,[priority][,[subaddr],[satype]]] normal voice (TS 11)
+VOICE/XXX [,[priority][,[subaddr],[satype]]] voice followed by data (BS 81) (XXX is ASYNC, SYNC, REL ASYNC or REL SYNC)
+ALT VOICE/XXX [,[priority][,[subaddr],[satype]]] alternating voice/data, voice first (BS 61)
+ALT XXX/VOICE [,[priority][,[subaddr],[satype]]] alternating voice/data, data first (BS 61)
+ALT VOICE/FAX [,[priority][,[subaddr],[satype]]] alternating voice/fax, voice first (TS 61)
+ALT FAX/VOICE [,[priority][,[subaddr],[satype]]] alternating voice/fax, fax first (TS 61)
+GPRS [PDP_type], [PDP_addr][, [[L2P]][,[APN]]] GPRS network request for PDP context activation
+VGC [GCA], [GId], [ackflag] [,[priority]] voice group call (TS 91)
+VBC [GCA], [GId], [ackflag] [,[priority]] voice broadcast call (TS 92)
+The optional [priority] indicates the eMLPP priority level of the incoming call by paging, notification or setup message. The priority level values are as defined in eMLPP specification 3GPP TS 22.067 [54].
+[subaddr]: string type subaddress of format specified by [satype]
+[satype]: type of subaddress octet in integer format (refer 3GPP TS 24.008 [8] subclause 10.5.4.8)
+[PDP_type] ,[PDP_addr] and [APN] are as defined in the Define PDP Context (+CGDCONT) command. The optional [L2P] proposes a layer 2 protocol to use between the MT and the TE. It is defined in the Enter GPRS Data Mode (+CGDATA) command. If the MT is unable to announce to the TE the network's request (for example it is in V.250 online data state) the MT shall reject the request. No corresponding unsolicited result code shall be issued when the MT returns to a command state.
+[GCA] is a part of the group call reference as specified in 3GPP TS 23.003 [7] and indicates group call area.
+[GId] is a part of the group call reference as specified in 3GPP TS 23.003 [7] and indicates group call identification.The [ackflag]=1 proposes that a predefined confirmation procedure is to be used after the call is ended. For [ackflag]=0 no confirmation procedure is required.
+</description>
+</spec>
+<spec>
+ <command>AT+CHSD</command>
+ <profile>HSCSD device parameters </profile>
+ <description>Execution command returns information about HSCSD features (refer 3GPP TS 22.034 [29]) supported by the MT/TA. Refer subclause 9.2 for possible [err] values.
+The return information is only applicable in GERAN.
+Defined values
+[mclass]: integer type; multislot class
+[maxRx]: integer type; maximum number of receive timeslots that MT can use
+[maxTx]: integer type; maximum number of transmit timeslots that MT can use
+[sum]: integer type; total number of receive and transmit timeslots that MT can use at the same time (per TDMA frame). The following applies in a HSCSD call: 1 (receive slots) + (transmit slots) [sum]
+[codings] is a sum of integers each representing a supported channel coding (e.g. value 5 indicates that 4,8k and 9,6k channel codings are supported):
+1 4,8k full rate data traffic channel
+4 9,6k full rate data traffic channel
+8 14,4k full rate data traffic channel
+16 28,8k full rate data traffic channel (only possible when 14.4k is supported)
+32 32,0k full rate data traffic channel (only possible in a two-timeslot configuration)
+64 43,2k full rate data traffic channel (only possible when 14.4k is supported)
+</description>
+</spec>
+<spec>
+ <command>AT+CHSD=?</command>
+ <profile>HSCSD device parameters (Query all)</profile>
+ <description>Execution command returns information about HSCSD features (refer 3GPP TS 22.034 [29]) supported by the MT/TA. Refer subclause 9.2 for possible [err] values.
+The return information is only applicable in GERAN.
+Defined values
+[mclass]: integer type; multislot class
+[maxRx]: integer type; maximum number of receive timeslots that MT can use
+[maxTx]: integer type; maximum number of transmit timeslots that MT can use
+[sum]: integer type; total number of receive and transmit timeslots that MT can use at the same time (per TDMA frame). The following applies in a HSCSD call: 1 (receive slots) + (transmit slots) [sum]
+[codings] is a sum of integers each representing a supported channel coding (e.g. value 5 indicates that 4,8k and 9,6k channel codings are supported):
+1 4,8k full rate data traffic channel
+4 9,6k full rate data traffic channel
+8 14,4k full rate data traffic channel
+16 28,8k full rate data traffic channel (only possible when 14.4k is supported)
+32 32,0k full rate data traffic channel (only possible in a two-timeslot configuration)
+64 43,2k full rate data traffic channel (only possible when 14.4k is supported)
+</description>
+</spec>
+<spec>
+ <command>AT+CHST=</command>
+ <profile>HSCSD transparent call configuration (Assign)</profile>
+ <description>Set command controls parameters for transparent HSCSD calls in GERAN. Changing them during a call does not affect the current call.
+NOTE: In UTRAN, values set with this command are not needed. The only applicable parameter is [SPEED], which is set with +CBST command.
+Defined values
+[wRx]: integer type; wanted amount of receive timeslots. Default value 0 indicates that TA shall calculate a proper value from currently selected fixed network user rate ([speed] subparameter from +CBST command) and [codings]
+[codings]: a sum of integers each representing a channel coding that is accepted for transparent HSCSD calls. Default value 0 indicates that all supported codings are accepted (refer +CHSD command for other values)
+</description>
+</spec>
+<spec>
+ <command>AT+CHST?</command>
+ <profile>HSCSD transparent call configuration (Query)</profile>
+ <description>Set command controls parameters for transparent HSCSD calls in GERAN. Changing them during a call does not affect the current call.
+NOTE: In UTRAN, values set with this command are not needed. The only applicable parameter is [SPEED], which is set with +CBST command.
+Defined values
+[wRx]: integer type; wanted amount of receive timeslots. Default value 0 indicates that TA shall calculate a proper value from currently selected fixed network user rate ([speed] subparameter from +CBST command) and [codings]
+[codings]: a sum of integers each representing a channel coding that is accepted for transparent HSCSD calls. Default value 0 indicates that all supported codings are accepted (refer +CHSD command for other values)
+</description>
+</spec>
+<spec>
+ <command>AT+CHST=?</command>
+ <profile>HSCSD transparent call configuration (Query all)</profile>
+ <description>Set command controls parameters for transparent HSCSD calls in GERAN. Changing them during a call does not affect the current call.
+NOTE: In UTRAN, values set with this command are not needed. The only applicable parameter is [SPEED], which is set with +CBST command.
+Defined values
+[wRx]: integer type; wanted amount of receive timeslots. Default value 0 indicates that TA shall calculate a proper value from currently selected fixed network user rate ([speed] subparameter from +CBST command) and [codings]
+[codings]: a sum of integers each representing a channel coding that is accepted for transparent HSCSD calls. Default value 0 indicates that all supported codings are accepted (refer +CHSD command for other values)
+</description>
+</spec>
+<spec>
+ <command>AT+CHSC</command>
+ <profile>HSCSD current call parameters </profile>
+ <description>Execution command returns information about current HSCSD call. If no HSCSD call is active, all parameters returned shall equal zero. If HSCSD call is active in UTRAN, all non-applicable parameters returned shall be equal to zero. (It is manufacturer specific whether non-zero information is returned in case of an active normal single-slot data call.)
+Defined values
+[rx]: integer type; number of receive timeslots currently in use. This parameter is not applicable in UTRAN.
+[tx]: integer type; number of transmit timeslots currently in use. This parameter is not applicable in UTRAN.
+[aiur]: integer type; current air interface user rate (in case of transparent service this equals fixed network user rate) (refer +CHSN command for possible values). For the two-timeslot ECSD bit transparent configuration the following additional values apply:
+8 56000 bps
+9 64000 bps
+[coding]: current channel coding (refer +CHSD command for possible values). This parameter is not applicable in UTRAN.
+</description>
+</spec>
+<spec>
+ <command>AT+CHSC=?</command>
+ <profile>HSCSD current call parameters (Query all)</profile>
+ <description>Execution command returns information about current HSCSD call. If no HSCSD call is active, all parameters returned shall equal zero. If HSCSD call is active in UTRAN, all non-applicable parameters returned shall be equal to zero. (It is manufacturer specific whether non-zero information is returned in case of an active normal single-slot data call.)
+Defined values
+[rx]: integer type; number of receive timeslots currently in use. This parameter is not applicable in UTRAN.
+[tx]: integer type; number of transmit timeslots currently in use. This parameter is not applicable in UTRAN.
+[aiur]: integer type; current air interface user rate (in case of transparent service this equals fixed network user rate) (refer +CHSN command for possible values). For the two-timeslot ECSD bit transparent configuration the following additional values apply:
+8 56000 bps
+9 64000 bps
+[coding]: current channel coding (refer +CHSD command for possible values). This parameter is not applicable in UTRAN.
+</description>
+</spec>
+<spec>
+ <command>AT+CHSR=</command>
+ <profile>HSCSD parameters report (Assign)</profile>
+ <description>Enabled command returns intermediate result code +CHSR: [type] from the TA to the TE when an HSCSD call is being set up. The result code represents the current (negotiated or renegotiated) HSCSD parameters. If enabled, the intermediate result code is transmitted at the point of the call setup negotiation where the TA has determined what type of an HSCSD connection will be used. Result code transmission is done after possible service (+CR), error control (+ER), and/or compression (+DR) reporting but before possible TE-TA rate (+ILRR) reporting and before the intermediate result code CONNECT is transmitted. The format of the intermediate result code is:
++CHSR: [rx],[tx],[aiur],[coding]
+For the value definitions, refer to +CHSN and +CHSC commands. For instance, for a non-transparent HSCSD call, result code '+CHSR: 2,2,4,8' means that the call has two timeslots in both up- and downlink, the air interface user rate is 28800 bps, and the used channel coding TCH/F14.4.
+In UTRAN, all non-applicable parameters returned shall be equal to zero.
+Defined values
+[mode]:
+0 disables reporting
+1 enables reporting
+</description>
+</spec>
+<spec>
+ <command>AT+CHSR?</command>
+ <profile>HSCSD parameters report (Query)</profile>
+ <description>Enabled command returns intermediate result code +CHSR: [type] from the TA to the TE when an HSCSD call is being set up. The result code represents the current (negotiated or renegotiated) HSCSD parameters. If enabled, the intermediate result code is transmitted at the point of the call setup negotiation where the TA has determined what type of an HSCSD connection will be used. Result code transmission is done after possible service (+CR), error control (+ER), and/or compression (+DR) reporting but before possible TE-TA rate (+ILRR) reporting and before the intermediate result code CONNECT is transmitted. The format of the intermediate result code is:
++CHSR: [rx],[tx],[aiur],[coding]
+For the value definitions, refer to +CHSN and +CHSC commands. For instance, for a non-transparent HSCSD call, result code '+CHSR: 2,2,4,8' means that the call has two timeslots in both up- and downlink, the air interface user rate is 28800 bps, and the used channel coding TCH/F14.4.
+In UTRAN, all non-applicable parameters returned shall be equal to zero.
+Defined values
+[mode]:
+0 disables reporting
+1 enables reporting
+</description>
+</spec>
+<spec>
+ <command>AT+CHSR=?</command>
+ <profile>HSCSD parameters report (Query all)</profile>
+ <description>Enabled command returns intermediate result code +CHSR: [type] from the TA to the TE when an HSCSD call is being set up. The result code represents the current (negotiated or renegotiated) HSCSD parameters. If enabled, the intermediate result code is transmitted at the point of the call setup negotiation where the TA has determined what type of an HSCSD connection will be used. Result code transmission is done after possible service (+CR), error control (+ER), and/or compression (+DR) reporting but before possible TE-TA rate (+ILRR) reporting and before the intermediate result code CONNECT is transmitted. The format of the intermediate result code is:
++CHSR: [rx],[tx],[aiur],[coding]
+For the value definitions, refer to +CHSN and +CHSC commands. For instance, for a non-transparent HSCSD call, result code '+CHSR: 2,2,4,8' means that the call has two timeslots in both up- and downlink, the air interface user rate is 28800 bps, and the used channel coding TCH/F14.4.
+In UTRAN, all non-applicable parameters returned shall be equal to zero.
+Defined values
+[mode]:
+0 disables reporting
+1 enables reporting
+</description>
+</spec>
+<spec>
+ <command>AT+CSNS=</command>
+ <profile>Single numbering scheme (Assign)</profile>
+ <description>Set command selects the bearer or teleservice to be used when mobile terminated single numbering scheme call is established. Parameter values set with +CBST command shall be used when [mode] equals to a data service.
+Test command returns values supported as compound values.
+Defined values
+[mode]:
+0 voice
+1 alternating voice/fax, voice first (TS 61)
+2 fax (TS 62)
+3 alternating voice/data, voice first (BS 61)
+4 data
+5 alternating voice/fax, fax first (TS 61)
+6 alternating voice/data, data first (BS 61)
+7 voice followed by data (BS 81)
+</description>
+</spec>
+<spec>
+ <command>AT+CSNS?</command>
+ <profile>Single numbering scheme (Query)</profile>
+ <description>Set command selects the bearer or teleservice to be used when mobile terminated single numbering scheme call is established. Parameter values set with +CBST command shall be used when [mode] equals to a data service.
+Test command returns values supported as compound values.
+Defined values
+[mode]:
+0 voice
+1 alternating voice/fax, voice first (TS 61)
+2 fax (TS 62)
+3 alternating voice/data, voice first (BS 61)
+4 data
+5 alternating voice/fax, fax first (TS 61)
+6 alternating voice/data, data first (BS 61)
+7 voice followed by data (BS 81)
+</description>
+</spec>
+<spec>
+ <command>AT+CSNS=?</command>
+ <profile>Single numbering scheme (Query all)</profile>
+ <description>Set command selects the bearer or teleservice to be used when mobile terminated single numbering scheme call is established. Parameter values set with +CBST command shall be used when [mode] equals to a data service.
+Test command returns values supported as compound values.
+Defined values
+[mode]:
+0 voice
+1 alternating voice/fax, voice first (TS 61)
+2 fax (TS 62)
+3 alternating voice/data, voice first (BS 61)
+4 data
+5 alternating voice/fax, fax first (TS 61)
+6 alternating voice/data, data first (BS 61)
+7 voice followed by data (BS 81)
+</description>
+</spec>
+<spec>
+ <command>AT+CVHU=</command>
+ <profile>Voice Hangup Control (Assign)</profile>
+ <description>Set command selects whether ATH or 'drop DTR' shall cause a voice connection to be disconnected or not. By voice connection is also meant alternating mode calls that are currently in voice mode. (See subclause 6.6).
+NOTE: When [mode] = 2, this command must be seen in conjunction with the V.250 [14] command :D. Else :D shall be ignored.
+Defined values
+[mode]:
+0 'Drop DTR' ignored but OK response given. ATH disconnects.
+1 'Drop DTR' and ATH ignored but OK response given.
+2 'Drop DTR' behaviour according to :D setting. ATH disconnects.
+</description>
+</spec>
+<spec>
+ <command>AT+CVHU?</command>
+ <profile>Voice Hangup Control (Query)</profile>
+ <description>Set command selects whether ATH or 'drop DTR' shall cause a voice connection to be disconnected or not. By voice connection is also meant alternating mode calls that are currently in voice mode. (See subclause 6.6).
+NOTE: When [mode] = 2, this command must be seen in conjunction with the V.250 [14] command :D. Else :D shall be ignored.
+Defined values
+[mode]:
+0 'Drop DTR' ignored but OK response given. ATH disconnects.
+1 'Drop DTR' and ATH ignored but OK response given.
+2 'Drop DTR' behaviour according to :D setting. ATH disconnects.
+</description>
+</spec>
+<spec>
+ <command>AT+CVHU=?</command>
+ <profile>Voice Hangup Control (Query all)</profile>
+ <description>Set command selects whether ATH or 'drop DTR' shall cause a voice connection to be disconnected or not. By voice connection is also meant alternating mode calls that are currently in voice mode. (See subclause 6.6).
+NOTE: When [mode] = 2, this command must be seen in conjunction with the V.250 [14] command :D. Else :D shall be ignored.
+Defined values
+[mode]:
+0 'Drop DTR' ignored but OK response given. ATH disconnects.
+1 'Drop DTR' and ATH ignored but OK response given.
+2 'Drop DTR' behaviour according to :D setting. ATH disconnects.
+</description>
+</spec>
+<spec>
+ <command>AT+CSDF=</command>
+ <profile>Settings date format (Assign)</profile>
+ <description>This command sets the date format via MMI of the date information presented to the user, which is specified by use of the [mode] parameter. The [mode] affects the date format on the phone display and doesn't affect the date format of the AT command serial interface. The command also sets the date format of the TE-TA interface, which is specified by use of the [auxmode] parameter (e.g. the [auxmode] affects the [time] of +CCLK and +CALA). If the parameter is omitted ('+CSDF =','+CSDF =[mode]','+CSDF=,[auxmode]'),then this sets the default value.
+Defined values
+[mode]:
+NOTE: It is manufacturer specific which modes that are supported.
+1 DD-MMM-YYYY
+NOTE: Presentation of MMM is language dependent.
+2 DD-MM-YY
+3 MM/DD/YY
+4 DD/MM/YY
+5 DD.MM.YY
+6 YYMMDD
+7 YY-MM-DD
+8-255 Manufacturer specific
+[auxmode]:
+1yy/MM/dd (default)
+2 yyyy/MM/dd
+also all other values are reserved by the present document
+NOTE: The [time] format of +CCLK and +CALA 'yy/MM/dd,hh:mm:sszz' when [auxmode]=1 and it is 'yyyy/MM/dd,hh:mm:sszz' when [auxmode]=2. If the MT does not support time zone information then the three last characters may be omitted (see +CCLK command).
+</description>
+</spec>
+<spec>
+ <command>AT+CSDF?</command>
+ <profile>Settings date format (Query)</profile>
+ <description>This command sets the date format via MMI of the date information presented to the user, which is specified by use of the [mode] parameter. The [mode] affects the date format on the phone display and doesn't affect the date format of the AT command serial interface. The command also sets the date format of the TE-TA interface, which is specified by use of the [auxmode] parameter (e.g. the [auxmode] affects the [time] of +CCLK and +CALA). If the parameter is omitted ('+CSDF =','+CSDF =[mode]','+CSDF=,[auxmode]'),then this sets the default value.
+Defined values
+[mode]:
+NOTE: It is manufacturer specific which modes that are supported.
+1 DD-MMM-YYYY
+NOTE: Presentation of MMM is language dependent.
+2 DD-MM-YY
+3 MM/DD/YY
+4 DD/MM/YY
+5 DD.MM.YY
+6 YYMMDD
+7 YY-MM-DD
+8-255 Manufacturer specific
+[auxmode]:
+1yy/MM/dd (default)
+2 yyyy/MM/dd
+also all other values are reserved by the present document
+NOTE: The [time] format of +CCLK and +CALA 'yy/MM/dd,hh:mm:sszz' when [auxmode]=1 and it is 'yyyy/MM/dd,hh:mm:sszz' when [auxmode]=2. If the MT does not support time zone information then the three last characters may be omitted (see +CCLK command).
+</description>
+</spec>
+<spec>
+ <command>AT+CSDF=?</command>
+ <profile>Settings date format (Query all)</profile>
+ <description>This command sets the date format via MMI of the date information presented to the user, which is specified by use of the [mode] parameter. The [mode] affects the date format on the phone display and doesn't affect the date format of the AT command serial interface. The command also sets the date format of the TE-TA interface, which is specified by use of the [auxmode] parameter (e.g. the [auxmode] affects the [time] of +CCLK and +CALA). If the parameter is omitted ('+CSDF =','+CSDF =[mode]','+CSDF=,[auxmode]'),then this sets the default value.
+Defined values
+[mode]:
+NOTE: It is manufacturer specific which modes that are supported.
+1 DD-MMM-YYYY
+NOTE: Presentation of MMM is language dependent.
+2 DD-MM-YY
+3 MM/DD/YY
+4 DD/MM/YY
+5 DD.MM.YY
+6 YYMMDD
+7 YY-MM-DD
+8-255 Manufacturer specific
+[auxmode]:
+1yy/MM/dd (default)
+2 yyyy/MM/dd
+also all other values are reserved by the present document
+NOTE: The [time] format of +CCLK and +CALA 'yy/MM/dd,hh:mm:sszz' when [auxmode]=1 and it is 'yyyy/MM/dd,hh:mm:sszz' when [auxmode]=2. If the MT does not support time zone information then the three last characters may be omitted (see +CCLK command).
+</description>
+</spec>
+<spec>
+ <command>AT+CSIL=</command>
+ <profile>Silence Command (Assign)</profile>
+ <description>Set command enables/disables the silent mode. When the phone is in silent mode, all sounds from MT are suppressed except voice.
+Read command reads the current setting.
+Test command lists the supported modes.
+Defined values
+[mode]:
+0 Silent mode off
+1 Silent mode on
+</description>
+</spec>
+<spec>
+ <command>AT+CSIL?</command>
+ <profile>Silence Command (Query)</profile>
+ <description>Set command enables/disables the silent mode. When the phone is in silent mode, all sounds from MT are suppressed except voice.
+Read command reads the current setting.
+Test command lists the supported modes.
+Defined values
+[mode]:
+0 Silent mode off
+1 Silent mode on
+</description>
+</spec>
+<spec>
+ <command>AT+CSIL=?</command>
+ <profile>Silence Command (Query all)</profile>
+ <description>Set command enables/disables the silent mode. When the phone is in silent mode, all sounds from MT are suppressed except voice.
+Read command reads the current setting.
+Test command lists the supported modes.
+Defined values
+[mode]:
+0 Silent mode off
+1 Silent mode on
+</description>
+</spec>
+<spec>
+ <command>AT+CSTF=</command>
+ <profile>Settings time format (Assign)</profile>
+ <description>Set command sets the time format of the time information presented to the user.
+Read commands reads the current setting.
+Test commands reads the supported [modes]s.
+Defined values
+[mode]:
+1 HH:MM (24 hour clock)
+2 HH:MM a.m./p.m.
+3-7 Manufacturer specific
+</description>
+</spec>
+<spec>
+ <command>AT+CSTF?</command>
+ <profile>Settings time format (Query)</profile>
+ <description>Set command sets the time format of the time information presented to the user.
+Read commands reads the current setting.
+Test commands reads the supported [modes]s.
+Defined values
+[mode]:
+1 HH:MM (24 hour clock)
+2 HH:MM a.m./p.m.
+3-7 Manufacturer specific
+</description>
+</spec>
+<spec>
+ <command>AT+CSTF=?</command>
+ <profile>Settings time format (Query all)</profile>
+ <description>Set command sets the time format of the time information presented to the user.
+Read commands reads the current setting.
+Test commands reads the supported [modes]s.
+Defined values
+[mode]:
+1 HH:MM (24 hour clock)
+2 HH:MM a.m./p.m.
+3-7 Manufacturer specific
+</description>
+</spec>
+<spec>
+ <command>AT+CNUM</command>
+ <profile>Subscriber number </profile>
+ <description>Action command returns the MSISDNs related to the subscriber (this information can be stored in the SIM/UICC or in the MT). When storing information in the SIM/UICC, if a SIM card is present or if a UICC with an active GSM application is present, the information is stored in the EFMSISDN under DFTelecom. If a UICC with an active USIM application is present, the information is stored in the EFMSISDN under ADFUSIM). If subscriber has different MSISDN for different services, each MSISDN is returned in a separate line. Refer subclause 9.2 for possible [err] values.
+Defined values
+[alphax]: optional alphanumeric string associated with [numberx]; used character set should be the one selected with command Select TE Character Set +CSCS
+[numberx]: string type phone number of format specified by [typex]
+[typex]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[speed]: as defined in subclause 6.7
+[service] (service related to the phone number):
+0 asynchronous modem
+1 synchronous modem
+2 PAD Access (asynchronous)
+3 Packet Access (synchronous)
+4 voice
+5 fax
+also all other values below 128 are reserved by the present document
+[itc] (information transfer capability):
+0 3,1 kHz
+1 UDI
+</description>
+</spec>
+<spec>
+ <command>AT+CNUM=?</command>
+ <profile>Subscriber number (Query all)</profile>
+ <description>Action command returns the MSISDNs related to the subscriber (this information can be stored in the SIM/UICC or in the MT). When storing information in the SIM/UICC, if a SIM card is present or if a UICC with an active GSM application is present, the information is stored in the EFMSISDN under DFTelecom. If a UICC with an active USIM application is present, the information is stored in the EFMSISDN under ADFUSIM). If subscriber has different MSISDN for different services, each MSISDN is returned in a separate line. Refer subclause 9.2 for possible [err] values.
+Defined values
+[alphax]: optional alphanumeric string associated with [numberx]; used character set should be the one selected with command Select TE Character Set +CSCS
+[numberx]: string type phone number of format specified by [typex]
+[typex]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[speed]: as defined in subclause 6.7
+[service] (service related to the phone number):
+0 asynchronous modem
+1 synchronous modem
+2 PAD Access (asynchronous)
+3 Packet Access (synchronous)
+4 voice
+5 fax
+also all other values below 128 are reserved by the present document
+[itc] (information transfer capability):
+0 3,1 kHz
+1 UDI
+</description>
+</spec>
+<spec>
+ <command>AT+CREG=</command>
+ <profile>Network registration (Assign)</profile>
+ <description>Set command controls the presentation of an unsolicited result code +CREG: [stat] when [n]=1 and there is a change in the MT network registration status, or code +CREG: [stat][,[lac],[ci][,[AcT]]] when [n]=2 and there is a change of the network cell.
+Read command returns the status of result code presentation and an integer [stat] which shows whether the network has currently indicated the registration of the MT. Location information elements [lac], [ci] and [AcT]are returned only when [n]=2 and MT is registered in the network. Refer subclause 9.2 for possible [err] values.
+Defined values
+[n]:
+0 disable network registration unsolicited result code
+1 enable network registration unsolicited result code +CREG: [stat]
+2 enable network registration and location information unsolicited result code +CREG: [stat][,[lac],[ci][,[AcT]]]
+[stat]: registration status
+0 not registered, MT is not currently searching a new operator to register to
+1 registered, home network
+2 not registered, but MT is currently searching a new operator to register to
+3 registration denied
+4 unknown
+5 registered, roaming
+[lac]: string type; two byte location area code in hexadecimal format (e.g. '00C3' equals 195 in decimal)
+[ci]: string type; four byte UTRAN/GERAN cell ID in hexadecimal format
+[AcT]: access technology of the registered network
+0 GSM
+1 GSM Compact
+2 UTRAN
+</description>
+</spec>
+<spec>
+ <command>AT+CREG?</command>
+ <profile>Network registration (Query)</profile>
+ <description>Set command controls the presentation of an unsolicited result code +CREG: [stat] when [n]=1 and there is a change in the MT network registration status, or code +CREG: [stat][,[lac],[ci][,[AcT]]] when [n]=2 and there is a change of the network cell.
+Read command returns the status of result code presentation and an integer [stat] which shows whether the network has currently indicated the registration of the MT. Location information elements [lac], [ci] and [AcT]are returned only when [n]=2 and MT is registered in the network. Refer subclause 9.2 for possible [err] values.
+Defined values
+[n]:
+0 disable network registration unsolicited result code
+1 enable network registration unsolicited result code +CREG: [stat]
+2 enable network registration and location information unsolicited result code +CREG: [stat][,[lac],[ci][,[AcT]]]
+[stat]: registration status
+0 not registered, MT is not currently searching a new operator to register to
+1 registered, home network
+2 not registered, but MT is currently searching a new operator to register to
+3 registration denied
+4 unknown
+5 registered, roaming
+[lac]: string type; two byte location area code in hexadecimal format (e.g. '00C3' equals 195 in decimal)
+[ci]: string type; four byte UTRAN/GERAN cell ID in hexadecimal format
+[AcT]: access technology of the registered network
+0 GSM
+1 GSM Compact
+2 UTRAN
+</description>
+</spec>
+<spec>
+ <command>AT+CREG=?</command>
+ <profile>Network registration (Query all)</profile>
+ <description>Set command controls the presentation of an unsolicited result code +CREG: [stat] when [n]=1 and there is a change in the MT network registration status, or code +CREG: [stat][,[lac],[ci][,[AcT]]] when [n]=2 and there is a change of the network cell.
+Read command returns the status of result code presentation and an integer [stat] which shows whether the network has currently indicated the registration of the MT. Location information elements [lac], [ci] and [AcT]are returned only when [n]=2 and MT is registered in the network. Refer subclause 9.2 for possible [err] values.
+Defined values
+[n]:
+0 disable network registration unsolicited result code
+1 enable network registration unsolicited result code +CREG: [stat]
+2 enable network registration and location information unsolicited result code +CREG: [stat][,[lac],[ci][,[AcT]]]
+[stat]: registration status
+0 not registered, MT is not currently searching a new operator to register to
+1 registered, home network
+2 not registered, but MT is currently searching a new operator to register to
+3 registration denied
+4 unknown
+5 registered, roaming
+[lac]: string type; two byte location area code in hexadecimal format (e.g. '00C3' equals 195 in decimal)
+[ci]: string type; four byte UTRAN/GERAN cell ID in hexadecimal format
+[AcT]: access technology of the registered network
+0 GSM
+1 GSM Compact
+2 UTRAN
+</description>
+</spec>
+<spec>
+ <command>AT+COPS=</command>
+ <profile>PLMN selection (Assign)</profile>
+ <description>Set command forces an attempt to select and register the GSM/UMTS network operator. [mode] is used to select whether the selection is done automatically by the MT or is forced by this command to operator [oper] (it shall be given in format [format]) to a certain access technology, indicated in [AcT]. If the selected operator is not available, no other operator shall be selected (except [mode]=4). If the selected access technology is not available, then the same operator shall be selected in other access technology. The selected operator name format shall apply to further read commands (+COPS?) also. [mode]=2 forces an attempt to deregister from the network. The selected mode affects to all further network registration (e.g. after [mode]=2, MT shall be unregistered until [mode]=0 or 1 is selected). Refer subclause 9.2 for possible [err] values. This command should be abortable when registration/deregistration attempt is made.
+Read command returns the current mode, the currently selected operator and the current Access Technology. If no operator is selected, [format], [oper] and [ AcT] are omitted.
+Test command returns a set of five parameters, each representing an operator present in the network. A set consists of an integer indicating the availability of the operator [stat], long and short alphanumeric format of the name of the operator, numeric format representation of the operator and access technology. Any of the formats may be unavailable and should then be an empty field. The list of operators shall be in order: home network, networks referenced in SIM or active application in the UICC (GSM or USIM) in the following order: HPLMN selector, User controlled PLMN selector, Operator controlled PLMN selector and PLMN selector (in the SIM or GSM application), and other networks.
+It is recommended (although optional) that after the operator list TA returns lists of supported [mode]s and [format]s. These lists shall be delimited from the operator list by two commas.
+NOTE: The access technology selected parameters, [AcT], should only be used in terminals capable to register to more than one access technology. Selection of [AcT] does not limit the capability to cell reselections, even though access technology is selected, the phone may still re-select a cell in other access technology.
+Defined values
+[mode]:
+0 automatic ([oper] field is ignored)
+1 manual ([oper] field shall be present, and [AcT] optionally)
+2 deregister from network
+3 set only [format] (for read command +COPS?), do not attempt registration/deregistration ([oper] and [ AcT] fields are ignored); this value is not applicable in read command response
+4 manual/automatic ([oper] field shall be present); if manual selection fails, automatic mode ([mode]=0) is entered
+[format]:
+0 long format alphanumeric [oper]
+1 short format alphanumeric [oper]
+2 numeric [oper]
+[oper]: string type; [format] indicates if the format is alphanumeric or numeric; long alphanumeric format can be upto 16 characters long and short format up to 8 characters (refer GSM MoU SE.13 [9]); numeric format is the GSM Location Area Identification number (refer TS 24.008 [8] subclause 10.5.1.3) which consists of a three BCD digit country code coded as in ITU‑T E.212 Annex A [10], plus a two BCD digit network code, which is administration specific; returned [oper] shall not be in BCD format, but in IRA characters converted from BCD; hence the number has structure: (country code digit 3)(country code digit 2)(country code digit 1)(network code digit 3)(network code digit 2)(network code digit 1)
+[stat]:
+0 unknown
+1 available
+2 current
+3 forbidden
+[AcT] access technology selected:
+0 GSM
+1 GSM Compact
+2 UTRAN
+</description>
+</spec>
+<spec>
+ <command>AT+COPS?</command>
+ <profile>PLMN selection (Query)</profile>
+ <description>Set command forces an attempt to select and register the GSM/UMTS network operator. [mode] is used to select whether the selection is done automatically by the MT or is forced by this command to operator [oper] (it shall be given in format [format]) to a certain access technology, indicated in [AcT]. If the selected operator is not available, no other operator shall be selected (except [mode]=4). If the selected access technology is not available, then the same operator shall be selected in other access technology. The selected operator name format shall apply to further read commands (+COPS?) also. [mode]=2 forces an attempt to deregister from the network. The selected mode affects to all further network registration (e.g. after [mode]=2, MT shall be unregistered until [mode]=0 or 1 is selected). Refer subclause 9.2 for possible [err] values. This command should be abortable when registration/deregistration attempt is made.
+Read command returns the current mode, the currently selected operator and the current Access Technology. If no operator is selected, [format], [oper] and [ AcT] are omitted.
+Test command returns a set of five parameters, each representing an operator present in the network. A set consists of an integer indicating the availability of the operator [stat], long and short alphanumeric format of the name of the operator, numeric format representation of the operator and access technology. Any of the formats may be unavailable and should then be an empty field. The list of operators shall be in order: home network, networks referenced in SIM or active application in the UICC (GSM or USIM) in the following order: HPLMN selector, User controlled PLMN selector, Operator controlled PLMN selector and PLMN selector (in the SIM or GSM application), and other networks.
+It is recommended (although optional) that after the operator list TA returns lists of supported [mode]s and [format]s. These lists shall be delimited from the operator list by two commas.
+NOTE: The access technology selected parameters, [AcT], should only be used in terminals capable to register to more than one access technology. Selection of [AcT] does not limit the capability to cell reselections, even though access technology is selected, the phone may still re-select a cell in other access technology.
+Defined values
+[mode]:
+0 automatic ([oper] field is ignored)
+1 manual ([oper] field shall be present, and [AcT] optionally)
+2 deregister from network
+3 set only [format] (for read command +COPS?), do not attempt registration/deregistration ([oper] and [ AcT] fields are ignored); this value is not applicable in read command response
+4 manual/automatic ([oper] field shall be present); if manual selection fails, automatic mode ([mode]=0) is entered
+[format]:
+0 long format alphanumeric [oper]
+1 short format alphanumeric [oper]
+2 numeric [oper]
+[oper]: string type; [format] indicates if the format is alphanumeric or numeric; long alphanumeric format can be upto 16 characters long and short format up to 8 characters (refer GSM MoU SE.13 [9]); numeric format is the GSM Location Area Identification number (refer TS 24.008 [8] subclause 10.5.1.3) which consists of a three BCD digit country code coded as in ITU‑T E.212 Annex A [10], plus a two BCD digit network code, which is administration specific; returned [oper] shall not be in BCD format, but in IRA characters converted from BCD; hence the number has structure: (country code digit 3)(country code digit 2)(country code digit 1)(network code digit 3)(network code digit 2)(network code digit 1)
+[stat]:
+0 unknown
+1 available
+2 current
+3 forbidden
+[AcT] access technology selected:
+0 GSM
+1 GSM Compact
+2 UTRAN
+</description>
+</spec>
+<spec>
+ <command>AT+COPS=?</command>
+ <profile>PLMN selection (Query all)</profile>
+ <description>Set command forces an attempt to select and register the GSM/UMTS network operator. [mode] is used to select whether the selection is done automatically by the MT or is forced by this command to operator [oper] (it shall be given in format [format]) to a certain access technology, indicated in [AcT]. If the selected operator is not available, no other operator shall be selected (except [mode]=4). If the selected access technology is not available, then the same operator shall be selected in other access technology. The selected operator name format shall apply to further read commands (+COPS?) also. [mode]=2 forces an attempt to deregister from the network. The selected mode affects to all further network registration (e.g. after [mode]=2, MT shall be unregistered until [mode]=0 or 1 is selected). Refer subclause 9.2 for possible [err] values. This command should be abortable when registration/deregistration attempt is made.
+Read command returns the current mode, the currently selected operator and the current Access Technology. If no operator is selected, [format], [oper] and [ AcT] are omitted.
+Test command returns a set of five parameters, each representing an operator present in the network. A set consists of an integer indicating the availability of the operator [stat], long and short alphanumeric format of the name of the operator, numeric format representation of the operator and access technology. Any of the formats may be unavailable and should then be an empty field. The list of operators shall be in order: home network, networks referenced in SIM or active application in the UICC (GSM or USIM) in the following order: HPLMN selector, User controlled PLMN selector, Operator controlled PLMN selector and PLMN selector (in the SIM or GSM application), and other networks.
+It is recommended (although optional) that after the operator list TA returns lists of supported [mode]s and [format]s. These lists shall be delimited from the operator list by two commas.
+NOTE: The access technology selected parameters, [AcT], should only be used in terminals capable to register to more than one access technology. Selection of [AcT] does not limit the capability to cell reselections, even though access technology is selected, the phone may still re-select a cell in other access technology.
+Defined values
+[mode]:
+0 automatic ([oper] field is ignored)
+1 manual ([oper] field shall be present, and [AcT] optionally)
+2 deregister from network
+3 set only [format] (for read command +COPS?), do not attempt registration/deregistration ([oper] and [ AcT] fields are ignored); this value is not applicable in read command response
+4 manual/automatic ([oper] field shall be present); if manual selection fails, automatic mode ([mode]=0) is entered
+[format]:
+0 long format alphanumeric [oper]
+1 short format alphanumeric [oper]
+2 numeric [oper]
+[oper]: string type; [format] indicates if the format is alphanumeric or numeric; long alphanumeric format can be upto 16 characters long and short format up to 8 characters (refer GSM MoU SE.13 [9]); numeric format is the GSM Location Area Identification number (refer TS 24.008 [8] subclause 10.5.1.3) which consists of a three BCD digit country code coded as in ITU‑T E.212 Annex A [10], plus a two BCD digit network code, which is administration specific; returned [oper] shall not be in BCD format, but in IRA characters converted from BCD; hence the number has structure: (country code digit 3)(country code digit 2)(country code digit 1)(network code digit 3)(network code digit 2)(network code digit 1)
+[stat]:
+0 unknown
+1 available
+2 current
+3 forbidden
+[AcT] access technology selected:
+0 GSM
+1 GSM Compact
+2 UTRAN
+</description>
+</spec>
+<spec>
+ <command>AT+CLCK=</command>
+ <profile>Facility lock (Assign)</profile>
+ <description>Execute command is used to lock, unlock or interrogate a MT or a network facility [fac]. Password is normally needed to do such actions. When querying the status of a network service ([mode]=2) the response line for 'not active' case ([status]=0) should be returned only if service is not active for any [class]. Refer subclause 9.2 for possible [err] values. This command should be abortable when network facilities are set or interrogated.
+Call barring facilities are based on GSM/UMTS supplementary services (refer 3GPP TS 22.088 [6]). The interaction of these with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standard.
+Test command returns facility values supported as a compound value.
+Defined values
+[fac] values reserved by the present document:
+'CS' CNTRL (lock CoNTRoL surface (e.g. phone keyboard))
+'PS' PH‑SIM (lock PHone to SIM/UICC card) (MT asks password when other than current SIM/UICC card inserted; MT may remember certain amount of previously used cards thus not requiring password when they are inserted)
+'PF' lock Phone to the very First inserted SIM/UICC card (also referred in the present document as PH-FSIM) (MT asks password when other than the first SIM/UICC card is inserted)
+'SC' SIM (lock SIM/UICC card) (SIM/UICC asks password in MT power‑up and when this lock command issued)
+'AO' BAOC (Barr All Outgoing Calls) (refer 3GPP TS 22.088 [6] clause 1)
+'OI' BOIC (Barr Outgoing International Calls) (refer 3GPP TS 22.088 [6] clause 1)
+'OX' BOIC‑exHC (Barr Outgoing International Calls except to Home Country) (refer 3GPP TS 22.088 [6] clause 1)
+'AI' BAIC (Barr All Incoming Calls) (refer 3GPP TS 22.088 [6] clause 2)
+'IR' BIC‑Roam (Barr Incoming Calls when Roaming outside the home country) (refer 3GPP TS 22.088 [6] clause 2)
+'NT' barr incoming calls from numbers Not stored to TA memory
+'NM' barr incoming calls from numbers Not stored to MT memory
+'NS' barr incoming calls from numbers Not stored to SIM/UICC memory
+'NA' barr incoming calls from numbers Not stored in Any memory
+'AB' All Barring services (refer 3GPP TS 22.030 [19]) (applicable only for [mode]=0)
+'AG' All outGoing barring services (refer 3GPP TS 22.030 [19]) (applicable only for [mode]=0)
+'AC' All inComing barring services (refer 3GPP TS 22.030 [19]) (applicable only for [mode]=0)
+'FD' SIM card or active application in the UICC (GSM or USIM) fixed dialling memory feature (if PIN2 authentication has not been done during the current session, PIN2 is required as [passwd])
+'PN' Network Personalization (refer 3GPP TS 22.022 [33])
+'PU' network sUbset Personalization (refer 3GPP TS 22.022 [33])
+'PP' service Provider Personalization (refer 3GPP TS 22.022 [33])
+'PC' Corporate Personalization (refer 3GPP TS 22.022 [33])
+[mode]:
+0 unlock
+1 lock
+2 query status
+[status]:
+0 not active
+1 active
+[passwd]: string type; shall be the same as password specified for the facility from the MT user interface or with command Change Password +CPWD
+[classx] is a sum of integers each representing a class of information (default 7):
+1 voice (telephony)
+2 data (refers to all bearer services; with [mode]=2 this may refer only to some bearer service if TA does not support values 16, 32, 64 and 128)
+4 fax (facsimile services)
+8 short message service
+16 data circuit sync
+32 data circuit async
+64 dedicated packet access
+128 dedicated PAD access
+</description>
+</spec>
+<spec>
+ <command>AT+CLCK=?</command>
+ <profile>Facility lock (Query all)</profile>
+ <description>Execute command is used to lock, unlock or interrogate a MT or a network facility [fac]. Password is normally needed to do such actions. When querying the status of a network service ([mode]=2) the response line for 'not active' case ([status]=0) should be returned only if service is not active for any [class]. Refer subclause 9.2 for possible [err] values. This command should be abortable when network facilities are set or interrogated.
+Call barring facilities are based on GSM/UMTS supplementary services (refer 3GPP TS 22.088 [6]). The interaction of these with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standard.
+Test command returns facility values supported as a compound value.
+Defined values
+[fac] values reserved by the present document:
+'CS' CNTRL (lock CoNTRoL surface (e.g. phone keyboard))
+'PS' PH‑SIM (lock PHone to SIM/UICC card) (MT asks password when other than current SIM/UICC card inserted; MT may remember certain amount of previously used cards thus not requiring password when they are inserted)
+'PF' lock Phone to the very First inserted SIM/UICC card (also referred in the present document as PH-FSIM) (MT asks password when other than the first SIM/UICC card is inserted)
+'SC' SIM (lock SIM/UICC card) (SIM/UICC asks password in MT power‑up and when this lock command issued)
+'AO' BAOC (Barr All Outgoing Calls) (refer 3GPP TS 22.088 [6] clause 1)
+'OI' BOIC (Barr Outgoing International Calls) (refer 3GPP TS 22.088 [6] clause 1)
+'OX' BOIC‑exHC (Barr Outgoing International Calls except to Home Country) (refer 3GPP TS 22.088 [6] clause 1)
+'AI' BAIC (Barr All Incoming Calls) (refer 3GPP TS 22.088 [6] clause 2)
+'IR' BIC‑Roam (Barr Incoming Calls when Roaming outside the home country) (refer 3GPP TS 22.088 [6] clause 2)
+'NT' barr incoming calls from numbers Not stored to TA memory
+'NM' barr incoming calls from numbers Not stored to MT memory
+'NS' barr incoming calls from numbers Not stored to SIM/UICC memory
+'NA' barr incoming calls from numbers Not stored in Any memory
+'AB' All Barring services (refer 3GPP TS 22.030 [19]) (applicable only for [mode]=0)
+'AG' All outGoing barring services (refer 3GPP TS 22.030 [19]) (applicable only for [mode]=0)
+'AC' All inComing barring services (refer 3GPP TS 22.030 [19]) (applicable only for [mode]=0)
+'FD' SIM card or active application in the UICC (GSM or USIM) fixed dialling memory feature (if PIN2 authentication has not been done during the current session, PIN2 is required as [passwd])
+'PN' Network Personalization (refer 3GPP TS 22.022 [33])
+'PU' network sUbset Personalization (refer 3GPP TS 22.022 [33])
+'PP' service Provider Personalization (refer 3GPP TS 22.022 [33])
+'PC' Corporate Personalization (refer 3GPP TS 22.022 [33])
+[mode]:
+0 unlock
+1 lock
+2 query status
+[status]:
+0 not active
+1 active
+[passwd]: string type; shall be the same as password specified for the facility from the MT user interface or with command Change Password +CPWD
+[classx] is a sum of integers each representing a class of information (default 7):
+1 voice (telephony)
+2 data (refers to all bearer services; with [mode]=2 this may refer only to some bearer service if TA does not support values 16, 32, 64 and 128)
+4 fax (facsimile services)
+8 short message service
+16 data circuit sync
+32 data circuit async
+64 dedicated packet access
+128 dedicated PAD access
+</description>
+</spec>
+<spec>
+ <command>AT+CPWD=</command>
+ <profile>Change password (Assign)</profile>
+ <description>Action command sets a new password for the facility lock function defined by command Facility Lock +CLCK. Refer subclause 9.2 for possible [err] values.
+Test command returns a list of pairs which present the available facilities and the maximum length of their password.
+Defined values
+[fac]:
+'P2' SIM PIN2
+ refer Facility Lock +CLCK for other values
+[oldpwd], [newpwd]: string type; [oldpwd] shall be the same as password specified for the facility from the MT user interface or with command Change Password +CPWD and [newpwd] is the new password; maximum length of password can be determined with [pwdlength]
+[pwdlength]: integer type maximum length of the password for the facility
+</description>
+</spec>
+<spec>
+ <command>AT+CPWD=?</command>
+ <profile>Change password (Query all)</profile>
+ <description>Action command sets a new password for the facility lock function defined by command Facility Lock +CLCK. Refer subclause 9.2 for possible [err] values.
+Test command returns a list of pairs which present the available facilities and the maximum length of their password.
+Defined values
+[fac]:
+'P2' SIM PIN2
+ refer Facility Lock +CLCK for other values
+[oldpwd], [newpwd]: string type; [oldpwd] shall be the same as password specified for the facility from the MT user interface or with command Change Password +CPWD and [newpwd] is the new password; maximum length of password can be determined with [pwdlength]
+[pwdlength]: integer type maximum length of the password for the facility
+</description>
+</spec>
+<spec>
+ <command>AT+CLIP=</command>
+ <profile>Calling line identification presentation (Assign)</profile>
+ <description>This command refers to the GSM/UMTS supplementary service CLIP (Calling Line Identification Presentation) that enables a called subscriber to get the calling line identity (CLI) of the calling party when receiving a mobile terminated call. Set command enables or disables the presentation of the CLI at the TE. It has no effect on the execution of the supplementary service CLIP in the network.
+When the presentation of the CLI at the TE is enabled (and calling subscriber allows), +CLIP: [number],[type][,[subaddr],[satype][,[[alpha]][,[CLI validity]]]] response is returned after every RING (or +CRING: [type]; refer subclause 'Cellular result codes +CRC') result code sent from TA to TE. It is manufacturer specific if this response is used when normal voice call is answered.
+Read command gives the status of [n], and also triggers an interrogation of the provision status of the CLIP service according 3GPP TS 22.081 [3] (given in [m]).Test command returns values supported as a compound value.
+Defined values
+[n] (parameter sets/shows the result code presentation status to the TE):
+0 disable
+1 enable
+[m] (parameter shows the subscriber CLIP service status in the network):
+0 CLIP not provisioned
+1 CLIP provisioned
+2 unknown (e.g. no network, etc.)
+[number]: string type phone number of format specified by [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[subaddr]: string type subaddress of format specified by [satype]
+[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
+[alpha]: optional string type alphanumeric representation of [number] corresponding to the entry found in phonebook; used character set should be the one selected with command Select TE Character Set +CSCS
+[CLI validity]:
+0 CLI valid
+1 CLI has been withheld by the originator.
+2 CLI is not available due to interworking problems or limitations of originating network.
+When CLI is not available ( [CLI validity]=2), [number] shall be an empty string ('') and [type] value will not be significant. Nevertheless, TA may return the recommended value 128 for [type] ((TON/NPI unknown in accordance with TS 24.008 [8] subclause 10.5.4.7).
+When CLI has been withheld by the originator, ([CLI validity]=1) and the CLIP is provisioned with the 'override category' option (refer 3GPP TS 22.081[3] and 3GPP TS 23.081[40]), [number] and [type] is provided. Otherwise, TA shall return the same setting for [number] and [type] as if the CLI was not available.
+</description>
+</spec>
+<spec>
+ <command>AT+CLIP?</command>
+ <profile>Calling line identification presentation (Query)</profile>
+ <description>This command refers to the GSM/UMTS supplementary service CLIP (Calling Line Identification Presentation) that enables a called subscriber to get the calling line identity (CLI) of the calling party when receiving a mobile terminated call. Set command enables or disables the presentation of the CLI at the TE. It has no effect on the execution of the supplementary service CLIP in the network.
+When the presentation of the CLI at the TE is enabled (and calling subscriber allows), +CLIP: [number],[type][,[subaddr],[satype][,[[alpha]][,[CLI validity]]]] response is returned after every RING (or +CRING: [type]; refer subclause 'Cellular result codes +CRC') result code sent from TA to TE. It is manufacturer specific if this response is used when normal voice call is answered.
+Read command gives the status of [n], and also triggers an interrogation of the provision status of the CLIP service according 3GPP TS 22.081 [3] (given in [m]).Test command returns values supported as a compound value.
+Defined values
+[n] (parameter sets/shows the result code presentation status to the TE):
+0 disable
+1 enable
+[m] (parameter shows the subscriber CLIP service status in the network):
+0 CLIP not provisioned
+1 CLIP provisioned
+2 unknown (e.g. no network, etc.)
+[number]: string type phone number of format specified by [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[subaddr]: string type subaddress of format specified by [satype]
+[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
+[alpha]: optional string type alphanumeric representation of [number] corresponding to the entry found in phonebook; used character set should be the one selected with command Select TE Character Set +CSCS
+[CLI validity]:
+0 CLI valid
+1 CLI has been withheld by the originator.
+2 CLI is not available due to interworking problems or limitations of originating network.
+When CLI is not available ( [CLI validity]=2), [number] shall be an empty string ('') and [type] value will not be significant. Nevertheless, TA may return the recommended value 128 for [type] ((TON/NPI unknown in accordance with TS 24.008 [8] subclause 10.5.4.7).
+When CLI has been withheld by the originator, ([CLI validity]=1) and the CLIP is provisioned with the 'override category' option (refer 3GPP TS 22.081[3] and 3GPP TS 23.081[40]), [number] and [type] is provided. Otherwise, TA shall return the same setting for [number] and [type] as if the CLI was not available.
+</description>
+</spec>
+<spec>
+ <command>AT+CLIP=?</command>
+ <profile>Calling line identification presentation (Query all)</profile>
+ <description>This command refers to the GSM/UMTS supplementary service CLIP (Calling Line Identification Presentation) that enables a called subscriber to get the calling line identity (CLI) of the calling party when receiving a mobile terminated call. Set command enables or disables the presentation of the CLI at the TE. It has no effect on the execution of the supplementary service CLIP in the network.
+When the presentation of the CLI at the TE is enabled (and calling subscriber allows), +CLIP: [number],[type][,[subaddr],[satype][,[[alpha]][,[CLI validity]]]] response is returned after every RING (or +CRING: [type]; refer subclause 'Cellular result codes +CRC') result code sent from TA to TE. It is manufacturer specific if this response is used when normal voice call is answered.
+Read command gives the status of [n], and also triggers an interrogation of the provision status of the CLIP service according 3GPP TS 22.081 [3] (given in [m]).Test command returns values supported as a compound value.
+Defined values
+[n] (parameter sets/shows the result code presentation status to the TE):
+0 disable
+1 enable
+[m] (parameter shows the subscriber CLIP service status in the network):
+0 CLIP not provisioned
+1 CLIP provisioned
+2 unknown (e.g. no network, etc.)
+[number]: string type phone number of format specified by [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[subaddr]: string type subaddress of format specified by [satype]
+[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
+[alpha]: optional string type alphanumeric representation of [number] corresponding to the entry found in phonebook; used character set should be the one selected with command Select TE Character Set +CSCS
+[CLI validity]:
+0 CLI valid
+1 CLI has been withheld by the originator.
+2 CLI is not available due to interworking problems or limitations of originating network.
+When CLI is not available ( [CLI validity]=2), [number] shall be an empty string ('') and [type] value will not be significant. Nevertheless, TA may return the recommended value 128 for [type] ((TON/NPI unknown in accordance with TS 24.008 [8] subclause 10.5.4.7).
+When CLI has been withheld by the originator, ([CLI validity]=1) and the CLIP is provisioned with the 'override category' option (refer 3GPP TS 22.081[3] and 3GPP TS 23.081[40]), [number] and [type] is provided. Otherwise, TA shall return the same setting for [number] and [type] as if the CLI was not available.
+</description>
+</spec>
+<spec>
+ <command>AT+CLIR=</command>
+ <profile>Calling line identification restriction (Assign)</profile>
+ <description>This command refers to CLIR‑service according to 3GPP TS 22.081 [3] that allows a calling subscriber to enable or disable the presentation of the CLI to the called party when originating a call.
+Set command overrides the CLIR subscription (default is restricted or allowed) when temporary mode is provisioned as a default adjustment for all following outgoing calls. This adjustment can be revoked by using the opposite command.. If this command is used by a subscriber without provision of CLIR in permanent mode the network will act according 3GPP TS 22.081 [3].
+Read command gives the default adjustment for all outgoing calls (given in [n]), and also triggers an interrogation of the provision status of the CLIR service (given in [m]). Test command returns values supported as a compound value.
+NOTE: On a per call base CLIR functionality is explained in subclause 'ITU‑T V.250 [14] dial command'.
+Defined values
+[n] (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] (parameter shows the subscriber CLIR service status in the network):
+0 CLIR not provisioned
+1 CLIR provisioned in permanent mode
+2 unknown (e.g. no network, etc.)
+3 CLIR temporary mode presentation restricted
+4 CLIR temporary mode presentation allowed
+</description>
+</spec>
+<spec>
+ <command>AT+CLIR?</command>
+ <profile>Calling line identification restriction (Query)</profile>
+ <description>This command refers to CLIR‑service according to 3GPP TS 22.081 [3] that allows a calling subscriber to enable or disable the presentation of the CLI to the called party when originating a call.
+Set command overrides the CLIR subscription (default is restricted or allowed) when temporary mode is provisioned as a default adjustment for all following outgoing calls. This adjustment can be revoked by using the opposite command.. If this command is used by a subscriber without provision of CLIR in permanent mode the network will act according 3GPP TS 22.081 [3].
+Read command gives the default adjustment for all outgoing calls (given in [n]), and also triggers an interrogation of the provision status of the CLIR service (given in [m]). Test command returns values supported as a compound value.
+NOTE: On a per call base CLIR functionality is explained in subclause 'ITU‑T V.250 [14] dial command'.
+Defined values
+[n] (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] (parameter shows the subscriber CLIR service status in the network):
+0 CLIR not provisioned
+1 CLIR provisioned in permanent mode
+2 unknown (e.g. no network, etc.)
+3 CLIR temporary mode presentation restricted
+4 CLIR temporary mode presentation allowed
+</description>
+</spec>
+<spec>
+ <command>AT+CLIR=?</command>
+ <profile>Calling line identification restriction (Query all)</profile>
+ <description>This command refers to CLIR‑service according to 3GPP TS 22.081 [3] that allows a calling subscriber to enable or disable the presentation of the CLI to the called party when originating a call.
+Set command overrides the CLIR subscription (default is restricted or allowed) when temporary mode is provisioned as a default adjustment for all following outgoing calls. This adjustment can be revoked by using the opposite command.. If this command is used by a subscriber without provision of CLIR in permanent mode the network will act according 3GPP TS 22.081 [3].
+Read command gives the default adjustment for all outgoing calls (given in [n]), and also triggers an interrogation of the provision status of the CLIR service (given in [m]). Test command returns values supported as a compound value.
+NOTE: On a per call base CLIR functionality is explained in subclause 'ITU‑T V.250 [14] dial command'.
+Defined values
+[n] (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] (parameter shows the subscriber CLIR service status in the network):
+0 CLIR not provisioned
+1 CLIR provisioned in permanent mode
+2 unknown (e.g. no network, etc.)
+3 CLIR temporary mode presentation restricted
+4 CLIR temporary mode presentation allowed
+</description>
+</spec>
+<spec>
+ <command>AT+COLP=</command>
+ <profile>Connected line identification presentation (Assign)</profile>
+ <description>This command refers to the GSM/UMTS supplementary service COLP (Connected Line Identification Presentation) that enables a calling subscriber to get the connected line identity (COL) of the called party after setting up a mobile originated call. The command enables or disables the presentation of the COL at the TE. It has no effect on the execution of the supplementary service COLR in the network.
+When enabled (and called subscriber allows), +COLP:
+[number],[type][,[subaddr],[satype] [,[alpha]]] intermediate result code is returned from TA to TE before any +CR or V.250 [14] responses. It is manufacturer specific if this response is used when normal voice call is established.
+Read command gives the status of [n], and also triggers an interrogation of the provision status of the COLP service according 3GPP TS 22.081 [3] (given in [m]).
+Test command returns values supported as a compound value.
+Defined values
+[n] (parameter sets/shows the result code presentation status to the TE):
+0 disable
+1 enable
+[m] (parameter shows the subscriber COLP service status in the network):
+0 COLP not provisioned
+1 COLP provisioned
+2 unknown (e.g. no network, etc.)
+[number], [type], [subaddr], [satype], [alpha]: refer +CLIP
+</description>
+</spec>
+<spec>
+ <command>AT+COLP?</command>
+ <profile>Connected line identification presentation (Query)</profile>
+ <description>This command refers to the GSM/UMTS supplementary service COLP (Connected Line Identification Presentation) that enables a calling subscriber to get the connected line identity (COL) of the called party after setting up a mobile originated call. The command enables or disables the presentation of the COL at the TE. It has no effect on the execution of the supplementary service COLR in the network.
+When enabled (and called subscriber allows), +COLP:
+[number],[type][,[subaddr],[satype] [,[alpha]]] intermediate result code is returned from TA to TE before any +CR or V.250 [14] responses. It is manufacturer specific if this response is used when normal voice call is established.
+Read command gives the status of [n], and also triggers an interrogation of the provision status of the COLP service according 3GPP TS 22.081 [3] (given in [m]).
+Test command returns values supported as a compound value.
+Defined values
+[n] (parameter sets/shows the result code presentation status to the TE):
+0 disable
+1 enable
+[m] (parameter shows the subscriber COLP service status in the network):
+0 COLP not provisioned
+1 COLP provisioned
+2 unknown (e.g. no network, etc.)
+[number], [type], [subaddr], [satype], [alpha]: refer +CLIP
+</description>
+</spec>
+<spec>
+ <command>AT+COLP=?</command>
+ <profile>Connected line identification presentation (Query all)</profile>
+ <description>This command refers to the GSM/UMTS supplementary service COLP (Connected Line Identification Presentation) that enables a calling subscriber to get the connected line identity (COL) of the called party after setting up a mobile originated call. The command enables or disables the presentation of the COL at the TE. It has no effect on the execution of the supplementary service COLR in the network.
+When enabled (and called subscriber allows), +COLP:
+[number],[type][,[subaddr],[satype] [,[alpha]]] intermediate result code is returned from TA to TE before any +CR or V.250 [14] responses. It is manufacturer specific if this response is used when normal voice call is established.
+Read command gives the status of [n], and also triggers an interrogation of the provision status of the COLP service according 3GPP TS 22.081 [3] (given in [m]).
+Test command returns values supported as a compound value.
+Defined values
+[n] (parameter sets/shows the result code presentation status to the TE):
+0 disable
+1 enable
+[m] (parameter shows the subscriber COLP service status in the network):
+0 COLP not provisioned
+1 COLP provisioned
+2 unknown (e.g. no network, etc.)
+[number], [type], [subaddr], [satype], [alpha]: refer +CLIP
+</description>
+</spec>
+<spec>
+ <command>AT+CDIP=</command>
+ <profile>Called line identification presentation (Assign)</profile>
+ <description>This command related to a network service that provides 'multiple called numbers (called line identifications) service' to an MT. This command enables a called subscriber to get the called line identification of the called party when receiving a mobile terminated call. Set command enables or disables the presentation of the called line identifications at the TE.
+When the presentation of the called line identification at the TE is enabled, +CDIP:[number],[type][,[subaddr],[satype]] response is returned after every RING (or +CRING: [type]; refer subclause 'Cellular result codes +CRC') result code sent from TA to TE. It is manufacturer specific if this response is used when normal voice call is answered.
+Read command gives the status of [n], and also triggers an interrogation of the provision status of the 'multiple called numbers' service. Test command returns values supported as a compound value.
+Defined values
+[n] (parameter sets/shows the result code presentation status to the TE):
+0 disable
+1 enable
+[m] (parameter shows the subscriber 'multiple called numbers' service status in the network):
+0 'multiple called numbers service' is not provisioned
+1 'multiple called numbers service' is provisioned
+2 unknown (e.g. no network, etc.)
+[number]: string type phone number of format specified by [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[subaddr]: string type subaddress of format specified by [satype]
+[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
+</description>
+</spec>
+<spec>
+ <command>AT+CDIP?</command>
+ <profile>Called line identification presentation (Query)</profile>
+ <description>This command related to a network service that provides 'multiple called numbers (called line identifications) service' to an MT. This command enables a called subscriber to get the called line identification of the called party when receiving a mobile terminated call. Set command enables or disables the presentation of the called line identifications at the TE.
+When the presentation of the called line identification at the TE is enabled, +CDIP:[number],[type][,[subaddr],[satype]] response is returned after every RING (or +CRING: [type]; refer subclause 'Cellular result codes +CRC') result code sent from TA to TE. It is manufacturer specific if this response is used when normal voice call is answered.
+Read command gives the status of [n], and also triggers an interrogation of the provision status of the 'multiple called numbers' service. Test command returns values supported as a compound value.
+Defined values
+[n] (parameter sets/shows the result code presentation status to the TE):
+0 disable
+1 enable
+[m] (parameter shows the subscriber 'multiple called numbers' service status in the network):
+0 'multiple called numbers service' is not provisioned
+1 'multiple called numbers service' is provisioned
+2 unknown (e.g. no network, etc.)
+[number]: string type phone number of format specified by [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[subaddr]: string type subaddress of format specified by [satype]
+[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
+</description>
+</spec>
+<spec>
+ <command>AT+CDIP=?</command>
+ <profile>Called line identification presentation (Query all)</profile>
+ <description>This command related to a network service that provides 'multiple called numbers (called line identifications) service' to an MT. This command enables a called subscriber to get the called line identification of the called party when receiving a mobile terminated call. Set command enables or disables the presentation of the called line identifications at the TE.
+When the presentation of the called line identification at the TE is enabled, +CDIP:[number],[type][,[subaddr],[satype]] response is returned after every RING (or +CRING: [type]; refer subclause 'Cellular result codes +CRC') result code sent from TA to TE. It is manufacturer specific if this response is used when normal voice call is answered.
+Read command gives the status of [n], and also triggers an interrogation of the provision status of the 'multiple called numbers' service. Test command returns values supported as a compound value.
+Defined values
+[n] (parameter sets/shows the result code presentation status to the TE):
+0 disable
+1 enable
+[m] (parameter shows the subscriber 'multiple called numbers' service status in the network):
+0 'multiple called numbers service' is not provisioned
+1 'multiple called numbers service' is provisioned
+2 unknown (e.g. no network, etc.)
+[number]: string type phone number of format specified by [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[subaddr]: string type subaddress of format specified by [satype]
+[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
+</description>
+</spec>
+<spec>
+ <command>AT+CCUG=</command>
+ <profile>Closed user group (Assign)</profile>
+ <description>This command allows control of the Closed User Group supplementary service (refer 3GPP TS 22.085 [21]). Set command enables the served subscriber to select a CUG index, to suppress the Outgoing Access (OA), and to suppress the preferential CUG.
+Set command with [n]=1 enables to control the CUG information on the air interface as a default adjustment for all following outgoing calls. The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standard.
+NOTE: On a per call base CUG functionality is explained in subclause 'ITU‑T V.250 [14] dial command'.
+Defined values
+[n]:
+0 disable CUG temporary mode
+1 enable CUG temporary mode
+[index]:
+0...9 CUG index
+10 no index (preferred CUG taken from subscriber data)
+[info]:
+0 no information
+1 suppress OA
+2 suppress preferential CUG
+3 suppress OA and preferential CUG
+</description>
+</spec>
+<spec>
+ <command>AT+CCUG?</command>
+ <profile>Closed user group (Query)</profile>
+ <description>This command allows control of the Closed User Group supplementary service (refer 3GPP TS 22.085 [21]). Set command enables the served subscriber to select a CUG index, to suppress the Outgoing Access (OA), and to suppress the preferential CUG.
+Set command with [n]=1 enables to control the CUG information on the air interface as a default adjustment for all following outgoing calls. The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standard.
+NOTE: On a per call base CUG functionality is explained in subclause 'ITU‑T V.250 [14] dial command'.
+Defined values
+[n]:
+0 disable CUG temporary mode
+1 enable CUG temporary mode
+[index]:
+0...9 CUG index
+10 no index (preferred CUG taken from subscriber data)
+[info]:
+0 no information
+1 suppress OA
+2 suppress preferential CUG
+3 suppress OA and preferential CUG
+</description>
+</spec>
+<spec>
+ <command>AT+CCUG=?</command>
+ <profile>Closed user group (Query all)</profile>
+ <description>This command allows control of the Closed User Group supplementary service (refer 3GPP TS 22.085 [21]). Set command enables the served subscriber to select a CUG index, to suppress the Outgoing Access (OA), and to suppress the preferential CUG.
+Set command with [n]=1 enables to control the CUG information on the air interface as a default adjustment for all following outgoing calls. The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standard.
+NOTE: On a per call base CUG functionality is explained in subclause 'ITU‑T V.250 [14] dial command'.
+Defined values
+[n]:
+0 disable CUG temporary mode
+1 enable CUG temporary mode
+[index]:
+0...9 CUG index
+10 no index (preferred CUG taken from subscriber data)
+[info]:
+0 no information
+1 suppress OA
+2 suppress preferential CUG
+3 suppress OA and preferential CUG
+</description>
+</spec>
+<spec>
+ <command>AT+CCFC=</command>
+ <profile>Call forwarding number and conditions (Assign)</profile>
+ <description>This command allows control of the call forwarding supplementary service according to 3GPP TS 22.082 [4]. Registration, erasure, activation, deactivation, and status query are supported. When querying the status of a network service ([mode]=2) the response line for 'not active' case ([status]=0) should be returned only if service is not active for any [class].
+Test command returns reason values supported as a compound value.
+Defined values
+[reason]:
+0 unconditional
+1 mobile busy
+2 no reply
+3 not reachable
+4 all call forwarding (refer 3GPP TS 22.030 [19])
+5 all conditional call forwarding (refer 3GPP TS 22.030 [19])
+[mode]:
+0 disable
+1 enable
+2 query status
+3 registration
+4 erasure
+[number]: string type phone number of forwarding address in format specified by [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
+[subaddr]: string type subaddress of format specified by [satype]
+[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8); default 128
+[classx] is a sum of integers each representing a class of information (default 7):
+1 voice (telephony)
+2 data (refers to all bearer services; with [mode]=2 this may refer only to some bearer service if TA does not support values 16, 32, 64 and 128)
+4 fax (facsimile services)
+8 short message service
+16 data circuit sync
+32 data circuit async
+64 dedicated packet access
+128 dedicated PAD access
+[time]:
+1...30 when 'no reply' is enabled or queried, this gives the time in seconds to wait before call is forwarded, default value 20
+[status]:
+0 not active
+1 active
+</description>
+</spec>
+<spec>
+ <command>AT+CCFC=?</command>
+ <profile>Call forwarding number and conditions (Query all)</profile>
+ <description>This command allows control of the call forwarding supplementary service according to 3GPP TS 22.082 [4]. Registration, erasure, activation, deactivation, and status query are supported. When querying the status of a network service ([mode]=2) the response line for 'not active' case ([status]=0) should be returned only if service is not active for any [class].
+Test command returns reason values supported as a compound value.
+Defined values
+[reason]:
+0 unconditional
+1 mobile busy
+2 no reply
+3 not reachable
+4 all call forwarding (refer 3GPP TS 22.030 [19])
+5 all conditional call forwarding (refer 3GPP TS 22.030 [19])
+[mode]:
+0 disable
+1 enable
+2 query status
+3 registration
+4 erasure
+[number]: string type phone number of forwarding address in format specified by [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
+[subaddr]: string type subaddress of format specified by [satype]
+[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8); default 128
+[classx] is a sum of integers each representing a class of information (default 7):
+1 voice (telephony)
+2 data (refers to all bearer services; with [mode]=2 this may refer only to some bearer service if TA does not support values 16, 32, 64 and 128)
+4 fax (facsimile services)
+8 short message service
+16 data circuit sync
+32 data circuit async
+64 dedicated packet access
+128 dedicated PAD access
+[time]:
+1...30 when 'no reply' is enabled or queried, this gives the time in seconds to wait before call is forwarded, default value 20
+[status]:
+0 not active
+1 active
+</description>
+</spec>
+<spec>
+ <command>AT+CCWA=</command>
+ <profile>Call waiting (Assign)</profile>
+ <description>This command allows control of the Call Waiting supplementary service according to 3GPP TS 22.083 [5]. Activation, deactivation and status query are supported. When querying the status of a network service ([mode]=2) the response line for 'not active' case ([status]=0) should be returned only if service is not active for any [class]. Parameter [n] is used to disable/enable the presentation of an unsolicited result code +CCWA: [number],[type],[class],[[alpha]][,[CLI validity][,[subaddr],[satype] [,[priority] ]]] to the TE when call waiting service is enabled. Command should be abortable when network is interrogated.
+The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
+Test command returns values supported as a compound value.
+Defined values
+[n] (sets/shows the result code presentation status to the TE):
+0 disable
+1 enable
+[mode] (when [mode] parameter is not given, network is not interrogated):
+0 disable
+1 enable
+2 query status
+[classx] is a sum of integers each representing a class of information (default 7):
+1 voice (telephony)
+2 data (refers to all bearer services; with [mode]=2 this may refer only to some bearer service if TA does not support values 16, 32, 64 and 128)
+4 fax (facsimile services)
+8 short message service
+16 data circuit sync
+32 data circuit async
+64 dedicated packet access
+128 dedicated PAD access
+[status]:
+0 not active
+1 active
+[number]: string type phone number of calling address in format specified by [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[alpha]: optional string type alphanumeric representation of [number] corresponding to the entry found in phonebook; used character set should be the one selected with command Select TE Character Set +CSCS
+[CLI validity]:
+0 CLI valid
+1 CLI has been withheld by the originator.
+2 CLI is not available due to interworking problems or limitations of originating network.
+When CLI is not available ([CLI validity]=2), [number] shall be an empty string ('') and [type] value will not be significant. Nevertheless, TA may return the recommended value 128 for [type] ((TON/NPI unknown in accordance with TS 24.008 [8] subclause 10.5.4.7).
+When CLI has been withheld by the originator, ([CLI validity]=1) and the CLIP is provisioned with the 'override category' option (refer 3GPP TS 22.081[3] and 3GPP TS 23.081[40]), [number] and [type] is provided. Otherwise, TA shall return the same setting for [number] and [type] as if the CLI was not available.
+[subaddr]: string type subaddress of format specified by [satype]
+[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
+[priority]: optional digit type parameter indicating that the eMLPP priority level of the incoming call. The priority level values are as defined in eMLPP specification 3GPP TS 22.067 [54].
+
+</description>
+</spec>
+<spec>
+ <command>AT+CCWA?</command>
+ <profile>Call waiting (Query)</profile>
+ <description>This command allows control of the Call Waiting supplementary service according to 3GPP TS 22.083 [5]. Activation, deactivation and status query are supported. When querying the status of a network service ([mode]=2) the response line for 'not active' case ([status]=0) should be returned only if service is not active for any [class]. Parameter [n] is used to disable/enable the presentation of an unsolicited result code +CCWA: [number],[type],[class],[[alpha]][,[CLI validity][,[subaddr],[satype] [,[priority] ]]] to the TE when call waiting service is enabled. Command should be abortable when network is interrogated.
+The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
+Test command returns values supported as a compound value.
+Defined values
+[n] (sets/shows the result code presentation status to the TE):
+0 disable
+1 enable
+[mode] (when [mode] parameter is not given, network is not interrogated):
+0 disable
+1 enable
+2 query status
+[classx] is a sum of integers each representing a class of information (default 7):
+1 voice (telephony)
+2 data (refers to all bearer services; with [mode]=2 this may refer only to some bearer service if TA does not support values 16, 32, 64 and 128)
+4 fax (facsimile services)
+8 short message service
+16 data circuit sync
+32 data circuit async
+64 dedicated packet access
+128 dedicated PAD access
+[status]:
+0 not active
+1 active
+[number]: string type phone number of calling address in format specified by [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[alpha]: optional string type alphanumeric representation of [number] corresponding to the entry found in phonebook; used character set should be the one selected with command Select TE Character Set +CSCS
+[CLI validity]:
+0 CLI valid
+1 CLI has been withheld by the originator.
+2 CLI is not available due to interworking problems or limitations of originating network.
+When CLI is not available ([CLI validity]=2), [number] shall be an empty string ('') and [type] value will not be significant. Nevertheless, TA may return the recommended value 128 for [type] ((TON/NPI unknown in accordance with TS 24.008 [8] subclause 10.5.4.7).
+When CLI has been withheld by the originator, ([CLI validity]=1) and the CLIP is provisioned with the 'override category' option (refer 3GPP TS 22.081[3] and 3GPP TS 23.081[40]), [number] and [type] is provided. Otherwise, TA shall return the same setting for [number] and [type] as if the CLI was not available.
+[subaddr]: string type subaddress of format specified by [satype]
+[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
+[priority]: optional digit type parameter indicating that the eMLPP priority level of the incoming call. The priority level values are as defined in eMLPP specification 3GPP TS 22.067 [54].
+
+</description>
+</spec>
+<spec>
+ <command>AT+CCWA=?</command>
+ <profile>Call waiting (Query all)</profile>
+ <description>This command allows control of the Call Waiting supplementary service according to 3GPP TS 22.083 [5]. Activation, deactivation and status query are supported. When querying the status of a network service ([mode]=2) the response line for 'not active' case ([status]=0) should be returned only if service is not active for any [class]. Parameter [n] is used to disable/enable the presentation of an unsolicited result code +CCWA: [number],[type],[class],[[alpha]][,[CLI validity][,[subaddr],[satype] [,[priority] ]]] to the TE when call waiting service is enabled. Command should be abortable when network is interrogated.
+The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
+Test command returns values supported as a compound value.
+Defined values
+[n] (sets/shows the result code presentation status to the TE):
+0 disable
+1 enable
+[mode] (when [mode] parameter is not given, network is not interrogated):
+0 disable
+1 enable
+2 query status
+[classx] is a sum of integers each representing a class of information (default 7):
+1 voice (telephony)
+2 data (refers to all bearer services; with [mode]=2 this may refer only to some bearer service if TA does not support values 16, 32, 64 and 128)
+4 fax (facsimile services)
+8 short message service
+16 data circuit sync
+32 data circuit async
+64 dedicated packet access
+128 dedicated PAD access
+[status]:
+0 not active
+1 active
+[number]: string type phone number of calling address in format specified by [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[alpha]: optional string type alphanumeric representation of [number] corresponding to the entry found in phonebook; used character set should be the one selected with command Select TE Character Set +CSCS
+[CLI validity]:
+0 CLI valid
+1 CLI has been withheld by the originator.
+2 CLI is not available due to interworking problems or limitations of originating network.
+When CLI is not available ([CLI validity]=2), [number] shall be an empty string ('') and [type] value will not be significant. Nevertheless, TA may return the recommended value 128 for [type] ((TON/NPI unknown in accordance with TS 24.008 [8] subclause 10.5.4.7).
+When CLI has been withheld by the originator, ([CLI validity]=1) and the CLIP is provisioned with the 'override category' option (refer 3GPP TS 22.081[3] and 3GPP TS 23.081[40]), [number] and [type] is provided. Otherwise, TA shall return the same setting for [number] and [type] as if the CLI was not available.
+[subaddr]: string type subaddress of format specified by [satype]
+[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
+[priority]: optional digit type parameter indicating that the eMLPP priority level of the incoming call. The priority level values are as defined in eMLPP specification 3GPP TS 22.067 [54].
+
+</description>
+</spec>
+<spec>
+ <command>AT+CHLD=</command>
+ <profile>Call related supplementary services (Assign)</profile>
+ <description>This command allows the control of the following call related services:
+- a call can be temporarily disconnected from the MT but the connection is retained by the network;
+- multiparty conversation (conference calls);
+- the served subscriber who has two calls (one held and the other either active or alerting) can connect the other parties and release the served subscriber's own connection.
+Calls can be put on hold, recovered, released, added to conversation, and transferred similarly as defined in 3GPP TS 22.030 [19]. Refer subclause 9.2 for possible [err] values.
+This is based on the GSM/UMTS supplementary services HOLD (Call Hold; refer 3GPP TS 22.083 [5] clause 2), MPTY (MultiParty; refer 3GPP TS 22.084 [22]) and ECT (Explicit Call Transfer; refer 3GPP TS 22.091 [29]). The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
+NOTE: Call Hold, MultiParty and Explicit Call Transfer are only applicable to teleservice 11.
+It is recommended (although optional) that test command returns a list of operations which are supported. The call number required by some operations shall be denoted by 'x' (e.g. +CHLD: (0,1,1x,2,2x,3)).
+Defined values
+[n]: integer type; equals to numbers entered before SEND button in 3GPP TS 22.030 [19] subclause 6.5.5.1
+NOTE: The 'directory number' case shall be handled with dial command D, and the END case with hangup command H (or +CHUP). The 4*'directory number' case is handled with +CTFR command.
+</description>
+</spec>
+<spec>
+ <command>AT+CHLD=?</command>
+ <profile>Call related supplementary services (Query all)</profile>
+ <description>This command allows the control of the following call related services:
+- a call can be temporarily disconnected from the MT but the connection is retained by the network;
+- multiparty conversation (conference calls);
+- the served subscriber who has two calls (one held and the other either active or alerting) can connect the other parties and release the served subscriber's own connection.
+Calls can be put on hold, recovered, released, added to conversation, and transferred similarly as defined in 3GPP TS 22.030 [19]. Refer subclause 9.2 for possible [err] values.
+This is based on the GSM/UMTS supplementary services HOLD (Call Hold; refer 3GPP TS 22.083 [5] clause 2), MPTY (MultiParty; refer 3GPP TS 22.084 [22]) and ECT (Explicit Call Transfer; refer 3GPP TS 22.091 [29]). The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
+NOTE: Call Hold, MultiParty and Explicit Call Transfer are only applicable to teleservice 11.
+It is recommended (although optional) that test command returns a list of operations which are supported. The call number required by some operations shall be denoted by 'x' (e.g. +CHLD: (0,1,1x,2,2x,3)).
+Defined values
+[n]: integer type; equals to numbers entered before SEND button in 3GPP TS 22.030 [19] subclause 6.5.5.1
+NOTE: The 'directory number' case shall be handled with dial command D, and the END case with hangup command H (or +CHUP). The 4*'directory number' case is handled with +CTFR command.
+</description>
+</spec>
+<spec>
+ <command>AT+CTFR=</command>
+ <profile>Call deflection (Assign)</profile>
+ <description>This refers to a service that causes an incoming alerting call to be forwarded to a specified number. Action command does this. Refer subclause 9.2 for possible [err] values.
+This is based on the GSM/UMTS supplementary service CD (Call Deflection; refer 3GPP TS 22.072 [30]). The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
+NOTE: Call Deflection is only applicable to teleservice 11.
+Defined values
+[number]: string type phone number of format specified by [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
+[subaddr]: string type subaddress of format specified by [satype]
+[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8); default 128
+</description>
+</spec>
+<spec>
+ <command>AT+CTFR=?</command>
+ <profile>Call deflection (Query all)</profile>
+ <description>This refers to a service that causes an incoming alerting call to be forwarded to a specified number. Action command does this. Refer subclause 9.2 for possible [err] values.
+This is based on the GSM/UMTS supplementary service CD (Call Deflection; refer 3GPP TS 22.072 [30]). The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
+NOTE: Call Deflection is only applicable to teleservice 11.
+Defined values
+[number]: string type phone number of format specified by [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
+[subaddr]: string type subaddress of format specified by [satype]
+[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8); default 128
+</description>
+</spec>
+<spec>
+ <command>AT+CUSD=</command>
+ <profile>Unstructured supplementary service data (Assign)</profile>
+ <description>This command allows control of the Unstuctured Supplementary Service Data (USSD) according to 3GPP TS 22.090 [23]. Both network and mobile initiated operations are supported. Parameter [n] is used to disable/enable the presentation of an unsolicited result code (USSD response from the network, or network initiated operation) +CUSD: [m][,[str],[dcs]] to the TE. In addition, value [n]=2 is used to cancel an ongoing USSD session.
+When [str] is given, a mobile initiated USSD‑string or a response USSD‑string to a network initiated operation is sent to the network. The response USSD‑string from the network is returned in a subsequent unsolicited +CUSD result code.
+NOTE: In case of successful mobile initiated operation, TA implemented according to a version prior to 6 of this standard, waits the USSD response from the network and sends it to the TE before the final result code. This will block the AT command interface for the period of the operation. Such TA does not support [n] value 2.
+The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
+Test command returns values supported as a compound value.
+Defined values
+[n]:
+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):
+‑ if [dcs] indicates that 3GPP TS 23.038 [25] 7 bit default alphabet is used:
+‑ if TE character set other than 'HEX' (refer command Select TE Character Set +CSCS): MT/TA converts GSM alphabet into current TE character set according to rules of 3GPP TS 27.005 [24] Annex A
+‑ if TE character set is 'HEX': MT/TA converts each 7‑bit character of GSM alphabet into two IRA character long hexadecimal number (e.g. character (GSM 23) is presented as 17 (IRA 49 and 55))
+‑ if [dcs] indicates that 8‑bit data coding scheme is used: MT/TA converts each 8‑bit octet into two IRA character long hexadecimal number (e.g. octet with integer value 42 is presented to TE as two characters 2A (IRA 50 and 65))
+[dcs]: 3GPP TS 23.038 [25] Cell Broadcast Data Coding Scheme in integer format (default 0)
+[m]:
+0 no further user action required (network initiated USSD‑Notify, or no further information needed after mobile initiated operation)
+1 further user action required (network initiated USSD‑Request, or further information needed after mobile initiated operation)
+2 USSD terminated by network
+3 other local client has responded
+4 operation not supported
+5 network time out
+</description>
+</spec>
+<spec>
+ <command>AT+CUSD?</command>
+ <profile>Unstructured supplementary service data (Query)</profile>
+ <description>This command allows control of the Unstuctured Supplementary Service Data (USSD) according to 3GPP TS 22.090 [23]. Both network and mobile initiated operations are supported. Parameter [n] is used to disable/enable the presentation of an unsolicited result code (USSD response from the network, or network initiated operation) +CUSD: [m][,[str],[dcs]] to the TE. In addition, value [n]=2 is used to cancel an ongoing USSD session.
+When [str] is given, a mobile initiated USSD‑string or a response USSD‑string to a network initiated operation is sent to the network. The response USSD‑string from the network is returned in a subsequent unsolicited +CUSD result code.
+NOTE: In case of successful mobile initiated operation, TA implemented according to a version prior to 6 of this standard, waits the USSD response from the network and sends it to the TE before the final result code. This will block the AT command interface for the period of the operation. Such TA does not support [n] value 2.
+The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
+Test command returns values supported as a compound value.
+Defined values
+[n]:
+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):
+‑ if [dcs] indicates that 3GPP TS 23.038 [25] 7 bit default alphabet is used:
+‑ if TE character set other than 'HEX' (refer command Select TE Character Set +CSCS): MT/TA converts GSM alphabet into current TE character set according to rules of 3GPP TS 27.005 [24] Annex A
+‑ if TE character set is 'HEX': MT/TA converts each 7‑bit character of GSM alphabet into two IRA character long hexadecimal number (e.g. character (GSM 23) is presented as 17 (IRA 49 and 55))
+‑ if [dcs] indicates that 8‑bit data coding scheme is used: MT/TA converts each 8‑bit octet into two IRA character long hexadecimal number (e.g. octet with integer value 42 is presented to TE as two characters 2A (IRA 50 and 65))
+[dcs]: 3GPP TS 23.038 [25] Cell Broadcast Data Coding Scheme in integer format (default 0)
+[m]:
+0 no further user action required (network initiated USSD‑Notify, or no further information needed after mobile initiated operation)
+1 further user action required (network initiated USSD‑Request, or further information needed after mobile initiated operation)
+2 USSD terminated by network
+3 other local client has responded
+4 operation not supported
+5 network time out
+</description>
+</spec>
+<spec>
+ <command>AT+CUSD=?</command>
+ <profile>Unstructured supplementary service data (Query all)</profile>
+ <description>This command allows control of the Unstuctured Supplementary Service Data (USSD) according to 3GPP TS 22.090 [23]. Both network and mobile initiated operations are supported. Parameter [n] is used to disable/enable the presentation of an unsolicited result code (USSD response from the network, or network initiated operation) +CUSD: [m][,[str],[dcs]] to the TE. In addition, value [n]=2 is used to cancel an ongoing USSD session.
+When [str] is given, a mobile initiated USSD‑string or a response USSD‑string to a network initiated operation is sent to the network. The response USSD‑string from the network is returned in a subsequent unsolicited +CUSD result code.
+NOTE: In case of successful mobile initiated operation, TA implemented according to a version prior to 6 of this standard, waits the USSD response from the network and sends it to the TE before the final result code. This will block the AT command interface for the period of the operation. Such TA does not support [n] value 2.
+The interaction of this command with other commands based on other GSM/UMTS supplementary services is described in the GSM/UMTS standards.
+Test command returns values supported as a compound value.
+Defined values
+[n]:
+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):
+‑ if [dcs] indicates that 3GPP TS 23.038 [25] 7 bit default alphabet is used:
+‑ if TE character set other than 'HEX' (refer command Select TE Character Set +CSCS): MT/TA converts GSM alphabet into current TE character set according to rules of 3GPP TS 27.005 [24] Annex A
+‑ if TE character set is 'HEX': MT/TA converts each 7‑bit character of GSM alphabet into two IRA character long hexadecimal number (e.g. character (GSM 23) is presented as 17 (IRA 49 and 55))
+‑ if [dcs] indicates that 8‑bit data coding scheme is used: MT/TA converts each 8‑bit octet into two IRA character long hexadecimal number (e.g. octet with integer value 42 is presented to TE as two characters 2A (IRA 50 and 65))
+[dcs]: 3GPP TS 23.038 [25] Cell Broadcast Data Coding Scheme in integer format (default 0)
+[m]:
+0 no further user action required (network initiated USSD‑Notify, or no further information needed after mobile initiated operation)
+1 further user action required (network initiated USSD‑Request, or further information needed after mobile initiated operation)
+2 USSD terminated by network
+3 other local client has responded
+4 operation not supported
+5 network time out
+</description>
+</spec>
+<spec>
+ <command>AT+CAOC[=</command>
+ <profile>Advice of Charge (Assign)</profile>
+ <description>This refers to Advice of Charge supplementary service (3GPP TS 22.024 [26] and 3GPP TS 22.086 [27]) that enables subscriber to get information about the cost of calls. With [mode]=0, the execute command returns the current call meter value from the MT.
+The command also includes the possibility to enable an unsolicited event reporting of the CCM information. The unsolicited result code +CCCM: [ccm] is sent when the CCM value changes, but not more that every 10 seconds. Deactivation of the unsolicited event reporting is made with the same command.
+Refer subclause 9.2 for possible [err] values.
+NOTE: Advice of Charge values stored in the SIM card or in the active application in the UICC (GSM or USIM) (ACM, ACMmax, PUCT) can be accessed with generic or restricted SIM access command (+CSIM or +CRSM)).Those values can be more readily accessed with commands +CACM, +CAMM and +CPUC.
+The Read command indicates whether the unsolicited reporting is activated or not. Read command is available when the unsolicited result code is supported.
+It is recommended (although optional) that the test command returns the supported mode values.
+Defined values
+[mode]:
+0 query CCM value
+1 deactivate the unsolicited reporting of CCM value
+2 activate the unsolicited reporting of CCM value
+[ccm]: string type; three bytes of the current call meter value in hexadecimal format (e.g. '00001E' indicates decimal value 30); value is in home units and bytes are similarly coded as ACMmax value in the SIM card or in the active application in the UICC (GSM or USIM)
+</description>
+</spec>
+<spec>
+ <command>AT+CAOC?</command>
+ <profile>Advice of Charge (Query)</profile>
+ <description>This refers to Advice of Charge supplementary service (3GPP TS 22.024 [26] and 3GPP TS 22.086 [27]) that enables subscriber to get information about the cost of calls. With [mode]=0, the execute command returns the current call meter value from the MT.
+The command also includes the possibility to enable an unsolicited event reporting of the CCM information. The unsolicited result code +CCCM: [ccm] is sent when the CCM value changes, but not more that every 10 seconds. Deactivation of the unsolicited event reporting is made with the same command.
+Refer subclause 9.2 for possible [err] values.
+NOTE: Advice of Charge values stored in the SIM card or in the active application in the UICC (GSM or USIM) (ACM, ACMmax, PUCT) can be accessed with generic or restricted SIM access command (+CSIM or +CRSM)).Those values can be more readily accessed with commands +CACM, +CAMM and +CPUC.
+The Read command indicates whether the unsolicited reporting is activated or not. Read command is available when the unsolicited result code is supported.
+It is recommended (although optional) that the test command returns the supported mode values.
+Defined values
+[mode]:
+0 query CCM value
+1 deactivate the unsolicited reporting of CCM value
+2 activate the unsolicited reporting of CCM value
+[ccm]: string type; three bytes of the current call meter value in hexadecimal format (e.g. '00001E' indicates decimal value 30); value is in home units and bytes are similarly coded as ACMmax value in the SIM card or in the active application in the UICC (GSM or USIM)
+</description>
+</spec>
+<spec>
+ <command>AT+CAOC=?</command>
+ <profile>Advice of Charge (Query all)</profile>
+ <description>This refers to Advice of Charge supplementary service (3GPP TS 22.024 [26] and 3GPP TS 22.086 [27]) that enables subscriber to get information about the cost of calls. With [mode]=0, the execute command returns the current call meter value from the MT.
+The command also includes the possibility to enable an unsolicited event reporting of the CCM information. The unsolicited result code +CCCM: [ccm] is sent when the CCM value changes, but not more that every 10 seconds. Deactivation of the unsolicited event reporting is made with the same command.
+Refer subclause 9.2 for possible [err] values.
+NOTE: Advice of Charge values stored in the SIM card or in the active application in the UICC (GSM or USIM) (ACM, ACMmax, PUCT) can be accessed with generic or restricted SIM access command (+CSIM or +CRSM)).Those values can be more readily accessed with commands +CACM, +CAMM and +CPUC.
+The Read command indicates whether the unsolicited reporting is activated or not. Read command is available when the unsolicited result code is supported.
+It is recommended (although optional) that the test command returns the supported mode values.
+Defined values
+[mode]:
+0 query CCM value
+1 deactivate the unsolicited reporting of CCM value
+2 activate the unsolicited reporting of CCM value
+[ccm]: string type; three bytes of the current call meter value in hexadecimal format (e.g. '00001E' indicates decimal value 30); value is in home units and bytes are similarly coded as ACMmax value in the SIM card or in the active application in the UICC (GSM or USIM)
+</description>
+</spec>
+<spec>
+ <command>AT+CSSN=</command>
+ <profile>Supplementary service notifications (Assign)</profile>
+ <description>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.
+When [n]=1 and a supplementary service notification is received after a mobile originated call setup, intermediate result code +CSSI: [code1][,[index]] is sent to TE before any other MO call setup result codes presented in the present document or in V.250 [14]. When several different [code1]s are received from the network, each of them shall have its own +CSSI result code.
+When [m]=1 and a supplementary service notification is received during a mobile terminated call setup or during a call, or when a forward check supplementary service notification is received, unsolicited result code +CSSU: [code2][,[index][,[number],[type][,[subaddr],[satype]]]] is sent to TE. In case of MT call setup, result code is sent after every +CLIP result code (refer command 'Calling line identification presentation +CLIP') and when several different [code2]s are received from the network, each of them shall have its own +CSSU result code.
+Test command returns values supported as a compound value.
+Defined values
+[n] (parameter sets/shows the +CSSI result code presentation status to the TE):
+0 disable
+1 enable
+[m] (parameter sets/shows the +CSSU result code presentation status to the TE):
+0 disable
+1 enable
+[code1] (it is manufacturer specific, which of these codes are supported):
+0 unconditional call forwarding is active
+1 some of the conditional call forwardings are active
+2 call has been forwarded
+3 call is waiting
+4 this is a CUG call (also [index] present)
+5 outgoing calls are barred
+6 incoming calls are barred
+7 CLIR suppression rejected
+8 call has been deflected
+[index]: refer 'Closed user group +CCUG'
+[code2] (it is manufacturer specific, which of these codes are supported):
+0 this is a forwarded call (MT call setup)
+1 this is a CUG call (also [index] present) (MT call setup)
+2 call has been put on hold (during a voice call)
+3 call has been retrieved (during a voice call)
+4 multiparty call entered (during a voice call)
+5 call on hold has been released (this is not a SS notification) (during a voice call)
+6 forward check SS message received (can be received whenever)
+7 call is being connected (alerting) with the remote party in alerting state in explicit call transfer operation (during a voice call)
+8 call has been connected with the other remote party in explicit call transfer operation (also number and subaddress parameters may be present) (during a voice call or MT call setup)
+9 this is a deflected call (MT call setup)
+10 sdditional incoming call forwarded
+[number]: string type phone number of format specified by [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[subaddr]: string type subaddress of format specified by [satype]
+[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
+</description>
+</spec>
+<spec>
+ <command>AT+CSSN?</command>
+ <profile>Supplementary service notifications (Query)</profile>
+ <description>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.
+When [n]=1 and a supplementary service notification is received after a mobile originated call setup, intermediate result code +CSSI: [code1][,[index]] is sent to TE before any other MO call setup result codes presented in the present document or in V.250 [14]. When several different [code1]s are received from the network, each of them shall have its own +CSSI result code.
+When [m]=1 and a supplementary service notification is received during a mobile terminated call setup or during a call, or when a forward check supplementary service notification is received, unsolicited result code +CSSU: [code2][,[index][,[number],[type][,[subaddr],[satype]]]] is sent to TE. In case of MT call setup, result code is sent after every +CLIP result code (refer command 'Calling line identification presentation +CLIP') and when several different [code2]s are received from the network, each of them shall have its own +CSSU result code.
+Test command returns values supported as a compound value.
+Defined values
+[n] (parameter sets/shows the +CSSI result code presentation status to the TE):
+0 disable
+1 enable
+[m] (parameter sets/shows the +CSSU result code presentation status to the TE):
+0 disable
+1 enable
+[code1] (it is manufacturer specific, which of these codes are supported):
+0 unconditional call forwarding is active
+1 some of the conditional call forwardings are active
+2 call has been forwarded
+3 call is waiting
+4 this is a CUG call (also [index] present)
+5 outgoing calls are barred
+6 incoming calls are barred
+7 CLIR suppression rejected
+8 call has been deflected
+[index]: refer 'Closed user group +CCUG'
+[code2] (it is manufacturer specific, which of these codes are supported):
+0 this is a forwarded call (MT call setup)
+1 this is a CUG call (also [index] present) (MT call setup)
+2 call has been put on hold (during a voice call)
+3 call has been retrieved (during a voice call)
+4 multiparty call entered (during a voice call)
+5 call on hold has been released (this is not a SS notification) (during a voice call)
+6 forward check SS message received (can be received whenever)
+7 call is being connected (alerting) with the remote party in alerting state in explicit call transfer operation (during a voice call)
+8 call has been connected with the other remote party in explicit call transfer operation (also number and subaddress parameters may be present) (during a voice call or MT call setup)
+9 this is a deflected call (MT call setup)
+10 sdditional incoming call forwarded
+[number]: string type phone number of format specified by [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[subaddr]: string type subaddress of format specified by [satype]
+[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
+</description>
+</spec>
+<spec>
+ <command>AT+CSSN=?</command>
+ <profile>Supplementary service notifications (Query all)</profile>
+ <description>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.
+When [n]=1 and a supplementary service notification is received after a mobile originated call setup, intermediate result code +CSSI: [code1][,[index]] is sent to TE before any other MO call setup result codes presented in the present document or in V.250 [14]. When several different [code1]s are received from the network, each of them shall have its own +CSSI result code.
+When [m]=1 and a supplementary service notification is received during a mobile terminated call setup or during a call, or when a forward check supplementary service notification is received, unsolicited result code +CSSU: [code2][,[index][,[number],[type][,[subaddr],[satype]]]] is sent to TE. In case of MT call setup, result code is sent after every +CLIP result code (refer command 'Calling line identification presentation +CLIP') and when several different [code2]s are received from the network, each of them shall have its own +CSSU result code.
+Test command returns values supported as a compound value.
+Defined values
+[n] (parameter sets/shows the +CSSI result code presentation status to the TE):
+0 disable
+1 enable
+[m] (parameter sets/shows the +CSSU result code presentation status to the TE):
+0 disable
+1 enable
+[code1] (it is manufacturer specific, which of these codes are supported):
+0 unconditional call forwarding is active
+1 some of the conditional call forwardings are active
+2 call has been forwarded
+3 call is waiting
+4 this is a CUG call (also [index] present)
+5 outgoing calls are barred
+6 incoming calls are barred
+7 CLIR suppression rejected
+8 call has been deflected
+[index]: refer 'Closed user group +CCUG'
+[code2] (it is manufacturer specific, which of these codes are supported):
+0 this is a forwarded call (MT call setup)
+1 this is a CUG call (also [index] present) (MT call setup)
+2 call has been put on hold (during a voice call)
+3 call has been retrieved (during a voice call)
+4 multiparty call entered (during a voice call)
+5 call on hold has been released (this is not a SS notification) (during a voice call)
+6 forward check SS message received (can be received whenever)
+7 call is being connected (alerting) with the remote party in alerting state in explicit call transfer operation (during a voice call)
+8 call has been connected with the other remote party in explicit call transfer operation (also number and subaddress parameters may be present) (during a voice call or MT call setup)
+9 this is a deflected call (MT call setup)
+10 sdditional incoming call forwarded
+[number]: string type phone number of format specified by [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[subaddr]: string type subaddress of format specified by [satype]
+[satype]: type of subaddress octet in integer format (refer TS 24.008 [8] subclause 10.5.4.8)
+</description>
+</spec>
+<spec>
+ <command>AT+CLCC</command>
+ <profile>List current calls </profile>
+ <description>Returns list of current calls of MT. If command succeeds but no calls are available, no information response is sent to TE. Refer subclause 9.2 for possible [err] values.
+Defined values
+[idx]: integer type; call identification number as described in 3GPP TS 22.030 [19] subclause 4.5.5.1; this number can be used in +CHLD command operations
+[dir]:
+0 mobile originated (MO) call
+1 mobile terminated (MT) call
+[stat] (state of the call):
+0 active
+1 held
+2 dialing (MO call)
+3 alerting (MO call)
+4 incoming (MT call)
+5 waiting (MT call)
+[mode] (bearer/teleservice):
+0 voice
+1 data
+2 fax
+3 voice followed by data, voice mode
+4 alternating voice/data, voice mode
+5 alternating voice/fax, voice mode
+6 voice followed by data, data mode
+7 alternating voice/data, data mode
+8 alternating voice/fax, fax mode
+9 unknown
+[mpty]:
+0 call is not one of multiparty (conference) call parties
+1 call is one of multiparty (conference) call parties
+[number]: string type phone number in format specified by [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[alpha]: string type alphanumeric representation of [number] corresponding to the entry found in phonebook; used character set should be the one selected with command Select TE Character Set +CSCS
+[priority]: optional digit type parameter indicating the eMLPP priority level of the call, values specified in 3GPP TS 22.067 [54]
+</description>
+</spec>
+<spec>
+ <command>AT+CLCC=?</command>
+ <profile>List current calls (Query all)</profile>
+ <description>Returns list of current calls of MT. If command succeeds but no calls are available, no information response is sent to TE. Refer subclause 9.2 for possible [err] values.
+Defined values
+[idx]: integer type; call identification number as described in 3GPP TS 22.030 [19] subclause 4.5.5.1; this number can be used in +CHLD command operations
+[dir]:
+0 mobile originated (MO) call
+1 mobile terminated (MT) call
+[stat] (state of the call):
+0 active
+1 held
+2 dialing (MO call)
+3 alerting (MO call)
+4 incoming (MT call)
+5 waiting (MT call)
+[mode] (bearer/teleservice):
+0 voice
+1 data
+2 fax
+3 voice followed by data, voice mode
+4 alternating voice/data, voice mode
+5 alternating voice/fax, voice mode
+6 voice followed by data, data mode
+7 alternating voice/data, data mode
+8 alternating voice/fax, fax mode
+9 unknown
+[mpty]:
+0 call is not one of multiparty (conference) call parties
+1 call is one of multiparty (conference) call parties
+[number]: string type phone number in format specified by [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[alpha]: string type alphanumeric representation of [number] corresponding to the entry found in phonebook; used character set should be the one selected with command Select TE Character Set +CSCS
+[priority]: optional digit type parameter indicating the eMLPP priority level of the call, values specified in 3GPP TS 22.067 [54]
+</description>
+</spec>
+<spec>
+ <command>AT+CPOL=</command>
+ <profile>Preferred PLMN list (Assign)</profile>
+ <description>This command is used to edit the PLMN selector with Access Technology lists in the SIM card or active application in the UICC(GSM or USIM).
+Execute command writes an entry in the SIM/USIM list of preferred PLMNs, previously selected by the command +CPLS. If no list has been previously selected, the User controlled PLMN selector with Access Technology, EFPLMNwAcT, is the one accessed by default. If [index] is given but [oper] is left out, entry is deleted. If [oper] is given but [index] is left out, [oper] is put in the next free location. If only [format] is given, the format of the [oper] in the read command is changed. The Access Technology selection parameters, [GSM_AcT], [GSM_Compact_AcT] and [UTRAN_AcT], are required when writing User controlled PLMN selector with Access Technology, EF EFPLMNwAcT, Operator controlled PLMN selector with Access Technology EFOPLMNwAcT and HPLMN selector with Access Technology EFHPLMNwAcT, see TS 31.102. Refer subclause 9.2 for possible [err] values.
+NOTE1: MT may also update the User controlled PLMN selector with Access Technology, EFPLMNwAcT, automatically when new networks are selected.
+NOTE2: The Operator controlled PLMN selector with Access Technology EFOPLMNwAcT, can only be written if the write access condition in the SIM/USIM has been previously verified.
+Read command returns all used entries from the SIM/USIM list of preferred PLMNs, previously selected by the command +CPLS, with the Access Technologies for each PLMN in the list.
+Test command returns the whole index range supported by the SIM.
+Defined values
+[indexn]: integer type; the order number of operator in the SIM/USIM preferred operator list
+[format]:
+0 long format alphanumeric [oper]
+1 short format alphanumeric [oper]
+2 numeric [oper]
+[opern]: string type; [format] indicates if the format is alphanumeric or numeric (see +COPS)
+[GSM_AcTn]: GSM access technology:
+0 access technology not selected
+1access technology selected
+[GSM_Compact_AcTn]: GSM compact access technology:
+0 access technology not selected
+1access technology selected
+[UTRA_AcTn]: UTRA access technology:
+0 access technology not selected
+1 access technology selected
+</description>
+</spec>
+<spec>
+ <command>AT+CPOL?</command>
+ <profile>Preferred PLMN list (Query)</profile>
+ <description>This command is used to edit the PLMN selector with Access Technology lists in the SIM card or active application in the UICC(GSM or USIM).
+Execute command writes an entry in the SIM/USIM list of preferred PLMNs, previously selected by the command +CPLS. If no list has been previously selected, the User controlled PLMN selector with Access Technology, EFPLMNwAcT, is the one accessed by default. If [index] is given but [oper] is left out, entry is deleted. If [oper] is given but [index] is left out, [oper] is put in the next free location. If only [format] is given, the format of the [oper] in the read command is changed. The Access Technology selection parameters, [GSM_AcT], [GSM_Compact_AcT] and [UTRAN_AcT], are required when writing User controlled PLMN selector with Access Technology, EF EFPLMNwAcT, Operator controlled PLMN selector with Access Technology EFOPLMNwAcT and HPLMN selector with Access Technology EFHPLMNwAcT, see TS 31.102. Refer subclause 9.2 for possible [err] values.
+NOTE1: MT may also update the User controlled PLMN selector with Access Technology, EFPLMNwAcT, automatically when new networks are selected.
+NOTE2: The Operator controlled PLMN selector with Access Technology EFOPLMNwAcT, can only be written if the write access condition in the SIM/USIM has been previously verified.
+Read command returns all used entries from the SIM/USIM list of preferred PLMNs, previously selected by the command +CPLS, with the Access Technologies for each PLMN in the list.
+Test command returns the whole index range supported by the SIM.
+Defined values
+[indexn]: integer type; the order number of operator in the SIM/USIM preferred operator list
+[format]:
+0 long format alphanumeric [oper]
+1 short format alphanumeric [oper]
+2 numeric [oper]
+[opern]: string type; [format] indicates if the format is alphanumeric or numeric (see +COPS)
+[GSM_AcTn]: GSM access technology:
+0 access technology not selected
+1access technology selected
+[GSM_Compact_AcTn]: GSM compact access technology:
+0 access technology not selected
+1access technology selected
+[UTRA_AcTn]: UTRA access technology:
+0 access technology not selected
+1 access technology selected
+</description>
+</spec>
+<spec>
+ <command>AT+CPOL=?</command>
+ <profile>Preferred PLMN list (Query all)</profile>
+ <description>This command is used to edit the PLMN selector with Access Technology lists in the SIM card or active application in the UICC(GSM or USIM).
+Execute command writes an entry in the SIM/USIM list of preferred PLMNs, previously selected by the command +CPLS. If no list has been previously selected, the User controlled PLMN selector with Access Technology, EFPLMNwAcT, is the one accessed by default. If [index] is given but [oper] is left out, entry is deleted. If [oper] is given but [index] is left out, [oper] is put in the next free location. If only [format] is given, the format of the [oper] in the read command is changed. The Access Technology selection parameters, [GSM_AcT], [GSM_Compact_AcT] and [UTRAN_AcT], are required when writing User controlled PLMN selector with Access Technology, EF EFPLMNwAcT, Operator controlled PLMN selector with Access Technology EFOPLMNwAcT and HPLMN selector with Access Technology EFHPLMNwAcT, see TS 31.102. Refer subclause 9.2 for possible [err] values.
+NOTE1: MT may also update the User controlled PLMN selector with Access Technology, EFPLMNwAcT, automatically when new networks are selected.
+NOTE2: The Operator controlled PLMN selector with Access Technology EFOPLMNwAcT, can only be written if the write access condition in the SIM/USIM has been previously verified.
+Read command returns all used entries from the SIM/USIM list of preferred PLMNs, previously selected by the command +CPLS, with the Access Technologies for each PLMN in the list.
+Test command returns the whole index range supported by the SIM.
+Defined values
+[indexn]: integer type; the order number of operator in the SIM/USIM preferred operator list
+[format]:
+0 long format alphanumeric [oper]
+1 short format alphanumeric [oper]
+2 numeric [oper]
+[opern]: string type; [format] indicates if the format is alphanumeric or numeric (see +COPS)
+[GSM_AcTn]: GSM access technology:
+0 access technology not selected
+1access technology selected
+[GSM_Compact_AcTn]: GSM compact access technology:
+0 access technology not selected
+1access technology selected
+[UTRA_AcTn]: UTRA access technology:
+0 access technology not selected
+1 access technology selected
+</description>
+</spec>
+<spec>
+ <command>AT+CPLS=</command>
+ <profile>Selection of preferred PLMN list (Assign)</profile>
+ <description>This command is used to select one PLMN selector with Access Technology list in the SIM card or active application in the UICC(GSM or USIM), that is used by +CPOL command.
+Execute command selects a list in the SIM/USIM. Refer subclause 9.2 for possible [err] values.
+Read command returns the selected PLMN selector list from the SIM/USIM
+Test command returns the whole index range supported lists by the SIM./USIM
+Defined values
+[list]:
+0 User controlled PLMN selector with Access Technology EFPLMNwAcT, if not found in the SIM/UICC then PLMN preferred list EFPLMNsel (this file is only available in SIM card or GSM application selected in UICC)
+1 Operator controlled PLMN selector with Access Technology EFOPLMNwAcT
+2HPLMN selector with Access Technology EFHPLMNwAcT
+</description>
+</spec>
+<spec>
+ <command>AT+CPLS?</command>
+ <profile>Selection of preferred PLMN list (Query)</profile>
+ <description>This command is used to select one PLMN selector with Access Technology list in the SIM card or active application in the UICC(GSM or USIM), that is used by +CPOL command.
+Execute command selects a list in the SIM/USIM. Refer subclause 9.2 for possible [err] values.
+Read command returns the selected PLMN selector list from the SIM/USIM
+Test command returns the whole index range supported lists by the SIM./USIM
+Defined values
+[list]:
+0 User controlled PLMN selector with Access Technology EFPLMNwAcT, if not found in the SIM/UICC then PLMN preferred list EFPLMNsel (this file is only available in SIM card or GSM application selected in UICC)
+1 Operator controlled PLMN selector with Access Technology EFOPLMNwAcT
+2HPLMN selector with Access Technology EFHPLMNwAcT
+</description>
+</spec>
+<spec>
+ <command>AT+CPLS=?</command>
+ <profile>Selection of preferred PLMN list (Query all)</profile>
+ <description>This command is used to select one PLMN selector with Access Technology list in the SIM card or active application in the UICC(GSM or USIM), that is used by +CPOL command.
+Execute command selects a list in the SIM/USIM. Refer subclause 9.2 for possible [err] values.
+Read command returns the selected PLMN selector list from the SIM/USIM
+Test command returns the whole index range supported lists by the SIM./USIM
+Defined values
+[list]:
+0 User controlled PLMN selector with Access Technology EFPLMNwAcT, if not found in the SIM/UICC then PLMN preferred list EFPLMNsel (this file is only available in SIM card or GSM application selected in UICC)
+1 Operator controlled PLMN selector with Access Technology EFOPLMNwAcT
+2HPLMN selector with Access Technology EFHPLMNwAcT
+</description>
+</spec>
+<spec>
+ <command>AT+COPN</command>
+ <profile>Read operator names </profile>
+ <description>Execute command returns the list of operator names from the MT. Each operator code [numericn] that has an alphanumeric equivalent [alphan] in the MT memory shall be returned. Refer subclause 9.2 for possible [err] values.
+Defined values
+[numericn]: string type; operator in numeric format (see +COPS)
+[alphan]: string type; operator in long alphanumeric format (see +COPS)
+</description>
+</spec>
+<spec>
+ <command>AT+COPN=?</command>
+ <profile>Read operator names (Query all)</profile>
+ <description>Execute command returns the list of operator names from the MT. Each operator code [numericn] that has an alphanumeric equivalent [alphan] in the MT memory shall be returned. Refer subclause 9.2 for possible [err] values.
+Defined values
+[numericn]: string type; operator in numeric format (see +COPS)
+[alphan]: string type; operator in long alphanumeric format (see +COPS)
+</description>
+</spec>
+<spec>
+ <command>AT+CFCS=</command>
+ <profile>Fast call setup conditions (Assign)</profile>
+ <description>The set command is used to edit the status of the priority level for fast call set-up stored on the SIM card or in the active application in the UICC (GSM or USIM) EFeMLPP. If the user has no subscription to the priority level status he wants to edit, an ERROR or +CME ERROR result code is returned.
+The read command returns all enabled priority levels for fast call set-up stored on the SIM card or in the active application in the UICC (GSM or USIM) EFeMLPP. If no priority level is enabled for fast call set-up, the result code OK is returned.
+
+Defined values
+[priority]: integer type, eMLPP fast call set-up priority level {0,1,..,4} as defined in 3GPP TS 22.067 [45]
+[status]: integer type
+0 disable [priority] for fast call set-up
+1 enable [priority] for fast call set-up
+</description>
+</spec>
+<spec>
+ <command>AT+CFCS?</command>
+ <profile>Fast call setup conditions (Query)</profile>
+ <description>The set command is used to edit the status of the priority level for fast call set-up stored on the SIM card or in the active application in the UICC (GSM or USIM) EFeMLPP. If the user has no subscription to the priority level status he wants to edit, an ERROR or +CME ERROR result code is returned.
+The read command returns all enabled priority levels for fast call set-up stored on the SIM card or in the active application in the UICC (GSM or USIM) EFeMLPP. If no priority level is enabled for fast call set-up, the result code OK is returned.
+
+Defined values
+[priority]: integer type, eMLPP fast call set-up priority level {0,1,..,4} as defined in 3GPP TS 22.067 [45]
+[status]: integer type
+0 disable [priority] for fast call set-up
+1 enable [priority] for fast call set-up
+</description>
+</spec>
+<spec>
+ <command>AT+CFCS=?</command>
+ <profile>Fast call setup conditions (Query all)</profile>
+ <description>The set command is used to edit the status of the priority level for fast call set-up stored on the SIM card or in the active application in the UICC (GSM or USIM) EFeMLPP. If the user has no subscription to the priority level status he wants to edit, an ERROR or +CME ERROR result code is returned.
+The read command returns all enabled priority levels for fast call set-up stored on the SIM card or in the active application in the UICC (GSM or USIM) EFeMLPP. If no priority level is enabled for fast call set-up, the result code OK is returned.
+
+Defined values
+[priority]: integer type, eMLPP fast call set-up priority level {0,1,..,4} as defined in 3GPP TS 22.067 [45]
+[status]: integer type
+0 disable [priority] for fast call set-up
+1 enable [priority] for fast call set-up
+</description>
+</spec>
+<spec>
+ <command>AT+CAAP=</command>
+ <profile>Automatic answer for eMLPP Service (Assign)</profile>
+ <description>The set command is used to edit the status of the priority level for automatic answering for eMLPP stored on the SIM card or in the active application in the UICC (GSM or USIM) EFAAeM. If the user has no subscription to the priority level status he wants to edit, an ERROR or +CME ERROR result code is returned.
+The read command returns all enabled priority levels for automatic answering for eMLPP stored on the SIM card or in the active application in the UICC (GSM or USIM) EFAAeM. If no priority level is enabled for automatic answering for eMLPP, the result code OK is returned.
+Defined values
+[priority]: eMLPP automatic answer priority level value {A,B,0,1,..,4} as defined in 3GPP TS 22.067 [45]
+[status]: integer type
+0 disable eMLPP [priority] for automatic answering
+1 enable eMLPP [priority] for automatic answering
+</description>
+</spec>
+<spec>
+ <command>AT+CAAP?</command>
+ <profile>Automatic answer for eMLPP Service (Query)</profile>
+ <description>The set command is used to edit the status of the priority level for automatic answering for eMLPP stored on the SIM card or in the active application in the UICC (GSM or USIM) EFAAeM. If the user has no subscription to the priority level status he wants to edit, an ERROR or +CME ERROR result code is returned.
+The read command returns all enabled priority levels for automatic answering for eMLPP stored on the SIM card or in the active application in the UICC (GSM or USIM) EFAAeM. If no priority level is enabled for automatic answering for eMLPP, the result code OK is returned.
+Defined values
+[priority]: eMLPP automatic answer priority level value {A,B,0,1,..,4} as defined in 3GPP TS 22.067 [45]
+[status]: integer type
+0 disable eMLPP [priority] for automatic answering
+1 enable eMLPP [priority] for automatic answering
+</description>
+</spec>
+<spec>
+ <command>AT+CAAP=?</command>
+ <profile>Automatic answer for eMLPP Service (Query all)</profile>
+ <description>The set command is used to edit the status of the priority level for automatic answering for eMLPP stored on the SIM card or in the active application in the UICC (GSM or USIM) EFAAeM. If the user has no subscription to the priority level status he wants to edit, an ERROR or +CME ERROR result code is returned.
+The read command returns all enabled priority levels for automatic answering for eMLPP stored on the SIM card or in the active application in the UICC (GSM or USIM) EFAAeM. If no priority level is enabled for automatic answering for eMLPP, the result code OK is returned.
+Defined values
+[priority]: eMLPP automatic answer priority level value {A,B,0,1,..,4} as defined in 3GPP TS 22.067 [45]
+[status]: integer type
+0 disable eMLPP [priority] for automatic answering
+1 enable eMLPP [priority] for automatic answering
+</description>
+</spec>
+<spec>
+ <command>AT+CPAS</command>
+ <profile>Phone activity status </profile>
+ <description>Execution command returns the activity status [pas] of the MT. It can be used to interrogate the MT before requesting action from the phone. Refer subclause 9.2 for possible [err] values.
+Test command returns values supported by the MT as a compound value.
+Defined values
+[pas]:
+0 ready (MT allows commands from TA/TE)
+1 unavailable (MT does not allow commands from TA/TE)
+2 unknown (MT is not guaranteed to respond to instructions)
+3 ringing (MT is ready for commands from TA/TE, but the ringer is active)
+4 call in progress (MT is ready for commands from TA/TE, but a call is in progress)
+5 asleep (MT is unable to process commands from TA/TE because it is in a low functionality state)
+also all other values below 128 are reserved by the present document.
+</description>
+</spec>
+<spec>
+ <command>AT+CPAS=?</command>
+ <profile>Phone activity status (Query all)</profile>
+ <description>Execution command returns the activity status [pas] of the MT. It can be used to interrogate the MT before requesting action from the phone. Refer subclause 9.2 for possible [err] values.
+Test command returns values supported by the MT as a compound value.
+Defined values
+[pas]:
+0 ready (MT allows commands from TA/TE)
+1 unavailable (MT does not allow commands from TA/TE)
+2 unknown (MT is not guaranteed to respond to instructions)
+3 ringing (MT is ready for commands from TA/TE, but the ringer is active)
+4 call in progress (MT is ready for commands from TA/TE, but a call is in progress)
+5 asleep (MT is unable to process commands from TA/TE because it is in a low functionality state)
+also all other values below 128 are reserved by the present document.
+</description>
+</spec>
+<spec>
+ <command>AT+CFUN=</command>
+ <profile>Set phone functionality (Assign)</profile>
+ <description>Set command selects the level of functionality [fun] in the MT. Level 'full functionality' is where the highest level of power is drawn. 'Minimum functionality' is where minimum power is drawn. Level of functionality between these may also be specified by manufacturers. When supported by manufacturers, MT resetting with [rst] parameter may be utilized. Refer subclause 9.2 for possible [err] values.
+NOTE: It is manufacturer specific does this command affect network registration. Command Operator Selection +COPS is used to force registration/deregistration.
+Test command returns values supported by the MT as a compound value.
+Defined values
+[fun]:
+0 minimum functionality
+1 full functionality
+2 disable phone transmit RF circuits only
+3 disable phone receive RF circuits only
+4 disable phone both transmit and receive RF circuits
+5...127 reserved for manufacturers as intermediate states between full and minimum functionality
+[rst]:
+0 do not reset the MT before setting it to [fun] power level
+NOTE: This shall be always default when [rst] is not given.
+1 reset the MT before setting it to [fun] power level
+</description>
+</spec>
+<spec>
+ <command>AT+CFUN?</command>
+ <profile>Set phone functionality (Query)</profile>
+ <description>Set command selects the level of functionality [fun] in the MT. Level 'full functionality' is where the highest level of power is drawn. 'Minimum functionality' is where minimum power is drawn. Level of functionality between these may also be specified by manufacturers. When supported by manufacturers, MT resetting with [rst] parameter may be utilized. Refer subclause 9.2 for possible [err] values.
+NOTE: It is manufacturer specific does this command affect network registration. Command Operator Selection +COPS is used to force registration/deregistration.
+Test command returns values supported by the MT as a compound value.
+Defined values
+[fun]:
+0 minimum functionality
+1 full functionality
+2 disable phone transmit RF circuits only
+3 disable phone receive RF circuits only
+4 disable phone both transmit and receive RF circuits
+5...127 reserved for manufacturers as intermediate states between full and minimum functionality
+[rst]:
+0 do not reset the MT before setting it to [fun] power level
+NOTE: This shall be always default when [rst] is not given.
+1 reset the MT before setting it to [fun] power level
+</description>
+</spec>
+<spec>
+ <command>AT+CFUN=?</command>
+ <profile>Set phone functionality (Query all)</profile>
+ <description>Set command selects the level of functionality [fun] in the MT. Level 'full functionality' is where the highest level of power is drawn. 'Minimum functionality' is where minimum power is drawn. Level of functionality between these may also be specified by manufacturers. When supported by manufacturers, MT resetting with [rst] parameter may be utilized. Refer subclause 9.2 for possible [err] values.
+NOTE: It is manufacturer specific does this command affect network registration. Command Operator Selection +COPS is used to force registration/deregistration.
+Test command returns values supported by the MT as a compound value.
+Defined values
+[fun]:
+0 minimum functionality
+1 full functionality
+2 disable phone transmit RF circuits only
+3 disable phone receive RF circuits only
+4 disable phone both transmit and receive RF circuits
+5...127 reserved for manufacturers as intermediate states between full and minimum functionality
+[rst]:
+0 do not reset the MT before setting it to [fun] power level
+NOTE: This shall be always default when [rst] is not given.
+1 reset the MT before setting it to [fun] power level
+</description>
+</spec>
+<spec>
+ <command>AT+CPIN=</command>
+ <profile>Enter PIN (Assign)</profile>
+ <description>Set command sends to the MT a password which is necessary before it can be operated (SIM PIN, SIM PUK, PH‑SIM PIN, etc.). If the PIN is to be entered twice, the TA shall automatically repeat the PIN. If no PIN request is pending, no action is taken towards MT and an error message, +CME ERROR, is returned to TE. Refer subclause 9.2 for possible [err] values.
+NOTE: SIM PIN, SIM PUK, PH-SIM PIN, PH-FSIM PIN, PH-FSIM PUK, SIM PIN2 and SIM PUK2 refer to the PIN of the selected application on the UICC. For example, in an UTRAN context, the selected application on a UICC should be a USIM and the SIM PIN then represents the PIN of the selected USIM. See TS 31.101 [65] for further details on application selection on the UICC.
+If the PIN required is SIM PUK or SIM PUK2, the second pin is required. This second pin, [newpin], is used to replace the old pin in the SIM.
+NOTE: Commands which interact with MT that are accepted when MT is pending SIM PIN, SIM PUK, or PH‑SIM are: +CGMI, +CGMM, +CGMR, +CGSN, D112; (emergency call), +CPAS, +CFUN, +CPIN, +CDIS (read and test command only), and +CIND (read and test command only).
+Read command returns an alphanumeric string indicating whether some password is required or not.
+Defined values
+[pin], [newpin]: string type values
+[code] values reserved by the present document:
+READY MT is not pending for any password
+SIM PIN MT is waiting SIM PIN to be given
+SIM PUK MT is waiting SIM PUK to be given
+PH-SIM PIN MT is waiting phone‑to‑SIM card password to be given
+PH-FSIM PIN MT is waiting phone-to-very first SIM card password to be given
+PH-FSIM PUK MT is waiting phone-to-very first SIM card unblocking password to be given
+SIM PIN2 MT is waiting SIM PIN2 to be given (this [code] is recommended to be returned only when the last executed command resulted in PIN2 authentication failure (i.e. +CME ERROR: 17); if PIN2 is not entered right after the failure, it is recommended that MT does not block its operation)
+SIM PUK2 MT is waiting SIM PUK2 to be given (this [code] is recommended to be returned only when the last executed command resulted in PUK2 authentication failure (i.e. +CME ERROR: 18); if PUK2 and new PIN2 are not entered right after the failure, it is recommended that MT does not block its operation)
+PH-NET PIN MT is waiting network personalization password to be given
+PH-NET PUK MT is waiting network personalization unblocking password to be given
+PH-NETSUB PIN MT is waiting network subset personalization password to be given
+PH-NETSUB PUK MT is waiting network subset personalization unblocking password to be given
+PH-SP PIN MT is waiting service provider personalization password to be given
+PH-SP PUK MT is waiting service provider personalization unblocking password to be given
+PH-CORP PIN MT is waiting corporate personalization password to be given
+PH-CORP PUK MT is waiting corporate personalization unblocking password to be given
+</description>
+</spec>
+<spec>
+ <command>AT+CPIN?</command>
+ <profile>Enter PIN (Query)</profile>
+ <description>Set command sends to the MT a password which is necessary before it can be operated (SIM PIN, SIM PUK, PH‑SIM PIN, etc.). If the PIN is to be entered twice, the TA shall automatically repeat the PIN. If no PIN request is pending, no action is taken towards MT and an error message, +CME ERROR, is returned to TE. Refer subclause 9.2 for possible [err] values.
+NOTE: SIM PIN, SIM PUK, PH-SIM PIN, PH-FSIM PIN, PH-FSIM PUK, SIM PIN2 and SIM PUK2 refer to the PIN of the selected application on the UICC. For example, in an UTRAN context, the selected application on a UICC should be a USIM and the SIM PIN then represents the PIN of the selected USIM. See TS 31.101 [65] for further details on application selection on the UICC.
+If the PIN required is SIM PUK or SIM PUK2, the second pin is required. This second pin, [newpin], is used to replace the old pin in the SIM.
+NOTE: Commands which interact with MT that are accepted when MT is pending SIM PIN, SIM PUK, or PH‑SIM are: +CGMI, +CGMM, +CGMR, +CGSN, D112; (emergency call), +CPAS, +CFUN, +CPIN, +CDIS (read and test command only), and +CIND (read and test command only).
+Read command returns an alphanumeric string indicating whether some password is required or not.
+Defined values
+[pin], [newpin]: string type values
+[code] values reserved by the present document:
+READY MT is not pending for any password
+SIM PIN MT is waiting SIM PIN to be given
+SIM PUK MT is waiting SIM PUK to be given
+PH-SIM PIN MT is waiting phone‑to‑SIM card password to be given
+PH-FSIM PIN MT is waiting phone-to-very first SIM card password to be given
+PH-FSIM PUK MT is waiting phone-to-very first SIM card unblocking password to be given
+SIM PIN2 MT is waiting SIM PIN2 to be given (this [code] is recommended to be returned only when the last executed command resulted in PIN2 authentication failure (i.e. +CME ERROR: 17); if PIN2 is not entered right after the failure, it is recommended that MT does not block its operation)
+SIM PUK2 MT is waiting SIM PUK2 to be given (this [code] is recommended to be returned only when the last executed command resulted in PUK2 authentication failure (i.e. +CME ERROR: 18); if PUK2 and new PIN2 are not entered right after the failure, it is recommended that MT does not block its operation)
+PH-NET PIN MT is waiting network personalization password to be given
+PH-NET PUK MT is waiting network personalization unblocking password to be given
+PH-NETSUB PIN MT is waiting network subset personalization password to be given
+PH-NETSUB PUK MT is waiting network subset personalization unblocking password to be given
+PH-SP PIN MT is waiting service provider personalization password to be given
+PH-SP PUK MT is waiting service provider personalization unblocking password to be given
+PH-CORP PIN MT is waiting corporate personalization password to be given
+PH-CORP PUK MT is waiting corporate personalization unblocking password to be given
+</description>
+</spec>
+<spec>
+ <command>AT+CPIN=?</command>
+ <profile>Enter PIN (Query all)</profile>
+ <description>Set command sends to the MT a password which is necessary before it can be operated (SIM PIN, SIM PUK, PH‑SIM PIN, etc.). If the PIN is to be entered twice, the TA shall automatically repeat the PIN. If no PIN request is pending, no action is taken towards MT and an error message, +CME ERROR, is returned to TE. Refer subclause 9.2 for possible [err] values.
+NOTE: SIM PIN, SIM PUK, PH-SIM PIN, PH-FSIM PIN, PH-FSIM PUK, SIM PIN2 and SIM PUK2 refer to the PIN of the selected application on the UICC. For example, in an UTRAN context, the selected application on a UICC should be a USIM and the SIM PIN then represents the PIN of the selected USIM. See TS 31.101 [65] for further details on application selection on the UICC.
+If the PIN required is SIM PUK or SIM PUK2, the second pin is required. This second pin, [newpin], is used to replace the old pin in the SIM.
+NOTE: Commands which interact with MT that are accepted when MT is pending SIM PIN, SIM PUK, or PH‑SIM are: +CGMI, +CGMM, +CGMR, +CGSN, D112; (emergency call), +CPAS, +CFUN, +CPIN, +CDIS (read and test command only), and +CIND (read and test command only).
+Read command returns an alphanumeric string indicating whether some password is required or not.
+Defined values
+[pin], [newpin]: string type values
+[code] values reserved by the present document:
+READY MT is not pending for any password
+SIM PIN MT is waiting SIM PIN to be given
+SIM PUK MT is waiting SIM PUK to be given
+PH-SIM PIN MT is waiting phone‑to‑SIM card password to be given
+PH-FSIM PIN MT is waiting phone-to-very first SIM card password to be given
+PH-FSIM PUK MT is waiting phone-to-very first SIM card unblocking password to be given
+SIM PIN2 MT is waiting SIM PIN2 to be given (this [code] is recommended to be returned only when the last executed command resulted in PIN2 authentication failure (i.e. +CME ERROR: 17); if PIN2 is not entered right after the failure, it is recommended that MT does not block its operation)
+SIM PUK2 MT is waiting SIM PUK2 to be given (this [code] is recommended to be returned only when the last executed command resulted in PUK2 authentication failure (i.e. +CME ERROR: 18); if PUK2 and new PIN2 are not entered right after the failure, it is recommended that MT does not block its operation)
+PH-NET PIN MT is waiting network personalization password to be given
+PH-NET PUK MT is waiting network personalization unblocking password to be given
+PH-NETSUB PIN MT is waiting network subset personalization password to be given
+PH-NETSUB PUK MT is waiting network subset personalization unblocking password to be given
+PH-SP PIN MT is waiting service provider personalization password to be given
+PH-SP PUK MT is waiting service provider personalization unblocking password to be given
+PH-CORP PIN MT is waiting corporate personalization password to be given
+PH-CORP PUK MT is waiting corporate personalization unblocking password to be given
+</description>
+</spec>
+<spec>
+ <command>AT+CBC</command>
+ <profile>Battery charge </profile>
+ <description>Execution command returns battery connection status [bcs] and battery charge level [bcl] of the MT. Refer subclause 9.2 for possible [err] values.
+Test command returns values supported as compound values.
+Defined values
+[bcs]:
+0 MT is powered by the battery
+1 MT has a battery connected, but is not powered by it
+2 MT does not have a battery connected
+3 Recognized power fault, calls inhibited
+[bcl]:
+0 battery is exhausted, or MT does not have a battery connected
+1...100 battery has 1‑100 percent of capacity remaining
+</description>
+</spec>
+<spec>
+ <command>AT+CBC=?</command>
+ <profile>Battery charge (Query all)</profile>
+ <description>Execution command returns battery connection status [bcs] and battery charge level [bcl] of the MT. Refer subclause 9.2 for possible [err] values.
+Test command returns values supported as compound values.
+Defined values
+[bcs]:
+0 MT is powered by the battery
+1 MT has a battery connected, but is not powered by it
+2 MT does not have a battery connected
+3 Recognized power fault, calls inhibited
+[bcl]:
+0 battery is exhausted, or MT does not have a battery connected
+1...100 battery has 1‑100 percent of capacity remaining
+</description>
+</spec>
+<spec>
+ <command>AT+CSQ</command>
+ <profile>Signal quality </profile>
+ <description>Execution command returns received signal strength indication [rssi] and channel bit error rate [ber] from the MT. Refer subclause 9.2 for possible [err] values.
+Test command returns values supported as compound values.
+Defined values
+[rssi]:
+0 ‑113 dBm or less
+1 ‑111 dBm
+2...30 ‑109... ‑53 dBm
+31 ‑51 dBm or greater
+99 not known or not detectable
+[ber] (in percent):
+0...7 as RXQUAL values in the table in TS 45.008 [20] subclause 8.2.4
+99 not known or not detectable
+</description>
+</spec>
+<spec>
+ <command>AT+CSQ=?</command>
+ <profile>Signal quality (Query all)</profile>
+ <description>Execution command returns received signal strength indication [rssi] and channel bit error rate [ber] from the MT. Refer subclause 9.2 for possible [err] values.
+Test command returns values supported as compound values.
+Defined values
+[rssi]:
+0 ‑113 dBm or less
+1 ‑111 dBm
+2...30 ‑109... ‑53 dBm
+31 ‑51 dBm or greater
+99 not known or not detectable
+[ber] (in percent):
+0...7 as RXQUAL values in the table in TS 45.008 [20] subclause 8.2.4
+99 not known or not detectable
+</description>
+</spec>
+<spec>
+ <command>AT+CIND=</command>
+ <profile>Indicator control (Assign)</profile>
+ <description>Set command is used to set the values of MT indicators. [ind] value 0 means that the indicator is off (or in state which can be identified as 'off'‑state), 1 means that indicator is on (or in a state which is more substantial than 'off'‑state), 2 is more substantial than 1, and so on. If the indicator is a simple on/off style element, it has values 0 and 1. The number of elements is MT specific. If MT does not allow setting of indicators or MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values. If certain indicator is not writable, setting of it should be ignored. If parameter is empty field, indicator shall remain in the previous value.
+Read command returns the status of MT indicators. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Test command returns pairs, where string value [descr] is a maximum 16 character description of the indicator and compound value is the allowed values for the indicator. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+NOTE: MT manufacturer should offer the description of supported indicators not listed here and their value ranges and default values.
+Defined values
+[ind]: integer type value, which shall be in range of corresponding [descr]
+[descr] values reserved by the present document and their [ind] ranges:
+'battchg' battery charge level (0‑5)
+'signal' signal quality (0‑5)
+'service' service availability (0‑1)
+'sounder' sounder activity (0‑1)
+'message' message received (0‑1)
+'call' call in progress (0‑1)
+'vox' transmit activated by voice activity (0‑1)
+'roam' roaming indicator (0‑1)
+'smsfull' a short message memory storage in the MT has become full and a short message has been rejected (2), has become full (1), or memory locations are available (0); i.e. the range is (0‑2)
+
+</description>
+</spec>
+<spec>
+ <command>AT+CIND?</command>
+ <profile>Indicator control (Query)</profile>
+ <description>Set command is used to set the values of MT indicators. [ind] value 0 means that the indicator is off (or in state which can be identified as 'off'‑state), 1 means that indicator is on (or in a state which is more substantial than 'off'‑state), 2 is more substantial than 1, and so on. If the indicator is a simple on/off style element, it has values 0 and 1. The number of elements is MT specific. If MT does not allow setting of indicators or MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values. If certain indicator is not writable, setting of it should be ignored. If parameter is empty field, indicator shall remain in the previous value.
+Read command returns the status of MT indicators. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Test command returns pairs, where string value [descr] is a maximum 16 character description of the indicator and compound value is the allowed values for the indicator. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+NOTE: MT manufacturer should offer the description of supported indicators not listed here and their value ranges and default values.
+Defined values
+[ind]: integer type value, which shall be in range of corresponding [descr]
+[descr] values reserved by the present document and their [ind] ranges:
+'battchg' battery charge level (0‑5)
+'signal' signal quality (0‑5)
+'service' service availability (0‑1)
+'sounder' sounder activity (0‑1)
+'message' message received (0‑1)
+'call' call in progress (0‑1)
+'vox' transmit activated by voice activity (0‑1)
+'roam' roaming indicator (0‑1)
+'smsfull' a short message memory storage in the MT has become full and a short message has been rejected (2), has become full (1), or memory locations are available (0); i.e. the range is (0‑2)
+
+</description>
+</spec>
+<spec>
+ <command>AT+CIND=?</command>
+ <profile>Indicator control (Query all)</profile>
+ <description>Set command is used to set the values of MT indicators. [ind] value 0 means that the indicator is off (or in state which can be identified as 'off'‑state), 1 means that indicator is on (or in a state which is more substantial than 'off'‑state), 2 is more substantial than 1, and so on. If the indicator is a simple on/off style element, it has values 0 and 1. The number of elements is MT specific. If MT does not allow setting of indicators or MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values. If certain indicator is not writable, setting of it should be ignored. If parameter is empty field, indicator shall remain in the previous value.
+Read command returns the status of MT indicators. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Test command returns pairs, where string value [descr] is a maximum 16 character description of the indicator and compound value is the allowed values for the indicator. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+NOTE: MT manufacturer should offer the description of supported indicators not listed here and their value ranges and default values.
+Defined values
+[ind]: integer type value, which shall be in range of corresponding [descr]
+[descr] values reserved by the present document and their [ind] ranges:
+'battchg' battery charge level (0‑5)
+'signal' signal quality (0‑5)
+'service' service availability (0‑1)
+'sounder' sounder activity (0‑1)
+'message' message received (0‑1)
+'call' call in progress (0‑1)
+'vox' transmit activated by voice activity (0‑1)
+'roam' roaming indicator (0‑1)
+'smsfull' a short message memory storage in the MT has become full and a short message has been rejected (2), has become full (1), or memory locations are available (0); i.e. the range is (0‑2)
+
+</description>
+</spec>
+<spec>
+ <command>AT+CPBR=</command>
+ <profile>Read phonebook entries (Assign)</profile>
+ <description>Execution command returns phonebook entries in location number range [index1]... [index2] from the current phonebook memory storage selected with +CPBS. If [index2] is left out, only location [index1] is returned. Entry fields returned are location number [indexn], phone number stored there [number] (of format [type]), text [text] associated with the number, if the selected phonebook supports hidden entries, [hidden] indicating if the entry is hidden, [group] indicating a group the entry may belong to, [adnumber] an additional number (of format [adtype]), [secondtext] a second text field associated with the number and [email] an email field. If all queried locations are empty (but available), no information text lines may be returned. If listing fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Test command returns location range supported by the current storage as a compound value and the maximum lengths of [number], [text], [group], [secondtext] and [email] fields. In case of (U)SIM storage, the lengths may not be available. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Defined values
+[index1], [index2], [index]: integer type values in the range of location numbers of phonebook memory
+[number]: string type phone number of format [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[text]: string type field of maximum length [tlength]; character set as specified by command Select TE Character Set +CSCS
+[group]: string type field of maximum length [glength]; character set as specified by command Select TE Character Set +CSCS
+[adnumber]: string type phone number of format [adtype]
+[adtype]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[secondtext]: string type field of maximum length [slength]; character set as specified by command Select TE Character Set +CSCS
+[email]: string type field of maximum length [elength]; character set as specified by command Select TE Character Set +CSCS
+[nlength]: integer type value indicating the maximum length of field [number]
+[tlength]: integer type value indicating the maximum length of field [text]
+[glength]: integer type value indicating the maximum length of field [group]
+[slength]: integer type value indicating the maximum length of field [secondtext]
+[elength]: integer type value indicating the maximum length of field [email]
+[hidden]: indicates if the entry is hidden or not
+0: phonebook entry not hidden
+1: phonebook entry hidden
+</description>
+</spec>
+<spec>
+ <command>AT+CPBR=?</command>
+ <profile>Read phonebook entries (Query all)</profile>
+ <description>Execution command returns phonebook entries in location number range [index1]... [index2] from the current phonebook memory storage selected with +CPBS. If [index2] is left out, only location [index1] is returned. Entry fields returned are location number [indexn], phone number stored there [number] (of format [type]), text [text] associated with the number, if the selected phonebook supports hidden entries, [hidden] indicating if the entry is hidden, [group] indicating a group the entry may belong to, [adnumber] an additional number (of format [adtype]), [secondtext] a second text field associated with the number and [email] an email field. If all queried locations are empty (but available), no information text lines may be returned. If listing fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Test command returns location range supported by the current storage as a compound value and the maximum lengths of [number], [text], [group], [secondtext] and [email] fields. In case of (U)SIM storage, the lengths may not be available. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Defined values
+[index1], [index2], [index]: integer type values in the range of location numbers of phonebook memory
+[number]: string type phone number of format [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[text]: string type field of maximum length [tlength]; character set as specified by command Select TE Character Set +CSCS
+[group]: string type field of maximum length [glength]; character set as specified by command Select TE Character Set +CSCS
+[adnumber]: string type phone number of format [adtype]
+[adtype]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[secondtext]: string type field of maximum length [slength]; character set as specified by command Select TE Character Set +CSCS
+[email]: string type field of maximum length [elength]; character set as specified by command Select TE Character Set +CSCS
+[nlength]: integer type value indicating the maximum length of field [number]
+[tlength]: integer type value indicating the maximum length of field [text]
+[glength]: integer type value indicating the maximum length of field [group]
+[slength]: integer type value indicating the maximum length of field [secondtext]
+[elength]: integer type value indicating the maximum length of field [email]
+[hidden]: indicates if the entry is hidden or not
+0: phonebook entry not hidden
+1: phonebook entry hidden
+</description>
+</spec>
+<spec>
+ <command>AT+CPBF=</command>
+ <profile>Find phonebook entries (Assign)</profile>
+ <description>Execution command returns phonebook entries (from the current phonebook memory storage selected with +CPBS) which alphanumeric field start with string [findtext]. Entry fields returned are location number [indexn], phone number stored there [number] (of format [type]), text [text] associated with the number, if the selected phonebook supports hidden entries, [hidden] indicating if the entry is hidden, [group] indicating a group the entry may belong to, [adnumber] an additional number (of format [adtype]), [secondtext] a second text field associated with the number and [email] an email field. If listing fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Test command returns the maximum lengths of [number], [text], [group], [secondtext] and [email] fields. In case of (U)SIM storage, the lengths may not be available. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+
+Defined values
+[index1], [index2]: integer type values in the range of location numbers of phonebook memory
+[number]: string type phone number of format [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[group]: string type field of maximum length [glength]; character set as specified by command Select TE Character Set +CSCS
+[adnumber]: string type phone number of format [adtype]
+[adtype]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[secondtext]: string type field of maximum length [slength]; character set as specified by command Select TE Character Set +CSCS
+[email]: string type field of maximum length [elength]; character set as specified by command Select TE Character Set +CSCS
+[findtext], [text]: string type field of maximum length [tlength]; character set as specified by command Select TE Character Set +CSCS
+[nlength]: integer type value indicating the maximum length of field [number]
+[tlength]: integer type value indicating the maximum length of field [text]
+[glength]: integer type value indicating the maximum length of field [group]
+[slength]: integer type value indicating the maximum length of field [secondtext]
+[elength]: integer type value indicating the maximum length of field [email]
+[hidden]: indicates if the entry is hidden or not
+0: phonebook entry not hidden
+1: phonebook entry hidden
+</description>
+</spec>
+<spec>
+ <command>AT+CPBF=?</command>
+ <profile>Find phonebook entries (Query all)</profile>
+ <description>Execution command returns phonebook entries (from the current phonebook memory storage selected with +CPBS) which alphanumeric field start with string [findtext]. Entry fields returned are location number [indexn], phone number stored there [number] (of format [type]), text [text] associated with the number, if the selected phonebook supports hidden entries, [hidden] indicating if the entry is hidden, [group] indicating a group the entry may belong to, [adnumber] an additional number (of format [adtype]), [secondtext] a second text field associated with the number and [email] an email field. If listing fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Test command returns the maximum lengths of [number], [text], [group], [secondtext] and [email] fields. In case of (U)SIM storage, the lengths may not be available. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+
+Defined values
+[index1], [index2]: integer type values in the range of location numbers of phonebook memory
+[number]: string type phone number of format [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[group]: string type field of maximum length [glength]; character set as specified by command Select TE Character Set +CSCS
+[adnumber]: string type phone number of format [adtype]
+[adtype]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[secondtext]: string type field of maximum length [slength]; character set as specified by command Select TE Character Set +CSCS
+[email]: string type field of maximum length [elength]; character set as specified by command Select TE Character Set +CSCS
+[findtext], [text]: string type field of maximum length [tlength]; character set as specified by command Select TE Character Set +CSCS
+[nlength]: integer type value indicating the maximum length of field [number]
+[tlength]: integer type value indicating the maximum length of field [text]
+[glength]: integer type value indicating the maximum length of field [group]
+[slength]: integer type value indicating the maximum length of field [secondtext]
+[elength]: integer type value indicating the maximum length of field [email]
+[hidden]: indicates if the entry is hidden or not
+0: phonebook entry not hidden
+1: phonebook entry hidden
+</description>
+</spec>
+<spec>
+ <command>AT+CPBW=</command>
+ <profile>Write phonebook entry (Assign)</profile>
+ <description>Execution command writes phonebook entry in location number [index] in the current phonebook memory storage selected with +CPBS. Entry fields written are phone number [number] (in the format [type]), text [text] associated with the number, if the selected phonebook supports hidden entries, [hidden] parameter, which indicates if the entry is hidden or not, [group] indicating a group the entry may belong to, [adnumber] an additional number (of format [adtype]), [secondtext] a second text field associated with the number and [email] an email field. If those fields are omitted, phonebook entry is deleted. If [index] is left out, but [number] is given, entry is written to the first free location in the phonebook (the implementation of this feature is manufacturer specific). If writing fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Test command returns location range supported by the current storage as a compound value, the maximum length of [number] field, supported number formats of the storage, the maximum length of [text] field, the maximum length of [group], the maximum length of [secondtext], and the maximum length of [email]. In case of SIM storage, the lengths may not be available. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values. If storage does not offer format information, the format list should be empty parenthesis
+Defined values
+[index]: integer type values in the range of location numbers of phonebook memory
+[number]: string type phone number of format [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7) ; default 145 when dialling string includes international access code character '+', otherwise 129
+[text]: string type field of maximum length [tlength]; character set as specified by command Select TE Character Set +CSCS
+[group]: string type field of maximum length [glength]; character set as specified by command Select TE Character Set +CSCS
+[adnumber]: string type phone number of format [adtype]
+[adtype]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[secondtext]: string type field of maximum length [slength]; character set as specified by command Select TE Character Set +CSCS
+[email]: string type field of maximum length [elength]; character set as specified by command Select TE Character Set +CSCS
+[nlength]: integer type value indicating the maximum length of field [number]
+[tlength]: integer type value indicating the maximum length of field [text]
+[glength]: integer type value indicating the maximum length of field [group]
+[slength]: integer type value indicating the maximum length of field [secondtext]
+[elength]: integer type value indicating the maximum length of field [email]
+[hidden]: indicates if the entry is hidden or not
+0: phonebook entry not hidden
+1: phonebook entry hidden
+</description>
+</spec>
+<spec>
+ <command>AT+CPBW=?</command>
+ <profile>Write phonebook entry (Query all)</profile>
+ <description>Execution command writes phonebook entry in location number [index] in the current phonebook memory storage selected with +CPBS. Entry fields written are phone number [number] (in the format [type]), text [text] associated with the number, if the selected phonebook supports hidden entries, [hidden] parameter, which indicates if the entry is hidden or not, [group] indicating a group the entry may belong to, [adnumber] an additional number (of format [adtype]), [secondtext] a second text field associated with the number and [email] an email field. If those fields are omitted, phonebook entry is deleted. If [index] is left out, but [number] is given, entry is written to the first free location in the phonebook (the implementation of this feature is manufacturer specific). If writing fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Test command returns location range supported by the current storage as a compound value, the maximum length of [number] field, supported number formats of the storage, the maximum length of [text] field, the maximum length of [group], the maximum length of [secondtext], and the maximum length of [email]. In case of SIM storage, the lengths may not be available. If MT is not currently reachable, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values. If storage does not offer format information, the format list should be empty parenthesis
+Defined values
+[index]: integer type values in the range of location numbers of phonebook memory
+[number]: string type phone number of format [type]
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7) ; default 145 when dialling string includes international access code character '+', otherwise 129
+[text]: string type field of maximum length [tlength]; character set as specified by command Select TE Character Set +CSCS
+[group]: string type field of maximum length [glength]; character set as specified by command Select TE Character Set +CSCS
+[adnumber]: string type phone number of format [adtype]
+[adtype]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7)
+[secondtext]: string type field of maximum length [slength]; character set as specified by command Select TE Character Set +CSCS
+[email]: string type field of maximum length [elength]; character set as specified by command Select TE Character Set +CSCS
+[nlength]: integer type value indicating the maximum length of field [number]
+[tlength]: integer type value indicating the maximum length of field [text]
+[glength]: integer type value indicating the maximum length of field [group]
+[slength]: integer type value indicating the maximum length of field [secondtext]
+[elength]: integer type value indicating the maximum length of field [email]
+[hidden]: indicates if the entry is hidden or not
+0: phonebook entry not hidden
+1: phonebook entry hidden
+</description>
+</spec>
+<spec>
+ <command>AT+CCLK=</command>
+ <profile>Clock (Assign)</profile>
+ <description>Set command sets the real‑time clock of the MT. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current setting of the clock.
+Defined values
+[time]: string type value; format is 'yy/MM/dd,hh:mm:sszz', where characters indicate year (two last digits), month, day, hour, minutes, seconds and time zone (indicates the difference, expressed in quarters of an hour, between the local time and GMT; range -96...+96). E.g. 6th of May 1994, 22:10:00 GMT+2 hours equals to '94/05/06,22:10:00+08'
+NOTE: If MT does not support time zone information then the three last characters of [time] are not returned by +CCLK?. The format of [time] is specified by use of the +CSDF command.
+</description>
+</spec>
+<spec>
+ <command>AT+CCLK?</command>
+ <profile>Clock (Query)</profile>
+ <description>Set command sets the real‑time clock of the MT. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current setting of the clock.
+Defined values
+[time]: string type value; format is 'yy/MM/dd,hh:mm:sszz', where characters indicate year (two last digits), month, day, hour, minutes, seconds and time zone (indicates the difference, expressed in quarters of an hour, between the local time and GMT; range -96...+96). E.g. 6th of May 1994, 22:10:00 GMT+2 hours equals to '94/05/06,22:10:00+08'
+NOTE: If MT does not support time zone information then the three last characters of [time] are not returned by +CCLK?. The format of [time] is specified by use of the +CSDF command.
+</description>
+</spec>
+<spec>
+ <command>AT+CCLK=?</command>
+ <profile>Clock (Query all)</profile>
+ <description>Set command sets the real‑time clock of the MT. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current setting of the clock.
+Defined values
+[time]: string type value; format is 'yy/MM/dd,hh:mm:sszz', where characters indicate year (two last digits), month, day, hour, minutes, seconds and time zone (indicates the difference, expressed in quarters of an hour, between the local time and GMT; range -96...+96). E.g. 6th of May 1994, 22:10:00 GMT+2 hours equals to '94/05/06,22:10:00+08'
+NOTE: If MT does not support time zone information then the three last characters of [time] are not returned by +CCLK?. The format of [time] is specified by use of the +CSDF command.
+</description>
+</spec>
+<spec>
+ <command>AT+CALA=</command>
+ <profile>Alarm (Assign)</profile>
+ <description>Set command sets an alarm time in the MT. There can be an array of different types of alarms, and each alarm may cause different text to be displayed in the MT display. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+To set up a recurrent alarm for one or more days in the week, the [recurr]-parameter may be used.
+When an alarm is timed out and executed, the unsolicited result code +CALV: [n] is always returned, even if the alarm is set up to be silent.
+Read command returns the list of current active alarm settings in the MT.
+Test command returns supported array index values, alarm types, and maximum length of the text to be displayed.
+Defined values
+[time]: refer +CCLK,+CSDF
+NOTE: If the [recurr]-parameter is used, the [time]-parameter must not contain a date.
+[n], [n1], [n2]: integer type value indicating the index of the alarm; default is manufacturer specific
+[type]: integer type value indicating the type of the alarm (e.g. sound, volume, LED); values and default are manufacturer specific
+[text]: string type value indicating the text to be displayed when alarm time is reached; maximum length [tlength]
+[tlength]: integer type value indicating the maximum length of [text]
+[recurr]: string type value indicating day of week for the alarm in one of the following formats:
+
+'[1..7][,[1..7][…]]' – Sets a recurrent alarm for one or more days in the week. The digits 1 to 7 corresponds to the days in the week, Monday (1), …, Sunday (7).
+Example: The string '1,2,3,4,5' may be used to set an alarm for all weekdays.
+
+'0' – Sets a recurrent alarm for all days in the week.
+[rlength]: integer type value indicating the maximum length of [recurr]
+[silent]: Integer type value indicating if the alarm is silent or not. If set to 1 the alarm will be silent and the only result from the alarm is the unsolicited result code +CALV. If set to 0 the alarm will not be silent.
+</description>
+</spec>
+<spec>
+ <command>AT+CALA?</command>
+ <profile>Alarm (Query)</profile>
+ <description>Set command sets an alarm time in the MT. There can be an array of different types of alarms, and each alarm may cause different text to be displayed in the MT display. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+To set up a recurrent alarm for one or more days in the week, the [recurr]-parameter may be used.
+When an alarm is timed out and executed, the unsolicited result code +CALV: [n] is always returned, even if the alarm is set up to be silent.
+Read command returns the list of current active alarm settings in the MT.
+Test command returns supported array index values, alarm types, and maximum length of the text to be displayed.
+Defined values
+[time]: refer +CCLK,+CSDF
+NOTE: If the [recurr]-parameter is used, the [time]-parameter must not contain a date.
+[n], [n1], [n2]: integer type value indicating the index of the alarm; default is manufacturer specific
+[type]: integer type value indicating the type of the alarm (e.g. sound, volume, LED); values and default are manufacturer specific
+[text]: string type value indicating the text to be displayed when alarm time is reached; maximum length [tlength]
+[tlength]: integer type value indicating the maximum length of [text]
+[recurr]: string type value indicating day of week for the alarm in one of the following formats:
+
+'[1..7][,[1..7][…]]' – Sets a recurrent alarm for one or more days in the week. The digits 1 to 7 corresponds to the days in the week, Monday (1), …, Sunday (7).
+Example: The string '1,2,3,4,5' may be used to set an alarm for all weekdays.
+
+'0' – Sets a recurrent alarm for all days in the week.
+[rlength]: integer type value indicating the maximum length of [recurr]
+[silent]: Integer type value indicating if the alarm is silent or not. If set to 1 the alarm will be silent and the only result from the alarm is the unsolicited result code +CALV. If set to 0 the alarm will not be silent.
+</description>
+</spec>
+<spec>
+ <command>AT+CALA=?</command>
+ <profile>Alarm (Query all)</profile>
+ <description>Set command sets an alarm time in the MT. There can be an array of different types of alarms, and each alarm may cause different text to be displayed in the MT display. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+To set up a recurrent alarm for one or more days in the week, the [recurr]-parameter may be used.
+When an alarm is timed out and executed, the unsolicited result code +CALV: [n] is always returned, even if the alarm is set up to be silent.
+Read command returns the list of current active alarm settings in the MT.
+Test command returns supported array index values, alarm types, and maximum length of the text to be displayed.
+Defined values
+[time]: refer +CCLK,+CSDF
+NOTE: If the [recurr]-parameter is used, the [time]-parameter must not contain a date.
+[n], [n1], [n2]: integer type value indicating the index of the alarm; default is manufacturer specific
+[type]: integer type value indicating the type of the alarm (e.g. sound, volume, LED); values and default are manufacturer specific
+[text]: string type value indicating the text to be displayed when alarm time is reached; maximum length [tlength]
+[tlength]: integer type value indicating the maximum length of [text]
+[recurr]: string type value indicating day of week for the alarm in one of the following formats:
+
+'[1..7][,[1..7][…]]' – Sets a recurrent alarm for one or more days in the week. The digits 1 to 7 corresponds to the days in the week, Monday (1), …, Sunday (7).
+Example: The string '1,2,3,4,5' may be used to set an alarm for all weekdays.
+
+'0' – Sets a recurrent alarm for all days in the week.
+[rlength]: integer type value indicating the maximum length of [recurr]
+[silent]: Integer type value indicating if the alarm is silent or not. If set to 1 the alarm will be silent and the only result from the alarm is the unsolicited result code +CALV. If set to 0 the alarm will not be silent.
+</description>
+</spec>
+<spec>
+ <command>AT+CSIM=</command>
+ <profile>Generic SIM access (Assign)</profile>
+ <description>Set command transmits to the MT the [command] it then shall send as it is to the SIM. In the same manner the SIM [response] shall be sent back by the MT to the TA as it is. Refer subclause 9.2 for [err] values.
+This command allows a direct control of the SIM by an distant application on the TE. The TE shall then take care of processing SIM information within the frame specified by GSM/UMTS.
+NOTE: Compared to Restricted SIM Access command +CRSM, the definition of +CSIM allows TE to take more control over the SIM‑MT interface. The locking and unlocking of the interface may be done by a special [command] value or automatically by TA/MT (by interpreting [command] parameter). In case that TE application does not use the unlock command (or does not send a [command] causing automatic unlock) in a certain timeout value, MT may release the locking.
+Defined values
+[length] : integer type; length of the characters that are sent to TE in [command] or [response] (two times the actual length of the command or response)
+[command] : command passed on by the MT to the SIM in the format as described in GSM 51.011 [28] (hexadecimal character format; refer +CSCS)
+[response] : response to the command passed on by the SIM to the MT in the format as described in GSM 51.011 [28] (hexadecimal character format; refer +CSCS)
+</description>
+</spec>
+<spec>
+ <command>AT+CSIM=?</command>
+ <profile>Generic SIM access (Query all)</profile>
+ <description>Set command transmits to the MT the [command] it then shall send as it is to the SIM. In the same manner the SIM [response] shall be sent back by the MT to the TA as it is. Refer subclause 9.2 for [err] values.
+This command allows a direct control of the SIM by an distant application on the TE. The TE shall then take care of processing SIM information within the frame specified by GSM/UMTS.
+NOTE: Compared to Restricted SIM Access command +CRSM, the definition of +CSIM allows TE to take more control over the SIM‑MT interface. The locking and unlocking of the interface may be done by a special [command] value or automatically by TA/MT (by interpreting [command] parameter). In case that TE application does not use the unlock command (or does not send a [command] causing automatic unlock) in a certain timeout value, MT may release the locking.
+Defined values
+[length] : integer type; length of the characters that are sent to TE in [command] or [response] (two times the actual length of the command or response)
+[command] : command passed on by the MT to the SIM in the format as described in GSM 51.011 [28] (hexadecimal character format; refer +CSCS)
+[response] : response to the command passed on by the SIM to the MT in the format as described in GSM 51.011 [28] (hexadecimal character format; refer +CSCS)
+</description>
+</spec>
+<spec>
+ <command>AT+CRSM=</command>
+ <profile>Restricted SIM access (Assign)</profile>
+ <description>By using this command instead of Generic SIM Access +CSIM TE application has easier but more limited access to the SIM database. Set command transmits to the MT the SIM [command] and its required parameters. MT handles internally all SIM‑MT interface locking and file selection routines. As response to the command, MT sends the actual SIM information parameters and response data. MT error result code +CME ERROR may be returned when the command cannot be passed to the SIM, but failure in the execution of the command in the SIM is reported in [sw1] and [sw2] parameters. Refer to subclause 9.2 for [err] values.
+Coordination of command requests to SIM and the ones issued by GSM/UMTS application inside the MT is implementation dependent. However the TE should be aware of the precedence of the GSM/UMTS application commands to the TE commands.
+Defined values
+[command] (command passed on by the MT to the SIM; refer GSM 51.011 [28]):
+176 READ BINARY
+178 READ RECORD
+192 GET RESPONSE
+214 UPDATE BINARY
+220 UPDATE RECORD
+242 STATUS
+203 RETRIEVE DATA
+219 SET DATA
+all other values are reserved
+NOTE 1: The MT internally executes all commands necessary for selecting the desired file, before performing the actual command.
+[fileid]: integer type; this is the identifier of a elementary datafile on SIM. Mandatory for every command except STATUS
+NOTE 2: The range of valid file identifiers depends on the actual SIM and is defined in GSM 51.011 [28]. Optional files may not be present at all.
+[P1], [P2], [P3]: integer type; parameters passed on by the MT to the SIM. These parameters are mandatory for every command, except GET RESPONSE and STATUS. The values are described in GSM 51.011 [28]
+[data]: information which shall be written to the SIM (hexadecimal character format; refer +CSCS)
+[pathid]: string type; contains the path of an elementary file on the SIM/UICC in hexadecimal format as defined in ETSI TS 102 221 [60] (e.g. '7F205F70' in SIM and UICC case). The [pathid] shall only be used in the mode 'select by path from MF' as defined in ETSI TS 102 221 [60].
+NOTE 3: Since valid elementary file identifiers may not be unique over all valid dedicated file identifiers the [pathid] indicates the targeted UICC/SIM directory path in case of ambiguous file identifiers. For earlier versions of this specification or if [pathid] is omitted, it could be implementation specific which one will be selected.
+[sw1], [sw2]: integer type; information from the SIM about the execution of the actual command. These parameters are delivered to the TE in both cases, on successful or failed execution of the command
+[response]: response of a successful completion of the command previously issued (hexadecimal character format; refer +CSCS). STATUS and GET RESPONSE return data, which gives information about the current elementary datafield. This information includes the type of file and its size (refer GSM 51.011 [28]). After READ BINARY, READ RECORD or RETRIEVE DATA command the requested data will be returned. [response] is not returned after a successful UPDATE BINARY, UPDATE RECORD or SET DATA command
+</description>
+</spec>
+<spec>
+ <command>AT+CRSM=?</command>
+ <profile>Restricted SIM access (Query all)</profile>
+ <description>By using this command instead of Generic SIM Access +CSIM TE application has easier but more limited access to the SIM database. Set command transmits to the MT the SIM [command] and its required parameters. MT handles internally all SIM‑MT interface locking and file selection routines. As response to the command, MT sends the actual SIM information parameters and response data. MT error result code +CME ERROR may be returned when the command cannot be passed to the SIM, but failure in the execution of the command in the SIM is reported in [sw1] and [sw2] parameters. Refer to subclause 9.2 for [err] values.
+Coordination of command requests to SIM and the ones issued by GSM/UMTS application inside the MT is implementation dependent. However the TE should be aware of the precedence of the GSM/UMTS application commands to the TE commands.
+Defined values
+[command] (command passed on by the MT to the SIM; refer GSM 51.011 [28]):
+176 READ BINARY
+178 READ RECORD
+192 GET RESPONSE
+214 UPDATE BINARY
+220 UPDATE RECORD
+242 STATUS
+203 RETRIEVE DATA
+219 SET DATA
+all other values are reserved
+NOTE 1: The MT internally executes all commands necessary for selecting the desired file, before performing the actual command.
+[fileid]: integer type; this is the identifier of a elementary datafile on SIM. Mandatory for every command except STATUS
+NOTE 2: The range of valid file identifiers depends on the actual SIM and is defined in GSM 51.011 [28]. Optional files may not be present at all.
+[P1], [P2], [P3]: integer type; parameters passed on by the MT to the SIM. These parameters are mandatory for every command, except GET RESPONSE and STATUS. The values are described in GSM 51.011 [28]
+[data]: information which shall be written to the SIM (hexadecimal character format; refer +CSCS)
+[pathid]: string type; contains the path of an elementary file on the SIM/UICC in hexadecimal format as defined in ETSI TS 102 221 [60] (e.g. '7F205F70' in SIM and UICC case). The [pathid] shall only be used in the mode 'select by path from MF' as defined in ETSI TS 102 221 [60].
+NOTE 3: Since valid elementary file identifiers may not be unique over all valid dedicated file identifiers the [pathid] indicates the targeted UICC/SIM directory path in case of ambiguous file identifiers. For earlier versions of this specification or if [pathid] is omitted, it could be implementation specific which one will be selected.
+[sw1], [sw2]: integer type; information from the SIM about the execution of the actual command. These parameters are delivered to the TE in both cases, on successful or failed execution of the command
+[response]: response of a successful completion of the command previously issued (hexadecimal character format; refer +CSCS). STATUS and GET RESPONSE return data, which gives information about the current elementary datafield. This information includes the type of file and its size (refer GSM 51.011 [28]). After READ BINARY, READ RECORD or RETRIEVE DATA command the requested data will be returned. [response] is not returned after a successful UPDATE BINARY, UPDATE RECORD or SET DATA command
+</description>
+</spec>
+<spec>
+ <command>AT+CSCC=</command>
+ <profile>Secure control command (Assign)</profile>
+ <description>This command is used to enable/disable access to commands protected by security mechanism. This enables/disables access to command sets designated as 'secure' such as programming of MT. Refer subclause 9.2 for possible [err] values.
+The TE asks for a [challenge] with [mode]=1 and one specific command set ([cmd_set]), the MT replies with the [challenge], which should be inserted into the identification algorithm in both entities (TE and MT). The algorithm output [token] is sent to the MT with [mode]=2 to enable the specified command set. [mode]=3 is used to disable the command set.
+The read command returns the status ([mode] 2 or 3) of each supported command set.
+Defined values
+[mode]:
+1 request challenge token to enable access to specified command set
+2 enable access to specified command set ([token] required)
+3 disable access to specified command set
+[cmd_set], [cmd_set1], [cmd_set2]:
+0 MT/TA code re-programming command set.
+other values below 128 are reserved by the present document
+[token]: string type; a variable length bit string represented with IRA characters 0 - 9 and A - F, each character representing a nibble; e.g. bit string '0110 1100 1001 1010' is represented by the IRA string '6C9A'. The length of the required bit string varies depending on the value of [cmd_set].
+[challenge]: same format as token
+</description>
+</spec>
+<spec>
+ <command>AT+CSCC?</command>
+ <profile>Secure control command (Query)</profile>
+ <description>This command is used to enable/disable access to commands protected by security mechanism. This enables/disables access to command sets designated as 'secure' such as programming of MT. Refer subclause 9.2 for possible [err] values.
+The TE asks for a [challenge] with [mode]=1 and one specific command set ([cmd_set]), the MT replies with the [challenge], which should be inserted into the identification algorithm in both entities (TE and MT). The algorithm output [token] is sent to the MT with [mode]=2 to enable the specified command set. [mode]=3 is used to disable the command set.
+The read command returns the status ([mode] 2 or 3) of each supported command set.
+Defined values
+[mode]:
+1 request challenge token to enable access to specified command set
+2 enable access to specified command set ([token] required)
+3 disable access to specified command set
+[cmd_set], [cmd_set1], [cmd_set2]:
+0 MT/TA code re-programming command set.
+other values below 128 are reserved by the present document
+[token]: string type; a variable length bit string represented with IRA characters 0 - 9 and A - F, each character representing a nibble; e.g. bit string '0110 1100 1001 1010' is represented by the IRA string '6C9A'. The length of the required bit string varies depending on the value of [cmd_set].
+[challenge]: same format as token
+</description>
+</spec>
+<spec>
+ <command>AT+CSCC=?</command>
+ <profile>Secure control command (Query all)</profile>
+ <description>This command is used to enable/disable access to commands protected by security mechanism. This enables/disables access to command sets designated as 'secure' such as programming of MT. Refer subclause 9.2 for possible [err] values.
+The TE asks for a [challenge] with [mode]=1 and one specific command set ([cmd_set]), the MT replies with the [challenge], which should be inserted into the identification algorithm in both entities (TE and MT). The algorithm output [token] is sent to the MT with [mode]=2 to enable the specified command set. [mode]=3 is used to disable the command set.
+The read command returns the status ([mode] 2 or 3) of each supported command set.
+Defined values
+[mode]:
+1 request challenge token to enable access to specified command set
+2 enable access to specified command set ([token] required)
+3 disable access to specified command set
+[cmd_set], [cmd_set1], [cmd_set2]:
+0 MT/TA code re-programming command set.
+other values below 128 are reserved by the present document
+[token]: string type; a variable length bit string represented with IRA characters 0 - 9 and A - F, each character representing a nibble; e.g. bit string '0110 1100 1001 1010' is represented by the IRA string '6C9A'. The length of the required bit string varies depending on the value of [cmd_set].
+[challenge]: same format as token
+</description>
+</spec>
+<spec>
+ <command>AT+CALM=</command>
+ <profile>Alert sound mode (Assign)</profile>
+ <description>This command is used to select the general alert sound mode of the MT. Refer subclause 9.2 for possible [err] values.
+Test command returns supported values as compound value.
+Defined values
+[mode]:
+0 normal mode
+1 silent mode (all sounds from MT are prevented)
+2… manufacturer specific
+</description>
+</spec>
+<spec>
+ <command>AT+CALM?</command>
+ <profile>Alert sound mode (Query)</profile>
+ <description>This command is used to select the general alert sound mode of the MT. Refer subclause 9.2 for possible [err] values.
+Test command returns supported values as compound value.
+Defined values
+[mode]:
+0 normal mode
+1 silent mode (all sounds from MT are prevented)
+2… manufacturer specific
+</description>
+</spec>
+<spec>
+ <command>AT+CALM=?</command>
+ <profile>Alert sound mode (Query all)</profile>
+ <description>This command is used to select the general alert sound mode of the MT. Refer subclause 9.2 for possible [err] values.
+Test command returns supported values as compound value.
+Defined values
+[mode]:
+0 normal mode
+1 silent mode (all sounds from MT are prevented)
+2… manufacturer specific
+</description>
+</spec>
+<spec>
+ <command>AT+CRSL=</command>
+ <profile>Ringer sound level (Assign)</profile>
+ <description>This command is used to select the incoming call ringer sound level of the MT. Refer subclause 9.2 for possible [err] values.
+Test command returns supported values as compound value.
+Defined values
+[level]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
+</description>
+</spec>
+<spec>
+ <command>AT+CRSL?</command>
+ <profile>Ringer sound level (Query)</profile>
+ <description>This command is used to select the incoming call ringer sound level of the MT. Refer subclause 9.2 for possible [err] values.
+Test command returns supported values as compound value.
+Defined values
+[level]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
+</description>
+</spec>
+<spec>
+ <command>AT+CRSL=?</command>
+ <profile>Ringer sound level (Query all)</profile>
+ <description>This command is used to select the incoming call ringer sound level of the MT. Refer subclause 9.2 for possible [err] values.
+Test command returns supported values as compound value.
+Defined values
+[level]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
+</description>
+</spec>
+<spec>
+ <command>AT+CVIB=</command>
+ <profile>Vibrator mode (Assign)</profile>
+ <description>This command is used to enable and disable the vibrator alert feature of the MT. It is manufacturer specific how this interacts with +CALM command. Refer subclause 9.2 for possible [err] values.
+Test command returns supported values as compound value.
+Defined values
+[mode]:
+0 disable
+1 enable
+...15 reserved by the present document
+16… manufacturer specific
+</description>
+</spec>
+<spec>
+ <command>AT+CVIB?</command>
+ <profile>Vibrator mode (Query)</profile>
+ <description>This command is used to enable and disable the vibrator alert feature of the MT. It is manufacturer specific how this interacts with +CALM command. Refer subclause 9.2 for possible [err] values.
+Test command returns supported values as compound value.
+Defined values
+[mode]:
+0 disable
+1 enable
+...15 reserved by the present document
+16… manufacturer specific
+</description>
+</spec>
+<spec>
+ <command>AT+CVIB=?</command>
+ <profile>Vibrator mode (Query all)</profile>
+ <description>This command is used to enable and disable the vibrator alert feature of the MT. It is manufacturer specific how this interacts with +CALM command. Refer subclause 9.2 for possible [err] values.
+Test command returns supported values as compound value.
+Defined values
+[mode]:
+0 disable
+1 enable
+...15 reserved by the present document
+16… manufacturer specific
+</description>
+</spec>
+<spec>
+ <command>AT+CLVL=</command>
+ <profile>Loudspeaker volume level (Assign)</profile>
+ <description>This command is used to select the volume of the internal loudspeaker of the MT. Refer subclause 9.2 for possible [err] values.
+Test command returns supported values as compound value.
+Defined values
+[level]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
+</description>
+</spec>
+<spec>
+ <command>AT+CLVL?</command>
+ <profile>Loudspeaker volume level (Query)</profile>
+ <description>This command is used to select the volume of the internal loudspeaker of the MT. Refer subclause 9.2 for possible [err] values.
+Test command returns supported values as compound value.
+Defined values
+[level]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
+</description>
+</spec>
+<spec>
+ <command>AT+CLVL=?</command>
+ <profile>Loudspeaker volume level (Query all)</profile>
+ <description>This command is used to select the volume of the internal loudspeaker of the MT. Refer subclause 9.2 for possible [err] values.
+Test command returns supported values as compound value.
+Defined values
+[level]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
+</description>
+</spec>
+<spec>
+ <command>AT+CMUT=</command>
+ <profile>Mute control (Assign)</profile>
+ <description>This command is used to enable and disable the uplink voice muting during a voice call. Refer subclause 9.2 for possible [err] values.
+Test command returns supported values as compound value.
+Defined values
+[n]:
+0 mute off
+1 mute on
+</description>
+</spec>
+<spec>
+ <command>AT+CMUT?</command>
+ <profile>Mute control (Query)</profile>
+ <description>This command is used to enable and disable the uplink voice muting during a voice call. Refer subclause 9.2 for possible [err] values.
+Test command returns supported values as compound value.
+Defined values
+[n]:
+0 mute off
+1 mute on
+</description>
+</spec>
+<spec>
+ <command>AT+CMUT=?</command>
+ <profile>Mute control (Query all)</profile>
+ <description>This command is used to enable and disable the uplink voice muting during a voice call. Refer subclause 9.2 for possible [err] values.
+Test command returns supported values as compound value.
+Defined values
+[n]:
+0 mute off
+1 mute on
+</description>
+</spec>
+<spec>
+ <command>AT+CACM=</command>
+ <profile>Accumulated call meter (Assign)</profile>
+ <description>Set command resets the Advice of Charge related accumulated call meter value in SIM card or in the active application in the UICC (GSM or USIM) file EFACM. ACM contains the total number of home units for both the current and preceding calls. SIM PIN2 is usually required to reset the value. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current value of ACM.
+Defined values
+[passwd]: string type; SIM PIN2
+[acm]: string type; accumulated call meter value similarly coded as [ccm] under +CAOC
+</description>
+</spec>
+<spec>
+ <command>AT+CACM?</command>
+ <profile>Accumulated call meter (Query)</profile>
+ <description>Set command resets the Advice of Charge related accumulated call meter value in SIM card or in the active application in the UICC (GSM or USIM) file EFACM. ACM contains the total number of home units for both the current and preceding calls. SIM PIN2 is usually required to reset the value. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current value of ACM.
+Defined values
+[passwd]: string type; SIM PIN2
+[acm]: string type; accumulated call meter value similarly coded as [ccm] under +CAOC
+</description>
+</spec>
+<spec>
+ <command>AT+CACM=?</command>
+ <profile>Accumulated call meter (Query all)</profile>
+ <description>Set command resets the Advice of Charge related accumulated call meter value in SIM card or in the active application in the UICC (GSM or USIM) file EFACM. ACM contains the total number of home units for both the current and preceding calls. SIM PIN2 is usually required to reset the value. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current value of ACM.
+Defined values
+[passwd]: string type; SIM PIN2
+[acm]: string type; accumulated call meter value similarly coded as [ccm] under +CAOC
+</description>
+</spec>
+<spec>
+ <command>AT+CAMM=</command>
+ <profile>Accumulated call meter maximum (Assign)</profile>
+ <description>Set command sets the Advice of Charge related accumulated call meter maximum value in SIM card or in the active application in the UICC (GSM or USIM) file EFACMmax. ACMmax contains the maximum number of home units allowed to be consumed by the subscriber. When ACM (refer +CACM) reaches ACMmax calls are prohibited (see also 3GPP TS 22.024 [26]). SIM PIN2 is usually required to set the value. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current value of ACMmax.
+Defined values
+[acmmax]: string type; accumulated call meter maximum value similarly coded as [ccm] under +CAOC; value zero disables ACMmax feature
+[passwd]: string type; SIM PIN2
+</description>
+</spec>
+<spec>
+ <command>AT+CAMM?</command>
+ <profile>Accumulated call meter maximum (Query)</profile>
+ <description>Set command sets the Advice of Charge related accumulated call meter maximum value in SIM card or in the active application in the UICC (GSM or USIM) file EFACMmax. ACMmax contains the maximum number of home units allowed to be consumed by the subscriber. When ACM (refer +CACM) reaches ACMmax calls are prohibited (see also 3GPP TS 22.024 [26]). SIM PIN2 is usually required to set the value. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current value of ACMmax.
+Defined values
+[acmmax]: string type; accumulated call meter maximum value similarly coded as [ccm] under +CAOC; value zero disables ACMmax feature
+[passwd]: string type; SIM PIN2
+</description>
+</spec>
+<spec>
+ <command>AT+CAMM=?</command>
+ <profile>Accumulated call meter maximum (Query all)</profile>
+ <description>Set command sets the Advice of Charge related accumulated call meter maximum value in SIM card or in the active application in the UICC (GSM or USIM) file EFACMmax. ACMmax contains the maximum number of home units allowed to be consumed by the subscriber. When ACM (refer +CACM) reaches ACMmax calls are prohibited (see also 3GPP TS 22.024 [26]). SIM PIN2 is usually required to set the value. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current value of ACMmax.
+Defined values
+[acmmax]: string type; accumulated call meter maximum value similarly coded as [ccm] under +CAOC; value zero disables ACMmax feature
+[passwd]: string type; SIM PIN2
+</description>
+</spec>
+<spec>
+ <command>AT+CPUC=</command>
+ <profile>Price per unit and currency table (Assign)</profile>
+ <description>Set command sets the parameters of Advice of Charge related price per unit and currency table in SIM card or in the active application in the UICC (GSM or USIM) file EFPUCT. PUCT information can be used to convert the home units (as used in +CAOC, +CACM and +CAMM) into currency units. SIM PIN2 is usually required to set the parameters. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current parameters of PUCT.
+Defined values
+[currency]: string type; three-character currency code (e.g. 'GBP', 'DEM'); character set as specified by command Select TE Character Set +CSCS
+[ppu]: string type; price per unit; dot is used as a decimal separator (e.g. '2.66')
+[passwd]: string type; SIM PIN2
+</description>
+</spec>
+<spec>
+ <command>AT+CPUC?</command>
+ <profile>Price per unit and currency table (Query)</profile>
+ <description>Set command sets the parameters of Advice of Charge related price per unit and currency table in SIM card or in the active application in the UICC (GSM or USIM) file EFPUCT. PUCT information can be used to convert the home units (as used in +CAOC, +CACM and +CAMM) into currency units. SIM PIN2 is usually required to set the parameters. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current parameters of PUCT.
+Defined values
+[currency]: string type; three-character currency code (e.g. 'GBP', 'DEM'); character set as specified by command Select TE Character Set +CSCS
+[ppu]: string type; price per unit; dot is used as a decimal separator (e.g. '2.66')
+[passwd]: string type; SIM PIN2
+</description>
+</spec>
+<spec>
+ <command>AT+CPUC=?</command>
+ <profile>Price per unit and currency table (Query all)</profile>
+ <description>Set command sets the parameters of Advice of Charge related price per unit and currency table in SIM card or in the active application in the UICC (GSM or USIM) file EFPUCT. PUCT information can be used to convert the home units (as used in +CAOC, +CACM and +CAMM) into currency units. SIM PIN2 is usually required to set the parameters. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current parameters of PUCT.
+Defined values
+[currency]: string type; three-character currency code (e.g. 'GBP', 'DEM'); character set as specified by command Select TE Character Set +CSCS
+[ppu]: string type; price per unit; dot is used as a decimal separator (e.g. '2.66')
+[passwd]: string type; SIM PIN2
+</description>
+</spec>
+<spec>
+ <command>AT+CCWE=</command>
+ <profile>Call Meter maximum event (Assign)</profile>
+ <description>Shortly before the ACM (Accumulated Call Meter) maximum value is reached, an unsolicited result code +CCWV will be sent, if enabled by this command. The warning is issued approximately when 30 seconds call time remains. It is also issued when starting a call if less than 30 s call time remains. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current setting.
+Test command returns supported settings.
+Defined values
+[mode]:
+0 Disable the call meter warning event
+1 Enable the call meter warning event
+</description>
+</spec>
+<spec>
+ <command>AT+CCWE?</command>
+ <profile>Call Meter maximum event (Query)</profile>
+ <description>Shortly before the ACM (Accumulated Call Meter) maximum value is reached, an unsolicited result code +CCWV will be sent, if enabled by this command. The warning is issued approximately when 30 seconds call time remains. It is also issued when starting a call if less than 30 s call time remains. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current setting.
+Test command returns supported settings.
+Defined values
+[mode]:
+0 Disable the call meter warning event
+1 Enable the call meter warning event
+</description>
+</spec>
+<spec>
+ <command>AT+CCWE=?</command>
+ <profile>Call Meter maximum event (Query all)</profile>
+ <description>Shortly before the ACM (Accumulated Call Meter) maximum value is reached, an unsolicited result code +CCWV will be sent, if enabled by this command. The warning is issued approximately when 30 seconds call time remains. It is also issued when starting a call if less than 30 s call time remains. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current setting.
+Test command returns supported settings.
+Defined values
+[mode]:
+0 Disable the call meter warning event
+1 Enable the call meter warning event
+</description>
+</spec>
+<spec>
+ <command>AT+CPWC=</command>
+ <profile>Power class (Assign)</profile>
+ <description>This command is used to set the preferred MT power class for each GSM frequency band supported. The interaction of this setting with the selected bearer service (+CBST and HSCSD commands) is manufacturer specific (for example, selecting a multislot operation might reduce the power class automatically). If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the currently selected output power class and default output power class for each supported frequency band (as defined by MT manufacturer). Parameter [band1] and its associated power class parameters refer to the currently used frequency band. For example, +CPWC: 2,1,1,5,4,0 in case of a dual-band MT currently using band GSM1800, for which the power class is currently set to 2, the default being class 1, and for which the currently set power class value for GSM900 is class 5 the default being class 4.
+Test command returns supported bands and their power classes. For example,
++CPWC: (0,(0,4,5)),(1,(0-2)) in case of a dual-band handheld MT.
+Defined values
+[class], [curr_classn]s, [def_classn]s:
+0 default (not applicable to [curr_class]s or [def_classn]s)
+1… MT output power class as in GSM 45.005 [38]
+[band], [bandn]s:
+0 GSM900
+1 GSM1800
+2 reserved for GSM1900
+3 GSM 400
+</description>
+</spec>
+<spec>
+ <command>AT+CPWC?</command>
+ <profile>Power class (Query)</profile>
+ <description>This command is used to set the preferred MT power class for each GSM frequency band supported. The interaction of this setting with the selected bearer service (+CBST and HSCSD commands) is manufacturer specific (for example, selecting a multislot operation might reduce the power class automatically). If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the currently selected output power class and default output power class for each supported frequency band (as defined by MT manufacturer). Parameter [band1] and its associated power class parameters refer to the currently used frequency band. For example, +CPWC: 2,1,1,5,4,0 in case of a dual-band MT currently using band GSM1800, for which the power class is currently set to 2, the default being class 1, and for which the currently set power class value for GSM900 is class 5 the default being class 4.
+Test command returns supported bands and their power classes. For example,
++CPWC: (0,(0,4,5)),(1,(0-2)) in case of a dual-band handheld MT.
+Defined values
+[class], [curr_classn]s, [def_classn]s:
+0 default (not applicable to [curr_class]s or [def_classn]s)
+1… MT output power class as in GSM 45.005 [38]
+[band], [bandn]s:
+0 GSM900
+1 GSM1800
+2 reserved for GSM1900
+3 GSM 400
+</description>
+</spec>
+<spec>
+ <command>AT+CPWC=?</command>
+ <profile>Power class (Query all)</profile>
+ <description>This command is used to set the preferred MT power class for each GSM frequency band supported. The interaction of this setting with the selected bearer service (+CBST and HSCSD commands) is manufacturer specific (for example, selecting a multislot operation might reduce the power class automatically). If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the currently selected output power class and default output power class for each supported frequency band (as defined by MT manufacturer). Parameter [band1] and its associated power class parameters refer to the currently used frequency band. For example, +CPWC: 2,1,1,5,4,0 in case of a dual-band MT currently using band GSM1800, for which the power class is currently set to 2, the default being class 1, and for which the currently set power class value for GSM900 is class 5 the default being class 4.
+Test command returns supported bands and their power classes. For example,
++CPWC: (0,(0,4,5)),(1,(0-2)) in case of a dual-band handheld MT.
+Defined values
+[class], [curr_classn]s, [def_classn]s:
+0 default (not applicable to [curr_class]s or [def_classn]s)
+1… MT output power class as in GSM 45.005 [38]
+[band], [bandn]s:
+0 GSM900
+1 GSM1800
+2 reserved for GSM1900
+3 GSM 400
+</description>
+</spec>
+<spec>
+ <command>AT+CLAN=</command>
+ <profile>Set Language (Assign)</profile>
+ <description>This command sets the language in the MT. The set-command must confirm the selected language with the MMI-module in the MT. If setting fails, a MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+The [code]-parameter is a two-letter abbreviation of the language. The language codes, as defined in ISO 639, consists of two characters, e.g. 'sv', 'en' etc.
+The complete set of language codes to be used are manufacturer specific and should all be possible to use with the command. Some examples are described under [code]. For a complete list see ISO 639.
+The read command gives the current language as output. If the language has been set to 'AUTO', the read command returns the current language set from the SIM-card /UICC. Hence, the 'AUTO'-code is never returned by the read-command.
+Test command returns supported [code]s.
+Defined values
+[code]: (not all language codes are present in this list)
+'AUTO' Read language from SIM-card /UICC. 'Auto' is not returned by the read-command.
+'sw' Swedish
+'fi' Finnish
+'da' Danish
+'no' Norwegian
+'de' German
+'fr' French
+'es' Spanish
+'it' Italian
+'en' English
+</description>
+</spec>
+<spec>
+ <command>AT+CLAN?</command>
+ <profile>Set Language (Query)</profile>
+ <description>This command sets the language in the MT. The set-command must confirm the selected language with the MMI-module in the MT. If setting fails, a MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+The [code]-parameter is a two-letter abbreviation of the language. The language codes, as defined in ISO 639, consists of two characters, e.g. 'sv', 'en' etc.
+The complete set of language codes to be used are manufacturer specific and should all be possible to use with the command. Some examples are described under [code]. For a complete list see ISO 639.
+The read command gives the current language as output. If the language has been set to 'AUTO', the read command returns the current language set from the SIM-card /UICC. Hence, the 'AUTO'-code is never returned by the read-command.
+Test command returns supported [code]s.
+Defined values
+[code]: (not all language codes are present in this list)
+'AUTO' Read language from SIM-card /UICC. 'Auto' is not returned by the read-command.
+'sw' Swedish
+'fi' Finnish
+'da' Danish
+'no' Norwegian
+'de' German
+'fr' French
+'es' Spanish
+'it' Italian
+'en' English
+</description>
+</spec>
+<spec>
+ <command>AT+CLAN=?</command>
+ <profile>Set Language (Query all)</profile>
+ <description>This command sets the language in the MT. The set-command must confirm the selected language with the MMI-module in the MT. If setting fails, a MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+The [code]-parameter is a two-letter abbreviation of the language. The language codes, as defined in ISO 639, consists of two characters, e.g. 'sv', 'en' etc.
+The complete set of language codes to be used are manufacturer specific and should all be possible to use with the command. Some examples are described under [code]. For a complete list see ISO 639.
+The read command gives the current language as output. If the language has been set to 'AUTO', the read command returns the current language set from the SIM-card /UICC. Hence, the 'AUTO'-code is never returned by the read-command.
+Test command returns supported [code]s.
+Defined values
+[code]: (not all language codes are present in this list)
+'AUTO' Read language from SIM-card /UICC. 'Auto' is not returned by the read-command.
+'sw' Swedish
+'fi' Finnish
+'da' Danish
+'no' Norwegian
+'de' German
+'fr' French
+'es' Spanish
+'it' Italian
+'en' English
+</description>
+</spec>
+<spec>
+ <command>AT+CLAE=</command>
+ <profile>Language Event (Assign)</profile>
+ <description>This command is used to enable/disable unsolicited result code +CLAV: [code]. If [mode]=1, +CLAV: [code ] is sent from the MT when the language in the MT is changed. If setting fails, a MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current status for [mode].
+Test command returns supported [mode]s.
+Defined values
+[mode]:
+0 Disable unsolicited result code +CLAE
+1 Enable unsolicited result code +CLAE
+[code]: For description see +CLAN.
+</description>
+</spec>
+<spec>
+ <command>AT+CLAE?</command>
+ <profile>Language Event (Query)</profile>
+ <description>This command is used to enable/disable unsolicited result code +CLAV: [code]. If [mode]=1, +CLAV: [code ] is sent from the MT when the language in the MT is changed. If setting fails, a MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current status for [mode].
+Test command returns supported [mode]s.
+Defined values
+[mode]:
+0 Disable unsolicited result code +CLAE
+1 Enable unsolicited result code +CLAE
+[code]: For description see +CLAN.
+</description>
+</spec>
+<spec>
+ <command>AT+CLAE=?</command>
+ <profile>Language Event (Query all)</profile>
+ <description>This command is used to enable/disable unsolicited result code +CLAV: [code]. If [mode]=1, +CLAV: [code ] is sent from the MT when the language in the MT is changed. If setting fails, a MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current status for [mode].
+Test command returns supported [mode]s.
+Defined values
+[mode]:
+0 Disable unsolicited result code +CLAE
+1 Enable unsolicited result code +CLAE
+[code]: For description see +CLAN.
+</description>
+</spec>
+<spec>
+ <command>AT+CSGT=</command>
+ <profile>Set Greeting Text (Assign)</profile>
+ <description>This command sets and activates the greeting text in the MT. The greeting text is shown in the MT display when the MT is turned on. The command can also be used to deactivate a text. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+The read command queries the current [text] and the status of the [mode] parameter
+Test command returns supported [mode]s and the maximum number of characters in [text]. For example,
++CSGT: (0-1),20
+Defined values
+[text]: string type; A free text that shall be displayed. The text can not include [CR]
+[mode]:
+0 Turn off greeting text.
+1 Turn on greeting text
+</description>
+</spec>
+<spec>
+ <command>AT+CSGT?</command>
+ <profile>Set Greeting Text (Query)</profile>
+ <description>This command sets and activates the greeting text in the MT. The greeting text is shown in the MT display when the MT is turned on. The command can also be used to deactivate a text. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+The read command queries the current [text] and the status of the [mode] parameter
+Test command returns supported [mode]s and the maximum number of characters in [text]. For example,
++CSGT: (0-1),20
+Defined values
+[text]: string type; A free text that shall be displayed. The text can not include [CR]
+[mode]:
+0 Turn off greeting text.
+1 Turn on greeting text
+</description>
+</spec>
+<spec>
+ <command>AT+CSGT=?</command>
+ <profile>Set Greeting Text (Query all)</profile>
+ <description>This command sets and activates the greeting text in the MT. The greeting text is shown in the MT display when the MT is turned on. The command can also be used to deactivate a text. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+The read command queries the current [text] and the status of the [mode] parameter
+Test command returns supported [mode]s and the maximum number of characters in [text]. For example,
++CSGT: (0-1),20
+Defined values
+[text]: string type; A free text that shall be displayed. The text can not include [CR]
+[mode]:
+0 Turn off greeting text.
+1 Turn on greeting text
+</description>
+</spec>
+<spec>
+ <command>AT+CSVM=</command>
+ <profile>Set Voice Mail Number (Assign)</profile>
+ <description>The number to the voice mail server is set with this command. The parameters [number] and [type] can be left out if the parameter [mode] is set to 0. If setting fails, an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the currently selected voice mail number and the status (i.e. enabled/disabled).
+Test command returns supported [mode]s and [type]s.
+Defined values
+[mode]:
+0 Disable the voice mail number.
+1 Enable the voice mail number.
+[number]: string type; Character string [0..9,+]
+[type]: integer type; Type of address octet. (refer TS 24.008 subclause 10.5.4.7)
+129 ISDN / telephony numbering plan, national / international unknown
+145 ISDN / telephony numbering plan, international number
+161 ISDN / telephony numbering plan, national number
+128 - 255 Other values refer TS 24.008 section 10.5.4.7
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
+</description>
+</spec>
+<spec>
+ <command>AT+CSVM?</command>
+ <profile>Set Voice Mail Number (Query)</profile>
+ <description>The number to the voice mail server is set with this command. The parameters [number] and [type] can be left out if the parameter [mode] is set to 0. If setting fails, an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the currently selected voice mail number and the status (i.e. enabled/disabled).
+Test command returns supported [mode]s and [type]s.
+Defined values
+[mode]:
+0 Disable the voice mail number.
+1 Enable the voice mail number.
+[number]: string type; Character string [0..9,+]
+[type]: integer type; Type of address octet. (refer TS 24.008 subclause 10.5.4.7)
+129 ISDN / telephony numbering plan, national / international unknown
+145 ISDN / telephony numbering plan, international number
+161 ISDN / telephony numbering plan, national number
+128 - 255 Other values refer TS 24.008 section 10.5.4.7
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
+</description>
+</spec>
+<spec>
+ <command>AT+CSVM=?</command>
+ <profile>Set Voice Mail Number (Query all)</profile>
+ <description>The number to the voice mail server is set with this command. The parameters [number] and [type] can be left out if the parameter [mode] is set to 0. If setting fails, an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the currently selected voice mail number and the status (i.e. enabled/disabled).
+Test command returns supported [mode]s and [type]s.
+Defined values
+[mode]:
+0 Disable the voice mail number.
+1 Enable the voice mail number.
+[number]: string type; Character string [0..9,+]
+[type]: integer type; Type of address octet. (refer TS 24.008 subclause 10.5.4.7)
+129 ISDN / telephony numbering plan, national / international unknown
+145 ISDN / telephony numbering plan, international number
+161 ISDN / telephony numbering plan, national number
+128 - 255 Other values refer TS 24.008 section 10.5.4.7
+[type]: type of address octet in integer format (refer TS 24.008 [8] subclause 10.5.4.7); default 145 when dialling string includes international access code character '+', otherwise 129
+</description>
+</spec>
+<spec>
+ <command>AT+CRMC=</command>
+ <profile>Ring Melody Control (Assign)</profile>
+ <description>Write command causes the MT to set a specific ring melody and volume for the selected call type and profile. The default values for the optional parameters are defined by the manufacturer.
+Read command queries the settings for the ring melody. If call types and profiles are available the corresponding ring melodies are listed. Starting with call type1 and profile1 the ring melody settings for each available profile and call type is issued.
+Test command returns the list of available ring melodies, volumes, call types and profiles.
+Defined values:
+[index]: integer type; manufacturer specific number to identify a certain ring melody
+[volume]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
+[call typex]: integer type; manufacturer specific number for a call type
+[profilex]: integer type; manufacturer specific number for a profile
+</description>
+</spec>
+<spec>
+ <command>AT+CRMC?</command>
+ <profile>Ring Melody Control (Query)</profile>
+ <description>Write command causes the MT to set a specific ring melody and volume for the selected call type and profile. The default values for the optional parameters are defined by the manufacturer.
+Read command queries the settings for the ring melody. If call types and profiles are available the corresponding ring melodies are listed. Starting with call type1 and profile1 the ring melody settings for each available profile and call type is issued.
+Test command returns the list of available ring melodies, volumes, call types and profiles.
+Defined values:
+[index]: integer type; manufacturer specific number to identify a certain ring melody
+[volume]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
+[call typex]: integer type; manufacturer specific number for a call type
+[profilex]: integer type; manufacturer specific number for a profile
+</description>
+</spec>
+<spec>
+ <command>AT+CRMC=?</command>
+ <profile>Ring Melody Control (Query all)</profile>
+ <description>Write command causes the MT to set a specific ring melody and volume for the selected call type and profile. The default values for the optional parameters are defined by the manufacturer.
+Read command queries the settings for the ring melody. If call types and profiles are available the corresponding ring melodies are listed. Starting with call type1 and profile1 the ring melody settings for each available profile and call type is issued.
+Test command returns the list of available ring melodies, volumes, call types and profiles.
+Defined values:
+[index]: integer type; manufacturer specific number to identify a certain ring melody
+[volume]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
+[call typex]: integer type; manufacturer specific number for a call type
+[profilex]: integer type; manufacturer specific number for a profile
+</description>
+</spec>
+<spec>
+ <command>AT+CRMP=</command>
+ <profile>Ring Melody Playback (Assign)</profile>
+ <description>Execution command causes the MT to playback a specific ring type. The default values for the optional parameters are the current selected in the MT.
+Test command returns the available ring melodies.
+Defined values:
+[call type]: integer type; manufacturer specific
+[volume]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
+[type]:
+0 Manufacturer defined
+1 User defined
+[index]: integer type;
+</description>
+</spec>
+<spec>
+ <command>AT+CRMP=?</command>
+ <profile>Ring Melody Playback (Query all)</profile>
+ <description>Execution command causes the MT to playback a specific ring type. The default values for the optional parameters are the current selected in the MT.
+Test command returns the available ring melodies.
+Defined values:
+[call type]: integer type; manufacturer specific
+[volume]: integer type value with manufacturer specific range (smallest value represents the lowest sound level)
+[type]:
+0 Manufacturer defined
+1 User defined
+[index]: integer type;
+</description>
+</spec>
+<spec>
+ <command>AT+CMAR=</command>
+ <profile>Master Reset (Assign)</profile>
+ <description>This command requests the MT to reset user data. The user data in the phone will be reset to default values. If setting fails, a MT error, +CME ERROR: [err], is returned. Refer subclause 9.2 for [err] values.
+If the MT is locked and this command is used, then the MT will be unlocked after the master reset.
+Test command returns OK
+Defined values
+[phone lock code ] string type; Security code (Phone Lock code) must be verified before performing the master reset.
+</description>
+</spec>
+<spec>
+ <command>AT+CMAR=?</command>
+ <profile>Master Reset (Query all)</profile>
+ <description>This command requests the MT to reset user data. The user data in the phone will be reset to default values. If setting fails, a MT error, +CME ERROR: [err], is returned. Refer subclause 9.2 for [err] values.
+If the MT is locked and this command is used, then the MT will be unlocked after the master reset.
+Test command returns OK
+Defined values
+[phone lock code ] string type; Security code (Phone Lock code) must be verified before performing the master reset.
+</description>
+</spec>
+<spec>
+ <command>AT+CLAC</command>
+ <profile>List all available AT commands </profile>
+ <description>Execution command causes the MT to return one or more lines of AT Commands.
+Note: This command only returns the AT commands that are available for the user.
+Defined values
+[AT Command ]:
+Defines the AT command including the prefix AT. Text shall not contain the sequence 0[CR] or OK[CR]
+</description>
+</spec>
+<spec>
+ <command>AT+CLAC=?</command>
+ <profile>List all available AT commands (Query all)</profile>
+ <description>Execution command causes the MT to return one or more lines of AT Commands.
+Note: This command only returns the AT commands that are available for the user.
+Defined values
+[AT Command ]:
+Defines the AT command including the prefix AT. Text shall not contain the sequence 0[CR] or OK[CR]
+</description>
+</spec>
+<spec>
+ <command>AT+CALD=</command>
+ <profile>Delete alarm (Assign)</profile>
+ <description>Action command deletes an alarm in the MT. If the command fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Test command returns supported array index values.
+Defined values
+[n]: integer type value indicating the index of the alarm; default is manufacturer specific
+</description>
+</spec>
+<spec>
+ <command>AT+CALD=?</command>
+ <profile>Delete alarm (Query all)</profile>
+ <description>Action command deletes an alarm in the MT. If the command fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Test command returns supported array index values.
+Defined values
+[n]: integer type value indicating the index of the alarm; default is manufacturer specific
+</description>
+</spec>
+<spec>
+ <command>AT+CAPD=</command>
+ <profile>Postpone or dismiss an alarm (Assign)</profile>
+ <description>Set command postpones or dismisses a currently active alarm. If the command fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Test command returns supported [sec]-parameter values.
+Defined values
+[sec]: integer type value indicating the number of seconds to postpone the alarm. If [sec] is set to 0 (default), the alarm is dismissed.
+</description>
+</spec>
+<spec>
+ <command>AT+CAPD=?</command>
+ <profile>Postpone or dismiss an alarm (Query all)</profile>
+ <description>Set command postpones or dismisses a currently active alarm. If the command fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Test command returns supported [sec]-parameter values.
+Defined values
+[sec]: integer type value indicating the number of seconds to postpone the alarm. If [sec] is set to 0 (default), the alarm is dismissed.
+</description>
+</spec>
+<spec>
+ <command>AT+CTZU=</command>
+ <profile>Automatic Time Zone Update (Assign)</profile>
+ <description>Set command enables and disables automatic time zone update via NITZ. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current settings in the MT.
+Test command returns supported on- and off-values.
+Defined values
+[onoff]: integer type value indicating:
+ 0 – Disable automatic time zone update via NITZ (default).
+ 1 – Enable automatic time zone update via NITZ.
+</description>
+</spec>
+<spec>
+ <command>AT+CTZU?</command>
+ <profile>Automatic Time Zone Update (Query)</profile>
+ <description>Set command enables and disables automatic time zone update via NITZ. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current settings in the MT.
+Test command returns supported on- and off-values.
+Defined values
+[onoff]: integer type value indicating:
+ 0 – Disable automatic time zone update via NITZ (default).
+ 1 – Enable automatic time zone update via NITZ.
+</description>
+</spec>
+<spec>
+ <command>AT+CTZU=?</command>
+ <profile>Automatic Time Zone Update (Query all)</profile>
+ <description>Set command enables and disables automatic time zone update via NITZ. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current settings in the MT.
+Test command returns supported on- and off-values.
+Defined values
+[onoff]: integer type value indicating:
+ 0 – Disable automatic time zone update via NITZ (default).
+ 1 – Enable automatic time zone update via NITZ.
+</description>
+</spec>
+<spec>
+ <command>AT+CTZR=</command>
+ <profile>Time Zone Reporting (Assign)</profile>
+ <description>This set command enables and disables the time zone change event reporting. If the reporting is enabled the MT returns the unsolicited result code +CTZV: [tz] whenever the time zone is changed. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current reporting settings in the MT.
+Test command returns supported [onoff]-values.
+ NOTE: The Time Zone reporting is not affected by the Automatic Time Zone setting command, +CTZU.
+Defined values
+[onoff]: integer type value indicating:
+ 0 – disable time zone change event reporting (default).
+ 1 – Enable time zone change event reporting.
+</description>
+</spec>
+<spec>
+ <command>AT+CTZR?</command>
+ <profile>Time Zone Reporting (Query)</profile>
+ <description>This set command enables and disables the time zone change event reporting. If the reporting is enabled the MT returns the unsolicited result code +CTZV: [tz] whenever the time zone is changed. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current reporting settings in the MT.
+Test command returns supported [onoff]-values.
+ NOTE: The Time Zone reporting is not affected by the Automatic Time Zone setting command, +CTZU.
+Defined values
+[onoff]: integer type value indicating:
+ 0 – disable time zone change event reporting (default).
+ 1 – Enable time zone change event reporting.
+</description>
+</spec>
+<spec>
+ <command>AT+CTZR=?</command>
+ <profile>Time Zone Reporting (Query all)</profile>
+ <description>This set command enables and disables the time zone change event reporting. If the reporting is enabled the MT returns the unsolicited result code +CTZV: [tz] whenever the time zone is changed. If setting fails in an MT error, +CME ERROR: [err] is returned. Refer subclause 9.2 for [err] values.
+Read command returns the current reporting settings in the MT.
+Test command returns supported [onoff]-values.
+ NOTE: The Time Zone reporting is not affected by the Automatic Time Zone setting command, +CTZU.
+Defined values
+[onoff]: integer type value indicating:
+ 0 – disable time zone change event reporting (default).
+ 1 – Enable time zone change event reporting.
+</description>
+</spec>
+<spec>
+ <command>AT+CPROT=</command>
+ <profile>Enter protocol mode(Assign)</profile>
+ <description>Set command informs TA that TE wants to establish a peer-to-peer protocol [proto] or upper layer connection (indicating by the [lsap]s setting) with the MT on the link from which the command was received.
+This command can be used in case the link between TE and MT does not provide itself such a mechanism.
+If MT has succeeded in establishing a logical link between application protocols and external interface, it will send CONNECT message to the TE. Otherwise, the NO CARRIER response will be returned.
+If the CONNECT response is received, TE can start sending [proto] or upper layer frames.
+The connection shall always return for [proto] mode when the protocol session is ended. When the MT receives a disconnect request from its peer entity, it will process it and send OK response to the TE indicating its capability for receiving new AT commands. Since [proto] or upper layers can be accessed in other ways, TA must have pre-knowledge of the fact that connection is initiated with AT+CPROT command. This means that switch to [proto] mode must include some sort of notification to the protocol entity.
+This command can be aborted by sending a [proto] or upper layer disconnection frame. In that case, MT will return in command mode by sending the OK response.
+Refer subclause 9.2 for possible [err] values.
+Test command returns values supported as a compound value.
+Defined values
+[proto]
+0 OBEX (refer.[44])
+…15 reserved by the present document
+16... manufacturer specific
+[version]: version number of [proto]: string type
+[lsap1]: defines a level of service or application protocol on the top of [proto] layer. It may refer to services or protocols defined in other standards development organizations (SDOs).
+1 IrMC level 1 (Minimum Level) Only .(refer [43] subclause 2.9.4)
+2 IrMC level 1 and 2 (Minimum and Access Levels) Only. .(refer [43] subclause 2.9.4)
+4IrMC level 1, 2 and 3 (Minimum, Access, Index Levels) Only- implies static index support. .(refer [43] subclause 2.9.4)
+8IrMC level 1, 2 and 4 (Minimum, Access and Sync Levels) Only-implies unique index support. .(refer [43] subclause 2.9.4)
+10 IrMC level 1, 2, 3 and 4 (Minimum, Access, Index and Sync Levels)-implies support of static and unique index. .(refer [43] subclause 2.9.4)
+…15 reserved by the present document
+16... manufacturer specific
+[lsap2]...[lsapN]
+In case [lsapN],[lsapN+1] received in the +CPROT command identifies protocol layers, the protocol identified by N+1 shall be on the top of the protocol identified by N on a framework point of view.
+0…15 reserved by the present document
+16... manufacturer specific
+</description>
+</spec>
+<spec>
+ <command>AT+CPROT=?</command>
+ <profile>Enter protocol mode(Query all)</profile>
+ <description>Set command informs TA that TE wants to establish a peer-to-peer protocol [proto] or upper layer connection (indicating by the [lsap]s setting) with the MT on the link from which the command was received.
+This command can be used in case the link between TE and MT does not provide itself such a mechanism.
+If MT has succeeded in establishing a logical link between application protocols and external interface, it will send CONNECT message to the TE. Otherwise, the NO CARRIER response will be returned.
+If the CONNECT response is received, TE can start sending [proto] or upper layer frames.
+The connection shall always return for [proto] mode when the protocol session is ended. When the MT receives a disconnect request from its peer entity, it will process it and send OK response to the TE indicating its capability for receiving new AT commands. Since [proto] or upper layers can be accessed in other ways, TA must have pre-knowledge of the fact that connection is initiated with AT+CPROT command. This means that switch to [proto] mode must include some sort of notification to the protocol entity.
+This command can be aborted by sending a [proto] or upper layer disconnection frame. In that case, MT will return in command mode by sending the OK response.
+Refer subclause 9.2 for possible [err] values.
+Test command returns values supported as a compound value.
+Defined values
+[proto]
+0 OBEX (refer.[44])
+…15 reserved by the present document
+16... manufacturer specific
+[version]: version number of [proto]: string type
+[lsap1]: defines a level of service or application protocol on the top of [proto] layer. It may refer to services or protocols defined in other standards development organizations (SDOs).
+1 IrMC level 1 (Minimum Level) Only .(refer [43] subclause 2.9.4)
+2 IrMC level 1 and 2 (Minimum and Access Levels) Only. .(refer [43] subclause 2.9.4)
+4IrMC level 1, 2 and 3 (Minimum, Access, Index Levels) Only- implies static index support. .(refer [43] subclause 2.9.4)
+8IrMC level 1, 2 and 4 (Minimum, Access and Sync Levels) Only-implies unique index support. .(refer [43] subclause 2.9.4)
+10 IrMC level 1, 2, 3 and 4 (Minimum, Access, Index and Sync Levels)-implies support of static and unique index. .(refer [43] subclause 2.9.4)
+…15 reserved by the present document
+16... manufacturer specific
+[lsap2]...[lsapN]
+In case [lsapN],[lsapN+1] received in the +CPROT command identifies protocol layers, the protocol identified by N+1 shall be on the top of the protocol identified by N on a framework point of view.
+0…15 reserved by the present document
+16... manufacturer specific
+</description>
+</spec>
+<spec>
+ <command>AT+CGLA=</command>
+ <profile>Generic UICC Logical Channel access (Assign)</profile>
+ <description>Set command transmits to the MT the [command] it then shall send as it is to the UICC. In the same manner the UICC [response] shall be sent back by the MT to the TA as it is. Refer subclause 9.2 for [err] values.
+This command allows a direct control of the UICC by a distant application on the TE. The TE shall then take care of processing UICC information within the frame specified by GSM/UMTS.
+Although Generic UICC Logical Channel Access command +CGLA allows TE to take control over the UICC‑MT interface, there are some functions of the UICC-MT interface that logically do not need to be accessed from outside the TA/MT. Moreover, for security reason the GSM network authentication should not be handled outside the TA/MT. Therefore it shall not be allowed to execute a Run GSM Algorithm command or an Authenticate command in GSM context from the TE using +CGLA at all time whether the +CGLA is locked or unlocked. This shall not forbid the TE to send Authenticate commands in other security contexts (e.g. EAP security context).
+For example, the TA/MT shall forbid the transfer of the Authenticate command to a USIM application when parameters P2 = 0 (GSM security context). See TS 31.102 [59] for USIM authenticate command definition.
+NOTE: Compared to Restricted UICC Access command +CRLA, the definition of +CGLA allows TE to take more control over the UICC‑MT interface. The locking and unlocking of the interface may be done by a special [command] value or automatically by TA/MT (by interpreting [command] parameter). In case that TE application does not use the unlock command (or does not send a [command] causing automatic unlock) in a certain timeout value, MT may release the locking.
+Defined values
+[sessionid]: integer type; this is the identifier of the session to be used in order to send the APDU commands to the UICC. It is manadatory in order to send commands to the UICC when targeting applications on the smart card using a logical channel other than the default channel (channel '0').
+[length] : integer type; length of the characters that are sent to TE in [command] or [response] (two times the actual length of the command or response)
+[command] : command passed on by the MT to the UICC in the format as described in 3GPP TS 31.101 [65] (hexadecimal character format; refer +CSCS)
+[response] : response to the command passed on by the UICC to the MT in the format as described in 3GPP TS 31.101 [65] (hexadecimal character format; refer +CSCS)
+</description>
+</spec>
+<spec>
+ <command>AT+CGLA=?</command>
+ <profile>Generic UICC Logical Channel access (Query all)</profile>
+ <description>Set command transmits to the MT the [command] it then shall send as it is to the UICC. In the same manner the UICC [response] shall be sent back by the MT to the TA as it is. Refer subclause 9.2 for [err] values.
+This command allows a direct control of the UICC by a distant application on the TE. The TE shall then take care of processing UICC information within the frame specified by GSM/UMTS.
+Although Generic UICC Logical Channel Access command +CGLA allows TE to take control over the UICC‑MT interface, there are some functions of the UICC-MT interface that logically do not need to be accessed from outside the TA/MT. Moreover, for security reason the GSM network authentication should not be handled outside the TA/MT. Therefore it shall not be allowed to execute a Run GSM Algorithm command or an Authenticate command in GSM context from the TE using +CGLA at all time whether the +CGLA is locked or unlocked. This shall not forbid the TE to send Authenticate commands in other security contexts (e.g. EAP security context).
+For example, the TA/MT shall forbid the transfer of the Authenticate command to a USIM application when parameters P2 = 0 (GSM security context). See TS 31.102 [59] for USIM authenticate command definition.
+NOTE: Compared to Restricted UICC Access command +CRLA, the definition of +CGLA allows TE to take more control over the UICC‑MT interface. The locking and unlocking of the interface may be done by a special [command] value or automatically by TA/MT (by interpreting [command] parameter). In case that TE application does not use the unlock command (or does not send a [command] causing automatic unlock) in a certain timeout value, MT may release the locking.
+Defined values
+[sessionid]: integer type; this is the identifier of the session to be used in order to send the APDU commands to the UICC. It is manadatory in order to send commands to the UICC when targeting applications on the smart card using a logical channel other than the default channel (channel '0').
+[length] : integer type; length of the characters that are sent to TE in [command] or [response] (two times the actual length of the command or response)
+[command] : command passed on by the MT to the UICC in the format as described in 3GPP TS 31.101 [65] (hexadecimal character format; refer +CSCS)
+[response] : response to the command passed on by the UICC to the MT in the format as described in 3GPP TS 31.101 [65] (hexadecimal character format; refer +CSCS)
+</description>
+</spec>
+<spec>
+ <command>AT+CRLA=</command>
+ <profile>Restricted UICC Logical Channel access (Assign)</profile>
+ <description>By using this command instead of Generic UICC Access +CGLA TE application has easier but more limited access to the UICC database. Set command transmits to the MT the UICC [command] and its required parameters. MT handles internally all UICC‑MT interface locking and file selection routines. As response to the command, MT sends the actual UICC information parameters and response data. MT error result code +CME ERROR may be returned when the command cannot be passed to the UICC, but failure in the execution of the command in the UICC is reported in [sw1] and [sw2] parameters. Refer to subclause 9.2 for [err] values.
+Coordination of command requests to UICC and the ones issued by GSM/UMTS application inside the MT is implementation dependent. However the TE should be aware of the precedence of the GSM/UMTS application commands to the TE commands.
+Defined values
+[sessionid]: integer type; this is the identifier of the session to be used in order to send the APDU commands to the UICC. It is mandatory in order to send commands to the UICC when targeting applications on the smart card using a logical channel other than the default channel (channel '0').
+[command] (command passed on by the MT to the UICC; refer 3GPP TS 31.101 [65]):
+176 READ BINARY
+178 READ RECORD
+192 GET RESPONSE
+214 UPDATE BINARY
+220 UPDATE RECORD
+242 STATUS
+203 RETRIEVE DATA
+219 SET DATA
+all other values are reserved
+
+NOTE 1: The MT internally executes all commands necessary for selecting the desired file, before performing the actual command.[fileid]: integer type; this is the identifier of a elementary datafile on UICC. Mandatory for every command except STATUS.
+NOTE 2: The range of valid file identifiers depends on the actual UICC and is defined in 3GPP TS 31.101 [65]. Optional files may not be present at all.[P1], [P2], [P3]: integer type; parameters passed on by the MT to the UICC. These parameters are mandatory for every command, except GET RESPONSE and STATUS. The values are described in 3GPP TS 31.101 [65]
+[data]: information which shall be written to the SIM (hexadecimal character format; refer +CSCS)
+[pathid]: string type; contains the path of an elementary file on the UICC in hexadecimal format (e.g. '5F704F30' for DFSoLSA/EFSAI). The [pathid] shall only be used in the mode 'select by path from current DF' as defined in ETSI TS 102 221 [60].
+[sw1], [sw2]: integer type; information from the UICC about the execution of the actual command. These parameters are delivered to the TE in both cases, on successful or failed execution of the command
+[response]: response of a successful completion of the command previously issued (hexadecimal character format; refer +CSCS). STATUS and GET RESPONSE return data, which gives information about the current elementary datafield. This information includes the type of file and its size (refer 3GPP TS 31.101 [65]). After READ BINARY, READ RECORD or RETRIEVE DATA command the requested data will be returned. [response] is not returned after a successful UPDATE BINARY, UPDATE RECORD or SET DATA command
+</description>
+</spec>
+<spec>
+ <command>AT+CRLA=?</command>
+ <profile>Restricted UICC Logical Channel access (Query all)</profile>
+ <description>By using this command instead of Generic UICC Access +CGLA TE application has easier but more limited access to the UICC database. Set command transmits to the MT the UICC [command] and its required parameters. MT handles internally all UICC‑MT interface locking and file selection routines. As response to the command, MT sends the actual UICC information parameters and response data. MT error result code +CME ERROR may be returned when the command cannot be passed to the UICC, but failure in the execution of the command in the UICC is reported in [sw1] and [sw2] parameters. Refer to subclause 9.2 for [err] values.
+Coordination of command requests to UICC and the ones issued by GSM/UMTS application inside the MT is implementation dependent. However the TE should be aware of the precedence of the GSM/UMTS application commands to the TE commands.
+Defined values
+[sessionid]: integer type; this is the identifier of the session to be used in order to send the APDU commands to the UICC. It is mandatory in order to send commands to the UICC when targeting applications on the smart card using a logical channel other than the default channel (channel '0').
+[command] (command passed on by the MT to the UICC; refer 3GPP TS 31.101 [65]):
+176 READ BINARY
+178 READ RECORD
+192 GET RESPONSE
+214 UPDATE BINARY
+220 UPDATE RECORD
+242 STATUS
+203 RETRIEVE DATA
+219 SET DATA
+all other values are reserved
+
+NOTE 1: The MT internally executes all commands necessary for selecting the desired file, before performing the actual command.[fileid]: integer type; this is the identifier of a elementary datafile on UICC. Mandatory for every command except STATUS.
+NOTE 2: The range of valid file identifiers depends on the actual UICC and is defined in 3GPP TS 31.101 [65]. Optional files may not be present at all.[P1], [P2], [P3]: integer type; parameters passed on by the MT to the UICC. These parameters are mandatory for every command, except GET RESPONSE and STATUS. The values are described in 3GPP TS 31.101 [65]
+[data]: information which shall be written to the SIM (hexadecimal character format; refer +CSCS)
+[pathid]: string type; contains the path of an elementary file on the UICC in hexadecimal format (e.g. '5F704F30' for DFSoLSA/EFSAI). The [pathid] shall only be used in the mode 'select by path from current DF' as defined in ETSI TS 102 221 [60].
+[sw1], [sw2]: integer type; information from the UICC about the execution of the actual command. These parameters are delivered to the TE in both cases, on successful or failed execution of the command
+[response]: response of a successful completion of the command previously issued (hexadecimal character format; refer +CSCS). STATUS and GET RESPONSE return data, which gives information about the current elementary datafield. This information includes the type of file and its size (refer 3GPP TS 31.101 [65]). After READ BINARY, READ RECORD or RETRIEVE DATA command the requested data will be returned. [response] is not returned after a successful UPDATE BINARY, UPDATE RECORD or SET DATA command
+</description>
+</spec>
+<spec>
+ <command>AT+CCHO=</command>
+ <profile>Open Logical Channel (Assign)</profile>
+ <description>Execution of the command causes the MT to return [sessionid] to allow the TE to identify a channel that is being allocated by the UICC, which is attached to ME. The UICC will open a new logical channel; select the application identified by the [dfname] received with this command and return a session Id as the response. The ME shall restrict the communication between the TE and the UICC to this logical channel.
+This [sessionid] is to be used when sending commands with Restricted UICC Logical Channel access +CRLA or Generic UICC Logical Channel access +CGLA commands.
+Note that the logical channel number is contained in the CLASS byte of an APDU command, thus implicitly contained in all APDU commands sent to a UICC. In this case it will be up to the MT to manage the logical channel part of the APDU CLASS byte and to ensure that the chosen logical channel is relevant to the [sessionid] indicated in the AT command. See 3GPP TS 31.101 [65] for further information on logical channels in APDU commands protocol.
+Refer subclause 9.2 for possible [err] values.
+Defined values
+[dfname]: all selectable applications in the UICC are referenced by a DF name coded on 1 to 16 bytes
+[sessionid]:A session Id to be used in order to target a specific application on the smart card (e.g. (U)SIM, WIM, ISIM) using logical channels mechanism (string without double quotes that represents a decimal value)
+See 3GPP TS 31.101 [65] for more information about defined values.
+</description>
+</spec>
+<spec>
+ <command>AT+CCHO=?</command>
+ <profile>Open Logical Channel (Query all)</profile>
+ <description>Execution of the command causes the MT to return [sessionid] to allow the TE to identify a channel that is being allocated by the UICC, which is attached to ME. The UICC will open a new logical channel; select the application identified by the [dfname] received with this command and return a session Id as the response. The ME shall restrict the communication between the TE and the UICC to this logical channel.
+This [sessionid] is to be used when sending commands with Restricted UICC Logical Channel access +CRLA or Generic UICC Logical Channel access +CGLA commands.
+Note that the logical channel number is contained in the CLASS byte of an APDU command, thus implicitly contained in all APDU commands sent to a UICC. In this case it will be up to the MT to manage the logical channel part of the APDU CLASS byte and to ensure that the chosen logical channel is relevant to the [sessionid] indicated in the AT command. See 3GPP TS 31.101 [65] for further information on logical channels in APDU commands protocol.
+Refer subclause 9.2 for possible [err] values.
+Defined values
+[dfname]: all selectable applications in the UICC are referenced by a DF name coded on 1 to 16 bytes
+[sessionid]:A session Id to be used in order to target a specific application on the smart card (e.g. (U)SIM, WIM, ISIM) using logical channels mechanism (string without double quotes that represents a decimal value)
+See 3GPP TS 31.101 [65] for more information about defined values.
+</description>
+</spec>
+<spec>
+ <command>AT+CCHC=</command>
+ <profile>Close Logical Channel (Assign)</profile>
+ <description>This command asks the ME to close a communication session with the UICC. The ME shall close the previously opened logical channel. The TE will no longer be able to send commands on this logical channel. The UICC will close the logical channel when receiving this command. Refer subclause 9.2 for possible [err] values.
+Defined values
+[sessionid]:A session Id to be used in order to target a specific application on the smart card (e.g. (U)SIM, WIM, ISIM) using logical channels mechanism (string without double quotes that represents a decimal value)
+</description>
+</spec>
+<spec>
+ <command>AT+CCHC=?</command>
+ <profile>Close Logical Channel (Query all)</profile>
+ <description>This command asks the ME to close a communication session with the UICC. The ME shall close the previously opened logical channel. The TE will no longer be able to send commands on this logical channel. The UICC will close the logical channel when receiving this command. Refer subclause 9.2 for possible [err] values.
+Defined values
+[sessionid]:A session Id to be used in order to target a specific application on the smart card (e.g. (U)SIM, WIM, ISIM) using logical channels mechanism (string without double quotes that represents a decimal value)
+</description>
+</spec>
+<spec>
+ <command>AT+CEAP=</command>
+ <profile>EAP authentication (Assign)</profile>
+ <description>This command allows a TE to exchange EAP packets with the UICC or the ME.
+Prior to the execution of this command, the TE shall retrieve the available AIDs using the +CUAD command. The TE shall select one appropriate AID to be addressed. Selection may include asking the user, and considering EAP methods supported by the AIDs. The TE shall set the [dfname] value using the selected AID and shall set the [EAPMethod] value to the requested EAP method.
+If the targeted application on the UICC does support the requested EAP method, the MT shall derive the directory file identifier (see ETSI TS 102 310 [66]) from [dfname] and [EAPMethod], and it shall transmit the [EAP packet data] to the UICC application using the Authenticate APDU command as defined in ETSI TS 102 310 [66]. The appropriate DFEAP in the ADF must be selected prior to the submission of an EAP Authenticate command with the [EAP packet data]. Then the EAP Response data sent by the UICC application in its response to the Authenticate command shall be provided to the TE in [EAP packet response].
+If the targeted application on the UICC does not support the requested EAP method and if the MT does support this method then the [EAP packet data] shall be handled by the MT. During the handling of the EAP method, the MT shall run the authentication algorithm on the SIM or USIM, respectively.
+Also the MT has to allocate an [EAPsessionid] in order to identify an EAP session and its corresponding keys and parameters.
+If neither the MT nor the appropriate UICC application support the requested EAP method, the MT shall respond with 'EAP method not supported'.
+Refer subclause 9.2 for possible [err] values.
+Defined values
+[dfname]: string type; all selectable applications represented in the UICC by an AID are referenced by a DF name coded on 1 to 16 bytes.
+[EAPMethod]: octet type; this is the EAP Method Type as defined in [68]
+[EAP packet data]: as defined in ETSI TS 102 310 [66]
+[EAPsessionid]: integer type; this is the identifier of the EAP session to be used in order to retrieve the EAP parameters with EAP Retreive Parameters +CERP command.
+[EAP packet response]: as defined in ETSI TS 102 310 [66]
+</description>
+</spec>
+<spec>
+ <command>AT+CEAP=?</command>
+ <profile>EAP authentication (Query all)</profile>
+ <description>This command allows a TE to exchange EAP packets with the UICC or the ME.
+Prior to the execution of this command, the TE shall retrieve the available AIDs using the +CUAD command. The TE shall select one appropriate AID to be addressed. Selection may include asking the user, and considering EAP methods supported by the AIDs. The TE shall set the [dfname] value using the selected AID and shall set the [EAPMethod] value to the requested EAP method.
+If the targeted application on the UICC does support the requested EAP method, the MT shall derive the directory file identifier (see ETSI TS 102 310 [66]) from [dfname] and [EAPMethod], and it shall transmit the [EAP packet data] to the UICC application using the Authenticate APDU command as defined in ETSI TS 102 310 [66]. The appropriate DFEAP in the ADF must be selected prior to the submission of an EAP Authenticate command with the [EAP packet data]. Then the EAP Response data sent by the UICC application in its response to the Authenticate command shall be provided to the TE in [EAP packet response].
+If the targeted application on the UICC does not support the requested EAP method and if the MT does support this method then the [EAP packet data] shall be handled by the MT. During the handling of the EAP method, the MT shall run the authentication algorithm on the SIM or USIM, respectively.
+Also the MT has to allocate an [EAPsessionid] in order to identify an EAP session and its corresponding keys and parameters.
+If neither the MT nor the appropriate UICC application support the requested EAP method, the MT shall respond with 'EAP method not supported'.
+Refer subclause 9.2 for possible [err] values.
+Defined values
+[dfname]: string type; all selectable applications represented in the UICC by an AID are referenced by a DF name coded on 1 to 16 bytes.
+[EAPMethod]: octet type; this is the EAP Method Type as defined in [68]
+[EAP packet data]: as defined in ETSI TS 102 310 [66]
+[EAPsessionid]: integer type; this is the identifier of the EAP session to be used in order to retrieve the EAP parameters with EAP Retreive Parameters +CERP command.
+[EAP packet response]: as defined in ETSI TS 102 310 [66]
+</description>
+</spec>
+<spec>
+ <command>AT+CERP=</command>
+ <profile>EAP Retrieve Parameters (Assign)</profile>
+ <description>This command allows a TE to retrieve EAP session parameters / derived keys after a run of the +CEAP command. If the EAP session is handled by the UICC then the MT shall return the content of the elementary file corresponding to the indicated [EAPparameter]. Those EFs are defined in ETSI TS 102 310 [66].
+If the MT handles the EAP session then the MT shall return the corresponding parameter encoded as defined for EAP files, see ETSI TS 102 310 [66].
+For example, the keys shall be retrieved in the TLV format described in ETSI TS 102 310 [66].
+If neither the MT nor the appropriate UICC application can provide the requested information (e.g. because the requested EAP session ID does not exist), the MT shall respond with 'Incorrect parameters'.
+Refer subclause 9.2 for possible [err] values.
+Defined values
+[EAPparameter]:
+1Keys
+2Status
+3Identity
+4Pseudonym
+[EAPsessionid]: integer type; this is the identifier of the EAP session to be used in order to retrieve the EAP parameters corresponding to an active EAP session with EAP Retreive Parameters +CERP command.
+[EAP parameter response]: depends on the value of [EAPparameter]; format of the parameter retrieved is as defined in ETSI TS 102 310 [66].
+</description>
+</spec>
+<spec>
+ <command>AT+CERP=?</command>
+ <profile>EAP Retrieve Parameters (Query all)</profile>
+ <description>This command allows a TE to retrieve EAP session parameters / derived keys after a run of the +CEAP command. If the EAP session is handled by the UICC then the MT shall return the content of the elementary file corresponding to the indicated [EAPparameter]. Those EFs are defined in ETSI TS 102 310 [66].
+If the MT handles the EAP session then the MT shall return the corresponding parameter encoded as defined for EAP files, see ETSI TS 102 310 [66].
+For example, the keys shall be retrieved in the TLV format described in ETSI TS 102 310 [66].
+If neither the MT nor the appropriate UICC application can provide the requested information (e.g. because the requested EAP session ID does not exist), the MT shall respond with 'Incorrect parameters'.
+Refer subclause 9.2 for possible [err] values.
+Defined values
+[EAPparameter]:
+1Keys
+2Status
+3Identity
+4Pseudonym
+[EAPsessionid]: integer type; this is the identifier of the EAP session to be used in order to retrieve the EAP parameters corresponding to an active EAP session with EAP Retreive Parameters +CERP command.
+[EAP parameter response]: depends on the value of [EAPparameter]; format of the parameter retrieved is as defined in ETSI TS 102 310 [66].
+</description>
+</spec>
+<spec>
+ <command>AT+CUAD=</command>
+ <profile>UICC Application Discovery (Assign)</profile>
+ <description>This command asks the MT to discover what applications are available for selection on the UICC. According to TS 102.221 [60], the ME shall access and read the EFDIR file in the UICC and return the values that are stored in its records. Each record contains the AID and optionally application parameters of one of the applications available on the UICC.
+Defined values
+[response]:the response is the content of the EFDIR.
+</description>
+</spec>
+<spec>
+ <command>AT+CUAD=?</command>
+ <profile>UICC Application Discovery (Query all)</profile>
+ <description>This command asks the MT to discover what applications are available for selection on the UICC. According to TS 102.221 [60], the ME shall access and read the EFDIR file in the UICC and return the values that are stored in its records. Each record contains the AID and optionally application parameters of one of the applications available on the UICC.
+Defined values
+[response]:the response is the content of the EFDIR.
+</description>
+</spec>
+<spec>
+ <command>AT+CMEE=</command>
+ <profile>Report Mobile Termination error (Assign)</profile>
+ <description>Set command disables or enables the use of result code +CME ERROR: [err] as an indication of an error relating to the functionality of the MT. When enabled, MT related errors cause +CME ERROR: [err] final result code instead of the regular ERROR final result code. ERROR is returned normally when error is related to syntax, invalid parameters, or TA functionality.
+Test command returns values supported as a compound value.
+Defined values
+[n]:
+0 disable +CME ERROR: [err] result code and use ERROR instead
+1 enable +CME ERROR: [err] result code and use numeric [err] values (refer next subclause)
+2 enable +CME ERROR: [err] result code and use verbose [err] values (refer next subclause)
+</description>
+</spec>
+<spec>
+ <command>AT+CMEE?</command>
+ <profile>Report Mobile Termination error (Query)</profile>
+ <description>Set command disables or enables the use of result code +CME ERROR: [err] as an indication of an error relating to the functionality of the MT. When enabled, MT related errors cause +CME ERROR: [err] final result code instead of the regular ERROR final result code. ERROR is returned normally when error is related to syntax, invalid parameters, or TA functionality.
+Test command returns values supported as a compound value.
+Defined values
+[n]:
+0 disable +CME ERROR: [err] result code and use ERROR instead
+1 enable +CME ERROR: [err] result code and use numeric [err] values (refer next subclause)
+2 enable +CME ERROR: [err] result code and use verbose [err] values (refer next subclause)
+</description>
+</spec>
+<spec>
+ <command>AT+CMEE=?</command>
+ <profile>Report Mobile Termination error (Query all)</profile>
+ <description>Set command disables or enables the use of result code +CME ERROR: [err] as an indication of an error relating to the functionality of the MT. When enabled, MT related errors cause +CME ERROR: [err] final result code instead of the regular ERROR final result code. ERROR is returned normally when error is related to syntax, invalid parameters, or TA functionality.
+Test command returns values supported as a compound value.
+Defined values
+[n]:
+0 disable +CME ERROR: [err] result code and use ERROR instead
+1 enable +CME ERROR: [err] result code and use numeric [err] values (refer next subclause)
+2 enable +CME ERROR: [err] result code and use verbose [err] values (refer next subclause)
+</description>
+</spec>
+<spec>
+ <command>AT+CGDSCONT=</command>
+ <profile>Define Secondary PDP Context (Assign)</profile>
+ <description>The set command specifies PDP context parameter values for a Secondary PDP context identified by the (local) context identification parameter, [cid]. The number of PDP contexts that may be in a defined state at the same time is given by the range returned by the test command.
+A special form of the set command, +CGDSCONT= [cid] causes the values for context number [cid] to become undefined.
+The read command returns the current settings for each defined context.
+Defined values
+[cid]: (PDP Context Identifier) a numeric parameter which specifies a particular PDP context definition. The parameter is local to the TE-MT interface and is used in other PDP context-related commands. The range of permitted values (minimum value = 1) is returned by the test form of the command.
+[p_cid]: (Primary PDP Context Identifier) a numeric parameter which specifies a particular PDP context definition which has been specified by use of the +CGDCONT command. The parameter is local to the TE-MT interface. The list of permitted values is returned by the test form of the command.
+[d_comp]: a numeric parameter that controls PDP data compression (applicable for SNDCPonly) (refer 3GPP TS 44.065 [61])
+0 - off (default if value is omitted)
+1 - on (manufacturer preferred compression)
+2 - V.42bis
+3 - V.44
+Other values are reserved.
+[h_comp]: a numeric parameter that controls PDP header compression (refer 3GPP TS 44.065 [61] and 3GPP TS 25.323 [62])
+0 - off (default if value is omitted)
+1 - on (manufacturer preferred compression)
+2 - RFC1144 (applicable for SNDCP only)
+3 - RFC2507
+4 - RFC3095 (applicable for PDCP only)
+Other values are reserved.
+</description>
+</spec>
+<spec>
+ <command>AT+CGDSCONT?</command>
+ <profile>Define Secondary PDP Context (Query)</profile>
+ <description>The set command specifies PDP context parameter values for a Secondary PDP context identified by the (local) context identification parameter, [cid]. The number of PDP contexts that may be in a defined state at the same time is given by the range returned by the test command.
+A special form of the set command, +CGDSCONT= [cid] causes the values for context number [cid] to become undefined.
+The read command returns the current settings for each defined context.
+Defined values
+[cid]: (PDP Context Identifier) a numeric parameter which specifies a particular PDP context definition. The parameter is local to the TE-MT interface and is used in other PDP context-related commands. The range of permitted values (minimum value = 1) is returned by the test form of the command.
+[p_cid]: (Primary PDP Context Identifier) a numeric parameter which specifies a particular PDP context definition which has been specified by use of the +CGDCONT command. The parameter is local to the TE-MT interface. The list of permitted values is returned by the test form of the command.
+[d_comp]: a numeric parameter that controls PDP data compression (applicable for SNDCPonly) (refer 3GPP TS 44.065 [61])
+0 - off (default if value is omitted)
+1 - on (manufacturer preferred compression)
+2 - V.42bis
+3 - V.44
+Other values are reserved.
+[h_comp]: a numeric parameter that controls PDP header compression (refer 3GPP TS 44.065 [61] and 3GPP TS 25.323 [62])
+0 - off (default if value is omitted)
+1 - on (manufacturer preferred compression)
+2 - RFC1144 (applicable for SNDCP only)
+3 - RFC2507
+4 - RFC3095 (applicable for PDCP only)
+Other values are reserved.
+</description>
+</spec>
+<spec>
+ <command>AT+CGDSCONT=?</command>
+ <profile>Define Secondary PDP Context (Query all)</profile>
+ <description>The set command specifies PDP context parameter values for a Secondary PDP context identified by the (local) context identification parameter, [cid]. The number of PDP contexts that may be in a defined state at the same time is given by the range returned by the test command.
+A special form of the set command, +CGDSCONT= [cid] causes the values for context number [cid] to become undefined.
+The read command returns the current settings for each defined context.
+Defined values
+[cid]: (PDP Context Identifier) a numeric parameter which specifies a particular PDP context definition. The parameter is local to the TE-MT interface and is used in other PDP context-related commands. The range of permitted values (minimum value = 1) is returned by the test form of the command.
+[p_cid]: (Primary PDP Context Identifier) a numeric parameter which specifies a particular PDP context definition which has been specified by use of the +CGDCONT command. The parameter is local to the TE-MT interface. The list of permitted values is returned by the test form of the command.
+[d_comp]: a numeric parameter that controls PDP data compression (applicable for SNDCPonly) (refer 3GPP TS 44.065 [61])
+0 - off (default if value is omitted)
+1 - on (manufacturer preferred compression)
+2 - V.42bis
+3 - V.44
+Other values are reserved.
+[h_comp]: a numeric parameter that controls PDP header compression (refer 3GPP TS 44.065 [61] and 3GPP TS 25.323 [62])
+0 - off (default if value is omitted)
+1 - on (manufacturer preferred compression)
+2 - RFC1144 (applicable for SNDCP only)
+3 - RFC2507
+4 - RFC3095 (applicable for PDCP only)
+Other values are reserved.
+</description>
+</spec>
+<spec>
+ <command>AT+CGAUTO=</command>
+ <profile>Automatic response to a network request for PDP context activation (Assign)</profile>
+ <description>The set command disables or enables an automatic positive response (auto-answer) to the receipt of a Request PDP Context Activation message from the network. It also provides control over the use of the V.250 basic commands 'S0', 'A and 'H' for handling network requests for PDP context activation. The setting does not affect the issuing of the unsolicited result code RING or +CRING.
+The test command returns the values of [n] supported by the MT as a compound value.
+When the +CGAUTO=0 command is received, the MT shall not perform a PS detach if it is attached. Subsequently, when the MT announces a network request for PDP context activation by issuing the unsolicited result code RING or +CRING, the TE may manually accept or reject the request by issuing the +CGANS command or may simply ignore the network request.
+When the +CGAUTO=1 command is received, the MT shall attempt to perform a PS attach if it is not already attached. Failure will result in ERROR or, if enabled, +CME ERROR being returned to the TE. Subsequently, when the MT announces a network request for PDP context activation by issuing the unsolicited result code RING or +CRING to the TE, this is followed by the intermediate result code CONNECT. The MT then enters V.250 online data state and follows the same procedure as it would after having received a +CGANS=1 with no [L2P] or [cid] values specified.
+Defined values
+[n]:
+0 turn off automatic response for Packet Domain only
+1 turn on automatic response for Packet Domain only
+2 modem compatibility mode, Packet Domain only
+3 modem compatibility mode, Packet Domain and circuit switched calls (default)
+For [n] = 0 Packet DomainS network requests are manually accepted or rejected by the +CGANS command.
+For [n] = 1 Packet Domain network requests are automatically accepted according to the description above.
+For [n] = 2, automatic acceptance of Packet Domain network requests is controlled by the 'S0' command. Manual control uses the 'A' and 'H' commands, respectively, to accept and reject Packet Domain requests. (+CGANS may also be used.) Incoming circuit switched calls can be neither manually nor automatically answered.
+For [n] = 3, automatic acceptance of both Packet Domain network requests and incoming circuit switched calls is controlled by the 'S0' command. Manual control uses the 'A' and 'H' commands, respectively, to accept and reject Packet Domain requests. (+CGANS may also be used.) Circuit switched calls are handled as described elsewhere in this specification.
+</description>
+</spec>
+<spec>
+ <command>AT+CGAUTO?</command>
+ <profile>Automatic response to a network request for PDP context activation (Query)</profile>
+ <description>The set command disables or enables an automatic positive response (auto-answer) to the receipt of a Request PDP Context Activation message from the network. It also provides control over the use of the V.250 basic commands 'S0', 'A and 'H' for handling network requests for PDP context activation. The setting does not affect the issuing of the unsolicited result code RING or +CRING.
+The test command returns the values of [n] supported by the MT as a compound value.
+When the +CGAUTO=0 command is received, the MT shall not perform a PS detach if it is attached. Subsequently, when the MT announces a network request for PDP context activation by issuing the unsolicited result code RING or +CRING, the TE may manually accept or reject the request by issuing the +CGANS command or may simply ignore the network request.
+When the +CGAUTO=1 command is received, the MT shall attempt to perform a PS attach if it is not already attached. Failure will result in ERROR or, if enabled, +CME ERROR being returned to the TE. Subsequently, when the MT announces a network request for PDP context activation by issuing the unsolicited result code RING or +CRING to the TE, this is followed by the intermediate result code CONNECT. The MT then enters V.250 online data state and follows the same procedure as it would after having received a +CGANS=1 with no [L2P] or [cid] values specified.
+Defined values
+[n]:
+0 turn off automatic response for Packet Domain only
+1 turn on automatic response for Packet Domain only
+2 modem compatibility mode, Packet Domain only
+3 modem compatibility mode, Packet Domain and circuit switched calls (default)
+For [n] = 0 Packet DomainS network requests are manually accepted or rejected by the +CGANS command.
+For [n] = 1 Packet Domain network requests are automatically accepted according to the description above.
+For [n] = 2, automatic acceptance of Packet Domain network requests is controlled by the 'S0' command. Manual control uses the 'A' and 'H' commands, respectively, to accept and reject Packet Domain requests. (+CGANS may also be used.) Incoming circuit switched calls can be neither manually nor automatically answered.
+For [n] = 3, automatic acceptance of both Packet Domain network requests and incoming circuit switched calls is controlled by the 'S0' command. Manual control uses the 'A' and 'H' commands, respectively, to accept and reject Packet Domain requests. (+CGANS may also be used.) Circuit switched calls are handled as described elsewhere in this specification.
+</description>
+</spec>
+<spec>
+ <command>AT+CGAUTO=?</command>
+ <profile>Automatic response to a network request for PDP context activation (Query all)</profile>
+ <description>The set command disables or enables an automatic positive response (auto-answer) to the receipt of a Request PDP Context Activation message from the network. It also provides control over the use of the V.250 basic commands 'S0', 'A and 'H' for handling network requests for PDP context activation. The setting does not affect the issuing of the unsolicited result code RING or +CRING.
+The test command returns the values of [n] supported by the MT as a compound value.
+When the +CGAUTO=0 command is received, the MT shall not perform a PS detach if it is attached. Subsequently, when the MT announces a network request for PDP context activation by issuing the unsolicited result code RING or +CRING, the TE may manually accept or reject the request by issuing the +CGANS command or may simply ignore the network request.
+When the +CGAUTO=1 command is received, the MT shall attempt to perform a PS attach if it is not already attached. Failure will result in ERROR or, if enabled, +CME ERROR being returned to the TE. Subsequently, when the MT announces a network request for PDP context activation by issuing the unsolicited result code RING or +CRING to the TE, this is followed by the intermediate result code CONNECT. The MT then enters V.250 online data state and follows the same procedure as it would after having received a +CGANS=1 with no [L2P] or [cid] values specified.
+Defined values
+[n]:
+0 turn off automatic response for Packet Domain only
+1 turn on automatic response for Packet Domain only
+2 modem compatibility mode, Packet Domain only
+3 modem compatibility mode, Packet Domain and circuit switched calls (default)
+For [n] = 0 Packet DomainS network requests are manually accepted or rejected by the +CGANS command.
+For [n] = 1 Packet Domain network requests are automatically accepted according to the description above.
+For [n] = 2, automatic acceptance of Packet Domain network requests is controlled by the 'S0' command. Manual control uses the 'A' and 'H' commands, respectively, to accept and reject Packet Domain requests. (+CGANS may also be used.) Incoming circuit switched calls can be neither manually nor automatically answered.
+For [n] = 3, automatic acceptance of both Packet Domain network requests and incoming circuit switched calls is controlled by the 'S0' command. Manual control uses the 'A' and 'H' commands, respectively, to accept and reject Packet Domain requests. (+CGANS may also be used.) Circuit switched calls are handled as described elsewhere in this specification.
+</description>
+</spec>
+<spec>
+ <command>AT+CGANS=</command>
+ <profile>Manual response to a network request for PDP context activation (Assign)</profile>
+ <description>The execution command requests the MT to respond to a network request for Packet Domain PDP context activation which has been signalled to the TE by the RING or +CRING: unsolicited result code. The [response] parameter allows the TE to accept or reject the request.
+If [response] is 0, the request is rejected and the MT returns OK to the TE.
+If [response] is 1, the following procedure is followed by the MT.
+Commands following the +CGANS command in the AT command line shall not be processed by the MT.
+If the [L2P] parameter value is unacceptable to the MT, the MT shall return an ERROR or +CME ERROR response. Otherwise, the MT issues the intermediate result code CONNECT and enters V.250 online data state.
+The detailed behaviour after the online data state has been entered is dependent on the PDP type. It is described briefly in 3GPP TS 27.060[34] and in more detail in 3GPP TS 29.061[39] and the specifications for the relevant PDPs. PDP context activation procedures shall take place prior to or during the PDP startup.
+One or more [cid]s may be specified in order to provide the values needed for the context activation request.
+During the PDP startup procedure the MT has the PDP type and the PDP address provided by the network in the Request PDP Context Activation message. The MT may also have some or all of the following information -
+ The MT may have a priori knowledge, for example, it may implement only one PDP type.
+ The command may have provided an [L2P] parameter value.
+ The TE may provide one or both of PDP type and PDP address to the MT in the PDP startup.
+If any of this information is in conflict, the command will fail.
+If one or more [cid] is given then an attempt shall be made to identify an appropriate context definition by matching the PDP type and PDP address in the network request with the PDP type and PDP address in each of the specified context definitions (in the order in which their [cid]s appear in the command) as follows -
+ The PDP type must match exactly.
+ The PDP addresses are considered to match if they are identical or if the address in the context definition is unspecified.
+The context shall be activated using the values for PDP type and PDP address provided by the network, together with the other information found in the PDP context definition. An APN may or may not re required, depending on the application.
+If no [cid] is given or if there is no matching context definition, the MT will attempt to activate the context using the values for PDP type and PDP address provided by the network, together with any other relevant information known to the MT. The other context parameters will be set to their default values.
+If the activation is successful, data transfer may proceed.
+After data transfer is complete, and the layer 2 protocol termination procedure has completed successfully, the V.250 command state is re-entered and the MT returns the final result code OK
+In the event of an erroneous termination or a failure to startup, the V.250 command state is re-entered and the MT returns the final result code NO CARRIER or, if enabled, +CME ERROR. Attach, activate and other errors may be reported. It is also an error to issue the +CGANS command when there is no outstanding network request.
+NOTE: This is not the same as if the MT issues a +CGDATA (or +CGACT) command after receiving a +CRING unsolicited result code. A +CGDATA (or +CGACT) does not command the MT to acknowledge the network request but rather to make a new request for context activation. The network request would be ignored.
+The test command returns the values of [response] and [L2P] supported by the MT as compound values.
+This command may be used in both normal and modem compatibility modes.
+Defined values
+[response]: is a numeric parameter which specifies how the request should be responded to.
+0 reject the request
+1 accept and request that the PDP context be activated
+If [response] is omitted it is assumed to be 0. Other values are reserved and will result in the ERROR response.
+[L2P]: a string parameter which indicates the layer 2 protocol to be used (see +CGDATA command).
+[cid]: a numeric parameter which specifies a particular PDP context definition (see the +CGDCONT and +CGDSCONT commands).
+</description>
+</spec>
+<spec>
+ <command>AT+CGANS=?</command>
+ <profile>Manual response to a network request for PDP context activation (Query all)</profile>
+ <description>The execution command requests the MT to respond to a network request for Packet Domain PDP context activation which has been signalled to the TE by the RING or +CRING: unsolicited result code. The [response] parameter allows the TE to accept or reject the request.
+If [response] is 0, the request is rejected and the MT returns OK to the TE.
+If [response] is 1, the following procedure is followed by the MT.
+Commands following the +CGANS command in the AT command line shall not be processed by the MT.
+If the [L2P] parameter value is unacceptable to the MT, the MT shall return an ERROR or +CME ERROR response. Otherwise, the MT issues the intermediate result code CONNECT and enters V.250 online data state.
+The detailed behaviour after the online data state has been entered is dependent on the PDP type. It is described briefly in 3GPP TS 27.060[34] and in more detail in 3GPP TS 29.061[39] and the specifications for the relevant PDPs. PDP context activation procedures shall take place prior to or during the PDP startup.
+One or more [cid]s may be specified in order to provide the values needed for the context activation request.
+During the PDP startup procedure the MT has the PDP type and the PDP address provided by the network in the Request PDP Context Activation message. The MT may also have some or all of the following information -
+ The MT may have a priori knowledge, for example, it may implement only one PDP type.
+ The command may have provided an [L2P] parameter value.
+ The TE may provide one or both of PDP type and PDP address to the MT in the PDP startup.
+If any of this information is in conflict, the command will fail.
+If one or more [cid] is given then an attempt shall be made to identify an appropriate context definition by matching the PDP type and PDP address in the network request with the PDP type and PDP address in each of the specified context definitions (in the order in which their [cid]s appear in the command) as follows -
+ The PDP type must match exactly.
+ The PDP addresses are considered to match if they are identical or if the address in the context definition is unspecified.
+The context shall be activated using the values for PDP type and PDP address provided by the network, together with the other information found in the PDP context definition. An APN may or may not re required, depending on the application.
+If no [cid] is given or if there is no matching context definition, the MT will attempt to activate the context using the values for PDP type and PDP address provided by the network, together with any other relevant information known to the MT. The other context parameters will be set to their default values.
+If the activation is successful, data transfer may proceed.
+After data transfer is complete, and the layer 2 protocol termination procedure has completed successfully, the V.250 command state is re-entered and the MT returns the final result code OK
+In the event of an erroneous termination or a failure to startup, the V.250 command state is re-entered and the MT returns the final result code NO CARRIER or, if enabled, +CME ERROR. Attach, activate and other errors may be reported. It is also an error to issue the +CGANS command when there is no outstanding network request.
+NOTE: This is not the same as if the MT issues a +CGDATA (or +CGACT) command after receiving a +CRING unsolicited result code. A +CGDATA (or +CGACT) does not command the MT to acknowledge the network request but rather to make a new request for context activation. The network request would be ignored.
+The test command returns the values of [response] and [L2P] supported by the MT as compound values.
+This command may be used in both normal and modem compatibility modes.
+Defined values
+[response]: is a numeric parameter which specifies how the request should be responded to.
+0 reject the request
+1 accept and request that the PDP context be activated
+If [response] is omitted it is assumed to be 0. Other values are reserved and will result in the ERROR response.
+[L2P]: a string parameter which indicates the layer 2 protocol to be used (see +CGDATA command).
+[cid]: a numeric parameter which specifies a particular PDP context definition (see the +CGDCONT and +CGDSCONT commands).
+</description>
+</spec>
+<spec>
+ <command>AT+CGCS=</command>
+ <profile>VGCS subscriptions and GId status (Assign)</profile>
+ <description>This command works with SIM Card and when the GSM Application is selected in UICC. Function with USIM is for further study. The set command is used to edit the status of the GId EFVGCSS on the SIM. The read command returns all subscribed GIds in EFVGCS and their status in EFVGCSS from the SIM.
+
+Defined values
+[GId] integer type, group Id as specified in 3GPP TS 22.030 [19]
+[status]: integer type, value
+ 0 deactivated
+ 1 activated
+</description>
+</spec>
+<spec>
+ <command>AT+CGCS?</command>
+ <profile>VGCS subscriptions and GId status (Query)</profile>
+ <description>This command works with SIM Card and when the GSM Application is selected in UICC. Function with USIM is for further study. The set command is used to edit the status of the GId EFVGCSS on the SIM. The read command returns all subscribed GIds in EFVGCS and their status in EFVGCSS from the SIM.
+
+Defined values
+[GId] integer type, group Id as specified in 3GPP TS 22.030 [19]
+[status]: integer type, value
+ 0 deactivated
+ 1 activated
+</description>
+</spec>
+<spec>
+ <command>AT+CGCS=?</command>
+ <profile>VGCS subscriptions and GId status (Query all)</profile>
+ <description>This command works with SIM Card and when the GSM Application is selected in UICC. Function with USIM is for further study. The set command is used to edit the status of the GId EFVGCSS on the SIM. The read command returns all subscribed GIds in EFVGCS and their status in EFVGCSS from the SIM.
+
+Defined values
+[GId] integer type, group Id as specified in 3GPP TS 22.030 [19]
+[status]: integer type, value
+ 0 deactivated
+ 1 activated
+</description>
+</spec>
+<spec>
+ <command>AT+CBCS=</command>
+ <profile>VBS subscriptions and GId status (Assign)</profile>
+ <description>This command works with SIM Card and when the GSM Application is selected in UICC. Function with USIM is for further study. The set command is used to edit the status of the GId EFVBSS on the SIM. The read command returns all subscribed GIds in EFVBS and their status in EFVBSS from the SIM.
+
+Defined values
+[GId] integer type, group Id as specified in 3GPP TS 22.030 [19]
+[status]: integer type, value
+ 0 deactivated
+ 1 activated
+</description>
+</spec>
+<spec>
+ <command>AT+CBCS?</command>
+ <profile>VBS subscriptions and GId status (Query)</profile>
+ <description>This command works with SIM Card and when the GSM Application is selected in UICC. Function with USIM is for further study. The set command is used to edit the status of the GId EFVBSS on the SIM. The read command returns all subscribed GIds in EFVBS and their status in EFVBSS from the SIM.
+
+Defined values
+[GId] integer type, group Id as specified in 3GPP TS 22.030 [19]
+[status]: integer type, value
+ 0 deactivated
+ 1 activated
+</description>
+</spec>
+<spec>
+ <command>AT+CBCS=?</command>
+ <profile>VBS subscriptions and GId status (Query all)</profile>
+ <description>This command works with SIM Card and when the GSM Application is selected in UICC. Function with USIM is for further study. The set command is used to edit the status of the GId EFVBSS on the SIM. The read command returns all subscribed GIds in EFVBS and their status in EFVBSS from the SIM.
+
+Defined values
+[GId] integer type, group Id as specified in 3GPP TS 22.030 [19]
+[status]: integer type, value
+ 0 deactivated
+ 1 activated
+</description>
+</spec>
+</gsm>
\ No newline at end of file
diff --git a/xml/default.xml b/xml/default.xml
new file mode 100644
index 0000000..4080676
--- /dev/null
+++ b/xml/default.xml
@@ -0,0 +1,3387 @@
+<?xml version="1.0"?>
+<simulator>
+
+<!-- Phone simulator definition file for the "Qt Extended Pseudo Phone" -->
+
+<!-- Note: dialing 199 will cause a dialback to simulate an incoming call -->
+<!-- Note: dialing 177 will cause a dialback to simulate an incoming call, and hangup after 5 seconds -->
+<!-- Note: dialing 166 will accept the incoming call and hangup up after 5 seconds-->
+<!-- Note: dialing 155 will elicit a 'BUSY' response from the recipient-->
+
+<!-- Initialize state variables -->
+
+ <!-- Advice of charge -->
+ <!-- Call Meter -->
+ <set name="AOC" value="000000"/>
+
+ <!-- Call Meter reporting -->
+ <set name="AOCMODE" value="1"/>
+
+ <!-- Accumulated Call Meter -->
+ <set name="ACM" value="000480"/>
+
+ <!-- Accumulated Call Meter Maximum -->
+ <set name="ACMMAX" value="000500"/>
+
+ <!-- Price per Unit and Currency -->
+ <set name="PPU" value='GBP","2.66'/>
+
+ <!-- Battery Capacity
+ first value
+ 0-powered by battery
+ 1-battery connected, powered by charger
+ 2-no battery.
+
+ second value is percentage battery remaining.
+ 0-exhausted
+ 1-99-partial charge
+ 100-fully charged.
+ -->
+ <set name="BC" value="0,100"/>
+
+ <!-- Signal Quality -->
+ <set name="SQ" value="99,99"/>
+
+ <!-- Manufacturer -->
+ <set name="GMI" value="MeeGo"/>
+
+ <!-- Model -->
+ <set name="GMM" value="Synthetic Device"/>
+
+ <!-- Revision -->
+ <set name="GMR" value="REV1"/>
+
+ <!-- Serial number -->
+ <set name="GSN" value="1234567890"/>
+
+ <!-- SIM card id -->
+ <set name="IMSI" value="246813579"/>
+
+ <!-- Identifier for ATI command -->
+ <set name="ID" value="MeeGo Synthetic Phone"/>
+
+ <!-- Character set -->
+ <set name="SCS" value="IRA"/>
+
+ <!-- Type of address (local = 129, international = 145) -->
+ <set name="STA" value="129"/>
+
+ <!-- Service reporting control flag -->
+ <set name="CR" value="0"/>
+
+ <!-- Cellular result code control flag -->
+ <set name="CRC" value="0"/>
+
+ <!-- Extended error message string -->
+ <set name="ERR" value="EXTENDED ERROR STRING"/>
+
+ <!-- Network registration presentation flag -->
+ <set name="REG" value="1,0"/>
+
+ <!-- GPRS network registration presentation flag -->
+ <set name="GREG" value="0"/>
+
+ <!-- Mobile phone operator selection mode (0=auto, 1=manual, 2=deregister, 3=set only <format>, 4=manual / automatic) -->
+ <set name="OPMODE" value="0"/>
+
+ <!-- Mobile phone operator selection format (0=long alphanumeric, 1=short alphanumeric, 2=numeric -->
+ <set name="OPFORMAT" value="0"/>
+
+ <!-- GCF Operator List, format <status(1:available,2:current,3:forbidden)>,"<alphanum.operator name>","<short operator name>","<MCC/MNC num>"-->
+ <set name="OP1" value="T-MeeGo"/>
+ <set name="OP1PLMN" value="23401"/>
+ <set name="OP1STATE" value="2"/>
+
+ <set name="OP2" value="Maybe Forbidden Net"/>
+ <set name="OP2PLMN" value="23402"/>
+ <set name="OP2STATE" value="3"/>
+
+ <set name="OP3" value="Competitor Net"/>
+ <set name="OP3PLMN" value="23403"/>
+ <set name="OP3STATE" value="3"/>
+
+ <set name="OP4" value="Blocked Net"/>
+ <set name="OP4PLMN" value="23404"/>
+ <set name="OP4STATE" value="3"/>
+
+ <set name="OP5" value="Inaccessible Net"/>
+ <set name="OP5PLMN" value="23405"/>
+ <set name="OP5STATE" value="3"/>
+
+ <set name="OP6" value="Phone Net"/>
+ <set name="OP6PLMN" value="23406"/>
+ <set name="OP6STATE" value="1"/>
+
+ <set name="OP7" value="Teleco Net"/>
+ <set name="OP7PLMN" value="24681"/>
+ <set name="OP7STATE" value="1"/>
+
+ <set name="OP8" value="Mobile Net"/>
+ <set name="OP8PLMN" value="24682"/>
+ <set name="OP8STATE" value="1"/>
+
+ <set name="OP9" value="IMSI Unknown"/>
+ <set name="OP9PLMN" value="24683"/>
+ <set name="OP9STATE" value="1"/>
+
+ <set name="OP10" value="NotAllowed"/>
+ <set name="OP10PLMN" value="24684"/>
+ <set name="OP10STATE" value="1"/>
+
+ <set name="OP11" value="NoService"/>
+ <set name="OP11PLMN" value="24685"/>
+ <set name="OP11STATE" value="1"/>
+
+ <!-- Preferred Operators -->
+ <set name="PO1" value="1,2,23401"/>
+ <set name="PO2" value="2,2,23402"/>
+
+ <!-- Name of current mobile phone operator -->
+ <set name="OP" value="${OP1}"/>
+ <set name="OPPLMN" value="${OP1PLMN}"/>
+
+ <!-- Calling line identification presentation flag -->
+ <set name="LIP" value="0"/>
+
+ <!-- Calling line identification restriction flag -->
+ <set name="LIR" value="0"/>
+ <set name="LIR_STATUS" value="3"/>
+
+ <!-- Originating line identification presentation flag -->
+ <set name="OLP" value="0"/>
+
+ <!-- Call waiting presentation mode -->
+ <set name="CWA_V" value="1"/>
+ <set name="CWA_D" value="0"/>
+ <set name="CWA_F" value="0"/>
+
+ <!-- Call forwarding -->
+ <set name="CF0C1" value="0"/>
+ <set name="CF0C2" value="0"/>
+ <set name="CF0C4" value="0"/>
+ <set name="CF0C8" value="0"/>
+ <set name="CF1C1" value="0"/>
+ <set name="CF1C2" value="0"/>
+ <set name="CF1C4" value="0"/>
+ <set name="CF1C8" value="0"/>
+ <set name="CF2C1" value="0"/>
+ <set name="CF2C2" value="0"/>
+ <set name="CF2C4" value="0"/>
+ <set name="CF2C8" value="0"/>
+ <set name="CF3C1" value="0"/>
+ <set name="CF3C2" value="0"/>
+ <set name="CF3C4" value="0"/>
+ <set name="CF3C8" value="0"/>
+ <set name="CF0C1T" value="129"/>
+ <set name="CF1C1T" value="129"/>
+ <set name="CF2C1T" value="129"/>
+ <set name="CF3C1T" value="129"/>
+ <set name="CF2C1O" value="20"/>
+
+ <!-- Service Center Address -->
+ <set name="SCA" value="+15551234567"/>
+ <set name="SCAT" value="145"/>
+
+ <!-- Fixed Dialling presentation mode -->
+ <set name="FD" value="0"/>
+
+ <!-- Unstructured service presentation mode -->
+ <set name="USD" value="0"/>
+
+ <!-- Supplementary service notification flags -->
+ <set name="SSN" value="0,0"/>
+
+ <!-- Phone activity status (ready = 0, ringing = 3, call active = 4) -->
+ <set name="PAS" value="0"/>
+
+ <!-- Phone functionality power consumption level (minimal = 0, full = 1) -->
+ <set name="FUN" value="0"/>
+
+ <!-- Mobile equipment control modes -->
+ <set name="MEC" value="0,0,0"/>
+
+ <!-- Mobile equipment event reporting modes -->
+ <set name="MER" value="0,0,0,0,0"/>
+
+ <!-- Ericsson-style call monitoring status values -->
+ <set name="ECAM" value="0"/>
+
+ <!-- SMS text vs PDU message format (1 = text, 0 = PDU) -->
+ <set name="CMGF" value="0"/>
+
+ <!-- Error reporting mode -->
+ <set name="MEE" value="0"/>
+
+ <!-- SMS message list -->
+ <set name="MSGLIST" value=""/>
+ <set name="MSGLISTCOPY" value=""/>
+ <set name="MSGMEM" value="SM"/>
+
+ <!-- Number of messages in the SMS message list -->
+ <set name="MSGCOUNT" value="0"/>
+
+ <!-- Identifier for the current call -->
+ <set name="CALLID" value="1"/>
+
+ <!-- Name of the PIN that is required (eg. "PIN") -->
+ <!-- READY: PIN/PUK not required; SIM PIN: PIN required; SIM PUK: PUK REQUIRED -->
+ <set name="PINNAME" value="READY"/>
+
+ <!-- Value of the PIN that is required -->
+ <set name="PINVALUE" value="2468"/>
+
+ <!-- pin protection status -->
+ <set name="SC" value="0"/>
+
+ <!-- Value of the PIN2 that is required -->
+ <set name="PIN2VALUE" value="3579"/>
+
+ <!-- Value of the PUK that is required -->
+ <set name="PUKVALUE" value="13243546"/>
+
+ <!-- Value of the PUK2 that is required -->
+ <set name="PUK2VALUE" value="08978675"/>
+
+ <!-- Value of the PSPIN that is required -->
+ <set name="PSPINVALUE" value="4321"/>
+
+ <!-- phone to sim pin protection status -->
+ <set name="PS" value="0"/>
+
+ <!-- Value of the SIM PIN2 that is required -->
+ <set name="SIMPIN2VALUE" value="31337"/>
+
+ <!-- Call Barring -->
+ <set name="BARVAO" value="0"/>
+ <set name="BARVOI" value="0"/>
+ <set name="BARVOX" value="0"/>
+ <set name="BARVAI" value="0"/>
+ <set name="BARVIR" value="0"/>
+ <set name="BARVNT" value="0"/>
+ <set name="BARVNM" value="0"/>
+ <set name="BARVNS" value="0"/>
+ <set name="BARVNA" value="0"/>
+ <set name="BARVAB" value="0"/>
+ <set name="BARVAG" value="0"/>
+ <set name="BARVAC" value="0"/>
+
+ <!-- accessories, handsfree and car. 0 means not connected, 1 for connected -->
+ <set name="HANDSFREE" value="0"/>
+
+ <set name="CARHANDSFREE" value="0"/>
+
+ <!-- list of available bands -->
+ <set name="BAND0" value="GSM & EGSM"/>
+ <set name="BAND1" value="GSM 1800"/>
+ <set name="BAND2" value="Dualband 900/1800"/>
+ <set name="BAND3" value="PCS 1900"/>
+ <set name="BAND4" value="GSM 850"/>
+ <set name="BAND5" value="Dualband 1900/850"/>
+ <set name="BAND6" value=""/>
+ <set name="BAND7" value=""/>
+ <set name="BAND8" value=""/>
+ <set name="BAND9" value=""/>
+ <set name="BANDA" value=""/>
+ <set name="BANDB" value=""/>
+ <set name="BANDC" value=""/>
+ <set name="BANDD" value=""/>
+ <set name="BANDE" value=""/>
+ <set name="BANDF" value=""/>
+
+ <!-- current band. 0 means automatic and 1,"name" means manually select "name" -->
+ <set name="BAND" value="0"/>
+
+ <!-- Loudspeaker Volume Level -->
+ <set name="LVL" value="125"/>
+
+ <!-- Muting control -->
+ <set name="MUT" value="0"/>
+
+<!-- Time -->
+<!-- Enable for testing
+<unsolicited delay="3000" once="true">*TTZ: 2, "11/25/2007, 12:12:12+40", 0</unsolicited>
+<unsolicited delay="3000" once="true">*TTZ: 2, "Cingluar", 0</unsolicited>
+-->
+
+
+<!-- GSM 07.07: General commands -->
+
+<chat>
+ <!-- Get manufacturer identifier -->
+ <command>AT+CGMI</command>
+ <response>${GMI}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Get manufacturer identifier support check -->
+ <command>AT+CGMI=?</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Get manufacturer identifier, V.25ter version -->
+ <command>AT+GMI</command>
+ <response>${GMI}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Get manufacturer model -->
+ <command>AT+CGMM</command>
+ <response>${GMM}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Get manufacturer model, V.25ter version -->
+ <command>AT+GMM</command>
+ <response>${GMM}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Get manufacturer model support check -->
+ <command>AT+CGMM=?</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Get manufacturer revision -->
+ <command>AT+CGMR</command>
+ <response>${GMR}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Get manufacturer revision, V.25ter version -->
+ <command>AT+GMR</command>
+ <response>${GMR}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Get manufacturer revision support check -->
+ <command>AT+CGMR=?</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Get serial number -->
+ <command>AT+CGSN</command>
+ <response>${GSN}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Get serial number support check -->
+ <command>AT+CGSN=?</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Get serial number, V.25ter version -->
+ <command>AT+GSN</command>
+ <response>${GSN}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Get SIM id -->
+ <command>AT+CIMI</command>
+ <response>${IMSI}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Get SIM id support check -->
+ <command>AT+CIMI=?</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Query current character set -->
+ <command>AT+CSCS?</command>
+ <response>+CSCS: "${SCS}"\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query all supported character sets -->
+ <command>AT+CSCS=?</command>
+ <response>+CSCS: "GSM","IRA","PCCP437","PCDN","8859-1","HEX","UCS2"\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set character set -->
+ <command>AT+CSCS="*"</command>
+ <response>OK</response>
+ <set name="SCS" value="*"/>
+</chat>
+
+<chat>
+ <!-- Query current wireless network (GSM = 12) -->
+ <command>AT+WS46?</command>
+ <response>12\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query all supported wireless network types -->
+ <command>AT+WS46=?</command>
+ <response>(12)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Select GSM wireless network -->
+ <command>AT+WS46=12</command>
+ <response>OK</response>
+</chat>
+
+<!-- GSM 07.07: Call control commands and methods -->
+
+<chat>
+ <!-- Query current type of address (local = 129, international = 145) -->
+ <command>AT+CSTA?</command>
+ <response>${STA}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported address types -->
+ <command>AT+CSTA=?</command>
+ <response>(129, 145)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set type of address to local -->
+ <command>AT+CSTA=129</command>
+ <response>OK</response>
+ <set name="STA" value="129"/>
+</chat>
+
+<chat>
+ <!-- Set type of address to international -->
+ <command>AT+CSTA=145</command>
+ <response>OK</response>
+ <set name="STA" value="145"/>
+</chat>
+
+<chat>
+ <!-- Query bearer service type (autobauding = 0) -->
+ <command>AT+CBST?</command>
+ <response>+CBST: 0\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported bearer service types -->
+ <command>AT+CBST=?</command>
+ <response>+CBST: (0),(0),(0)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set bearer service type -->
+ <command>AT+CBST=*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Query radio link protocol -->
+ <command>AT+CRLP?</command>
+ <response>+CRLP: 61,61,48,6\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported radio link protocols -->
+ <command>AT+CRLP=?</command>
+ <response>+CRLP: (61),(61),(48),(6)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set radio link protocol -->
+ <command>AT+CRLP=*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Query service reporting control -->
+ <command>AT+CR?</command>
+ <response>+CR: ${CR}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported service reporting controls -->
+ <command>AT+CR=?</command>
+ <response>+CR: (0,1)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Disable service reporting control -->
+ <command>AT+CR=0</command>
+ <response>OK</response>
+ <set name="CR" value="0"/>
+</chat>
+
+<chat>
+ <!-- Enable service reporting control -->
+ <command>AT+CR=1</command>
+ <response>OK</response>
+ <set name="CR" value="1"/>
+</chat>
+
+<chat>
+ <!-- Extended error report -->
+ <command>AT+CEER</command>
+ <response>+CEER: ${ERR}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query extended celluar result code status -->
+ <command>AT+CRC?</command>
+ <response>+CRC: ${CRC}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported cellular result code status values -->
+ <command>AT+CRC=?</command>
+ <response>+CRC: (0,1)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Disable extended cellular result codes -->
+ <command>AT+CRC=0</command>
+ <response>OK</response>
+ <set name="CRC" value="0"/>
+</chat>
+
+<chat>
+ <!-- Enable extended cellular result codes -->
+ <command>AT+CRC=1</command>
+ <response>OK</response>
+ <set name="CRC" value="1"/>
+</chat>
+
+<chat>
+ <!-- Query Ericsson-style call monitoring status -->
+ <command>AT*ECAM?</command>
+ <response>*ECAM: ${ECAM}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported call monitoring status values -->
+ <command>AT*ECAM=?</command>
+ <response>*ECAM: (0,1)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Disable call monitoring -->
+ <command>AT*ECAM=0</command>
+ <response>OK</response>
+ <set name="ECAM" value="0"/>
+</chat>
+
+<chat>
+ <!-- Enable call monitoring -->
+ <command>AT*ECAM=1</command>
+ <response>OK</response>
+ <set name="ECAM" value="1"/>
+</chat>
+
+<!-- GSM 07.07: Network service related commands -->
+
+<chat>
+ <!-- Query subscriber number -->
+ <command>AT+CNUM</command>
+ <response>+CNUM: ,"+358501234567",145,,4\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Determine if subscriber number queries are supported -->
+ <command>AT+CNUM=?</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Query network registration result code presentation -->
+ <command>AT+CREG?</command>
+ <response>+CREG: ${REG},1\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported network registration result code presentation types -->
+ <command>AT+CREG=?</command>
+ <response>+CREG: (0,1,2)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set network registration result code presentation -->
+ <command>AT+CREG=*</command>
+ <response>OK</response>
+ <set name="REG" value="*"/>
+</chat>
+
+<chat>
+ <!-- Query GPRS network registration result code presentation -->
+ <command>AT+CGREG?</command>
+ <response>+CGREG: ${GREG},0\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query GPRS network registration result code presentation types -->
+ <command>AT+CGREG=?</command>
+ <response>+CGREG: (0,1,2)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set GPRS network registration result code presentation -->
+ <command>AT+CGREG=*</command>
+ <response>OK</response>
+ <set name="GREG" value="*"/>
+</chat>
+
+
+<!-- ****************** PLMN Selection ***************************** -->
+<chat>
+ <!-- Request PLMNS descriptors -->
+ <command>AT+COPN</command>
+ <response delay="2000">+COPN: ${OP1PLMN},"${OP1}"\n+COPN: ${OP2PLMN},"${OP2}"\n+COPN: ${OP3PLMN},"${OP3}"\n+COPN: ${OP4PLMN},"${OP4}"\n+COPN: ${OP5PLMN},"${OP5}"\n+COPN: ${OP6PLMN},"${OP6}"\n+COPN: ${OP7PLMN},"${OP7}"\n+COPN: ${OP8PLMN},"${OP8}"\n+COPN: ${OP9PLMN},"${OP9}"\n+COPN: ${OP10PLMN},"${OP10}"\n+COPN: ${OP11PLMN},"${OP11}"\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query current operator selection -->
+ <command>AT+COPS?</command>
+ <response delay="500">+COPS: ${OPMODE},${OPFORMAT},${OPDATA}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query current operator and plmn (Example) -->
+ <command>AT+COPS=3,2;+COPS?;+COPS=3,0;+COPS?</command>
+ <response delay="500">+COPS: 0,2,"${OPPLMN}"\n+COPS: 0,0,"${OP}"\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported operators, always reports -->
+ <command>AT+COPS=?</command>
+ <response delay="2000">+COPS: (${OP1STATE},"${OP1}","TTAU","${OP1PLMN}",2),(${OP2STATE},"${OP2}","MFN","${OP2PLMN}",0),(${OP2STATE},"${OP2}","MFN","${OP2PLMN}",2),(${OP3STATE},"${OP3}","CNT","${OP3PLMN}"),(${OP4STATE},"${OP4}","BNT","${OP4PLMN}"),(${OP5STATE},"${OP5}","INT","${OP5PLMN}"),(${OP6STATE},"${OP6}","PNT","${OP6PLMN}"),(${OP7STATE},"${OP7}","TNT","${OP7PLMN}"),(${OP8STATE},"${OP8}","MNT","${OP8PLMN}"),(${OP9STATE},"${OP9}","IMSI","${OP9PLMN}"),(${OP10STATE},"${OP10}","NOT","${OP10PLMN}"),(${OP11STATE},"${OP11}","SER","${OP11PLMN}"),(${OP1STATE},"${OP1}","TTAU","${OP1PLMN}",0)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Use long name for operators -->
+ <command>AT+COPS=3,0</command>
+ <set name="OPFORMAT" value="0"/>
+ <set name="OPDATA" value=""${OP}""/>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Use MCC/MNC for operators -->
+ <command>AT+COPS=3,2</command>
+ <set name="OPFORMAT" value="2"/>
+ <set name="OPDATA" value=""${OPPLMN}""/>
+ <response delay="500">OK</response>
+</chat>
+
+<chat>
+ <!-- Set automatic operator selection -->
+ <command>AT+COPS=0*</command>
+ <set name="OPMODE" value="0"/>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Set manual operator selection OP1 (Alphanumeric) -->
+ <command>AT+COPS=1,0,"${OP1}"</command>
+ <set name="OP" value="${OP1}"/>
+ <set name="OPPLMN" value="${OP1PLMN}"/>
+ <set name="OPMODE" value="1"/>
+ <set name="OP1STATE" value="2"/>
+ <set name="OP6STATE" value="1"/>
+ <response delay="500">OK</response>
+</chat>
+
+<chat>
+ <!-- Set manual operator selection OP1 (MCC/MNC) -->
+ <command>AT+COPS=1,2,"${OP1PLMN}"</command>
+ <set name="OP" value="${OP1}"/>
+ <set name="OPPLMN" value="${OP1PLMN}"/>
+ <set name="OPMODE" value="1"/>
+ <set name="OP1STATE" value="2"/>
+ <set name="OP6STATE" value="1"/>
+ <response delay="500">OK</response>
+</chat>
+
+<!-- ****************************************** -->
+<!-- Networks 2 - 4 refuse network registration -->
+<chat>
+ <!-- Refuse access to OP2 (Alphanumeric) -->
+ <command>AT+COPS=1,0,${OP2}</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- Refuse access to OP3 (Alphanumeric) -->
+ <command>AT+COPS=1,0,${OP3}</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- Refuse access to OP4 (Alphanumeric) -->
+ <command>AT+COPS=1,0,${OP4}</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- Refuse access to OP2 (MCC/MNC) -->
+ <command>AT+COPS=1,2,${OP2PLMN}</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- Refuse access to OP3 (MCC/MNC) -->
+ <command>AT+COPS=1,2,${OP3PLMN}</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- Refuse access to OP4 (MCC/MNC) -->
+ <command>AT+COPS=1,2,${OP4PLMN}</command>
+ <response>ERROR</response>
+</chat>
+
+<!-- ****************************************** -->
+
+<chat>
+ <!-- Set manual operator selection OP6 (Alphanumeric) -->
+ <command>AT+COPS=1,0,"${OP6}"</command>
+ <set name="OP" value="${OP6}"/>
+ <set name="OPPLMN" value="${OP6PLMN}"/>
+ <set name="OPMODE" value="1"/>
+ <set name="OP6STATE" value="2"/>
+ <set name="OP1STATE" value="1"/>
+ <set name="OP7STATE" value="1"/>
+ <set name="OP8STATE" value="1"/>
+ <response delay="500">OK</response>
+</chat>
+
+<chat>
+ <!-- Set manual operator selection OP6 (MCC/MNC) -->
+ <command>AT+COPS=1,2,"${OP6PLMN}"</command>
+ <set name="OP" value="${OP6}"/>
+ <set name="OPPLMN" value="${OP6PLMN}"/>
+ <set name="OPMODE" value="1"/>
+ <set name="OP6STATE" value="2"/>
+ <set name="OP1STATE" value="1"/>
+ <set name="OP7STATE" value="1"/>
+ <set name="OP8STATE" value="1"/>
+ <response delay="500">OK</response>
+</chat>
+
+<chat>
+ <!-- Set manual operator selection OP7 (Alphanumeric) -->
+ <command>AT+COPS=1,0,"${OP7}"</command>
+ <set name="OP" value="${OP7}"/>
+ <set name="OPPLMN" value="${OP7PLMN}"/>
+ <set name="OPMODE" value="1"/>
+ <set name="OP7STATE" value="2"/>
+ <set name="OP1STATE" value="1"/>
+ <set name="OP6STATE" value="1"/>
+ <set name="OP8STATE" value="1"/>
+ <response delay="500">OK</response>
+</chat>
+
+<chat>
+ <!-- Set manual operator selection OP7 (MCC/MNC) -->
+ <command>AT+COPS=1,2,"${OP7PLMN}"</command>
+ <set name="OP" value="${OP7}"/>
+ <set name="OPPLMN" value="${OP7PLMN}"/>
+ <set name="OPMODE" value="1"/>
+ <set name="OP7STATE" value="2"/>
+ <set name="OP1STATE" value="1"/>
+ <set name="OP6STATE" value="1"/>
+ <set name="OP8STATE" value="1"/>
+ <response delay="500">OK</response>
+</chat>
+
+<chat>
+ <!-- Set manual operator selection OP8 (Alphanumeric) -->
+ <command>AT+COPS=1,0,"${OP8}"</command>
+ <set name="OP" value="${OP8}"/>
+ <set name="OPPLMN" value="${OP8PLMN}"/>
+ <set name="OPMODE" value="1"/>
+ <set name="OP8STATE" value="2"/>
+ <set name="OP1STATE" value="1"/>
+ <set name="OP6STATE" value="1"/>
+ <set name="OP7STATE" value="1"/>
+ <response delay="500">OK</response>
+</chat>
+
+<chat>
+ <!-- Set manual operator selection OP8 (MCC/MNC) -->
+ <command>AT+COPS=1,2,"${OP8PLMN}"</command>
+ <set name="OP" value="${OP8}"/>
+ <set name="OPPLMN" value="${OP8PLMN}"/>
+ <set name="OPMODE" value="1"/>
+ <set name="OP8STATE" value="2"/>
+ <set name="OP1STATE" value="1"/>
+ <set name="OP6STATE" value="1"/>
+ <set name="OP7STATE" value="1"/>
+ <response delay="500">OK</response>
+</chat>
+
+<!-- *********** Error Service providers ********************** -->
+<chat>
+ <!-- Set failed register (IMSI unknown) to OP9 (Alphanumeric) -->
+ <command>AT+COPS=1,0,"${OP9}"</command>
+ <response delay="1500">+CMS ERROR: 30</response>
+</chat>
+
+<chat>
+ <!-- Set failed register (IMSI unknown) to OP9 (MCC/MNC) -->
+ <command>AT+COPS=1,2,${OP9PLMN}</command>
+ <response delay="1500">+CMS ERROR: 30</response>
+</chat>
+
+<chat>
+ <!-- Set failed register (Not Allowed) to OP10 (Alphanumeric) -->
+ <command>AT+COPS=1,0,"${OP10}"</command>
+ <response delay="1500">+CME ERROR: 32</response>
+</chat>
+
+<chat>
+ <!-- Set failed register (Not Allowed) to OP10 (MCC/MNC) -->
+ <command>AT+COPS=1,2,${OP10PLMN}</command>
+ <response delay="1500">+CME ERROR: 32</response>
+</chat>
+
+<chat>
+ <!-- Set failed register (No Service) to OP11 (Alphanumeric) -->
+ <command>AT+COPS=1,0,"${OP11}"</command>
+ <response delay="1500">+CME ERROR: 30</response>
+</chat>
+
+<chat>
+ <!-- Set failed register (No Service) to OP11 (MCC/MNC) -->
+ <command>AT+COPS=1,2,${OP11PLMN}</command>
+ <response delay="1500">+CME ERROR: 30</response>
+</chat>
+
+<!-- ****************** Preferred Operator Selection ***************************** -->
+<chat>
+ <!-- Request selection of preferred PLMN list -->
+ <command>AT+CPLS?</command>
+ <response delay="1000">+CPLS: 0\n\nOK</response> -->
+</chat>
+
+<chat>
+ <!-- Request preferred operators -->
+ <command>AT+CPOL?</command>
+ <response delay="2000">+CPOL: ${PO1}\n+CPOL: ${PO2}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set preferred operator 1 -->
+ <command>AT+CPOL=1,2,*</command>
+ <response>OK</response>
+ <set name="PO1" value="1,2,${*}"/>
+</chat>
+
+<chat>
+ <!-- Remove preferred operator 1 -->
+ <command>AT+CPOL=1</command>
+ <response>OK</response>
+ <set name="PO1" value=""/>
+</chat>
+
+<chat>
+ <!-- Set preferred operator 2 -->
+ <command>AT+CPOL=2,2,*</command>
+ <response>OK</response>
+ <set name="PO2" value="2,2,${*}"/>
+</chat>
+
+<chat>
+ <!-- Remove preferred operator 2 -->
+ <command>AT+CPOL=2</command>
+ <response>OK</response>
+ <set name="PO2" value=""/>
+</chat>
+
+<chat>
+ <!-- Set preferred operator 3 -->
+ <command>AT+CPOL=3,2,*</command>
+ <response>OK</response>
+ <set name="PO3" value="3,2,${*}"/>
+</chat>
+
+<chat>
+ <!-- Remove preferred operator 3 -->
+ <command>AT+CPOL=3</command>
+ <response>OK</response>
+ <set name="PO3" value=""/>
+</chat>
+
+<chat>
+ <!-- Set preferred operator 4 -->
+ <command>AT+CPOL=4,2,*</command>
+ <response>OK</response>
+ <set name="PO4" value="4,2,${*}"/>
+</chat>
+
+<chat>
+ <!-- Remove preferred operator 4 -->
+ <command>AT+CPOL=4</command>
+ <response>OK</response>
+ <set name="PO4" value=""/>
+</chat>
+
+<chat>
+ <!-- Set preferred operator 5 -->
+ <command>AT+CPOL=5,2,*</command>
+ <response>OK</response>
+ <set name="PO5" value="5,2,${*}"/>
+</chat>
+
+<chat>
+ <!-- Remove preferred operator 5 -->
+ <command>AT+CPOL=5</command>
+ <response>OK</response>
+ <set name="PO5" value=""/>
+</chat>
+
+<chat>
+ <!-- Set preferred operator 6 -->
+ <command>AT+CPOL=6,2,*</command>
+ <response>OK</response>
+ <set name="PO6" value="6,2,${*}"/>
+</chat>
+
+<chat>
+ <!-- Remove preferred operator 6 -->
+ <command>AT+CPOL=6</command>
+ <response>OK</response>
+ <set name="PO6" value=""/>
+</chat>
+
+<chat>
+ <!-- Set preferred operator 7 -->
+ <command>AT+CPOL=7,2,*</command>
+ <response>OK</response>
+ <set name="PO7" value="7,2,${*}"/>
+</chat>
+
+<chat>
+ <!-- Remove preferred operator 7 -->
+ <command>AT+CPOL=7</command>
+ <response>OK</response>
+ <set name="PO7" value=""/>
+</chat>
+
+<chat>
+ <!-- Set preferred operator 8 -->
+ <command>AT+CPOL=8,2,*</command>
+ <response>OK</response>
+ <set name="PO8" value="8,2,${*}"/>
+</chat>
+
+<chat>
+ <!-- Remove preferred operator 8 -->
+ <command>AT+CPOL=8</command>
+ <response>OK</response>
+ <set name="PO8" value=""/>
+</chat>
+
+<!-- ******************* CALL BARRING *****************************-->
+
+<chat>
+ <!-- BAOC (Barr All Outgoing Calls) - Assign -->
+ <command>AT+CLCK="AO",1,"${PIN2VALUE}",1</command>
+ <response>OK</response>
+ <set name="BARVAO" value="1"/>
+ <set name="BARVOI" value="0"/>
+ <set name="BARVOX" value="0"/>
+</chat>
+
+<chat>
+ <!-- BAOC (Barr All Outgoing Calls) - Query -->
+ <command>AT+CLCK="AO",2</command>
+ <response>+CLCK: ${BARVAO},1\n\nOK</response>
+</chat>
+
+
+<chat>
+ <!-- BOIC (Barr Outgoing International Calls) - Assign -->
+ <command>AT+CLCK="OI",1,"${PIN2VALUE}",1</command>
+ <response>OK</response>
+ <set name="BARVAO" value="0"/>
+ <set name="BARVOI" value="1"/>
+ <set name="BARVOX" value="0"/>
+</chat>
+
+<chat>
+ <!-- BOIC (Barr Outgoing International Calls) - Query -->
+ <command>AT+CLCK="OI",2</command>
+ <response>+CLCK: ${BARVOI},1\n\nOK</response>
+</chat>
+
+
+<chat>
+ <!-- BOIC-exHC (Barr Outgoing International Calls except to Home Country) - Assign -->
+ <command>AT+CLCK="OX",1,"${PIN2VALUE}",1</command>
+ <response>OK</response>
+ <set name="BARVAO" value="0"/>
+ <set name="BARVOI" value="0"/>
+ <set name="BARVOX" value="1"/>
+</chat>
+
+<chat>
+ <!-- BOIC-exHC (Barr Outgoing International Calls except to Home Country) - Query -->
+ <command>AT+CLCK="OX",2</command>
+ <response>+CLCK: ${BARVOX},1\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- BAIC (Barr All Incoming Calls) - Assign -->
+ <command>AT+CLCK="AI",1,"${PIN2VALUE}",1</command>
+ <response>OK</response>
+ <set name="BARVAI" value="1"/>
+ <set name="BARVIR" value="0"/>
+ <set name="BARVNT" value="0"/>
+ <set name="BARVNM" value="0"/>
+ <set name="BARVNS" value="0"/>
+ <set name="BARVNA" value="0"/>
+</chat>
+
+<chat>
+ <!-- BAIC (Barr All Incoming Calls) - Query -->
+ <command>AT+CLCK="AI",2</command>
+ <response>+CLCK: ${BARVAI},1\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- BIC-Roam (Barr Incoming Calls when Roaming outside the home country) - Assign -->
+ <command>AT+CLCK="IR",1,"${PIN2VALUE}",1</command>
+ <response>OK</response>
+ <set name="BARVAI" value="0"/>
+ <set name="BARVIR" value="1"/>
+ <set name="BARVNT" value="0"/>
+ <set name="BARVNM" value="0"/>
+ <set name="BARVNS" value="0"/>
+ <set name="BARVNA" value="0"/>
+</chat>
+
+<chat>
+ <!-- BIC-Roam (Barr Incoming Calls when Roaming outside the home country) - Query -->
+ <command>AT+CLCK="IR",2</command>
+ <response>+CLCK: ${BARVIR},1\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- barr incoming calls from numbers Not stored to TA memory - Assign -->
+ <command>AT+CLCK="NT",1,"${PIN2VALUE}",1</command>
+ <response>OK</response>
+ <set name="BARVAI" value="0"/>
+ <set name="BARVIR" value="0"/>
+ <set name="BARVNT" value="1"/>
+ <set name="BARVNM" value="0"/>
+ <set name="BARVNS" value="0"/>
+ <set name="BARVNA" value="0"/>
+</chat>
+
+<chat>
+ <!-- barr incoming calls from numbers Not stored to TA memory - Query -->
+ <command>AT+CLCK="NT",2</command>
+ <response>+CLCK: ${BARVNT},7\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- barr incoming calls from numbers Not stored to MT memory - Assign -->
+ <command>AT+CLCK="NM",1,"${PIN2VALUE}",1</command>
+ <response>OK</response>
+ <set name="BARVAI" value="0"/>
+ <set name="BARVIR" value="0"/>
+ <set name="BARVNT" value="0"/>
+ <set name="BARVNM" value="1"/>
+ <set name="BARVNS" value="0"/>
+ <set name="BARVNA" value="0"/>
+</chat>
+
+<chat>
+ <!-- barr incoming calls from numbers Not stored to MT memory - Query -->
+ <command>AT+CLCK="NM",2</command>
+ <response>+CLCK: ${BARVNM},7\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- barr incoming calls from numbers Not stored to SIM/UICC memory - Assign -->
+ <command>AT+CLCK="NS",1,"${PIN2VALUE}",1</command>
+ <response>OK</response>
+ <set name="BARVAI" value="0"/>
+ <set name="BARVIR" value="0"/>
+ <set name="BARVNT" value="0"/>
+ <set name="BARVNM" value="0"/>
+ <set name="BARVNS" value="1"/>
+ <set name="BARVNA" value="0"/>
+</chat>
+
+<chat>
+ <!-- barr incoming calls from numbers Not stored to SIM/UICC memory - Query -->
+ <command>AT+CLCK="NS",2</command>
+ <response>+CLCK: ${BARVNS},7\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- barr incoming calls from numbers Not stored to Any memory - Assign -->
+ <command>AT+CLCK="NA",1,"${PIN2VALUE}",1</command>
+ <response>OK</response>
+ <set name="BARVAI" value="0"/>
+ <set name="BARVIR" value="0"/>
+ <set name="BARVNT" value="0"/>
+ <set name="BARVNM" value="0"/>
+ <set name="BARVNS" value="0"/>
+ <set name="BARVNA" value="1"/>
+</chat>
+
+<chat>
+ <!-- barr incoming calls from numbers Not stored to Any memory - Query -->
+ <command>AT+CLCK="NA",2</command>
+ <response>+CLCK: ${BARVNA},7\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- All Barring Services - UNLOCK ONLY -->
+ <command>AT+CLCK="AB",0,"${PIN2VALUE}"</command>
+ <response>OK</response>
+ <set name="BARVAO" value="0"/>
+ <set name="BARVOI" value="0"/>
+ <set name="BARVOX" value="0"/>
+ <set name="BARVAI" value="0"/>
+ <set name="BARVIR" value="0"/>
+ <set name="BARVNT" value="0"/>
+ <set name="BARVNM" value="0"/>
+ <set name="BARVNS" value="0"/>
+ <set name="BARVNA" value="0"/>
+</chat>
+
+<chat>
+ <!-- All outGoing barring services - UNLOCK ONLY -->
+ <command>AT+CLCK="AG",0,"${PIN2VALUE}",1</command>
+ <response>OK</response>
+ <set name="BARVAO" value="0"/>
+ <set name="BARVOI" value="0"/>
+ <set name="BARVOX" value="0"/>
+</chat>
+
+<chat>
+ <!-- All inComing barring services - UNLOCK ONLY -->
+ <command>AT+CLCK="AC",0,"${PIN2VALUE}",1</command>
+ <response>OK</response>
+ <set name="BARVAI" value="0"/>
+ <set name="BARVIR" value="0"/>
+ <set name="BARVNT" value="0"/>
+ <set name="BARVNM" value="0"/>
+ <set name="BARVNS" value="0"/>
+ <set name="BARVNA" value="0"/>
+</chat>
+
+<!-- ****************** Facility Locks ***************************** -->
+
+<chat>
+ <!-- Query available facility locks -->
+ <command>AT+CLCK=?</command>
+ <response>+CLCK: PS(8),SC(8)\n\nOK</response>
+</chat>
+
+<!-- FIXED DIALLING LOCKS -->
+<chat>
+ <!-- Query available facility lock -->
+ <command>AT+CLCK="FD",2</command>
+ <response>+CLCK: ${FD}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query available facility locks -->
+ <command>AT+CLCK="FD",0,"${PIN2VALUE}"</command>
+ <response>OK</response>
+ <set name="FD" value="0"/>
+</chat>
+
+<chat>
+ <!-- Query available facility locks -->
+ <command>AT+CLCK="FD",1,"${PIN2VALUE}"</command>
+ <response>OK</response>
+ <set name="FD" value="1"/>
+</chat>
+
+<chat>
+ <!-- Query available facility locks -->
+ <command>AT+CLCK="FD",*</command>
+ <response>ERROR</response>
+</chat>
+
+<!-- SIM CARD LOCKS -->
+<chat>
+ <!-- Query available facility locks -->
+ <command>AT+CLCK="SC",2</command>
+ <response delay="1000">+CLCK: ${SC}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query available facility locks -->
+ <command>AT+CLCK="SC",0,"${PINVALUE}"</command>
+ <response>OK</response>
+ <set name="SC" value="0"/>
+</chat>
+
+<chat>
+ <!-- Query available facility locks -->
+ <command>AT+CLCK="SC",1,"${PINVALUE}"</command>
+ <response>OK</response>
+ <set name="SC" value="1"/>
+</chat>
+
+<chat>
+ <!-- Query available facility locks -->
+ <command>AT+CLCK="SC",*</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- Query available facility locks -->
+ <command>AT+CLCK="PS",2</command>
+ <response delay="1000">+CLCK: ${PS}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query available facility locks -->
+ <command>AT+CLCK="PS",0,"${PSPINVALUE}"</command>
+ <response>OK</response>
+ <set name="PS" value="0"/>
+</chat>
+
+<chat>
+ <!-- Query available facility locks -->
+ <command>AT+CLCK="PS",1,"${PSPINVALUE}"</command>
+ <response>OK</response>
+ <set name="PS" value="1"/>
+</chat>
+
+<chat>
+ <!-- Query available facility locks -->
+ <command>AT+CLCK="PS",*</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- Set facility lock (we just ignore this) -->
+ <!-- AT+CLCK="SC",2,"${PINVALUE}"
+ return status of require pin at power on -->
+ <!-- AT+CLCK="SC",*,"${PINVALUE}"
+ set require pin at startup to ${*}, (either 0, or 1,
+ -->
+</chat>
+
+<chat>
+ <!-- Change SIMCARD PIN (success) -->
+ <command>AT+CPWD="PS","${PSPINVALUE}","*"</command>
+ <response>OK</response>
+ <set name="PSPINVALUE" value="${*}"/>
+</chat>
+
+<!-- ******************** Change Call Barring Passwords ********************** -->
+<chat>
+ <!-- Change Barring PIN (success) -->
+ <command>AT+CPWD="AB","${PIN2VALUE}","*"</command>
+ <response>OK</response>
+ <set name="PIN2VALUE" value="${*}"/>
+</chat>
+
+<chat>
+ <!-- Change Barring PIN (success) -->
+ <command>AT+CPWD="AO","${PIN2VALUE}","*"</command>
+ <response>OK</response>
+ <set name="PIN2VALUE" value="${*}"/>
+</chat>
+
+<chat>
+ <!-- Change Barring PIN (success) -->
+ <command>AT+CPWD="OI","${PIN2VALUE}","*"</command>
+ <response>OK</response>
+ <set name="PIN2VALUE" value="${*}"/>
+</chat>
+
+<chat>
+ <!-- Change Barring PIN (success) -->
+ <command>AT+CPWD="OX","${PIN2VALUE}","*"</command>
+ <response>OK</response>
+ <set name="PIN2VALUE" value="${*}"/>
+</chat>
+
+<chat>
+ <!-- Change Barring PIN (success) -->
+ <command>AT+CPWD="AI","${PIN2VALUE}","*"</command>
+ <response>OK</response>
+ <set name="PIN2VALUE" value="${*}"/>
+</chat>
+
+<chat>
+ <!-- Change Barring PIN (success) -->
+ <command>AT+CPWD="IR","${PIN2VALUE}","*"</command>
+ <response>OK</response>
+ <set name="PIN2VALUE" value="${*}"/>
+</chat>
+
+<chat>
+ <!-- Change Barring PIN (success) -->
+ <command>AT+CPWD="NT","${PIN2VALUE}","*"</command>
+ <response>OK</response>
+ <set name="PIN2VALUE" value="${*}"/>
+</chat>
+
+<chat>
+ <!-- Change Barring PIN (success) -->
+ <command>AT+CPWD="NM","${PIN2VALUE}","*"</command>
+ <response>OK</response>
+ <set name="PIN2VALUE" value="${*}"/>
+</chat>
+
+<chat>
+ <!-- Change Barring PIN (success) -->
+ <command>AT+CPWD="NS","${PIN2VALUE}","*"</command>
+ <response>OK</response>
+ <set name="PIN2VALUE" value="${*}"/>
+</chat>
+
+<chat>
+ <!-- Change Barring PIN (success) -->
+ <command>AT+CPWD="NA","${PIN2VALUE}","*"</command>
+ <response>OK</response>
+ <set name="PIN2VALUE" value="${*}"/>
+</chat>
+
+<chat>
+ <!-- Query calling line identifier presentation mode -->
+ <command>AT+CLIP?</command>
+ <response>+CLIP: ${LIP},1\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported calling line identifier presentation modes -->
+ <command>AT+CLIP=?</command>
+ <response>+CLIP: (0,1)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set calling line identifier presentation mode -->
+ <command>AT+CLIP=*</command>
+ <response>OK</response>
+ <set name="LIP" value="*"/>
+</chat>
+
+<chat>
+ <!-- Query calling line identication restriction mode -->
+ <command>AT+CLIR?</command>
+ <response>+CLIR: ${LIR},${LIR_STATUS}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported calling line identication restriction modes -->
+ <command>AT+CLIR=?</command>
+ <response>+CLIR: (0,1,2)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set calling line identication restriction mode -->
+ <command>AT+CLIR=*</command>
+ <response>OK</response>
+ <set name="LIR" value="*"/>
+</chat>
+
+<chat>
+ <!-- Query originating line identifier presentation mode -->
+ <command>AT+COLP?</command>
+ <response>+COLP: ${OLP},1\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported originating line identifier presentation modes -->
+ <command>AT+COLP=?</command>
+ <response>+COLP: (0,1)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set originating line identifier presentation mode -->
+ <command>AT+COLP=*</command>
+ <response>OK</response>
+ <set name="OLP" value="*"/>
+</chat>
+
+<chat>
+ <!-- Query closed user group status (not supported yet) -->
+ <command>AT+CCUG?</command>
+ <response>+CCUG: 0,0,0\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Control closed user group status (not supported yet) -->
+ <command>AT+CCUG*</command>
+ <response>OK</response>
+</chat>
+
+
+<chat>
+ <!-- Query supported call forwarding reasons -->
+ <command>AT+CCFC=?</command>
+ <response>+CCFC: (0,1,2,3,4,5)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set call forwarding number international (voice, no reply) -->
+ <command>AT+CCFC=2,3,*,145,1,,,20</command>
+ <response>OK</response>
+ <set name="CF2C1" value="1"/>
+ <set name="CF2C1N" value="${*}"/>
+ <set name="CF2C1T" value="145"/>
+ <set name="CF2C1O" value="20"/>
+</chat>
+
+<chat>
+ <!-- Set call forwarding number (voice, no reply) -->
+ <command>AT+CCFC=2,3,*,129,1,,,20</command>
+ <response>OK</response>
+ <set name="CF2C1" value="1"/>
+ <set name="CF2C1N" value="${*}"/>
+ <set name="CF2C1T" value="129"/>
+ <set name="CF2C1O" value="20"/>
+</chat>
+
+<chat>
+ <!-- Set call forwarding number international (voice, no reply) -->
+ <command>AT+CCFC=2,3,*,145,1,,,30</command>
+ <response>OK</response>
+ <set name="CF2C1" value="1"/>
+ <set name="CF2C1N" value="${*}"/>
+ <set name="CF2C1T" value="145"/>
+ <set name="CF2C1O" value="30"/>
+</chat>
+
+<chat>
+ <!-- Set call forwarding number (voice, no reply) -->
+ <command>AT+CCFC=2,3,*,129,1,,,30</command>
+ <response>OK</response>
+ <set name="CF2C1" value="1"/>
+ <set name="CF2C1N" value="${*}"/>
+ <set name="CF2C1T" value="129"/>
+ <set name="CF2C1O" value="30"/>
+</chat>
+
+<chat>
+ <!-- Set call forwarding number international (voice, not reachable) -->
+ <command>AT+CCFC=3,3,*,145,1</command>
+ <response>OK</response>
+ <set name="CF3C1" value="1"/>
+ <set name="CF3C1N" value="${*}"/>
+ <set name="CF3C1T" value="145"/>
+</chat>
+
+<chat>
+ <!-- Set call forwarding number (voice, not reachable) -->
+ <command>AT+CCFC=3,3,*,129,1</command>
+ <response>OK</response>
+ <set name="CF3C1" value="1"/>
+ <set name="CF3C1N" value="${*}"/>
+ <set name="CF3C1T" value="129"/>
+</chat>
+
+<chat>
+ <!-- Set call forwarding number international (voice, unconditional) -->
+ <command>AT+CCFC=0,3,*,145,1</command>
+ <response>OK</response>
+ <set name="CF0C1" value="1"/>
+ <set name="CF0C1N" value="${*}"/>
+ <set name="CF0C1T" value="145"/>
+</chat>
+
+<chat>
+ <!-- Set call forwarding number (voice, unconditional) -->
+ <command>AT+CCFC=0,3,*,129,1</command>
+ <response>OK</response>
+ <set name="CF0C1" value="1"/>
+ <set name="CF0C1N" value="${*}"/>
+ <set name="CF0C1T" value="129"/>
+</chat>
+
+<chat>
+ <!-- Set call forwarding number international (voice, when busy) -->
+ <command>AT+CCFC=1,3,*,145,1</command>
+ <response>OK</response>
+ <set name="CF1C1" value="1"/>
+ <set name="CF1C1N" value="${*}"/>
+ <set name="CF1C1T" value="145"/>
+</chat>
+
+<chat>
+ <!-- Set call forwarding number (voice, when busy) -->
+ <command>AT+CCFC=1,3,*,129,1</command>
+ <response>OK</response>
+ <set name="CF1C1" value="1"/>
+ <set name="CF1C1N" value="${*}"/>
+ <set name="CF1C1T" value="129"/>
+</chat>
+
+<chat>
+ <!-- Disable all call forwarding -->
+ <command>AT+CCFC=4,4</command>
+ <response>OK</response>
+ <set name="CF0C1" value="0"/>
+ <set name="CF0C2" value="0"/>
+ <set name="CF0C4" value="0"/>
+ <set name="CF0C8" value="0"/>
+ <set name="CF1C1" value="0"/>
+ <set name="CF1C2" value="0"/>
+ <set name="CF1C4" value="0"/>
+ <set name="CF1C8" value="0"/>
+ <set name="CF2C1" value="0"/>
+ <set name="CF2C2" value="0"/>
+ <set name="CF2C4" value="0"/>
+ <set name="CF2C8" value="0"/>
+ <set name="CF3C1" value="0"/>
+ <set name="CF3C2" value="0"/>
+ <set name="CF3C4" value="0"/>
+ <set name="CF3C8" value="0"/>
+ <set name="CF0C1N" value=""/>
+ <set name="CF0C2N" value=""/>
+ <set name="CF0C4N" value=""/>
+ <set name="CF0C8N" value=""/>
+ <set name="CF1C1N" value=""/>
+ <set name="CF1C2N" value=""/>
+ <set name="CF1C4N" value=""/>
+ <set name="CF1C8N" value=""/>
+ <set name="CF2C1N" value=""/>
+ <set name="CF2C2N" value=""/>
+ <set name="CF2C4N" value=""/>
+ <set name="CF2C8N" value=""/>
+ <set name="CF3C1N" value=""/>
+ <set name="CF3C2N" value=""/>
+ <set name="CF3C4N" value=""/>
+ <set name="CF3C8N" value=""/>
+ <set name="CF0C1T" value="129"/>
+ <set name="CF1C1T" value="129"/>
+ <set name="CF2C1T" value="129"/>
+ <set name="CF2C1O" value="20"/>
+ <set name="CF3C1T" value="129"/>
+</chat>
+
+<chat>
+ <!-- Disable all call forwarding (conditional) -->
+ <command>AT+CCFC=5,4</command>
+ <response>OK</response>
+ <set name="CF1C1" value="0"/>
+ <set name="CF1C2" value="0"/>
+ <set name="CF1C4" value="0"/>
+ <set name="CF1C8" value="0"/>
+ <set name="CF2C1" value="0"/>
+ <set name="CF2C2" value="0"/>
+ <set name="CF2C4" value="0"/>
+ <set name="CF2C8" value="0"/>
+ <set name="CF3C1" value="0"/>
+ <set name="CF3C2" value="0"/>
+ <set name="CF3C4" value="0"/>
+ <set name="CF3C8" value="0"/>
+ <set name="CF1C1N" value=""/>
+ <set name="CF1C2N" value=""/>
+ <set name="CF1C4N" value=""/>
+ <set name="CF1C8N" value=""/>
+ <set name="CF2C1N" value=""/>
+ <set name="CF2C2N" value=""/>
+ <set name="CF2C4N" value=""/>
+ <set name="CF2C8N" value=""/>
+ <set name="CF3C1N" value=""/>
+ <set name="CF3C2N" value=""/>
+ <set name="CF3C4N" value=""/>
+ <set name="CF3C8N" value=""/>
+ <set name="CF1C1T" value="129"/>
+ <set name="CF2C1T" value="129"/>
+ <set name="CF2C1O" value="20"/>
+ <set name="CF3C1T" value="129"/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, unconditional -->
+ <command>AT+CCFC=0,4</command>
+ <response>OK</response>
+ <set name="CF0C1" value="0"/>
+ <set name="CF0C2" value="0"/>
+ <set name="CF0C4" value="0"/>
+ <set name="CF0C8" value="0"/>
+ <set name="CF0C1N" value=""/>
+ <set name="CF0C2N" value=""/>
+ <set name="CF0C4N" value=""/>
+ <set name="CF0C8N" value=""/>
+ <set name="CF0C1T" value="129"/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, unconditional voice -->
+ <command>AT+CCFC=0,4,,,1</command>
+ <response>OK</response>
+ <set name="CF0C1" value="0"/>
+ <set name="CF0C1N" value=""/>
+ <set name="CF0C1T" value="129"/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, unconditional data -->
+ <command>AT+CCFC=0,4,,,2</command>
+ <response>OK</response>
+ <set name="CF0C2" value="0"/>
+ <set name="CF0C2N" value=""/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, unconditional fax -->
+ <command>AT+CCFC=0,4,,,4</command>
+ <response>OK</response>
+ <set name="CF0C4" value="0"/>
+ <set name="CF0C4N" value=""/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, unconditional sms -->
+ <command>AT+CCFC=0,4,,,8</command>
+ <response>OK</response>
+ <set name="CF0C8" value="0"/>
+ <set name="CF0C8N" value=""/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, when busy -->
+ <command>AT+CCFC=1,4</command>
+ <response>OK</response>
+ <set name="CF1C1" value="0"/>
+ <set name="CF1C2" value="0"/>
+ <set name="CF1C4" value="0"/>
+ <set name="CF1C8" value="0"/>
+ <set name="CF1C1N" value=""/>
+ <set name="CF1C2N" value=""/>
+ <set name="CF1C4N" value=""/>
+ <set name="CF1C8N" value=""/>
+ <set name="CF1C1T" value="129"/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, when busy voice -->
+ <command>AT+CCFC=1,4,,,1</command>
+ <response>OK</response>
+ <set name="CF1C1" value="0"/>
+ <set name="CF1C1N" value=""/>
+ <set name="CF1C1T" value="129"/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, when busy data -->
+ <command>AT+CCFC=1,4,,,2</command>
+ <response>OK</response>
+ <set name="CF1C2" value="0"/>
+ <set name="CF1C2N" value=""/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, when busy fax -->
+ <command>AT+CCFC=1,4,,,4</command>
+ <response>OK</response>
+ <set name="CF1C4" value="0"/>
+ <set name="CF1C4N" value=""/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, when busy sms -->
+ <command>AT+CCFC=1,4,,,8</command>
+ <response>OK</response>
+ <set name="CF1C8" value="0"/>
+ <set name="CF1C8N" value=""/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, no reply -->
+ <command>AT+CCFC=2,4</command>
+ <response>OK</response>
+ <set name="CF2C1" value="0"/>
+ <set name="CF2C2" value="0"/>
+ <set name="CF2C4" value="0"/>
+ <set name="CF2C8" value="0"/>
+ <set name="CF2C1N" value=""/>
+ <set name="CF2C2N" value=""/>
+ <set name="CF2C4N" value=""/>
+ <set name="CF2C8N" value=""/>
+ <set name="CF2C1T" value="129"/>
+ <set name="CF2C1O" value="20"/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, no reply voice -->
+ <command>AT+CCFC=2,4,,,1</command>
+ <response>OK</response>
+ <set name="CF2C1" value="0"/>
+ <set name="CF2C1N" value=""/>
+ <set name="CF2C1T" value="129"/>
+ <set name="CF2C1O" value="20"/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, no reply data -->
+ <command>AT+CCFC=2,4,,,2</command>
+ <response>OK</response>
+ <set name="CF2C2" value="0"/>
+ <set name="CF2C2N" value=""/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, no reply fax -->
+ <command>AT+CCFC=2,4,,,4</command>
+ <response>OK</response>
+ <set name="CF2C4" value="0"/>
+ <set name="CF2C4N" value="*"/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, no reply sms -->
+ <command>AT+CCFC=2,4,,,8</command>
+ <response>OK</response>
+ <set name="CF2C8" value="0"/>
+ <set name="CF2C8N" value=""/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, not reachable -->
+ <command>AT+CCFC=3,4</command>
+ <response>OK</response>
+ <set name="CF3C1" value="0"/>
+ <set name="CF3C2" value="0"/>
+ <set name="CF3C4" value="0"/>
+ <set name="CF3C8" value="0"/>
+ <set name="CF3C1N" value=""/>
+ <set name="CF3C2N" value=""/>
+ <set name="CF3C4N" value=""/>
+ <set name="CF3C8N" value=""/>
+ <set name="CF3C1T" value="129"/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, not reachable voice -->
+ <command>AT+CCFC=3,4,,,1</command>
+ <response>OK</response>
+ <set name="CF3C1" value="0"/>
+ <set name="CF3C1N" value=""/>
+ <set name="CF3C1T" value="129"/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, not reachable data -->
+ <command>AT+CCFC=3,4,,,2</command>
+ <response>OK</response>
+ <set name="CF3C2" value="0"/>
+ <set name="CF3C2N" value=""/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, not reachable fax -->
+ <command>AT+CCFC=3,4,,,4</command>
+ <response>OK</response>
+ <set name="CF3C4" value="0"/>
+ <set name="CF3C4N" value=""/>
+</chat>
+
+<chat>
+ <!-- Erase forwarding, not reachable sms -->
+ <command>AT+CCFC=3,4,,,8</command>
+ <response>OK</response>
+ <set name="CF3C8" value="0"/>
+ <set name="CF3C8N" value=""/>
+</chat>
+<chat>
+ <!-- Query call forwarding number (unconditional) -->
+ <command>AT+CCFC=0,2</command>
+ <response>+CCFC: ${CF0C1},1,${CF0C1N},${CF0C1T}\n+CCFC: ${CF0C2},2,${CF0C2N}\n+CCFC: ${CF0C4},4,${CF0C4N}\n+CCFC: ${CF0C8},8,${CF0C8N}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query call forwarding number (when busy) -->
+ <command>AT+CCFC=1,2</command>
+ <response>+CCFC: ${CF1C1},1,${CF1C1N},${CF1C1T}\n+CCFC: ${CF1C2},2,${CF1C2N}\n+CCFC: ${CF1C4},4,${CF1C4N}\n+CCFC: ${CF1C8},8,${CF1C8N}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query call forwarding number (no reply) -->
+ <command>AT+CCFC=2,2</command>
+ <response>+CCFC: ${CF2C1},1,${CF2C1N},${CF2C1T},,,${CF2C1O}\n+CCFC: ${CF2C2},2,${CF2C2N}\n+CCFC: ${CF2C4},4,${CF2C4N}\n+CCFC: ${CF2C8},8,${CF2C8N}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query call forwarding number (not reachable) -->
+ <command>AT+CCFC=3,2</command>
+ <response>+CCFC: ${CF3C1},1,${CF3C1N},${CF3C1T}\n+CCFC: ${CF3C2},2,${CF3C2N}\n+CCFC: ${CF3C4},4,${CF3C4N}\n+CCFC: ${CF3C8},8,${CF3C8N}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query call waiting presentation mode -->
+ <command>AT+CCWA?</command>
+ <response>+CCWA: 1\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query call waiting -->
+ <command>AT+CCWA=1,2</command>
+ <response delay="2000">+CCWA: ${CWA_V},1\n+CCWA: ${CWA_D},2\n+CCWA: ${CWA_F},4\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query call waiting -->
+ <command>AT+CCWA=1,2,7</command>
+ <response delay="2000">+CCWA: ${CWA_V},1\n+CCWA: ${CWA_D},2\n+CCWA: ${CWA_F},4\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query call waiting -->
+ <command>AT+CCWA=1,2,1</command>
+ <response delay="2000">+CCWA: ${CWA_V},1\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query call waiting -->
+ <command>AT+CCWA=1,2,2</command>
+ <response delay="2000">+CCWA: ${CWA_D},2\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query call waiting -->
+ <command>AT+CCWA=1,2,4</command>
+ <response delay="2000">+CCWA: ${CWA_F},4\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query call waiting -->
+ <command>AT+CCWA=1,2,3</command>
+ <response delay="2000">+CCWA: ${CWA_V},1\n+CCWA: ${CWA_D},2\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query call waiting -->
+ <command>AT+CCWA=1,2,5</command>
+ <response delay="2000">+CCWA: ${CWA_V},1\n+CCWA: ${CWA_F},4\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query call waiting -->
+ <command>AT+CCWA=1,2,6</command>
+ <response delay="2000">+CCWA: ${CWA_D},2\n+CCWA: ${CWA_F},4\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported call waiting presentation modes -->
+ <command>AT+CCWA=?</command>
+ <response>+CCWA: (0,1)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Enable call waiting presentation mode -->
+ <command>AT+CCWA=1</command>
+ <response>OK</response>
+</chat>
+
+<!-- Disable call waiting -->
+<chat><command>AT+CCWA=1,0,1</command><response delay="1000">OK</response>
+ <set name="CWA_V" value="0"/>
+</chat>
+<chat><command>AT+CCWA=1,0,2</command><response delay="1000">OK</response>
+ <set name="CWA_D" value="0"/>
+</chat>
+<chat><command>AT+CCWA=1,0,3</command><response delay="1000">OK</response>
+ <set name="CWA_V" value="0"/>
+ <set name="CWA_D" value="0"/>
+</chat>
+<chat><command>AT+CCWA=1,0,4</command><response delay="1000">OK</response>
+ <set name="CWA_F" value="0"/>
+</chat>
+<chat><command>AT+CCWA=1,0,5</command><response delay="1000">OK</response>
+ <set name="CWA_V" value="0"/>
+ <set name="CWA_F" value="0"/>
+</chat>
+<chat><command>AT+CCWA=1,0,6</command><response delay="1000">OK</response>
+ <set name="CWA_D" value="0"/>
+ <set name="CWA_F" value="0"/>
+</chat>
+<chat><command>AT+CCWA=1,0,7</command><response delay="1000">OK</response>
+ <set name="CWA_V" value="0"/>
+ <set name="CWA_D" value="0"/>
+ <set name="CWA_F" value="0"/>
+</chat>
+<!-- Enable call waiting -->
+<chat><command>AT+CCWA=1,1,1</command><response delay="1000">OK</response>
+ <set name="CWA_V" value="1"/>
+</chat>
+<chat><command>AT+CCWA=1,1,2</command><response delay="1000">OK</response>
+ <set name="CWA_D" value="1"/>
+</chat>
+<chat><command>AT+CCWA=1,1,3</command><response delay="1000">OK</response>
+ <set name="CWA_V" value="1"/>
+ <set name="CWA_D" value="1"/>
+</chat>
+<chat><command>AT+CCWA=1,1,4</command><response delay="1000">OK</response>
+ <set name="CWA_F" value="1"/>
+</chat>
+<chat><command>AT+CCWA=1,1,5</command><response delay="1000">OK</response>
+ <set name="CWA_V" value="1"/>
+ <set name="CWA_F" value="1"/>
+</chat>
+<chat><command>AT+CCWA=1,1,6</command><response delay="1000">OK</response>
+ <set name="CWA_D" value="1"/>
+ <set name="CWA_F" value="1"/>
+</chat>
+<chat><command>AT+CCWA=1,1,7</command><response delay="1000">OK</response>
+ <set name="CWA_V" value="1"/>
+ <set name="CWA_D" value="1"/>
+ <set name="CWA_F" value="1"/>
+</chat>
+
+<chat>
+ <!-- Query unstructured supplementary service presentation mode -->
+ <command>AT+CUSD?</command>
+ <response>+CUSD: ${USD}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported unstructured supplementary presentation modes -->
+ <command>AT+CUSD=?</command>
+ <response>+CUSD: (0,1)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Initiate USSD query that is supported by the network -->
+ <command>AT+CUSD=1,"*225#",15</command>
+ <response>+CUSD: 0,"Thank you, your request is being processed. A message will be sent to your phone.",15\n\nOK</response>
+ <set name="USD" value="1"/>
+</chat>
+
+<chat>
+ <!-- Initiate USSD query that is not supported b the network -->
+ <command>AT+CUSD=1,*</command>
+ <response>+CUSD: 4\n\nOK</response>
+ <set name="USD" value="1"/>
+</chat>
+
+<chat>
+ <!-- Enable unstructured supplementary service presentation mode -->
+ <command>AT+CUSD=1</command>
+ <response>OK</response>
+ <set name="USD" value="1"/>
+</chat>
+
+<chat>
+ <!-- Disable unstructured supplementary service presentation mode -->
+ <command>AT+CUSD=0</command>
+ <response>OK</response>
+ <set name="USD" value="0"/>
+</chat>
+
+<chat>
+ <!-- Query Advice of charge value from the ME -->
+ <command>AT+CAOC=0</command>
+ <response>+CAOC: "${AOC}"\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- (De)activate the unsolicited reporting of CCM value -->
+ <command>AT+CAOC=*</command>
+ <response>OK</response>
+ <set name="AOCMODE" value="*"/>
+</chat>
+
+<chat>
+ <!-- Query CCM reporting mode command -->
+ <command>AT+CAOC?</command>
+ <response>+CAOC: ${AOCMODE}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query support for advice of charge command -->
+ <command>AT+CAOC=?</command>
+ <response>+CAOC: (0-2)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Reset Accumulated Call Meter command -->
+ <command>AT+CACM="${SIMPIN2VALUE}"</command>
+ <response>OK</response>
+ <set name="ACM" value="000000"/>
+</chat>
+
+<chat>
+ <!-- Query Accumulated Call Meter value -->
+ <command>AT+CACM?</command>
+ <response>+CACM: "${ACM}"\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query Accumulated Call Meter support command -->
+ <command>AT+CACM=?</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Set Accumulated Call Meter Maximum command -->
+ <command>AT+CAMM="*","${SIMPIN2VALUE}"</command>
+ <response>OK</response>
+ <set name="ACMMAX" value="*"/>
+</chat>
+
+<chat>
+ <!-- Query Accumulated Call Meter Maximum value -->
+ <command>AT+CAMM?</command>
+ <response>+CAMM: "${ACMMAX}"\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query Accumulated Call Meter Maximum support command -->
+ <command>AT+CAMM=?</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Set Price per Unit and Currency command -->
+ <command>AT+CPUC="*","${SIMPIN2VALUE}"</command>
+ <response>OK</response>
+ <set name="PPU" value="${*}"/>
+</chat>
+
+<chat>
+ <!-- Query Price per Unit and Currency command -->
+ <command>AT+CPUC?</command>
+ <response>+CPUC: "${PPU}"\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query Price per Unit and Currency support command -->
+ <command>AT+CPUC=?</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Set Call Meter maximum event mode command -->
+ <command>AT+CCWE=*</command>
+ <response>OK</response>
+ <set name="CWEMODE" value="*"/>
+</chat>
+
+<chat>
+ <!-- Query Call Meter maximum event mode command -->
+ <command>AT+CCWE?</command>
+ <response>+CCWE: ${CWEMODE}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query Call Meter maximum event support command -->
+ <command>AT+CCWE=?</command>
+ <response>+CCWE: (0,1)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supplementary service notifications -->
+ <command>AT+CSSN?</command>
+ <response>+CSSN: ${SSN}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query support for supplementary service notifications -->
+ <command>AT+CSSN=?</command>
+ <response>+CSSN: (0,1),(0,1)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set supplementary service notification flags -->
+ <command>AT+CSSN=*</command>
+ <response>OK</response>
+ <set name="SSN" value="*"/>
+</chat>
+
+<chat>
+ <!-- Query phone activity status -->
+ <command>AT+CPAS</command>
+ <response>+CPAS: ${PAS}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported phone activity status values -->
+ <command>AT+CPAS=?</command>
+ <response>+CPAS: (0-5)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query phone functionality setting -->
+ <command>AT+CFUN?</command>
+ <response>+CFUN: ${FUN}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported phone functionality settings -->
+ <command>AT+CFUN=?</command>
+ <response>+CFUN: (0-4)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set phone functionality -->
+ <command>AT+CFUN=*</command>
+ <response>OK</response>
+ <set name="FUN" value="*"/>
+</chat>
+
+<chat>
+ <!-- Query CSMS Support -->
+ <command>AT+CSMS=?</command>
+ <response>+CSMS=(0)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query CSMS Setting -->
+ <command>AT+CSMS?</command>
+ <response>+CSMS: 0,1,1,1\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set CSMS -->
+ <command>AT+CSMS=0</command>
+ <response>+CSMS: 1,1,1\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Supports? SMS Service Center Address -->
+ <command>AT+CSCA=?</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Query SMS Service Center Address -->
+ <command>AT+CSCA?</command>
+ <response>+CSCA: "${SCA}",${SCAT}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set SMS Service Center Address -->
+ <command>AT+CSCA="*",145</command>
+ <response>OK</response>
+ <set name="SCA" value="*"/>
+ <set name="SCAT" value="145"/>
+</chat>
+
+<chat>
+ <!-- Set SMS Service Center Address, unknwon -->
+ <command>AT+CSCA="*",129</command>
+ <response>OK</response>
+ <set name="SCA" value="*"/>
+ <set name="SCAT" value="129"/>
+</chat>
+
+<chat>
+ <!-- Check for which PIN is required -->
+ <command>AT+CPIN?</command>
+ <response delay="2000">+CPIN: ${PINNAME}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Enter PIN (success) -->
+ <command>AT+CPIN="${PINVALUE}"</command>
+ <response>+CPIN: READY\n\nOK</response>
+ <set name="PINNAME" value="READY"/>
+</chat>
+
+<chat>
+ <!-- Change PIN2 (success) -->
+ <command>AT+CPWD="P2","${PIN2VALUE}","*"</command>
+ <response>OK</response>
+ <set name="PIN2VALUE" value="${*}"/>
+</chat>
+
+<chat>
+ <!-- Change PIN using PUK (success) -->
+ <command>AT+CPIN="${PUKVALUE}","*"</command>
+ <response>+CPIN: READY\n\nOK</response>
+ <set name="PINVALUE" value="${*}"/>
+ <set name="PINNAME" value="READY"/>
+</chat>
+
+<chat>
+ <!-- Change PIN2 using PUK2 (success) -->
+ <command>AT+CPIN="${PUK2VALUE}","*"</command>
+ <response>+CPIN: READY\n\nOK</response>
+ <set name="PIN2VALUE" value="${*}"/>
+ <set name="PINNAME" value="READY"/>
+</chat>
+
+<chat>
+ <!-- Enter PIN (PUK failure when PINNAME was "SIM PUK" from start) -->
+ <command>AT+CPIN="*","*"</command>
+ <response>+CPIN: SIM PUK\nERROR</response>
+ <set name="PINNAME" value="SIM PUK"/>
+</chat>
+
+<chat>
+ <!-- Enter PIN (failure) -->
+ <command>AT+CPIN=*</command>
+ <response>+CPIN: SIM PIN\nERROR</response>
+ <set name="PINNAME" value="SIM PIN"/>
+ <switch name="pinretry1"/>
+</chat>
+
+<state name="pinretry1">
+
+ <chat>
+ <!-- Enter PIN (success) -->
+ <command>AT+CPIN="${PINVALUE}"</command>
+ <response>+CPIN: READY\n\nOK</response>
+ <set name="PINNAME" value="READY"/>
+ <switch name="default"/>
+ </chat>
+
+ <chat>
+ <!-- Change PIN using PUK (success) -->
+ <command>AT+CPIN="${PUKVALUE}","*"</command>
+ <response>+CPIN: READY\n\nOK</response>
+ <set name="PINVALUE" value="${*}"/>
+ <set name="PINNAME" value="READY"/>
+ <switch name="default"/>
+ </chat>
+
+ <chat>
+ <!-- Enter PIN (failure) -->
+ <command>AT+CPIN=*</command>
+ <response>+CPIN: SIM PIN\nERROR</response>
+ <set name="PINNAME" value="SIM PIN"/>
+ <switch name="pinretry2"/>
+ </chat>
+
+</state>
+
+<state name="pinretry2">
+
+ <chat>
+ <!-- Enter PIN (success) -->
+ <command>AT+CPIN="${PINVALUE}"</command>
+ <response>+CPIN: READY\n\nOK</response>
+ <set name="PINNAME" value="READY"/>
+ <switch name="default"/>
+ </chat>
+
+ <chat>
+ <!-- Change PIN using PUK (success) -->
+ <command>AT+CPIN="${PUKVALUE}","*"</command>
+ <response>+CPIN: READY\n\nOK</response>
+ <set name="PINVALUE" value="${*}"/>
+ <set name="PINNAME" value="READY"/>
+ <switch name="default"/>
+ </chat>
+
+ <chat>
+ <!-- Enter PIN (failure) -->
+ <command>AT+CPIN=*</command>
+ <response>+CPIN: SIM PUK\nERROR</response>
+ <set name="PINNAME" value="SIM PUK"/>
+ </chat>
+
+</state>
+
+<chat>
+ <!-- Query battery charge -->
+ <command>AT+CBC</command>
+ <response>+CBC: ${BC}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported battery charge values -->
+ <command>AT+CBC=?</command>
+ <response>+CBC: (0,1,2,3),(1-100)\n\nOK</response>
+</chat>
+
+<chat>
+ <command>AT+CCED=1,8</command>
+ <response>OK\n+CSQ: ${SQ}</response>
+</chat>
+
+<chat>
+ <!-- Query signal quality (default reported as "not detectable") -->
+ <command>AT+CSQ</command>
+ <response>+CSQ: ${SQ}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported signal quality values -->
+ <command>AT+CSQ=?</command>
+ <response>+CSQ: (0-31,99),(0-7,99)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query mobile equipment control mode -->
+ <command>AT+CMEC?</command>
+ <response>+CMEC: ${MEC}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported mobile equipment control modes -->
+ <command>AT+CMEC=?</command>
+ <response>+CMEC: (0-2),(0-2),(0-2)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set mobile equipment control mode -->
+ <command>AT+CMEC=*</command>
+ <response>OK</response>
+ <set name="MEC" value="*"/>
+</chat>
+
+<chat>
+ <!-- Keypad control (ignored in this version) -->
+ <command>AT+CKPD=*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Display control (ignored in this version) -->
+ <command>AT+CDIS*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Indicator control (ignored in this version) -->
+ <command>AT+CIND*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Query mobile equipment event reporting mode -->
+ <command>AT+CMER?</command>
+ <response>+CMER: ${MER}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported mobile equipment event reporting modes -->
+ <command>AT+CMER=?</command>
+ <response>+CMER: (0-3),(0-2),(0-2),(0-2),(0-1)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set mobile equipment event reporting mode -->
+ <command>AT+CMER=*</command>
+ <response>OK</response>
+ <set name="MER" value="*"/>
+</chat>
+
+<chat>
+ <!-- Clock (always ignored) -->
+ <command>AT+CCLK*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Alarm (always ignored) -->
+ <command>AT+CALA*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Generic SIM access (not supported yet) -->
+ <command>AT+CSIM*</command>
+ <response>ERROR</response>
+</chat>
+
+<!-- Band Selection -->
+
+<chat>
+ <!-- Query the current band -->
+ <command>AT*TBAND?</command>
+ <response>*TBAND: ${BAND}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query the list of available bands -->
+ <command>AT*TBAND=?</command>
+ <response>*TBAND: "${BAND0}"\n*TBAND: "${BAND1}"\n*TBAND: "${BAND2}"\n*TBAND: "${BAND3}"\n*TBAND: "${BAND4}"\n*TBAND: "${BAND5}"\n*TBAND: "${BAND6}"\n*TBAND: "${BAND7}"\n*TBAND: "${BAND8}"\n*TBAND: "${BAND9}"\n*TBAND: "${BANDA}"\n*TBAND: "${BANDB}"\n*TBAND: "${BANDC}"\n*TBAND: "${BANDD}"\n*TBAND: "${BANDE}"\n*TBAND: "${BANDF}"\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set the current band to automatic -->
+ <command>AT*TBAND=0</command>
+ <response>OK</response>
+ <set name="BAND" value="0"/>
+</chat>
+
+<chat>
+ <!-- Set the current band (bad band name) -->
+ <command>AT*TBAND=1,""</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- Set the current band to BAND0 -->
+ <command>AT*TBAND=1,"${BAND0}"</command>
+ <response>OK</response>
+ <set name="BAND" value="1,"${BAND0}""/>
+</chat>
+
+<chat>
+ <!-- Set the current band to BAND1 -->
+ <command>AT*TBAND=1,"${BAND1}"</command>
+ <response>OK</response>
+ <set name="BAND" value="1,"${BAND1}""/>
+</chat>
+
+<chat>
+ <!-- Set the current band to BAND2 -->
+ <command>AT*TBAND=1,"${BAND2}"</command>
+ <response>OK</response>
+ <set name="BAND" value="1,"${BAND2}""/>
+</chat>
+
+<chat>
+ <!-- Set the current band to BAND3 -->
+ <command>AT*TBAND=1,"${BAND3}"</command>
+ <response>OK</response>
+ <set name="BAND" value="1,"${BAND3}""/>
+</chat>
+
+<chat>
+ <!-- Set the current band to BAND4 -->
+ <command>AT*TBAND=1,"${BAND4}"</command>
+ <response>OK</response>
+ <set name="BAND" value="1,"${BAND4}""/>
+</chat>
+
+<chat>
+ <!-- Set the current band to BAND5 -->
+ <command>AT*TBAND=1,"${BAND5}"</command>
+ <response>OK</response>
+ <set name="BAND" value="1,"${BAND5}""/>
+</chat>
+
+<chat>
+ <!-- Set the current band to BAND6 -->
+ <command>AT*TBAND=1,"${BAND6}"</command>
+ <response>OK</response>
+ <set name="BAND" value="1,"${BAND6}""/>
+</chat>
+
+<chat>
+ <!-- Set the current band to BAND7 -->
+ <command>AT*TBAND=1,"${BAND7}"</command>
+ <response>OK</response>
+ <set name="BAND" value="1,"${BAND7}""/>
+</chat>
+
+<chat>
+ <!-- Set the current band to BAND8 -->
+ <command>AT*TBAND=1,"${BAND8}"</command>
+ <response>OK</response>
+ <set name="BAND" value="1,"${BAND8}""/>
+</chat>
+
+<chat>
+ <!-- Set the current band to BAND9 -->
+ <command>AT*TBAND=1,"${BAND9}"</command>
+ <response>OK</response>
+ <set name="BAND" value="1,"${BAND9}""/>
+</chat>
+
+<chat>
+ <!-- Set the current band to BANDA -->
+ <command>AT*TBAND=1,"${BANDA}"</command>
+ <response>OK</response>
+ <set name="BAND" value="1,"${BANDA}""/>
+</chat>
+
+<chat>
+ <!-- Set the current band to BANDB -->
+ <command>AT*TBAND=1,"${BANDB}"</command>
+ <response>OK</response>
+ <set name="BAND" value="1,"${BANDB}""/>
+</chat>
+
+<chat>
+ <!-- Set the current band to BANDC -->
+ <command>AT*TBAND=1,"${BANDC}"</command>
+ <response>OK</response>
+ <set name="BAND" value="1,"${BANDC}""/>
+</chat>
+
+<chat>
+ <!-- Set the current band to BANDD -->
+ <command>AT*TBAND=1,"${BANDD}"</command>
+ <response>OK</response>
+ <set name="BAND" value="1,"${BANDD}""/>
+</chat>
+
+<chat>
+ <!-- Set the current band to BANDE -->
+ <command>AT*TBAND=1,"${BANDE}"</command>
+ <response>OK</response>
+ <set name="BAND" value="1,"${BANDE}""/>
+</chat>
+
+<chat>
+ <!-- Set the current band to BANDF -->
+ <command>AT*TBAND=1,"${BANDF}"</command>
+ <response>OK</response>
+ <set name="BAND" value="1,"${BANDF}""/>
+</chat>
+
+<chat>
+ <!-- Set the current band (unknown band name) -->
+ <command>AT*TBAND=1,*</command>
+ <response>ERROR</response>
+</chat>
+
+<!-- GSM 07.07: Phone book storage -->
+
+<!-- Phonebook commands are implemented in the phone simulator source code -->
+
+<phonebook name="SM" size="150">
+ <entry index="1" number="123" name="ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEF"/>
+ <entry index="2" number="24685" name="Adam Zucker/m"/>
+ <entry index="3" number="48759" name="Bradley Young"/>
+ <entry index="4" number="45575" name="Chuck Woodbury/w"/>
+ <entry index="5" number="57968" name="Chuck Woodbury/h"/>
+ <entry index="6" number="48959" name="Darren Umber"/>
+ <entry index="7" number="48759" name="Courtney Umber/h"/>
+ <entry index="8" number="42887" name="Courtney Umber/m"/>
+ <entry index="9" number="87683" name="Evan Ungar"/>
+ <entry index="10" number="15798" name="Frank Twedell"/>
+ <entry index="11" number="12497" name="Greg Smith/w"/>
+ <entry index="12" number="89765" name="Greg Smith/m"/>
+ <entry index="13" number="12498" name="Greg Smith/o"/>
+ <entry index="14" number="34967" name="Greg Smith/h"/>
+ <entry index="15" number="57682" name="Henry Ross/m"/>
+ <entry index="16" number="78952" name="Henry Ross/h"/>
+ <entry index="17" number="44585" name="Ivan Prischmann"/>
+ <entry index="19" number="13553" name="Jack Odegard/h"/>
+ <entry index="20" number="49755" name="Jack Odegard/m"/>
+ <entry index="21" number="57683" name="Rachel Odegard"/>
+ <entry index="22" number="14573" name="Kevin Norris"/>
+ <entry index="23" number="48468" name="Logan Minkoff"/>
+ <entry index="24" number="48468" name="Tracy Minkoff"/>
+ <entry index="25" number="89624" name="Matthew LeBlanc"/>
+ <entry index="26" number="57439" name="Nathan Kelly/m"/>
+ <entry index="27" number="13596" name="Nathan Kelly/w"/>
+ <entry index="28" number="18279" name="Paul Jacobs"/>
+ <entry index="29" number="62755" name="Robert Irving"/>
+ <entry index="30" number="13466" name="Sean Hunt/h"/>
+ <entry index="31" number="59786" name="Sean Hunt/m"/>
+ <entry index="32" number="13664" name="Thomas Grayson"/>
+ <entry index="33" number="77957" name="Victor Frey"/>
+ <entry index="34" number="14535" name="Wade Emerson"/>
+ <entry index="35" number="98735" name="Monica Emerson"/>
+ <entry index="36" number="65865" name="Dorathy Foster"/>
+ <entry index="37" number="66573" name="Gina Haylock/m"/>
+ <entry index="38" number="33846" name="Gina Haylock/w"/>
+ <entry index="39" number="35933" name="BuyIt"/>
+ <entry index="40" number="2468DD" name="Wildcard"/>
+ <entry index="101" number="10101" name="GSM Test"/>
+ <entry index="121" number="10101" name="Test for 75 characters a line: ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+ <entry index="122" number="+12345" name="Test for International number"/>
+ <entry index="123" number="12345" name="Test for slash: AB;CD,EFG"/>
+ <entry index="124" number="800820" name="abc/h" hidden="1" group="FSF" adnumber="+800821"/>
+ <entry index="125" number="800820" name="def/m" hidden="1" group="FSF" adnumber="+800821" secondtext="abd" email="ofono@ofono.org" sip_uri="ofono_sip@ofono.org" tel_uri="ofono_tel@ofono.org"/>
+ <entry index="126" number="800820" name="上海/m" hidden="1" group="英特尔" adnumber="+800821"/>
+</phonebook>
+
+<phonebook name="FD" size="20">
+ <entry index="1" number="+1357924680" name="FDN111"/>
+ <entry index="2" number="24680" name="FDN222"/>
+ <entry index="3" number="+123465678901234567890" name="FDN333"/>
+ <entry index="4" number="112" name="Emergency"/>
+</phonebook>
+
+<phonebook name="SN" size="50">
+ <entry index="1" number="013" name="Directory Assistance"/>
+ <entry index="2" number="121" name="Call Minding"/>
+</phonebook>
+
+<!-- GSM 07.05: SMS related commands -->
+
+<chat>
+ <!-- Query SMS message format -->
+ <command>AT+CMGF?</command>
+ <response>+CMGF: ${CMGF}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query SMS message format values -->
+ <command>AT+CMGF=?</command>
+ <response>+CMGF: (0,1)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set SMS message format to PDU -->
+ <command>AT+CMGF=0</command>
+ <response>OK</response>
+ <set name="CMGF" value="0"/>
+</chat>
+
+<chat>
+ <!-- Set SMS message format to text -->
+ <command>AT+CMGF=1</command>
+ <response>OK</response>
+ <set name="CMGF" value="1"/>
+</chat>
+
+<chat>
+ <!-- Send an SMS message -->
+ <command>AT+CMGS=*</command>
+ <response eol="false">> </response>
+ <switch name="smsread"/>
+</chat>
+
+<state name="smsread">
+ <!-- Read an SMS PDU sent by the client (which is assumed
+ to start with an empty service centre address). Messages
+ sent to "199" are reflected back into the incoming queue -->
+ <chat>
+ <command>00110003A191F9*</command>
+ <response>OK\n+CMTI: "ME",1</response>
+ <switch name="default"/>
+ <set name="MSGLIST" value="+CMGL: 1,0,,999\n00110003A191F9${*}\n"/>
+ <set name="MSGCOUNT" value="1"/>
+ </chat>
+ <chat>
+ <!-- messages with the user data header bit set -->
+ <command>00510003A191F9*</command>
+ <response>OK\n+CMTI: "ME",1</response>
+ <switch name="default"/>
+ <set name="MSGLIST" value="+CMGL: 1,0,,999\n00510003A191F9${*}\n"/>
+ <set name="MSGCOUNT" value="1"/>
+ </chat>
+
+ <chat>
+ <command wildcard="true">00*</command>
+ <response>+CMGS: 0\n\nOK</response>
+ <switch name="default"/>
+ </chat>
+</state>
+
+<chat>
+ <!-- CPMS Support -->
+ <command>AT+CPMS=?</command>
+ <response>+CPMS: ("SM","ME"),("SM","ME"),("SM")\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Request the number of messages in the incoming SIM queue -->
+ <command>AT+CPMS="SM","SM","SM"</command>
+ <response>+CPMS: 0,99,${MSGCOUNT},99,${MSGCOUNT},99\n\nOK</response>
+ <set name="MSGLISTCOPY" value=""/>
+ <set name="MSGMEM" value="SM"/>
+</chat>
+
+<chat>
+ <!-- Request the number of messages in the incoming ordinary queue -->
+ <command>AT+CPMS="ME","ME","SM"</command>
+ <response>+CPMS: ${MSGCOUNT},99,${MSGCOUNT},99,${MSGCOUNT},99\n\nOK</response>
+ <set name="MSGLISTCOPY" value="${MSGLIST}"/>
+ <set name="MSGMEM" value="ME"/>
+</chat>
+
+<chat>
+ <!-- Query CGDCONT support -->
+ <command>AT+CGDCONT=?</command>
+ <response>+CGDCONT: (5-10),("IP"),,,(0-1),(0-1)\n+CGDCONT: (5-10),("IPV6"),,,(0-1),(0-1)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Fake attach -->
+ <command>AT+CGATT=1</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Fake detach -->
+ <command>AT+CGATT=0</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Query CNMI support -->
+ <command>AT+CNMI=?</command>
+ <response>+CNMI: (0,1,2,3),(0,1),(0,1,2),(0),(0,1)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Enable new message indications -->
+ <command>AT+CNMI=*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- List the messages in an SMS message store -->
+ <command>AT+CMGL*</command>
+ <listSMS/>
+</chat>
+
+<chat>
+ <!-- Delete a particular message from an SMS message store -->
+ <command>AT+CMGD=*</command>
+ <deleteSMS/>
+</chat>
+
+<chat>
+ <!-- Reads a particular message from the SMS message store -->
+ <command>AT+CMGR=*</command>
+ <readSMS/>
+</chat>
+
+<chat>
+ <!-- Query Cell broadcast service presentation mode -->
+ <command>AT+CSCB=?</command>
+ <response>+CSCB: (0-1)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set cell broadcast channels -->
+ <command>AT+CSCB=0,*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Remove cell broadcast channels -->
+ <command>AT+CSCB=1,*</command>
+ <response>OK</response>
+</chat>
+
+<!-- GSM 07.07: Mobile equipment errors -->
+
+<chat>
+ <!-- Query mobile equipment error reporting mode -->
+ <command>AT+CMEE?</command>
+ <response>+CMEE: ${MEE}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query available mobile equipment error reporting modes -->
+ <command>AT+CMEE=?</command>
+ <response>+CMEE: (0-2)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set mobile equipment error reporting mode (ignored) -->
+ <command>AT+CMEE=?</command>
+ <response>OK</response>
+ <set name="MEE" value="*"/>
+</chat>
+
+<!-- GSM 07.07: Voice-related commands -->
+
+<chat>
+ <!-- Query supported levels -->
+ <command>AT+CLVL=?</command>
+ <response>+CLVL: (100-150)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set sound level -->
+ <command>AT+CLVL=*</command>
+ <response>OK</response>
+ <set name="LVL" value="*"/>
+</chat>
+
+<chat>
+ <!-- Read sound level -->
+ <command>AT+CLVL?</command>
+ <response>+CLVL: ${LVL}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Query supported levels -->
+ <command>AT+CMUT=?</command>
+ <response>+CMUT: (0,1)\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Set sound level -->
+ <command>AT+CMUT=*</command>
+ <response>OK</response>
+ <set name="MUT" value="*"/>
+</chat>
+
+<chat>
+ <!-- Read sound level -->
+ <command>AT+CMUT?</command>
+ <response>+CMUT: ${MUT}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Select operation class (ignored) -->
+ <command>AT+FCLASS*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Buffer threshold (not supported yet) -->
+ <command>AT+VBT*</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- Calling number ID presentation (use AT+CLIP instead) -->
+ <command>AT+VCID*</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- Receive gain selector (not supported yet) -->
+ <command>AT+VGR*</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- Transmit gain selector (not supported yet) -->
+ <command>AT+VGT*</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- Initialize voice parameters (not supported yet) -->
+ <command>AT+VGT*</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- Control inactivity timer (not supported yet) -->
+ <command>AT+VIT*</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- Line selection (not supported yet) -->
+ <command>AT+VLS*</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- Receive data state (not supported yet) -->
+ <command>AT+VRX*</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- Select compression method (not supported yet) -->
+ <command>AT+VSM*</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- DTMF tone generation (ignored) -->
+ <command>AT+VTS*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- DTMF tone duration (not supported by GSM phones) -->
+ <command>AT+VTD*</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- Transmit data state (not supported yet) -->
+ <command>AT+VTX*</command>
+ <response>ERROR</response>
+</chat>
+
+<!-- Modem compatibility commands for phones that support data services -->
+
+<chat>
+ <!-- Select tone dialing (ignored by GSM phones) -->
+ <command>ATT</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Select pulse dialing (ignored by GSM phones) -->
+ <command>ATP</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Answer modem call (we don't support modem calls yet) -->
+ <command>ATA</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- Hangup modem call, with options -->
+ <command>ATH*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Return to online state (we don't support modem calls yet) -->
+ <command>ATO*</command>
+ <response>ERROR</response>
+</chat>
+
+<chat>
+ <!-- Set modem option -->
+ <command>ATS*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Set speaker loudness -->
+ <command>ATL*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Set speaker mode -->
+ <command>ATM*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Modem identifier -->
+ <command>ATI</command>
+ <response>${ID}\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Control data compression options -->
+ <command>AT+DS*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Control extended modem reporting codes -->
+ <command>AT+DR*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Circuit 109 behaviour -->
+ <command>AT&C*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Circuit 108 behaviour -->
+ <command>AT&D*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Set to factory defaults -->
+ <command>AT&F*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Country of installation -->
+ <command>AT+GCI</command>
+ <response>TROLLVILLE\n\nOK</response>
+</chat>
+
+<chat>
+ <!-- Global object identification (ignored) -->
+ <command>AT+GOI</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Character framing (ignored) -->
+ <command>AT+ICF*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Local flow control (ignored) -->
+ <command>AT+IFC*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Local rate reporting (ignored) -->
+ <command>AT+ILRR*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- DTE rate (ignored) -->
+ <command>AT+IPR*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Command echo (ignored) -->
+ <command>ATE*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Result code suppression (ignored) -->
+ <command>ATQ*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Result code response format (ignored) -->
+ <command>ATV*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Result code selection and progress monitoring (ignored) -->
+ <command>ATX*</command>
+ <response>OK</response>
+</chat>
+
+<chat>
+ <!-- Reset to default configuration -->
+ <command>ATZ*</command>
+ <response>OK</response>
+</chat>
+
+<!-- List of all supported commands -->
+
+<chat>
+ <command>AT*</command>
+ <alias>AT+GCAP</alias>
+ <response>+CGMI
++CGMM
++CGMR
++CGSN
++CSCS
++WS46
++CSTA
++CHUP
++CBST
++CRLP
++CR
++CEER
++CRC
++CNUM
++CREG
++COPS
++CLCK
++CPWD
++CLIP
++CLIR
++COLP
++CCUG
++CCFC
++CCWA
++CHLD
++CTFR
++CUSD
++CAOC
++CACM
++CAMM
++CPUC
++CCWE
++CSSN
++CPAS
++CFUN
++CPIN
++CBC
++CSQ
++CMEC
++CKPD
++CDIS
++CIND
++CMER
++CCLK
++CALA
++CSIM
++CPBS
++CPBR
++CPBF
++CPBW
++CMEE
++CMGF
++CMGS
++DR
++DS
++GCAP
++GCI
++GMI
++GMM
++GMR
++GOI
++GSN
++ICF
++IFC
++ILRR
++IPR
++FCLASS
++VBT
++VCID
++VGR
++VGT
++VIP
++VIT
++VLS
++VRX
++VSM
++VTS
++VTD
++VTX
+*ECAM
+A
+D
+E
+H
+I
+L
+M
+O
+P
+Q
+S0
+S3
+S4
+S5
+S6
+S7
+S8
+S10
+T
+V
+X
+Z
+&C
+&D
+&F
+*
+OK</response>
+</chat>
+
+<!-- SIM filesystem definition, based on standard test strings
+ presented in GSM 11.10-4. This is primarily intended for
+ testing icon definitions within SIM toolkit applications -->
+
+<filesystem>
+
+<file name="EFiccid">
+ 98 94 22 02 47 54 21 24 60 F6
+</file>
+
+<file name="EFimsi">
+ 08 09 10 10 10 32 54 76 98
+</file>
+
+<file name="EFimg" recordsize="20">
+ 01 2E 28 11 4F 01 00 00 00 E8 FF FF FF FF FF FF FF FF FF FF
+ 01 08 08 21 4F 02 00 00 00 1F FF FF FF FF FF FF FF FF FF FF
+ 01 18 10 11 4F 03 00 00 00 32 FF FF FF FF FF FF FF FF FF FF
+ 01 08 08 11 4F 04 00 00 00 0A FF FF FF FF FF FF FF FF FF FF
+ 01 05 05 11 4F 05 00 00 00 08 FF FF FF FF FF FF FF FF FF FF
+</file>
+
+<file name="EFimg1">
+ 2E 28 00 00 00 00 00 00 00 01 FF 80 00 00 00 0F
+ FF 00 00 00 00 77 FE 00 00 00 01 BF F8 00 00 00
+ 06 FF E0 00 00 00 1A 03 80 00 00 00 6B F6 BC 00
+ 00 01 AF D8 38 00 00 06 BF 60 20 00 00 1A FD 80
+ 40 00 00 6B F6 00 80 00 01 A0 1F 02 00 00 06 FF
+ E4 04 00 00 1B FF 90 10 00 00 6D EE 40 40 00 01
+ BF F9 01 00 00 6F FF E4 04 00 00 1B FF 90 10 00
+ 00 6F FE 40 40 00 01 BF F9 01 00 00 06 FF E6 04
+ 00 00 1B FF 88 10 00 00 6F FE 20 40 00 01 BF F8
+ 66 00 00 06 FF E0 F0 00 00 1B FF 80 80 00 00 7F
+ FE 00 00 00 03 00 0C 00 00 00 1F FF F8 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 1C 21 08 44 EE 00 48 C4 31 92 20 01 25 11 45 50
+ 80 07 14 45 15 43 80 12 71 1C 4D 08 00 4A 24 89
+ 32 20 01 C8 9E 24 4E E0
+</file>
+
+<file name="EFimg2">
+ 08 08 02 03 00 16 AA AA 80 02 85 42 81 42 81 42
+ 81 52 80 02 AA AA FF 00 00 00 FF 00 00 00 FF
+</file>
+
+<file name="EFimg3">
+ 18 10 FF FF FF 80 00 01 80 00 01 80 00 01 8F 3C
+ F1 89 20 81 89 20 81 89 20 F1 89 20 11 89 20 11
+ 89 20 11 8F 3C F1 80 00 01 80 00 01 80 00 01 FF
+ FF FF
+</file>
+
+<file name="EFimg4">
+ 08 08 FF 03 A5 99 99 A5 C3 FF
+</file>
+
+<file name="EFimg5">
+ 05 05 FE EB BF FF FF FF
+</file>
+
+<file name="EFspn">
+ 03 6F 46 6F 6E 6F FF FF FF FF FF FF FF FF FF FF FF
+</file>
+
+<file name="EFmsisdn" recordsize="28">
+ 4F 57 4E 20 4E 55 4D 42 45 52 FF FF FF FF
+ 07 81 53 58 10 32 54 76 FF FF FF FF FF FF
+ FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+ FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+ FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+ FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+</file>
+
+<file name="EFust">
+ 3C 00 FC 0C 00 00 7F DF 00 31 0F C0
+</file>
+
+<file name="EFcbmi">
+ 03 E7 FF FF FF FF FF FF FF FF FF FF FF FF
+</file>
+
+<file name="EFcbmid">
+ 10 01 FF FF FF FF FF FF FF FF FF FF FF FF
+</file>
+
+<file name="EFcbmir">
+ 00 32 00 32 FF FF FF FF FF FF FF FF FF FF FF FF
+</file>
+
+<!-- Record 1
+ Length of alpha identifier: 32 chars
+ Alpha Identifier: "ABC"
+ Length of BCD number: "03"
+ TON & NPI: Telephony & Unknown
+ Dialed Number: 123
+ CCI: None
+ EXT2: None
+
+ Record 2
+ Length of alpha identifier: 32 chars
+ Alpha Identifier: "DEF"
+ Length of BCD number "04"
+ TON & NPI: Telephony & Unknown
+ Dialed Number: 9876
+ CCI: None
+ EXT2: None
+-->
+<file name="EFfdn" recordsize="48">
+ 41 42 43 FF FF FF FF FF FF FF FF FF FF FF FF FF
+ FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+ 03 81 21 F3 FF FF FF FF FF FF FF FF FF FF 44 45
+ 46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+ FF FF FF FF FF FF FF FF FF FF FF FF FF FF 03 81
+ 89 67 FF FF FF FF FF FF FF FF FF FF
+</file>
+
+<file name="EFbdn" recordsize="48">
+ 43 42 41 FF FF FF FF FF FF FF FF FF FF FF FF FF
+ FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+ 03 81 23 F1 FF FF FF FF FF FF FF FF FF FF
+</file>
+
+<file name="EFecc" recordsize="4">
+ 01 02 FF 00
+ 11 F2 FF 00
+</file>
+
+<file name="EFsmsp" recordsize="28">
+ FD FF FF FF FF FF FF FF FF FF FF FF FF 09
+ 91 11 22 33 44 55 66 77 F8 FF FF FF FF FF
+</file>
+
+<file name="EFspdi">
+ A3 05 80 03 42 F6 18
+</file>
+
+<file name="EFopl" recordsize="8">
+ 42 F6 1D 00 00 FF FE 01
+</file>
+
+<file name="EFpnn" recordsize="20">
+ 43 0A 00 54 75 78 20 43 6F 6D 6D FF FF FF FF FF FF FF FF FF
+ 43 05 00 4C 6F 6E 67 45 06 00 53 68 6F 72 74 FF FF FF FF FF
+</file>
+
+<file name="EFmwis" recordsize="6">
+ 01 01 00 00 00 00
+</file>
+
+<file name="EFmbdn" recordsize="48">
+ FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+ FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+ FF FF 03 81 76 98 FF FF FF FF FF FF FF FF FF FF
+</file>
+
+<file name="EFmbi" recordsize="5">
+ 01 00 00 00 00
+</file>
+
+<file name="EFad">
+ 00 FF FF 02
+</file>
+
+<file name="EFli">
+ 00 01 02 03 04 05
+</file>
+
+<file name="EFpl">
+ FF FF FF FF FF FF
+</file>
+
+<file name="EFsdn" recordsize="28">
+ 2E 65 44 65 73 6B FF FF FF FF FF FF FF FF
+ 04 FF 1A 01 FB FF FF FF FF FF FF FF FF FF
+ 31 31 32 FF FF FF FF FF FF FF FF FF FF FF
+ 03 81 11 F2 FF FF FF FF FF FF FF FF FF FF
+ 45 6D 65 72 67 65 6E 63 79 FF FF FF FF FF
+ 03 81 99 F9 FF FF FF FF FF FF FF FF FF FF
+ 50 6F 6C 69 63 65 FF FF FF FF FF FF FF FF
+ 03 81 99 F7 FF FF FF FF FF FF FF FF FF FF
+ 46 69 72 65 6D 65 6E FF FF FF FF FF FF FF
+ 03 81 99 F8 FF FF FF FF FF FF FF FF FF FF
+ 53 65 61 20 65 6D 65 72 67 65 6E 63 79 FF
+ 07 91 84 06 11 00 01 F0 FF FF FF FF FF FF
+ 4D 6F 75 6E 74 61 69 6E 20 65 6D 65 72 2E
+ 07 91 84 06 11 00 03 F0 FF FF FF FF FF FF
+ 2E 48 45 4C 50 20 44 45 53 4B FF FF FF FF
+ 03 81 62 10 FF FF FF FF FF FF FF FF FF FF
+ 2E 52 45 43 48 41 52 47 45 FF FF FF FF FF
+ 03 81 55 55 FF FF FF FF FF FF FF FF FF FF
+ 2E 43 72 65 64 69 74 20 6C 65 66 74 FF FF
+ 04 FF 1A 52 FB FF FF FF FF FF FF FF FF FF
+ 2E 45 6E 67 6C 69 73 68 FF FF FF FF FF FF
+ 05 FF 1A 50 1A B0 FF FF FF FF FF FF FF FF
+ 2E 53 70 61 6E 69 73 68 FF FF FF FF FF FF
+ 05 FF 1A 50 2A B0 FF FF FF FF FF FF FF FF
+ 2E 56 6D 61 69 6C 2E 20 73 74 61 74 75 73
+ 04 FF 1A 22 FB FF FF FF FF FF FF FF FF FF
+ 2E 56 6F 69 63 65 6D 61 69 6C 20 6F 66 66
+ 05 FF 1A 22 0A B0 FF FF FF FF FF FF FF FF
+ 2E 56 6F 69 63 65 6D 61 69 6C 20 6F 6E FF
+ 05 FF 1A 22 1A B1 FF FF FF FF FF FF FF FF
+ 2E 52 6F 61 6D 69 6E 67 20 6F 6E FF FF FF
+ 07 FF 1A 10 1A A1 10 FB FF FF FF FF FF FF
+ 2E 52 6F 61 6D 69 6E 67 20 6F 66 66 FF FF
+ 07 FF 1A 10 0A A0 10 FB FF FF FF FF FF FF
+ 2E 47 50 52 53 2F 4D 4D 53 20 6F 6E FF FF
+ 07 FF 1A 10 1A A1 20 FB FF FF FF FF FF FF
+ 2E 47 50 52 53 2F 4D 4D 53 20 6F 66 66 FF
+ 07 FF 1A 10 0A A0 20 FB FF FF FF FF FF FF
+ 2E 41 63 74 2E 20 73 65 72 76 69 63 65 73
+ 04 FF 1A 10 FB FF FF FF FF FF FF FF FF FF
+ 2E 53 65 6C 65 63 74 20 54 45 41 4D 37 FF
+ 05 FF 1A 74 7A B0 FF FF FF FF FF FF FF FF
+ 2E 53 65 6C 65 63 74 20 45 41 53 59 FF FF
+ 05 FF 1A 74 8A B0 FF FF FF FF FF FF FF FF
+ 2E 56 6F 69 63 65 6D 61 69 6C FF FF FF FF
+ 07 91 84 06 21 22 22 F2 FF FF FF FF FF FF
+ 2E 56 6F 69 63 65 20 61 63 63 65 73 73 FF
+ 07 91 84 06 11 40 44 F4 FF FF FF FF FF FF
+ FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+ FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+</file>
+
+<file name="EFcphs_info">
+ 02 3C 03 00
+</file>
+
+<file name="EFcphs_mbdn" recordsize="48">
+ FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+ FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+ FF FF 03 81 76 90 FF FF FF FF FF FF FF FF FF FF
+</file>
+
+<file name="EFcphs_mwis">
+ 5A 55
+</file>
+
+</filesystem>
+
+</simulator>
--
1.7.0.4
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [Patch]: Reducing clutter in the src directory + Introduction of HACKING file
2010-05-27 22:31 [Patch]: Reducing clutter in the src directory + Introduction of HACKING file Naresh Mehta
@ 2010-05-28 2:46 ` Marcel Holtmann
2010-05-28 8:59 ` Naresh Mehta
2010-05-28 6:57 ` Kalle Valo
1 sibling, 1 reply; 6+ messages in thread
From: Marcel Holtmann @ 2010-05-28 2:46 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 847 bytes --]
Hi Naresh,
> I have re-organized the directory structure inside phonesim for easy
> management of respective files. Everything was in src directory and as
> the simulator will grow in functionality, it will become all the more
> cluttered and not so pretty to handle. I have updated the Makefile.am
> to reflect the changes and have also tested most of the phonesim
> functionality.
actually all the includes are local to phonesim and that is why they are
inside the src/ directory.
I also don't see the clutter you are talking about. The *.h are named
the same as their *.cpp files and are side by side. I actually call that
pretty clean.
> I have also added a HACKING file for people to quickly understand and
> grasp the concept and execution of phonesim.
Please send that as a separate patch.
Regards
Marcel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Patch]: Reducing clutter in the src directory + Introduction of HACKING file
2010-05-28 2:46 ` Marcel Holtmann
@ 2010-05-28 8:59 ` Naresh Mehta
2010-05-29 9:56 ` Marcel Holtmann
0 siblings, 1 reply; 6+ messages in thread
From: Naresh Mehta @ 2010-05-28 8:59 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 832 bytes --]
On Fri, May 28, 2010 at 4:46 AM, Marcel Holtmann <marcel@holtmann.org> wrote:
> Hi Naresh,
>
>
> actually all the includes are local to phonesim and that is why they are
> inside the src/ directory.
>
> I also don't see the clutter you are talking about. The *.h are named
> the same as their *.cpp files and are side by side. I actually call that
> pretty clean.
>
Hi Marcel,
I generally prefer to keep the header files separate then the actual
source files. I had also
moved the xml files into an xml folder. But I have now reverted those changes.
>> I have also added a HACKING file for people to quickly understand and
>> grasp the concept and execution of phonesim.
>
> Please send that as a separate patch.
Patch file for HACKING attached.
--
BR; Naresh
visit me at:
http://www.naresh.se/
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Added-a-HACKING-file-for-people-to-quickly-understan.patch --]
[-- Type: text/x-patch, Size: 4655 bytes --]
From 0f07717e5885dfb3968b6bb7115f977f563540d9 Mon Sep 17 00:00:00 2001
From: Naresh Mehta <nareshtechs@gmail.com>
Date: Fri, 28 May 2010 02:42:38 +0200
Subject: [PATCH] Added a HACKING file for people to quickly understand and grasp the
concept and execution of phonesim. Also allows to understand how to
use in conjunction with Ofono.
new file: HACKING
---
HACKING | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 102 insertions(+), 0 deletions(-)
create mode 100644 HACKING
diff --git a/HACKING b/HACKING
new file mode 100644
index 0000000..76dc66f
--- /dev/null
+++ b/HACKING
@@ -0,0 +1,102 @@
+Hacking on phonesim
+*******************
+
+phonesim is a soft modem that eliminates the need to have an actual AT
+modem connected to the system for testing and developing Ofono.
+
+Build tools requirements
+========================
+
+When building and testing directly from the repository it is important to
+have at least automake version 1.10 or later installed. All modern
+distributions should default to the latest version, but it seems that
+Debian's default is still an earlier version:
+
+ Check version
+ # dpkg -l '*automake*'
+
+ Install new version
+ # apt-get install automake1.10
+ # update-alternatives --config automake
+
+QT development libraries (libqt4-dev) are also required for building
+phonesim. It is recommended to install the QT 4 development tools package
+(qt4-dev-tools) as an alternative if available with your distribution.
+
+Working with the source code repository
+=======================================
+
+The repository contains two extra scripts that accomplish the bootstrap
+process. One is called "bootstrap" which is the basic scripts that uses the
+autotools scripts to create the needed files for building and installing.
+It makes sure to call the right programs depending on the usage of shared or
+static libraries or translations etc.
+
+The second program is called "bootstrap-configure". This program will make
+sure to properly clean the repository, call the "bootstrap" script and then
+call configure with proper settings for development. It will use the best
+options and pass them over to configure. These options normally include
+the enabling the maintainer mode and the debugging features.
+
+So while in a normal source project the call "./configure ..." is used to
+configure the project with its settings like prefix and extra options. In
+case of bare repositories call "./bootstrap-configure" and it will bootstrap
+the repository and calls configure with all the correct options to make
+development easier.
+
+In case of preparing for a release with "make distcheck", don't use
+bootstrap-configure since it could export development specific settings.
+
+So the normal steps to checkout, build and install such a repository is
+like this:
+
+ Checkout repository
+ # git clone git://git.kernel.org/pub/scm/network/ofono/phonesim.git
+ # cd phonesim
+
+ Configure and build
+ # ./bootstrap-configure
+ # make
+
+ Check installation
+ # make install DESTDIR=$PWD/x
+ # find x
+ # rm -rf x
+
+ Check distribution
+ # make distcheck
+
+ Final installation
+ # sudo make install
+
+ Remove autogenerated files
+ # make maintainer-clean
+
+
+Running from within the source code repository
+==============================================
+
+When using "./configure --enable-maintainer-mode" the automake scripts will
+use the plugins directly from within the repository. This removes the need
+to use "make install" when testing "phonesim". The "bootstrap-configure"
+automatically includes this option.
+
+ Run phonesim in foreground using the following options
+ # ./src/phonesim -p 12345 -gui src/default.xml
+
+Check your modem.conf file and enable the phonesim configuration before
+executing the above command. Argument -p should be followed by the proper
+port number, in case you have changed the default "12345". Argument -gui
+will launch the gui once the modem is enabled.
+
+To enable the modem, make sure the ofono daemon is running and execute the
+enable-modem script with /phonesim argument (default defined in modem.conf,
+change if changes to that section has been made). The AT chat can then
+be seen in the GUI window. Running the script disable-modem with /phonesim
+argument will turn off the soft modem.
+
+The default.xml can be tweaked further to include additional AT-Commands and
+supposed responses from the soft modem.
+
+For production installations or distribution packaging it is important that
+the "--enable-maintainer-mode" option is NOT used.
--
1.7.0.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Patch]: Reducing clutter in the src directory + Introduction of HACKING file
2010-05-28 8:59 ` Naresh Mehta
@ 2010-05-29 9:56 ` Marcel Holtmann
0 siblings, 0 replies; 6+ messages in thread
From: Marcel Holtmann @ 2010-05-29 9:56 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 810 bytes --]
Hi Naresh,
> I generally prefer to keep the header files separate then the actual
> source files. I had also
> moved the xml files into an xml folder. But I have now reverted those changes.
>
> >> I have also added a HACKING file for people to quickly understand and
> >> grasp the concept and execution of phonesim.
> >
> > Please send that as a separate patch.
>
> Patch file for HACKING attached.
please create patches with git format-patch and make sure the commit
message is split in a subject and body. Also check that it applies
cleanly with git am. Your current patch doesn't. So please redo this and
send it again.
Also I prefer to get patches inline. It is not a hard requirement, but
makes things a lot easier. Using git send-email is helpful here.
Regards
Marcel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Patch]: Reducing clutter in the src directory + Introduction of HACKING file
2010-05-27 22:31 [Patch]: Reducing clutter in the src directory + Introduction of HACKING file Naresh Mehta
2010-05-28 2:46 ` Marcel Holtmann
@ 2010-05-28 6:57 ` Kalle Valo
2010-05-28 8:40 ` Naresh Mehta
1 sibling, 1 reply; 6+ messages in thread
From: Kalle Valo @ 2010-05-28 6:57 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 342 bytes --]
Naresh Mehta <nareshtechs@gmail.com> writes:
> Sorry for the size of the patch. It basically increased because of the
> moving around of files. Hope it is not much of a problem.
A git tip of the day:
git format-patch has switch -M which enables rename detection. It should
make patches like this a lot smaller.
--
Kalle Valo
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-05-29 9:56 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-27 22:31 [Patch]: Reducing clutter in the src directory + Introduction of HACKING file Naresh Mehta
2010-05-28 2:46 ` Marcel Holtmann
2010-05-28 8:59 ` Naresh Mehta
2010-05-29 9:56 ` Marcel Holtmann
2010-05-28 6:57 ` Kalle Valo
2010-05-28 8:40 ` Naresh Mehta
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox