Address book entry. Encapsulates methods like GetIdentity, GetAvatar, SendAuthRequest, OpenConversation etc. Single contact can have additional phone numbers attached to it (ASSIGNED_PHONE1 .. ASSIGNED_PHONE3). Note that in the context of a conversation, Contacts are represented by Participant objects. More...
#include <skype-embedded_2.h>
Address book entry. Encapsulates methods like GetIdentity, GetAvatar, SendAuthRequest, OpenConversation etc. Single contact can have additional phone numbers attached to it (ASSIGNED_PHONE1 .. ASSIGNED_PHONE3). Note that in the context of a conversation, Contacts are represented by Participant objects.
Contact member functions all return a Boolean indicating the success (true) or failure (false) of processing the request itself (transport, runtime availability, and so forth)?not the success or failure of its associated functionality. For example, Contact::IsMemberOf returns true if it was able to make a determination, and its result parameter reflects whether this Contact is a member of the target group. Similarly, Contact::IsMemberOf returns false if it was unable to make a determination, and the value of its result parameter is undefined.
Definition at line 207 of file skype-embedded_2.h.
| typedef ContactRef Contact::Ref |
Definition at line 216 of file skype-embedded_2.h.
| typedef ContactRefs Contact::Refs |
Definition at line 217 of file skype-embedded_2.h.
| anonymous enum |
Definition at line 218 of file skype-embedded_2.h.
| enum Contact::AUTHLEVEL |
Describes the recognized relational states between a local account and a remote contact.
| NONE |
Authorization request is either ignored or pending. In this state several functionalities may be blocked, depending on settings. For example, accounts may only allow seeing online presence to be viewable or only receive calls from authorized contacts. |
| AUTHORIZED_BY_ME |
Contact has been authorized by the local account. |
| BLOCKED_BY_ME |
Contact has been blocked by the local account. This prevents incoming calls, chat messages, additional authorization requests etc. |
Definition at line 291 of file skype-embedded_2.h.
Describes the superset list of possible Account and Contact online statuses. In case of Account they apply to local user, in case of Contact they apply to remote contacts.
| UNKNOWN |
Contact online status cannot be determined. This availability state should not normally reach the SkypeKit UI level. |
| PENDINGAUTH |
Seeing Contact online status is blocked because authorization between contact and local account has not taken place. |
| BLOCKED |
Remote contact has been blocked by local account. This applies to online accounts. |
| BLOCKED_SKYPEOUT |
Remote SkypeOut contact has been blocked by local account. |
| SKYPEOUT |
Contact does not have an online status because he is a PSTN contact. |
| OFFLINE |
Contact appears to be offline. |
| OFFLINE_BUT_VM_ABLE |
Contact appears to be offline but has voicemail enabled. |
| OFFLINE_BUT_CF_ABLE |
Contact appears to be offline but has enabled call forwarding, so calls may actually get through to him. |
| ONLINE | |
| AWAY |
Contact / Account is online but away from keyboard. This can be either turned on manually or by automatic timer. In Windows desktop client, the timer can be configured with minute precision. |
| NOT_AVAILABLE |
This online status is marked as deprecated. If a remote contact indicates its status as NOT_AVAILABLE, the UI should handle this as equivalent of AWAY status. |
| DO_NOT_DISTURB |
Contact / Account is online but does not wish to be disturbed. This status supersedes AWAY status when the account is DO_NOT_DISTURB the AWAY timer should not modify the status. |
| SKYPE_ME |
This online status is marked as deprecated. If a remote contact indicates its status as SKYPE_ME, the UI should handle this as equivalent of ONLINE status. |
| INVISIBLE |
Account status is set to INVISIBLE. This status in not applicable to remote Contacts. When the remote contact has set his availability to INVISIBLE, he will appear as OFFLINE to others. |
| CONNECTING |
only possible for local user/account |
| ONLINE_FROM_MOBILE | |
| AWAY_FROM_MOBILE |
*_FROM_MOBILE only possible for remote user |
| NOT_AVAILABLE_FROM_MOBILE | |
| DO_NOT_DISTURB_FROM_MOBILE | |
| SKYPE_ME_FROM_MOBILE |
Definition at line 298 of file skype-embedded_2.h.
| enum Contact::CAPABILITY |
This enumerator is used by both Contact and Account objects. Thus the items here can have slightly different meaning, depending on which context you will examine their values. In case of Contact, the values apply to a user - across all the instances that user has logged in with Skype. In case of Account, the capability is that of a local, currently logged in instance of Skype client.
The values that CAPABILITY items can have are also dependant on class context. In context of Contact, a capability can be CAPABILITY_MIXED. Which in case of CAPABILITY_VIDEO, for example, would mean that the remote use has logged in with different clients, some of which support video calls and some of which don't. In context of Account - there are no mixed result. Currently logged in Skype instance either supports video or it doesn't.
| CAPABILITY_VOICEMAIL |
For Account object, this is the same as CAPABILITY_CAN_BE_SENT_VM - it indicates that the currently logged in Skype instance supports voicemails. For Contact objects, it means that their remote system supports sending voicemails - there is no technical method for Skype to detect whether they are capable of receiving voicemails, so the assumption is that they can. |
| CAPABILITY_SKYPEOUT |
Indicates that the contact/account has SkypeOut and is thus capable of making PSTN calls. |
| CAPABILITY_SKYPEIN |
Indicates that the contact/account has SkypeIn and is thus capable of answering PSTN calls. |
| CAPABILITY_CAN_BE_SENT_VM |
For contacts, this is a combination of CAPABILITY_VOICEMAIL for local account (local Skype client supports sending voicemails) and CAPABILITY_VOICEMAIL of the Contact - if the contact supports sending voicemails then hopefully they can also receive them. |
| CAPABILITY_CALL_FORWARD |
Indicates that Account/Contact supports call forwarding. |
| CAPABILITY_VIDEO |
Indicates that Account/Contact supports call video calls. |
| CAPABILITY_TEXT |
In context of Contact, this indicates that the user is noticed running at least one Skype implementation that supports text messaging. Basically, it applies to a user. When applied to Account, the meaning is slightly different. In that case it indicates that currently running Skype implementation supports chat messaging. So, for Account objects, this is a node (rather than user) capability. |
| CAPABILITY_SERVICE_PROVIDER |
Indicates that the contact/account is flagged as SkypePrime service provider. This is linked to Account class SERVICE_PROVIDER_INFO property. |
| CAPABILITY_LARGE_CONFERENCE |
This is a legacy item, from the old times when conference calls with more than 5 people were limited to SkypePro accounts. In other words, this item is no longer relevant and will likely be removed at some point in future. |
| CAPABILITY_COMMERCIAL_CONTACT | |
| CAPABILITY_PSTN_TRANSFER |
Indicates that Account/Contact supports call transfers to PSTN numbers. |
| CAPABILITY_TEXT_EVER |
Indicates that the user has had his chat capability removed by Skype. Basically, this means that the user is reported as spammer too many times. This applies for both Contact and Account objects - which means your client can check locally, if the currently logged in user has been marked as a spammer. |
| CAPABILITY_VOICE_EVER |
Indicates that the user (Account or Contact) has had his voice call capability removed by Skype. |
| CAPABILITY_MOBILE_DEVICE |
Indicates that the instance of Skype client Account/Contact is or in Contact's case has at least occasionally been flagged as a mobile device. |
| CAPABILITY_PUBLIC_CONTACT |
Definition at line 403 of file skype-embedded_2.h.
List of possible states of each of the Contact class CAPABILITY items.
| NO_CAPABILITY |
Contact does not have the capability |
| CAPABILITY_MIXED |
Contact has occasionally logged in with Skype client that supports the capability. For example, a contact may have Skype client on several machines, only some of which have webcam - in which case CAPABILITY_VIDEO would have its value set as CAPABILITY_MIXED. |
| CAPABILITY_EXISTS |
Contact has the capability |
Definition at line 422 of file skype-embedded_2.h.
| SEND_VERIFIED_EMAIL |
send verified e-mail blob with this auth request |
| SEND_VERIFIED_COMPANY |
send verified company blob with this auth request |
Definition at line 374 of file skype-embedded_2.h.
| enum Contact::PROPERTY |
Properties of the Contact class
| P_TYPE |
type: Contact::TYPE |
| P_SKYPENAME |
defined if it is a SKYPE contact, type: Sid::String |
| P_PSTNNUMBER |
type: Sid::String |
| P_FULLNAME |
type: Sid::String |
| P_BIRTHDAY |
integer of YYYYMMDD format, type: uint |
| P_GENDER |
1-male, 2-female, type: uint |
| P_LANGUAGES |
ISO language code list, space separated, type: Sid::String |
| P_COUNTRY |
ISO country code, type: Sid::String |
| P_PROVINCE |
type: Sid::String |
| P_CITY |
type: Sid::String |
| P_PHONE_HOME |
This corresponds to the Account::P_PHONE_HOME property. The value is set by the remote user in Account profile. As Contact property, this is read-only. |
| P_PHONE_OFFICE |
This corresponds to the Account::P_PHONE_OFFICE property. The value is set by the remote user in Account profile. As Contact property, this is read-only. If the Contact has not populated his Account profile with sufficient phone numbers, the UI should implement locally adding additional phone numbers to Contact P_ASSIGNED_PHONE1 .. P_ASSIGNED_PHONE3 properties (and corresponding labels). See Contact::SetPhoneNumber method for more information. |
| P_PHONE_MOBILE |
This corresponds to the Account::P_PHONE_MOBILE property. The value is set by the remote user in Account profile. As Contact property, this is read-only. |
| P_EMAILS |
will be hashed before advertising/querying, space separated, type: Sid::String |
| P_HOMEPAGE |
type: Sid::String |
| P_ABOUT |
arbitrary introductory text, type: Sid::String |
| P_AVATAR_IMAGE |
Contact avatar pictures are in JPG format. The original size of avatar pictures are in no more than 96 x 96 pixels in size. However, as they can be smaller, scaling the pictures up too much to fit your UI can lead to distorted images. |
| P_MOOD_TEXT |
Personal mood message (visible to authorized users only). |
| P_RICH_MOOD_TEXT |
XML version of personal mood text, type: Sid::String |
| P_TIMEZONE |
24*3600+diff_to_UTC_in_seconds. NB! changes with DST |
| P_CAPABILITIES |
binary tag that can be queried via Contact::HasCapability(), type: Sid::Binary |
| P_PROFILE_TIMESTAMP |
UNIX timestamp of last profile change, type: uint |
| P_NROF_AUTHED_BUDDIES |
count of this user's authorized contacts |
| P_IPCOUNTRY |
ISO country code assigned by the IP, type: Sid::String |
| P_AVATAR_TIMESTAMP |
UNIX timestamp of when current avatar was set, type: uint |
| P_MOOD_TIMESTAMP |
NOT SET FOR CONTACTS. For Account object, UNIX timestamp of when current mood was set, type: uint |
| P_RECEIVED_AUTHREQUEST |
set if the contact is waiting to be authorized. The value contains auth. request text |
| P_AUTHREQ_TIMESTAMP |
timestamp of last received auth-request, type: uint |
| P_LASTONLINE_TIMESTAMP |
X timestamp of last successful ping to that user, type: uint |
| P_AVAILABILITY |
Contact::AVAILABILITY, type: AVAILABILITY |
| P_DISPLAYNAME |
always set (assigned by lib by looking at various fields), type: Sid::String |
| P_REFRESHING |
true if querying additional information from p2p or server |
| P_GIVEN_AUTHLEVEL |
Contact::AUTHLEVEL, change via Contact::GiveAuthlevel(), type: AUTHLEVEL |
| P_GIVEN_DISPLAYNAME |
change via Contact::GiveDisplayname(), type: Sid::String |
| P_ASSIGNED_COMMENT |
change via Contact::AssignComment(), type: Sid::String |
| P_LASTUSED_TIMESTAMP |
UNIX timestamp of last outbound session (call, chat, FT, etc), type: uint |
| P_AUTHREQUEST_COUNT |
for contacts that have CONTACT_RECEIVED_AUTHREQUEST, how many times in a row they have requested it without positive answer, type: uint |
| P_ASSIGNED_PHONE1 |
Office phone no. of the contact. This property should NOT be used for SkypeOut contacts |
| P_ASSIGNED_PHONE1_LABEL |
Value "1" in this property will be translated as "Office" by Skype Windows desktop client, according to UI language settings |
| P_ASSIGNED_PHONE2 |
Mobile phone no. of the contact |
| P_ASSIGNED_PHONE2_LABEL |
Value "2" in this property will be translated as "Mobile" by Skype Windows desktop client, according to UI language settings |
| P_ASSIGNED_PHONE3 |
"Other phone no. of the contact, type: Sid::String |
| P_ASSIGNED_PHONE3_LABEL |
Value "3" in this property will be translated as "Other" by Skype Windows desktop client, according to UI language settings |
| P_POPULARITY_ORD |
Contact's order by presence popularity |
Definition at line 232 of file skype-embedded_2.h.
| enum Contact::TYPE |
Same as with CAPABILITY, enumerator is used by both Contact and Account objects.
| UNRECOGNIZED |
Contact/account has no pre-identified type. This type is reported by default for SkypeKit clients. |
| SKYPE |
Normal Skype contact. |
| PSTN |
Normal PSTN contact. |
| EMERGENCY_PSTN |
Emergency number (i.e. 911). |
| FREE_PSTN | |
| UNDISCLOSED_PSTN |
Undisclosed PSTN number. |
| EXTERNAL |
This type is currently used by Windows desktop clients for contacts imported from Outlook. |
Definition at line 280 of file skype-embedded_2.h.
| Contact::~Contact | ( | ) | [virtual] |
Definition at line 85 of file skype-embedded_2.cpp.
| bool Contact::GetAvatar | ( | bool & | present, | |
| Sid::Binary & | avatar | |||
| ) |
| bool Contact::GetCapabilityStatus | ( | const CAPABILITY & | capability, | |
| CAPABILITYSTATUS & | status, | |||
| const bool | queryServer = false | |||
| ) |
Retrieves a Contact::Capability value. Sets P_REFRESHING to true while querying from server.
| capability | The target capability, see Contact::Capability enumerator. | |
| status | Status of the target capability. | |
| queryServer |
|
| bool Contact::GetIdentity | ( | Sid::String & | identity | ) |
| identity | returns CONTACT_SKYPENAME or CONTACT_PSTNNUMBER value |
| bool Contact::GetPropAbout | ( | Sid::String & | about | ) |
Contact::P_ABOUT property get accessor
| bool Contact::GetPropAssignedComment | ( | Sid::String & | assigned_comment | ) |
Contact::P_ASSIGNED_COMMENT property get accessor
| bool Contact::GetPropAssignedPhone1 | ( | Sid::String & | assigned_phone1 | ) |
Contact::P_ASSIGNED_PHONE1 property get accessor
| bool Contact::GetPropAssignedPhone1Label | ( | Sid::String & | assigned_phone1_label | ) |
Contact::P_ASSIGNED_PHONE1_LABEL property get accessor
| bool Contact::GetPropAssignedPhone2 | ( | Sid::String & | assigned_phone2 | ) |
Contact::P_ASSIGNED_PHONE2 property get accessor
| bool Contact::GetPropAssignedPhone2Label | ( | Sid::String & | assigned_phone2_label | ) |
Contact::P_ASSIGNED_PHONE2_LABEL property get accessor
| bool Contact::GetPropAssignedPhone3 | ( | Sid::String & | assigned_phone3 | ) |
Contact::P_ASSIGNED_PHONE3 property get accessor
| bool Contact::GetPropAssignedPhone3Label | ( | Sid::String & | assigned_phone3_label | ) |
Contact::P_ASSIGNED_PHONE3_LABEL property get accessor
| bool Contact::GetPropAuthreqTimestamp | ( | uint & | authreq_timestamp | ) |
Contact::P_AUTHREQ_TIMESTAMP property get accessor
| bool Contact::GetPropAuthrequestCount | ( | uint & | authrequest_count | ) |
Contact::P_AUTHREQUEST_COUNT property get accessor
| bool Contact::GetPropAvailability | ( | AVAILABILITY & | availability | ) |
Contact::P_AVAILABILITY property get accessor
| bool Contact::GetPropAvatarImage | ( | Sid::Binary & | avatar_image | ) |
Contact::P_AVATAR_IMAGE property get accessor
| bool Contact::GetPropAvatarTimestamp | ( | uint & | avatar_timestamp | ) |
Contact::P_AVATAR_TIMESTAMP property get accessor
| bool Contact::GetPropBirthday | ( | uint & | birthday | ) |
Contact::P_BIRTHDAY property get accessor
| bool Contact::GetPropCapabilities | ( | Sid::Binary & | capabilities | ) |
Contact::P_CAPABILITIES property get accessor
| bool Contact::GetPropCity | ( | Sid::String & | city | ) |
Contact::P_CITY property get accessor
| bool Contact::GetPropCountry | ( | Sid::String & | country | ) |
Contact::P_COUNTRY property get accessor
| bool Contact::GetPropDisplayname | ( | Sid::String & | displayname | ) |
Contact::P_DISPLAYNAME property get accessor
| bool Contact::GetPropEmails | ( | Sid::String & | emails | ) |
Contact::P_EMAILS property get accessor
| bool Contact::GetPropFullname | ( | Sid::String & | fullname | ) |
Contact::P_FULLNAME property get accessor
| bool Contact::GetPropGender | ( | uint & | gender | ) |
Contact::P_GENDER property get accessor
| bool Contact::GetPropGivenAuthlevel | ( | AUTHLEVEL & | given_authlevel | ) |
Contact::P_GIVEN_AUTHLEVEL property get accessor
| bool Contact::GetPropGivenDisplayname | ( | Sid::String & | given_displayname | ) |
Contact::P_GIVEN_DISPLAYNAME property get accessor
| bool Contact::GetPropHomepage | ( | Sid::String & | homepage | ) |
Contact::P_HOMEPAGE property get accessor
| bool Contact::GetPropIpcountry | ( | Sid::String & | ipcountry | ) |
Contact::P_IPCOUNTRY property get accessor
| bool Contact::GetPropLanguages | ( | Sid::String & | languages | ) |
Contact::P_LANGUAGES property get accessor
| bool Contact::GetPropLastonlineTimestamp | ( | uint & | lastonline_timestamp | ) |
Contact::P_LASTONLINE_TIMESTAMP property get accessor
| bool Contact::GetPropLastusedTimestamp | ( | uint & | lastused_timestamp | ) |
Contact::P_LASTUSED_TIMESTAMP property get accessor
| bool Contact::GetPropMoodText | ( | Sid::String & | mood_text | ) |
Contact::P_MOOD_TEXT property get accessor
| bool Contact::GetPropMoodTimestamp | ( | uint & | mood_timestamp | ) |
Contact::P_MOOD_TIMESTAMP property get accessor
| bool Contact::GetPropNrofAuthedBuddies | ( | uint & | nrof_authed_buddies | ) |
Contact::P_NROF_AUTHED_BUDDIES property get accessor
| bool Contact::GetPropPhoneHome | ( | Sid::String & | phone_home | ) |
Contact::P_PHONE_HOME property get accessor
| bool Contact::GetPropPhoneMobile | ( | Sid::String & | phone_mobile | ) |
Contact::P_PHONE_MOBILE property get accessor
| bool Contact::GetPropPhoneOffice | ( | Sid::String & | phone_office | ) |
Contact::P_PHONE_OFFICE property get accessor
| bool Contact::GetPropPopularityOrd | ( | uint & | popularity_ord | ) |
Contact::P_POPULARITY_ORD property get accessor
| bool Contact::GetPropProfileTimestamp | ( | uint & | profile_timestamp | ) |
Contact::P_PROFILE_TIMESTAMP property get accessor
| bool Contact::GetPropProvince | ( | Sid::String & | province | ) |
Contact::P_PROVINCE property get accessor
| bool Contact::GetPropPstnnumber | ( | Sid::String & | pstnnumber | ) |
Contact::P_PSTNNUMBER property get accessor
| bool Contact::GetPropReceivedAuthrequest | ( | Sid::String & | received_authrequest | ) |
Contact::P_RECEIVED_AUTHREQUEST property get accessor
| bool Contact::GetPropRefreshing | ( | bool & | refreshing | ) |
Contact::P_REFRESHING property get accessor
| bool Contact::GetPropRichMoodText | ( | Sid::String & | rich_mood_text | ) |
Contact::P_RICH_MOOD_TEXT property get accessor
| bool Contact::GetPropSkypename | ( | Sid::String & | skypename | ) |
Contact::P_SKYPENAME property get accessor
| bool Contact::GetPropTimezone | ( | uint & | timezone | ) |
Contact::P_TIMEZONE property get accessor
| bool Contact::GetPropType | ( | Contact::TYPE & | type | ) |
Contact::P_TYPE property get accessor
| bool Contact::GetVerifiedCompany | ( | Sid::String & | company | ) |
returns verified-by-Skype company for this contact if exists and verifiable
| bool Contact::GetVerifiedEmail | ( | Sid::String & | ) |
returns verified-by-Skype e-mail for this contact if exists and verifiable
| bool Contact::GiveDisplayName | ( | const Sid::String & | name | ) |
sets CONTACT_GIVEN_DISPLAYNAME. clears if size(name)==0
| bool Contact::HasAuthorizedMe | ( | bool & | result | ) |
the contact has accepted my auth request
| bool Contact::HasCapability | ( | const CAPABILITY & | capability, | |
| bool & | result, | |||
| const bool | queryServer = false | |||
| ) |
Retrieves a Contact::Capability value. Sets P_REFRESHING to true while querying from server. This method is functionally the same as Contact::GetCapabilityStatus except that it returns a bool value rather than Contact::CAPABILITYSTATUS
| capability | The target capability | |
| result | ||
| queryServer |
|
| bool Contact::IgnoreAuthRequest | ( | ) |
Rejects and removes a pending authorization request from this Contact.
| bool Contact::IsMemberOf | ( | const ContactGroupRef & | group, | |
| bool & | result | |||
| ) |
| bool Contact::IsMemberOfHardwiredGroup | ( | const ContactGroup::TYPE & | groupType, | |
| bool & | result | |||
| ) |
Checks whether the contact is member of a pre-defined contact group given in the TYPE argument (type for this property comes from the ContactGroup class).
| groupType | The type designator of the target pre-defined contact group. For example, specify this parameter as ContactGroup::TYPE.RECENTLY_CONTACTED_CONTACTS to determine if you've had a recent conversation with this Contact. | |
| result |
| bool Contact::OpenConversation | ( | ConversationRef & | conversation | ) |
Retrieves a dialog conversation with the Contact.
| conversation | Retrieved dialog. |
| ContactRef Contact::ref | ( | ) | [inline] |
Definition at line 219 of file skype-embedded_2.h.
| bool Contact::RefreshProfile | ( | ) |
Refreshes all properties, capabilities, and statuses associated with this Contact from p2p/CBL, and sets P_REFRESHING to true for the duration.
| bool Contact::SendAuthRequest | ( | const Sid::String & | message, | |
| const uint | extras_bitmask = 0 | |||
| ) |
Sends a contact authorization request to this user.
| message | Text that typically introduces the requesting user and details the reason for the authorization request. This text will be set as Message::P_BODY_XML property of the notification Message the remote user will receive upon getting the authortization request. While this can be the empty string, it cannot be null. | |
| extras_bitmask | Indicates additional information to include with this authorization request:
|
| bool Contact::SetBlocked | ( | const bool & | blocked, | |
| const bool | abuse = false | |||
| ) |
Blocks or unblocks any further incoming communication attempts from this contact.
| bool Contact::SetBuddyStatus | ( | const bool & | isMyBuddy, | |
| const bool | syncAuth = true | |||
| ) |
Adds or removes this Contact from the ALL_BUDDIES hardwired group.
| isMyBuddy |
| |
| syncAuth | This argument is deprecated and should not be used. |
| bool Contact::SetPhoneNumber | ( | const uint & | num, | |
| const Sid::String & | label, | |||
| const Sid::String & | number | |||
| ) |
Sets the three P_ASSIGNED_PHONEx and P_ASSIGNED_PHONEx_LABEL properties, where x reflects the value of num.
The Skype Windows desktop client uses the following conventions when interpreting and assigning values to these properties. While your solution can assign arbitrary values to these properties, we strongly recommend using these conventions to ensure interoperability with the Skype Windows desktop client. Keep in mind that the "number" of these property pairs has no relationship to how the Skype Windows client interprets their label property value strings. For example, the Skype Windows client will interpret P_ASSIGNED_PHONE3_LABEL as "Home" if its value is the string "0".
Label strings:
Populate the label properties with string representations of the numbers "0" through "3", rather than descriptive strings like "Home", "Mobile", and so forth. The Skype desktop clients interpret the numeric string values as:
| num | The property pair being set, which must be in the range 0..3 | |
| label | The label text for the property being set | |
| number | The phone number for the property being set |
(c) Skype Technologies S.A. Confidential/Proprietary
Last updated: Fri Jan 27 2012