martes, 29 de marzo de 2022

Instalar Rclone

 instalamos Rcolne :

Lo primero que debemos hacer es hacer un túnel por PUTTY





curl https://rclone.org/install.sh | sudo bash


configuramos con rclone config 


este es para configurar la cuenta y crear todo lo que piden ahí 

https://console.cloud.google.com/apis/dashboard


Activmaos persmisos de asterisk 

en archivo :


 visudo -f /etc/sudoers.d/issabel

ponemos esto 

asterisk ALL = NOPASSWD:  /usr/bin/rclone

lunes, 28 de marzo de 2022

Correo limieza

 #!/bin/bash


#################################################################

# 1.) LIMPIEZA LOG SISTEMAS        #

#################################################################


cd /var/log/

rm -Rf boot.log-*

rm -Rf cron-*

rm -Rf fail2ban.log-*

rm -Rf maillog-*

rm -Rf secure-*

rm -Rf spooler-*

rm -Rf messages-*

rm -Rf messages.*


cd /var/log/asterisk/

rm -Rf boot.log-*

rm -Rf cron-*

rm -Rf fail2ban.log-*

rm -Rf maillog-*

rm -Rf secure-*

rm -Rf spooler-*

rm -Rf messages.*

rm -Rf messages-*


cd /var/log/httpd/

rm -Rf boot.log-*

rm -Rf cron-*

rm -Rf fail2ban.log-*

rm -Rf maillog-*

rm -Rf secure-*

rm -Rf spooler-*

rm -Rf messages-*

rm -Rf messages.*


cd /opt/issabel/dialer/

rm -Rf dialerd.log*

rm -Rf boot.log-*

rm -Rf cron-*

rm -Rf fail2ban.log-*

rm -Rf maillog-*

rm -Rf secure-*

rm -Rf spooler-*

rm -Rf messages-*


cd /var/www/html/JK/ZIP

rm -Rf *.tar


sync ; echo 1 > /proc/sys/vm/drop_caches

sync ; echo 2 > /proc/sys/vm/drop_caches

sync ; echo 3 > /proc/sys/vm/drop_caches


cd /var/log/asterisk

rm -Rf full*

cd /opt/issabel/dialer

rm -Rf dialerd.log*

sleep 2s

#################################################################

# 2.) LIMPIEZA AUDIOS PEQUEÑOS          #

#################################################################


cd /var/spool/asterisk/monitor/

find . -name "*.wav" -size -500k -exec rm -f {} \;

sleep 2s


#################################################################

# 3.) Cargo de PARAMETROS  FIJOS        #

#################################################################


PROCENTAJ=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')

SERVIDOR=$(hostname)

IPTOTAL=$(ip a | grep "inet " | awk '{print $4}')

HOY=`date +"%d"`

FECHAHOY=`date +"/%m/%Y"`

DIA=`date +"%d/%m/%Y"`

HORA=`date +"%H:%M"`

CORREOJK=info@jksistemas.com.co


#################################################################

# 4.) Cargo de PARAMETROS  VARIABLES    #

#################################################################


DIAAVISO=00

DIACOBRO=00

DIACORTAR=00

CORREOCLIENTE=jktecom@gmail.com


#################################################################

# 4.) Envio correo DISCO DURO LLENO      #

#################################################################



if [ "$PROCENTAJ" -gt 85 ]  ; then

    mail  -s '*-*-*-*-* DISCO DURO LLENO ALERTA VPS CENTRAL IP-JK *-*-*-*-*' $CORREOJK $CORREOCLIENTE << EOF

Siendo hoy $DIA a las $HORA horas .

La Central IP-JK ha detectado que el disco duro tiene usado $PROCENTAJ % 

Su servidor $SERVIDOR

Con IP $IPTOTAL

Puede dejar de funcionar 

ES URGENTE QUE BORRE LOS AUDIOS QUE NO NECESITE 

O DESCARGUE LOS AUDIOS PARA LIBERAR ESPACIO


SI EL DISCO LLEGA AL 100% EL SISTEMA NO FUNCIONARA Y SE DETIENE


Puede Comunicarse al +57 321 419 6853  via celular o Whattsap 

También a teléfono Fijo Bogotá 57 1 3824892 


Somos JK SISTEMAS Y TELECOMUNICACIONES www.jksistemas.com.co 

EOF

fi

sleep 2s


#################################################################

