Copyright (C) 2008 Collabora Limited Copyright (C) 2008 Nokia Corporation

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

An interface for streamed media channels that can indicate call progress or call states. The presence of this interface is no guarantee that call states will actually be signalled (for instance, SIP implementations are not guaranteed to generate status 180 Ringing, so a call can be accepted without the Ringing flag ever having been set; similarly, Jingle implementations are not guaranteed to send <ringing/>).

To notify the other participant in the call that they are on hold, see Hold.

Get the current call states for all contacts involved in this call. The current call states. Participants where the call state flags would be 0 (all unset) may be omitted from this mapping. Emitted when the state of a member of the channel has changed. An integer handle for the contact. The new state for this contact. A map from contacts to call states. A contact involved in this call. State flags for the given contact. A set of flags representing call states. The contact has been alerted about the call but has not responded (e.g. 180 Ringing in SIP). The contact is temporarily unavailable, and the call has been placed in a queue (e.g. 182 Queued in SIP, or call-waiting in telephony). The contact has placed the call on hold, and will not receive media from the local user or any other participants until they unhold the call again. The initiator of the call originally called a contact other than the current recipient of the call, but the call was then forwarded or diverted. Progress has been made in placing the outgoing call, but the destination contact may not have been made aware of the call yet (so the Ringing state is not appropriate). This corresponds to SIP's status code 183 Session Progress, and could be used when the outgoing call has reached a gateway, for instance. This contact has merged this call into a conference. Note that GSM provides a notification when the remote party merges a call into a conference, but not when it is split out again; thus, this flag can only indicate that the call has been part of a conference at some point. If a GSM connection manager receives a notification that a call has been merged into a conference a second time, it SHOULD represent this by clearing and immediately re-setting this flag on the remote contact.