56
palais des congrès Paris 7, 8 et 9 février 2012

Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Embed Size (px)

DESCRIPTION

Découvrez les clients smartphones de Lync Mobile pour iPhone, iPad, Android, Symbian et bien sur Windows Phone; ainsi que les architectures mise en oeuvre sur les serveurs pour assurer les fonctions de Lync Mobile.

Citation preview

Page 1: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

palais des

congrès

Paris

7, 8 et 9

février 2012

Page 2: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Vous êtes dans la salle 352B

Page 3: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

8 Février 2012 Laïla Mansouri / Alexandre de Susini Ingénieurs support OCS / Lync Microsoft

Lync Mobile : Architecture et fonctionnalités

de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...) (MSG201)

Page 4: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Diversité des périphériques

Contrainte des OS mobile

Autonomie des devices

Hétérogénéité des réseaux

Mobilité

Haute Disponibilité

Transport de la voix

Introduction

Page 5: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Périphériques et fonctionnalités supportés

Démo

Architecture Mobility Service

Autodiscover Service

Push Notifications Service

Planning Mise à jour Serveur CU4 - Mobilité

Capacity planning

Prérequis DNS, certificats, firewall

Configuration Push notification

Prérequis users

Questions/Réponses

Sommaire

Page 6: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Windows Phone 7.5+

iPhone 3Gs/4 (iOS 4.1+)

iPad 2 (iOS 4.1+)

Androïd (2.3+)

Nokia E7 (Symbian3 SR1.1+) Disponible sur les différents Market Place

http://www.microsoft.com/france/serveur/lync/produit/lync-mobile.aspx

Périphériques supportés

Page 7: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Présence

Messagerie instantanée

Appel depuis le bureau

Numéro de portable confidentiel

Voix sur GSM

Coût communication nul pour l’utilisateur

Numéro unique

Transfert d’appel

Messagerie vocale

Conférence audio

Fonctionnalités

Page 8: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Couverture fonctionnelle

Windows Phone 7.5

iPhone iPad* Android Phone

Nokia Symbian

Voir les Photos & Contact Card, Voir et Mettre à jour l’état de disponibilité et le Status

Messagerie instantanée point à point et Multi-points (conférence)

Joindre en un simple clic une Audio Conference

Appel en utilisant l’infrastructure Lync

Numéro unique, sonnerie simultannée et transfert d’appel

*

*

*

Page 9: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

DEMO

Scénarios Windows Phone 7.5 / iPad 2

Page 10: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Lync aujourd’hui

Page 11: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Windows Phone 7.5+

Page 12: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

iPhone 3Gs/4 (iOS4.1+)

Page 13: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

iPad 2 (iOS4.1+)

Page 14: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Androïd (2.3+)

Page 15: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Lync…

Lync Server Edge ServerPasserelle RTC

Page 16: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Autodiscover Service

Mobility Service

Push Notifications Service

Architecture

Page 17: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Découvre les URL des web services

Permet de trouver son home pool

Autodiscover Service

Page 18: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Nouveaux noms DNS

lyncdiscoverinternal.<sipdomain>

lyncdiscover.<sipdomain>

Nouveau services IIS (Director/FE)

4 requêtes :

D’abord http et https vers lyncdiscoverinternal

Ensuite http et https vers lyncdiscover

Autodiscover Service

Page 19: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Autodiscover process

Page 20: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

<AutodiscoverResponse AccessLocation="External" >

<Domain>

<ServerVersion>14</ServerVersion>

<Link token="External/Autodiscover« href="https://ext.contoso.com/AutodiscoverService”/>

<Link token="External/Meet" href="https://ext. contoso.com/Meet"/>

<Link token="External/Abs" href="https://ext. contoso.com/abs/handler"/>

<Link token="External/Dlx" href="https://ext. contoso.com/groupexpansion/service.svc"/>

<Link token="External/Mcx" href="https://ext. contoso.com/Mcx/McxService.svc"/>

</Domain>

</AutodiscoverResponse>

