[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