]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
app_followme: fix issue with enable_callee_prompt=no (#88)
authoralex2grad <alex2grad@users.noreply.github.com>
Mon, 5 Jun 2023 18:23:03 +0000 (14:23 -0400)
committerGitHub <noreply@github.com>
Mon, 5 Jun 2023 18:23:03 +0000 (12:23 -0600)
* app_followme: fix issue with enable_callee_prompt=no

If the FollowMe option 'enable_callee_prompt' is set to 'no' then Asterisk
incorrectly sets a winner channel to the channel from which any control frame was read.

This fix sets the winner channel only to the answered channel.

Resolves: #87

ASTERISK-30326

apps/app_followme.c

index 4b7862d03fbc24ec6cbaec5ce1bea59b6be50434..31ba9b8a56585b737e04c9ff50da7d18495041c3 100644 (file)
@@ -836,8 +836,9 @@ static struct ast_channel *wait_for_winner(struct findme_user_listptr *findme_us
                                                                }
                                                        }
                                                } else {
-                                                       ast_verb(3, "Skip playback of caller name / norecording\n");
-                                                       tmpuser->state = 2;
+                                                       ast_debug(1, "Taking call with no prompt\n");
+                                                       ast_frfree(f);
+                                                       return tmpuser->ochan;
                                                }
                                                break;
                                        case AST_CONTROL_BUSY:
@@ -964,11 +965,6 @@ static struct ast_channel *wait_for_winner(struct findme_user_listptr *findme_us
                                                break;
                                        }
                                }
-                               if (!tpargs->enable_callee_prompt && tmpuser) {
-                                       ast_debug(1, "Taking call with no prompt\n");
-                                       ast_frfree(f);
-                                       return tmpuser->ochan;
-                               }
                                if (tmpuser && tmpuser->state == 3 && f->frametype == AST_FRAME_DTMF) {
                                        int cmp_len;