Você está na página 1de 14

URA VOIP COM ASTERISK E MYSQL REALTIME

URA VOIP COM ASTERISK E MYSQL REALTIME


O que pode ser configurado em cada arquivo .conf do Asterisk?

/etc/asterisk agents.conf : Configurao dos agents de atendimento alarmreceiver.conf : Configurao de recebimento de despertador asterisk.conf : Configurao dos diretrios do Asterisk backup.conf : Cron do script de backup do Asterisk cdr_mysql.conf : Dados para conexo no CDR do MySQL enum.conf : Resoluo de nmeros de telephone em DNS extensions.conf : Configurao dos contextos para o Plano de Discagem extensions_additional.conf : Extensions modificado pelo AMP extensions_custom.conf : Alguns extensions customizados features.conf : Configuraes de parking festival.conf : Configurao do servidor festival iax.conf : Configurao dos contextos IAX iax_additional.conf : Configurao dos contextos IAX gerado pelo AMP iaxprov.conf : Informaes do IAX indications.conf : Indicadores das sinalizaes dos paises logger.conf : Seta o tipo de log que ser gerado manager.conf : Gerencia a porta utilizada e permisses de conexo manager_custom.conf : Contextos com permisso meetme.conf : Salas de confefncia meetme_additional.conf : Salas de conferncia gerados pelo AMP modem.conf : Configurao de Modem modules.conf : Arquivo responsavel pela inicializacao dos modulos utilizados pelo Asterisk musiconhold.conf : Classes e definies das msicas em espera parking.conf : Configurao dos canais disponiveis para parking e como parkear privacy.conf : Arquivo para gerenciar a privacidade (quantas vezes deve digitar o numero) queues.conf : Gerenciador das filas queues_additional.conf : Gerenciador das filas geradas pelo AMP rtp.conf : Define o range de portas RTP utilizadas pelo Asterisk sip.conf : Configuraes dos contextos SIP sip_additional.conf : Configuraes dos contextos SIP gerados pelo AMP vm_email.inc : E-mail padro enviado quando deixarem recado na caixa postal vm_general.inc : Configurales e formatos do voicemail voicemail.conf : Configurao do voicemail de casa ramal zapata-auto.conf : Configurao das placas zaptel zapata.conf : Configuraes das placas zaptel zapata_additional.conf : Configuraes das placas zaptel gerados pelo AMP

Aps instalar o sistema operacional neste caso o ubuntu , vamos comear a instalar os programas necessrios para poder efetuar as devidas configuraes do servidor voip. 1Vamos atualizar os pacotes do servidor. # apt-get update 2Vamos instalar o banco de dados e os programas necessrios para o VOIP.

apt-get install samba libnewt-dev libssl-dev zlib1g-dev libncurses5-dev libeditline0 libeditline-dev libedit2 libedit-dev linux-headers-`uname -r` mpg123 libmysqlclient-dev libtiff4 libtiff4-dev libxml2 libxml2-dev build-essential automake fakeroot debhelper autotools-dev cdbs pkg-config gcc g++ php5-mysql libapache2-mod-php5 mysql-client php5-mysql libapache2-mod-php5 libedit-dev libedit2 libssl-dev zlib-bin zlib1g-dev mpg123 libnewt0.52 newt-tcl libnewt-dev build-essential perl asterisk-mysql festival synaptic 3Temos que instalar o gerenciador do banco de dados phpmyadmin. # apt-get install phpmyadmin 4Vamos para as primeiras configuraes do asterisk no nosso caso a placa de fax modem clone da x100p, por padro o asterisk vai instalar o dahdy antigo zaptel,Acesse o arquivo de configurao do dahdy. # rm f /etc/dahdi/system.conf

# vi /etc/dahdi/system.conf 5Dentro do arquivo do dahdy coloque as seguintes configuraes.

loadzone = br defaultzone = br fxsks = 1 channels = 1 echocanceller = mg2,1 6Agora vamos configurar o dahdi na pasta do asterisk.

rm f /etc/asterisk/chan_dahdi.conf vi /etc/asterisk/chan_dahdi.conf