# 5.) Envio correo PRIMER COBRO          #

#################################################################



  if [ "$HOY" == "$DIAAVISO"  ]  ; then

    mail -s '*-*-*-*-* AVISO PAGO VPS CENTRAL IP-JK *-*-*-*-*' $CORREOJK  $CORREOCLIENTE << EOF

Apreciado Usuario: 

JK SISTEMAS Y TELECOMUNICACIONES avisa que su servidor $SERVIDOR 

con IP  $IPTOTAL 

Esta pronto a vencer (Fecha vencimiento  $DIACOBRO$FECHAHOY), 

esperamos su pago oportuno. Muchas Gracias



Puede Comunicarse al +57 321 419 6853  via celular o Whattsap 

También a teléfono Fijo Bogotá 57 1 3824892 


Somos JK SISTEMAS Y TELECOMUNICACIONES www.jksistemas.com.co 

EOF

fi

sleep 2s


#################################################################

# 4.) Envio correo SUSPENSION          #

#################################################################


  if [ "$HOY" == "$DIACOBRO"  ]  ; then

    mail -s '*-*-*-*-* FECHA COBRO VENCIDA  *-*-*-*-*' $CORREOJK  $CORREOCLIENTE << EOF

Apreciado Usuario; siendo hoy $DIA , JK SISTEMAS Y TELECOMUNICACIONES no ha detectado el 

pago de sus servicios activos en  la plataforma de pagos. Su VPS $SERVIDOR   

 $IPTOTAL Tiene vencimiento  $DIACOBRO$FECHAHOY 


************ Si ya pago haga caso omiso a este mensaje ************************** 


Si no ha cancelado tenga en cuenta que :


*********** EL SISTEMA SE SUSPENDERA EN LAS PROXIMAS 48 HORAS   ******************


Puede Comunicarse al +57 321 419 6853  via celular o Whattsap 

También a teléfono Fijo Bogotá 57 1 3824892 


Somos JK SISTEMAS Y TELECOMUNICACIONES www.jksistemas.com.co 

EOF

fi


#################################################################

# 4.) Envio correo CORTE          #

#################################################################


  if [ "$HOY" == "$DIACORTAR"  ]  ; then

    mail -s '*-*-*-*-* VERIFICAR PAGO VPS   *-*-*-*-*' info@jksistemas.com.co  JKTECOM@GMAIL.COM << EOF

Mira el $DIA , por favor revisamos que el  VPS $IPTOTAL $SERVIDOR este pago esta vencido !!! 

Vencia  $DIACOBRO$FECHAHOY 


Recuerda Margarita que siempre te amo ! ...


______*#######*

____*##########*

__*##############

__################

_##################_________*######

__##################_____*##########

__##################___*#############

___#################*_###############

____#################################

______###############################

_______##############################

________=##########################

__________########################

___________*#####################

____________*##################

_____________*###############

_______________#############

________________##########

__________________######

___________________####

____________________##


EOF

fi



echo = " == "

sleep 1s

echo = " === "

sleep 1s

echo = " === "

sleep 1s

echo = " ==== "

sleep 1s

echo = " ===== "

sleep 1s

echo = " ====== "

sleep 1s

echo = " ======= "

sleep 1s

echo = " ======== "

sleep 1s

echo = " ========= "

sleep 1s

echo = " ========================++++++ "

sleep 1s

echo = " ============================++++++ "

sleep 1s

echo = " limpieza en proceso WWW.JKSISTEMAS.COM.CO "

echo = " Se estan borrando audio que no sirven "

echo = "  [===============================>-----------------]  79% "

echo = " Terminando "

sleep 1s

echo = "  [================================================>]  100% "


exit


jueves, 3 de marzo de 2022

: manager.c:2677 authenticate: 127.0.0.1 failed to authenticate as 'admin'

Restablecer contraseñas generales de ISSABEL  



Intenta restableciendo la contraseña de todo el sistema:

/usr/bin/issabel-admin-passwords --change

Si no te funciona este comando trata con:

/usr/bin/elastix-admin-passwords --change


Gracias por la ayuda, pero pude solucionarlo comparando archivos con una issabel que funcionaba.
No se porque, le faltaba el archivo /etc/issabel.conf, lo copie de la otra, le puse las claves correctas y salio funcionando!.

jueves, 9 de diciembre de 2021

DID ENTRADA 333 desde Magnus

 type=friend

trustrpid=no

