Public Types | Public Member Functions

Participant Class Reference

Conversation participant class. Instances of this class represent contacts when in the context of conversations. Amongst others, this class has a Ring method for requesting live status with the target contact. This class also holds typing indicator property and access rights for the contact in context of public conversations.
. More...

#include <skype-embedded_2.h>

List of all members.

Public Types

enum  { MODULE_ID = 19 }
enum  PROPERTY {
  P_CONVO_ID = 930,
  P_IDENTITY,
  P_RANK,
  P_REQUESTED_RANK,
  P_TEXT_STATUS,
  P_VOICE_STATUS,
  P_VIDEO_STATUS,
  P_LIVE_IDENTITY = 943,
  P_LIVE_PRICE_FOR_ME = 938,
  P_LIVE_FWD_IDENTITIES = 948,
  P_LIVE_START_TIMESTAMP = 939,
  P_SOUND_LEVEL = 941,
  P_DEBUGINFO,
  P_LAST_VOICE_ERROR = 947,
  P_QUALITY_PROBLEMS = 949,
  P_LIVE_TYPE,
  P_LIVE_COUNTRY,
  P_TRANSFERRED_BY,
  P_TRANSFERRED_TO,
  P_ADDER
}
enum  RANK {
  CREATOR = 1,
  ADMIN,
  SPEAKER,
  WRITER,
  SPECTATOR,
  APPLICANT,
  RETIRED,
  OUTLAW
}
enum  TEXT_STATUS {
  TEXT_UNKNOWN = 0,
  TEXT_NA,
  READING,
  WRITING,
  WRITING_AS_ANGRY,
  WRITING_AS_CAT
}
enum  VOICE_STATUS {
  VOICE_UNKNOWN = 0,
  VOICE_NA,
  VOICE_AVAILABLE,
  VOICE_CONNECTING,
  RINGING,
  EARLY_MEDIA,
  LISTENING,
  SPEAKING,
  VOICE_ON_HOLD,
  VOICE_STOPPED
}
enum  VIDEO_STATUS {
  VIDEO_UNKNOWN = 0,
  VIDEO_NA,
  VIDEO_AVAILABLE,
  VIDEO_CONNECTING,
  STREAMING,
  VIDEO_ON_HOLD
}
enum  DTMF {
  DTMF_0 = 0,
  DTMF_1,
  DTMF_2,
  DTMF_3,
  DTMF_4,
  DTMF_5,
  DTMF_6,
  DTMF_7,
  DTMF_8,
  DTMF_9,
  DTMF_STAR,
  DTMF_POUND
}
typedef ParticipantRef Ref
typedef ParticipantRefs Refs

Public Member Functions

virtual ~Participant ()
ParticipantRef ref ()
bool CanSetRankTo (const RANK &rank, bool &result)
bool SetRankTo (const RANK &rank)
bool Ring (const Sid::String identityToUse="", const bool videoCall=false, const uint nrofRedials=0, const uint redialPeriod=0, const bool autoStartVM=false, const Sid::String origin="")
bool RingIt ()
bool SetLiveIdentityToUse (const Sid::String identityToUse="")
bool GetVideo (VideoRef &video)
bool Hangup ()
bool Retire ()
virtual void OnIncomingDTMF (const DTMF &dtmf)
bool GetPropConvoId (ConversationRef &convo_id)
bool GetPropIdentity (Sid::String &identity)
bool GetPropRank (RANK &rank)
bool GetPropRequestedRank (RANK &requested_rank)
bool GetPropTextStatus (TEXT_STATUS &text_status)
bool GetPropVoiceStatus (VOICE_STATUS &voice_status)
bool GetPropVideoStatus (VIDEO_STATUS &video_status)
bool GetPropLiveIdentity (Sid::String &live_identity)
bool GetPropLivePriceForMe (Sid::String &live_price_for_me)
bool GetPropLiveFwdIdentities (Sid::String &live_fwd_identities)
bool GetPropLiveStartTimestamp (uint &live_start_timestamp)
bool GetPropSoundLevel (uint &sound_level)
bool GetPropDebuginfo (Sid::String &debuginfo)
bool GetPropLastVoiceError (Sid::String &last_voice_error)
bool GetPropQualityProblems (Sid::String &quality_problems)
bool GetPropLiveType (uint &live_type)
bool GetPropLiveCountry (Sid::String &live_country)
bool GetPropTransferredBy (Sid::String &transferred_by)
bool GetPropTransferredTo (Sid::String &transferred_to)
bool GetPropAdder (Sid::String &adder)

Detailed Description

Conversation participant class. Instances of this class represent contacts when in the context of conversations. Amongst others, this class has a Ring method for requesting live status with the target contact. This class also holds typing indicator property and access rights for the contact in context of public conversations.
.

