SIP

Implementar “Call Admission Control – CAC” en Skype for Business. Parte 2

Posted on Actualizado enn

Implementar “Call Admission Control – CAC” en Skype for Business. Parte 1

Continuamos con la implementación de Call Admission Control – CAC en Skype for Business, algo que como ya conté en la Parte.1 del articulo, es raro encontrarse en la implementaciones de Skype/Lync, al menos en las que yo he trabajado, es algo que el si no pide expresamente el cliente, los propios administradores o implementadores no solemos poner.

En esta segunda parte, sobre un ejemplo de una infraestructura voy a explicar como diseñar CAC.

Diseño de Skype for Business

Imaginemos que tenemos el siguiente diseño en Skype for Business.

imagen 1.jpg

En este diseño tenemos una implementación de SKYPE FOR BUSINESS con un SITE Principal que esta en Madrid, con su Pool de Edge que actuará como ruta principal para la Federación de todo el entorno, además tenemos un SIP TRUNK que será por el que sacaremos las llamadas.

También tenemos dos sitios remotos, una oficina en Barcelona, con su salida a la PSTN y otro en UK, concretamente en la oficina estará en Londres. También con salida a la PSTN.

El Pool principal con sus Sitios Remotos estará conectado a través de una WAN.

Como ya vimos en el articulo anterior, CAC actuara sobre la WAN de estos Sitios Remotos.

Diseño de “Call Admission Control – CAC”

Una vez que ya tenemos nuestra infraestructura de Skype diseñada, podremos empezar a pensar en el diseño de CAC, normalmente el cliente nos podrá dar que anchos de banda y limites quiere, pero si no nos tocara a nosotros hacer el calculo. Para ello tendremos que tener en cuenta la tabla de Anchos de Banda y Consumos de Skype y sus códec.

UTILIZACION DE ANCHO DE BANDA SEGUN EL CODEC

CaptureTable1.JPG

UTILIZACION DE ANCHO DE BANDA SEGUN EL ESCENARIO

CaptureTable3.JPG

Para nuestro ejemplo en el que estamos trabajando vamos a usar para los sitios de Barcelona y Londres la misma configuración de CAC

Audio Limit 3072 Kb
Audio Session Limit 175 Kb
Video Limit 2048 Kb
Video Session Limit 384 Kb

Para implementar CAC debemos tener claro los siguientes términos:

Para diseñar nuestro CAC deberemos determinar cual será nuestra Regiones de Red (Network Región) por ejemplo, podemos tener una Región de Red para Europa y otra para America del Norte, después en cada Región de Red tendremos el Sitio Central (Central Site), por ejemplo, para la Región de Europa, el Central Site será Madrid y para Norte América será Chicago. Además tendremos nuestros Sitios de Red (Network Sites), que será donde apliquemos la limitación de CAC. En nuestro caso es, Barcelona y Londres.

Para el ejemplo en el que estamos trabajando, tenemos el siguiente diseño

imagen 2.jpg

Network Region Central Site Network Sites
EMEA Madrid Barcelona
  London

Implementar “Call Admission Control – CAC” en Skype for Business. Parte 1

Posted on Actualizado enn

Después de un tiempo sin pasar por aquí, hoy voy a escribir sobre la herramienta de Skype for Business llamada CAC (Call Admission Control), herramienta que ya existía en las versiones anteriores Lync. A muchos de los Administradores o Implementadores de Skype/Lync la palabra CAC en un proyecto nos supone un gran quebradero de cabeza, porque muchos de nosotros no somos administradores de Networking y para implementar CAC es necesario un buen diseño de red de la implementación. Para empezar a conocer que es CAC deberemos de conocer en que consiste.

¿Qué es el Call Admission Control – CAC?

Básicamente es un servicio de control y administración de Ancho de Banda con el que se limitara el numero de llamadas simultaneas a través de enlaces de ancho de banda limitado, como es una red WAN, de esta manera evitaremos la degradación de la red.

¿Por qué implementar CAC?

Básicamente en muchos entornos en los que te enfrentas a un despliegue de Skype/Lync la gran preocupación es como soportará la red del cliente la carga que supone desplegar VoIP y videoconferencia ya que estas requieren un alto ancho de  banda y baja latencia para ofrecer un buen servicio de calidad. En muchas ocasiones el cliente no tiene disponibilidad de contratar un ancho de banda suficiente para que la comunicación de VoIP y video en sus sedes remotas, en estas ocasiones lo mejor es por nuestra parte hacer un calculo de ancho de banda para que el cliente sepa las necesidades, pero además también se puede optar por implementar QoS o en este caso Call Admisión Control – CAC.

En otros artículos explicare como hacer un calculo de ancho de banda y como implementar QoS en Skype/Lync

¿Cómo funciona CAC?

La política de CAC se aplica entre usuarios de distintas sedes que están conectados a través de una red WAN. La política de CAC se comprueba antes de que uno de los puntos implicados acepte la llamada, de esta manera CAC determinara cual es la mejor ruta para encaminar la llamada. El orden es el siguiente: La red WAN, Internet o PSTN.

Por ejemplo, supongamos que tenemos dos usuarios, uno en la oficina de Barcelona y otro en la oficina de Madrid.

img1El usuario de Madrid hace una llamada al usuario de Barcelona, antes de que este acepte la llamada, CAC hará la comprobación de Ancho de Banda y en este caso determina que la llamada se curse por la red WAN

Pongamos ahora, que cuando el usuario de Madrid lanza una llamada al usuario de Barcelona en ese momento hay otras 10 personas de Madrid haciendo llamadas a través de la WAN.

img2

