Hagamos que México crezca..

Prefiere el consumo de lo Hecho en México

Visitantes








Conversación

  • Phylevn: Si claro, hay un software israelí que es gratuito no recuerdo como se llama, solo tienes que compilar asterisk-addons para que también guarde en el CDR el ID de la llamada para asi despues relacionarla con la grabación.  
  • Cesar: Que ta amigo... sobre la pregunta de ligar una extencion a una troncal o hice con customcontext en freepbx.
    solo tengo una duda, hay algun plugin para freepbx para poder monitorear las llamadas grabadas como en elastix?
    gracias.. y saludos  
  • Sergio: Hola!!
    Oie al parecer hay errores en las entradas sobre la Facturacion Electronica del SAT, hace unos dias lei los Post y hoy YA NO PUEDO ENTRAR, me marca que la pagina no se encontro.
    Gracias  
  • Conmutador IP: @Max: Para que tu Tel IP haga y reciba llamadas necesitas configurarlo, si tu teléfono usa el protocolo SIP entonces necesitas configurar usuario, password, dominio o proxy, outbound proxy en algunos casos y puerto que el default es 5060, estos datos te los da el proveedor IP con los que contrates el servicio como puede ser Alestra en México, o callcentric.com en estados unidos por ejemplo  
  • Max: hola tengo una duda, tengo un telefono IP pero nose si se requiere alguna configuracion para que trabaje con el modem de infinitum, es decir que tengo q hacer para que pueda hacer y recibir llamadas con el.
    espero puedas ayudarme  
  • Phylevn: Si lo puedes hacer, busca lo que son los contextos en asterisk.  
  • Cesar: Que tal, si me funciono, solo que curiosamente con no-ip o ddns solo fuinciona cuando son isp diferentes, aquí en Nayarit, Telmex y Megacable, si lo hago solo con Megacable debo poner la ip de la der de Megacable, 10.163.x.x no tengo idea por que solo así funciono... Otra duda, en asterisk se puede hacer que por ejemplo la extensión 500 solo use la troncal 1 y todas las demás extensiones utilizen otra troncal? Esto sin teniendo el mismo plan de marcado en ambas troncales, es decir, poder hacer que una troncal y una extensión estén vinculadas para hacer llamadas.  
  • Angel Reyes: Hey Filein,
    Quiero conversar contigo sobre una oportunidad de negocio. ¿me pasas tu email?
    Saludos.  
  • Comutador IP: @Cesar: Si es posible, solo requieres poner el puerto SIP de tu Conmutador IP Asterisk en una IP Pública, puedes usar DynDNS para este caso junto con DDClient y ya solo el SPA lo apuntas a la IP Pública de tu conmutador IP Asterisk siguiendo los mismos pasos de configuración de siempre. Eso es todo.  
  • Cesar: Amigo, podrias ayudarme, quisiera utilizar un SPA 3102 de forma remota, este esta conectado directamente a internet, y en otra parte de la misma ciudad tengo el servidor asterisk donde quiero utilizar la linea, es posible?  

Escribe el código Captcha que estás viendo

Script AGI para conectar con sistema de tarificacion AsterBilling

Asterbilling es un software que permite integrar un tarificador a Asterisk basado en prefijos, longitud del número de marcado, entre otras cosas, muy apto para ser usado en casetas telefónicas, aparte que tiene un sistema de monitoreo para cuándo se marque un número muestre el tiempo marcado, el número, etc y de ahi mismo imprimir un ticket.
Como plugin adicional para Asterbilling hice un script en php que lo que hace es consultar desde un teléfono el costo de las llamadas desde un cabina en específica, de tal forma que usando festival te regresa de forma hablada la fecha marcada, el tiempo de la llamada, el número marcado y el costo total de la llamada en base a la tarifa aplicada.
Este script también permitiría imprimir un ticket en una impresora de tickets conectada al puerto serial, solo bastaría crear un archivo con la información y mandarlo al puerto lpt.
#!/usr/bin/php -q
 <?php
//llamamos a las librerias de phpagi
  require("phpagi/phpagi.php");
//activamos la bandera de enviar todo lo que se realice a consola como modo depuracion
  error_reporting(E_ALL);
//creamos una instancia de la clase AGI
 $agi = new AGI();
//generamos el comando Answer de Asterisk, este comando siempre lo ejecutamos al inicio de un AGI
 $agi->answer();
//Este demo consultaria informacion en una base de datos y regresaria la informacion de forma hablada por lo que generamos una conexion a la base de datos de sql
 $conexion = mysql_connect("localhost","astercc","astercc") or die("Error: El servidor no puede conectar con la base de datos");
//Referenciamos el cursor a la base de datos
 mysql_select_db("astercc",$conexion);
//obtenemos el caller id de quien realiza la llamada
 $_cid = $agi->parse_callerid();
