Skype4B [LyncRD]

esencial…


Deja un comentario

Integrando Lync 2013 y Exchange 2013

Lync 2013 constituye una de las más completas soluciones de comunicaciones unificadas del mercado, cuyas características permiten la integración de forma nativa con productos como Microsoft Office, Microsoft Sharepoint y Microsoft Exchange, éste último en conjunto con Lync conforman la oferta para la plataforma de comunicaciones unificadas de Microsoft en las empresas.

En este artículo veremos como integrar los siguientes servicios:

  • Mensajería Instantánea (Instant Messaging)
  • Mensajería de Voz (Unified Messaging)

Es preciso aclarar que dada la naturaleza de este blogg(Lo esencial), este artículo no abarcará todos los detalles del funcionamiento de los nuevos componentes que envuelven la integración de estos productos, éstos serán explicados de manera más específicas en otro artículo que publicaré más adelante, por ahora vayamos directo.

Integrando Lync 2013 y Exchange 2013
En esta nueva versión Microsoft introduce un protocolo para las autenticaciones y autorizaciones entre servidores denominado OAuth (Open Authorization), básicamente su función es evitar que nuestras contraseña viajen(como es habitual en servicios web) de un equipo a otro, en vez de eso, esta comunicación está basada en el intercambio de Token de seguridad que establecen a cuales recursos accederemos y el tiempo de duración. Para lograr la integración tendremos que configurar este servicio junto a otros nuevos componentes como veremos a continuación.

Nuestro laboratorio consiste en la siguiente configuración:
  • ucdc.cslab.do [Controlador de dominio basado en Windows Server 2012 y Servidor de Exchange 2013 con los siguientes roles: Entidad Certificadora y DNS].
  • ucls.cslab.do [Servidor de Lync 2013].

La instalación tanto de Exchange como Lync están ubicadas en la unidad D de nuestros servidores.

Configurar el servicio de Autodiscover y PartnerApplication entre Lync y Exchange
a) Configurar el servicio de autodiscover en el CAS de Exchange.
Get-ClientAccessServer | Set-ClientAccessServer -AutoDiscoverServiceInternalUri https://autodiscover.cslab.do/autodiscover/autodiscover.xml
1
b) Desde exchange crear el PartnerApplication para Lync.
Desde el Exchange Management Shell y a la siguiente ruta y ejecutar el siguiente comando(asumiendo que Exchange esté instalado en la unidad D:
cd d:\’Program Files’\Microsoft\’Exchange Server’\V15\Scripts.\Configure-EnterprisePartnerApplication.ps1 -AuthMetadataUrl https://ucls.cslab.do/metadata/json/1 -ApplicationType Lync
Una vez completado reiniciar nuestro IIS.
iisreset ucdc
2
c) Desde Lync crear el PartnerApplication para Exchange.
New-CsPartnerApplication -identity Exchange -ApplicationTrustLevel Full -MetadataUrl https://autodiscover.cslab.do/autodiscover/metadata/json/1
3
d) Comprobar la conectividad entre los dos servidores mediante los siguientes comandos:
Test-CsExStorageConnectivity -SipUri sip:testusr@cslab.do
4

Test-CsExStorageConnectivity -SipUri ismael.batista@cslab.do -Binding NetTCP –DeleteItem -HostNameStorageService ucls.cslab.do -verbose

