[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