//enviamos un mensaje de voz por medio de festival que esta configurado en idioma espanol
 $saludo_hora = (date("H")<12)?"Buenos Dias!"<img src="plugins/Emoticons/images/face-sad.png" border="0" alt="face-sad.png " width="16" height="16" />(date("H")<19)?"Buenas tardes!":"Buenas Noches!");
       
         $agi->text2wav("Hola $saludo_hora");
          do{
                $agi->text2wav('¿Que cabina desea tarificar? 0 para salir');
       
                //enviamos un beep y esperamos 20 segundos en la espera de una respuesta
                $_result = $agi->get_data('beep', 5000, 20);
                //obtenemos la informacion introducida desde el telefono
                $cabina = $_result['result'];            
                   if($cabina!="" and $cabina!="0"){
                             $query = "select c.id, c.calldate, c.src, c.dst,  c.didnumber, c.duration, c.billsec, c.disposition, c.calltype,  c.userfield,
                                                        m.dialprefix, m.numlen,  m.destination, m.connectcharge, m.initblock, m.rateinitial, m.billingblock
                                                        from mycdr c, myrate m  
                                                                where c.src='$cabina' and c.disposition like '%ANSWERED%'
                                                                        and c.userfield='UNBILLED'
                                                                        and (c.dst like concat(m.dialprefix,'%') or length(c.dst)=m.numlen)
                                                                        and (c.groupid=m.groupid or m.groupid=0)
                                                                        and (c.resellerid=m.resellerid or m.resellerid=0)
                                    order by
                                                "
;
          //select c.id, c.calldate, c.src, c.dst,  c.didnumber, c.duration, c.billsec, c.disposition, c.calltype,  c.userfield,m.dialprefix, m.numlen,  m.destination, m.connectcharge, m.initblock, m.rateinitial, m.billingblock from mycdr c, myrate m where c.src='102' and c.disposition like '%ANSWERED%' and c.userfield=UNBILLED and (c.dst like concat(m.dialprefix,'%') or length(c.dst)=m.numlen) and (c.groupid=m.groupid or m.groupid=0) and (c.resellerid=m.resellerid or m.resellerid=0)
                $agi->verbose($query);
                            $_result = mysql_query($query);
                            //verificamos si existe un resultado
                $total = 0;
                $subtotal = 0;
                $ticket = "";
                $count = 1;
                             while($_re = mysql_fetch_array($_result)) {
                                       $subtotal = $_re[13];
                       if($_re[6]>$_re[14]){
                            $charge_additional =  (ceil( ($_re[7]-$_re[14])/$_re[16]) )*$_re[15];
                            $subtotal += $charge_additional;
                                       }
                       $total += $subtotal;
                                       $ticket .= " llamada $count.
                                    Fecha: $_re[1].
                                    Tiempo de la llamada: $_re[6] segundos.
                                    Numero Marcado: $_re[4].
                                    Tarifa aplicada: $_re[destination].
                                    Costo: $subtotal pesos.."
;
                             }
                 if($total>0){
                    $agi->text2wav("Total a pagar $total pesos. Desglose : ".$ticket." Total a pagar: $total pesos");
                    $agi->text2wav("Desea imprimir el ticket?Presione 1 para Aceptar. Otro para salir");
                    $_result = $agi->get_data('beep', 5000, 20);
                    $print = $_result['result'];
                    if($print ==1){
                        $ticket = str_replace(".",".\n", $ticket)."\n\nTotal a pagar: ".$total." pesos";
                        //imprimir ticket
                            //guarda archivo
                            //manda archivo a LPT
                            //elimina archivo impreso
                        //guardar registro
                    }
                 }else{
                     $agi->text2wav("No hay llamadas para tarificar en la cabina $cabina!");
                 }
                   }
         }while($cabina != '0');
     $agi->text2wav("Hasta luego. $saludo_hora");
//al finalizar el script del AGI siempre es recomendable ejecutar esta funcion para no dejar el canal abierto.
  $agi->hangup();
 ?>
//*****
 

#1 Re:Script AGI para conectar con sistema de tarificacion AsterBilling

henry, <E-Mail> / 20 July, 11:41am  
avatar

COmo prodria hacer un control no usando mensajes de Voz con Festival sino durante la llamada enviarle mensajes de texto con SendText al telefono

[ Responder (0) ]

#2 Re:Script AGI para conectar con sistema de tarificacion AsterBilling

Phylevn, <E-Mail> / 20 July, 6:26pm  
avatar

Usa el comando SendText de Asterisk, solo que tu teléfono debe ser capaz de soportas SIP Messages, ya que no todos los teléfonos son compatibles y te envía un error 404 de Método no compatible.

[ Responder (0) ]

Dejar un comentario

Escribe el código Captcha que estás viendo

Fuentes XML de comentario: RSS | Atom

Estadísticas de visitantes

174767

Emblemas

Energizado por Jaws Project
Soporta RSS2
Energizado por Software Libre
Energizado por Mozila Firefox
Energizado por Ubuntu Linux
Energizado por PHP
Energizado por Apache Web Server
Energizado por MySQL
Energizado por SQLite
atom

¿ Where The Hell Am I ?

Mi Flickr







Aquí Mis Mejores Fotos

Eventos

Encuesta

¿Que medio de comunicación usas más ?

Comentarios Recientes