From c34ec47577e0fa8a9ca64b0dd8158a284eed3162 Mon Sep 17 00:00:00 2001 From: Jared Smith <jaredsmith@jaredsmith.net> Date: Mon, 29 Mar 2010 14:07:44 +0000 Subject: [PATCH] This patch adds custom device state handling for ConfBridge conferences, matching the devstate handling of the MeetMe conferences. Review: https://reviewboard.asterisk.org/r/572/ Closes issue #16972 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@255281 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- CHANGES | 2 ++ apps/app_confbridge.c | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/CHANGES b/CHANGES index 950741072a..8e1e962594 100644 --- a/CHANGES +++ b/CHANGES @@ -141,6 +141,8 @@ Applications type features. * Added new application VMSayName that will play the recorded name of the voicemail user if it exists, otherwise will play the mailbox number. + * Added custom device states to ConfBridge bridges. Use 'confbridge:<name>' to + retrieve state for a particular bridge, where <name> is the conference name Dialplan Functions ------------------ diff --git a/apps/app_confbridge.c b/apps/app_confbridge.c index 6ea2ac47fe..88fc81a2d1 100644 --- a/apps/app_confbridge.c +++ b/apps/app_confbridge.c @@ -463,6 +463,11 @@ static struct conference_bridge *join_conference_bridge(const char *name, struct conference_bridge->markedusers++; } + /* Set the device state for this conference */ + if (conference_bridge->users == 1) { + ast_devstate_changed(AST_DEVICE_INUSE, "confbridge:%s", conference_bridge->name); + } + /* If the caller is a marked user or is waiting for a marked user to enter pass 'em off, otherwise pass them off to do regular joining stuff */ if (ast_test_flag(&conference_bridge_user->flags, OPTION_MARKEDUSER | OPTION_WAITMARKED)) { post_join_marked(conference_bridge, conference_bridge_user); @@ -533,6 +538,9 @@ static void leave_conference_bridge(struct conference_bridge *conference_bridge } } } else { + /* Set device state to "not in use" */ + ast_devstate_changed(AST_DEVICE_NOT_INUSE, "confbridge:%s", conference_bridge->name); + ao2_unlink(conference_bridges, conference_bridge); } -- GitLab