VoiceCallManager hierarchy ========================== Service org.ofono Interface org.ofono.VoiceCallManager Object path [variable prefix]/{modem0,modem1,...} Methods dict GetProperties() Returns properties for the VoiceCallManager Interface. See the properties section for available properties. array{object,dict} GetCalls() Get an array of call object paths and properties that represents the currently present calls. This method call should only be used once when an application starts up. Further call additions and removal shall be monitored via CallAdded and CallRemoved signals. object Dial(string number, string hide_callerid) Initiates a new outgoing call. Returns the object path to the newly created call. The hide_callerid variable holds the CLIR override for this call. The defines values are: "" or "default" - Default (Network) CLIR mode is used "enabled" - Hides callerid, CLIR Invocation is used "disabled" - Shows callerid, CLIR Suppression is used The number must be a string in the following format: [+][0-9*#]{1,80} In other words, it must be a non-empty string optionally prefixed with a '+' followed by 1 to 80 characters. The character set can contain numbers, '*' and '#'. Besides this sanity checking no further number validation is performed. It is assumed the network will perform further validation. The optional '+' denotes an international number format. For example: +15551234567 - International format 5551234567 - National / Uknown format This method is usually implemented using the ATD AT command. NOTE: If an active call (single or multiparty) exists, then it is automatically put on hold if the dial procedure is successful. Possible Errors: [service].Error.InProgress [service].Error.InvalidArguments [service].Error.InvalidFormat [service].Error.NotImplemented [service].Error.Failed void Transfer() Joins the currently Active (or Outgoing, depending on network support) and Held calls together and disconnects both calls. In effect transferring one party to the other. This procedure requires an Active and Held call and the Explicit Call Transfer (ECT) supplementary service to be active. This functionality is generally implemented by using the +CHLD=4 AT command. Possible Errors: [service].Error.InProgress [service].Error.NotImplemented [service].Error.Failed void SwapCalls() Swaps Active and Held calls. The effect of this is that all calls (0 or more including calls in a multi-party conversation) that were Active are now Held, and all calls (0 or more) that were Held are now Active. GSM specification does not allow calls to be swapped in the case where Held, Active and Waiting calls exist. Some modems implement this anyway, thus it is manufacturer specific whether this method will succeed in the case of Held, Active and Waiting calls. This functionality is generally implemented by using the +CHLD=2 AT command. Possible Errors: [service].Error.InProgress [service].Error.NotImplemented [service].Error.Failed void ReleaseAndAnswer() Releases currently active call (0 or more) and answers the currently waiting call. Please note that if the current call is a multiparty call, then all parties in the multi-party call will be released. Possible Errors: [service].Error.InProgress [service].Error.NotImplemented [service].Error.Failed void ReleaseAndSwap() Releases currently active call (0 or more) and activates any currently held calls. Please note that if the current call is a multiparty call, then all parties in the multi-party call will be released. Possible Errors: [service].Error.InProgress [service].Error.NotImplemented [service].Error.Failed void HoldAndAnswer() Puts the current call (including multi-party calls) on hold and answers the currently waiting call. Calling this function when a user already has a both Active and Held calls is invalid, since in GSM a user can have only a single Held call at a time. Possible Errors: [service].Error.InProgress [service].Error.NotImplemented [service].Error.Failed void HangupAll() Releases all calls except waiting calls. This includes multiparty calls. Possible Errors: [service].Error.InProgress [service].Error.NotImplemented [service].Error.Failed array{object} PrivateChat(object call) Places the multi-party call on hold and makes desired call active. This is used to accomplish private chat functionality. Note that if there are only two calls (three parties) in the multi-party call the result will be two regular calls, one held and one active. The Multiparty call will need to be setup again by using the CreateMultiparty method. Returns the new list of calls participating in the multiparty call. This is usually implemented using the +CHLD=2X command. Possible Errors: [service].Error.InProgress [service].Error.InvalidArguments [service].Error.InvalidFormat [service].Error.NotFound [service].Error.NotImplemented [service].Error.Failed array{object} CreateMultiparty() Joins active and held calls together into a multi-party call. If one of the calls is already a multi-party call, then the other call is added to the multiparty conversation. Returns the new list of calls participating in the multiparty call. There can only be one subscriber controlled multi-party call according to the GSM specification. This is usually implemented using the +CHLD=3 AT command. Possible Errors: [service].Error.InProgress [service].Error.NotImplemented [service].Error.Failed void HangupMultiparty() Hangs up the multi-party call. All participating calls are released. Possible Errors: [service].Error.InProgress [service].Error.NotImplemented [service].Error.Failed void SendTones(string tones) Sends the DTMF tones to the network. The tones have a fixed duration. Tones can be one of: '0' - '9', '*', '#', 'A', 'B', 'C', 'D'. The last four are typically not used in normal circumstances. Possible Errors: [service].Error.InProgress [service].Error.NotImplemented [service].Error.InvalidArguments [service].Error.InvalidFormat [service].Error.Failed Signals CallAdded(object path, dict properties) Signal that is sent when a new call is added. It contains the object path of the new voice call and also its properties. Applications get the whole properties via this signal and don't need to call GetProperties on the voice call object. CallRemoved(object path) Signal that is sent when a voice call has been released. The object path is no longer accessible after this signal and only emitted for reference. NOTE: If the VoiceCallManager interface becomes unavailable, this signal is not guaranteed to be emitted for remaining calls. The applications are expected to monitor changes in Modem.Interfaces property. PropertyChanged(string property, variant value) Signal is emitted whenever a property has changed. The new value is passed as the signal argument. BarringActive(string type) [experimental] Signal emitted when an outgoing voice call is made and the call has been barred by the network due to the remote party's "Call Barring" Supplementary Services settings for incoming calls. In this case the type parameter in the signal set to "remote". The signal is also emitted when an outgoing voice call is made and the call has been barred by the network due to the local "Call Barring" Supplementary Services settings for outgoing calls. In this case the type parameter in the signal is set to "local". Forwarded(string type) [experimental] Signal emitted when an outgoing voice call is made and the call has been redirected to another number due to the remote party's "Call Forwarding" Supplementary Services settings. In this case the type parameter in the signal is set to "outgoing". The signal is also emitted when the incoming voice call is a redirected call due to a call forwarding operation. In this case the type parameter in the signal is set to "incoming". Properties array{string} EmergencyNumbers [readonly] Contains the list of emergency numbers recognized by oFono. This list is based on the default set of numbers provided by the specification and any extra numbers provisioned by the carrier on the SIM.