Examples:

tutorial_5.cpp, and tutorial_7.cpp.

Definition at line 804 of file skype-embedded_2.h.


Member Typedef Documentation

Definition at line 813 of file skype-embedded_2.h.

Definition at line 814 of file skype-embedded_2.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
MODULE_ID 

Definition at line 815 of file skype-embedded_2.h.

Enumerator:
DTMF_0 
DTMF_1 
DTMF_2 
DTMF_3 
DTMF_4 
DTMF_5 
DTMF_6 
DTMF_7 
DTMF_8 
DTMF_9 
DTMF_STAR 
DTMF_POUND 

Definition at line 898 of file skype-embedded_2.h.

Properties of the Participant class

Enumerator:
P_CONVO_ID 

[ALL] ID of corresponding conversation. Here and below, [ALL] tag indicates that the property has meaning and is set in context of all participants in the conversation. [OTHERS] tag has meaning only for participants who are not the local user.
, type: ConversationRef

P_IDENTITY 

[ALL] skypename OR pstn_number OR namespace:identity, type: Sid::String

P_RANK 

[ALL] Participant::RANK, type: RANK

P_REQUESTED_RANK 

Not set (should be: requested Participant::RANK, higher than the current one), type: RANK

P_TEXT_STATUS 

[ALL] the typing indicator, type: TEXT_STATUS

P_VOICE_STATUS 

[ALL] voice status, type: VOICE_STATUS

P_VIDEO_STATUS 

[ALL] video status, type: VIDEO_STATUS

P_LIVE_IDENTITY 

[ALL] identity that was used to establish current live session with that participant (can be different from participant identity), type: Sid::String

P_LIVE_PRICE_FOR_ME 

[OTHERS] 'price_per_minute_float currency' - eg '0.01 EUR'. Note that this property obtains value only after the participant goes into live state. It cannot be used to display call rates before the call starts.
, type: Sid::String

P_LIVE_FWD_IDENTITIES 

[OTHERS] list of identities where the live session is being forwarded (if they are disclosed), space separated, type: Sid::String

P_LIVE_START_TIMESTAMP 

[ALL] time of joining the live session, type: uint

P_SOUND_LEVEL 

[ALL] current 'loudness' level when SPEAKING (0..10), type: uint

P_DEBUGINFO 

[OTHERS] call (audio and video) debug info, type: Sid::String

P_LAST_VOICE_ERROR 

[OTHERS], type: Sid::String

P_QUALITY_PROBLEMS 

[ALL] space separated tokens values: CPU_INUSE CPU_SLOW CPU_HIGH HIGH_ECHO HIGH_NOISE MUTED_INPUT LOW_INPUT MUTED_INPUT_ACTIVITY FW_STRONG FW_BAD NOT_UDP CALL_BW_LOW RECORD_ERROR + values in video debug info, type: Sid::String

P_LIVE_TYPE 

[ALL] participant type during livesession as specified in IDENTITYTYPE, type: contact::IDENTITYTYPE

P_LIVE_COUNTRY 

[OTHERS] participant livesession country code - used for emergency calls only atm, type: Sid::String

P_TRANSFERRED_BY 

[OTHERS] Transferor identity (transferee side)
, type: Sid::String

P_TRANSFERRED_TO 

[OTHERS] Identity of recipient of transfer (transferor side, caller side)
, type: Sid::String

P_ADDER 

[ALL] Identity of the user who added this participant to the conversation, type: Sid::String
, type: Sid::String

Definition at line 829 of file skype-embedded_2.h.

Recognized values for the P_RANK property. The P_RANK controls participant's privileges in the conversation. See Participant::CanSetRankTo and Participant::SetRankTo methods.

Enumerator:
CREATOR 

Creator of the chat. There can be only one participant with this type per conversation. Other participants cannot be promoted to Creator rank.

ADMIN 

Participant who has administrator privileges

SPEAKER 

Participant who can speak and write

WRITER 

Participant who can write but not speak

SPECTATOR 

Participant who can read but not write/speak

APPLICANT 

Participant who is applying to join the conversation. Member cannot be demoted to applicants once they have been accepted.

RETIRED 

Participant who has eft or has been kicked from the conversation

OUTLAW 

Participant who has been banned from the chat

Definition at line 853 of file skype-embedded_2.h.

Recognized values for the P_TEXT_STATUS property. The P_TEXT_STATUS property has two uses. Firstly, you can use it to implement typing indicators in your UI, to notify the local user that an incoming chat message from this Participant is imminent.

To set the P_TEXT_STATUS value, so that remote client UIs can display the local user's typing indicator in their UI, use Conversation::SetMyTextStatusTo method.

