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

                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, variant smil,
                                        array{string id, string content-type,
                                                        string filename})
                OR

                object SendMessage(array{string} recipients, array{dict, value},
                                        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.

                        array{dict, value}
                        Dict Options:
                        DeliveryReport (True/False): Override Default Delivery
                                                     report option

                        Subject (string): Add a Subject to the MMS

                        smil (string): Add smil to the MMS

                        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 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.

                MessageSendError(a{sv}: "ErrorType": uint32 error_type,
                                        "Host": string host,
                                        "MessagePath": string message_path)

                        Signal that is sent when there is a transmit
                        error with an MMS. Note that this may expand in the future

                        error type:
                        enum mms_tx_rx_error {
                                MMS_TX_RX_ERROR_UNKNOWN,
                                MMS_TX_RX_ERROR_DNS,
                                MMS_TX_RX_ERROR_HTTP
                        };

                        host: the host the MMS was trying to contact

                        message_path: The dbus path of the MMS message

                MessageReceiveError(a{sv}: "ErrorType": uint32 error_type,
                                           "Host": string host,
                                           "From": string from)

                        Signal that is sent when there is a transmit
                        error with an MMS. Note that this may expand in the future

                        error type:
                        enum mms_tx_rx_error {
                                MMS_TX_RX_ERROR_UNKNOWN,
                                MMS_TX_RX_ERROR_DNS,
                                MMS_TX_RX_ERROR_HTTP
                        };

                        host: the host the MMS was trying to contact

                        from: who the MMS is from if being received
                              (in e164 format)

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.

                boolean AutoCreateSMIL

                        This property controls whether mmsd-tng makes the smil
                        automcatically for you or if you wish to feed it manually.

                integer TotalMaxAttachmentSize

                        The maximum size all of your attachments can be before
                        mmsd-tng rejects it. This value is in bytes.
                        NOTE: This value is carrier specific! Changing this
                        value to a higher number may cause your carrier to
                        silently reject MMSes you send.
                        CHANGE AT YOUR OWN RISK!

                integer MaxAttachments
                        The maximum number of attachments allowed before
                        mmsd-tng rejects it.
                        NOTE: This value is carrier specific! Changing this
                        value to a higher number may cause your carrier to
                        silently reject MMSes you send.
                        CHANGE AT YOUR OWN RISK!

                integer NotificationInds
                        The number of notification indications that mmsd-tng has.
                        This means mmsd-tng has MMSes it has not downloaded yet.

