## org.freedesktop.ModemManager1.Modem.Voice org.freedesktop.ModemManager1.Modem.Voice — The ModemManager Voice interface. |

## Methods

    ListCalls        (OUT ao    result);
    DeleteCall       (IN  o     path);
    CreateCall       (IN  a{sv} properties,
                      OUT o     path);
    HoldAndAccept    ();
    HangupAndAccept  ();
    HangupAll        ();
    Transfer         ();
    CallWaitingSetup (IN  b     enable);
    CallWaitingQuery (OUT b     status);

## Signals

    CallAdded   (o path);
    CallDeleted (o path);

## Properties

    Calls          readable   ao
    EmergencyOnly  readable   b

## Description

The Voice interface handles Calls.

This interface will only be available once the modem is ready to be registered in the cellular network. 3GPP devices will require a valid unlocked SIM card before any of the features in the interface can be used.

## Method Details

### The ListCalls() method

    ListCalls (OUT ao result);

Retrieve all Calls.

This method should only be used once and subsequent information retrieved either by listening for the org.freedesktop.ModemManager1.Modem.Voice::Added signal, or by querying the specific Call object of interest.

`OUT ao `result``: | The list of call object paths.

### The DeleteCall() method

    DeleteCall (IN  o path);

Delete a Call from the list of calls.

The call will be hangup if it is still active.

`IN o `path``: | The object path of the Call to delete.

### The CreateCall() method

    CreateCall (IN  a{sv} properties,
                OUT o     path);

Creates a new call object for a new outgoing call.

The 'Number' is the only expected property to set by the user.

`IN a{sv} `properties``: | Call properties from the Call D-Bus interface.
`OUT o `path``: | The object path of the new call object.

### The HoldAndAccept() method

    HoldAndAccept ();

Place all active calls on hold, if any, and accept the next call.

Waiting calls have preference over held calls, so the next call being active will be any waiting call, or otherwise, any held call.

The user should monitor the state of all available ongoing calls to be reported of which one becomes active.

No error is returned if there are no waiting or held calls.

### The HangupAndAccept() method

    HangupAndAccept ();

Hangup all active calls, if any, and accept the next call.

Waiting calls have preference over held calls, so the next call being active will be any waiting call, or otherwise, any held call.

The user should monitor the state of all available ongoing calls to be reported of which one becomes active.

No error is returned if there are no waiting or held calls. In this case, this method would be equivalent to calling Hangup() on the active call.

### The HangupAll() method

    HangupAll ();

Hangup all active calls.

Depending on how the device implements the action, calls on hold or in waiting state may also be terminated.

No error is returned if there are no ongoing calls.

### The Transfer() method

    Transfer ();

Join the currently active and held calls together into a single multiparty call, but disconnects from them.

The affected calls will be considered terminated from the point of view of the subscriber.

### The CallWaitingSetup() method

    CallWaitingSetup (IN  b enable);

Activates or deactivates the call waiting network service, as per 3GPP TS 22.083.

This operation requires communication with the network in order to complete, so the modem must be successfully registered.

`IN b `enable``: |

### The CallWaitingQuery() method

    CallWaitingQuery (OUT b status);

Queries the status of the call waiting network service, as per 3GPP TS 22.083.

This operation requires communication with the network in order to complete, so the modem must be successfully registered.

`OUT b `status``: |

## Signal Details

### The "CallAdded" signal

    CallAdded (o path);

Emitted when a call has been added.

`o `path``: | Object path of the new call.

### The "CallDeleted" signal

    CallDeleted (o path);

Emitted when a call has been deleted.

`o `path``: | Object path of the now deleted Call.

## Property Details

### The "Calls" property

    Calls  readable   ao

The list of calls object paths.

### The "EmergencyOnly" property

    EmergencyOnly  readable   b

A flag indicating whether emergency calls are the only allowed ones.

If this flag is set, users should only attempt voice calls to emergency numbers, as standard voice calls will likely fail.