Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Modificar el final del archivo con los parámetros que se configuraron previamente y con los cuales serán llamados los
módulos. Guardar y recargar configuración.
Nota: Tener presente que el apuntador de “goto” debe hacer referencia al IVR que corresponda con el de Conexiones
Digital (ivr-8) en nuestro caso cosnignado en el archivo “extensions_additional.conf”.
Se adjunta el archivo completo:
extensions_custom.conf
; This file contains the contexts the agents login for the module call center.
; and contains the context conferences for module conferences of elastix 1.0.
[from-internal-custom]
exten => 1234,1,Playback(demo-congrats) ; extensions can dial 1234
exten => 1234,2,Hangup()
exten => h,1,Hangup()
include => agentlogin
include => conferences
include => calendar-event
include => weather-wakeup
[agentlogin]
exten => _*8888.,1,Set(AGENTNUMBER=${EXTEN:5})
exten => _*8888.,n,NoOp(AgentNumber is ${AGENTNUMBER})
exten => _*8888.,n,AgentLogin(${AGENTNUMBER})
exten => _*8888.,n,Hangup()
[mm-announce]
exten => 9999,1,Set(CALLERID(name)="MMGETOUT")
exten => 9999,n,Answer
exten => 9999,n,Playback(conf-will-end-in)
exten => 9999,n,Playback(digits/5)
exten => 9999,n,Playback(minutes)
exten => 9999,n,Hangup
[conferences]
;Used by cbEnd script to play end of conference warning
exten => 5555,1,Answer
exten => 5555,n,Wait(3)
exten => 5555,n,CBMysql()
exten => 5555,n,Hangup
[calendar-event]
exten => _*7899,1,Answer
exten => _*7899,2,Playback(${FILE_CALL})
exten => _*7899,3,Wait(2)
exten => _*7899,4,Hangup()
[weather-wakeup]
exten => *61,1,Answer
exten => *61,2,AGI(nv-weather.php)
exten => *61,3,Hangup
exten => *62,1,Answer
exten => *62,2,AGI(wakeup.php)
exten => *62,3,Hangup
; BEGIN ELASTIX CALL-CENTER CONTEXTS DO NOT REMOVE THIS LINE
[llamada_agendada]
exten => _X.,1,NoOP("Elastix CallCenter: AGENTCHANNEL=${AGENTCHANNEL}")
exten => _X.,n,NoOP("Elastix CallCenter: QUEUE_MONITOR_FORMAT=${QUEUE_MONITOR_FORMAT}")
exten => _X.,n,GotoIf($["${QUEUE_MONITOR_FORMAT}" = ""]?skiprecord)
exten => _X.,n,Set(CALLFILENAME=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${UNIQUEID})
exten => _X.,n,MixMonitor(${MIXMON_DIR}${CALLFILENAME}.${MIXMON_FORMAT},,${MIXMON_POST})
exten => _X.,n,Set(CDR(userfield)=audio:${CALLFILENAME}.${MIXMON_FORMAT})
exten => _X.,n(skiprecord),Dial(${AGENTCHANNEL},300,tw)
exten => h,1,Macro(hangupcall,)
[custom-RegZona1]
exten => s,1,NoOp(#######################################)
exten => s,n,NoOp(######### 8001 SISTECO V1 ###############)
exten => s,n,NoOp(#######################################)
exten => s,n,AGI(CDII/agi-RegRegionCDii.php,SISTECO,${CALLERID(num)},${CHANNEL(channeltype)},${STRFTIME(${EPOCH},America/Bogota,%Y%m
%d-%H%M%S)})
exten => s,n,Goto(ivr-4,s,1)
exten => s,n,NoOp(############# Fin 8001 ##################)
exten => s,n,Hangup
[custom-RegZona2]
exten => s,1,NoOp(#######################################)
exten => s,n,NoOp(######### 8002 BAUMTIC V1 ###############)
exten => s,n,NoOp(#######################################)
exten => s,n,AGI(CDII/agi-RegRegionCDii.php,BAUMTIC,${CALLERID(num)},${CHANNEL(channeltype)},${STRFTIME(${EPOCH},America/Bogota,%Y
%m%d-%H%M%S)})
exten => s,n,Goto(ivr-4,s,1)
exten => s,n,NoOp(############# Fin 8002 ##################)
exten => s,n,Hangup
;
AGIGuardarRegion.php
#!/usr/bin/php -q
<?php
require("phpagi.php");
date_default_timezone_set('America/Bogota');
// MYSQL Properties
$servername = "localhost";
$username = "root";
$password = "********";
$dbname = "ccdsurvey";
// AGI
$agi = new AGI();
$agi->answer();
// Connection MYSQL
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
$agi->verbose("Error MySQL: ".mysqli_connect_error(), 1);
}
// Extract Vars
$AGENT = $agi->get_variable("AGENTE");
$AGENT = $AGENT["data"];
$FROMDID = $agi->get_variable("FROM_DID");
$FROMDID = $FROMDID["data"];
$NODEST = $agi->get_variable("NODEST");
$NODEST = $NODEST["data"];
$YEAR = $agi->get_variable("YEAR");
$YEAR = $YEAR["data"];
$MONTH = $agi->get_variable("MONTH");
$MONTH = $MONTH["data"];
$DAY = $agi->get_variable("DAY");
$DAY = $DAY["data"];
$CALLFILENAME = $agi->get_variable("CALLFILENAME");
$CALLFILENAME = $CALLFILENAME["data"];
$ANSWER01 = $agi->get_variable("PREGUNTA01");
$ANSWER01 = $ANSWER01["data"];
$ANSWER02 = $agi->get_variable("PREGUNTA02");
$ANSWER02 = $ANSWER02["data"];
// INSERT MYSQL
if ($conn) {
$sql = "INSERT INTO surveystats (`did`, `destination`, `year`, `month`, `day`, `uniqueid`, `callfilename`, `answer1`, `answer2`,`agent`)";
$sql.= " VALUES('".$FROMDID."', '".$NODEST."', '".$YEAR."', '".$MONTH."', '".$DAY."', '".$UNIQUEID."', '".$CALLFILENAME."', '".$ANSWER01."', '".
$ANSWER02."', '".$AGENT."') ";
error_log($sql."\n", 3, "/var/lib/asterisk/agi-bin/survey.log");
if (mysqli_query($conn, $sql)) {
$agi->verbose("Registrada.", 1);
} else {
$agi->verbose("Error MySQL: No Pudo Registrar Encuesta. ", 1);
}
mysqli_close($conn);
}
?>
Crear en la Base de Datos “call_center” una tabla y su respectiva estructura para insertar los datos que serán
contabilizados posteriormente.
Ejemplo de registros
Instalar los archivos necesarios dentro del servidor para poder acceder al módulo de consultas. Y configurar las
credenciales adecuadas dentro del sistema.
Ingresar al Modulo previamente instalado para descargar y visualizar los registros. Crear o asignar las credenciales
necesarias para realizar consultas dentro de la base de datos.
https://xxx.xxx.xxx.xxx/Consulta_Proyecto/Consulta_ZonaLlamada.php