Windows Server

Thursday, June 14, 2018

Documentación para Rol Auditor Llamadas Elastix (No Admin)

Documentación para Rol Auditor Llamadas Elastix (No Admin)

El día de hoy me tope con una necesidad de crear un usuario el cual se encargue de auditar las llamadas de todos las demás extensiones y no solo la que el posea o se le haya asignado.
Actualmente en Elastix existe por defecto 3 grupos de usuarios, Administrador, operador y extensión, cada uno de estos grupos posee unos permisos necesarios para dicha gestión.

Pasos
Lo primero que debemos hacer es determinar el nombre del grupo, en este caso, el grupo lo hemos llamado grabaciones.

1. Ingresamos a la ruta cd /var/www/html/libs
2. Realizamos un Backup del archivo paloSantoACL.class.php esto lo hacemos de la siguiente manera.
                    cp paloSantoACL.class.php paloSantoACL.class.php.old

3. Editamos y debe quedar de la siguiente manera, recordando que en mí ejemplo   esta como nombre al grupo: grabaciones:
{
$is=false;
$idUser = $this->getIdUser($username);
if($idUser){
$arrGroup = $this->getMembership($idUser);
//$is = array_key_exists('administrator',$arrGroup);
$is = array_search('1', $arrGroup);

$is=true;
}
return $is;

}

Comando para reparar base de datos mysql

Comando para reparar base de datos mysql asterisk,elastix,issabel


mysqlcheck -u root -p --auto-repair --optimize --all-databases


Como authenticar llamadas en Asterisk


1.En /etc/asterisk creamos un directorio llamado authenticate, dentro del
mismo creamos un archivo con el nombre de pass_list.txt.


2.En extensión.conf agregamos estas líneas en el trunk de salida.

exten => _8X.,1,Authenticate(/etc/asterisk/authenticate/pass_list.txt)
exten => _8X.,n,Dial(SIP/PSTN/${EXTEN:1})
exten => _8X.,n,Hangup()

Wednesday, June 13, 2018

Balanceo de llamadas en Troncales SIP

El requerimiento es que las troncales tengan el mismo nombre seguido de un número, empezando con el cero. En el ejemplo mis troncales se llaman R0,R1,R2,R3.

[from-internal-custom]

include => dialroundrobin
include => roundrobin

[roundrobin]

exten => _1X.,1,Set(last=$[(${DB(rr/last)}+1)%2]) ;cambiar el valor 2 por la cantidad de troncales en su RR
exten => _1X.,n,Set(DB(rr/last)=${last})
exten => _1X.,n,Dial(SIP/R${last}/${EXTEN}) ;Cambiar R por el nombre de su troncal
exten => _1X.,n,GotoIf(${DIALSTATUS}="BUSY",1,fin)
exten => _1X.,n(fin),Hangup

[dialroundrobin]

exten => _1X.,1,Goto(roundrobin,${EXTEN},1)


-------------------------------------------------------------------------------------------------------------------

                                                                    PRUEBA EXITOSA
-----------------------------------------------------------------------------------------------------------------

   -- Executing [1809754@from-internal:1] Goto("SIP/1200-00000024", "roundrobin,1809754,1") in new stack
    -- Goto (roundrobin,1809754,1)
    -- Executing [1809754@roundrobin:1] Set("SIP/1200-00000024", "last=1") in new stack
    -- Executing [1809754@roundrobin:2] Set("SIP/1200-00000024", "DB(rr/last)=1") in new stack
    -- Executing [1809754@roundrobin:3] Dial("SIP/1200-00000024", "SIP/R1/1809754") in new stack
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
    -- Called SIP/R1/1809754
       > 0x2d0e650 -- Strict RTP learning after remote address set to: 192.168.50.63:16414
    -- SIP/R1-00000025 is making progress passing it to SIP/1200-00000024
  == Spawn extension (roundrobin, 1809754, 3) exited non-zero on 'SIP/1200-00000024'
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
       > 0x7fc74c008c20 -- Strict RTP learning after remote address set to: 192.168.50.20:9172
    -- Executing [1809754@from-internal:1] Goto("SIP/1200-00000026", "roundrobin,1809754,1") in new stack
    -- Goto (roundrobin,180975,1)
    -- Executing [1809754@roundrobin:1] Set("SIP/1200-00000026", "last=0") in new stack
    -- Executing [1809754@roundrobin:2] Set("SIP/1200-00000026", "DB(rr/last)=0") in new stack
    -- Executing [1809754@roundrobin:3] Dial("SIP/1200-00000026", "SIP/R0/1809754") in new stack

Tuesday, February 13, 2018

Trunk Failover in Asterisk

exten => _91X.,1,ChanIsAvail(SIP/Claro&SIP/Altice)
same =>  n,NoOp(${AVAILORIGCHAN} is available)
same =>  n,Dial(${AVAILORIGCHAN}/${EXTEN:1} )
same =>  n,Hangup()


ChanIsAvail() — Finds out if a specified channel is currently available

AVAILORIGCHAN The canonical channel name that was used to create the channel—that is, the channel name without any session number.

EXTEN:1 Remove a digit to the right, in our case the 9 prefix



Reference:http://www.asteriskdocs.org/en/2nd_Edition/asterisk-book-html-chunk/asterisk-APP-B-33.html


Saturday, August 13, 2016

Call Center Agent Music in Silence 


Saludos amigos del blog, en este articulo vamos a mostrar la configuracion de como quitar la musica en hold a un agente de call center utilzando la plataforma de elastix.

Primero:

create a moh category called:  silence
Esto se crea en: PBX -> Music On Hold

Segundo:

Copiamos un audio silencioso en la carpeta creada (silence)
cp /var/lib/asterisk/sounds/en/silence/9.gsm /var/lib/asterisk/mohmp3/silence/

Tercero: 

Ponemos esta carpeta como propietaria de asterisk
chown asterisk:asterisk /var/lib/asterisk/mohmp3/silence/9.gsm

Cuarto:

Editamos el archivo agent.conf y  en la linea 55 descomentamos  y ponemos musiconhold => silence
vi /etc/asterisk/agents.conf
 musiconhold => silence

Quinto:

En la consola de linux  ejecutamos el siguiente comando

asterisk -rx "module reload"

sexto:
Entramos a la cola  y ponemos en Music on Hold Class por default  y aplicamos los cambios 

Séptimo:
Deslogueamos  y logueamos  los agentes para probar que la música este en silencio.

Friday, August 12, 2016

SCRIPT PARA BORRAR GRABACIONES EN ASTERISK / ELASTIX



Aqui les dejo este script para borrar grabaciones en asterisk / elastix que tengan mas de 120 dias de almacenamiento, puede modificar los dias aumentando o disminuyendo esta expresion regular +120
find /var/spool/asterisk/monitor/ -name \*.* -mtime +120 -exec rm -rfv {} \;



Podemos hacer un cronjob de todos los dias a las 11:00 PM busque las grabaciones con mas de 120 dias y la borre automaticamente, de esta forma no tendremos que hacer esto de manera manual.

Aqui les dejo el crontab


* 23 * * * find /var/spool/asterisk/monitor -type f -mtime +120 -print0 | xargs -0 rm -f



Documentación para Rol Auditor Llamadas Elastix (No Admin)

Documentación para Rol Auditor Llamadas Elastix (No Admin) El día de hoy me tope con una necesidad de crear un usuario el cual se encar...