5
e)Configurar Lync Server OAuth para localice el servicio correcto de autodiscover en Exchange. Esto especifíca la ruta correcta para Lync apuntando al archivo autodiscover.svc en vez de autodiscover.xml.
Set-CsOAuthConfiguration -Identity Global -ExchangeAutodiscoverUrl https://autodiscover.cslab.do/autodiscover/autodiscover.svc -verbose
6
Con esto tenemos configurado la conectividad entre Lync 2013 y Exchange 2013 a travez del protocolo OAuth, ahora vayamos a configurar la integración de la mensajería instantánea en nuestro OWA de Exhchange 2013.
Configurando Mensajería Instantánea entre Lync 2013 y Exchange 2013.
a) Obtener los valores del certificado configurado en nuestro IIS.
Get-ExchangeCertificate | FL Services,Thumbprint
32
b) Configurar el componente de Mensajería Instantánea en el OWA especificando nuestro servidor de Lync.
Get-OwaVirtualDirectory -ShowBackEndVirtualDirectories -server ucdc | where { $_.WebSite -eq ‘Exchange Back End’ } | Set-OwaVirtualDirectory -InstantMessagingEnabled $true -InstantMessagingType OCS -InstantMessagingCertificateThumbprint D482BE479AAF59F20413FF75E65795E61FAF5534 –InstantMessagingServerName ucls.cslab.do
33
c) Reiniciar nuestro IIS.
iisreset
d) Habilitar el servicio de Mensajería Instantánea a la política (Este comando habilita la mensajería a todas las política de OWA).
Get-OwaMailboxPolicy | Set-OwaMailboxPolicy -InstantMessagingEnabled $true –InstantMessagingType OCS -Verbose
34
e) Agregar las siguientes entradas al web.confi del OWA (D:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\Owa)
;
;
35
f) Reiniciar el AppPool del OWA en Exchange.
36
g) Configurar el TrustedApplicationPool en la topología de Lync y publicar la topología.
37
38
39
h) Crear el TrustedApplication tanto para las direcciones interna y externa de nuestro OWA a travez del puerto 5059.
PS C:\New-CsTrustedApplication -ApplicationId ExchangeOWA -TrustedApplicationPoolFqdn mail.cslab.do -Port 5059 -Verbose
PS C:\New-CsTrustedApplication -ApplicationId ExchangeOWAIM -TrustedApplicationPoolFqdn ucdc.cslab.do -Port 5059 -Verbose
40
i) Aplicar los cambios a la topología.
Enable-CsTopology -Verbose
41
Con esto hemos configurado la integración de mensajería instantánea de Lync en nuestro OWA de Exchange, verifiquemos su funcionamiento.
42
43
44
45
Configurando Mensajería de Voz entre Lync 2013 y Exchange 2013.
Uno de los cambios que incluye la versión 2013 de Exchange es el component UM Call Router ubicado en el servidor CAS(Client Access Server) de Exchange, cuya función es el manejo y redireccionamiento de las llamadas hacia los buzones de Exchange UM.
a) Configurar nuestro Plan de Discado(Dial Plan) en nuestro Exchange, tendrá una extensión de 4 dígitos y debido a que me encuentro en Santo Domingo nuestro código de región es el 1 destinado a América de Norte.
Desde el Exchange Management Shell:

New-UMDialPlan -Name DefaulDP -VoIPSecurity secured -NumberOfDigitsInExtension 4 -URIType sipname -countryorregioncode 1
15
b)Permitir que los usuarios puedan marcar al exterior.
Set-UMDialPlan DefaultDP -ConfiguredInCountryorRegionGroups ‘Anywhere,*,*,ww’ -AllowedInCountryOrRegionGroups Anywhere -Verbose
16
c)Aplicar la configuración a la política.
Set-UMMailboxPolicy -id ‘DefaultDP default policy’ -AllowedInCountryOrRegionGroups Anywhere -Verbose
17
d)Configurar la seguridad del servicio.
Set-UmService -Identity ucdc -UMStartupMode dual -DialPlans DefaultDP -id ucdc -verbose
18
e)Configurar el Certificado emitido por nuestra Entidad Certificadora y asignarlo a nuestro servicio UM.
Enable-ExchangeCertificate -server ucdc -Thumbprint D482BE479AAF59F20413FF75E65795E61FAF5534 -Services smtp,iis,um -verbose
19
f)Reiniciar nuestro servicio MsExchangeUM.
gwmi win32_service -comp ucdc | where {$_.name -eq ‘msexchangeum’} | % {$_.stopservice()}
gwmi win32_service -comp ucdc | where {$_.name -eq ‘msexchangeum’} | % {$_.startservice()}
20
21
g)Habilitar UM a nuestros usuarios de pruebas (Ismael Batista Ext. 2567, TestUsr Ext. 2569).
Enable-UMMailbox -Extensions 2567 –SIPResourceIdentifier ismael.batista@cslab.do -Identity cslab\ismael.batista -UMMailboxPolicy ‘DefaultDP default policy’ -verbose
22
Enable-UMMailbox -Extensions 2569 -SIPResourceIdentifier testusr@cslab.do -Identity cslab\testusr –UMMailboxPolicy ‘DefaultDP default policy’ -Verbose
23
h)Configurar la seguridad del servicio UM Call Router.
Set-UmCallRouterSettings -UMStartupMode dual -DialPlans DefaultDP –server ucdc -verbose
24
i)Configurar nuestro certificado para los servicios de UM y UM Call Router.
Enable-ExchangeCertificate -server ucdc -Thumbprint D482BE479AAF59F20413FF75E65795E61FAF5534 -Services iis,umcallrouter -verbose
25
j)Reiniciar el servicio UM Call Router.
gwmi win32_service -comp ucdc | where {$_.name -eq ‘msexchangeumcr’} | % {$_.stopservice()}
gwmi win32_service -comp ucdc | where {$_.name -eq ‘msexchangeumcr’} | % {$_.startservice()}
26
27
k) Crear el autoattendant (En nuestro laboratorio el Auto Attendant le configuraremos la extension 2561).
New-UMAutoAttendant -Name ‘DefaultAA’ -UMDialPlan ‘DefaultDP’ -Status ‘Enabled’ -SpeechEnabled $true -PilotIdentifierList ‘+2561′ -verbose
l) Ejecutar exchucutil.ps1 para asignar los permisos y configuraciones necesarias para que Lync y Exchange interactuen.
D:\Program Files\Microsoft\Exchange Server\v15\Scripts>;;;;.\ExchUCUtil.ps1
28
29
Con esto tenemos todo listo del lado de Exchange, sólo nos resta configuar la parte de Lync.
m) Ejecutar el Lync UM Configuration Tool ubicado en la siguiente ruta:
D:\Program Files\Common Files\Microsoft Lync Server 2013\Support\OcsUmUtil.exe
Damos clic en Load para que la herramienta determine la configuración que creamos anteriormente, luego Add para agregar nuestros objetos para el servicio UM.
n) Agregar Suscriber.
30
o) Agregar AutoAttendant
31
Listo! tenemos integrado nuesto servicio de Unified Messaging de Exchange 2013 con nuestro Lync 2013.
Si tienen algún comentario o sugerencias no duden en enviarlo.
Ismael Batista.
Anuncio publicitario


Deja un comentario

Monitorea las llamadas de los Response Groups en Lync

RGSmon es el nombre con el que hemos bautizado esta grandiosa aplicación la cual ha sido diseñada para el monitoreo de las llamadas recibidas por nuestros Response Groups en Microsoft Lync 2010.

En tiempo real podrás observar la cola de llamadas y el tiempo en espera de éstas, de igual modo podrás ver el estatus y/o la presencia de los agentes pertenecientes a los grupos, ideal para aquellos escenarios en donde se amerita la supervisión constante de este importante servicio.

Antes de entrar en detalles es preciso dar los créditos correspondientes a la fuente original de esta idea [Frederik Lefevre de www.ucprofessional.com]. Básicamente lo que hicimos fué optimizar esta idea haciendo una aplicación en la cual se han mejorado las funciones de consultas y se han corregidos algunos errores de la versión original, todo esto por mis colegas Alfredo Arias de [sqlrd.blogspot.com] y Eduardo Madera, dos virtuosos desarrolladores.

La puesta en funcionamiento de la aplicación está fundamentada en la configuración de tres aspectos:

  1. Base de datos
  2. Servidor web
  3. Configuración

Base de datos

La aplicación hace uso de una base de datos independiente a la plataforma de Lync, procederemos a crearla siguiendo los siguientes pasos:

1. En el servidor de base de datos de Lync creamos la base de datos llamada [rgsmon].

2. Creamos una cuenta en sql llamada [rgsusr].

