{"id":383,"date":"2018-09-19T00:59:49","date_gmt":"2018-09-19T03:59:49","guid":{"rendered":"http:\/\/blog.saperx.com.br\/?p=383"},"modified":"2020-05-13T16:37:55","modified_gmt":"2020-05-13T19:37:55","slug":"ramais-asterisk-no-mysql","status":"publish","type":"post","link":"https:\/\/blog.saperx.com.br\/index.php\/2018\/09\/19\/ramais-asterisk-no-mysql\/","title":{"rendered":"Ramais SIP do asterisk no MySQL"},"content":{"rendered":"<p>J&aacute; pensou em ter um sistema pr&oacute;prio para gerenciar os ramais SIP do Asterisk diretamente em um banco de dados, ao inv&eacute;s de cadastrar todos os ramais no arquivo sip.conf?<\/p>\n<p>Gerenciar ramais sip nunca foi t&atilde;o f&aacute;cil ap&oacute;s ler este post! Aqui mostrarei como realizar este procedimento de forma simples, r&aacute;pida, f&aacute;cil e descomplicada.<\/p>\n<p><!--more--><\/p>\n<p>Para uma boa compreens&atilde;o, considerarei que voc&ecirc; j&aacute; possua:<\/p>\n<ul>\n<li>MySQL instalado<\/li>\n<li>Asterisk instalado<\/li>\n<li>Conhecimento b&aacute;sico em SQL e MySQL<\/li>\n<li>Conhecimento b&aacute;sico em Asterisk<\/li>\n<\/ul>\n<p>O pior de seguir uma &#8220;receita de bolo&#8221; &eacute; n&atilde;o saber o que se est&aacute; fazendo. Ent&atilde;o, para voc&ecirc; se achar, basicamente seguirei os passos abaixo:<\/p>\n<ol>\n<li>Cria&ccedil;&atilde;o de uma tabela no banco, onde conter&aacute; os ramais SIP<\/li>\n<li>Configura&ccedil;&atilde;o do asterisk no arquivo extconfig.conf<\/li>\n<li>Configura&ccedil;&atilde;o do asterisk no arquivo res_config_mysql.conf<\/li>\n<li>Testes<\/li>\n<\/ol>\n<p><strong>Passo 01:<\/strong><\/p>\n<p>Acesse o MySQL:<\/p>\n<pre>mysql -u root -p<\/pre>\n<p>Crie uma database chamada asterisk<\/p>\n<pre>create database asterisk;<\/pre>\n<p>Acesse a database:<\/p>\n<pre>use asterisk;<\/pre>\n<p>Crie a tabela chamada ramais_sip<\/p>\n<pre>CREATE TABLE `ramais_sip` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `name` varchar(80) NOT NULL DEFAULT '',\n  `context` varchar(80) DEFAULT 'clientes',\n  `secret` varchar(80) DEFAULT NULL,\n  `host` varchar(31) NOT NULL DEFAULT 'dynamic',\n  `nat` varchar(5) NOT NULL DEFAULT 'yes',\n  `type` enum('user','peer','friend') NOT NULL DEFAULT 'friend',\n  `callerid` varchar(80) DEFAULT NULL,\n  `qualify` char(3) DEFAULT 'yes',\n  `rtptimeout` char(10) DEFAULT NULL,\n  `username` varchar(80) NOT NULL DEFAULT '',\n  `lastms` int(11) NOT NULL,\n  `regseconds` int(11) NOT NULL DEFAULT '0',\n  `useragent` varchar(50) NOT NULL DEFAULT '',\n  `ipaddr` varchar(45) DEFAULT NULL,\n  `port` int(5) DEFAULT NULL,\n  `fullcontact` varchar(35) DEFAULT NULL,\n  `regserver` varchar(20) DEFAULT NULL,\n  `deny` varchar(40) DEFAULT NULL,\n  `disallow` text,\n  `insecure` text,\n  `fromuser` text,\n  `permit` varchar(40) DEFAULT NULL,\n  `callbackextension` varchar(40) DEFAULT NULL,\n  `dtmfmode` enum('rfc2833','info','shortinfo','inband','auto') DEFAULT NULL,\n  `ip` varchar(15) DEFAULT NULL,\n  `status` varchar(30) DEFAULT NULL,\n  `defaultuser` varchar(10) DEFAULT NULL,\n  `call-limit` int(11) DEFAULT NULL,\n  PRIMARY KEY (`id`),\n  KEY `name` (`name`)\n);\n<\/pre>\n<p>N&atilde;o se preocupe com o tamanho da tabela! Provavelmente voc&ecirc; n&atilde;o usar&aacute; todos estes campos.<\/p>\n<p>Agora irei mostrar como voc&ecirc; insere um ramal &#8220;20&#8221;, com a senha &#8220;hads9xadS&#8221;, no contexto &#8220;interno&#8221;:<\/p>\n<pre>INSERT INTO ramais_sip SET name='20', context='interno', secret='hads9xadS';<\/pre>\n<p>Simples, n&atilde;o?<\/p>\n<p>&nbsp;<\/p>\n<p><strong>PASSO 02:<\/strong><\/p>\n<p>Agora vamos para a configura&ccedil;&atilde;o do asterisk. Abra o arquivo extconfig.conf. Na &uacute;ltima linha do arquivo, adicione:<\/p>\n<pre>sippeers =&gt; mysql,local,ramais_sip<\/pre>\n<p>Com isso voc&ecirc; est&aacute; dizendo para o Asterisk procurar os ramais SIP, usando uma conex&atilde;o MySQL, com a conta &#8220;local&#8221;, e a tabela &#8220;ramais_sip&#8221;. No passo a seguir, configuraremos esta conta &#8220;local&#8221;.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>PASSO 03:<\/strong><\/p>\n<p>Abra o arquivo res_config_mysql.conf. Apague absolutamente todo o arquivo, e insira as informa&ccedil;&otilde;es abaixo, completando com os dados de acesso do seu banco MySQL:<\/p>\n<pre>[local]\ndbhost=127.0.0.1\ndbname=asterisk\ndbuser=INSERIR_AQUI_O_USUARIO_DO_BANCO (Ex: root)\ndbpass=INSERIR_AQUI_A_SENHA_DO_BANCO\ndbport=3306\nrequirements=warn\n<\/pre>\n<p>Salve o arquivo, e vamos rebootar o asterisk:<\/p>\n<pre>asterisk -rx \"core restart now\"<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>PASSO 04:<\/strong><\/p>\n<p>Chegamos na hora de testar!<\/p>\n<p>Se todos os passos acima foram realizados corretamente, ent&atilde;o nesta hora tudo j&aacute; deve estar funcionando. Para testar, basta registrar o ramal SIP no IP do seu servidor, com a conta 20 e senha &#8220;hads9xadS&#8221; (sem aspas). Dever&aacute; conectar normalmente.<\/p>\n<p>Ah, importante! &Eacute; bom lembrar que, inicialmente, os ramais que est&atilde;o no banco de dados n&atilde;o aparecer&atilde;o na console do Asterisk com o comando &#8220;sip show peers&#8221;. Eles aparecer&atilde;o somente ap&oacute;s alguma atividade ocorrer entre servidor-ramal como, por exemplo, um registro do ramal.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Conhe\u00e7a mais sobre Asterisk!<\/p>\n<p>Descubra como conectar ramais SIP do Asterisk no MySQL&#8230;<\/p>\n","protected":false},"author":2,"featured_media":704,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8],"tags":[37,39,40,42,41,38],"_links":{"self":[{"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/posts\/383"}],"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=383"}],"version-history":[{"count":11,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/posts\/383\/revisions"}],"predecessor-version":[{"id":743,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/posts\/383\/revisions\/743"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/media\/704"}],"wp:attachment":[{"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=383"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=383"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=383"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}