Skype for Business

Comandos Powershell para probar los servicios de Lync/Skype for Business

Posted on Actualizado enn

This article in English here

Tras unas semanas sin escribir hoy me he animado de nuevo, tengo muchos “artículos” en la recamara, pero la verdad que últimamente ando mas liado en algún proyecto nuevo. En esta ocasión traigo algunos comandos PowerShell con los que se pueden lanzar pruebas de los servicios instalados en una implementación de Skype for Business.

Normalmente cuando hacemos una instalación de Comunicaciones Unificadas hay un momento durante el proyecto donde haremos una “batería” de pruebas donde comprobar los servicios de Skype for Business. Esto se complica a veces, ¿por que?, pues principalmente se complica porque necesitaremos al menos 2 o 3 clientes Skype con diferentes cuentas de usuario para hacer las “típicas” pruebas de IM, llamadas, conferencias, etc… A parte de la complicación para tener los “clientes” Skype simultáneamente, necesitaremos la ayuda de otro compañero para poder hacer las pruebas.

Pues bien, con estos comandos que paso a especificar a continuación, podremos hacer una pruebas básicas de los servicios de Skype que nos dará el resultado de “salud” de la plataforma que estamos montando.

Para realizar las pruebas necesitaremos dos cuentas dadas de alta en Skype for Business, yo siempre aconsejo tener un par de cuentas “Test”, que podremos tener para hacer pruebas, etc.. Esto es algo que pediremos en los Requisitos iniciales para comenzar la instalación a  nuestro cliente o los administradores del Directorio Activo. En este caso las cuentas que voy a utilizar son

Login: MRLYNC\SkypeTest1
Sip: SkypeTest1@mrlync.com
Password: *********

Login: MRLYNC\SkypeTest2
Sip: SkypeTest1@mrlync.com
Password: *********

Una vez tengamos los datos de nuestras cuentas “Test”, las habilitaremos en nuestro Skype for Business.

Declaramos las variables

Lo primero que haremos será declarar nuestras variables con los datos que queremos usar para las pruebas:

$login1 = “SkypeTest1@mrlync.com
$sip1 = “SkypeTest1@mrlync.com
$password1 = “*****” | ConvertTo-SecureString -AsPlainText -Force
$cred1 = New-Object System.Management.Automation.PsCredential($login1, $password1)

$login2 = “SkypeTest2@mrlync.com
$sip2 = “SkypeTest2@mrlync.com
$password2 = “******” | ConvertTo-SecureString -AsPlainText -Force
$cred2 = New-Object System.Management.Automation.PsCredential($login2, $password2)

$targetfqdn = “skypepool.mrlync.com
$authtype = “ClientCertificate”
#$authtype = “Negotiate”

Seguramente os habréis fijado en que el campo “login” lo declaramos igual que el campo “Sip“, con Skype for Business me funcionaron de esta manera los comandos, pero si vamos a ejecutar las pruebas en una plataforma de Lync 2013, seguramente necesitaremos poner el campo login: “MRLYNC\SkypeTest1

capture1

Servicios del Front End Server

Una vez hemos recogido los datos en las variable, usaremos los siguientes comandos para probar los servicios de nuestro Pool o Servidor Front End Estándar.

#Regitration

Write-Host “Registration

Test-CsRegistration -authentication $authtype -TargetFqdn $targetfqdn -RegistrarPort 5061 -UserSipAddress $sip1 -UserCredential:$cred1

capture2
Resultado Script Registration

 

#Address Book Service

Write-Host “Address Book Service

Test-CsAddressBookService -authentication $authtype -TargetFqdn $targetfqdn -RegistrarPort 5061 -UserSipAddress $sip1 -UserCredential:$cred1

capture3
Resultado Script Address Book Service

 

#Lis Configuration

Write-Host “Lis Configuration

Test-CsLisConfiguration -authentication $authtype -TargetFqdn $targetfqdn -RegistrarPort 5061 -UserSipAddress $sip1 -UserCredential:$cred1

capture4
Resultado Script Lis

 

#Presence

Write-HostPresence

Test-CsPresence -authentication $authtype -TargetFqdn $targetfqdn -RegistrarPort 5061 -SubscriberSipAddress “sip:$sip1” -SubscriberCredential $cred1 -PublisherSipAddress “sip:$sip2” -PublisherCredential $cred2