3. Agregamos permisos de db_owner a la cuenta creada anteriormente en las bases de datos [rgsmon, rgsconfig, rgsdyn, rtc, rtcdyn, tempdb].

4. Procedemos a crear los Procedure en la base de datos [rgsmon] usando los scritp contenidos en el archivo «Funcion y Procedures.sql», descargar aqui.

5. Una vez ejecutado los script tenemos completada la primera parte concerciente a Base de datos.

Servidor Web

Comprende la configuración de la aplicación en nuestro servidor web, en mi caso utilizo el mismo servidor destinado al rol de Reporting Services. Importante señalar que esta aplicación se ha desarrollado desde cero por lo que precisa la instalación del Framework 4 en nuestro servidor.

En caso de no tener configurado el servidor web, podemos completarlo abriendo nuestro Powershell en modo Administrador y ejecutando las siguientes líneas:

Import-Module ServerManager
Add-WindowsFeature Web-Server,Web-WebServer,Web-Common-Http,Web-Static-Content,Web-Default-Doc,Web-Dir-Browsing,Web-Http-Erros,Web-App-Dev,Web-Asp-Net,Web-Net-Ext,Web-CGI,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Health,Web-http-Logging,Web-Request-Monitor,Web-Security,Web-Filtering,Web-Performance,Web-Stat-Compression,Web-Mgmt-Tools,Web-Mgmt-Console,NET-Framework,NET-Framework-Core

Configuración de la aplicación

1. Una vez configurado nuestro servidor web, creamos la carpeta correspondiente a nuestro Response Group en el directorio raiz y copiamos los archivos fuentes de la aplicación, estos archivos puedes descargarlo desde aqui.

2. Creamos un nuevo Application Pool, para este caso llamado [RGS_HD] usando el Framework 4.0.

3. Una vez completado creamos la aplicación y elegimos el Application Pool creado anteriormente.

4. Modificamos el archivo web.confi en las entradas que se muestran a continuación:

;

;
;

Los campos resaltados corresponden a nuestra base de datos y la cuenta creadas más arriba al igual que el Nombre de la Cola(queue) de nuestro Response Group.

5. Listo!, una vez completado los pasos anteriores tenemos configurado nuestra aplicación para el monitoreo de las llamadas a nuestros Response Group en Lync.

Archivos de la aplicación

Hasta la próxima.


Deja un comentario

Checklist para configuraciones rápidas

:Prerequisitos de SO para Lync 2010 basados en Windows Server 2008 R2
Desde Powershell:
Import-Module ServerManager
Add-WindowsFeature Web-Server,Web-Http-Redirect,Web-Client-Auth,Web-Scripting-Tools,Web-Windows-Auth,Web-Asp-Net,Web-Log-Libraries,Web-Http-Tracing,Web-Basic-Auth,Telnet-Client,MSMQ,MSMQ-Services,MSMQ-Server,MSMQ-Directory,RSAT
%systemroot%\system32\dism.exe /online /add-package /packagepath:%windir%\servicing\Packages\Microsoft-Windows-Media-Format-Package~31bf3856ad364e35~amd64~~6.1.7601.17514.mum /ignorecheck
:Checklist para instalación de Lync 2010 Standard
– Crear un recurso de folder compartido (Ej. C:\CShare) Con acceso FULL al grupo: Administartors
– Ejecutar el Lync Server Setup
– Instalar Topology Builder
– Prepapar Schema / Forest / Domain
– Agragar Domain Admins a CSAdministrators usando AD Users and Computers MMC
– Preparar first STD Edition Server
– Crear y publicar la topología mediate Topology Builder
– Configurar Local Replica del Central Management Store
– Usar el instalador de Lync (Install / Update Lync Server System)
– (1) Install Local Configuration Store
– (2) Setup or Remove Lync Server Components
– (3) Request, Install or Assign Certificates
– (4) Start Services
:Checklist para la instalación del Survivable Branch Server
– Add Windows Feature .NET Framework 3.5.1
– Run Setup.exe and install Topology Builder
– Add to Topology
– Export-CsConfiguration -FileName C:\CSConfig.zip
– Import-CsConfiguration -LocalStore -FileName C:\CSConfig.zip -Verbose
– Enable-CSReplica -Verbose
– Enable-CsComputer -Verbose
– Request-CsCertificate –New –Type default -CA YourCA -Verbose
– Set-CsCertificate -Type Default -Thumbprint YourCertThumbprint
– Start-cswindowsservice –verbose
:Checklist para la implementación del Servidor Edge
– On FE
– Add to Topology & Publish
– Export-CsConfiguration -FileName C:\CSConfig.zip
– Copy file to Edge c:\
On Edge
– Add Windows Feature .NET Framework 3.5.1
– Add Certificate Root from CA to Local Computer Store
– Run Setup.exe and Install Topology Builder
– Select Install / Update Lync Server System
–  (1) Install Local Configuration Store using c:\CSConfig.ZIP
–  (2) Setup or Remove Lync Server Components
–  (3) Request, Install or Assign Certificates
–  (4) Start Services


