Microsoft Lync Server
Header

​En alguna ocasión seguro que habéis tenido problemas con lo valores por defecto de la MTU de vuestra conexión de red.

Red MTU (Bytes)
——————————– —————–
Token Ring de 16 Mbps 17914
Token Ring de 4 Mbps 4464
FDDI 4352
Ethernet 1500
IEEE 802.3/802.2 1492
X.25 576

 

Los datagramas pueden pasar por varios tipos de redes con diferentes tamaños antes de llegar a su destino. Por ejemplo, para que un datagrama llegue sin fragmentación al destino, ha de ser menor o igual que el menor MTU de todos los elementos de red por las que pase. En el caso de TCP/UDP, el valor máximo está dado por el MSS (Maximum Segment Size), y toma su valor en función de tamaño máximo de datagrama, dado que el MTU = MSS + cabeceras IP + cabeceras TCP/UDP. En concreto, el máximo tamaño de segmento es igual al máximo tamaño de datagrama menos 40 (que es número mínimo de bytes que ocuparán las cabeceras IP y TCP/UDP en el datagrama). Estos se puede ajustar en casi todos los elementos de red de capa 3 y 4, nosotros vamos a ver como podemos ajustar nuestros valores de MTU en Windows.
 

Lo primero que vamos a ver el tamaño actual de la MTU que tienen nuestras interfaces de red, para ello abrimos un CMD con derechos administrativos y escribimos el siguente comando: netsh interface ipv4 show subinterfaces 

Como vemos nos muestra el listado de Interfaces con varios valores y entre uno de ellos la MTU (por defecto 1500Bytes)

MTU_Red_Windows-7-8_2.jpg

Para identificar el valor de MTU que debemos aplicar, podemos hacer algo muy sencillo que es lanzar un ping desde nuestra maquina a otro host de la red (preferiblemente un enrutador o dispositivo con funciones similares) con los siguientes modificadores:  -f (Establecer marca No fragmentar en paquetes) y -l (Enviar tamaño del búfer). Si superamos el tamaño máximo de MTU obtendremos la siguiente respuesta:

MTU_Red_Windows-7-8_5.JPG

Debemos repetir el test hasta que obtengamos el siguiente resultado (decreciendo el valor de MTU en valores de 10)
MTU_Red_Windows-7-8_6.JPG

Una vez que hemos encontrado el valor de MTU que se ajuste a nuestras necesidades, debemos establecerlo en nuestras interfaces de red. Esto podemos hacerlo con el siguiente comando:

netsh interface ipv4 set subinterface "Nombre_Interface" mtu=1300 store=persistent
MTU_Red_Windows-7-8_3.jpg

Si ahora ejecutamos el primer comando (netsh interface ipv4 show subinterfaces) para que nos muestre el resumen de las interfaces y sus valores, como se aprecia se han establecido en función de nuestros parámetros

MTU_Red_Windows-7-8_4-1.jpg

También os muestro una herramienta gráfica para realizar el cambio de MTU: DRTCP021

MTU_Red_Windows-7-8_9.jpg

Los síntomas de un exceso de MTU suelen ser la lentitud, pérdida de paquetes, microcortes, acceso a Internet  lento e incluso sin llegar a cargar las páginas web que queremos visitar, etc… además puede tener otros comportamientos muy extraños. En algunas ocasiones he visto enlaces de VPN a través de los cuales los usuarios se conectaban a los servidores de RDS y no les mostraba la pantalla de login pero si el resto de la ventana!!!! Ante estos síntomas a veces hasta el ingeniero de redes más experimentado tiene problemas para detectarlo.

Yo suelo utilizar una herramienta más pontente  para tratar de detectar problemas de MTU, y que me permite tener estadísticas de todo el recorrido de la conexión. Tiene un nombre muy acorde con el tema: MTUROUTE. Os muestro el listado completo de sus modificadores:

mturoute [-t] [-f] [-m MAX_PAYLOAD_SIZE] host

-t : Toggles 'traceroute' mode.  (Default is off)
-f : Allow fragmentation.  This will return the max ping size that the
        target host will respond to, but not necessarily the MTU
