The custom user-defined activity text augments the online status value.
It is encoded in UTF-16 and in the locale specified during application creation. The value of this string is localized in the current application's culture provided the localized string exists in the contact's publication.
Otherwise, the value of this string is one of the well known activity strings in which case the application is responsible for the localization. The well known ones are:
"in-a-meeting", (user has an accepted meeting) "urgent-interruptions-only", (busy) "on-the-phone", (speaking with one person) "in-a-conference", (speaking with more than one person) "off-work", "out-of-office", "presenting".
This may either be a remote URL to a PNG or a JPEG picture or a data URL with embedded picture data.
Like note, the capabilities is not a property, but an object containing the following sub-properties (all of which contain boolean flags indicating whether the person is capable of communicating using certain modalities):
var modalities = person.capabilities;
if (!modalities.audio())
console.log("audio not supported");
Since capabilities is not a property itself, it can not be subscribed to; but its sub-properties can be subscribed to:
// get capabilities object
var modalities = person.capabilities;
// subscribe to changes of capabilities.audio
modalities.audio.subscribe();
modalities.audio.changed((f) => {
console.log("audio modality is " + f ?
'supported' : 'not supported');
});
Alias to the first email address in the emails collection.
All email addresses.
The device type on which the contact has been the most active.
SIP URI of this person. i.e. "sip:johndoe@contoso.com"
When the status is 'Away' this indicates when the person was last available
var location = person.location(); // read the location person.location.subscribe(); // subscribe to location changes person.location.changed((location) => { console.log("new location is " + location); }); Performing a reset on this tells the server to pick the most appropriate value for location
var note = person.note; // get the note object note.text.subscribe(); // subscribe to changes of note.text note.text.changed((t) => { console.log("new note is " + t); }); Performing a reset on this tells the server to pick the most appropriate value for note
Sorted by type.
Performing a reset on this tells the server to pick the most appropriate value for status
Represents the signed-in user.
Essentially, this object is a person object with the ability to change certain properties. It must be noted that the user may be signed on multiple endpoints and all these endpoints may be sending simultaneous requests to change the online status, change the note text and so on. The server aggregates these requests and notifies all the endpoints of the aggregated user state change.