Lync Server 2013 CU1: Group Call Pickup o Grupo de Captura de Llamadas
Una de las cosas que yo echaba de menos en Lync, era la posibilidad de capturas o “rescatar” llamadas. En la telefonía tradicional es muy común, el que algún usuario pueda contestar una llamada dirigida a un compañero desde su propio teléfono. También es cierto que Lync no tiene esa filosofía de funcionamiento, porque como te enteras de que a tu compañero le está llamando? o bien le ponemos algún sistema de alerta sonora o visual sino …. pero también es cierto que siempre hay que clientes que lo demandan. A lo mejor no por la necesidad en si, sino por la costumbre de utilizarlo durante años. Pues hasta esta misma noche (28-02-2013) en Lync tampoco se podían capturar llamadas sin software de terceros, pero con la llegada del CU1 ya lo tenemos disponible.
Tenemos dos requisitos que cumplir antes de poder configurar las opciones de Group Call Pickup:
- Instalar el CU1 de Lync Server 2013: Descarga e Instalación de Lync Server 2013 Cumulative Update KB 2809243
- Instalar las Resource Kit Lync 2013: Microsoft Lync Server 2013 Resource Kit Tools
- Instalar UCMA 3.0 Core SDK o superior: Microsoft Unified Communications Managed API 3.0 Software Development Kit
Una vez que cumplamos con los requisitos necesarios podemos empezar con la configuración, lo primero que debemos hacer es crear una aplicación de confianza para la herramienta SEFAUtil (secondary extension feature activation) del Kit de Recursos. Para ello ejecutamos los siguientes cmdlets para crear la aplicación de confianza:
Con este comando definimos que la aplicación de confianza será para el poolde servidor que tenemos en nuestra topología, pero si quieremos asignarla solo a un servidor podemos configurarlo (New-CsTrustedApplicationComputer). Sino sabemos el nombre de nuestro SITE podemos conocerlo con el cmdlet Get-CsSite

Sintaxis: New-CsTrustedApplicationPool -id <Pool FQDN> -Registrar <Pool Registrar FQDN> -site Site:<Pool Site>
Ejemplo: New-CsTrustedApplicationPool -id pool.asirsl.com -Registrar pool.asirsl.com -site Site:”Asir Lync”

Ahora definimos la herramienta SEFAUtil como aplicación de confianza, OJO: el nombre de la ApplicationId tiene que ser SEFAUTIL sino no os funcionará. El TrustedApplicationPoolFqdn será nuestro pool de servidores Front-END y el número de puerto debéis escoger uno que no se esté utilizando
Sintaxis: New-CsTrustedApplication -ApplicationId sefautil -TrustedApplicationPoolFqdn <Pool FQDN> -Port 7489

Si queremos ver que la aplicación se ha creado correctamente podemos hacerlo desde el Panel de Control de Lync – Topología – Aplicación de Confianza

y desde PowerShell con el siguiente cmdlet: Get-CsTrustedApplicationPool
Por último debemos publicar la topologia para ello tenemos el cmdlet de siempre
Sintaxis / Ejemplo: Enable-CsTopology – Verbose

Si queremos comprobar que la aplicación está funcionando correctamente podemos hacerlo utilizando el SEFAUtil lo que queremos es consultar la configuración de cualquier usario de Lync
Sintaxis: SEFAUtil.exe <user SIP address> /server:<Lync Server/Pool FQDN>
Ejemplo: SEFAUtil.exe arial@asirsl.com /server:pool.asirsl.com

De momento lo único que hemos hecho es agregar la aplicación de confianza para la SEFAUtil,ahora debemos crear el intervalo de extensiones que utilizaremos para asignar como grupo de captura. Esto solo lo podemos hacer mediante PowerShell, no tenemos de momento la posiblidad de crearlo desde el Panel de Control de Lync.
Sintaxis: New-CsCallParkOrbit -Identity <name of call pickup group range> -NumberRangeStart <first number in range>
-NumberRangeEnd <last number in range> -CallParkService <FQDN or service ID of the Application service that hosts the Call Park application> -Type GroupPickup
Ejemplo: New-CsCallParkOrbit -Identity “PickupGroup” -NumberRangeStart “7000” -NumberRangeEnd “7010” -CallParkService pool.asirsl.com –Type GroupPickup

