Вы находитесь на странице: 1из 2

Como hacer llamadas en automtico usando AMI y el comando originate en Asterisk PBX

Muchos amigos me han preguntado como lanzar llamadas en automtico a travs de Asterisk, aparte que es muy comn que en diversos foros salgan este tipo de preguntas. Por ello aqu posteo un cdigo muy simple hecho en PHP que permite marcar a un nmero para luego enlazarlo a un AGI, Un grupo de marcacin, grupo de extensiones, IVR, etc., <?
#Direccion IP del Servidor de Asterisk Manager $strHost = "localhost"; #Usuario dado de alta en el Asterisk Manager definido en /etc/asterisk/manager.conf o /etc/asterisk/manager_custom.conf $strUser = "cloudvoox"; #Password del usuario del Asterisk Manager definido en /etc/asterisk/manager.conf o /etc/asterisk/manager_custom.conf $strSecret = "cloudvoox"; #especificamos el contexto $strContext = "from-internal"; #indicamos el tiempo de espera de la marcacin $strWaitTime = 45; #La prioridad para colocar la llamada $strPriority = 1; #maximo de reintentos $strMaxRetry = "2"; #Extensin a dnde mandaremos la llamada realizada, previamente debemos definirla extension en /etc/asterisk/extensions_custom.conf, esta puede ser un AGI, un Grupo de marcacin, IVR, Extension, Cola de llamadas, etc. $number="1997"; #A partir de aqu podemos crear un ciclo que lea diversos nmeros a marcar, por ejemplo podra ser un mysql_fetch_array que nos obtenga los numeros a marcar y sustituirlos en el nmero de abajo #Aqui podemos enlazar los destinatarios externos ya sean extensiones internas SIP o IAX, o tambin pueden ser nmeros de la PSTN que salgamos mediante IAX2, SIP, Zaptel o DAHDI #En este caso estoy llamando a traves de voipjet al nmero de la ciudad de Mxico 11689818 (+525511689818) $strChannel = "IAX2/voipjet/011525511689818"; if ($strChannel!="" ) : $errno=0 ; $errstr=0 ; $strCallerId = " WebCall<$number>"; $oSocket = fsockopen ($strHost, 5038, $errno, $errstr, 20); if (!$oSocket) { echo "$errstr ($errno)<br>\n"; } else { fputs($oSocket, "Action: login\r\n"); fputs($oSocket, "Events: off\r\n"); fputs($oSocket, "Username: $strUser\r\n"); fputs($oSocket, "Secret: $strSecret\r\n\r\n"); fputs($oSocket, "Action: originate\r\n"); fputs($oSocket, "Channel: $strChannel\r\n"); fputs($oSocket, "WaitTime: $strWaitTime\r\n"); fputs($oSocket, "CallerId: $strCallerId\r\n"); fputs($oSocket, "Exten: $number\r\n"); fputs($oSocket, "Context: $strContext\r\n"); fputs($oSocket, "Priority: $strPriority\r\n\r\n"); fputs($oSocket, "Action: Logoff\r\n\r\n"); sleep(2); fclose($oSocket); } if (!isset($_REQUEST['exten'])){ echo ""; } else { echo "$strChannel enlazando a $number." ;

} else : exit() ; endif ; ?>

El cdigo anterior es muy fcil de entender, bsicamente lo que hace es parametrizar el comando originate del protocolo AMI de Asterisk [ http://www.voip-info.org/wiki/view/Asterisk+Manager+API+Action+Originate ] Ah previamente debemos tener creada la extensin 1997 en el plan de marcacin de asterisk, esa extensin es a dnde vamos a mandar las llamadas contestadas, en este caso por ejemplo se puede crear en /etc/asterisk/extensions_custom.conf en caso de que se use freepbx como lo hacemos a continuacin sudo editor /etc/asterisk/extensions_custom.conf #Y agregamos lo siguiente o editamos en caso de que ya exista [from-internal-custom] include=>asterisk-calls [asterisk-calls] exten => 1997,1,Answer exten => 1997,n,SetMusicOnHold(Publicidad) exten => 1997,n,MusicOnHold() exten => 1997,n,Hangup #guardamos el archivo y reiniciamos el plan de marcacin en la consola de asterisk sudo asterisk -rvvv dialplan reload

Bsicamente lo que hicimos en el plan de marcacin es poner la msica de fondo llamada publicidad, que previamente debimos haberla creada, aqu tambin puede ser un AGI, o marcar a un grupo de extensiones, IVR, etc. Con esto fcilmente podemos subir una lista de nmeros a marcar, para que enseguida ejecutar el script y Asterisk les llame para luego enlazar las llamadas a la extensin 1997 dnde podemos tener cualquier aplicacin como puede ser un AGI que haga una encuesta por ejemplo Tambin podemos crear un script que genere hilos de llamadas dependiendo del nmero de canales de voz disponibles en nuestro conmutador de Voz sobre IP.

Вам также может понравиться