Transmission of P_TEXT_STATUS updates to remote participants of conversations is controlled via SETUPKEY_DISABLE_CHAT_ACTIVITY_INDICATION setup key.

Secondly, the TEXT_NA value enables you to detect participants who are running clients with no chat capability.

Enumerator:
TEXT_UNKNOWN 

Fallback state in case the text status is not (yet) deternmined.

TEXT_NA 

Text status is not applicable as the participant is using a Skype client that does not support chat (for example: voice-only USB phones).

READING 

Participant is currently not typing.

WRITING 

Participant is currently typing.

WRITING_AS_ANGRY 

This state should be set when following two conditions are true:

  • interval between keypresses are less than 20 ms;
  • at least one of the keys adjacent to current key are pressed down.
WRITING_AS_CAT 

The "Cat on keyboard detection" algorthm in Skype is implemented in the UI level, and as such is not present in the SkypeKit API. Should you wish to implement similar algorthm in your own UI, you can get the basic logic from the PawSense FAQ - http://www.bitboost.com/pawsense/pawsense-faq.html

Definition at line 865 of file skype-embedded_2.h.

Recognized values for the P_VIDEO_STATUS property. This property applies to Participant's video send capability, not capability to receive video.

Enumerator:
VIDEO_UNKNOWN 

Video status is not (yet) determined.

VIDEO_NA 

Indicates that this Participant does not have video available..

VIDEO_AVAILABLE 

Indicates that video is available for this participant. When the Participant::P_VIDEO_STATUS obtains this state, it is possible to retrieve the Video object, using Participant::GetVideo method. Further operations, such as starting or stopping the video send/receive will then go through the Video object.

VIDEO_CONNECTING 

Transitional state indicating that the Participant is attempting to initiate video send.

STREAMING 

Indicates that the participant is currently sending video.

VIDEO_ON_HOLD 

Indicates that the participant video send is currently paused.

Definition at line 889 of file skype-embedded_2.h.

Recognized values for the P_VOICE_STATUS property.

Enumerator:
VOICE_UNKNOWN 

Participant voice status is not (yet) determined.

VOICE_NA 

Participant is using a Skype client with no audio capability.

VOICE_AVAILABLE 

Participant is using a Skype client that supports audio.

VOICE_CONNECTING 

Participant is in process of joining current live session. This is a transitional state.

RINGING 

Participant has been invited to join the live session but has not yet accepted.

EARLY_MEDIA 

Participant is in process of joining current live session. This is another transitional state.

LISTENING 

Participant has joined the current live session but is currently not transmitting audio.

SPEAKING 

Participant has joined the current live session and is transmitting audio. The UI can either use this state to display appropriate "speaking" notification, or alternatively use Participant::P_SOUND_LEVEL if you want your speaking indicator to also reflect audio volume coming from the Participant.

VOICE_ON_HOLD 

Participant has joined the current live session but the audio is currently on hold.

VOICE_STOPPED 

Participant will be placed in this state for some seconds after live session has finished. This is another transitional state.

Definition at line 875 of file skype-embedded_2.h.


Constructor & Destructor Documentation

Participant::~Participant (  )  [virtual]

Definition at line 369 of file skype-embedded_2.cpp.


Member Function Documentation

bool Participant::CanSetRankTo ( const RANK rank,
bool &  result 
)

Checks whether the current user can set this Participant's conversation privileges to the specified RANK. This enables you to gray out or disable in your UI all the unavailable options for Participant::SetRankTo method.

Parameters:
rank Participant::RANK value to check for.
result Returns true if local user can set participant's rank to the value given in rank argument.
bool Participant::GetPropAdder ( Sid::String &  adder  ) 

Participant::P_ADDER property get accessor

bool Participant::GetPropConvoId ( ConversationRef convo_id  ) 

Participant::P_CONVO_ID property get accessor

bool Participant::GetPropDebuginfo ( Sid::String &  debuginfo  ) 

Participant::P_DEBUGINFO property get accessor

bool Participant::GetPropIdentity ( Sid::String &  identity  ) 

Participant::P_IDENTITY property get accessor

bool Participant::GetPropLastVoiceError ( Sid::String &  last_voice_error  ) 

Participant::P_LAST_VOICE_ERROR property get accessor

bool Participant::GetPropLiveCountry ( Sid::String &  live_country  ) 

Participant::P_LIVE_COUNTRY property get accessor

bool Participant::GetPropLiveFwdIdentities ( Sid::String &  live_fwd_identities  ) 

Participant::P_LIVE_FWD_IDENTITIES property get accessor

bool Participant::GetPropLiveIdentity ( Sid::String &  live_identity  ) 