Debemos tener en cuenta que el intervarlo de extensiones no estén ya utilizadas por otros usuarios ni servicios, y luego como podéis observar tenemos al final del cmdlet el modificador Type en donde indicamos que tipo de grupo a crear. Para poder capturar llamadas debemos debemos escribir GroupPickup, este grupo de extensiones no está disponible desde el Panel de Control de Lync

Pero si que podemos ver la configuración de todos los grupos de extensiones para el estacionamiento de llamadas desde PowerShell, como vemos un de los grupos se utilizará para el estacionamiento de llamadas y otro para el Group Call Pickup. Si necesitamos cambiar cualquier parámetro debemos hacerlo mediante PowerShell

Por último debemos asignar a los distintos usuarios a un grupo de captura, para ello debemos utilizar el SEFAUtil
SEFAUtil.exe sbuitrago@asirsl.com /server:pool.asirsl.com /enablegrouppickup:7000
SEFAUtil.exe soporte@asirsl.com /server:pool.asirsl.com /enablegrouppickup:7000

Ahora ya tenemos dos usuarios los cuales pertenecen a un grupo de captura (cada uno podría pertener a un grupo diferente),ahora solo debemos probarque funciona correctamente. Os comento que debéis comunicar a los usuarios los grupos de captura que existen si queréis que puedan capturar llamadas, puesto que a los usuarios no se les informa de forma alguna.Aqui os dejo un vídeo de como se capturaría una llamada, tratando de simular un entorno de producción:
Espero que os sea de utilidad!!!
Excelente función / Autor / 1 marzo, 2013
Hay muchos que recomiendan usar un servidor dedicado para esta función, yo he usado el mismo del OWAS, habría que agregarle unos pasitos mas pero básicamente es lo mismo.
También me di cuenta que llega un correo notificando que mi llamada fue tomada por uno de mis compañeros, me imagino que esto ocurre por la integración de Lync y el UM de Exchange
Muy buena solución / Autor / 21 enero, 2015
Estimado, muchas gracias por el manual que has efectuado para el Call Pickup, yo seguí tu tutorial pero no me a resultado el recatar una llamada en Lync Server.
– Estos son los registros de las configuraciones que he hecho.
PS C:\Program Files\Microsoft Lync Server 2013\ResKit> .\SEFAUtil.exe /server:SVR-LYNC-FE.siss.cl lynctest@siss.cl
User Aor: sip:lynctest@siss.cl
Display Name: lynctest
UM Enabled: False
Simulring enabled: False
CallForwarding Enabled: false
Group Pickup Orbit: sip:*1500;phone-context=defaultprofile@siss.cl;user=phone
PS C:\Program Files\Microsoft Lync Server 2013\ResKit> Get-CsCallParkOrbit
Identity : PickupGroup
NumberRangeStart : *1500
NumberRangeEnd : *1599
CallParkServiceId : ApplicationServer:SVR-LYNC-FE.SISS.CL
CallParkServerFqdn : SVR-LYNC-FE.SISS.CL
Type : GroupPickup
– Este es el registro de la llamada, la cual me da error cuando quiero recatar la llamada de mi otro usuario.
SIP/2.0 400 Bad Request;tag=8430ecdae8;epid=d5e71bd6c9;tag=d32499dd12;epid=9B5E8C1BFE
FROM: “lynctest02”
TO: “Call Park Service”
CSEQ: 1 INVITE
CALL-ID: 537d61aaa1f74b56bff2591397cb28b9
VIA: SIP/2.0/TLS 172.17.101.90:62720;branch=z9hG4bKF519441F.C96FB53F0651D5D4;branched=TRUE,SIP/2.0/TLS 172.17.2.110:53421;ms-received-port=53421;ms-received-cid=1224E00
CONTENT-LENGTH: 0
PRIORITY: Normal
SUPPORTED: Replaces
P-ASSERTED-IDENTITY: “Call Park Service”
SERVER: RTCC/5.0.0.0 Call_Park_Service_1.0
ms-diagnostics: 35009;source=”SVR-LYNC-FE.siss.cl”;reason=”No orbit found in unpark request. Specify an orbit and try again.”;component=”urn:application:Cps”
Ms-Conversation-ID: 9299e5ec6bba456991380268615078d0
Muchas gracias Santiago por tus aportes!!!