Criação de um sigame que pode posterior manipular via telefone ou interface web
Criar o banco no mysql:
create database asterisk; use asterisk; CREATE TABLE IF NOT EXISTS `sigame` ( `status` int(1) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO `sigame` (`status`) VALUES (1);
Criar no plano de discagem do asterisk:
/etc/asterisk/extensions.conf
[sigame] [sigame] exten => ***,1,goto(sigame,s,1(inicio_sigame)) exten => s,1(inicio_sigame),background(ativa_desativa_sigame) exten => 0,1,playback(fala_zero) same => n,goto(sigame_desativado,1) exten => 1,1,playback(fala_um_sigame) same => n,goto(sigame_ativo,1) exten => 9,1,playback(fala_nove) same => n,goto(sigame_consulta,1) exten => s,2,WaitExten(3) same => n,goto(sigame,s,1) exten => i,1,Playback(opcao_invalida_sigame) same => n,goto(sigame,s,1) exten => sigame_ativo,1,NooP(Siga-me esta ativado) same => n,nocdr() same => n,MYSQL(Connect connid localhost root zoltrix90 asterisk) same => n,NoOp(connid = ${connid}) same => n,MYSQL(Query resultid ${connid} update sigame set status=1) same => n,MYSQL(Disconnect ${connid}) same => n,playback(sigame_ativado) same => n,goto(sigame,s,1) exten => sigame_desativado,1,NooP(Siga-me esta desativado) same => n,nocdr() same => n,MYSQL(Connect connid localhost root zoltrix90 asterisk) same => n,NoOp(connid = ${connid}) same => n,MYSQL(Query resultid ${connid} update sigame set status=0) same => n,MYSQL(Disconnect ${connid}) same => n,playback(sigame_desativado) same => n,goto(sigame,s,1) exten => sigame_consulta,1,NooP(Consulta Siga-me) same => n,MYSQL(Connect connid localhost root zoltrix90 asterisk) same => n,NoOp(connid = ${connid}) same => n,MYSQL(Query resultid ${connid} SELECT status FROM sigame) same => n,NoOp(resultid = ${resultid}) same => n,MYSQL(Fetch fetchid ${resultid} status) same => n,NoOp(Variabili = ${fetchid},${status}) same => n,MYSQL(Clear ${resultid}) same => n,MYSQL(Disconnect ${connid}) same => n,noop(Sigame esta com valor --> ${status}) same => n,GotoIf($["${status}" = "1" ]?sigame_ativo2) same => n,GotoIf($["${status}" = "0" ]?sigame_desativado2) same => n(sigame_ativo2),NooP(Siga-me esta ativado) same => n,nocdr() same => n,playback(sigame_ativado2) same => n,goto(sigame,s,1) same => n(sigame_desativado2),NooP(Siga-me esta desativado) same => n,nocdr() same => n,playback(sigame_desativado2) same => n,goto(sigame,s,1) [recebe_chamadas] exten => s,1,Answer(1) same => n,MYSQL(Connect connid localhost root zoltrix90 asterisk) same => n,NoOp(connid = ${connid}) same => n,MYSQL(Query resultid ${connid} SELECT status FROM sigame) same => n,NoOp(resultid = ${resultid}) same => n,MYSQL(Fetch fetchid ${resultid} status) same => n,NoOp(Variabili = ${fetchid},${status}) same => n,MYSQL(Clear ${resultid}) same => n,MYSQL(Disconnect ${connid}) same => n,noop(Sigame esta com valor --> ${status}) same => n,GotoIf($["${status}" = "1" ]?sigame_ativo) same => n,GotoIf($["${status}" = "0" ]?sigame_desativado) same => n(sigame_ativo),NooP(Siga-me esta ativado) same => n,Set(CDR(userfield)=SIGA-ME) same => n,Set(CDR(original_dst)=SP VIA SIP) same => n,nocdr() same => n,playback(conectado) same => n,Dial(SIP/10600001366/101&SIP/10600001366/102&SIP/10600001366/103,120,r) same => n,Goto(${DIALSTATUS}) same => n(CONGESTION),Dial(dahdi/3/0214133529277,60,r) same => n,Set(CDR(original_dst)=SP VIA ANALOGICA) same => n,Hangup same => n(busy/congestion),Dial(dahdi/3/0214133529277,60,r) same => n,Set(CDR(original_dst)=SP VIA ANALOGICA) same => n,Hangup same => n(CHANUNAVAIL),Dial(dahdi/3/0214133529277,60,r) same => n,Set(CDR(original_dst)=SP VIA ANALOGICA) same => n,Hangup same => n(BUSY),Dial(dahdi/3/0214133529277,60,r) same => n,Set(CDR(original_dst)=SP VIA ANALOGICA) same => n,Hangup same => n(sigame_desativado),NooP(Siga-me esta desativado) same => n,Set(CDR(userfield)=Lig. Recebida) ;same => n,playback(Conectado) same => n,Set(CDR(original_dst)=Ramal 201) same => n,Dial(SIP/201,22,Tt) same => n,Set(CDR(original_dst)=Ramal 202) same => n,Dial(SIP/202,90,Tt) ;same => n,Queue(Fila,tT,,,600) same => n,hangup()
Pode-se usar a imaginação para manipular via interface web