[AsteriskBrasil] [ElastixBrasil] Re: Como criar ramais em lote no Elastix

Roger Pitigliani rogerwinter em gmail.com
Domingo Março 31 19:46:13 BRT 2013


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 em 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");

        }

?>




Em 31 de março de 2013 14:12, Edemilson <edemilson em fsis.com.br> escreveu:

> Fiz examente o que o Sato disse, mas dá um erro "Verify the header -
> Incomplete Columns"...como resolver isso ?
>
> Em sexta-feira, 22 de março de 2013 11h33min23s UTC-3, amsato escreveu:
>
>> 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/r.php?fbpage_id=123090474440127&r=111>*
>>
>> *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
>> amsato em 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<http://www.albertosato.voipcenter.com.br/>
>> www.dicasasterisk.**asteriskonline.com.br<http://www.dicasasterisk.asteriskonline.com.br/>
>> www.dicasvoip.voipcenter.com.**br<http://www.dicasvoip.voipcenter.com.br/>
>>
>>
>>
>  --
>
> ---
> 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 elastixbrasil+unsubscribe em googlegroups.com.
> Para postar neste grupo, envie um e-mail para
> elastixbrasil em 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
rogerwinter em gmail.com
Skype: roger.pitigliani
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20130331/728ab422/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil