[AsteriskBrasil] Fazendo o Asterisk ligar de volta avisando de novo voicemail

Gilberto Nunes gilbertonunes em yahoo.com.br
Sexta Janeiro 18 15:52:41 BRST 2008


Ola pessoal

Esta semana enviei algumas mensagens para a lista, pois estava precisando implementar
uma Dial Plan, pra ligar de volta pra uma ramal, caso ele estivesse ocupado quando recebesse
alguma ligação. Nesse caso, o Asterisk notificaria o usuário do recebimento da mensagem.
Pois eu resolvi a questão assim:

No extensions.conf

[seu_contexto]
...
...
...

[inbound]
exten => s,1,Answer()
exten => s,2,Set(LANGUAGE()=pt_BR)
exten => s,3,GoToIf($[${DIALSTATUS}=BUSY]?1)
exten => s,4,Wait(1)
exten => s,5,Playback(vm-youhave)
exten => s,6,Playback(vm-INBOX)
exten => s,7,Playback(vm-messages)
exten => s,8,Wait(1)
exten => s,9,Hangup

include => inbound
...
...

No voicemail.conf:
...
...
...
externnotify=/etc/asterisk/envia.sh
...
...

No /etc/asterisk/envia.sh

EXTEN=$2
cat <<EOF> /var/spool/asterisk/tmp01
Channel: SIP/$EXTEN
Callerid: $EXTEN
MaxRetries: 5
RetryTime: 10
WaitTime: 5
Context: inbound
Extension: s
Priority: 1

EOF

mv /var/spool/asterisk/tmp01 /var/spool/asterisk/outgoing

Assim que algum ramal recebe uma mensagem no voicemail, o script envia.sh é disparado de dentro
do voicemail.conf. (Não esquecer de colocar chmod +x  /etc/asterisk/envia.sh)

O script envia.sh cria um call file e o move para dentro do /var/spool/asterisk/outgoing
O Asterisk então executa o call file, que nada mais é que um Dial Plan.
O call file orienta o Asterisk a executar a extensão 's' dentro do contexto inbound.
Essa extensão liga para o ramal que recebeu o voicemail (Vide EXTEN=$2 dentro do envia.sh) e 
executa os PlayBack's correspondentes, desligando logo em seguida.

Espero que essa implementação possa ajudar alguém.
Sugestões são sempre bem-vindas.






-- 
Gilberto Nunes

Itajaí - SC


More information about the AsteriskBrasil mailing list