7-

Vamos acrescentar no arquivo cha_dahdi.conf as seguintes configuraes.

[trunkgroups]

[channels] txgain = 1.5 rxgain = 1.5 echotraining = yes context = default signaling = fxs_ks group = 1 channel => 1 OBS: comentado Txgain = 10.5 foi colocado o maximo para o som da entrada analgica rxgain = 10.5 foi colocado o maximo para o som da saida analgica echotraining = yes cancela o eco no canal de entrada analogical Verifique as interrupes com o comando: # cat /proc/interrupts No meu caso tive o seguinte retorno: Como podemos ver, o mdulo wcfxo est usando a IRQ 17 e nenhum outro mdulo est usando o mesmo endereo. Caso nenhum conflito seja identificado, ento podemos continuar, se voc detectar algum conflito, ento importante que o resolva. Para isso desative na BIOS, portas seriais, paralelas e outras que no esteja usando. Voc pode tambm trocar o fax modem de SLOT na sua placa me, isso vai funcionar dependendo do modelo desta. Voc j pode agora, carregar os mdulos: # modprobe dahdi # modprobe wcfxo 8Vamos agora definir as configuraes do asterisk para podermos ver se ele encontro a placa de fax modem e verificar se esta tudo correto com o seguinte comendo. # dahdi_cfg vvvvvv tem que ficar desta forma abaixo:

9Vamos configurar o arquivo padro dos ramais da nossa ura voip, vamos acessar a pasta padro do asterisk aonde os arquivos esto presentes. # cd /etc/asterisk/ 10- Vamos agora para as configuracoes do ramais no banco de dados e criacao das tabelas no mysql, entre no mysql pelo phpmyadmin.

http://localhost/phpmyadmin ou http://ip-do-servidor/phpmyadmin coloque o usurio root e a senha cadastrada na instalao do phpmyadmin. 11- Vamos criar o banco de dados com o nome de sua escolha mais neste tutorial vai ser asterisk . Dentro do banco de dados iremos criar as configuraes. CREATE DATABASE `asterisk` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; USE `asterisk`; 12- Dentro do banco de dados criado vamos acessa-lo e criar as tabelas. CREATE TABLE IF NOT EXISTS `cdr` ( `id` int(5) NOT NULL AUTO_INCREMENT, `calldate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `clid` varchar(80) NOT NULL DEFAULT '', `src` varchar(80) NOT NULL DEFAULT '', `dst` varchar(80) NOT NULL DEFAULT '', `dcontext` varchar(80) NOT NULL DEFAULT '', `channel` varchar(80) NOT NULL DEFAULT '', `dstchannel` varchar(80) NOT NULL DEFAULT '', `lastapp` varchar(80) NOT NULL DEFAULT '', `lastdata` varchar(80) NOT NULL DEFAULT '', `duration` int(11) NOT NULL DEFAULT '0', `billsec` int(11) NOT NULL DEFAULT '0', `disposition` varchar(45) NOT NULL DEFAULT '', `amaflags` int(11) NOT NULL DEFAULT '0', `accountcode` varchar(20) NOT NULL DEFAULT '', `uniqueid` varchar(32) NOT NULL DEFAULT '', `userfield` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=28729 ; 13- Vamos criar as tabelas necessrias para nosso servidor. CREATE TABLE IF NOT EXISTS `ramais` ( `id` int(11) NOT NULL AUTO_INCREMENT, `localnet` varchar(500) NOT NULL, `externhost` varchar(500) NOT NULL, `externrefresh` varchar(500) NOT NULL DEFAULT '60', `usecallerid` varchar(500) NOT NULL DEFAULT 'yes', `name` varchar(80) NOT NULL DEFAULT '',

