chan_alsa가 로드되면 별표는 ALSA 장치를 잠급니다.

chan_alsa가 로드되면 별표는 ALSA 장치를 잠급니다.

오디오를 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

이는 동시 액세스를 허용하는 믹서가 필요하다는 것을 의미합니다.

그러나 귀하의 임무는 보건부를 통해 쉽게 수행될 수 있습니다.

관련 정보