SimManager hierarchy
===============

Service		org.ofono
Interface	org.ofono.SimManager
Object path	[variable prefix]/{modem0,modem1,...}

Methods		dict GetProperties()

			Returns SIM properties for the modem object.  See
			the properties section for available properties.

		void ChangePin(string type, string oldpin, string newpin)

			Changes the pin given by string type.

			Possible Errors: [service].Error.NotImplemented
					 [service].Error.InProgress
					 [service].Error.InvalidArguments
					 [service].Error.InvalidFormat
					 [service].Error.Failed

		void EnterPin(string type, string pin)

			Enters the currently pending pin.  The type value must
			match the pin type being asked in the PinRequired
			property.

			Possible Errors: [service].Error.NotImplemented
					 [service].Error.InProgress
					 [service].Error.InvalidArguments
					 [service].Error.InvalidFormat
					 [service].Error.Failed

		void ResetPin(string type, string puk, string newpin)

			Provides the unblock key to the modem and if correct
			resets the pin to the new value of newpin.

			Possible Errors: [service].Error.NotImplemented
					 [service].Error.InProgress
					 [service].Error.InvalidArguments
					 [service].Error.InvalidFormat
					 [service].Error.Failed

		void LockPin(string type, string pin)

			Activates the lock for the particular pin type.  The
			device will ask for a PIN automatically next time the
			device is turned on or the SIM is removed and
			re-inserted.  The current PIN is required for the
			operation to succeed.

			Possible Errors: [service].Error.NotImplemented
					 [service].Error.InProgress
					 [service].Error.InvalidArguments
					 [service].Error.InvalidFormat
					 [service].Error.Failed

		void UnlockPin(string type, string pin)

			Deactivates the lock for the particular pin type.  The
			current PIN is required for the operation to succeed.

			Possible Errors: [service].Error.NotImplemented
					 [service].Error.InProgress
					 [service].Error.InvalidArguments
					 [service].Error.InvalidFormat
					 [service].Error.Failed

		array{byte} GetIcon(byte id)

			Obtain the icon given by id.  Only ids greater than 1
			are valid.  XPM format is currently used to return the
			icon data.

			Possible Errors: [service].Error.NotImplemented
					 [service].Error.InProgress
					 [service].Error.InvalidArguments
					 [service].Error.Failed

		void SetProperty(string property, variant value)

			Sets the given property value to that specified in
			call parameter.

			Possible Errors: [service].Error.InProgress
					 [service].Error.NotImplemented
					 [service].Error.InvalidArguments
					 [service].Error.Failed

Signals		PropertyChanged(string name, variant value)

			This signal indicates a changed value of the given
			property.

Properties	boolean Present [readonly]

			True if a SIM card is detected.  There are
			no other properties if false.

		string SubscriberIdentity [readonly, optional]

			Contains the IMSI of the SIM, if available.

		string ServiceProviderName [readonly, optional]

			Contains the service provider name fetched from the
			SIM card, if available.

		string MobileCountryCode [readonly, optional]

			Contains the Mobile Country Code (MCC) of the home
			network (not to be confused with the currently
			registered network reported on NetworkRegistration
			interface) and is read directly from the SIM if
			available.

		string MobileNetworkCode [readonly, optional]

			Contains the Mobile Network Code (MNC) of the home
			network (not to be confused with the currently
			registered network reported on NetworkRegistration
			interface) and is read directly from the SIM if
			available.

		array{string} SubscriberNumbers [readwrite]

			Contains the list of subscriber numbers.  This is
			usually stored in the EFmsisdn sim file.

		array{string} PreferredLanguages [readonly, optional]

			Contains the list of preferred languages from the SIM,
			if available.

		dict{string,string} ServiceNumbers [readonly, optional]

			Contains a dictionary of service dialing numbers from
			the SIM, if available.

		string PinRequired [readonly]

			Contains the string type of the pin required by the
			modem.  The possible values are:
				"none" - Nothing is required
				"pin" - SIM PIN is required
				"phone" - Phone-to-SIM PIN is required
				"firstphone" - Phone-to-very-first SIM
						PIN is required
				"pin2" - SIM PIN2 is required
				"network" - Network Personalization password is
						required
				"netsub" - Network subset personalization
						password is required
				"service" - Service Provider personalization
						password is required
				"corp" - Corporate personalization password
						is required
				"puk" - SIM PUK is required
				"firstphonepuk" - Phone-to-very-first SIM PUK is
						required
				"puk2" - SIM PUK2 is required
				"networkpuk" - Network personalization unblocking
						password is required
				"netsubpuk" - Network subset personalization
						unblocking password is required
				"servicepuk" - Service provider personalization
						unblocking password is required
				"corppuk" - Corporate personalization unblocking
						password is required

		array{string} LockedPins [readonly]

			Contains the pins that are currently locked and will
			require the user to enter the password at startup.
			Using LockPin and UnlockPin will result in changes to
			this property.

			The list contains elements of the same format as the
			PinRequired property.

		string CardIdentifier [readonly]

			Contains the Integrated Circuit Card Identifer (ICCID)
			which is read directly from the SIM.

		boolean FixedDialing [readonly]

			True if Fixed Dialing service is enabled in SIM card.

			If FDN is enabled, oFono halts the SIM initialization
			procedure and only emergency calls are allowed.

		boolean BarredDialing [readonly]

			True if Barred Dialing service is enabled in SIM card.

			If BDN is enabled, oFono halts the SIM initialization
			procedure and only emergency calls are allowed.

		dict{string,byte} Retries [readonly]

			Contains all the retry counters available. The possible
			values for the first field are the same as in
			PinRequired property. The second field contains is the
			counter for that pin type.

			This property is updated after each operation that
			might have changed the retry counters, i.e. calls to
			ChangePin(), EnterPin(), ResetPin() LockPin(),
			UnlockPin().

		string ImsPrivateIdentity [readonly, optional]

			Contains the SIM's ImsPrivateIdentity, read from the
			ISIM.

		uint32 CardSlotCount [readonly, experimental]

			Contains the count of number of SIM card slots available.

		uint32 ActiveCardSlot [readwrite, experimental]

			Contains the index of the currently active SIM card slot
			for dual SIM single active mode.

			This property will range from 1 (default) to
			CardSlotCount (max) value.
