Service hierarchy
=================

Service		org.ofono.mms
Interface	org.ofono.mms.Service
Object path	[variable prefix]/{service0,service1,...}

Methods		array{object,dict} GetMessages()

			Get an array of message objects and properties
			that represents the currently received and sent
			messages.

			This method call should only be used once when an
			service becomes available.  Further message additions
			and removal shall be monitored via MessageAdded and
			MessageRemoved signals.

			Possible Errors: [service].Error.InvalidArguments

		array{object,dict} GetConversation(string number, uint32 count)

			Get an array of message objects and properties
			that are part of a conversation between the service
			entity and the number provided.

			The number parameter contains digits to look for
			(i.e.: n last digits of the phone number), only messages
			with a recipient which ends with the given number will
			be part of the GetConversation result.

			The count parameter can either be 0 for unlimited
			messages in the conversation or limit the conversation
			to count last messages.

			Possible Errors: [service].Error.InvalidArguments
					 [service].Error.TransientFailure

		dict GetProperties()

			Returns properties for the manager object. See
			the properties section for available properties.

			Possible Errors: [service].Error.NotImplemented

		object SendMessage(array{string} recipients, string smil,
					array{string id, string content-type,
							string filename})

			Send a new message to recipients with SMIL body and
			list of attachement content types, identifiers and
			filenames. The SMIL body is required to be in UTF-8
			format.

			On success a message object will be created and
			also signaled by MessageAdded signal.

			The initial status of the message is a draft and
			and will be updated once sending has succeeded.

			Possible Errors:
				[service].Error.InvalidArguments
				[service].Error.UnsupportedMessage
				[service].Error.TransientFailure
				[service].Error.TransientNetworkProblem
				[service].Error.PermanentFailure
				[service].Error.PermanentServiceDenied
				[service].Error.PermanentMessageFormatCorrupt
				[service].Error.PermanentInvalidAddress
				[service].Error.PermanentContentNotAccepted
				[service].Error.PermanentLackOfPrepaid

		void DeleteMessages(array{object})

			Delete an array of message objects that represents
			the currently stored messages to delete.

			Possible Errors: [service].Error.InvalidArguments

		void DeleteConversation(string number)

			Delete the messages that belongs to the conversation
			defined by the given number.

			The number parameter contains digits to look for
			(i.e.: n last digits of the phone number), only messages
			with a recipient which ends with the given number will
			be member of the conversation and thus will be deleted.

			Possible Errors: [service].Error.InvalidArguments

		void SetProperty(string name, variant value)

			Changes the value of the specified property.

			Possible Errors: [service].Error.InvalidArguments


Signals		MessageAdded(object path, dict properties)

			Signal that is sent when a new message is added. It
			contains the object path of new message, its
			properties.

		MessageRemoved(object path)

			Signal that is sent when a message has been removed.
			The object path is no longer accessible after this
			signal and only emitted for reference.

Properties	boolean UseDeliveryReports

			This property controls whether MMS Status Reports,
			sometimes better known as Delivery Reports are to be
			used.  If enabled, all outgoing MMS messages will be
			flagged to request a status report from the MMSC.