sendrpid=no

qualify=yes

insecure=very

host=51.222.106.133

fromdomain=51.222.106.133

dtmfmode=RFC2833

context=from-pstn

canreinvite=no

nat=never

allow=all

viernes, 5 de febrero de 2021

reviertir YUM UPDATE

 yum history list all

Miras el numero de la derecha del las actualizaciones de la fecha de hoy.
yum history undo y el numero que viste antes.

con esto reviertes las actualizaciones, después amportal restart y ya te funciona.

viernes, 2 de octubre de 2020

audio antes de llamar call center ...

 https://forum.issabel.org/d/3008-reproducir-primero-audio-antes-de-sacar-llamada


I don't think you can do it using the GUI, but you can do it through dialplan.

INSTRUCTIONS
1> Find the outbound route you want that message played.

My outbound route name = "international"

2> In "SYSTEM RECORDINGS", create the recording that you would want played.

example "Warning International call being made"

save as "internationalwarning"

3> open /etc/asterisk/extensions_additional.conf

Find your outbound route in this dialplan. Below is an EXAMPLE of what mine looked like.
Yours will be similar, " [OUTRT-XX]; NAME " will be different as will some of the phone numbers.

My example, calls that start with 011 as the number that is called that uses this trunk.

------ example ---------------

[outrt-1] ; international
include => outrt-1-custom
exten => _011.,1,Macro(user-callerid,LIMIT,EXTERNAL,)
exten => _011.,n,Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})})
exten => _011.,n,Set(_NODEST=)
exten => _011.,n,Gosub(sub-record-check,s,1(out,${EXTEN},))
exten => _011.,n,Macro(dialout-trunk,2,${EXTEN:3},,off)
exten => _011.,n,Macro(outisbusy,)
;--== end of [outrt-1] ==--;

----- END EXAMPLE ---------------

4> COPY the entire code piece

5> OPEN /etc/asterisk/extensions_override_issabel.conf

PASTE the code into the bottom of this file.

6> You will need to insert a custom code in to play the recorded message.

Put the next line in 2 locations

exten => _011.,n,Playback(./custom/internationalwarning)

My dialplan example uses _011. Yours might be different so you will need to adjust it accordingly

[outrt-1] ; international
include => outrt-1-custom
exten => _011.,1,Macro(user-callerid,LIMIT,EXTERNAL,)
exten => _011.,n,Playback(./custom/internationalwarning)
exten => _011.,n,Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})})
exten => _011.,n,Set(_NODEST=)
exten => _011.,n,Gosub(sub-record-check,s,1(out,${EXTEN},))
exten => _011.,n,Macro(dialout-trunk,2,${EXTEN:3},,off)
exten => _011.,n,Playback(./custom/internationalwarning)
exten => _011.,n,Macro(outisbusy,)
;--== end of [outrt-1] ==--;

Save your changes

7> reload the config in asterisk CLI ( asterisk -cvvr then core reload)

TEST!

What will happen is, when asterisk goes to dial the code, it will run this custom code, play the message then continue the dialing.

martes, 22 de septiembre de 2020

dialer con entrada IVR

 FUNCIONA! Consulta estado de un caso mediante DTMF


Funciona!!!

Por fin he dado con ello.

SISTEMA COMPLETO DE ESTADO DE TICKETS USANDO ELASTIX Y OSTICKET.
-----------------------------------------------------------------

En primer lugar, creamos el siguiente archivo:

comprobarticket.php

