# OpalPresenceStatus Struct Reference

`#include <opal.h>`

## Data Fields

const char * | m_entity
const char * | m_target
const char * | m_service
const char * | m_contact
const char * | m_capabilities
OpalPresenceStates | m_state
const char * | m_activities
const char * | m_note
const char * | m_infoType
| MIME tyupe for m_infoData, e.g. application/pidf+xml.
const char * | m_infoData
| Raw information as provided by underlying protocol, e.g. XML.

## Detailed Description

Opal Presence information for the various presence messages.

For OpalIndPresenceChange, m_entity is the local presentity, m_target is the presentity for which the status is changing. This may be a remote presentity, or the same as the m_entity field. The latter would occur after OpalCmdSetLocalPresence, for example, and can indicate if that operation was successful or not.

For OpalCmdAuthorisePresence, m_entity is the local presentity, m_target is the remote presentity asking for permission to view the local presentities status. The m_state is used to deny acces (OpalPresenceForbidden), deny access politely (OpalPresenceUnavailable) or permit access (OpalPresenceAvailable). While this is usually called in response to an OpalIndPresenceChange with m_state == OpalPresenceAuthRequest, it can also be sent at any time to remove an authorisation. In this case m_state is set to OpalPresenceNone.

For OpalCmdSetLocalPresence, m_target is unused, m_state should be a positive value. If m_state is OpalPresenceUnchanged then no change is made and the current presence state is returned. The m_note field can be used to provide extra information about the state change.

For OpalCmdSubscribePresence, m_entity is the local presentity, m_target is the remote presentity we wish to monitor. The m_state is OpalPresenceNone when we wish to stop monitoring, any other value to request. The m_note field may be used to give extra information to the remote system if authorisation is required.

## Field Documentation

const char* OpalPresenceStatus::m_activities

The optional activities, if m_state is OpalPresenceAvailable or OpalPresenceUnavailable. Typically something like "Busy" or "Away". This can be a '
' seaparated list of simultaneous activities.

const char* OpalPresenceStatus::m_capabilities

Capabilities for the service. A '
' separated list of keywords, such as "audio", "Video", "text" etc.

const char* OpalPresenceStatus::m_contact

Contact address, typically a URL, for the service.

const char* OpalPresenceStatus::m_entity

For OpalIndPresenceChange, this is the presentity whose state had changed, usually a remote. For other messages, this is the local registered presentity.

const char* OpalPresenceStatus::m_infoData

Raw information as provided by underlying protocol, e.g. XML.

const char* OpalPresenceStatus::m_infoType

MIME tyupe for m_infoData, e.g. application/pidf+xml.

const char* OpalPresenceStatus::m_note

Additional "note" that may be attached to the state change, e.g. "I want to be frends with you". If m_state is OpalPresenceError, then this may contain extra information on the error.

const char* OpalPresenceStatus::m_service

Device/system for the presentity that is getting a state change. Ignored for commands.

OpalPresenceStates OpalPresenceStatus::m_state

The new state of the target entity.

const char* OpalPresenceStatus::m_target

The presentity that is being informed about the state change. Only used for OpalIndPresenceChange.

The documentation for this struct was generated from the following file:

- opal.h