`accountcode` varchar(20) DEFAULT NULL, `amaflags` varchar(7) DEFAULT NULL, `callgroup` varchar(10) DEFAULT '1', `callerid` varchar(80) DEFAULT NULL, `canreinvite` char(3) DEFAULT 'yes', `context` varchar(80) DEFAULT 'default', `defaultip` varchar(15) DEFAULT NULL, `dtmfmode` varchar(7) DEFAULT 'rfc2833', `fromuser` varchar(80) DEFAULT NULL, `fromdomain` varchar(80) DEFAULT NULL, `fullcontact` varchar(80) DEFAULT NULL, `host` varchar(31) DEFAULT 'dynamic', `insecure` varchar(4) DEFAULT NULL, `language` varchar(500) DEFAULT 'pt_BR', `mailbox` varchar(50) DEFAULT NULL, `md5secret` varchar(80) DEFAULT NULL, `nat` varchar(5) DEFAULT 'yes', `deny` varchar(95) DEFAULT NULL, `permit` varchar(95) DEFAULT NULL, `mask` varchar(95) DEFAULT NULL, `pickupgroup` varchar(10) DEFAULT '1', `port` varchar(5) NOT NULL DEFAULT '', `qualify` char(3) DEFAULT NULL, `restrictcid` char(1) DEFAULT NULL, `rtptimeout` char(3) DEFAULT NULL, `rtpholdtimeout` char(3) DEFAULT NULL, `secret` varchar(80) DEFAULT NULL, `type` varchar(6) NOT NULL DEFAULT 'friend', `username` varchar(80) NOT NULL DEFAULT '', `disallow` varchar(100) DEFAULT 'all', `allow` varchar(100) DEFAULT 'gsm;ulaw;alaw', `musiconhold` varchar(100) DEFAULT NULL, `regseconds` int(11) NOT NULL DEFAULT '0', `ipaddr` varchar(15) DEFAULT NULL, `regexten` varchar(80) DEFAULT NULL, `cancallforward` char(3) DEFAULT 'yes', `pickupexten` varchar(500) NOT NULL DEFAULT '*8', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), KEY `name_2` (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;

INSERT INTO `ramais` (`id`, `localnet`, `externhost`, `externrefresh`, `usecallerid`, `name`, `accountcode`, `amaflags`, `callgroup`, `callerid`, `canreinvite`, `context`, `defaultip`, `dtmfmode`, `fromuser`, `fromdomain`, `fullcontact`, `host`, `insecure`, `language`, `mailbox`, `md5secret`,

`nat`, `deny`, `permit`, `mask`, `pickupgroup`, `port`, `qualify`, `restrictcid`, `rtptimeout`, `rtpholdtimeout`, `secret`, `type`, `username`, `disallow`, `allow`, `musiconhold`, `regseconds`, `ipaddr`, `regexten`, `cancallforward`, `pickupexten`) VALUES (1, '', '', '60', 'yes', '1000', NULL, NULL, '1', '"telefonista" <1000>', 'no', 'default', NULL, 'rfc2833', NULL, NULL, NULL, 'dynamic', NULL, 'pt_BR', '1000', NULL, 'yes', NULL, NULL, NULL, '1', '5060', NULL, NULL, NULL, NULL, '1000', 'friend', '1000', 'all', 'gsm;ulaw;alaw', NULL, 1338439151, '10.42.43.11', NULL, 'yes', '*8'), (2, '', '', '60', 'yes', '1002', NULL, NULL, '1', '"magnopeem :D" <1002>', 'no', 'default', NULL, 'rfc2833', NULL, NULL, NULL, 'dynamic', NULL, 'pt_BR', '1002', NULL, 'yes', NULL, NULL, NULL, '1', '10114', NULL, NULL, NULL, NULL, '1002', 'friend', '1002', 'all', 'gsm;ulaw;alaw', NULL, 1338441127, '10.42.43.84', NULL, 'yes', '*8'), (3, '', '', '60', 'yes', '1003', NULL, NULL, '1', '1003', 'no', 'default', NULL, 'rfc2833', NULL, NULL, NULL, 'dynamic', NULL, 'pt_BR', '1003', NULL, 'yes', NULL, NULL, NULL, '1', '22464', NULL, NULL, NULL, NULL, '1003', 'friend', '1003', 'all', 'gsm;ulaw;alaw', NULL, 1338440282, '10.42.43.66', NULL, 'yes', '*8');

CREATE TABLE IF NOT EXISTS `configuracao_callcenter` ( `uniqueid` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(500) NOT NULL DEFAULT 'atendimento', `musiconhold` varchar(500) NOT NULL DEFAULT 'heavymetal', `timeout` varchar(500) NOT NULL DEFAULT '30', `announce_frequency` varchar(500) NOT NULL DEFAULT '60', `announce_holdtime` varchar(500) NOT NULL DEFAULT 'once', `wrapuptime` varchar(500) NOT NULL DEFAULT '10', `maxlen` varchar(500) NOT NULL DEFAULT '20', `strategy` varchar(500) NOT NULL DEFAULT 'rrmemory', `joinempty` varchar(500) NOT NULL DEFAULT 'yes', `leavewhenempty` varchar(500) NOT NULL DEFAULT 'no', `ringinuse` varchar(500) NOT NULL DEFAULT 'no', PRIMARY KEY (`uniqueid`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ; INSERT INTO `configuracao_callcenter` (`uniqueid`, `name`, `musiconhold`, `timeout`, `announce_frequency`, `announce_holdtime`, `wrapuptime`, `maxlen`, `strategy`,q `joinempty`, `leavewhenempty`, `ringinuse`) VALUES (1, 'atendimento', 'heavymetal', '30', '60', 'once', '10', '20', 'rrmemory', 'yes', 'no', 'no');

CREATE TABLE IF NOT EXISTS `correio_de_voz` ( `uniqueid` int(11) NOT NULL AUTO_INCREMENT, `customer_id` int(11) NOT NULL DEFAULT '0', `context` varchar(50) NOT NULL DEFAULT 'default', `mailbox` varchar(500) NOT NULL DEFAULT '100', `password` varchar(500) NOT NULL DEFAULT '1234', `fullname` varchar(50) NOT NULL DEFAULT '',

`email` varchar(50) NOT NULL DEFAULT '', `pager` varchar(50) NOT NULL DEFAULT '', `stamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`uniqueid`), KEY `mailbox_context` (`mailbox`,`context`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;

INSERT INTO `correio_de_voz` (`uniqueid`, `customer_id`, `context`, `mailbox`, `password`, `fullname`, `email`, `pager`, `stamp`) VALUES (1, 1002, 'default', '1002', '1234', 'magnopeem', '', '', '2012-05-29 01:58:54'), (2, 1000, 'default', '1000', '1234', 'telefonista', '', '', '2012-05-29 21:17:26');

CREATE TABLE IF NOT EXISTS `ramais_callcenter` ( `uniqueid` int(10) unsigned NOT NULL AUTO_INCREMENT, `membername` varchar(40) DEFAULT NULL, `queue_name` varchar(128) DEFAULT 'atendimento', `interface` varchar(128) DEFAULT 'SIP/', `penalty` int(11) DEFAULT '5', `paused` int(11) DEFAULT NULL, PRIMARY KEY (`uniqueid`), UNIQUE KEY `queue_interface` (`queue_name`,`interface`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;

INSERT INTO `ramais_callcenter` (`uniqueid`, `membername`, `queue_name`, `interface`, `penalty`, `paused`) VALUES (1, 'teste', 'atendimento', 'SIP/1003', 5, NULL), (2, 'magnopeem', 'atendimento', 'SIP/1002', 5, NULL);

CREATE TABLE IF NOT EXISTS `salas_conferencias` ( `confno` char(80) NOT NULL DEFAULT '0', `starttime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `endtime` datetime DEFAULT NULL, `pin` char(20) DEFAULT NULL, `opts` char(100) DEFAULT NULL, `adminpin` char(20) DEFAULT NULL, `adminopts` char(100) DEFAULT NULL, `members` int(11) NOT NULL DEFAULT '0', `maxusers` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`confno`,`starttime`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `salas_conferencias` (`confno`, `starttime`, `endtime`, `pin`, `opts`, `adminpin`, `adminopts`, `members`, `maxusers`) VALUES ('5000', '2012-05-30 00:00:00', '2012-05-31 22:11:38', NULL, NULL, NULL, NULL, 0, 0);

14- Vamos inserir um ramal para testes.

15- Temos que colocar o asterisk para poder ler o banco de dados e verificar os ramais no mysql para isso vamos acrescentar no arquivo modules.conf as seguintes configuraes, abaixo da linha [modules] vamos colocar esta configurao. [modules] autoload = yes load => cdr_addon_mysql.so load => res_config_mysql.so OBS: comentado linha cdr e a tarifao , res_mysql e modulo de conexo com banco de dados 16- Vamos configurar o arquivo cdr dentro da pasta asterisk, vamos criar um backup deste arquivo e depois configura-lo. vi /etc/asterisk/cdr_mysql.conf 17- Vamos configurar da seguinte forma : [global] hostname=localhost dbname=asterisk table=cdr password=SENHA DO MYSQL user=root port=3306 sock=/var/run/mysqld/mysqld.sock userfield=1

18- Vamos agora configurar o arquivo res_mysql.conf, no asterisk 1.6 e no asterisk 1.8 e res_config_mysql.conf . vi /etc/asterisk/res_mysql.conf 19- Vamos configurar o res_mysql.conf da seguinte forma.

[asterisk] ; nome do banco de dados dbhost = localhost dbname = asterisk ; nome do banco de dados dbuser = root ; usuario administrador dbpass = XXXX ;senha de acesso ao mysql dbport = 3306 dbsock = /var/run/mysqld/mysqld.sock

20- No arquivo extconfig.conf vamos acrescentar ao final do arquivo o direcionamento para o nosso banco de dados para o asterisk poder verificar os ramais j adicionados no mysql, coloque as configuraes no final do arquivo. sipusers => mysql,asterisk,ramais sippeers => mysql,asterisk,ramais queues => mysql,asterisk,configuracao_callcenter queue_members => mysql,asterisk,ramais_callcenter voicemail => mysql,asterisk,correio_de_voz meetme => mysql,asterisk,salas_conferencias

21-No arquivo extensions.conf vamos colocar a nossa configurao mais antes temos que remover o arquivo.

rm f extensions.conf vi extensions.conf

22-Agora temos que colocar a nossa configurao no arquivo extensions.conf.

[general] static=yes writeprotect=no priorityjumping=no autofallthrough=yes clearglobalvars=no [globals] [default] ;grava as ligacoes exten => _1XXX,1,Mixmonitor(/var/lib/asterisk/sounds/ligacoesgravadas/feitas/${EXTEN}/${UNIQUEID}.wav) exten => _1XXX,2,Dial(SIP/${EXTEN},20,tT);configuracao para ligacoes dos ramais exten => _1XXX,n,GotoIf($["${DIALSTATUS}" = "ANSWER"]?fora)

exten => _1XXX,n,Read(op,/var/lib/asterisk/sounds/ramal-indisponivel/menu,1) exten => _1XXX,n,goto(op-${op}) exten => _1XXX,n(op-),goto(fora) exten => _1XXX,n(op-2),Voicemail(${EXTEN}@default) exten => _1XXX,n,goto(fora) exten => _1XXX,n(op-5),Macro(callback) exten => _1XXX,n,goto(fora) exten => _1XXX,n(op-1),Macro(invalido) exten => _1XXX,n(fora),hangup() exten => _1XXX,n(op-3),Macro(invalido) exten => _1XXX,n(fora),hangup() exten => _1XXX,n(op-4),Macro(invalido) exten => _1XXX,n(fora),hangup() exten => _1XXX,n(op-6),Macro(invalido) exten => _1XXX,n(fora),hangup() exten => _1XXX,n(op-7),Macro(invalido) exten => _1XXX,n(fora),hangup() exten => _1XXX,n(op-8),Macro(invalido) exten => _1XXX,n(fora),hangup() exten => _1XXX,n(op-9),hangup() ;ramal do correio de voz,preso pelo ramal ;exten => *100,1,VoiceMailMain(${CALLERID(num)}) ; escuta os recados ;exten => *100,2,hangup ;ramal do correio de voz,opcao para escuta correio de voz por qualquer ramal exten => *100,1,VoiceMailMain() exten => *100,2,hangup() ;ramal de saida para linha mono 1 linha grava as ligacoes saintes exten => _0,1,Mixmonitor(/var/lib/asterisk/sounds/ligacoesgravadas/feitas/${EXTEN}/${UNIQUEID}.wav) exten => _0,2,Dial(DAHDI/1,20,r) exten => _0,3,hangup() ;ramal para conferencia exten => 5001,1,Meetme(${EXTEN}) exten => 5001,n,Hangup() ; ramal para poder gravar o menu de atendimento exten => 2001,1,Answer() exten => 2001,2,Wait(1) exten => 2001,3,Record(/var/lib/asterisk/sounds/menu.gsm) exten => 2001,4,Wait(1) exten => 2001,5,Playback(/var/lib/asterisk/sounds/menu) exten => 2001,6,Wait(1) exten => 2001,7,Hangup()

exten => 2002,1,Wait() exten => 2002,2,playback(/var/lib/asterisk/sounds/menu)

; >>>>>>>>>>>>>>>>>>>>>>>>> ramal que sera para ura<<<<<<<<<<<<<<<< ;ligacoes externas 1 linha grava as ligacoes entrantes 2 caso ocupado grava recado 3 linha trasfere pro ramal desejado 4 linha desliga a ligacao exten => s,1,Mixmonitor(/var/lib/asterisk/sounds/ligacoesgravadas/recebidas/${EXTEN}/${UNIQUEID}.wav) exten => s,2,Dial(SIP/1000) exten => s,3,VoiceMail(${EXTEN},u) exten => s,n,Hangup()

exten => 2000,1,Answer() exten => 2000,2,Goto(ura,s,1) exten => 2000,3,Hangup() ; Se a liga foi recebida das 9 14:59 horas de segunda a sexta-feira ; segue para o contexto de ramais exten => _2003,1,GotoIfTime(9:00-20:59,mon-fri,*,*?ura,${EXTEN},1) ;aqui esta a configuracao da ura no caso autoatendimento [ura] exten => s,1,Answer() ;atende a ligacao exten => s,2,NoOp exten => s,3,ExecIfTime(18:0006:00,*,*,*?PlayBack(/var/lib/asterisk/sounds/pt_BR/letters/equals&exclaimation-point)) exten => s,n,background(/var/lib/asterisk/sounds/menu);aperte 1 para suporte etc exten => s,n,NoOp exten => s,n,WaitExten(6) exten => s,n,Goto(ura,s,1) ; ramal suporte exten => 1,1,playback(/var/lib/asterisk/sounds/pt_BR/suporte); toca a mensagem do suporte exten => 1,2,Answer();atende a ligacao exten => 1,3,Dial(SIP/1000,20,M(setmusiconhold,default));chama o ramal por 20 segundos exten => 1,4,GoToIf($[${DIALSTATUS} = CHANUNAVAIL]?8) ;se nsponvai para op=8 exten => 1,5,GoToIf($[${DIALSTATUS} = BUSY]?8) ;se ocupado vai para op=8 exten => 1,6,GoToIf($[${DIALSTATUS} = NOANSWER]?8);se ntende nos 20 s vai para op=8 exten => 1,7,Hangup() ; desliga exten => 1,8,playback(/var/lib/asterisk/sounds/pt_BR/suporte-ocupado); informa que ramal esta oculpado e que vai ser direcionado para o atendimento exten => 1,9,Queue(atendimento,s,1) ; coloca o ramal na fila do atendimento

exten => 1,10,hangup() ; desliga a liga ;opcao treinamento exten => 2,1,playback(treinamento) exten => 2,2,dial(ZAP/1) exten => 2,3,hangup()

;opcao vendas exten => 3,1,playback(vendas) exten => 3,2,dial(IAX/8002) exten => 3,3,hangup() ; opcao do correio de voz exten => 4,1,VoiceMailMain() ; chama o gerenciador de voicemail . digita a caixa postal e depois a ; senha para acessar os recados exten => 4,2,Hangup() ;opcao para ligar para ramais exten => 5,1,playback() exten => 5,2,Goto(default,1) exten => 5,3,hangup() ; encaminha para contexto que permite a ; pessoa no telefone discar o ramal com que deseja falar ; se a opcao nao existir exten => i,1,PlayBack(/var/lib/asterisk/sounds/pt_BR/invalid) exten => i,n,Goto(ura,s,1) ;>>>>>>>>>>>>>>>>>>>>>>>macros da ura<<<<<<<<<<<<<<< [macro-invalido] exten => _1XXX,1,Playback(/var/lib/asterisk/sounds/pt_BR/invalid) exten => _1XXX,3,hangup() ; opcao de poder rediscar [macro-callback] exten => s,1,playback(/var/lib/asterisk/sounds/ramal-indisponivel/aceito) exten => s,n,set(CALLBACK-FILE=/var/spool/asterisk/outgoing/${MACRO_EXTEN}${CALLERID(num)}.call) exten => s,n,system(echo "Channel: SIP/${MACRO_EXTEN}" > ${CALLBACK-FILE}) exten => s,n,system(echo "Context: default" >> ${CALLBACK-FILE}) exten => s,n,system(echo "Extension: ${CALLERID(num)}" >> ${CALLBACK-FILE}) exten => s,n,system(echo "Callerid: ${MACRO_EXTEN}" >> ${CALLBACK-FILE}) exten => s,n,system(echo "MaxRetries: 120" >> ${CALLBACK-FILE}) exten => s,n,system(echo "RetryTime: 5" >> ${CALLBACK-FILE}) exten => s,n,system(echo "WaitTime: 10" >> ${CALLBACK-FILE}) exten => s,n,hangup()

23-No arquivo features.conf vamos descomentar o atxfer => *2 localizado depois do [featuremap], pois este comando vai ser utilizado mais a frente

24-No arquivo musiconhold.conf vamos colocar desta forma para suporte a audio em mp3, aps [ default ]. [default] mode=mp3 ; suporte a mp3 directory=/usr/share/asterisk/sounds/musica-de-espera ; diretorio que vamos criar

25-Vamos agora criar as pastas aonde sero gravados as ligaes . mkdir /usr/share/asterisk/sounds/ligacoes-gravadas mkdir /usr/share/asterisk/sounds/ligacoes-gravadas/recebidas mkdir /usr/share/asterisk/sounds/ligacoes-gravadas/feitas mkdir /usr/share/asterisk/sounds/musica-de-espera

26-Aps todas as configuraes vamos reiniciar os servios. service asterisk restart service mysql restart

27-Vamos instalar samba para poder colocar as musicas no servidor. apt-get install samba Aps vamos configuralo Vi /etc/samba/smb.conf

[publico] path = /usr/share/asterisk writable = yes comment = publico guest ok = yes guest account = root force directory mode = 777

force create mode = 777 create mode = 777 public = yes directory mode = 777

vamos dar permisso a pasta chmod 777 R /usr/share/asterisk chmod 777 R /usr/share/asterisk/*

28-Vamos colocar o udio em portugus acesse o arquivo indications.conf na pasta asterisk. Vi /etc/asterisk/indications.conf Coloque em country br Exemplo: country=br

29-Commandos para asterisk

30-Vamos agora instalar para testes 2 sipfone com suporte a vdeo conferencia. http://www.counterpath.com/x-lite-download.html este acima a verso mos nova , caso queira a verso anterior entre outros http://voipguides.blogspot.com.br/2008/01/5-sip-softphones-you-must-download.html

1) Configure desta forma o xlit 2) 3) 4) Aps as configuraes do xlite vamos efetuar um teste ligando de um ramal para outro . Para transferir uma chamada basta discar aps a chamada atendida *2 e discar o ramal Bibliografia.

http://www.voip-info.org/wiki/view/Asterisk+RealTime