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

Preview:

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

palais des

congrès

Paris

7, 8 et 9

février 2012

Vous êtes dans la salle 352B

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)

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

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

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

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

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

*

*

*

DEMO

Scénarios Windows Phone 7.5 / iPad 2

Lync aujourd’hui

Windows Phone 7.5+

iPhone 3Gs/4 (iOS4.1+)

iPad 2 (iOS4.1+)

Androïd (2.3+)

Lync…

Lync Server Edge ServerPasserelle RTC

Autodiscover Service

Mobility Service

Push Notifications Service

Architecture

Découvre les URL des web services

Permet de trouver son home pool

Autodiscover Service

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

Autodiscover process

<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 (*)

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

Nouveau service Windows (FE)

Basé sur la couche UCMA

Nouveau services IIS (FE)

Mobility Service

Mobility Service

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

Push Notification Service

Architecture Lync Mobile

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é

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

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

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

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

Prérequis DNS

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

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é

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

Par défaut : Get-CsPushNotificationConfiguration

Personnalisation du service (MPN/APN)

Set-CsPushNotificationConfiguration

[-Identity <XdsIdentity>]

[-EnableApplePushNotificationService <$true | $false>]

[-EnableMicrosoftPushNotificationService <$true | $false>

Activation Push notification

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

DEMO

Scénarios Windows Phone 7.5 in depth

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

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

Le Push…

Laila appelle Alexandre

MPOP Scenario Desktop

MPOP Scenario Mobile

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

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

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

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

Questions/Réponses

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

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:user1@domain.com</uri>

<uri>sip:user2@domain.com</uri>

<uri>sip:user3@domain.com</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

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)

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)

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:User1@domain.com</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

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

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

Recommended