aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_oss.c
diff options
context:
space:
mode:
Diffstat (limited to 'channels/chan_oss.c')
-rwxr-xr-xchannels/chan_oss.c6
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;