This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

A SIM/USIM file system is simulated in Cellular Emulator, and users can configure it at their will. In order to achieve this, users must compose a customized configuration XML file and then load it into AT Parser.

By default emulator will load "USIM.xml" file under its working directory.

Compose Configuration XML File

Users should compose a custom XML file to configure the SIM/USIM file system.

The format of the sample files are described in the table below:

Section Comment

<characteristic type="Config">

Root level

<characteristic type="SIM">

SIM Component

<characteristic type="SIMProperties">

//end SIMProperties

<characteristic type="SIMFileSystem">

SIM Filesystem

<characteristic type="[Application]">

USIM applications.**

[Applicaion] = UICC or USIM.

<characteristic type="SIMFile_[ParentID]_[FileID]">

One SIMFile characteristic should exist for each file. Note that each instance of SIMFile implies "create" or "update" file. [ParentID] = fileID of parent SIM DF (or 3F00 if no parent); [FileID] = SIM File ID. Example SIMFile characteristic: SIMFile_7F10_6F3A (note that each ID needs to be two bytes, i.e., 4 hex digits)

<parm name="SIMFileACL">

Desc: file Access Control List

Formatting: "[read],[write],[invalidate],[rehabilitate]"

Where permissions ALW, PIN, PIN2, ADM

Default: ADM (even if unrecognized entry found)

<parm name="SIMFileType">

Desc: SIM file type


<parm name="SIMFileRecordLength">

Desc: Record length; required for LINEAR and CYCLIC file types

Formatting: positive integer

<parm name="SIMFileData">

Desc: file data

Formatting: for example "A(Microsoft \(PPC\)) H(0xFF 0xFF) A(dog\\food)"

A(…) = converts everything between parentheses into GSM 7-bit alphabet; H(…) = converts hex codes appropriately (0xFF, 0xff, FF, ff, Ff all equivalent). Note these special codes: "\)" = ")"; "\(" = "("; "\\" = "\" Quotation mark should be encoded per XML standards, i.e., "&quot;" Actual encoding of data up to GSM specs

<parm name="SIMFileDataFile">

Desc: instead of using the above parm to define file contents, one can instead point the CSP to load SIM file data from a real file residing on device. Note this file must contain raw binary data; no interpreting of file contents will occur


//End SIMFile


// End [Application]


//End SIMFileSystem

<characteristic type="SIMSecurity">

SIM security***


//End SIMSecurity


//End SIM

<characteristic type="Network">

Network configuration*


//end Network

<characteristic type="Radio">

Radio configuration section*


//end Radio


//end Cellular Emulator

*: Useless sections for compatibility to FakeSIM.

**: USIM only sections.

***: Unsupported sections.

Two sample XML files are provided in the installation folder.

Loading Configuration XML File into Emulator

In the Configuration dialog, selecting Importwill pop up a dialog to browse to the XML configuration file.

If the file load operation succeeds, Cellular Emulator will continue working without any additional message given.

If the file load operation fails, a message box will pop up to specify the error. The most likely reason for this may be that the file format is invalid.

If the file loading operation fails, all subsequent operations related to SIM/USIM will fail and return an error code indicating "technical problem".

Filter Management

Filter DLLs are responsible for the execution of each AT command. The emulator will enumerate all the filters loaded when it receives an AT command in order of priority. Once the response of this AT command is generated by a specific filter, the AT Parser will stop querying more filters.

By default, there are six filters loaded and in use. The name and priority of filters are listed in the Filter Management section of the Configuration tab. By checking each filter, they are dynamically disabled or enabled. If a filter is disabled, the emulator will not feed the subsequent AT commands to it.

In the Configuration dialog, select the button " Add…" and a dialog will pop up to browse to the filter DLL files.

If the loading file operation succeeds, emulator will load the selected filter DLL dynamically, enable it and list its information in the table.

If the file loading operation fails, a message box will pop up to notify this error. The most possible reason for this may be that the DLL file format is not an invalid filter DLL, such as the DLL does not implement the right interface required by filter.

See Also