オーディオをALSAデバイスにルーティングする拡張900を実装しています。また、ALSA経由で音楽を再生するmpdを使用しています。
スター15、OpenWrt 18.06
mpd.conf
:
log_file "syslog"
bind_to_address "127.0.0.1"
bind_to_address "192.168.1.18"
input {
plugin "curl"
}
audio_output {
type "alsa"
name "sun4icodec"
device "hw:0,0"
mixer_control "Power Amplifier"
}
extensions.conf
拡張に関連する部分は次のとおりです。
;SIP 900
exten => 900,1,NoOp(Testing calls to speakers. Dialing ${EXTEN} from ${CALLERID})
same => n,System(kill -9 `pgrep mpg123`)
same => n,System(amixer set 'Power Amplifier' 80%)
same => n,System(/usr/bin/aplay /var/lib/myapp/sounds/tone3.wav &)
same => n,System(sleep(4))
same => n,NoOp(Testing calls to speakers. Dialing ${EXTEN} from ${CALLERID})
same => n,Dial(CONSOLE/ALSA)
same => n,Hangup()
same => n,System(sleep(1))
same => n,System(amixer set 'Power Amplifier' 80%;)
same => n,System(sleep(4))
chan_alsaがロードされると、ALSAデバイスがロックされてmpdで何かを再生すると、次のエラーが発生します。
aplay: main:722: audio open error: Resource busy
私はこれに会ったVoIP情報しかし、これを実装する方法がわかりません。ソフトウェアとハードウェアの混在を調整する必要があるかどうかはわかりません。
出力デバイス=<ALSA デバイス名>
サウンドの再生(つまりリスニング)に使用されるALSAデバイスの名前を示します。ここで指定されたデバイス名は変更されずにALSAサウンドレイヤに渡されるため、すべてのALSAデバイス名が有効である必要があります。 警告する: Asterisk は、Asterisk プロセスの全期間中、ここで指定された ALSA デバイスをロックできます。 Asteriskが出力デバイスを独占しないようにするには、ソフトウェアおよび/またはハードウェアのミキシング設定を調整する必要があります。
答え1
これは、同時アクセスを可能にするミキサーが必要であることを意味します。
ただし、あなたの使命は保健省を通じて簡単に行うことができます。