diff --git a/channels/chan_oss.c b/channels/chan_oss.c index 3959cda13d28c2351d4ec3e39a7ee258d9639164..297c578c1e692fe440bb175f7a8e36d144e1716c 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 a3d538d9e1e21ef7b3b75f92fd624eed60bbdbb1..5438e48d0ca8ce48cb141841a32ccb89eac8dc42 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 */