#!/usr/bin/php -q
<?php
//llamamos a las librerías de phpagi
require("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 consultará información en una base de datos y regresará la información de forma hablada por lo que generamos una conexion a la base de datos de sql
$conexion = mysql_connect("LaIpDeTuServidorMysql","TuNombreDeUsuario","TuPass") or die("Error: El servidor no puede conectar con la base de datos");
//Referenciamos el cursor a la base de datos
mysql_select_db("NombreDeTuBBDD",$conexion);
//Reproducimos el archivo de audio que solicita que introduzca el número de ticket de soporte, del cual conocer su estado.
//El archivo de audio lo hemos grabado previamente desde elastix, y se almacena en /var/lib/asterisk/sounds/
//y viene a decir algo como: Despues del pitido, introduzca su número de ticket de soporte para conocer su estado actual, o marque 0 para salir.
$agi->exec(Playback,"introduceticket");
do {
//enviamos un beep y esperamos 25 segundos en la espera de una respuesta. Podemos cambiar el 'beep', por "Archivo_de_audio_propio"
$_result = $agi->get_data('beep', 3000, 25);
//obtenemos la información introducida desde el telefono
$numticket = $_result['result'];
//si introdujo un valor el cliente entonces creamos el string la consulta sql y la ejecutamos
if($numticket!=""){
$query = "select status from ost_ticket where ticketID=\"$numticket\" ";
$_result = mysql_query($query, $conexion);
//verificamos si existe un resultado
if($_re = mysql_fetch_array($_result)) {
//Comprobamos si el estado recuperado de la BBD es open
if ($_re[status] == "open") {
//y si es así, reproduzco un audio pregrabado llamado abierta que dice algo como: Su incidencia aún está en situación de resolverse. Vuelva a consultar su estado pasado pasadas unas horas.
$agi->exec(Playback,"abierta");
}
//Comprobamos si el estado recuperado de la BBD es closed
if ($_re[status] == "closed") {
//y si es así, reproduzco un audio pregrabado llamado cerrada que dice algo como: Su incidencia está resuelta. Puede recoger su equipo cuando desee.
$agi->exec(Playback,"cerrada");
}

}else{
//de lo contrario enviamos un mensaje de que el ticket no pudo ser encontrado
if ($numticket!='0'){
$agi->exec(Playback,"noencontrado");
}

}
if ($numticket!='0'){
$agi->exec(Playback,"introduceticket");
}
}

} while($numticket != '0'); //Continuamos solicitando números de ticket mientras el cliente no marque 0 para salir

//Reproducimos el archivo de audio de despedida, agradeciendo el uso del sistema.
//El archivo de audio lo hemos grabado previamente desde elastix, y se almacena en /var/lib/asterisk/sounds/
//y viene a decir algo como: Gracias por utilizar el sistema de control de tickets.
$agi->exec(Playback,"despedida");
//al finalizar el script del AGI siempre es recomendable ejecutar esta función para no dejar el canal abierto.
$agi->hangup();
?>

Una vez echo esto, subirlo al servidor mediante WinSCP o similar a la ruta /var/lib/asterisk/agi-bin/

A continuación, es importante que cambies los permisos del archivo a 775

Cread los archivos de audio. Para ello, leed los comentarios del archivo php creado.

Ahora, hay que crear la llamada al AGI de la siguiente manera:
Editar el archivo extensions_custom.conf y crea el siguiente contexto:

[custom-agiphp]
exten => 101,1,Answer
exten => 101,2,AGI(/var/lib/asterisk/agi-bin/comprobarticket.php)
exten => 101,3,Hangup

y añadirlo en

[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
include => custom-agiphp

Salvamos.

Si llamamos a la extensión 101, ya debería funcionar.

Ahora, si queremos que funcione mediante el uso de IVR, tan solo hay que ir a MISC DESTINATIONS, y crear uno que sea, por ejemplo:

Descripción: tickets
Marcar: 101

Creamos el IVR con las opciones que queramos, entre ellas una que solicite acceder al sistema de control de tickets, en la cual, seleccionaremos como destino:

Misc Destinations: tickets.

Salvar.

Recomiendo reiniciar elastix y a funcionar.

Revisad bien la conexión a la BBDD y que seguramente tendréis que mover los audios creados de la carpeta /var/lib/asterisk/sounds/custom a /var/lib/asterisk/sounds/, si no, no oireis nada más que el beep.

Tienes varias opciones:

1. Accedes a la consola de tu elastix mediante la aplicación Putty, eso si, logueandote como root, y escribes lo siguiente:

cd /var/lib/asterisk/agi-bin (pulsas intro)
chmod 775 comprobarticket.php (pulsas intro)

Y ya está.

Opción 2. Hacer lo mismo, pero desde la consola local de la máquina, siempre y cuando tengas un teclado y pantalla conectado a tu elastix. En ese caso no necesitarías acceder mediante putty

Opción 3. Acceder a tu elastix mediante filezilla como root, e ir a la dirección /var/lib/asterisk/agi-bin. Una vez ahí veras el listado de archivos que la carpeta agi-bin contiene. Te posicionas sobre el archivo comprobarticket.php y pulsas botón derecho. Seleccionas cambiar permisos, y en el cuadro de abajo, borrar los números que vengan por defecto y escribes 775. Pulsas intro o guardar y listo.