asterisco envia o comando mudo para a jukebox na chamada recebida

2

Estamos testando um servidor Asterisk Now para substituir nosso sistema de PBX antigo. Um dos recursos "legais" seria a capacidade de pausar ou diminuir o volume na jukebox do escritório se uma chamada for detectada.

Atualmente, executamos uma jukebox do Linux que reproduz músicas dos alto-falantes usando o mpd e pode ser controlada pelo cliente mpc. Podemos emitir manualmente o seguinte comando para conseguir isso:

mpc volume 20

Alguém sabe como obter o asterisco para executar este comando ou alguma ação que poderíamos conectar quando uma chamada telefônica é recebida em ramais específicos?

    
por Jona 05.02.2010 / 12:30

2 respostas

1

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!

    
por 05.02.2010 / 16:36
0

Se este AsteriskNow é similar ao Elastix, você deve definir uma nova seção em extensions_custom.conf como:

[from-pstn-custom]
exten = 0123456,n,System(/var/lib/asterisk/bin/whatever-command.pl)

O primeiro número é o seu DID de entrada, "n" é a ordem dos comandos de execução (este normalmente vai para o início da lista, porque o from-pstn-custom está incluído no topo). Isso também pode ser resolvido com scripts AGI, mas isso pode ser um exagero para você.

    
por 31.05.2010 / 14:17