Translate

mardi 30 décembre 2008

Nouvelles mises à jour: Communicator 2007 et Communicator 2005

Microsoft a publié deux nouvelles mises à jour pour les clients naturels d'OCS 2007/LCS 2005, à savoir Communicator 2007 et Communicator 2005. Ces mises à jour corrigent en particulier un problème lié à la redirection des appels dans des environnements où OCS 2007/OCS 2007 R2 ou LCS 2005 sont couplés à un environnement de téléphonie.

[ajout du 31/12/2008]: Une mise à jour pour Communicator Mobile 2007 (CoMo) a aussi été publiée, permettant à un client Windows Mobile de se connecter à une infrastructure OCS 2007 R2 sans encombre...

Ces mises à jour seront requises pour une interopérabilité OCS 2007/OCS 2007 R2 et Communicator 2007/Communicator 2007 R2.

Liens de téléchargement:

Bonnes mises à jour :)

samedi 20 décembre 2008

OCS 2007 R2 est RTM !!! :)

Et voilà ! Comme annoncé il y a quelques jours, OCS 2007 R2 est finalisé, en train de sécher et sa distribution aux partenaires privilégiés commence !

Notre département IT a reçu la distribution seulement 5 heures après la dernière compliation et a déjà mis en oeuvre un pool OCS R2 de transition avant de recréer un pool OCS R2 final ce week-end ! Chapeaux bas à ces messieurs ;) Avanade est donc avec Microsoft et quelques clients EA une des premières sociétés en production avec OCS 2007 R2, wow !

Histoire de nous faire plaisir, et en qualité "d'Early Adopters" nos amis d'Avanade ITS ont mis à notre disposition la version finale d'Office Communicator 2007 R2 (MOC 2007 R2) et de Communicator Mobile R2 (CoMo 2007 R2).

Voici donc les numéros de versions finales:
  • MOC 2007 R2: 3.5.6907.0
  • CoMo 2007 R2: 3.5.6906.0

Data Protection Manager SP1

Microsoft vient de publier le Service Pack 1 de Data Protection Manager (DPM) 2007, leur excellent et novateur outil de sauvegarde !

DPM 2007 fait partie de la suite System Center et permet de sauvegarder les serveurs et applications dans des environnement Windows. DPM est particulièrement performant lorsque l'on parle de sauvegarde Exchange, SQL et SharePoint !

Quoi de neuf ?

Dans les changements les plus notables on retiendra:
  • Amélioration des performances de sauvegarde pour SharePoint, en particulier WSS.
  • Amélioration des performances de restauration pour Exchange et SQL dans certains cas.
  • Support des sauvegardes dans les environnements Hyper-V (sauvegarde des systèmes "guest" avec un agent).
  • Ajout du support de la sauvegarde d'un replica SCR sous Exchange 2007, pratique pour avoir une sauvegarde effectuée loin de l'environnement de production :)
  • Ajout du support de la sauvegarde d'une base miroir SQL Server 2005, ce qui permet de sauvegarder la copie plutôt que la base active, et donc ne pas impacter les performances su serveur principal.
  • Ajout de la possibilité de sauvegarder des environnements lorsqu'une relation d'approbation de forêts est disponible (particulièrement pratique en scénario de forêt de ressource par exemple).
Quelques liens vers le site officiel Microsoft:

mercredi 17 décembre 2008

Sortie imminente de la version finale d'OCS 2007 R2 !!!

Microsoft est en cours de finalisation d'OCS 2007 R2, qui sera mis à disposition des équipes internes Microsoft, des Early Adopters, des partenaires et au reste du monde très prochainement (je ne peux donner de délai précis, mais ce n'est qu'une affaire de jours :)).

Promesse tenue donc, puisque OCS 2007 R2 était planifié pour une finalisation aux alentours de Noël.

En attendant, voici une preview de la console "OCS R2 Attendant", en production s'il vous plaît :)


dimanche 14 décembre 2008

