Puedes usar el modulo callcenter de Elastix (el gratuito) o mediante asterisk puro con archivos .call
Te paso informacion sobre los archivos de llamada
Un archivo de llamada es un documento de texto plano donde se recoge información para que Asterisk realice una llamada de forma automática. Asterisk monitoriza y ejecutará cualquier archivo de llamada que se copie al directorio “/var/spool/asterisk/outgoing/”
Los parámetros de un archivo de llamada son (no necesarios todos):
- Channel: Canal que usará el archivo de llamada.
CallerID: Identificador de llamada ¡¡OJO!! no funcionará si no se pone con el formato adecuado, por ejemplo: CallerID: "Jhon Connor" <1234>
MaxRetries: Número de repeticiones en caso de fallo, por defecto es 0.
RetryTime: Segundos entre las repeticiones. Por defecto son 300 (5 min).
Si el archivo de llamada se contesta, conecta aquí:
- Context: Contexto en extensions.conf
Extension: Extensión definida en el contexto anterior (en el extensions.conf)
Priority: Prioridad de la extensión anterior.
Application: La aplicación de Asterisk que se ejecutará
Data: Opciones que se le pasan a la aplicación
Veamos un ejemplo:
Supongamos que un formulario PHP solicita un número de teléfono al que llamar a un posible cliente, lo que solemos llamar "clic-to-call". El PHP contendrá un formulario que solicite el número de teléfono al que llamar y un botón de enviar. Internamente, el archivo de llamada llamará a la extensión 200 y una vez que ésta responda llamara al cliente. El PHP tiene que generar el siguiente archivo de llamada:
clic-to-call.call
Channel: SIP/200
Application: Dial
Data: dahdi/g1/999888777
Siendo “dahdi/g1” el canal por el que se realiza la llamada al cliente 999888777.
Recomendaciones:
A la hora de generar el archivo de llamada, es recomendable no hacerlo directamente en el directorio “/var/spool/asterisk/outgoing/” ya que se pueden crear archivos temporales que
dificulten la ejecución del archivo de llamada. Es mejor crearlo en “/tmp” (por ejemplo) y después moverlo al directorio outgoing.
Trucos:
Podemos programar un archivo de llamada para que se ejecute a una hora determinada. Para ello cambiamos la hora de creación del archivo de llamada, a la hora/día que deseemos que se ejecute. Por ejemplo, vamos a programar la llamada de antes (primero a la extensión 200 y luego al 999888777) pero para que se ejecute el 1 de enero de 2011:
# vim /tmp/clic-to-call.call (creamos el archivo)
# touch -d 20110101 /tmp/clic-to-call.call (cambiamos la fecha de creación)
# mv /tmp/clic-to-call.call /var/spool/asterisk/outgoing
Llegado el 1 de enero de 2011 se ejecutará el archivo.
Espero que te sirva de ayuda.