diff options
Diffstat (limited to 'channels/chan_oss.c')
-rwxr-xr-x | channels/chan_oss.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/channels/chan_oss.c b/channels/chan_oss.c index 86370f971..0068a0fc3 100755 --- a/channels/chan_oss.c +++ b/channels/chan_oss.c @@ -329,7 +329,11 @@ static int setformat(void) return -1; } res = ioctl(fd, SNDCTL_DSP_SETDUPLEX, 0); - if (res >= 0) { + + /* Check to see if duplex set (FreeBSD Bug)*/ + res = ioctl(fd, SNDCTL_DSP_GETCAPS, &fmt); + + if ((fmt & DSP_CAP_DUPLEX) && !res) { if (option_verbose > 1) ast_verbose(VERBOSE_PREFIX_2 "Console is full duplex\n"); full_duplex = -1; |