Construire son lab Unified Communications - 3ème partie - DNS, SipX et configuration ToIP

Ayant été (énormément) pris par le boulot, nous y voilà tout de même: la finalisation de notre lab UC afin de le rendre opérationel !

Où en étions-nous ? Ah oui ! Dans notre numéro précédent, nous avions installé un pool OCS Standard et un serveur de Mediation. Il nous reste à configurer:

  • Le DNS, afin de supporter la configuration automatique des clients OCS;
  • SipX (nous allons voir brièvement l'installation, mais surtout la configuration des plans de numérotation et des passerelles)
  • Et enfin, last but not least, la partie téléphonie d'OCS et l'activation de la téléphonie pour des utilisateurs.
Configuration du DNS

C'est la partie facile. Dans mon exemple, j'ai utilisé un domaine SIP unique: uc-lab.com - si vous voulez supporter plus d'un domaine SIP, répetez la configuration DNS pour chaque.

  1. Sur votre serveur DNS (ici, le contrôleur de domaine), lancez la console de gestion DNS (dnsmgmt.msc)
  2. Créez une zone pour votre domaine SIP (uc-lab.com) - personellement, je la configure de manière à ce qu'elle soit intégrée Active Directory...
  3. Créez ensuite un entregistrement de type SRV (New Other Records... puis Service Locator (SRV))
  4. Dans les propriétés du service, utilisez ces informations: Service = _sipinternaltls Protocol = _tcp Priority = 0 Weight = 0 Port number = 5061 Host = sv-ocs.corp.uc-lab.net.
Validez puis créez un nouvel enregistrement de type SRV avec les propriétés suivantes: { service=_sip, protocol=_tls, priority=0, weight=0, port=5061, host=sv-ocs.corp.uc-lab.net. }. Enfin, créez un enregistrement de type A avec les propriétés suivantes = { IP=10.0.2.101, name=sip.uc-lab.com. }

Une fois les ajouts effectués dans le DNS, femez la console et ouvrez une fenêtre de commandes. A l'aide de la commande nslookup, nous allons vérifier que la configuration DNS est correcte. Une fois dans l'interface nslookup, exécutez les commandes suivantes:
  1. set type=SRV
  2. _sipinternaltls._tcp.uc-lab.com
  3. _sip._tls.uc-lab.com
Ces deux dernières commandes doivent retourner les informations que nous avons entré précédemment, comme montré dans cette capture d'écran:

Installation et configuration de SipX

L'installation de SipX a la bonne idée d'être simplifiée par rapport à une installation de Linux "classique". Il faudra toutefois penser à configurer quelques détails non négligeables: une IP, le mot de passe du superutilisateur "root" et les quelques autres options comme le clavier, la date et l'heure. N'oubliez pas de désactiver les services DNS, NTP et DHCP sur le serveur SipX, il seront complètement inutiles ici et en double usage par rapport à notre contrôleur de domaine Windows (pour le DNS et le NTP, le DHCP n'étant vraiment pas utile dans notre contexte).

Une fois SipX installé, il va falloir le configurer... Au premier démarrage, SipX configurera la base postgresql, il faudra déterminer le nom de domaine SIP pour SipX (par exemple, voip.uc-lab.com) et créer les enregistrements SRV et/ou A demandés par SipX. ATTENTION: SipX est sensible sur la configuration du nom de domaine SIP utilisable. C'est modifiable par la suite mais une vraie galère ! Faites attention, vérifiez tout deux fois.

  • un enregistrement A { IP=10.0.2.110, host=voip.uc-lab.com. }
  • un autre, pour le nom de la machine physique { IP=10.0.2.110, host=sipx.corp.uc-lab.net. }
  • des enregistrement SRV tels que recommandés par la commande sipx-dns (ex: sipx-dns voip.uc-lab.com sipx.corp.uc-lab.net) ==> { service=_sip, protocol=_tcp, priority=1, weight=0, port=5060, host=sipx.corp.uc-lab.net. } et { service=_sip, protocol=_udp, priority=1, weight=0, port=5060, host=sipx.corp.uc-lab.net. }
  • n'oubliez pas que ces enregistrement sont à mettre dans un sous-domaine nommé voip (ou une zone nommée voip.uc-lab.com) !

Et hop, une petite capture (ndlr: le DNS Windows ne supporte pas les NAPTR):

Vérifiez que les enregistrements DNS sont corrects à coup de nslookup. Après configuration du DNS, faites un petit reboot de votre serveur SipX... assurez vous que le service sipxpbx démarre sans accroc.

Une fois tout ce petit monde en fonctionnement, naviguez sur l'interface Web et connectez-vous avec l'utilisateur superadmin et le mot de passe défini au préalable.

L'interface est simple, il suffira de définir quelques petites choses :)

  • Une passerelle: menu Devices ==> Gateway: ajoutez une passerelle de type SIP Trunk avec les paramètres correspondant à votre installation. Name=OCSMediationServer, Address=sv-ocsms.corp.uc-lab.net, Description=ce que vous voulez, Route=(vide)
  • Affichez les paramètres avancés (click sur "Show Advanced Settings") et configurer le port (5060) et le protocole (TCP), cela évitera à SipX de se poser la question le moment venu...
  • Validez avec OK. Une fois de retour sur l'interface de gestion des passerelles, mettez à jour la configuration de SipX avec le bouton "Send All Profiles".

  • Allons ensuite déclarer la règle de routage vers OCS, c'est dans System ==> Dial Plans puis Add new rule ==> Custom...
  • Alors là, il y a plein de paramètres :) -- je vais donc les lister un à un:
  • Enabled: à cocher
  • Name: OCSDialRule
  • Description: comme vous voulez :)
  • Dialed Number: Prefix = 3 and 2 digits (n'oubliez pas de cliquer sur "Add") - cela nous permettra de router les extensions de 300 à 399 vers OCS. Nous verrons comment nous amuser avec les numéros E.164 plus tard...
  • Ne configurez pas de permissions.
  • Resulting Call: Dial = + and append dialed number (nous reviendrons plus tard sur cette partie si l'on veut simulez quelque chose de plus "représentatif de la réalité")
  • Ajoutez la passerelle OCSMediationServer puis validez avec OK.

Une fois de retour dans l'interface de gestion des Dial Plans, cochez la case correspondant à la règle créée ci-dessus et cliquer sur "Activate" en haut à droite. Validez lorsque demandé.

Il va falloir maintenant créer un utilisateur SipX, afin de simuler à l'aide d'un SIP Phone, un téléphone d'entreprise... Allez donc dans le menu Users ==> Users puis cliquez sur "Add User". Logiquement, le premier utilisateur crée aura l'extension 200, configurez les propriétés et n'oubliez pas le "SIP Password" qui vous permettra de configurer le SIP Phone.

Une fois tout ce petit monde paramétré, pensez à redémarrer SipX. En shell, par la commande service sipxpbx restart. C'est conseillé à chaque fois que la configuration des passerelles et règles de routage sont modifiées, et force la mise à jour des fichier XML de configuration dans /etc/sipxpbx/.

Configurez une SIP Phone afin de vous connecter à SipX. Personnellement, j'utilise X-Lite. Il suffit d'utiliser l'extension "200", le mot de passe configuré précédement et comme nom de domaine "voip.uc-lab.com". Si vous avez du mal à vous connecter, forcez la connexion par le proxy en utilisant le FQDN ou l'IP du serveur SipX.

Configuration de la téléphonie sur OCS

Nous y voilà ! Comme dirait l'autre "yapuka!" ... En effet, la configuration d'OCS est assez rapide mais doit être faire dans un ordre précis... Assurez vous d'abord que votre serveur OCS Standard est allumé et fonctionne correctement. Pour cela, créez un compte et connectez vous avec Communicator.

Vérifiez ensuite que votre serveur OCS Mediation fonctionne, à l'aide de la console d'administration d'OCS, vérifiez que le service tourne.

OK ? Tout va bien ? On continue...

Dans le console OCS, allez sur la configuration de la forêt, puis Voice Properties. Il va falloir créer une localisation et des règles de normalisation:

  • Créer un "Location Profile", nommez-le "OCSDP"
  • Ajoutez ensuite une règle de normalisation, nommez là "2xx"
  • Dans la section "Translation" entrez "^2(\d{2})$" comme "pattern" puis "2$1" comme expression resultante
  • Vérifez qu'en entrant "201" (sans les guillemets) dans la zone de test, le resultat est "201"
  • Dans l'onglet "Route", créez une nouvelle route nommée "toSipX"
  • Dans la zone d'expression régulière, entrez "^2(\d{2})$"
  • Ajouter un "Phone Usage", celui par défaut fera l'affaire...
  • Ajoutez le serveur de Mediation OCS comme passerelle puis validez et retournez dans la console d'administration OCS.

Une fois de retour dans la console, ouvrez le conteneur "Mediation Servers" puis édtier les propriétés du serveur de médiation. Ici, éditer le "Default Location Profile" et choisissez "OCSDP".

Normalement, tout ce qui concerne la partie "Next Hop Connection" est déjà configuré, assurez vous que:

  • Office Communcations Server next hop soit "sv-ocs.corp.uc-lab.net" et le port "5061"
  • PST Gateway next hop soit "10.0.2.110" (l'adresse IP du serveur SipX) et le port "5060"

Validez et redémarrez le service de Mediation OCS.

Cette opération doit aussi être faite sur le pool OCS. Sous "Standard Edition Servers", avec le clic droit de la souris, aller dans "Properties" puis "Front-end Properties". Dans l'onglet "Voice", selectionnez "OCSDP" comme profil de localisation par défaut pour le pool. Validez, revenez dans la console OCS et redémarrez les services OCS.

Nous y sommes presque (sisisisisi :)) - il ne reste qu'à configurer notre utilisateur OCS afin d'être activé pour la téléphonie. Editez ses propriétés (par l'interface OCS par exemple) puis dans "Additional options" cliquez sur "Configure". Là, cochez "Enable Enterprise Voice" et dans "Line URI" entrez "tel:+300". Validez, attendez maximum 5 minutes et reconnectez vous sur Communicator avec cet utilisateur.

Appeller l'utilisateur OCS

Pour appeler l'utilisateur OCS, rien n'est plus simple: il suffit de composer le "300" sur votre SIP Phone. Si vous n'avez rien raté, Communicator doit se mettre à sonner en affichant comme appellant "+200".

Appeller depuis OCS/Communicator

Appeller depuis OCS est facile aussi. Composez le "200" puis validez. Votre SIP Phone va se mettre à sonner et l'appellant sera "+300". Nous verrons ultérieurement comment finalisez la configuration afin de faire quelque chose de plus "pro" et pouvant s'intégrer à des IP-PBX classiques ou ne supportant pas les URI SIP au format E.164 avec un symbole + (comme Cisco Call Manager par exemple).

J'imagine que cela ne fonctionnera pas du 1er coup dans votre lab... quelques pistes:

  • si, lorsque vous composez depuis votre SIP Phone, ce dernier vous jette violemment avec une sonnerie répétitive et rapide, il s'agit d'une erreur dans la communication. Vérifiez que votre serveur SipX peut contacter le serveur de médiation: vérifiez le DNS, le réseau (IP, masque, ping, telnet sur le port 5060, etc), la configuration (n'hésitez pas à redémarrer le service SipX)
  • utilisez le Netmon de Windows ou WireShark afin de regarder où ça bloque. Filtrez dans un premier temps sur le protocole SIP (5060 tcp/up, 5061/tcp) - je doute que vouz ayez à ce stade des soucis de protocole Audio (RTP/RTCP) ou de codecs.

Amusez vous bien !

Une option méconnue de l'Exchange Unified Messaging

Il est bien connu que la messagerie unifiée "Exchange UM" est allergique aux prononciations non anglo-saxones. Aussi, il est courant de rire à l'annonce par défaut des noms par notre amie la réceptioniste de messagerie vocale (lors du fameux "Please leave a message for ...."). La prononciation de mon nom par exemple est assez cocace !

Là où cela devient moins drôle, c'est lorsque dans un environnement d'entreprise on souhaite utiliser la reconnaissance vocale pour trouver quelqu'un. Aussi, dans 90% des cas (voire plus !), il est impossible de trouver quelqu'un ayant un nom à consonance non anglo-saxone via l'Exchange UM.

L'équipe Exchange avait posté sur son blog à ce sujet, alors que je suis en ce moment même en train de jouer sur mon lab, cela m'a donné l'idée d'en remettre une couche, avec quelques petites précisions en plus...

Il existe dans l'AD un attribut à cet effet. Il s'agit du msDS-PhoneticDisplayName. Il peut-être positionné facilement en PowerShell avec la commande Set-User. Là où le bas blesse, c'est que l'attibut ne rentre pas dans le modèle d'administration d'Exchange. A moins d'avoir accès aux attributs, par le bias d'une délégation "Account Operators", "Domain Admins" ou administrateur d'une OU, l'administrateur Exchange n'est donc pas en mesure de modifier les attributs.

Voici à titre d'exemple quelques lignes PowerShell pour étendre le modèle d'administration (dans le mien, j'ai crée un rôle dédié aux administrateurs de messagerie unifiée (ici: "UM Admins")). Il faut être administateur du domaine ou de l'entreprise afin de modifier les permissions sur les conteneurs.

$DomainDN = "dc=mondomaine,dc=local"
$UMRecipientAdmins = "MONDOMAINE\UM Admins"

$DomainAdminSDHolderDN = "cn=AdminSDHolder,cn=System,{0}" -f $DomainDN
$UMExtendedAttributes = "msDS-PhoneticDisplayName","msDS-PhoneticFirstName","msDS-PhoneticLastName","msDS-PhoneticCompanyName","msDS-PhoneticDepartment"

Add-ADPermission -Identity $DomainDN -User $UMRecipientAdmins -AccessRight ReadProperty,WriteProperty -Properties $UMExtendedAttributes -InheritedObjectType user -InheritanceType Descendents -Verbose:$false

Add-ADPermission -Identity $DomainDN -User $UMRecipientAdmins -AccessRight ReadProperty,WriteProperty -Properties $UMExtendedAttributes -InheritedObjectType inetOrgPerson -InheritanceType Descendents -Verbose:$false

Add-ADPermission -Identity $DomainAdminSDHolderDN -User $UMRecipientAdmins -AccessRight ReadProperty,WriteProperty -Properties $UMExtendedAttributes -InheritedObjectType user -InheritanceType Descendents -Verbose:$false

Add-ADPermission -Identity $DomainAdminSDHolderDN -User $UMRecipientAdmins -AccessRight ReadProperty,WriteProperty -Properties $UMExtendedAttributes -InheritedObjectType inetOrgPerson -InheritanceType Descendents -Verbose:$false

Ensuite, Ô bonheur, je peux configurer mon "phonetic display name"... :)

Set-User MONDOMAINE\bboudeville -PhoneticDisplayName "Benwa Boodveel"

Et alors, miracle, la gentille madame prononce mon nom à peu près correctement ! Ca permet aussi à un français de me trouver grâce à la réceptionniste automatique (Auto Attendant) de me trouver un peu plus facilement (c'est quand même pas gagné !).

Le plus dur dans l'histoire est de trouver comment écrire phonétiquement le prénom et le nom de quelqu'un ! Astuce, si vous avez une personne anglaise, américaine, canadienne ou australienne sous la main, demandez-lui comment elle écrirait phonétiquement votre nom après le lui avoir prononcé... :)