]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
[core] Fix wrong reason code for group call coverity
authorZvonimir Bužanić <zbuzanic@gmail.com>
Wed, 26 Oct 2022 17:53:01 +0000 (19:53 +0200)
committerGitHub <noreply@github.com>
Wed, 26 Oct 2022 17:53:01 +0000 (20:53 +0300)
src/switch_ivr_originate.c

index c4f4bfa2b240698c3aeee831db54346ecedfa6e0..63a0911929cd07ae8ffd62ee290935bacc4295a4 100644 (file)
@@ -1795,7 +1795,14 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_enterprise_originate(switch_core_sess
                if (cancel_cause && *cancel_cause > 0) {
                        handles[i].cancel_cause = *cancel_cause;
                } else {
-                       handles[i].cancel_cause = SWITCH_CAUSE_LOSE_RACE;
+                       /* Was this call taken by another destination? */
+                       if (hp != NULL && hp->cause == SWITCH_CAUSE_SUCCESS) {
+                               /* Yes, the race was lost */
+                               handles[i].cancel_cause = SWITCH_CAUSE_LOSE_RACE;
+                       } else {
+                               /* No, something else happened, probably Originator Cancel */
+                               handles[i].cancel_cause = SWITCH_CAUSE_ORIGINATOR_CANCEL;
+                       }
                }
        }