[mod_conference] Set conference vars from core/channel variables
This commit is contained in:
parent
4c781e2b5f
commit
4f123c4682
|
@ -2680,6 +2680,22 @@ const char *conference_get_variable(conference_obj_t *conference, const char *va
|
||||||
return rval;
|
return rval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void check_var_event(conference_obj_t *conference, switch_event_t *var_event)
|
||||||
|
{
|
||||||
|
switch_event_header_t *hi = NULL;
|
||||||
|
|
||||||
|
for (hi = var_event->headers; hi; hi = hi->next) {
|
||||||
|
char *vvar = hi->name;
|
||||||
|
char *vval = hi->value;
|
||||||
|
if (vvar && vval && !strncasecmp(vvar, "confvar_", 8)) {
|
||||||
|
vvar += 8;
|
||||||
|
if (vvar) {
|
||||||
|
conference_set_variable(conference, vvar, vval);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* create a new conferene with a specific profile */
|
/* create a new conferene with a specific profile */
|
||||||
conference_obj_t *conference_new(char *name, conference_xml_cfg_t cfg, switch_core_session_t *session, switch_memory_pool_t *pool)
|
conference_obj_t *conference_new(char *name, conference_xml_cfg_t cfg, switch_core_session_t *session, switch_memory_pool_t *pool)
|
||||||
{
|
{
|
||||||
|
@ -2784,6 +2800,7 @@ conference_obj_t *conference_new(char *name, conference_xml_cfg_t cfg, switch_co
|
||||||
char *video_codec_config_profile_name = NULL;
|
char *video_codec_config_profile_name = NULL;
|
||||||
int tmp;
|
int tmp;
|
||||||
int heartbeat_period_sec = 0;
|
int heartbeat_period_sec = 0;
|
||||||
|
switch_event_t *var_event = NULL;
|
||||||
|
|
||||||
/* Validate the conference name */
|
/* Validate the conference name */
|
||||||
if (zstr(name)) {
|
if (zstr(name)) {
|
||||||
|
@ -3689,6 +3706,14 @@ conference_obj_t *conference_new(char *name, conference_xml_cfg_t cfg, switch_co
|
||||||
switch_mutex_init(&conference->member_mutex, SWITCH_MUTEX_NESTED, conference->pool);
|
switch_mutex_init(&conference->member_mutex, SWITCH_MUTEX_NESTED, conference->pool);
|
||||||
switch_mutex_init(&conference->canvas_mutex, SWITCH_MUTEX_NESTED, conference->pool);
|
switch_mutex_init(&conference->canvas_mutex, SWITCH_MUTEX_NESTED, conference->pool);
|
||||||
|
|
||||||
|
switch_core_get_variables(&var_event);
|
||||||
|
check_var_event(conference, var_event);
|
||||||
|
switch_event_destroy(&var_event);
|
||||||
|
|
||||||
|
switch_channel_get_variables(channel, &var_event);
|
||||||
|
check_var_event(conference, var_event);
|
||||||
|
switch_event_destroy(&var_event);
|
||||||
|
|
||||||
switch_mutex_lock(conference_globals.hash_mutex);
|
switch_mutex_lock(conference_globals.hash_mutex);
|
||||||
conference_utils_set_flag(conference, CFLAG_INHASH);
|
conference_utils_set_flag(conference, CFLAG_INHASH);
|
||||||
switch_core_hash_insert(conference_globals.conference_hash, conference->name, conference);
|
switch_core_hash_insert(conference_globals.conference_hash, conference->name, conference);
|
||||||
|
|
Loading…
Reference in New Issue