{"id":817,"date":"2020-05-22T16:39:52","date_gmt":"2020-05-22T19:39:52","guid":{"rendered":"http:\/\/blog.saperx.com.br\/?p=817"},"modified":"2020-05-22T17:15:52","modified_gmt":"2020-05-22T20:15:52","slug":"script-para-geracao-de-chamadas-no-asterisk","status":"publish","type":"post","link":"https:\/\/blog.saperx.com.br\/index.php\/2020\/05\/22\/script-para-geracao-de-chamadas-no-asterisk\/","title":{"rendered":"Script para gera\u00e7\u00e3o de chamadas no Asterisk"},"content":{"rendered":"\n<p>Sem muitas delongas, compartilho aqui um script em PHP para gera&ccedil;&atilde;o de chamadas simult&acirc;neas, tamb&eacute;m conhecido como CPS (calls per second) para o asterisk.<\/p>\n\n\n\n<p>O objetivo deste script &eacute; realizar teste de stress no Asterisk, podendo ser definido quantas chamadas simult&acirc;neas e quantas chamadas no total voc&ecirc; deseja gerar.<\/p>\n\n\n\n<p>O script gerar&aacute; chamadas para uma outra central, como por exemplo, 2 asterisk. Conecte ambos via SIP e crie um contexto para recebimento de chamadas.<\/p>\n\n\n\n<p>Basicamente, no c&oacute;digo, altere as vari&aacute;veis no in&iacute;cio do arquivo. Destaco duas delas:<br>$CPS = Quantidade de chamadas geradas por SEGUNDO <br>$QTD = Quantidade de segundos dever&aacute; rodar<\/p>\n\n\n\n<p>Total de chamadas geradas = $CPS * $QTD<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\n\/\/Diretorio onde serao salvos os arquivos temporariamente\n$FILE_PWD = \"\/tmp\/\";\n\n\/\/Configuracoes do arquivo .call\n$CHANNEL = \"SIP\/tronco-sip\/21210000\";\n$CONTEXT = \"discador\";\n$EXTENSION = \"s\";\n$CALLERID = \"CENTRAL-A\";\n$MAXRETRIES = 1;\n$RETRYTIME = 1;\n\n\/\/CPS = Calls per second\n$CPS = 20;\n\n\/\/Quantas rodadas de criacao devera ter\n$QTD = 100;\n\nfor($i=0;$i&lt;$QTD;$i++){\n\techo \"RODADA \".($i+1).\"\\n\";\n\n\t\/\/Deleta arquivos .call desta pasta\n\texec(\"rm $FILE_PWD*.call 2> \/dev\/null\");\n\n\tfor($j=0;$j&lt;$CPS;$j++){\n\t\t\/\/gera um arquivo aleatorio\n\t\t$FILE_NAME=$FILE_PWD.rand(0,10000000000).rand(0,10000).\".call\";\n\n\t\t\/\/Montagem do arquivo\n\t\tfile_put_contents($FILE_NAME,\"Channel: $CHANNEL\\n\"); \n\t        file_put_contents($FILE_NAME,\"Context: $CONTEXT\\n\",FILE_APPEND);\n\t        file_put_contents($FILE_NAME,\"Extension: $EXTENSION\\n\",FILE_APPEND);\n\t        file_put_contents($FILE_NAME,\"CallerID: $CALLERID\\n\",FILE_APPEND);\n\t        file_put_contents($FILE_NAME,\"MaxRetries: $MAXRETRIES\\n\",FILE_APPEND);\n\t        file_put_contents($FILE_NAME,\"RetryTime: $RETRYTIME\\n\",FILE_APPEND);\n\t\n\t\techo \"Arquivo gerado: $FILE_NAME\\n\";\n\t}\n\n\t\/\/Realizando as ligacoes\n\texec(\"mv $FILE_PWD*.call \/var\/spool\/asterisk\/outgoing\");\n\n\t\/\/calls PER SECOND.. sleep 1s antes da proxima rodada\n\tif($i+1!=$QTD)\n\t\tsleep(1);\n}\n\n?><\/code><\/pre>\n\n\n\n<p>Para execut&aacute;-lo, basta salvar o c&oacute;digo em um arquivo e executar com o comando: <br><strong>php nome_arquivo.php<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sem muitas delongas, compartilho aqui um script em PHP para gera&ccedil;&atilde;o de chamadas simult&acirc;neas, tamb&eacute;m conhecido como CPS (calls per second) para o asterisk. O objetivo deste script &eacute; realizar teste de stress no Asterisk, podendo ser definido quantas chamadas simult&acirc;neas e quantas chamadas no total voc&ecirc; deseja gerar. O script gerar&aacute; chamadas para uma [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":686,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8],"tags":[117,116],"_links":{"self":[{"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/posts\/817"}],"collection":[{"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=817"}],"version-history":[{"count":2,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/posts\/817\/revisions"}],"predecessor-version":[{"id":820,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/posts\/817\/revisions\/820"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/media\/686"}],"wp:attachment":[{"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=817"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=817"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=817"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}