(*)la requete est simplifiée elle contient toutes les URL interne et externe

Exemple de réponse Autodiscover (*)

Page 21: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Met en cache les données Presence, IM, Contact list

Convertit les paquets SIP/C3P en paquets HTTP

Assure la gestion du Push

Mobility Service

Page 22: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Nouveau service Windows (FE)

Basé sur la couche UCMA

Nouveau services IIS (FE)

Mobility Service

Page 23: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Mobility Service

Page 24: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Géré par le Mobility service

Capacité a « réveiller » une application

Basé sur le cloud de Microsoft (Lync Online)

Pour device Microsoft ou Apple

Push Notification Service

Page 25: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Push Notification Service

Page 26: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Architecture Lync Mobile

Page 27: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Mise à jour CU4 Installation ServerUpdate.exe

Mise à jour de la base de données

Installation Package McxStandalone.msi

Configuration Mobilité Capacity Planning

Web services Mobilité

Prérequis DNS, Certificats, Ports et Firewall

Activation Push Notification

Planning - Mobilité

Page 28: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Dernière mise à jour CU4

http://support.microsoft.com/kb/2493736

Package McxStandalone.msi

http://www.microsoft.com/download/en/details.aspx?id=28356.

Déploiement step by step : LS_Mobility.doc

http://www.microsoft.com/download/en/details.aspx?id=28355

Planning for Mobility :

http://technet.microsoft.com/en-us/library/hh689981.aspx

Liens utiles

Page 29: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Hypothèse : 20 % des Lync users sont des users mobiles.

Profile utilisateur supplémentaire.

End Point supplémentaire pour un user mobile

Ex users = 5000 et ratio user/MPOP=1.5

End points enregistrés = (5000*1.5)+(5000*20%)=8500.

Capacity Planning

Page 30: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Nouveaux web services dans Lync :

Microsoft Lync Server 2010 Autodiscover

service

Microsoft Lync Server 2010 Mobility

service

Choix entre :

Les Urls des web services existants

Les Urls de la découverte automatique

Serveur Lync

Page 31: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

hardcoded host names + SIPdomain

lyncdiscoverinternal.<sipdomain.com>

lyncdiscover.<sipdomain.com>

Publication de la règle au niveau du

Reverse Proxy.

Découverte automatiques des URLs

Page 32: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Prérequis DNS

Page 33: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Director Pool Certificate SAN=lyncdiscoverinternal.contoso.com (Internal Autodiscover URL)

SAN=lyncdiscover.contoso.com (External Autodiscover URL)

Front End Pool Certificate SAN=lyncdiscoverinternal.contoso.com (Internal Autodiscover URL)

SAN=lyncdiscover.contoso.com (External Autodiscover URL)

Reverse Proxy Certificate SAN=lyncdiscover.contoso.com (External Autodiscover URL)

Prérequis certificats

Page 34: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Configuration manuelle des ports via Powershell

Port 5086 :

Set-CSWebServer –McxSIPPrimaryListeningPort 5086

Port 5087 :

Set-CSWebServer –McxSIPExternalListeningPort 5087

Apple Notification à travers le Wi-fi

Règle Firewall pour le port 5223 sur le Wi-Fi de l’entreprise.

Prérequis Ports pour la mobilité

Page 35: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Ajout d’un Hosting provider : Microsoft Lync Online

Fédération entre votre organistion et Lync Online.

Activation en 2 étapes via Powershell.

New-CsHostingProvider –Identity "LyncOnline" –Enabled $True –ProxyFqdn "sipfed.online.lync.com" –VerificationLevel UseSourceVerification

New-CsAllowedDomain –Identity "push.lync.com"

Configuration Push Notification

Page 36: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Par défaut : Get-CsPushNotificationConfiguration

Personnalisation du service (MPN/APN)

Set-CsPushNotificationConfiguration

[-Identity <XdsIdentity>]

[-EnableApplePushNotificationService <$true | $false>]

