Que ideia nova! Eu não fiz isso, mas acho que posso fazer você seguir o caminho certo. Se o seu sistema é parecido com o meu, você encontrará os seguintes arquivos que servirão como exemplos:
Para envio de fax digital:
/etc/asterisk/extensions.conf
/var/lib/asterisk/bin/fax-process.pl
Para emails com anexos de mensagens de áudio:
/etc/asterisk/extensions_additional.conf
/var/lib/asterisk/bin/audio-email.pl
Vamos nos concentrar na segunda ação, dando uma olhada na parte do arquivo extensions_additional.conf que lida com anexos de áudio:
[app-dictate-send]
include => app-dictate-send-custom
exten => *35,1,Answer
exten => *35,n,Macro(user-callerid,)
exten => *35,n,Noop(CallerID is ${AMPUSER})
exten => *35,n,Set(DICTENABLED=${DB(AMPUSER/${AMPUSER}/dictate/enabled)})
exten => *35,n,GotoIf($[$["x${DICTENABLED}"="x"]|$["x${DICTENABLED}"="xdisabled"]]?nodict:dictok)
exten => *35,n(nodict),Playback(feature-not-avail-line)
exten => *35,n,Hangup
exten => *35,n(dictok),Read(DICTFILE,enter-filename-short,,,,)
exten => *35,n,Set(DICTEMAIL=${DB(AMPUSER/${AMPUSER}/dictate/email)})
exten => *35,n,Set(DICTFMT=${DB(AMPUSER/${AMPUSER}/dictate/format)})
exten => *35,n,Set(NAME=${DB(AMPUSER/${AMPUSER}/cidname)})
exten => *35,n,Playback(dictation-being-processed)
exten => *35,n,System(/var/lib/asterisk/bin/audio-email.pl --file /var/lib/asterisk/sounds/dictate/${AMPUSER}/${DICTFILE}.raw --attachment dict-${DICTFILE} --format ${DICTFMT} --to ${DICTEMAIL} --subject "Dictation from ${NAME} Attached")
exten => *35,n,Playback(dictation-sent)
exten => *35,n,Macro(hangupcall,)
; end of [app-dictate-send]
Você verá que o /var/lib/asterisk/bin/audio-email.pl é referenciado. A função é executada linha por linha, portanto, se alguém travar (ou seja, a linha 8), o arquivo .pl nunca será disparado. Mas antes que essa função funcione, ela precisa ser incluída assim:
include => app-dictate-send
Não vou imprimir o arquivo .pl aqui. Se você pode escrever um arquivo pl que abaixará o volume no jukebox do seu escritório quando você executá-lo manualmente, você pode definitivamente configurar o Asterisk para disparar o pl quando você receber uma chamada.
Dê uma olhada no /var/lib/asterisk/bin/fax-process.pl para ver como o asterisco dispara os e-mails.
Agora, você provavelmente desejará ajustar o primeiro arquivo mencionado acima: /etc/asterisk/extensions.conf. Este arquivo informa ao Asterisk o que fazer quando as chamadas chegam pela primeira vez. Dê uma olhada no topo do arquivo para isso:
[from-did-direct]
include => ext-findmefollow
include => ext-local
Você pode criar algo como "turn_down_music.pl" e incluí-lo em uma função como [app-lower-music]. Você poderia então incluí-lo com:
[from-did-direct]
include => app-lower-music
include => ext-findmefollow
include => ext-local
Observe que o arquivo [ext-local] está definido no arquivo extensions_additional.conf, mas referenciado no arquivo extensions.conf. Você pode criar seu próprio arquivo de extensões personalizadas e referenciá-lo no arquivo extensions.conf assim:
#include extensions_custom.conf
#include extensions_music.conf
Observe também que # não comenta linhas. Em vez de ; linhas de comentário para fora.
Eu ganhei muito com esses dois livros:
Boa sorte!