capture5
Resultado Script Presence

 

 #Lync Web App

Write-Host “Skype Web App

Test-CsUcwaConference -authentication $authtype -TargetFqdn $targetfqdn -RegistrarPort 5061 -OrganizerSipAddress “sip:$sip1” -OrganizerCredential $cred1 -ParticipantSipAddress “sip:$sip2” -ParticipantCredential $cred2 -verbose

capture6
Resultado Skype Web App 01
capture7
Resultado Skype Web App 02
capture8
Resultado Skype Web App 03
capture9
Resultado Skype Web App 04

 

capture10
Resultado Skype Web App 05

 

 #Skype IM

Write-Host “Skype IM

Test-CsIm -authentication $authtype -TargetFqdn $targetfqdn -RegistrarPort 5061 -SenderSipAddress “sip:$login1” -SenderCredential $cred1 -ReceiverSipAddress “sip:$login2” -ReceiverCredential $cred2
Test-CsGroupIM -authentication $authtype -TargetFqdn $targetfqdn -RegistrarPort 5061 -SenderSipAddress “sip:$sip1” -SenderCredential $cred1 -ReceiverSipAddress “sip:$sip2” -ReceiverCredential $cred2
Test-CsMcxP2PIM -authentication $authtype -TargetFqdn $targetfqdn -RegistrarPort 5061 -SenderSipAddress “sip:$sip1” -SenderCredential $cred1 -ReceiverSipAddress “sip:$sip2” -ReceiverCredential $cred2

capture11
Script Skype IM

 

 #VoIP

Write-Host “VoIP”

Test-CsP2PAv -authentication $authtype -TargetFqdn $targetfqdn -RegistrarPort 5061 -SenderSipAddress “sip:$sip1” -SenderCredential $cred1 -ReceiverSipAddress “sip:$sip2” -ReceiverCredential $cred2

capture12
Resultado VoIP

Todos Estos comandos los podemos añadir en un fichero TxT con formato *.ps1 y lanzarlo directamente como un Script desde PowerShell, así lo podremos usar para probar las implantaciones de Skype que vayamos a configurar

ms-diagnostics:33038 reason “Cannot transfer the call to another pool” and Conference ID not Found (English)

Posted on Actualizado enn

Hello all,

Again here, with one of those curious mistakes this time one of those of a global topology there are two “Skype sites” with two “Front-End Pools” separated by a dedicated network for the customer, such as an MPLS network for example.

DESIGN:

We have this design:

diagrama-general

We have two Site in Skype for Business, one in “SPAIN” and another in “UK” linked by a dedicated network, the two sites have their output to the local PSTN through “Gateway / SBC” and its corresponding Mediation Server, all right here.

PROBLEM DETECTED:

The client uses much the service “Skype Conference Call”, because in some of its offices still are not migrated to Unified Communications and has VoIP PBX, in this case all audio conferencing service is housed in one of the Front End Pool, specifically in the UK that houses all accounts “Dial in Access Number“.

El Servicio Doméstico “Dial in Access Number” se encuentra en el Pool del Reino Unido y el Conference ID se puede alojar en el Spain Pool y el Reino Unido.

  1. A user in Spain, creates a conference with Conference ID. 60051
  2. He sends the ID to the contacts for the meeting
  3. A UK User connected to the PSTN dials the number “Dial in Access Number” of UK with number +44 20 7234XX XX to enter the meeting
  4. The user dial the Conference ID 60051 and receive the following message “sorry, I can not connect to your meeting right now“.

When the call is received by “Dial in Access Number” in the UK and the Conference ID was on the Front End SPAIN this error occurred.

PROBLEM SOLUTION:

diagrama-error

To solve the problem, the first thing we can put a trace with the “logging tool” in the Front End pool of UK and launch a test.

We could see the following error:

error1

“Cannot transfer the call to another pool”

To solve this error simply change the parameter “Refer Support” to False

Set-CsTrunkConfiguration -Identity (Trunk_Name) -EnableReferSupport $false

solucion

After changing the Enable Support Refer parameter to “False” in the UK Pool was able to connect the call audio conferencing service with the conference ID of the user Spain Pool

diagramasolucion

ms-diagnostics:33038 reason “Cannot transfer the call to another pool” and Meeting ID not Found

