summaryrefslogtreecommitdiff
path: root/channels/chan_skinny.c
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2013-10-02 16:23:34 +0000
committerJoshua Colp <jcolp@digium.com>2013-10-02 16:23:34 +0000
commitc1235f2639023a9e450cafcdf8bd35cc304d9e53 (patch)
treeb48cb7bb27925ff48e4f807dda8ee9588fd36031 /channels/chan_skinny.c
parent424c0f2eb7ff45a06a21b2d81532ac49e24e8b60 (diff)
Reduce channel snapshot creation and publishing by up to 50%.
This change introduces the ability to stage channel snapshot creation and publishing by suppressing the implicit creation and publishing that some functions have. Once all operations are executed the staging is marked as done and a single snapshot is created and published. Review: https://reviewboard.asterisk.org/r/2889/ ........ Merged revisions 400265 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@400266 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_skinny.c')
-rw-r--r--channels/chan_skinny.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c
index 7cf592a26..496de1866 100644
--- a/channels/chan_skinny.c
+++ b/channels/chan_skinny.c
@@ -82,6 +82,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#include "asterisk/stasis_endpoints.h"
#include "asterisk/bridge.h"
#include "asterisk/parking.h"
+#include "asterisk/stasis_channels.h"
/*** DOCUMENTATION
<manager name="SKINNYdevices" language="en_US">
@@ -5423,6 +5424,7 @@ static struct ast_channel *skinny_new(struct skinny_line *l, struct skinny_subli
AST_LIST_INSERT_HEAD(&l->sub, sub, list);
//l->activesub = sub;
}
+ ast_channel_stage_snapshot(tmp);
ast_channel_tech_set(tmp, &skinny_tech);
ast_channel_tech_pvt_set(tmp, sub);
ast_format_cap_copy(ast_channel_nativeformats(tmp), l->cap);
@@ -5496,6 +5498,8 @@ static struct ast_channel *skinny_new(struct skinny_line *l, struct skinny_subli
for (v = l->chanvars ; v ; v = v->next)
pbx_builtin_setvar_helper(tmp, v->name, v->value);
+ ast_channel_stage_snapshot_done(tmp);
+
if (state != AST_STATE_DOWN) {
if (ast_pbx_start(tmp)) {
ast_log(LOG_WARNING, "Unable to start PBX on %s\n", ast_channel_name(tmp));