-w : Set the number of milliseconds to wait for a response (default 3000).
-r : Set the maximum number of probe retries on timeout (default = 3).
-i : Set the interval between two echo requests
-d : Increases the debugging level. Reports ICMP status/failures
-m : Sets a maximum payload size to test. (Default is 10000)
-v : Print version info and exit
-z : Fill ICMP packets with random data
-p : Fill ICMP packets with a specified pattern
-s : Skip speed optimizations
-x : Redact IP addresses in output

Este es un ejemplo sin modificadores y veréis como hace pequeños muestreos para verificar cual es el valor más acertado en función de los resultados:

MTU_Red_Windows-7-8_7.JPGEn este caso se ha ajustado No muestra que la MTU es de 1200, y está en lo cierto porque el enlace en donde lo estoy probando es una VPN IPSec Site-to-Site y las interfaces de los Firewalls están ajustadas a una MTU de 1200Bytes. Ahora vamos a ver otra comprobación de MTU pero en un red algo más "grande" con el modificador -t:

MTU_Red_Windows-7-8_10.jpg

 

Como ves ve nos va mostrando el valor de MTU por cada enlace que atraviesa, esto nos facilita  mucho la vida :-).  También debemos tener en cuenta que a cada salto que vamos atravesando desde nuestro equipo al host de destino, los dipostivos intermedios pueden tener valores de MTU más pequeños que nosotros, lo que hará que nos muestre siempre el valor más pequeño aunque el host de destino tenga una MTU de 1500. Pensad que al fin y al cabo nosotros debemos pasar por esos enlaces y con este tamaño de MTU, si quisieramos forzar el atravesarlos con nuestra MTU … es cuando tendríamos el problema, puesto que empezaríamos a fragmentar de tal forma empezaríamos a sufrir los síntomas comentados. Aqui tenéis una imagen súper clara de lo comentado, nuestro equipo y el destino tienen una MTU de 1500Bytes, pero en cuanto pasa por el salto C ya nos mostrará el salto D y el destino con la MTU del C.

MTU_Red_Windows-7-8_11.jpg
Como podéis ver es una herramienta estupenda, aqui os dejo el enlace de descarga: MTUROUTE

Espero que les sea de utilidad!!

Esto lo teníamos en la versión 2010 de Lync descargándonos de la página de Microsoft un complemento para nuestro Lync (Conversation Translator). Ahora es muy similar solo que únicamente debemos añadir esto al registro de nuesto equipo. De momento no es la solución oficinal, pero los chicos de ​VoIPNorm nos muestran como podemos hacerlo mientras tanto. Aqui os dejo el texto del fichero .reg que debemos crear y añadir al registro.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Lync\Addins\{2b26edf9-92e0-4d9c-9d7a-f772fcd4f31b}]
"Name"="Lync Conversation Translator"
"Parameters"=""
"ExtensibilityApplicationType"=dword:00000000
"ExtensibilityWindowSize"=dword:00000001
"DefaultContextPackage"=dword:00000000
"InternalURL"="http://go.microsoft.com/fwlink/?LinkID=68810&Lync=y"
"ExternalURL"="http://go.microsoft.com/fwlink/?LinkID=68810&Lync=y"
[HKEY_CURRENT_USER\Software\Microsoft\Office\Lync\Security]
[HKEY_CURRENT_USER\Software\Microsoft\Office\Lync\Security\Trusted Sites]

 

[HKEY_CURRENT_USER\Software\Microsoft\Office\Lync\Security\Trusted Sites\conversationtranslator.cloudapp.net]
"http"=dword:00000001
"https"=dword:00000001
Como Configurarlo
 
Copiamos el texto en un fichero con la extensión .reg y lo añadimos a nuestro registro.  Para poder tenerlo disponible, una vez que hemos añadido estas keys al registro debemos cerrar sesión y volver a iniciarla para que el cliente Lync tenga disponible la nueva opción.
 
 Aqui os muestro algunas capturas de pantalla
 Translator_Lync_2013_7.jpg