En este caso el CAC determinara que la mejor ruta para cursar la llamada con calidad será a través de Internet por el Servidor Perimetral. Pero en el caso de que no se consiga, usara la PSTN para enviarla.

img3

Es aconsejable para que esto funcione correctamente tener un buen diseño de las políticas y rutas de llamadas, y a la vez un buen planteamiento de la tarjeta de contacto de los usuarios con la información de los números de teléfono correctamente implementados.

Si el CAC entra en servicio en una llamada, los usuarios pueden notar que la llamada tarda un par de segundos en establecerse.

¿Qué pasaría si la llamada no puede cursarse por Internet o por la PSTN?

Pues bien, en el peor de los casos el usuario Madrid no podrá conectar con el usuario de Barcelona y la llamada se cancelará.

En la parte 2 veremos un ejemplo de diseño en un entorno y la configuración de CAC, además de su comprobación.

 

Powershell Commands to Test Lync and Skype for Business Services

Posted on Actualizado enn

Este articulo en Español  aquí

After a few weeks without writing today I have been encouraged again, I have many “articles” in my mind, but I am more involved in some new project. This time I bring some PowerShell commands that you can launch tests of installed services in a Skype for Business implementation.

Usually when we do a Unified Communications installation there is a moment during the project where we will do a “battery” of tests to check the services of Skype for Business. This complicates sometimes, because we will need at least 2 or 3 Skype clients with different user accounts to do the “typical” IM tests, calls, conferences, etc … Apart from The complication to have the “clients” Skype simultaneously, we will need the help of another coworker to be able to do the tests.

Well, with these commands that I will specify below, we will be able to do a basic tests of the Skype services that will give us the “health” result of the platform.

To perform the tests we will need two accounts registered in Skype for Business, I always advise to have a couple of “Test” accounts, which we can have to do tests, etc. This is something we will ask in the Initial Requirements to begin the installation To our client or the Active Directory administrators. In this case the accounts that I am going to use are.

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

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

Once we have the data of our “Test” accounts, we will enable them in our Skype for Business.

Declare the variables

The first thing we will do is declare your variables with the data we want to use for the tests:

$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”

Surely you have noticed that the field “login” we declare it as the field “Sip”, with Skype for Business I worked in this way the commands, but if we are going to run the tests in a platform of Lync 2013, surely we will need to put The login field: “MRLYNC \ SkypeTest1”

capture1

Front End Services

Once we have collected the data in the variables, we use the following commands to test the services of our Pool or Standard Front End Server.

#Regitration

Write-Host “Registration

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

capture2
Script Registration Result

#Address Book Service

Write-Host “Address Book Service

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

capture3
Script Address Book Service

#Lis Configuration

Write-Host “Lis Configuration

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

capture4
Script Lis Result

#Presence

Write-HostPresence

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

capture5
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
Skype Web App 01
capture7
Skype Web App 02
capture8
Skype Web App 03
capture9
Skype Web App 04

 

capture10
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
VoIP

All of these commands can be added in a TxT file format * .ps1 and launched directly as a script from PowerShell, so we can use it to test the Skype deployments that we will configure

“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.

Cambiar el parametro “FailOverTimeout” para las llamadas PSTN en Lync

Posted on Actualizado enn

Recientemente nos encontramos con un problema a la hora de “tracear”. En concreto algunas llamadas que no se cursaban correctamente entre los clientes Lync/Skype contra algunos números externos, en esta ocasión era  numeración de Emergencia (062, 112, 091, etc …)

Concretamente cuando realizábamos la batería de llamadas y poníamos una traza de Wireshark en nuestros Mediation Server, veíamos lo siguiente:

Captura1

A los 10 segundos nuestro Mediation Sever enviaba siempre un “CANCEL” y la llamada no llegaba a cursarse:

Captura2

Indagando por la red dimos con la solución. Lync por defecto espera 10 segundos a que la llamada progrese y si no lo hace manda una opción “CANCEL” y la corta, no pudiendo ver de esta manera por qué la llamada no se cursa, o quizás este tipo de llamadas a números  de Emergencia estaban tardando más de lo normal en cursarse y con esta “restricción” no conseguían progresar.

Aunque parezca que Lync es un sistema bastante “restringido” a la hora de configurar sobre todo las opciones SIP que enviamos a nuestros TRUNKS, existen algunos ficheros de configuración en los cuales podemos cambiar (con mucho cuidado) parámetros como es el caso de “FailOverTimeour”. Esta opción por defecto está a 1000

      <add key=”FailOverTimeout” value=”10000″/>
<add key=”MinGwWaitingTime” value=”1″/>
<add key=”MaxGwWaitingTime” value=”20″/>
<add key=”FailuresForGatewayDown” value=”10″/>
<add key=”FailuresForGatewayLessPreferred” value=”25″/>
<!– Valid values are between 5 and 600 –>
<add key=”HealthMonitoringInterval” value=”300″/>
<!– Valid values are between 60 and 3600 –>
<add key=”GatewayStateReportingInterval” value=”1800″ />

Cambiándola a 2000 conseguimos subir a 20 segundos el tiempo que tarda nuestro Lync en enviar el “CANCEL”.

El fichero se llama “OutboundRouting.exe.config” y lo podemos encontrar en la ruta del servidor “C:\Program Files\Microsoft\Lync Server 2013\Server\Core“.

Captura3JPG

El fichero lo podemos Editar con “XML Notepad”, por ejemplo:

Captura4

La manera mas correcta de proceder a la hora de modificar ficheros de configuración de este tipo en Lync, o al menos la que aconsejo, es siempre hacerlo parando servicios de forma ordenada, servidor a servidor, lo que llamamos comúnmente “drenar los servidores”, y mas en arquitecturas con mas de un servidor en los Pool.