menu

segunda-feira, 15 de setembro de 2014

Hello, world!

quarta-feira, 19 de fevereiro de 2014

#Tutorial - Acesso a todas as Gravações sem usuário administrador.

No Elastix de padrão somente os usuários administradores conseguem ver todas as gravações outros usuário consegue somente o seu próprio ramal.
Imagine a seguinte situação o SAC da empresa necessita ter acesso a toda as gravações e não pode ser administrador pois não pode alterar configurações etc...
Para isso foi feito esse passo a passo.

Obs.: versão  2.4.1

1º Passo

Localize o código fonte responsável por essa função encontra-se em:
/var/www/html/modules/monitoring/índex.php

2º Passo

Edite as seguintes partes:

Original:






Alterado:


3º Passo

Na hora de criar usuário deve ser setar o ramal setado no código na linha 79 como mostra acima:
no caso 1147 e 1148.



quinta-feira, 13 de fevereiro de 2014

#Tutorial- Problema com senhas atualização do Elastix 2.3 >2.4

#Tutorial-senhas atualização do Elastix  2.3 >2.4
Para quem utiliza o elastix 2.3 sabe-se que não e necessário nenhum critério de segurança para a senha (secret) dos ramais (Extension) onde na versão 2.4 foi implantado um sistema de segurança de senha no modulo batch configurations sendo necessário no mínimo seis caracteres alfanuméricos.
Na situação onde uma empresa conta com mais de 100 ramais já estão configurados trabalhando com uma senha “fraca” e inicia a implantação do 2.4 do zero dificulta trocar um por um, assim mostro abaixo como retirar esse filtro de senhas quando se deparar com o erro abaixo:

OBS: em caso de atualização os ramais já existentes continuam funcionando o tutorial abaixo deve-se em caso de instalação do 0 do elastix 2.4.

1º Passo

Localizar o código que se encontra em :
/var/www/html/modules/extensions_batch/libs/paloSantoExtensionsBatch.class.php

2º Passo

Editar o arquivo da linha 874 ate 898 encontra-se o função que valida a senha como mostra abaixo:
    function valida_password($Secret)
    {
        if(strlen($Secret) <= 5)
            return false;
        if (!preg_match("/[[:alnum:]]/", $Secret))
            return false;      
        if (preg_match("/[[:space:]]/", $Secret))
            return false;            
        if (preg_match("/[[:punct:]]/", $Secret))
            return false;       
        if (!preg_match("/[a-z]/", $Secret))
            return false;
           
        if (!preg_match("/[A-Z]/", $Secret))
            return false;
           
        if (!preg_match("/[0-9]/", $Secret))
            return false;

        return true;
    }

3º passo
 Alterar da seguinte forma:

    function valida_password($Secret)
    {
        if (preg_match("/[[:space:]]/", $Secret))
            return false;   
       
        if (preg_match("/[[:punct:]]/", $Secret))
            return false;
            return true;
    }
Assim ele só não aceita caso a senha tenha caractere especial e espaço.



segunda-feira, 10 de fevereiro de 2014

#Tutorial-Elastix com numero de protocolo

Atualmente, a maioria das empresas prestadoras de serviços possui um serviço de atendimento ao cliente, também conhecido como SAC. Esse tipo de serviço tem se mostrado essencial nos últimos tempos, para empresas de diversos seguimentos, inclusive as empresas que vendem produtos.
De acordo com a determinação da ANATEL (Agência Nacional de Telecomunicações), que regulamenta o serviço de call-center no Brasil, é necessário que a empresa informe ao cliente, no início do atendimento, um número de protocolo referente aquela ligação.
Como o ELASTIX nativo não possui essa funcionalidade em seu receptivo resolvemos desenvolver e criar esse passo a passo.

1°Passo

Criar um contexto personalizado como mostra abaixo:
extensions_custom.conf

[numero-de-protocolo]
exten => s,1,Answer ;;atende ligação
exten => s,n,Gosub(protocolo,s,1);; envia ligação para contexto que gera protocolo
exten => s,n,Dial(SIP/1147,30,Tt) ;;envia  para o destino
exten => s,n,Hangup

[protocolo]
exten => s,1,NoOP(Protocolo);;escreve no console
exten =>  s,n,set(Protocolo=${STRFTIME(${EPOCH},GMT-3,%C%y%m%d%H%M%S)})
;;gera a variável protocolo
exten => s,n,SayDigits(${Protocolo});;fala o numero do protocolo
exten => s,n,Set(CDR(accountcode)=${Protocolo});;salva variável no banco de dados
exten => s,n,Set(CALLERID(name)=${Protocolo});; envia o protocolo no callerid da ligação
exten => s,n,Return ;;volta para numero-de-protocolo

obs: Esse contexto somente um exemplo para melhorar podemos inserir uma gravaçao por exemplo"bem vindo a empresa .... seu numero de protocolo e...."
exten => s,n(play),Background(custom/BemVindo,nm)
exten => s,n,SayDigits(${Protocolo})

2°Passo

Personalizar modulo reports para mostra numero de protocolo no CDR.
No caminho /var/www/HTML fica todo os códigos da interface web.
No caminho /var/www/html/modules/cdrreport fica todo os códigos do modulo cdrreports
 No arquivo /var/www/html/modules/cdrreport/índex.php deve-se alterar as linhas 118,251 e 292 abaixo.

Linha 118
De:
     "accountcode" => _tr("Account Code "),
Para:
    "accountcode" => _tr("Numero de Protocolo "),

Linha 251
De:
$arrColumns = array(_tr("Date"), _tr("Source"), _tr("Ring Group"), _tr("Destination"), _tr("Src. Channel"),_tr("Account Code "),_tr("Dst. Channel"),_tr("Status"),_tr("Duration"));
 Para:
$arrColumns = array(_tr("Date"), _tr("Source"), _tr("Ring Group"), _tr("Destination"), _tr("Src. Channel"),_tr("Numero de Protocolo "),_tr("Dst. Channel"),_tr("Status"),_tr("Duration"));

Linha 291
De:
$arrColumns = array(_tr("Date"), _tr("Source"), _tr("Ring Group"), _tr("Destination"), _tr("Src. Channel"),_tr("Account Code"),_tr("Dst. Channel"),_tr("Status"),_tr("Duration"));
Para:
$arrColumns = array(_tr("Date"), _tr("Source"), _tr("Ring Group"), _tr("Destination"), _tr("Src. Channel"),_tr("Numero de Protocolo "),_tr("Dst. Channel"),_tr("Status"),_tr("Duration"));
       
      
CDR Report:




Field:



       Assim facilita quando tiver que recuperar informações de uma ligação pelo numero de protocolo como mostra a imagem acima.



3°Passo

Enviar ligação receptiva para o contexto [numero-de-protocolo]
extensions_custom.conf

;;MCDU 5356

exten => 5356,1,Set(__FROM_DID=${EXTEN})
exten => 5356,n,Gosub(app-blacklist-check,s,1)
exten => 5356,n,ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=${CALLERID(num)}))
exten => 5356,n,Set(__CALLINGPRES_SV=${CALLERPRES()})
exten => 5356,n,Set(CALLERPRES()=allowed_not_screened)

exten => 5356,n(dest-ext),Goto(numero-de-protocolo,s,1)

4°Passo
Como mostra a imagem abaixo quando enviamos o numero do protocolo como callerid ele chega no visor do softfone junto com o numero do cliente.