Utilizar CCSS en Asterisk (parte 2)

Buenas, hoy toca la parte 2.
(Vigila la parte 1 si no la has visto)

En esta parte no me voy a liar demasiado, simplemente mencionaré una forma en la que podemos controlar cómo se genera el Recall. Recordemos:

  • Recall: When the caller attempts to call the recipient after being alerted that the recipient is available, this action is referred to as a “recall.”

Para tocar el recall tendremos que tocar antes de que Asterisk llame a Bob, pero después de que llame a Alice. Entre el punto 5 y 6 del esquema con el que empecé todo esto.

Para intervenir en ese punto podemos utilizar un parámetro del archivo ccss.conf que se llama cc_callback_sub.

Cuando este parámetro tenga un valor Asterisk entrará en la subrutina que pongamos aquí antes de realizar la llamada al otro extremo (a Bob).

Setear este parámetro desde el archivo no tiene mucho sentido porque puede que no necesitemos exactamente ir a la misma subrutina en todas las llamadas, así que podemos hacerlo de forma dinámica utilizando la función CALLCOMPLETION() directamente desde el dialplan.
De esta forma podemos llamar a una subrutina diferente para cada tipo de llamada que tengamos. En esta subrutina se puede jugar con las variables del servicio CCSS introduzca mensajes antes de llamar, para que llame a otra persona o lo que necesitemos.

Otra forma añadida para hacer que todo sea más dinámico es pasar la configuración de sip.conf a realtime. En la que sólo tendremos que añadir los parámetros que se describieron en el apartado anterior.

Ahora ya tenemos un dialplan con más posibilidades. 😉

Con los añadidos de esta parte quedaría algo así:

extensions.conf
[servicios]
exten => 100,1,Answer() ; Para probar que funciona
same => n,Playback(demo-congrats)
same => n,Hangup()

[internas]
exten => _10[0-3],1,Set(CALLCOMPLETION(cc_callback_sub)=prueba,${EXTEN},1)
same => n,Dial(SIP/usuario${EXTEN}, 10, r)

exten => 30,1,CallCompletionRequest()
same => n,Hangup()

exten => 31,1,CallCompletionCancel()
same => n,Hangup()

[telf-internos]
include => servicios
include => internas

[prueba]
exten =>_X.,1, NoOp(“Aquí se ejecuta la subrutina”)

Y de momento con esto doy terminada esta parte.

En la siguiente igual hablamos de las variables con las que podemos jugar en la subrutina, o no.

Saludos!

Anuncios

2 pensamientos en “Utilizar CCSS en Asterisk (parte 2)

  1. Utilizar CCSS en Asterisk (parte 3) – Mis proyectos de tecnología libre.

  2. Utilizar CCSS en Asterisk (parte 4) – Mis proyectos de tecnología libre.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s