Posted on

Hola a todos,

Otra vez por aquí con uno de esos errores curiosos que se encuentra uno en las implantaciones de topologías globales en las que hay varios “SITES” con diferentes Front-End Pools separados por una red dedicada para el cliente, como puede ser una red MPLS por ejemplo.

DISEÑO:

Partimos del siguiente diseño:

Diagrama General.jpg

Tenemos dos Site en Skype for Business, a nivel Topología, uno en “SPAIN” y otro en “UK” unidos por una red dedicada, cada infraestructura tiene su salida a la PSTN local por medio de Gateway/SBC y su Mediation Server correspondiente, hasta aquí todo correcto.

PROBLEMA DETECTADO:

El cliente tiene costumbre de uso el servicio de “Audioconferencia” de Skype, inlcuso de forma interna, ya que en algunas de sus sedes aun no están migrados a la solución de Comunicaciones unificadas y tiene PBX de VoIP, en este caso todo el servicio de Audioconferencia esta alojado en uno de los Front End Pool, concretamente en el de UK siento este el que aloja todas cuentas del “Dial In Access Number“.

De esta manera nos encontramos que el Servicio Principal “Dial in Access Number” esta el Pool de UK y en los ID de conferencia pueden estar alojados tanto en el propio Pool de UK como en el de SPAIN.

Es aquí donde nos encontrábamos el problema:

  1. Un usuario del Pool de Spain, crea una conferencia con el ID de conferencia. 60051
  2. Este envía la convocatoria a los contactos para la reunión
  3. Un usuario de UK conectado a la PSTN marca el numero “Dial in Access Number” de UK con numero +44 20 7234 XX XX para entrar a la reunión
  4. Marca el ID de conferencia 60051 y recibe el siguiente mensaje “sorry, I can’t connect to your meeting right now“.
  5. Y se cuelga la llamada

Cuando la llamada entraba por el “Dial in Access Number” de UK y el ID de conferencia estaba en el Front End de SPAIN se producía este error.

SOLUCION DEL PROBLEMA:

diagrama-error

Para solucionar el problema, lo primero que hicimos pue poner una traza con el “logging tool” en el Front End de UK y lanzar una prueba.

Pudimos ver el siguiente error:

error1

“Cannot transfer the call to another pool”

Para solucionar este error simplemente hay que cambiar el habilitar el parámetro “ReferSupport”

Set-CsTrunkConfiguration -Identity (Trunk_Name) -EnableReferSupport $false

solucion

Una vez cambiado el parámetro EnableReferSupport a False el Pool de UK era capaz de conectar la llamada del servicio de audio conferencia con el ID de la sala del usuario del pool de España

diagramasolucion

“Cannot start RTCSRV Service” – Specific error code – 2147014847. Skype for Business Access Edge on Local Computer (English)

Posted on Actualizado enn

This is my first article in English, now I will combine the articles in Spanish and English to facilitate the work of visitors. My English is not very advanced but I hope to help with my articles to all who encounter the same problems that I have found and here I am telling. Or simply the intention to use English is to reach more lovers of microsoft unified communications, Skype world for business, office 365, cloud, and etc…

I chose this last article, a problem which I have already met several times “Cannot start RTCSRV Service”. When the RTCSRV service is not started on the EDGE server, It can be normally for the following reasons:

– Problem with some of the certificates
– Some of the latest updates installed
– Some cumulative update of Skype for Business

This is what I usually find in some customers, but, this time, the situation was different, first, I will show the design.

diseno-1-blog-edge

Is noteworthy in this design that external firewall in DMZ is no NAT, the public IP addresses are directly posted on the Internet. This design was working fine until we installed the CU of June 2016 in the EDGE Server and we installed the security updates for Windows, when we restart we saw that the service “Skype for Business Server Access Edge” gave us the following error:

error-1-blog-edge

The first thing we did was uninstall updates, to restart the service, we saw these two errors:

error-2-blog-edge

error-3-blog-edge

After seeing that none of the usual reasons were the cause of the error, we remember that not long ago the customer changed the approach in its public IP address. Returning to the initial design. The “Public IP 1” and “Public IP 4” we had the same IP in the network interface for “sip.dominio.com” and the Rever Proxy:

