Como criar ramais em lote no Elastix

1,634 views
Skip to first unread message

Alberto Mitsuo Sato

unread,
Mar 22, 2013, 10:33:23 AM3/22/13
to asteris...@listas.asteriskbrasil.org, elasti...@googlegroups.com

Em certas ocasiões podemos precisar criar 100 ou mais ramais num único servidor Elastix. Criar estes ramais um por um no procedimento normal vai ser muito trabalhoso e cansativo.

 

Para este tipo de situação no Elastix existe o módulo "Batch of Extensions", onde podemos criar diversos ramais a partir de um arquivo de dados csv.

 

Para utilizar este módulo, primeiro crie pelo menos um ramal com todas as características necessárias e depois descarregue o arquivo csv, clicando no "Download the current extensions in CSV format" para ter como exemplo de configuração.

 

Adicione todos os ramais necessários no arquivo csv, seguindo o padrão do ramal existente. Salve e selecione este arquivo para fazer o upload para o módulo e no final clique no botão "Upload CSV file" para realizar a importação dos ramais.

 

*** Contribua também com alguma documentação, isto vai ajudar a todos da Comunidade ***         

 

 Curtir

http://www.facebook.com/ElastixBrasil

https://twitter.com/ElastixBrasil

 

Alberto M. Sato
Diretor Técnico
Innovus Sistemas Eletrônicos - Soluções VoIP

Volta Redonda/RJ - Brasil
ams...@innovus.com.br
(24) 3076-2325
(11) 4063-7416 / (21) 4063-7416
(31) 4062-7416 / (41) 4063-7416
Ramal/LigVoIP: 319

www.albertosato.voipcenter.com.br
www.dicasasterisk.asteriskonline.com.br
www.dicasvoip.voipcenter.com.br

 

Bruno Gerotto

unread,
Mar 25, 2013, 3:29:50 PM3/25/13
to elasti...@googlegroups.com, asteris...@listas.asteriskbrasil.org
Boa Tarde a Todos.

Tive esta dificuldade por esses dias e sim, o Batch Extensions resolve o problema, porém, ele não consegue exportar os ramais Tipo Custom.
Sip e Iax, funciona normal, mas os ramais Custom não. Claro, pode ter sido algo de errado que eu fiz, mas resolvi usando o Bulk Extensions do FreePBX.

Para fazer desta maneira, acesso o FreePBX, Aba Tools, Module Admin. Após isso, clique em Check for updates online,
nesta lista que apareceu, procure por Bulk Extensions, Clique e marque a opção "Download and Install". Role a página para baixo e clique em process, confirm.

Depois de feito o download e completa a instalação, aplique as alterações.
Agora no menu lateral, procure o modulo Bulk Extensions.

Os próximos passos são semelhantes aos do Batch extensions.

Crie um ramal de exemplo, e faça o download do .csv, crie quantos ramais forem necessários e depois faça o upload do arquivo csv editado.


Espero ter ajudado.

Att. 
Bruno Gerotto



ATT.
Bruno Gerotto



--
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "ElastixBrasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para elastixbrasi...@googlegroups.com.
Para postar neste grupo, envie um e-mail para elasti...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/elastixbrasil?hl=pt-BR.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 

Edemilson

unread,
Mar 31, 2013, 1:12:07 PM3/31/13
to elasti...@googlegroups.com, asteris...@listas.asteriskbrasil.org
Fiz examente o que o Sato disse, mas dá um erro "Verify the header - Incomplete Columns"...como resolver isso ?

Roger Pitigliani

unread,
Mar 31, 2013, 6:46:13 PM3/31/13
to Lista Elastix Brasil, asteris...@listas.asteriskbrasil.org
Segue script em php para gerar ramais em sequencia.
Crie um arquivo /tmp/gerar_ramais.php e coloque o conteudo abaixo.
Edite as configurações de banco de dados e configurações dos ramais que deseja e também a quantidade.que deseja gerar.

Salve e execute:
php -f /tmp/gerar_ramais.php

Depois de executado, vá na interface web e dê um Aplicar na confs.