Participant::P_LIVE_IDENTITY property get accessor

bool Participant::GetPropLivePriceForMe ( Sid::String &  live_price_for_me  ) 

Participant::P_LIVE_PRICE_FOR_ME property get accessor

bool Participant::GetPropLiveStartTimestamp ( uint &  live_start_timestamp  ) 

Participant::P_LIVE_START_TIMESTAMP property get accessor

bool Participant::GetPropLiveType ( uint &  live_type  ) 

Participant::P_LIVE_TYPE property get accessor

bool Participant::GetPropQualityProblems ( Sid::String &  quality_problems  ) 

Participant::P_QUALITY_PROBLEMS property get accessor

bool Participant::GetPropRank ( RANK rank  ) 

Participant::P_RANK property get accessor

bool Participant::GetPropRequestedRank ( RANK requested_rank  ) 

Participant::P_REQUESTED_RANK property get accessor

bool Participant::GetPropSoundLevel ( uint &  sound_level  ) 

Participant::P_SOUND_LEVEL property get accessor

bool Participant::GetPropTextStatus ( TEXT_STATUS text_status  ) 

Participant::P_TEXT_STATUS property get accessor

bool Participant::GetPropTransferredBy ( Sid::String &  transferred_by  ) 

Participant::P_TRANSFERRED_BY property get accessor

bool Participant::GetPropTransferredTo ( Sid::String &  transferred_to  ) 

Participant::P_TRANSFERRED_TO property get accessor

bool Participant::GetPropVideoStatus ( VIDEO_STATUS video_status  ) 

Participant::P_VIDEO_STATUS property get accessor

bool Participant::GetPropVoiceStatus ( VOICE_STATUS voice_status  ) 

Participant::P_VOICE_STATUS property get accessor

bool Participant::GetVideo ( VideoRef video  ) 

Retrieves a reference to the Video object that corresponds to the Participant. It can be either local video - you can check if this participant's name (P_IDENTITY property) matches the name of the currently logged in account (P_SKYPENAME property) or incoming video from a remote participant.

Note that for GetVideo to be successful, the video has to be available for that participant. This can be checked for by examining Participant VIDEO_STATUS property - once it becomes VIDEO_AVAILABLE - you can use GetVideo to obtain the Video object.

Parameters:
video Returns reference to a constructed video object.
bool Participant::Hangup (  ) 

Removes this participant from the current live session. Note that this does not remove the participant from conversation (for this, use Participant::Retire). It only removes participant from live state.

virtual void Participant::OnIncomingDTMF ( const DTMF dtmf  )  [virtual]

This event gets fired on receiving a DTMF signal sent by Participant. Note that this event will only fire if the Participant is also using a Skype client. Skype audio library does not monitor incoming voice streams for dial tones. DTMF events are propagated to remote participants via data channel. Incoming DTMF tones transmitted from, for example, mobile phones, will not cause this event to fire. In case of incoming DTMF signals from Skype clients, DTMF tones are also inserted into the audio stream. You don't have to inject those into local audio playback yourself.

Parameters:
dtmf Returns Participant::DTMF value.
ParticipantRef Participant::ref (  )  [inline]

Definition at line 816 of file skype-embedded_2.h.

bool Participant::Retire (  ) 

Forcibly removes this participant from conversation. This method is for removing other people from conversations (for example: as administrative punishment for flooding conversation with spam messages). For local user to leave a conversation, use Conversation::RetireFrom instead.

bool Participant::Ring ( const Sid::String  identityToUse = "",
const bool  videoCall = false,
const uint  nrofRedials = 0,
const uint  redialPeriod = 0,
const bool  autoStartVM = false,
const Sid::String  origin = "" 
)

Initiates live conversation attempt with Participant.

Parameters:
identityToUse Ring an alternate identity, such as a PSTN number.
videoCall Enable video.
nrofRedials Unused.
redialPeriod Unused.
autoStartVM Unused. On dialog, if falling on VM, greeting and recording will be automatically started.
origin When call is initiated from web link, must contain the URI that was used
bool Participant::RingIt (  ) 

Rings this participant, using P_LIVE_IDENTITY property if set.

bool Participant::SetLiveIdentityToUse ( const Sid::String  identityToUse = ""  ) 

Sets LIVE_IDENTITY property, an alternate identity to use when ringing, such as a PSTN.

Parameters:
identityToUse Empty string will reset it to default, i.e IDENTITY property value
bool Participant::SetRankTo ( const RANK rank  ) 

Sets Participant's conversation privileges to the given RANK

Parameters:
rank Target Participant::RANK value.

The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

(c) Skype Technologies S.A. Confidential/Proprietary

Last updated: Fri Mar 16 2012