Translator_Lync_2013_0.jpg

Los idiomas soportados
Translator_Lync_2013_2.JPGTranslator_Lync_2013_3.JPGTranslator_Lync_2013_4.JPG

Translator_Lync_2013_6.JPG 

Como habeis apreciado tengo mi Lync federado con Google Talk, de esto hablaremos en otros artículos

Espero que os sea de utilidad!!!

Cuando iniciamos sesión en nuestro cliente de Lync, unas de las tareas que realiza es la descarga de la libreta de direcciones. En función del tamaño de nuestra organización, tendremos un tiempo de espera u otro el tener la lista actualizada, es bastante común tratar de realizar una búsqueda de algún contacto de nuestra organización y encontrarnos con el siguiente aviso:

Sincronizar_Libreta_Direcciones_1.jpg

Esto ocurre porque la sincronización de la libreta de direcciones comienza de forma aleatoría, pero podemos forzar que se intente en el mismo instante que hemos iniciado sesión. Vamos a ver que tenemos que añadir a nuestro registro para cambiar este comportamiento. Para poder realizar este cambio os recuerdo que debéis ejecutarlo desde una línea de comandos con derechos adminsitrativos.

Lync 2010

reg add HKCU\Software\Policies\Microsoft\Communicator /v GalDownloadInitialDelay /t REG_DWORD /d 0 /f

Sincronizar_Libreta_Direcciones_4.jpg

Lync 2013

reg add HKLM\Software\Policies\Microsoft\Office\15.0\Lync /v GalDownloadInitialDelay /t REG_DWORD /d 0 /f
Sincronizar_Libreta_Direcciones_3.jpg

Ahora podemos volver a iniciar sesión en nuestro Lync y veremos que de forma casi inmediata ya podemos buscar los contactos de nuestra organización (siempre teniendo en cuenta el tamaño de cada organización mostrará antes o después los resultados)

Sincronizar_Libreta_Direcciones_2.jpg
 
 
Los ficheros que se descarga el cliente Lync son los siguientes: GalContacts.db y GalContacts.db.idx  y están en la siguients ubicaciones:
 
Lync 2010
Sincronizar_Libreta_Direcciones_6.jpg
 
Lync 2013
Sincronizar_Libreta_Direcciones_5.jpg

Espero que os sea de utilidad!!!

Actualización sobre esta funcionalidad para Lync 2012, funciona correctamente sin hacer nada más copiar el fichero de presencia al mismo directorio que en Lync 2010!!!

Voy a explicaros como podéis ampliar el listado de estados que trae por defecto el cliente Lync. Para ello tenemos que crear un fichero XML y publicarlo en una ruta de red compartida, local, en un servidor web via HTTP o HTTPS. Además vamos a ver los requisitos que debe cumplir:

  • El texto puede contener como máximo 64 caracteres
  • El cmdlet CustomStateURL nos permitirá distintas opciones de configuración: Ruta de Red o Local, HTTP y HTTPS
  • Los estados pueden ser configurados únicamente como: Ocupado, No Molestar o Disponible
  • Se pueden crear como máximo 4 Estados Nuevos

Nosotros aqui vamos a ver la forma de publicar el fichero XML  vía HTTPS, y lo haremos en el IIS de nuestro Front-END o Director donde ya tenemos los Servicios Web de nuestro Lync Server. Los primero que debemos hacer es crear el fichero XML, y guardarlo con el nombre que queramos, en nuestro caso le he llamado presencial.xml  

<?xml version="1.0"?>
<customStates xmlns="http://schemas.microsoft.com/09/2009/communicator/customStates">
  <customState ID="1" availability="online">
    <activity LCID="3082">Documentando</activity>
  </customState>
  <customState ID="2" availability="busy">
    <activity LCID="3082">En una Webcast</activity>
  </customState>
  <customState ID="3" availability="busy">
    <activity LCID="3082">Formacion Online</activity>
  </customState>
  <customState ID="4" availability="do-not-disturb">
    <activity LCID="3082">Reunion de Equipo</activity>
  </customState>
