]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
issue #5672
authorKevin P. Fleming <kpfleming@digium.com>
Tue, 15 Nov 2005 20:56:19 +0000 (20:56 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Tue, 15 Nov 2005 20:56:19 +0000 (20:56 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7106 65c4cc65-6c06-0410-ace0-fbb531ad65f3

ChangeLog
channels/chan_alsa.c
channels/chan_oss_old.c

index da22209eb0e015402543df8df654a13a4b65c931..bfa067675dbd91a07704115ab16e0ec6a690d930 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2005-11-15  Kevin P. Fleming  <kpfleming@limerick.digium.com>
 
+       * channels/chan_alsa.c (alsa_hangup): handle autohangup properly (issue #5672)
+
        * channels/chan_misdn.c (and other files): various fixes (issue #5739)
 
        * channels/chan_sip.c (handle_request_info): properly forward 'flash' events received via SIP INFO (issue #5751, different patch)
index 961abef5444ed8ff9ddbae2776a66f78a5f4c716..9bef8f3c72e023327b9a013d34c1ee510c76fdb5 100755 (executable)
@@ -582,8 +582,14 @@ static int alsa_hangup(struct ast_channel *c)
        usecnt--;
        ast_mutex_unlock(&usecnt_lock);
        if (hookstate) {
-               res = 2;
-               write(sndcmd[1], &res, sizeof(res));
+               if (autoanswer) {
+                       hookstate = 0;
+               } else {
+                       /* Congestion noise */
+                       res = 2;
+                       write(sndcmd[1], &res, sizeof(res));
+                       hookstate = 0;
+               }
        }
        snd_pcm_drop(alsa.icard);
        ast_mutex_unlock(&alsalock);
index 1450703b4a75c0f1e27ed6f23d6acfbe7ac511a2..c1613d3b66c37d26f6e9e2455ff391ca26316818 100755 (executable)
@@ -565,6 +565,7 @@ static int oss_hangup(struct ast_channel *c)
                        /* Make congestion noise */
                        res = 2;
                        write(sndcmd[1], &res, sizeof(res));
+                       hookstate = 0;
                }
        }
        return 0;