Deja un comentario

Powershell y Lync, comandos del dia a dia

Todos conocemos o hemos escuchado sobre Powershell (lo especulativo es a propósito), en resumen no es más que una interfaz de consola la cual utilizamos para crear y/o automatizar funcionalidades mediante el uso de scripts y comandos homogeneos al sistema al que estamos administrando, la potencia de esta herramienta radica en que ofrece funcionalidades más allá de las ofrecidas por el ambiente GUI de administración tradicional y que en soluciones como Microsoft Lync son necesarias ejecutarlas a través de este.

En esta oportunidad quiero compartirles aquellos comandos esenciales para las tareas del dia a dia, los cuales he acumulado y clasificado de acuerdo a su uso y su categoria.

Categoría Consultas

#Comenzando por el que más utilizo, el Get-Help nos brinda una descripción del comando que hemos indicado con ejemplos de como uzarlo.

PS c:\Get-Help cmdlet_Lync -Examples

#Nos brinda información sobre los usuarios de lync

PS c:\Get-CsUser usr1@lyncrd.com

#Muestra todos los usuarios en nuestro AD que no han sido habilitados para Lync.

PS c:\Get-CsAdUser -Filter {Enabled -eq $null} | Format-Table -Wrap

#Muestra todos los usuarios pertenecientes a un departamento

PS c:\Get-CsUser -LDAPFilter ‘Department=Mercadeo’

#Muestra todos los usuarios asignados pertenecientes a una política en especifico organizado por su Nombre

PS c:\Get-CsUser | Where-Object {$_.VoicePolicy -match «Acceso a llamadas con 1»} | Select-Object DisplayName

#Muestra todas las direccions SIP en la plataforma de Lync

PS c:\Get-CsUser | Select-Object SipAddress

Categoría Administración de Usuarios

:Habilitar un usuario para Lync

PS c:\Enable-CsUser -Identity Usr1@lyncrd.com -RegistrarPool cspool.lyncrd.com -SipAddress sip:Usr1@lyncrd.com

:Inhabilitar un usuario en Lync(Este comando no elimina el usuario del AD)

PS c:\Disable-CsUser Usr1@lyncrd.com

:Habilitar para Lync a todos los usuarios de una OU especifica

PS c:\Get-CsAdUser -Filter {Enabled -ne $True} -OU «ou=Tecnologia,ou=Usuarios,dc=lyncrd,dc=com» | Enable-CsUser -RegistrarPool cspool.lyncrd.com -SipAddressType EmailAddress

:Habilitar un usuario para Enterprise Voice

PS c:\Set-CsUser Usr1@lyncrd.com -EnterpriseVoiceEnabled $True

:Asignar una extensión a un usuario

PS c:\Set-CsUser Usr1@lyncrd.com -LineURI tel:+2568

:Asignar un usuario a un Dial Plan

PS c:\Grant-CsDialPlan Usr1@lyncrd.com -PolicyName «Sede»

:Asignar una política de llamadas a un usuario

PS c:\Grant-CsVoicePolicy Usr1@lyncrd.com -PolicyName «Llamadas locales»