Post on 28-Nov-2014
description
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