diseno-2-blog-edge

There was a problem of incompatibility in the design and the Server was unable to start the Service.

“Cannot start RTCSRV Service” – Specific error code – 2147014847. Skype for Business Access Edge on Local Computer (Castellano)

Posted on Actualizado enn

“Cannot start RTCSRV Service” – Specific error code – 2147014847. Skype for Business Access Edge on Local Computer (Castellano)

Después de una larga temporada sin escribir, retomo el blog con este error que me encontré en un cliente y casualmente después de actualizar al ultimo CU de junio de 2016. Antes de pasar a detallar los detalles de como fue lo que me encontré y como lo solucionamos, me gustaría adelantaros mi intención de empezar a escribir alternativamente los post, en Ingles y Castellano, se que será difícil ya que es trabajo doble, pero una llamada que recibí hace poco y ver el origen de las visitas que recibe las entradas del blog me han llevado a tomar esta decisión, por eso he puesto (Castellano) en el titulo del post.

Bueno, pasemos a detallar el problema encontrado, como siempre hago, os lo contare de forma coloquial, y veréis que mas que un problema técnico lo que nos encontramos fue un problema de diseño que por casualidades “salto” o apareció después del reinicio típico después de actualizar el CU del EDGE.

Lo primero que hay que tener en cuenta es el diseño aproximado de este cliente en concreto para entender el “porque”.

diseno-1-blog-edge

Importante en este diseño que en firewall externo de la DMZ no había NAT, las IP’s publicas están directamente publicadas con la IP publica tanto para el EDGE server como para el Proxy Reverso que en este caso es un KEMP.

Pues bien, este diseño, estuvo funcionando bien hasta que casualmente le pasamos el CU de junio 2016 al EDGE server y parcheamos el servidor, una vez realizamos esto, reiniciamos y levantamos los servicios pero al levantar el servicio de “Skype for Business Server Access Edge” nos daba el siguiente error:

error 1 blog edge.jpg

Con ello, nos pusimos a buscar en y lo primero que pensamos era que podía ser la actualización, lo primero que hicimos fue quitar el CU instalado desde el panel de control, claro al levantar el servicio en este caso veíamos estos dos errores:

error 2 blog edge.jpg

error 3 blog edge.jpg

Seguíamos sin poder levantar el servicio de acceso, tras repasar e instalar de nuevo los certificados,  llegamos incluso a plantearnos recuperar un back up de la propia maquina virtual pero no tenia mucho sentido, entonces caímos en que habíamos no hace mucho tiempo cambiado un planteamiento en su direccionamiento IP publico. Y efectivamente ahí estaba el problema. Volviendo al diseño inicial. La “Public IP 1” y la “Public IP 4” eran la misma, teníamos por error la misma IP configurada en el interfaz de la tarjeta de red para “sip.dominio.com” y para el Proxy Reverso:

Diseño 2 blog edge.jpg

 Con lo cual había un problema de incompatibilidad y el Servidor era encapad de levantar el servicio. Una vez cambiamos la IP en el interfaz del KEMP pudimos levantar el servicio sin ningún problema.

Perdida del registro de llamadas en Skype for Business (KB3114351)

Posted on Actualizado enn

Por fin consigo sacar un hueco para escribir otro pequeño artículo, estas últimas semanas están siendo de locura en lo que al trabajo respecta pero espero volver a coger el buen habito de compartir mis experiencias con las Comunicaciones Unificadas de Microsoft, no se me olvidan los post que tengo pendientes pero de momento os dejo esto que me he encontrado esta semana y que no quería dejar escapar.

En un cliente nos hemos encontrado varias incidencias en las que los usuarios de “Skype for Business” habían perdido el registro de llamadas perdidas y conversaciones. Cuando entraban aparecía la lista vacía, y días antes todo parecía haber funcionado bien

Captura1

En el cliente Skype no había ningún error típico de perdida de conexión con Outlook o Exchange Server y tras revisar toda la configuración, incluso intuir que podía ser uno de los Front End del Pool descubrimos que el problema era la actualización:

“Security Update for Skype for Business 2015 (KB3114351)”

El equipo de soporte había liberado la actualización y según se lanzaba en los clientes los usuarios iban perdiendo el registro.

Tras desinstalar la actualización el cliente empezó a funcionar correctamente.