martes, 23 de junio de 2026

Cambiar clave usuarios ssh desde OVH desde rescate

 

Paso 1. Entrar por SSH al modo Rescue

OVH te envía un correo con algo parecido a:

ssh root@IP_DEL_SERVIDOR

Pones la contraseña que te dieron y entras.


Paso 2. Ver los discos

Ejecuta:

lsblk

Tú obtuviste:

sda      2.9G
└─sda1 2.9G /

sdb 75G
├─sdb1 99M
├─sdb2 1000M
└─sdb5 73.9G

¿Cómo saber cuál es el disco del VPS?

Porque el Rescue está funcionando desde:

sda1   /

El símbolo / significa:

"Aquí está arrancado Linux en este momento".

Y ese disco solo tiene:

2.9G

Tu VPS no tiene un disco de 2.9 GB, tiene uno de 75 GB.

Por eso:

sdb = tu disco real

Paso 3. Montar el disco grande

Creamos una carpeta temporal:

mkdir /mnt/sysroot

Montamos la partición grande:

mount /dev/sdb5 /mnt/sysroot

Paso 4. Verificar que es la correcta

ls /mnt/sysroot

Si aparece algo parecido a:

bin
boot
dev
etc
home
root
usr
var

¡Perfecto!

Eso significa:

Acabas de abrir el sistema Rocky real de tu VPS.


Paso 5. Entrar al sistema

chroot /mnt/sysroot

Ahora el sistema ya no es el Rescue.

Ahora estás dentro de tu Rocky 8.


Paso 6. Cambiar la contraseña

passwd root

Escribes la nueva contraseña dos veces.


Paso 7. Salir

exit

Paso 8. Desmontar

umount /mnt/sysroot

Paso 9. Reiniciar desde OVH

En el panel:

  1. Boot → Hard Disk.
  2. Reiniciar.

lunes, 13 de enero de 2025

instalar ffmpeg en rokcy 8 ára issable 5

 

  • sudo dnf install epel-release sudo dnf install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm sudo dnf install https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm
  • sudo dnf install ffmpeg

  • miércoles, 1 de enero de 2025

    certificados lest script

    para renovar es asi 

    29 2 15 * * /usr/bin/systemctl stop httpd

    30 2 15 * * /usr/bin/certbot renew

    35 2 15* * /usr/bin/systemctl start httpd 

     service httpd stop

    certbot certonly --standalone -d example.com <REEMPLAZAR POR EL HOST A CERTIFICAR>

    jueves, 31 de agosto de 2023

    Recuperar calve de admin issabel desde consola root

     cd /usr/bin/

    sqlite3 /var/www/db/acl.db "UPDATE acl_user SET md5_password = '`echo -n password|md5sum|cut -d ' ' -f 1`' WHERE name = 'admin'"

    Con ello resetearemos la contraseña a «password» y podremos entrar como admin con esa contraseña. La podemos cambiar por la que queramos a posteriori o en esa misma línea.

     

    viernes, 14 de octubre de 2022

    Euronel

     [CALL-JK]

    exten => s,1,answer()

    exten => s,n,wait(1)

    exten => s,n,Goto(ext-did,${extT},1)

    exten => s,n,Hangup()


    certificados ssh issabel 



    el propio para actualizar la seguridad https://comoinstalar.me/como-obtener-certificados-ssl-gratis-para-tu-web-en-centos-7/ ssl

    troncal sip claro une

     type=friend

    insecure=invite,port
    host=10.7.224.1
    context=from-pstn
    dtmfmode=rfc2833
    allow=gsm&ulaw&alaw
    t38pt_udptl=yes
    t38pt_rtp=no
    t38pt_tcp=no
    nat=yes
    port=5060
    canreinvite=no
    fromuser=7447433
    qualify=yes


    route add -net 10.220.0.2 netmask 255.255.255.255 gw 10.222.8.229
    route add -net 10.7.224.1 netmask 255.255.255.255 gw 10.7.225.133

    martes, 17 de mayo de 2022

    ivr no se visualiza , no se ve

     

    • Connect to your Issabel using SSH or by console an login in.

    • Use a text editor such as nano o vi and open the file contentIssabelPBX.php
      Like this:
      nano /var/www/html/modules/pbxadmin/libs/contentIssabelPBX.php or
      vi /var/www/html/modules/pbxadmin/libs/contentIssabelPBX.php

    • Now in the file, find the line 470 and make look like this:

    https://imgur.com/a/Yavnu43




    • Now, save and exit the file.
    • Finally reload asterisk running the comman amportal restart

    That's it. Open the web and go to your IVR, you'll see it again

    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.