</customStates>

Vamos describir las distintas partes del XML:

customState ID: Indicamos la posición del Estado en nuestro Listado

activity LCID: le indicamos el código del idioma del cliente Lync para el cual va a estar disponible (ID de Localización de Microsoft)

availability: Estado de nuestra Presencia

Tenemos que modificar el texto que queremos que se muestre cuando despleguemos el listado de estados, <activity LCID="3082">Documentando</activity> y con esto tendríamos configurado nuestro XML. Si queremos en el mismo XML podemos configurar varios idiomas:

  <?xml version="1.0"?>
<customStates xmlns="http://schemas.microsoft.com/09/2009/communicator/customStates">
  <customState ID="1" availability="online">
    <activity LCID="1033">Working from Home</activity>
    <activity LCID="3082">Trabajando desde Casa</activity>
  </customState>
  <customState ID="2" availability="busy">
    <activity LCID="1033">In a Live Meeting</activity>
    <activity LCID="3082">En una Reunión Online </activity>
  </customState>
  <customState ID="3" availability="busy">
    <activity LCID="1033">Meeting with Customer</activity>
    <activity LCID="3082">En una reunion con un cliente</activity>
  </customState>
  <customState ID="4" availability="do-not-disturb">
    <activity LCID="1033">Auditing</activity>

    <activity LCID="3082">Auditando</activity>
      </customState>
</customStates>
Una vez que hemos modificado correctamente nuestro XML, debemos copiarlo en la ruta adecuada para tener acceso desde nuestros Clientes Lync. Como lo que queremos es tener acceso vía HTTPS, lo vamos a copiar dentro de la carpeta Internal Website y External Website de nuestro Front-END o Director:
 
External Website (Lync 2010)
Lync_Estados_1.png
Internal Website (Lync 2010)
Lync_Estados_3.png
 
External Website (Lync 2013)
Lync_2013_Presencia_1.jpg

Internal Website (Lync 2013)

Lync_2013_Presencia_2.jpg
 
De esta forma podremos tener acceso desde cualquier ubicación, dentro o fuera de la red coporativa. Para comprobar que el fichero es accesible, escribimos el nombre FQDN de nuestra URL que alberga los Webservices de Lync y debemos ver algo parecido a esto:
 
Lync 2010
Lync_Estados_4.png
 
Lync 2013
Lync_2013_Presencia_4.JPG

Como podemos observar, estamos visualizando en el navegador el contenido de nuestro XML, por lo que inicialmente estaría correcto. Ahora debemos modificar nuestra política de usuario para que nuestros clientes Lync puedan consultar esta URL con los nuevos estados. Para ello abrimos una consola de Powershell de Lync y escribimos el siguiente cmdlet:

 
Ejemplo: Set-CsClientPolicy -Identity Nombre_Politica -CustomStateUrl "https://fqdn/presencia.xml
Nuestro CMDLET: Set-CsClientPolicy -Identity ASIR -CustomStateUrl "https://lync.asirsl.com/presencia.xml
 
Ahora podemos ejecutar este cmdlet y ver que se ha aplicado correctamente:
 
Lync 2010
 
Get-CsClientPolicy -Identity Global | Select-Object Custom* | fl
 
Lync_Estados_5.png
 
Lync 2013
 
Get-CsClientPolicy -Identity Global | Select-Object Custom* | fl
Lync_2013_Presencia_5.jpg
Como vemos se ha aplicado correctamente la configuración deseada, ahora únicamente debemos iniciar sesión de nuevo en nuestro cliente Lync y  tendremos nuestros estados disponibles:
 
Lync 2010
Lync_Estados_0.png
 
Lync 2013
 
Lync_2013_Presencia_3.jpg