[-EnableMicrosoftPushNotificationService <$true | $false>

Activation Push notification

Page 37: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Activé pour Lync 2010 server.

Activé entreprise voice (EV)

Voice Policy : Enable simultaneous ringing.

Set-CsVoicePolicy -AllowSimulRing $true PstnUsages @{remove="Local"}

Mobility Policy : EnableMobility à True

Set-CsMobilityPolicy -Identity "site:Redmond“-EnableMobility $True

Prérequis users

Page 38: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

DEMO

Scénarios Windows Phone 7.5 in depth

Page 39: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Laila envoie un IM

MCXLync Mobile Client Lync Server Lync Client

Initiate IM

Request Accepted IM InviteIM Invite200 OK

200 OKConversationStateConnected

SendMessage

Request Accepted IM MessageIM Message

200 OK200 OK

BYEBYE

ConversationStateDisconnected

Request Suceeded

1. Laila sélectionne la contacte card d’Alexandre et initie la session IM

3. La session IM est établie

4. Laila envoie un message instantané (IM)

2. Le destinataire, Alexandre, a été trouvé

5. Le message est recu par Alexandre

6. Laila reçoit la confirmation que son IM a bien été reçu

7. Le client destinataire, Alexandre, ferme la session.

8. Laila note que la session IM est déconnectée

Page 40: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Laila reçoit un IM

MCXLync Mobile Client Lync Server Lync Client

Accept IM invite

IM invite

IM inviteIM invite

TerminateConversation

Request Succeeded BYEBYE

200 OK200 OK

ConversationStateConnected

2. Le destinataire, Laila, a été trouvé, la session IM est établie, Le message est recu.

4.Dialogue IM

1. Alexandre sélectionne la contacte card de Laila et initie la session IM

3. Alexandre reçoit la confirmation que son IM a bien été reçu

5. Le client destinataire ferme la session.

6.L’expéditeur reçoit le BYE de fin de session

Request Accepted

Page 41: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Le Push…

Page 42: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Laila appelle Alexandre

Page 43: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

MPOP Scenario Desktop

Page 44: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

MPOP Scenario Mobile

Page 45: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Depuis le smarphone

Commandes PS pour tester la mobilité Test-CsMcxP2PIM Test-CsMcxConference Test-CsMcxPushNotification

Depuis les serveurs FE (Logging tool >> MCX service)

Trace réseau (FE, RP, Edge)

32 nouveaux compteurs de performances

Avant tout : suivre le doc de ref. LS_mobility.doc http://www.microsoft.com/download/en/details.aspx?id=28355

Troubleshooting Mobility

54

Page 46: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

MCX Performance Counters

55

Mobile Communication Service MCX MCX - 000 - Total Session Initiated Count The total number of successfully initiated sessions

MCX - 001 - Currently Active Session Count The number of currently active sessions

MCX - 002 - Currently Active Session Count With Active Presence Subscriptions The number of currently active sessions with active presence subscriptions

MCX - 003 - Succeeded Initiate Session Requests/Second The per-second rate of successful Get Locations requests

MCX - 004 - Total number of sessions terminated by user The total number of sessions terminated by user

MCX - 005 - Total Sessions Terminated Because of User Idle Timeout The number of sessions terminated because of user idle timeout

MCX - 006 - Average life time for a session in milliseconds The average life time for a session in milliseconds

MCX - 008 - Total Requests received on the Command Channel The number of requests received on the command channel

MCX - 009 - Requests received/Second The per-second rate of requests received

MCX - 010 - Total Requests Rejected The number of requests rejected

MCX - 011 - Requests Rejected/Second The per-second rate of requests rejected

MCX - 012 - Total Requests Succeeded The number of requests succeeded

MCX - 013 - Requests Succeeded/Second The per-second rate of requests succeeded

MCX - 014 - Total Requests Failed The number of requests failed

MCX - 015 - Requests Failed/Second The per-second rate of requests failed

Page 47: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

UCMA Performance Counters

56

Mobile Communication Service - UCMA MCX - 016 - Currently Active Poll Count The number of currently polls

MCX - 017 - Currently Active Network Timeout Poll Count The number of currently network timeout polls

MCX - 018 - Total Successful Outbound Voice Calls Total outbound voice calls succeeded

MCX - 019 - Total Successful Inbound Voice Calls Total inbound voice calls succeeded

MCX - 020 - Total Failed Outbound Voice Calls Total outbound voice calls failed

MCX - 021 - Total Failed Inbound Voice Calls Total inbound voice calls failed

MCX - 022 - Total Declined Inbound Voice Calls Total inbound voice calls declined

Page 48: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

PUSH Performance Counters

57

Mobile Communication Service - Push Notifications MCX - 023 - Current Push Notification Subscriptions The current number of push notification subscriptions

MCX - 024 - Total Push Notification Requests The total number of push notification requests

MCX - 025 - Push Notification Requests/Second The per-second rate of push notifications sent

MCX - 026 - Total Push Notification Requests Succeeded The total number of push notification requests succeeded

MCX - 027 - Push Notification Requests Succeeded/Second The per-second rate of push notifications success

MCX - 028 - Total Push Notification Requests Throttled The total number of push notification requests throttled

MCX - 029 - Push Notification Requests Throttled/Second The per-second rate of push notifications throttling

MCX - 030 - Total Push Notification Requests Failed The total number push notification requests failed

MCX - 031 - Push Notification Requests Failed/Second The per-second rate of push notifications failure

Page 49: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Questions/Réponses

Page 50: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Date Heure Sessions

Mercredi 8 Février 11h00-12h00 Exchange Stockage : mythe et réalités

Mercredi 8 Février 13h00-14h00 Lync : Bonnes pratiques d'Architecture

Mercredi 8 Février 13h00-14h00 UC Microsoft : Lync et Exchange, découverte et les fonctions méconnues

Mercredi 8 Février 13h00-14h00 Plongée profonde dans les technologies de haute disponibilité d'Exchange 2010

Mercredi 8 Février 14h30-15h30 Lync : Intéropérabilité IM, vidéo et téléphonie

Mercredi 8 Février 17h30-18h30 Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones

Jeudi 9 Février 13h00-14h00 Retour d'expérience d'un déploiement Lync server 2010 Voice mondial

Jeudi 9 Février 13h00-14h00 Lync Top 10 issues: supervision, monitoring, reporting et troubleshooting

Jeudi 9 Février 14h30-15h30 Lync: Ecosystème et ISV

Jeudi 9 Février 14h30-15h30 Exchange SP2 & Tips

Jeudi 9 Février 16h00-17h00 Lync développement client et serveur - retours d'expériences

Jeudi 9 Février 16h00-17h00 Comment sécuriser un serveur exchange 2010 ?

Sessions Lync

Page 51: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Query Presence of a Contact (cont’d)

Command Channel Request

Client sends the query request to explicitly query for presence of a list of Uri’s, without parking a persistent subscription:

<?xml version="1.0" encoding="utf-16"?>

<mcxRequests sid="36af8bd3-384d-b7a6-89f2-

61322a1d598e"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx">

<queryPresence rid="11">

<uris>

<uri>sip:[email protected]</uri>

<uri>sip:[email protected]</uri>

<uri>sip:[email protected]</uri>

</uris>

</queryPresence>

</mcxRequests>

Command Channel Response

The server invokes asynchronous UCMA API to publish the category and sends back a requestAccepted response:

<?xml version="1.0" encoding="utf-16"?>

<mcxResponses requestProcessed="1"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx">

<requestAccepted rid=“11" />

</mcxResponses>

60

Page 52: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Data Channel Event

Imagine an Async Poll is sent at this time with AckID=8 which was the lastEventId returned in the previous Poll.

The server responds with the events accumulated so far, including the completion status of the querypresence request sent previously.

When the client receives an updates event on the Async Data Channel Poll, it means the server has some updates that are accumulating in the session cache that the client can request whenever it is ready to consume them. Note that the updates event will never be resent by the Server even if there are fresh updates that keep getting merged into the cache until after the client makes a sendUpdates request to fetch the data and clear the cache.

<?xml version="1.0" encoding="utf-16"?>

<mcxEvents sid="36af8bd3-384d-b7a6-89f2-61322a1d598e"

lastEventId="10"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx">

<requestSucceeded eid="9" rid="11" />

<updates eid="10" />

</mcxEvents>

61

Query Presence of a Contact (cont’d)

Page 53: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Command Channel Request

Since an updates event got returned in the previous poll the client must send out a sendUpdates request:

<?xml version="1.0" encoding="utf-16"?>

<mcxRequests sid="36af8bd3-384d-b7a6-89f2-

61322a1d598e"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx">

<sendUpdates rid="12" />

</mcxRequests>

Command Channel Response

The server responds with the user-presence updates that got triggered by previous commands:

<?xml version="1.0" encoding="utf-16"?>

<mcxResponses requestProcessed="1"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx">

<requestSucceeded rid="12">

<mcxEvents sid="36af8bd3-384d-b7a6-89f2-

61322a1d598e">

<userPresence>

… user1, user2, user3 …

</userPresence>

</mcxEvents>

</requestSucceeded>

</mcxResponses>

62

Query Presence of a Contact (cont’d)

Page 54: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Subscribe for Presence of a Contact

Command Channel Request

The client sends a request to subscribe for the presence of a member in the contact list (buddy):

<?xml version="1.0" encoding="utf-8"?> <mcxRequests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" sid="9a7c75c3-6193-1699-0cf9-442240c8637f" xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx"> <subscribePresence rid="6"> <uris> <uri>sip:[email protected]</uri> </uris> </subscribePresence> </mcxRequests>

Command Channel Response

The server invokes asynchronous UCMA API to publish the category and sends back a requestSucceeded response:

<?xml version="1.0" encoding="utf-8"?> <mcxResponses requestProcessed="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx"> <requestSucceeded rid=“6" /> </mcxResponses>

From this point on, the client follows the same pattern as described for queryPresence, except that the client won’t wait for the next data channel event, as the requestSucceeded response has already been provided. The same applies to the unsubscribePresence command.

63

Page 55: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

Publish Self-Presence Command Channel Request

The client uses the publishSelfPresence request to publish the userState category:

<?xml version="1.0" encoding="utf-8"?> <mcxRequests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" sid="b2d32df5-d33b-d391-ce11-47bd7d31b30d" xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx"> <publishSelfPresence rid="3"> <mcxCategory name="state"> <state xsi:type="userState“ manual="true"> <availability>6500</availability> </state> </mcxCategory> </publishSelfPresence> </mcxRequests>

When the manual attribute in the request is sent as true, the server invokes UCMA API to publish the userState. When it is sent as false it means the client wants to reset the user presence status and all the existing static and time-bound user presence state publications are expired.

Command Channel Response

The server invokes asynchronous UCMA API to publish the category and sends back a requestAccepted response:

<?xml version="1.0" encoding="utf-8"?>

<mcxResponses requestProcessed="1"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx">

<requestAccepted rid=“3" />

</mcxResponses>

From this point on, the client follows the same pattern as

described for queryPresence to retrieve the self-presence

updates and display the change.

64

Page 56: Lync Mobile : Architecture et fonctionnalités de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)

User Activity

Command Channel Request

It is the responsibility of the client to send the UserActivity request to transition an Inactive/Away endpoint to Online and to keep the endpoint state as Online by extending the timer whenever it detects User Activity:

<?xml version="1.0" encoding="utf-16"?>

<mcxRequests sid="36af8bd3-384d-b7a6-89f2-

61322a1d598e"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx">

<userActivity rid="7" />

</mcxRequests>

Command Channel Response

The server invokes asynchronous UCMA API to publish the category and sends back a requestAccepted response:

<?xml version="1.0" encoding="utf-16"?>

<mcxResponses requestProcessed="1"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx">

<requestAccepted rid="7" />

</mcxResponses>

From this point on, the client follows the same

pattern as described for queryPresence to

retrieve the self-presence updates and display

the change.

65