<?php

        $mysql_host = '127.0.0.1';
        $mysql_user = 'root';
        $mysql_pass = 'senhadomysql';
        $mysql_base = 'asterisk';
       
        $primeiro_ramal = 2001;
        $quantidade = 20;
        $prefix_name = "Ramal ";
        $gravar_in = "Always"; // Always, Adhoc, Never
        $gravar_out = "Always"; // Always, Adhoc, Never
        $deny = "0.0.0.0/0.0.0.0";
        $permit = "192.168.1.0/255.255.255.0"; // Redes que podem se registrar
        $senha_prefix = "prefixosenha";
        $callgroup = "1";
        $pickupgroup = "1";
        $codec_disallow = "all";
        $codec_allow = "alaw&ulaw";

        $db = mysqli_connect("$mysql_host","$mysql_user","$mysql_pass","$mysql_base");

        if( ! $db ){
                echo "Erro ao conectar base de dados\n$db->error\n";
                exit;
        }
 
        echo "Gerando Ramais \n";
        for( $ramal = $primeiro_ramal; $ramal < ($primeiro_ramal+$quantidade); $ramal++ ){

                // Checa se ramal ja existe.
                $sqlcheck = "SELECT COUNT(*) as quant FROM sip WHERE id = '$ramal';";
                $rescheck = $db->query($sqlcheck);
                $check = $rescheck->fetch_object();

                if( $check->quant > 0 ){
                        echo "Opa! Ramal $ramal ja existe, ignorando \n";
                        continue;
                }

                $query = array();
                $senha = $senha_prefix . $ramal;

                $query[] = "DELETE FROM users WHERE extension = '$ramal';";
                $query[] = "DELETE FROM devices WHERE id = '$ramal';";
                $query[] = "DELETE FROM sip WHERE id = '$ramal';";
                $query[] = "DELETE FROM fax_users WHERE user = '$ramal';";

                $query[] = "INSERT INTO users (extension,password,name,voicemail,ringtimer,noanswer,recording,outboundcid,sipname)
                                values ('$ramal', '', '$ramal', 'novm', '0', '', 'out=$gravar_out|in=$gravar_in', '', '$ramal')";
                $query[] = "INSERT INTO devices (id,tech,dial,devicetype,user,description,emergency_cid)
                                values ('$ramal','sip','SIP/$ramal','fixed','$ramal','$ramal','');";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','secret','$senha',2)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','dtmfmode','rfc2833',3)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','canreinvite','no',4)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','context','from-internal',5)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','host','dynamic',6)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','type','friend',7)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','nat','yes',8)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','port','5060',9)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','qualify','yes',10)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','callgroup','$callgroup',11)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','pickupgroup','$pickupgroup',12)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','disallow','$codec_disallow',13)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','allow','$codec_allow',14)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','dial','SIP/$ramal',15)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','accountcode','',16)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','mailbox','$ramal@device',17)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','deny','$deny',18)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','permit','$permit',19)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','account','$ramal',20)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','callerid','$ramal <$ramal>',21)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','record_in','$gravar_in',22)";
                $query[] = "INSERT INTO sip (id, keyword, data, flags) values ('$ramal','record_out','$gravar_out',23)";
                $query[] = "REPLACE INTO fax_users (user, faxenabled, faxemail) VALUES ('$ramal','','')";
                $query[] = "UPDATE admin SET value = 'true' WHERE variable = 'need_reload'";

                $db->query("SET AUTOCOMMIT = 0");
                $db->query("START TRANSACTION");
                $erros = 0;
                $erros_array = array();

                foreach( $query as $qry ){
                        if( ! $db->query($qry) ){
                                $erros++;
                                $erros_array[] = "Erro: $db->error \n";
                        }
                }

                if( $erros > 0 ){
                        echo "Ramal $ramal nao foi criado pelos seguintes erros\n";
                        print_r($erros_array);
                        $db->query("ROLLBACK");
                }else{
                        echo "Ramal $ramal criado com sucesso\n";
                        $db->query("COMMIT");
                }

                $db->query("SET AUTOCOMMIT = 1");

        }

?>




--
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "ElastixBrasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para elastixbrasi...@googlegroups.com.
Para postar neste grupo, envie um e-mail para elasti...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/elastixbrasil?hl=pt-BR.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 



--
--
Roger Pitigliani
roger...@gmail.com
Skype: roger.pitigliani

nbne...@gmail.com

unread,
Aug 3, 2014, 5:49:01 PM8/3/14
to elasti...@googlegroups.com, asteris...@listas.asteriskbrasil.org
Boa tarde, estou tentando achar a opção Module Admin na Aba Tools, mas a unica coisa que tem na Aba PBX / Aba Tools são essas opções:

Asterisk-Cli
Asterisk File Editor
Text to Wav
Festival
Recordings


Eduardo Almeida

unread,
Aug 4, 2014, 9:35:28 AM8/4/14
to elasti...@googlegroups.com, asteris...@listas.asteriskbrasil.org
é no FreePBX e não no Elastix.

Para acessar o FreePBX, vai na guia Security, Advanced Settings e marque "Enable direct access (Non-embedded) to FreePBX", depois pode acessar digitando o IP do seu PABX no formato: https://ip_do_elastix/admin.


Att.

Eduardo Almeida
Linux User: 528459


--

---
Você recebeu essa mensagem porque está inscrito no grupo quot;ElastixBrasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para elastixbrasi...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para elasti...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/elastixbrasil.
Para mais opções, acesse https://groups.google.com/d/optout.

emanuel sena

unread,
Aug 4, 2014, 10:03:51 AM8/4/14
to elasti...@googlegroups.com
Galera, não sei se fiz o mais correto, mais funcionou de boa...

eu fiz assim:
Editar este arquivo.

/var/www/html/modules/extensions_batch/libs/paloSantoExtensionsBatch.class.php

e deixa-lo desta maneira.

procurar esta função

function valida_password($Secret)
{
if(strlen($Secret) <= 5)
return false;

if (!preg_match("/[[:alnum:]]/", $Secret))
return true;

if (preg_match("/[[:space:]]/", $Secret))
return false;

if (preg_match("/[[:punct:]]/", $Secret))
return true;

if (!preg_match("/[a-z]/", $Secret))
return true;

if (!preg_match("/[A-Z]/", $Secret))
return true;

if (!preg_match("/[0-9]/", $Secret))
return false;

return true;
}

Desta maneira fiz o upload de csv e funfou tudo de boa, não sei se resolve o problema de vcs, o meu resolveu.

Obs. Elastix 2.4 32bits o que eu estava usando.



++++ www.contaqme.com +++++++
|      .~.                                                     \
|     / v \             Emanuel Sena.           \
|    /(   )\            +55 (85) 87797852     \
|    ^^-^^            +55 (85) 34965335     \
|                       +55 (85) 96282987      \
| emanu...@contaqme.com.br  \
+++++++++++++++++++++++++++++  

NB Informática

unread,
Aug 6, 2014, 8:36:18 AM8/6/14
to elasti...@googlegroups.com
Eduardo, muito obrigado, nem sabia que tinha outra interface grafica pra acessar pra mim a do elastix já era o freepbx alterado por eles.


Marcelo Bissolati


Em 4 de agosto de 2014 10:34, Eduardo Almeida <eduar...@gmail.com> escreveu:

--

---
Você recebeu essa mensagem porque está inscrito em um tópico no grupo "ElastixBrasil" dos Grupos do Google.
Para cancelar inscrição nesse tópico, acesse https://groups.google.com/d/topic/elastixbrasil/b6mEptESUUs/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para elastixbrasi...@googlegroups.com.

gabriel grillo rosa

unread,
Nov 14, 2014, 2:34:59 PM11/14/14
to elasti...@googlegroups.com, asteris...@listas.asteriskbrasil.org
Realmente bulk extensions é melhor opção. Você além adicionar ramais você consegue ainda editar e deletar. Perfeito.

Na minha versão está na aba Admin -> Module Admin.  Marcar repositórios Basic e extended e clicar em check online. Depois é só escolher a opção Bulk Extensions, ir na action donwload and install e mandar processar.

Muito bom.

Obrigado a lista pela contribuição.

Luciano Cavalcante Souza

unread,
Nov 18, 2014, 1:05:14 PM11/18/14
to elasti...@googlegroups.com
Boa tarde a todos.

Dividas!

1 - Já tenho ramais ativos no meu Elastix  e no arquivo csv somente terá NOVOS RAMAIS. O UPLOAD  entende que será de acréscimo de ramais?

2 -  Consigo fazer alteração em um campo de ramal existente no Elastix e importa esta atualização?

--

---
Você recebeu essa mensagem porque está inscrito no grupo "ElastixBrasil" dos Grupos do Google.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para elastixbrasi...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para elasti...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/elastixbrasil.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Sds.
Luciano Cavalcante Souza
Tecnólogo em Gestão da Tecnologia da Informação".
Mobile: + 55 xx 79 8814.5895(vivo) / + 55 xx 79 8805.3448(oi).
e-mail: luci...@gmail.com
Skype: lucindio
Maktub!

gabriel grillo rosa

unread,
Nov 18, 2014, 1:18:59 PM11/18/14
to elasti...@googlegroups.com
Na primeira coluna você diz se vai adicionar, deletar ou editar. O que pode fazer, primeiro você exporta os que tem. Depois na hora de fazer upload, você coloca edit apenas nas linhas que quer alterar. Caso não tenha nenhuma ação na primeira coluna, ele faz nada.

Att,

Gabriel

--

---
Você recebeu essa mensagem porque está inscrito em um tópico no grupo "ElastixBrasil" dos Grupos do Google.
Para cancelar inscrição nesse tópico, acesse https://groups.google.com/d/topic/elastixbrasil/b6mEptESUUs/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para elastixbrasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para elasti...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/elastixbrasil.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Gabriel Grillo Rosa
Eng. Telecom/Analista de Sistemas
(27) 9986-9050

Luciano Cavalcante Souza

unread,
Nov 18, 2014, 1:29:50 PM11/18/14
to elasti...@googlegroups.com
Me corrigir se estiver errado:

"Ação","Display Name","User Extension","Direct DID","Outbound CID","Call Waiting",
"edit","Bloco 5 Apt 001",5001,,,"DISABLED",
"del","Bloco 5 Apt 002",5002,,,"DISABLED",
"add","Bloco 5 Apt 003",5003,,,"DISABLED",

Reply all
Reply to author
Forward
0 new messages