Sin que decir tiene que debemos tener publicada la URL en donde tengamos el XML, tanto desde dentro como desde fuera de nuestra red. Si tenemos una instalación típica de Lync, ya debemos tener publicados los Servicios Web correspondientes con el FQDN adecuado, por lo que esto lo doy por hecho.

 
Como os había comentado este ejemplo habla únicamente de la publicación del XML vía HTTPS, pero también podéis hacerlo vía HTTP o directamente con acceso a carpetas locales o compartidas. Aqui os dejo varios ejemplos sacados de la Web de Microsoft:
 

Desde luego esto es lo más cómodo y transparente para el usuario, además nos permite cambiarlo en cualquier momento sin tener que realizar distintas configuraciones. Comentaros también que podemos crear tantos ficheros XML  como queramos,  tenerlos publicados y aplicados siempre a distintas políticas de usuarios. Se puede dar el caso de que queráis distintas opciones de presencia según el usuario o usuarios que se conecten. Para ello previsamente debemos crear la política correspondiente (New-CsClientPolicy), luego asignar el fichero XML a esta nueva politica (Set-CsClientPolicy -Identity Nombre_Politica -CustomStateUrl "https://fqdn/presencia2xml”) y posteriormente establecer la política a los usuarios que se desee (Grant-CSClientPolicy)
 
Como veis poco hay que hacer, dejar todo el mismo sitio y cambiar la URL del fichero de presencia si hemos cambiado algo en nuestra topología, en mi caso he configurado la versión Enterprise con un Pool de dos servidores y he modificado la dirección de los servicios Web, eso si, he copiado el fichero en ambos (no os olvidéis)
 
Espero que os sea de utilidad!!!

​Excelente noticia publicada por MSFT, el presidente Obama (USA) utilizó Lync para mantener a todo su personal comunicado en una de sus campañas en Chicago y otros estados.

Noticia

REDMOND, Wash. — April 3, 2013 — The Obama for America campaign selected Microsoft Lync as the communications platform for hundreds of campaign staff in its Chicago headquarters and in some states for the 2012 elections. The campaign needed to upgrade from a private branch exchange (PBX) system to a more flexible cloud-based solution that could scale and adapt to support thousands of mission-critical calls in multiple locations at any given time.
“When the campaign began in 2011, we couldn’t predict how big it would get or when, so scalability and deployment efficiency were two of the most important features for us,” said Rajeev Chopra, president of the MIS Department Inc. in Chicago and chief information officer at Obama for America. “Controlling our systems with Lync also provided much more flexibility.”
As part of the deployment, the campaign’s primary phone number and headquarters voter hotline were managed through Lync in order to handle calls that numbered in the hundreds of thousands per day. Over 2,000 people were connected via Lync; this number increased at key points in the campaign, such as during the debates and the Democratic National Convention, and Lync was able to quickly and easily scale to meet demand.
The ability to work from anywhere also created benefits that expanded beyond the campaign staff and volunteers. Because they were able to be fully mobile on Lync and move from the office to the field without needing to transfer their phone number every time, the IT staff was able to free up time and support other mission-critical activities to keep the campaign running smoothly.
“It was really useful to see how Lync could adapt to the way our multilocation operation works,” Chopra said. “We didn’t start with Lync in every office, but we deployed it in our Chicago headquarters, and those employees were able to seamlessly transition to the field while retaining their infrastructure. This ensured their focus remained on reaching out directly to voters and not on technology limitations."
“On election day, volunteers wanted to keep answering phones, even when their relief had arrived. Instead of turning people away from headquarters, we were able to plug them in, light up a port and place them anywhere there was an empty desk,” Chopra said. “Our voter protection hotline was able to be increased at any time.”
More information about how organizations are turning to Microsoft technology is available on the Microsoft Customer Spotlight newsroom.
Founded in 1975, Microsoft (Nasdaq “MSFT”) is the worldwide leader in software, services and solutions that help people and businesses realize their full potential.
 
Note to editors: For more information, news and perspectives from Microsoft, please visit the Microsoft News Center at http://www.microsoft.com/news. Web links, telephone numbers and titles were correct at time of publication, but may have changed. For additional assistance, journalists and analysts may contact Microsoft’s Rapid Response Team or other appropriate contacts listed at http://www.microsoft.com/news/contactpr.mspx.