diff options
-rwxr-xr-x | channels/chan_oss.c | 10 | ||||
-rwxr-xr-x | include/asterisk/adsi.h | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/channels/chan_oss.c b/channels/chan_oss.c index 3959cda13..297c578c1 100755 --- a/channels/chan_oss.c +++ b/channels/chan_oss.c @@ -476,8 +476,14 @@ static int oss_hangup(struct ast_channel *c) needhangup = 0; needanswer = 0; if (hookstate) { - res = 2; - write(sndcmd[1], &res, sizeof(res)); + if (autoanswer) { + /* Assume auto-hangup too */ + hookstate = 0; + } else { + /* Make congestion noise */ + res = 2; + write(sndcmd[1], &res, sizeof(res)); + } } return 0; } diff --git a/include/asterisk/adsi.h b/include/asterisk/adsi.h index a3d538d9e..5438e48d0 100755 --- a/include/asterisk/adsi.h +++ b/include/asterisk/adsi.h @@ -77,7 +77,7 @@ #define ADSI_SWITCH_TO_DATA2 0x92 /* Switch CPE to data mode */ #define ADSI_SWITCH_TO_VOICE2 0x93 /* Switch CPE to voice mode */ #define ADSI_DISP_CALL_BUF 0x94 /* Display specified call buffer */ -#define ADSI_CLEAR_CALL_BUF 0x95 /* Clear specified call buffer */ +#define ADSI_CLEAR_CALL_B 0x95 /* Clear specified call buffer */ #ifdef __ADSI_CPE /* These messages are reserved for the ADSI CPE only */ |