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.
3. Lync Mobile : Architecture et fonctionnalités
de Lync pour les smartphones (Windows Phone, iPhone, iPad, Android...)
(MSG201)
8 Février 2012
Laïla Mansouri / Alexandre de Susini
Ingénieurs support OCS / Lync
Microsoft
4. Introduction
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
5. Sommaire
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
6. Périphériques supportés
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
7. Fonctionnalité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
8. Couverture fonctionnelle
Windows Android Nokia
iPhone iPad*
Phone 7.5 Phone 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
*
16. Architecture
Autodiscover Service
Mobility Service
Push Notifications Service
17. Autodiscover Service
Découvre les URL des web services
Permet de trouver son home pool
18. 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
24. Push Notification 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
27. Planning - Mobilité
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
28. Liens utiles
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
29. Capacity Planning
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.
30. Serveur Lync
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
31. Découverte automatiques des URLs
hardcoded host names + SIPdomain
lyncdiscoverinternal.<sipdomain.com>
lyncdiscover.<sipdomain.com>
Publication de la règle au niveau du
Reverse Proxy.
33. Prérequis certificats
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)
34. Prérequis Ports pour la mobilité
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.
35. Configuration Push Notification
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"
36. Activation Push notification
Par défaut : Get-CsPushNotificationConfiguration
Personnalisation du service (MPN/APN)
Set-CsPushNotificationConfiguration
[-Identity <XdsIdentity>]
[-EnableApplePushNotificationService <$true | $false>]
[-EnableMicrosoftPushNotificationService <$true | $false>
39. Laila envoie un IM
Lync Mobile Client MCX Lync Server Lync Client
1. Laila sélectionne la
contacte card d’Alexandre et
initie la session IM
2. Le destinataire, Alexandre,
Initiate IM a été trouvé
3. La session IM est établie Request Accepted IM Invite
IM Invite
200 OK
200 OK
ConversationStateConnected
4. Laila envoie un message
instantané (IM)
5. Le message est recu par
SendMessage
Alexandre
6. Laila reçoit la confirmation
Request Accepted IM Message
que son IM a bien été reçu IM Message
200 OK
200 OK
Request Suceeded
7. Le client destinataire,
Alexandre, ferme la session.
8. Laila note que la session
IM est déconnectée
BYE
BYE
ConversationStateDisconnected
40. Laila reçoit un IM
Lync Mobile Client MCX Lync Server Lync Client
1. Alexandre sélectionne la
2. Le destinataire, Laila, a été contacte card de Laila et
trouvé, la session IM est initie la session IM
établie, Le message est recu.
IM invite
IM invite
IM invite 3. Alexandre reçoit la
Accept IM invite confirmation que son IM a
Request Accepted bien été reçu
200 OK
ConversationStateConnected 200 OK
4.Dialogue IM
5. Le client destinataire ferme
la session.
6.L’expéditeur reçoit le BYE
TerminateConversation de fin de session
Request Succeeded BYE
BYE
45. Troubleshooting Mobility
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
46. MCX Performance Counters
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
47. UCMA Performance Counters
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
48. PUSH Performance Counters
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
50. Sessions Lync
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 ?
51. Query Presence of a Contact (cont’d)
Command Channel Request Command Channel Response
Client sends the query request to explicitly The server invokes asynchronous UCMA API to
query for presence of a list of Uri’s, without publish the category and sends back a
parking a persistent subscription: requestAccepted response:
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<mcxRequests sid="36af8bd3-384d-b7a6-89f2- <mcxResponses requestProcessed="1"
61322a1d598e" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx">
xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx"> <requestAccepted rid=“11" />
<queryPresence rid="11"> </mcxResponses>
<uris>
<uri>sip:user1@domain.com</uri>
<uri>sip:user2@domain.com</uri>
<uri>sip:user3@domain.com</uri>
</uris>
</queryPresence>
</mcxRequests>
60
52. Query Presence of a Contact (cont’d)
Data Channel Event
Imagine an Async Poll is sent at this time with AckID=8
which was the lastEventId returned in the previous Poll.
<?xml version="1.0" encoding="utf-16"?>
<mcxEvents sid="36af8bd3-384d-b7a6-89f2-61322a1d598e"
The server responds with the events accumulated so far, lastEventId="10"
including the completion status of the querypresence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
request sent previously. xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx">
When the client receives an updates event on the Async <requestSucceeded eid="9" rid="11" />
Data Channel Poll, it means the server has some updates <updates eid="10" />
that are accumulating in the session cache that the client </mcxEvents>
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.
61
53. Query Presence of a Contact (cont’d)
Command Channel Request Command Channel Response
Since an updates event got returned in the The server responds with the user-presence
previous poll the client must send out a updates that got triggered by previous
sendUpdates request: commands:
<?xml version="1.0" encoding="utf-16"?>
<?xml version="1.0" encoding="utf-16"?>
<mcxResponses requestProcessed="1"
<mcxRequests sid="36af8bd3-384d-b7a6-89f2-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
61322a1d598e"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx">
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
<requestSucceeded rid="12">
xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx">
<mcxEvents sid="36af8bd3-384d-b7a6-89f2-
<sendUpdates rid="12" />
61322a1d598e">
</mcxRequests>
<userPresence>
… user1, user2, user3 …
</userPresence>
</mcxEvents>
</requestSucceeded>
</mcxResponses>
62
54. Subscribe for Presence of a Contact
Command Channel Request Command Channel Response
The client sends a request to subscribe for the The server invokes asynchronous UCMA API to
presence of a member in the contact list publish the category and sends back a
(buddy): requestSucceeded response:
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<mcxRequests <mcxResponses requestProcessed="1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
sid="9a7c75c3-6193-1699-0cf9-442240c8637f" xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx">
xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx"> <requestSucceeded rid=“6" />
<subscribePresence rid="6"> </mcxResponses>
<uris>
<uri>sip:User1@domain.com</uri>
</uris>
From this point on, the client follows the same
</subscribePresence> pattern as described for queryPresence, except
</mcxRequests> 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
55. Publish Self-Presence
Command Channel Request Command Channel Response
The client uses the publishSelfPresence request to The server invokes asynchronous UCMA API to publish
publish the userState category: the category and sends back a requestAccepted
response:
<?xml version="1.0" encoding="utf-8"?>
<mcxRequests <?xml version="1.0" encoding="utf-8"?>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<mcxResponses requestProcessed="1"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
sid="b2d32df5-d33b-d391-ce11-47bd7d31b30d" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx"> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
<publishSelfPresence rid="3"> xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx">
<mcxCategory name="state"> <requestAccepted rid=“3" />
<state xsi:type="userState“ manual="true"> </mcxResponses>
<availability>6500</availability>
</state>
From this point on, the client follows the same pattern as
</mcxCategory>
</publishSelfPresence> described for queryPresence to retrieve the self-presence
</mcxRequests> updates and display the change.
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.
64
56. User Activity
Command Channel Request Command Channel Response
It is the responsibility of the client to send the The server invokes asynchronous UCMA API to
UserActivity request to transition an publish the category and sends back a
Inactive/Away endpoint to Online and to keep requestAccepted response:
the endpoint state as Online by extending the
timer whenever it detects User Activity:
<?xml version="1.0" encoding="utf-16"?>
<mcxResponses requestProcessed="1"
<?xml version="1.0" encoding="utf-16"?> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<mcxRequests sid="36af8bd3-384d-b7a6-89f2- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
61322a1d598e" xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <requestAccepted rid="7" />
xmlns:xsd="http://www.w3.org/2001/XMLSchema" </mcxResponses>
xmlns="http://schemas.microsoft.com/2010/05/rtc/mcx">
<userActivity rid="7" /> From this point on, the client follows the same
</mcxRequests>
pattern as described for queryPresence to
retrieve the self-presence updates and display
the change.
65