From: Andrey Volk Date: Thu, 27 Oct 2022 20:14:48 +0000 (+0300) Subject: [Core] Improve performance avoiding SWITCH_STACK_NODUP check all the time. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f5291682f28d2c1af8c82f655e08746b4e41f094;p=thirdparty%2Ffreeswitch.git [Core] Improve performance avoiding SWITCH_STACK_NODUP check all the time. --- diff --git a/build/standalone_module/mod_skel.c b/build/standalone_module/mod_skel.c index 38bf4ac099..57fc8bfc9a 100644 --- a/build/standalone_module/mod_skel.c +++ b/build/standalone_module/mod_skel.c @@ -180,8 +180,8 @@ SWITCH_STANDARD_API(skel_function) /* populate the event with some headers */ - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "testing", "true"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "foo", "bar"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "testing", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "foo", "bar"); for (x = 0; x < 10; x++) { char name[128]; diff --git a/src/include/switch_event.h b/src/include/switch_event.h index f2ac381ee8..a302ec3160 100644 --- a/src/include/switch_event.h +++ b/src/include/switch_event.h @@ -206,6 +206,7 @@ SWITCH_DECLARE(switch_status_t) switch_event_set_subclass_name(switch_event_t *e \return SWITCH_STATUS_SUCCESS if the header was added */ SWITCH_DECLARE(switch_status_t) switch_event_add_header_string(switch_event_t *event, switch_stack_t stack, const char *header_name, const char *data); +SWITCH_DECLARE(switch_status_t) switch_event_add_header_string_dup(switch_event_t *event, switch_stack_t stack, const char *header_name, const char *data); SWITCH_DECLARE(switch_status_t) switch_event_del_header_val(switch_event_t *event, const char *header_name, const char *val); #define switch_event_del_header(_e, _h) switch_event_del_header_val(_e, _h, NULL) diff --git a/src/include/test/switch_test.h b/src/include/test/switch_test.h index db5f4f7a7d..efd26149c7 100644 --- a/src/include/test/switch_test.h +++ b/src/include/test/switch_test.h @@ -512,7 +512,7 @@ static switch_status_t fst_init_core_and_modload(const char *confdir, const char fst_requires_module("mod_sndfile"); \ fst_requires(switch_core_running()); \ fst_requires(switch_event_create_plain(&fst_originate_vars, SWITCH_EVENT_CHANNEL_DATA) == SWITCH_STATUS_SUCCESS); \ - switch_event_add_header_string(fst_originate_vars, SWITCH_STACK_BOTTOM, "origination_caller_id_number", "+15551112222"); \ + switch_event_add_header_string_dup(fst_originate_vars, SWITCH_STACK_BOTTOM, "origination_caller_id_number", "+15551112222"); \ switch_event_add_header(fst_originate_vars, SWITCH_STACK_BOTTOM, "rate", "%d", rate); \ if (switch_ivr_originate(NULL, &fst_session, &fst_cause, "{null_video_codec=" video_codec "}null/+15553334444", 2, NULL, NULL, NULL, NULL, fst_originate_vars, SOF_NONE, NULL, NULL) == SWITCH_STATUS_SUCCESS && fst_session) { \ switch_memory_pool_t *fst_session_pool = switch_core_session_get_pool(fst_session); \ diff --git a/src/mod/applications/mod_av/avcodec.c b/src/mod/applications/mod_av/avcodec.c index a9f6d0927e..0be84b7e7e 100644 --- a/src/mod/applications/mod_av/avcodec.c +++ b/src/mod/applications/mod_av/avcodec.c @@ -2173,7 +2173,7 @@ static void parse_profile(avcodec_profile_t *aprofile, switch_xml_t profile) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s: %s\n", name, value); - switch_event_add_header_string(aprofile->options, SWITCH_STACK_BOTTOM, name, value); + switch_event_add_header_string_dup(aprofile->options, SWITCH_STACK_BOTTOM, name, value); } } // for options } @@ -2203,7 +2203,7 @@ static void parse_codecs(avcodec_profile_t *aprofile, switch_xml_t codecs) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "codec: %s, profile: %s\n", codec_name, profile_name); - switch_event_add_header_string(aprofile->codecs, SWITCH_STACK_BOTTOM, codec_name, profile_name); + switch_event_add_header_string_dup(aprofile->codecs, SWITCH_STACK_BOTTOM, codec_name, profile_name); } } diff --git a/src/mod/applications/mod_avmd/mod_avmd.c b/src/mod/applications/mod_avmd/mod_avmd.c index dde3dfbf93..eab77d6584 100644 --- a/src/mod/applications/mod_avmd/mod_avmd.c +++ b/src/mod/applications/mod_avmd/mod_avmd.c @@ -701,91 +701,91 @@ static void avmd_fire_event(enum avmd_event type, switch_core_session_t *fs_s, d if (status != SWITCH_STATUS_SUCCESS) { return; } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(fs_s)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Call-command", "avmd"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(fs_s)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Call-command", "avmd"); switch (type) { case AVMD_EVENT_BEEP: - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Beep-Status", "DETECTED"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Beep-Status", "DETECTED"); res = snprintf(buf, AVMD_CHAR_BUF_LEN, "%f", freq); if (res < 0 || res > AVMD_CHAR_BUF_LEN - 1) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_s), SWITCH_LOG_ERROR, "Frequency truncated [%s], [%d] attempted!\n", buf, res); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Frequency", "ERROR (TRUNCATED)"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Frequency", "ERROR (TRUNCATED)"); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Frequency", buf); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Frequency", buf); res = snprintf(buf, AVMD_CHAR_BUF_LEN, "%f", v_freq); if (res < 0 || res > AVMD_CHAR_BUF_LEN - 1) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_s), SWITCH_LOG_ERROR, "Error, truncated [%s], [%d] attempeted!\n", buf, res); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Frequency-variance", "ERROR (TRUNCATED)"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Frequency-variance", "ERROR (TRUNCATED)"); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Frequency-variance", buf); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Frequency-variance", buf); res = snprintf(buf, AVMD_CHAR_BUF_LEN, "%f", amp); if (res < 0 || res > AVMD_CHAR_BUF_LEN - 1) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_s), SWITCH_LOG_ERROR, "Amplitude truncated [%s], [%d] attempted!\n", buf, res); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Amplitude", "ERROR (TRUNCATED)"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Amplitude", "ERROR (TRUNCATED)"); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Amplitude", buf); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Amplitude", buf); res = snprintf(buf, AVMD_CHAR_BUF_LEN, "%f", v_amp); if (res < 0 || res > AVMD_CHAR_BUF_LEN - 1) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_s), SWITCH_LOG_ERROR, "Error, truncated [%s], [%d] attempeted!\n", buf, res); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Amplitude-variance", "ERROR (TRUNCATED)"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Amplitude-variance", "ERROR (TRUNCATED)"); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Amplitude-variance", buf); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Amplitude-variance", buf); detection_time = detection_stop_time - detection_start_time; res = snprintf(buf, AVMD_CHAR_BUF_LEN, "%" PRId64 "", detection_time); if (res < 0 || res > AVMD_CHAR_BUF_LEN - 1) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_s), SWITCH_LOG_ERROR, "Detection time truncated [%s], [%d] attempted!\n", buf, res); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Detection-time", "ERROR (TRUNCATED)"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Detection-time", "ERROR (TRUNCATED)"); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Detection-time", buf); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Detection-time", buf); res = snprintf(buf, AVMD_CHAR_BUF_LEN, "%u", resolution); if (res < 0 || res > AVMD_CHAR_BUF_LEN - 1) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_s), SWITCH_LOG_ERROR, "Error, truncated [%s], [%d] attempeted!\n", buf, res); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Detector-resolution", "ERROR (TRUNCATED)"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Detector-resolution", "ERROR (TRUNCATED)"); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Detector-resolution", buf); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Detector-resolution", buf); res = snprintf(buf, AVMD_CHAR_BUF_LEN, "%u", offset); if (res < 0 || res > AVMD_CHAR_BUF_LEN - 1) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_s), SWITCH_LOG_ERROR, "Error, truncated [%s], [%d] attempeted!\n", buf, res); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Detector-offset", "ERROR (TRUNCATED)"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Detector-offset", "ERROR (TRUNCATED)"); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Detector-offset", buf); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Detector-offset", buf); res = snprintf(buf, AVMD_CHAR_BUF_LEN, "%u", idx); if (res < 0 || res > AVMD_CHAR_BUF_LEN - 1) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_s), SWITCH_LOG_ERROR, "Error, truncated [%s], [%d] attempeted!\n", buf, res); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Detector-index", "ERROR (TRUNCATED)"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Detector-index", "ERROR (TRUNCATED)"); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Detector-index", buf); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Detector-index", buf); break; case AVMD_EVENT_SESSION_START: res = snprintf(buf, AVMD_CHAR_BUF_LEN, "%" PRId64 "", start_time); if (res < 0 || res > AVMD_CHAR_BUF_LEN - 1) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_s), SWITCH_LOG_ERROR, "Start time truncated [%s], [%d] attempted!\n", buf, res); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Start-time", "ERROR (TRUNCATED)"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Start-time", "ERROR (TRUNCATED)"); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Start-time", buf); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Start-time", buf); break; case AVMD_EVENT_SESSION_STOP: - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Beep-Status", beep_status == BEEP_DETECTED ? "DETECTED" : "NOTDETECTED"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Beep-Status", beep_status == BEEP_DETECTED ? "DETECTED" : "NOTDETECTED"); if (info == 0) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Stop-status", "ERROR (AVMD SESSION OBJECT NOT FOUND IN MEDIA BUG)"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Stop-status", "ERROR (AVMD SESSION OBJECT NOT FOUND IN MEDIA BUG)"); } total_time = stop_time - start_time; res = snprintf(buf, AVMD_CHAR_BUF_LEN, "%" PRId64 "", total_time); if (res < 0 || res > AVMD_CHAR_BUF_LEN - 1) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_s), SWITCH_LOG_ERROR, "Total time truncated [%s], [%d] attempted!\n", buf, res); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Total-time", "ERROR (TRUNCATED)"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Total-time", "ERROR (TRUNCATED)"); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Total-time", buf); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Total-time", buf); break; default: diff --git a/src/mod/applications/mod_callcenter/mod_callcenter.c b/src/mod/applications/mod_callcenter/mod_callcenter.c index fd7bb3dafa..828a5c0300 100644 --- a/src/mod/applications/mod_callcenter/mod_callcenter.c +++ b/src/mod/applications/mod_callcenter/mod_callcenter.c @@ -723,7 +723,7 @@ static cc_queue_t *load_queue(const char *queue_name, switch_bool_t request_agen switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(params); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "CC-Queue", queue_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "CC-Queue", queue_name); if (x_queues_cfg) { x_queues = x_queues_cfg; @@ -876,10 +876,10 @@ int cc_queue_count(const char *queue) count = atoi(res); if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CALLCENTER_EVENT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Queue", queue); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Action", "members-count"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Count", res); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Selection", event_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Queue", queue); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Action", "members-count"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Count", res); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Selection", event_name); switch_event_fire(&event); } } @@ -913,9 +913,9 @@ cc_status_t cc_agent_add(const char *agent, const char *type) switch_safe_free(sql); if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CALLCENTER_EVENT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent", agent); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent-Type", type); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Action", "agent-add"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent", agent); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent-Type", type); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Action", "agent-add"); switch_event_fire(&event); } @@ -974,9 +974,9 @@ cc_status_t cc_agent_get(const char *key, const char *agent, char *ret_result, s } else { switch_snprintf(tmpname, sizeof(tmpname), "CC-Agent-%c%s", (char) switch_toupper(key[0]), key+1); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent", agent); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent", agent); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "CC-Action", "agent-%s-get", key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, tmpname, res); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, tmpname, res); switch_event_fire(&event); } @@ -1041,9 +1041,9 @@ cc_status_t cc_agent_update(const char *key, const char *value, const char *agen result = CC_STATUS_SUCCESS; if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CALLCENTER_EVENT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent", agent); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Action", "agent-status-change"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent-Status", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent", agent); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Action", "agent-status-change"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent-Status", value); switch_event_fire(&event); } @@ -1065,9 +1065,9 @@ cc_status_t cc_agent_update(const char *key, const char *value, const char *agen result = CC_STATUS_SUCCESS; if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CALLCENTER_EVENT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent", agent); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Action", "agent-state-change"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent-State", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent", agent); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Action", "agent-state-change"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent-State", value); switch_event_fire(&event); } @@ -1089,9 +1089,9 @@ cc_status_t cc_agent_update(const char *key, const char *value, const char *agen result = CC_STATUS_SUCCESS; if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CALLCENTER_EVENT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent", agent); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Action", "agent-contact-change"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent-Contact", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent", agent); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Action", "agent-contact-change"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent-Contact", value); switch_event_fire(&event); } } else if (!strcasecmp(key, "ready_time")) { @@ -1158,9 +1158,9 @@ cc_status_t cc_agent_update(const char *key, const char *value, const char *agen if (cc_execute_sql_affected_rows(sql) > 0) { result = CC_STATUS_SUCCESS; if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CALLCENTER_EVENT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent", agent); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Action", "agent-state-change"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent-State", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent", agent); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Action", "agent-state-change"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent-State", value); switch_event_fire(&event); } } else { @@ -1719,16 +1719,16 @@ static void *SWITCH_THREAD_FUNC outbound_agent_thread_run(switch_thread_t *threa switch_caller_profile_t *member_profile = switch_channel_get_caller_profile(member_channel); const char *member_dnis = member_profile->rdnis; - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Queue", h->queue_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Action", "agent-offering"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent", h->agent_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent-Type", h->agent_type); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent-System", h->agent_system); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-UUID", h->member_uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-Session-UUID", h->member_session_uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Name", h->member_cid_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Number", h->member_cid_number); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-DNIS", member_dnis); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Queue", h->queue_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Action", "agent-offering"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent", h->agent_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent-Type", h->agent_type); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent-System", h->agent_system); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-UUID", h->member_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-Session-UUID", h->member_session_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Name", h->member_cid_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Number", h->member_cid_number); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-DNIS", member_dnis); switch_event_fire(&event); } @@ -1936,19 +1936,19 @@ static void *SWITCH_THREAD_FUNC outbound_agent_thread_run(switch_thread_t *threa const char *member_dnis = member_profile->rdnis; switch_channel_event_set_data(agent_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Queue", h->queue_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Action", "bridge-agent-start"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent", h->agent_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent-System", h->agent_system); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent-UUID", agent_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Queue", h->queue_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Action", "bridge-agent-start"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent", h->agent_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent-System", h->agent_system); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent-UUID", agent_uuid); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "CC-Agent-Called-Time", "%" SWITCH_TIME_T_FMT, t_agent_called); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "CC-Agent-Answered-Time", "%" SWITCH_TIME_T_FMT, t_agent_answered); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "CC-Member-Joined-Time", "%" SWITCH_TIME_T_FMT, t_member_called); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-UUID", h->member_uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-Session-UUID", h->member_session_uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Name", h->member_cid_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Number", h->member_cid_number); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-DNIS", member_dnis); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-UUID", h->member_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-Session-UUID", h->member_session_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Name", h->member_cid_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Number", h->member_cid_number); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-DNIS", member_dnis); switch_event_fire(&event); } @@ -2048,21 +2048,21 @@ static void *SWITCH_THREAD_FUNC outbound_agent_thread_run(switch_thread_t *threa if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CALLCENTER_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(agent_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Queue", h->queue_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Action", "bridge-agent-end"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Hangup-Cause", switch_channel_cause2str(cause)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent", h->agent_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent-System", h->agent_system); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent-UUID", agent_uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent-Bridged", bridged ? "true" : "false"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Queue", h->queue_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Action", "bridge-agent-end"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Hangup-Cause", switch_channel_cause2str(cause)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent", h->agent_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent-System", h->agent_system); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent-UUID", agent_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent-Bridged", bridged ? "true" : "false"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "CC-Agent-Called-Time", "%" SWITCH_TIME_T_FMT, t_agent_called); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "CC-Agent-Answered-Time", "%" SWITCH_TIME_T_FMT, t_agent_answered); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "CC-Member-Joined-Time", "%" SWITCH_TIME_T_FMT, t_member_called); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "CC-Bridge-Terminated-Time", "%" SWITCH_TIME_T_FMT, local_epoch_time_now(NULL)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-UUID", h->member_uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-Session-UUID", h->member_session_uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Name", h->member_cid_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Number", h->member_cid_number); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-UUID", h->member_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-Session-UUID", h->member_session_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Name", h->member_cid_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Number", h->member_cid_number); switch_event_fire(&event); } if (bridged) { @@ -2084,14 +2084,14 @@ static void *SWITCH_THREAD_FUNC outbound_agent_thread_run(switch_thread_t *threa /* Caller off event */ if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CALLCENTER_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(member_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Queue", h->queue_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Action", "member-queue-end"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Hangup-Cause", + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Queue", h->queue_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Action", "member-queue-end"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Hangup-Cause", switch_channel_cause2str(cause)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Cause", "Terminated"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent", h->agent_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent-System", h->agent_system); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent-UUID", agent_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Cause", "Terminated"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent", h->agent_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent-System", h->agent_system); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent-UUID", agent_uuid); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "CC-Agent-Called-Time", "%" SWITCH_TIME_T_FMT, t_agent_called); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "CC-Agent-Answered-Time", "%" SWITCH_TIME_T_FMT, @@ -2100,11 +2100,11 @@ static void *SWITCH_THREAD_FUNC outbound_agent_thread_run(switch_thread_t *threa local_epoch_time_now(NULL)); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "CC-Member-Joined-Time", "%" SWITCH_TIME_T_FMT, t_member_called); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-UUID", h->member_uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-Session-UUID", + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-UUID", h->member_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-Session-UUID", h->member_session_uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Name", h->member_cid_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Number", + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Name", h->member_cid_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Number", h->member_cid_number); switch_event_fire(&event); } @@ -2161,12 +2161,12 @@ static void *SWITCH_THREAD_FUNC outbound_agent_thread_run(switch_thread_t *threa h->agent_name, h->max_no_answer, cc_agent_status2str(h->agent_no_answer_status)); if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CALLCENTER_EVENT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent", h->agent_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Action", "agent-max-no-answer"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent", h->agent_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Action", "agent-max-no-answer"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "CC-Agent-No-Answer-Count", "%d", h->max_no_answer); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent-No-Answer-Status", cc_agent_status2str(h->agent_no_answer_status)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-UUID", h->member_uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-Session-UUID", h->member_session_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent-No-Answer-Status", cc_agent_status2str(h->agent_no_answer_status)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-UUID", h->member_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-Session-UUID", h->member_session_uuid); switch_event_fire(&event); } @@ -2185,17 +2185,17 @@ static void *SWITCH_THREAD_FUNC outbound_agent_thread_run(switch_thread_t *threa /* Fire up event when contact agent fails */ if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CALLCENTER_EVENT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Queue", h->queue_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Action", "bridge-agent-fail"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Hangup-Cause", switch_channel_cause2str(cause)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent", h->agent_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Agent-System", h->agent_system); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Queue", h->queue_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Action", "bridge-agent-fail"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Hangup-Cause", switch_channel_cause2str(cause)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent", h->agent_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Agent-System", h->agent_system); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "CC-Agent-Called-Time", "%" SWITCH_TIME_T_FMT, t_agent_called); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "CC-Agent-Aborted-Time", "%" SWITCH_TIME_T_FMT, local_epoch_time_now(NULL)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-UUID", h->member_uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-Session-UUID", h->member_session_uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Name", h->member_cid_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Number", h->member_cid_number); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-UUID", h->member_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-Session-UUID", h->member_session_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Name", h->member_cid_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Number", h->member_cid_number); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "CC-Member-Joined-Time", "%" SWITCH_TIME_T_FMT, t_member_called); switch_event_fire(&event); } @@ -2898,9 +2898,9 @@ void *SWITCH_THREAD_FUNC cc_member_thread_run(switch_thread_t *thread, void *obj switch_event_t *event; if (switch_event_create(&event, SWITCH_EVENT_COMMAND) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-command", "execute"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "execute-app-name", "playback"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "execute-app-arg", "tone_stream://%(200,0,500,600,700)"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call-command", "execute"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "execute-app-name", "playback"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "execute-app-arg", "tone_stream://%(200,0,500,600,700)"); switch_core_session_queue_private_event(member_session, &event, SWITCH_TRUE); } */ @@ -3095,12 +3095,12 @@ SWITCH_STANDARD_APP(callcenter_function) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CALLCENTER_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(member_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Queue", queue_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Queue", queue_name); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "CC-Action", "member-queue-%s", (abandoned_epoch==0?"start":"resume")); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-UUID", member_uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-Session-UUID", member_session_uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Name", switch_str_nil(switch_channel_get_variable(member_channel, "caller_id_name"))); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Number", switch_str_nil(switch_channel_get_variable(member_channel, "caller_id_number"))); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-UUID", member_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-Session-UUID", member_session_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Name", switch_str_nil(switch_channel_get_variable(member_channel, "caller_id_name"))); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Number", switch_str_nil(switch_channel_get_variable(member_channel, "caller_id_number"))); switch_event_fire(&event); } @@ -3252,16 +3252,16 @@ SWITCH_STANDARD_APP(callcenter_function) /* Generate an event */ if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CALLCENTER_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(member_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Queue", queue_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Action", "member-queue-end"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Queue", queue_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Action", "member-queue-end"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "CC-Member-Leaving-Time", "%" SWITCH_TIME_T_FMT, local_epoch_time_now(NULL)); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "CC-Member-Joined-Time", "%" SWITCH_TIME_T_FMT, t_member_called); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Cause", "Cancel"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Cancel-Reason", cc_member_cancel_reason2str(h->member_cancel_reason)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-UUID", member_uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-Session-UUID", member_session_uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Name", switch_str_nil(switch_channel_get_variable(member_channel, "caller_id_name"))); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Number", switch_str_nil(switch_channel_get_variable(member_channel, "caller_id_number"))); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Cause", "Cancel"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Cancel-Reason", cc_member_cancel_reason2str(h->member_cancel_reason)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-UUID", member_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-Session-UUID", member_session_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Name", switch_str_nil(switch_channel_get_variable(member_channel, "caller_id_name"))); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CC-Member-CID-Number", switch_str_nil(switch_channel_get_variable(member_channel, "caller_id_number"))); switch_event_fire(&event); } @@ -3375,25 +3375,25 @@ static void cc_send_presence(const char *queue_name) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Queue has %d waiting calls.\n", count); if (switch_event_create(&send_event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(send_event, SWITCH_STACK_BOTTOM, "proto", "callcenter"); + switch_event_add_header_string_dup(send_event, SWITCH_STACK_BOTTOM, "proto", "callcenter"); switch_event_add_header(send_event, SWITCH_STACK_BOTTOM, "login", "%s", queue_name); - switch_event_add_header_string(send_event, SWITCH_STACK_BOTTOM, "from", queue_name); + switch_event_add_header_string_dup(send_event, SWITCH_STACK_BOTTOM, "from", queue_name); if (count > 0) { switch_event_add_header(send_event, SWITCH_STACK_BOTTOM, "force-status", "Active (%d waiting)", count); } else { - switch_event_add_header_string(send_event, SWITCH_STACK_BOTTOM, "force-status", "Idle"); + switch_event_add_header_string_dup(send_event, SWITCH_STACK_BOTTOM, "force-status", "Idle"); } - switch_event_add_header_string(send_event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); - switch_event_add_header_string(send_event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(send_event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(send_event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); + switch_event_add_header_string_dup(send_event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(send_event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_add_header(send_event, SWITCH_STACK_BOTTOM, "event_count", "%d", 0); - switch_event_add_header_string(send_event, SWITCH_STACK_BOTTOM, "channel-state", count > 0 ? "CS_ROUTING" : "CS_HANGUP"); - switch_event_add_header_string(send_event, SWITCH_STACK_BOTTOM, "unique-id", queue_name); - switch_event_add_header_string(send_event, SWITCH_STACK_BOTTOM, "answer-state", count > 0 ? "confirmed" : "terminated"); - switch_event_add_header_string(send_event, SWITCH_STACK_BOTTOM, "presence-call-direction", "inbound"); + switch_event_add_header_string_dup(send_event, SWITCH_STACK_BOTTOM, "channel-state", count > 0 ? "CS_ROUTING" : "CS_HANGUP"); + switch_event_add_header_string_dup(send_event, SWITCH_STACK_BOTTOM, "unique-id", queue_name); + switch_event_add_header_string_dup(send_event, SWITCH_STACK_BOTTOM, "answer-state", count > 0 ? "confirmed" : "terminated"); + switch_event_add_header_string_dup(send_event, SWITCH_STACK_BOTTOM, "presence-call-direction", "inbound"); switch_event_fire(&send_event); } else { diff --git a/src/mod/applications/mod_cidlookup/mod_cidlookup.c b/src/mod/applications/mod_cidlookup/mod_cidlookup.c index 7df22fb3ef..4221a295ee 100644 --- a/src/mod/applications/mod_cidlookup/mod_cidlookup.c +++ b/src/mod/applications/mod_cidlookup/mod_cidlookup.c @@ -447,8 +447,8 @@ static cid_data_t *do_whitepages_lookup(switch_memory_pool_t *pool, switch_event goto done; } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "whitepages-cid", num); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "whitepages-api-key", globals.whitepages_apikey); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "whitepages-cid", num); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "whitepages-api-key", globals.whitepages_apikey); query = switch_event_expand_headers(event, "http://api.whitepages.com/reverse_phone/1.0/?phone=${whitepages-cid};api_key=${whitepages-api-key}"); do_lookup_url(pool, event, &xml_s, query, NULL, NULL, 0); @@ -546,7 +546,7 @@ static cid_data_t *do_lookup(switch_memory_pool_t *pool, switch_event_t *event, switch_bool_t save_cache = SWITCH_FALSE; number = string_digitsonly(pool, num); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "caller_id_number", number); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "caller_id_number", number); /* database always wins */ if (globals.odbc_dsn && globals.sql) { @@ -705,10 +705,10 @@ SWITCH_STANDARD_APP(cidlookup_app_function) if (switch_event_create(&event, SWITCH_EVENT_CALL_UPDATE) == SWITCH_STATUS_SUCCESS) { const char *uuid = switch_channel_get_partner_uuid(channel); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Direction", "RECV"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Direction", "RECV"); if (uuid) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridged-To", uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Bridged-To", uuid); } switch_channel_event_set_data(channel, event); switch_event_fire(&event); diff --git a/src/mod/applications/mod_commands/mod_commands.c b/src/mod/applications/mod_commands/mod_commands.c index 8e737a78a2..b086a3ad66 100644 --- a/src/mod/applications/mod_commands/mod_commands.c +++ b/src/mod/applications/mod_commands/mod_commands.c @@ -1034,9 +1034,9 @@ SWITCH_STANDARD_API(group_call_function) switch_event_t *params; switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "group", group_name); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "domain", domain); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "action", "group_call"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "group", group_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "domain", domain); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "action", "group_call"); if (switch_xml_locate_group(group_name, domain, &xml, &x_domain, &x_group, params) == SWITCH_STATUS_SUCCESS) { switch_xml_t x_user, x_users, x_param, x_params, my_x_user; @@ -1119,9 +1119,9 @@ SWITCH_STANDARD_API(group_call_function) switch_event_del_header(params, "dialed_user"); switch_event_del_header(params, "dialed_group"); switch_event_del_header(params, "dialed_domain"); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "dialed_user", id); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "dialed_group", group_name); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "dialed_domain", domain); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "dialed_user", id); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "dialed_group", group_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "dialed_domain", domain); d_dest = switch_event_expand_headers(params, dest); } } else { @@ -1201,8 +1201,8 @@ SWITCH_STANDARD_API(in_group_function) } switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "user", user); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "domain", domain); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "user", user); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "domain", domain); if (switch_xml_locate_group(group, domain, &xml, &x_domain, &x_group, params) == SWITCH_STATUS_SUCCESS) { switch_xml_t x_users; @@ -1255,8 +1255,8 @@ SWITCH_STANDARD_API(domain_data_function) } switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "domain", domain); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "type", type); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "domain", domain); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "type", type); if (key && type && switch_xml_locate_domain(domain, params, &xml_root, &x_domain) == SWITCH_STATUS_SUCCESS) { if (!strcmp(type, "attr")) { @@ -1326,9 +1326,9 @@ SWITCH_STANDARD_API(user_data_function) } switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "user", user); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "domain", domain); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "type", type); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "user", user); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "domain", domain); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "type", type); if (key && type && switch_xml_locate_user_merged("id:number-alias", user, domain, NULL, &x_user, params) == SWITCH_STATUS_SUCCESS) { if (!strcmp(type, "attr")) { @@ -1870,18 +1870,18 @@ SWITCH_STANDARD_API(xml_locate_function) switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(params); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "section", section); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "section", section); if (tag) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "tag", tag); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "tag", tag); } if (tag_attr_name) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "tag_attr_name", tag_attr_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "tag_attr_name", tag_attr_name); } if (tag_attr_val) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "tag_attr_val", tag_attr_val); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "tag_attr_val", tag_attr_val); } if (switch_xml_locate(section, tag, tag_attr_name, tag_attr_val, &xml, &obj, params, SWITCH_FALSE) != SWITCH_STATUS_SUCCESS) { @@ -2336,7 +2336,7 @@ SWITCH_STANDARD_API(status_function) if (format.html) { /* set flag to allow refresh of webpage if web request contained kv-pair refresh=xx */ - switch_event_add_header_string(stream->param_event, SWITCH_STACK_BOTTOM, "HTTP-REFRESH", "true"); + switch_event_add_header_string_dup(stream->param_event, SWITCH_STACK_BOTTOM, "HTTP-REFRESH", "true"); if (format.api) { /* "Overwrite" default "api" Content-Type: text/plain */ stream->write_function(stream, "Content-Type: text/html\r\n\r\n"); @@ -5393,10 +5393,10 @@ static void *SWITCH_THREAD_FUNC bgapi_exec(switch_thread_t *thread, void *obj) } if (switch_event_create(&event, SWITCH_EVENT_BACKGROUND_JOB) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Job-UUID", job->uuid_str); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Job-Command", job->cmd); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Job-UUID", job->uuid_str); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Job-Command", job->cmd); if (arg) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Job-Command-Arg", arg); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Job-Command-Arg", arg); } switch_event_add_body(event, "%s", reply); @@ -5800,7 +5800,7 @@ SWITCH_STANDARD_API(show_function) html = holder.format->html; if (html) { /* set flag to allow refresh of webpage if web request contained kv-pair refresh=xx */ - switch_event_add_header_string(stream->param_event, SWITCH_STACK_BOTTOM, "HTTP-REFRESH", "true"); + switch_event_add_header_string_dup(stream->param_event, SWITCH_STACK_BOTTOM, "HTTP-REFRESH", "true"); if (holder.format->api) { /* "Overwrite" default "api" Content-Type: text/plain */ stream->write_function(stream, "Content-Type: text/html\r\n\r\n"); @@ -6691,7 +6691,7 @@ SWITCH_STANDARD_API(hupall_api_function) if (!vars) { switch_event_create(&vars, SWITCH_EVENT_CLONE); } - switch_event_add_header_string(vars, SWITCH_STACK_BOTTOM, var, val); + switch_event_add_header_string_dup(vars, SWITCH_STACK_BOTTOM, var, val); vars_count++; } } diff --git a/src/mod/applications/mod_conference/conference_api.c b/src/mod/applications/mod_conference/conference_api.c index 8bcfc5862f..c83ae448e6 100644 --- a/src/mod/applications/mod_conference/conference_api.c +++ b/src/mod/applications/mod_conference/conference_api.c @@ -338,7 +338,7 @@ switch_status_t conference_api_sub_mute(conference_member_t *member, switch_stre if (test_eflag(member->conference, EFLAG_MUTE_MEMBER) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "mute-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "mute-member"); switch_event_fire(&event); } @@ -388,7 +388,7 @@ switch_status_t conference_api_sub_unhold(conference_member_t *member, switch_st if (test_eflag(member->conference, EFLAG_HOLD_MEMBER) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "unhold-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "unhold-member"); switch_event_fire(&event); } @@ -439,7 +439,7 @@ switch_status_t conference_api_sub_hold(conference_member_t *member, switch_stre if (test_eflag(member->conference, EFLAG_HOLD_MEMBER) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "hold-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "hold-member"); switch_event_fire(&event); } @@ -491,7 +491,7 @@ switch_status_t conference_api_sub_unmute(conference_member_t *member, switch_st if (test_eflag(member->conference, EFLAG_MUTE_MEMBER) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "unmute-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "unmute-member"); switch_event_fire(&event); } @@ -616,7 +616,7 @@ switch_status_t conference_api_sub_vmute(conference_member_t *member, switch_str if (test_eflag(member->conference, EFLAG_MUTE_MEMBER) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "vmute-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "vmute-member"); switch_event_fire(&event); } @@ -686,7 +686,7 @@ switch_status_t conference_api_sub_unvmute(conference_member_t *member, switch_s if (test_eflag(member->conference, EFLAG_MUTE_MEMBER) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "unvmute-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "unvmute-member"); switch_event_fire(&event); } @@ -719,7 +719,7 @@ switch_status_t conference_api_sub_vblind(conference_member_t *member, switch_st if (test_eflag(member->conference, EFLAG_BLIND_MEMBER) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "vblind-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "vblind-member"); switch_event_fire(&event); } @@ -768,7 +768,7 @@ switch_status_t conference_api_sub_unvblind(conference_member_t *member, switch_ if (test_eflag(member->conference, EFLAG_BLIND_MEMBER) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "unvblind-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "unvblind-member"); switch_event_fire(&event); } @@ -796,7 +796,7 @@ switch_status_t conference_api_sub_deaf(conference_member_t *member, switch_stre } if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "deaf-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "deaf-member"); switch_event_fire(&event); } @@ -838,7 +838,7 @@ switch_status_t conference_api_sub_undeaf(conference_member_t *member, switch_st } if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "undeaf-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "undeaf-member"); switch_event_fire(&event); } @@ -870,7 +870,7 @@ switch_status_t conference_api_sub_hup(conference_member_t *member, switch_strea if (member->conference && test_eflag(member->conference, EFLAG_HUP_MEMBER)) { if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "hup-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "hup-member"); switch_event_fire(&event); } } @@ -901,7 +901,7 @@ switch_status_t conference_api_sub_kick(conference_member_t *member, switch_stre if (member->conference && test_eflag(member->conference, EFLAG_KICK_MEMBER)) { if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "kick-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "kick-member"); switch_event_fire(&event); } } @@ -1048,8 +1048,8 @@ switch_status_t conference_api_sub_dtmf(conference_member_t *member, switch_stre if (test_eflag(member->conference, EFLAG_DTMF_MEMBER) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "dtmf-member"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Digits", dtmf); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "dtmf-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Digits", dtmf); switch_event_fire(&event); } @@ -1227,7 +1227,7 @@ switch_status_t conference_api_sub_energy(conference_member_t *member, switch_st if (test_eflag(member->conference, EFLAG_ENERGY_LEVEL_MEMBER) && data && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "energy-level-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "energy-level-member"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Energy-Level", "%d", member->energy_level); switch_event_fire(&event); } @@ -1323,7 +1323,7 @@ switch_status_t conference_api_sub_agc(conference_member_t *member, switch_strea // if (test_eflag(member->conference, EFLAG_AGC_LEVEL_MEMBER) && if (data && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "agc-level-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "agc-level-member"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Agc-Level", "%d", member->agc_level); switch_event_fire(&event); } @@ -1369,7 +1369,7 @@ switch_status_t conference_api_sub_auto_energy(conference_member_t *member, swit if (test_eflag(member->conference, EFLAG_ENERGY_LEVEL_MEMBER) && data && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "auto-energy-level-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "auto-energy-level-member"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Auto-Energy-Level", "%d", member->auto_energy_level); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Energy-Level", "%d", member->energy_level); switch_event_fire(&event); @@ -1441,7 +1441,7 @@ switch_status_t conference_api_sub_max_energy(conference_member_t *member, switc if (test_eflag(member->conference, EFLAG_ENERGY_LEVEL_MEMBER) && data && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "max-energy-level-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "max-energy-level-member"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Max-Energy-Level", "%d", member->max_energy_level); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Max-Energy-Mute", "%d", member->burst_mute_count * member->conference->interval); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Max-Energy-Hit-Trigger", "%d", member->max_energy_hit_trigger); @@ -1535,7 +1535,7 @@ switch_status_t conference_api_sub_position(conference_member_t *member, switch_ if (test_eflag(member->conference, EFLAG_SET_POSITION_MEMBER) && data && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "set-position-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "set-position-member"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Position", "%0.2f:%0.2f:%0.2f", member->al->pos_x, member->al->pos_y, member->al->pos_z); switch_event_fire(&event); } @@ -1573,7 +1573,7 @@ switch_status_t conference_api_sub_volume_in(conference_member_t *member, switch if (test_eflag(member->conference, EFLAG_VOLUME_IN_MEMBER) && data && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "volume-in-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "volume-in-member"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Volume-Level", "%d", member->volume_in_level); switch_event_fire(&event); } @@ -1608,7 +1608,7 @@ switch_status_t conference_api_sub_volume_out(conference_member_t *member, switc if (test_eflag(member->conference, EFLAG_VOLUME_OUT_MEMBER) && data && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "volume-out-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "volume-out-member"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Volume-Level", "%d", member->volume_out_level); switch_event_fire(&event); } @@ -2821,9 +2821,9 @@ switch_status_t conference_api_sub_play(conference_obj_t *conference, switch_str switch_event_merge(event, conference->fnode->fh.params); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "play-file"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "File", argv[2]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Async", async ? "true" : "false"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "play-file"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "File", argv[2]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Async", async ? "true" : "false"); switch_event_fire(&event); } } else { @@ -2850,8 +2850,8 @@ switch_status_t conference_api_sub_play(conference_obj_t *conference, switch_str switch_event_merge(event, member->fnode->fh.params); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "play-file-member"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "File", argv[2]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "play-file-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "File", argv[2]); switch_event_fire(&event); } } else { @@ -2884,8 +2884,8 @@ switch_status_t conference_api_sub_say(conference_obj_t *conference, switch_stre stream->write_function(stream, "+OK (say) OK\n"); if (test_eflag(conference, EFLAG_SPEAK_TEXT) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_event_add_data(conference, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "speak-text"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Text", text); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "speak-text"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Text", text); switch_event_fire(&event); } return SWITCH_STATUS_SUCCESS; @@ -2943,8 +2943,8 @@ switch_status_t conference_api_sub_saymember(conference_obj_t *conference, switc if (test_eflag(member->conference, EFLAG_SPEAK_TEXT_MEMBER) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "speak-text-member"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Text", text); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "speak-text-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Text", text); switch_event_fire(&event); } ret_status = SWITCH_STATUS_SUCCESS; @@ -3473,7 +3473,7 @@ switch_status_t conference_api_sub_lock(conference_obj_t *conference, switch_str stream->write_function(stream, "+OK %s locked\n", argv[0]); if (test_eflag(conference, EFLAG_LOCK) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_event_add_data(conference, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "lock"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "lock"); switch_event_fire(&event); } @@ -3495,7 +3495,7 @@ switch_status_t conference_api_sub_unlock(conference_obj_t *conference, switch_s stream->write_function(stream, "+OK %s unlocked\n", argv[0]); if (test_eflag(conference, EFLAG_UNLOCK) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_event_add_data(conference, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "unlock"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "unlock"); switch_event_fire(&event); } @@ -3519,7 +3519,7 @@ switch_status_t conference_api_sub_exit_sound(conference_obj_t *conference, swit stream->write_function(stream, "+OK %s exit sounds on (%s)\n", argv[0], conference->exit_sound); if (test_eflag(conference, EFLAG_LOCK) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_event_add_data(conference, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "exit-sounds-on"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "exit-sounds-on"); switch_event_fire(&event); } } else if ( !strcasecmp(argv[2], "off") || !strcasecmp(argv[2], "none") ) { @@ -3527,7 +3527,7 @@ switch_status_t conference_api_sub_exit_sound(conference_obj_t *conference, swit stream->write_function(stream, "+OK %s exit sounds off (%s)\n", argv[0], conference->exit_sound); if (test_eflag(conference, EFLAG_LOCK) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_event_add_data(conference, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "exit-sounds-off"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "exit-sounds-off"); switch_event_fire(&event); } } else if ( !strcasecmp(argv[2], "file") ) { @@ -3540,7 +3540,7 @@ switch_status_t conference_api_sub_exit_sound(conference_obj_t *conference, swit stream->write_function(stream, "+OK %s exit sound file set to %s\n", argv[0], conference->exit_sound); if (test_eflag(conference, EFLAG_LOCK) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_event_add_data(conference, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "exit-sound-file-changed"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "exit-sound-file-changed"); switch_event_fire(&event); } } @@ -3570,7 +3570,7 @@ switch_status_t conference_api_sub_enter_sound(conference_obj_t *conference, swi stream->write_function(stream, "+OK %s enter sounds on (%s)\n", argv[0], conference->enter_sound); if (test_eflag(conference, EFLAG_LOCK) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_event_add_data(conference, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "enter-sounds-on"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "enter-sounds-on"); switch_event_fire(&event); } } else if ( !strcasecmp(argv[2], "off") || !strcasecmp(argv[2], "none") ) { @@ -3578,7 +3578,7 @@ switch_status_t conference_api_sub_enter_sound(conference_obj_t *conference, swi stream->write_function(stream, "+OK %s enter sounds off (%s)\n", argv[0], conference->enter_sound); if (test_eflag(conference, EFLAG_LOCK) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_event_add_data(conference, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "enter-sounds-off"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "enter-sounds-off"); switch_event_fire(&event); } } else if ( !strcasecmp(argv[2], "file") ) { @@ -3590,7 +3590,7 @@ switch_status_t conference_api_sub_enter_sound(conference_obj_t *conference, swi stream->write_function(stream, "+OK %s enter sound file set to %s\n", argv[0], conference->enter_sound); if (test_eflag(conference, EFLAG_LOCK) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_event_add_data(conference, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "enter-sound-file-changed"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "enter-sound-file-changed"); switch_event_fire(&event); } } @@ -3703,9 +3703,9 @@ switch_status_t conference_api_sub_transfer(conference_obj_t *conference, switch if (test_eflag(conference, EFLAG_TRANSFER) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Old-Conference-Name", conference->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "New-Conference-Name", argv[2]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "transfer"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Old-Conference-Name", conference->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "New-Conference-Name", argv[2]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "transfer"); switch_event_fire(&event); } @@ -3861,12 +3861,12 @@ switch_status_t conference_api_sub_pauserec(conference_obj_t *conference, switch { conference_event_add_data(conference, event); if (action == REC_ACTION_PAUSE) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "pause-recording"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "pause-recording"); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "resume-recording"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "resume-recording"); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Path", argv[2]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Other-Recordings", conference->record_count ? "true" : "false"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Path", argv[2]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Other-Recordings", conference->record_count ? "true" : "false"); switch_event_fire(&event); } } diff --git a/src/mod/applications/mod_conference/conference_cdr.c b/src/mod/applications/mod_conference/conference_cdr.c index b6eb630540..9c0b97ecb3 100644 --- a/src/mod/applications/mod_conference/conference_cdr.c +++ b/src/mod/applications/mod_conference/conference_cdr.c @@ -751,11 +751,11 @@ void conference_cdr_render(conference_obj_t *conference) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_CDR) == SWITCH_STATUS_SUCCESS) // if (switch_event_create(&event, SWITCH_EVENT_CDR) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CDR-Source", CONF_EVENT_CDR); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CDR-Source", CONF_EVENT_CDR); if (conference->cdr_event_mode == CDRE_AS_CONTENT) { switch_event_set_body(event, xml_text); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CDR-Path", path); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CDR-Path", path); } switch_event_fire(&event); } else { diff --git a/src/mod/applications/mod_conference/conference_event.c b/src/mod/applications/mod_conference/conference_event.c index a88a5feab9..fb8a43224c 100644 --- a/src/mod/applications/mod_conference/conference_event.c +++ b/src/mod/applications/mod_conference/conference_event.c @@ -724,8 +724,8 @@ void conference_event_send_rfc(conference_obj_t *conference) if (switch_event_create(&event, SWITCH_EVENT_CONFERENCE_DATA) == SWITCH_STATUS_SUCCESS) { event->flags |= EF_UNIQ_HEADERS; - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "conference-name", name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "conference-domain", domain); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "conference-name", name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "conference-domain", domain); body = conference_cdr_rfc4579_render(conference, NULL, event); switch_event_add_body(event, "%s", body); @@ -742,12 +742,12 @@ switch_status_t conference_event_add_data(conference_obj_t *conference, switch_e { switch_status_t status = SWITCH_STATUS_SUCCESS; - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Conference-Name", conference->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Conference-Domain", conference->domain); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Conference-Name", conference->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Conference-Domain", conference->domain); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Conference-Size", "%u", conference->count); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Conference-Ghosts", "%u", conference->count_ghosts); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Conference-Profile-Name", conference->profile_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Conference-Unique-ID", conference->uuid_str); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Conference-Profile-Name", conference->profile_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Conference-Unique-ID", conference->uuid_str); switch_event_merge(event, conference->variables); return status; @@ -774,14 +774,14 @@ void conference_event_chat_message_broadcast(conference_obj_t *conference, switc continue; } switch_event_dup(&reply, event); - switch_event_add_header_string(reply, SWITCH_STACK_BOTTOM, "to", presence_id); - switch_event_add_header_string(reply, SWITCH_STACK_BOTTOM, "conference_name", conference->name); - switch_event_add_header_string(reply, SWITCH_STACK_BOTTOM, "conference_domain", conference->domain); + switch_event_add_header_string_dup(reply, SWITCH_STACK_BOTTOM, "to", presence_id); + switch_event_add_header_string_dup(reply, SWITCH_STACK_BOTTOM, "conference_name", conference->name); + switch_event_add_header_string_dup(reply, SWITCH_STACK_BOTTOM, "conference_domain", conference->domain); switch_event_set_body(reply, switch_event_get_body(event)); switch_core_chat_deliver(chat_proto, &reply); - switch_event_add_header_string(processed, SWITCH_STACK_BOTTOM, presence_id, "true"); + switch_event_add_header_string_dup(processed, SWITCH_STACK_BOTTOM, presence_id, "true"); } } } @@ -824,19 +824,19 @@ void conference_event_call_setup_handler(switch_event_t *event) for(hp = event->headers; hp; hp = hp->next) { if (!strncasecmp(hp->name, "var_", 4)) { - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, hp->name + 4, hp->value); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, hp->name + 4, hp->value); } } - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "conference_call_key", key); - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "conference_destination_number", ext); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "conference_call_key", key); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "conference_destination_number", ext); - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "conference_invite_uri", dial_uri); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "conference_invite_uri", dial_uri); - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "conference_track_status", "true"); - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "conference_track_call_id", call_id); - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "sip_invite_domain", domain); - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "sip_invite_contact_params", "~isfocus"); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "conference_track_status", "true"); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "conference_track_call_id", call_id); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "sip_invite_domain", domain); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "sip_invite_contact_params", "~isfocus"); if (!strncasecmp(ostr, "url+", 4)) { ostr += 4; @@ -878,11 +878,11 @@ void conference_event_call_setup_handler(switch_event_t *event) if (switch_event_create(&event, SWITCH_EVENT_CONFERENCE_DATA) == SWITCH_STATUS_SUCCESS) { event->flags |= EF_UNIQ_HEADERS; - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "conference-name", conf); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "conference-domain", domain); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "conference-event", "refer"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call_id", call_id); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "final", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "conference-name", conf); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "conference-domain", domain); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "conference-event", "refer"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call_id", call_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "final", "true"); switch_event_add_body(event, "%s", "SIP/2.0 481 Failure\r\n"); switch_event_fire(&event); } @@ -942,35 +942,35 @@ void conference_event_pres_handler(switch_event_t *event) if ((conference = conference_find(conference_name, NULL)) || (conference = conference_find(dup_conference_name, NULL))) { if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", CONF_CHAT_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", conference->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", CONF_CHAT_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", conference->name); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", conference->name, conference->domain); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "force-status", "Active (%d caller%s)", conference->count, conference->count == 1 ? "" : "s"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "unique-id", conference_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_ROUTING"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", conference->count == 1 ? "early" : "confirmed"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-direction", conference->count == 1 ? "outbound" : "inbound"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "unique-id", conference_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_ROUTING"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", conference->count == 1 ? "early" : "confirmed"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call-direction", conference->count == 1 ? "outbound" : "inbound"); switch_event_fire(&event); } switch_thread_rwlock_unlock(conference->rwlock); } else if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", CONF_CHAT_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", conference_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from", to); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "force-status", "Idle"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", CONF_CHAT_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", conference_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from", to); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "force-status", "Idle"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "unique-id", conference_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", "terminated"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-direction", "inbound"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "unique-id", conference_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", "terminated"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call-direction", "inbound"); switch_event_fire(&event); } diff --git a/src/mod/applications/mod_conference/conference_file.c b/src/mod/applications/mod_conference/conference_file.c index b42599ef6d..fd635954d5 100644 --- a/src/mod/applications/mod_conference/conference_file.c +++ b/src/mod/applications/mod_conference/conference_file.c @@ -67,7 +67,7 @@ switch_status_t conference_file_close(conference_obj_t *conference, conference_f } if (node->member_id) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "play-file-member-done"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "play-file-member-done"); if ((member = conference_member_get(conference, node->member_id))) { conference_member_add_event_data(member, event); @@ -75,13 +75,13 @@ switch_status_t conference_file_close(conference_obj_t *conference, conference_f } } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "play-file-done"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "play-file-done"); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "File", node->file); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "File", node->file); if (node->async) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Async", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Async", "true"); } switch_event_fire(&event); @@ -272,10 +272,10 @@ switch_status_t conference_file_play(conference_obj_t *conference, char *file, u switch_event_merge(event, conference->fnode->fh.params); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "play-file"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "File", file); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Async", async ? "true" : "false"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Error", "File could not be played"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "play-file"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "File", file); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Async", async ? "true" : "false"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Error", "File could not be played"); switch_event_fire(&event); } diff --git a/src/mod/applications/mod_conference/conference_loop.c b/src/mod/applications/mod_conference/conference_loop.c index f6c2856892..39fe63aa22 100644 --- a/src/mod/applications/mod_conference/conference_loop.c +++ b/src/mod/applications/mod_conference/conference_loop.c @@ -230,7 +230,7 @@ void conference_loop_lock_toggle(conference_member_t *member, caller_control_act if (test_eflag(member->conference, EFLAG_LOCK) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_event_add_data(member->conference, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "lock"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "lock"); switch_event_fire(&event); } } else { @@ -242,7 +242,7 @@ void conference_loop_lock_toggle(conference_member_t *member, caller_control_act if (test_eflag(member->conference, EFLAG_UNLOCK) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_event_add_data(member->conference, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "unlock"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "unlock"); switch_event_fire(&event); } } @@ -328,7 +328,7 @@ void conference_loop_energy_up(conference_member_t *member, caller_control_actio if (test_eflag(member->conference, EFLAG_ENERGY_LEVEL) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "energy-level"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "energy-level"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-Level", "%d", member->energy_level); switch_event_fire(&event); } @@ -369,7 +369,7 @@ void conference_loop_energy_equ_conf(conference_member_t *member, caller_control if (test_eflag(member->conference, EFLAG_ENERGY_LEVEL) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "energy-level"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "energy-level"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-Level", "%d", member->energy_level); switch_event_fire(&event); } @@ -409,7 +409,7 @@ void conference_loop_energy_dn(conference_member_t *member, caller_control_actio if (test_eflag(member->conference, EFLAG_ENERGY_LEVEL) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "energy-level"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "energy-level"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-Level", "%d", member->energy_level); switch_event_fire(&event); } @@ -439,7 +439,7 @@ void conference_loop_volume_talk_up(conference_member_t *member, caller_control_ if (test_eflag(member->conference, EFLAG_VOLUME_LEVEL) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "volume-level"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "volume-level"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-Level", "%d", member->volume_out_level); switch_event_fire(&event); } @@ -470,7 +470,7 @@ void conference_loop_volume_talk_zero(conference_member_t *member, caller_contro if (test_eflag(member->conference, EFLAG_VOLUME_LEVEL) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "volume-level"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "volume-level"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-Level", "%d", member->volume_out_level); switch_event_fire(&event); } @@ -502,7 +502,7 @@ void conference_loop_volume_talk_dn(conference_member_t *member, caller_control_ if (test_eflag(member->conference, EFLAG_VOLUME_LEVEL) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "volume-level"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "volume-level"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-Level", "%d", member->volume_out_level); switch_event_fire(&event); } @@ -533,7 +533,7 @@ void conference_loop_volume_listen_up(conference_member_t *member, caller_contro if (test_eflag(member->conference, EFLAG_GAIN_LEVEL) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "gain-level"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "gain-level"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-Level", "%d", member->volume_in_level); switch_event_fire(&event); } @@ -564,7 +564,7 @@ void conference_loop_volume_listen_zero(conference_member_t *member, caller_cont if (test_eflag(member->conference, EFLAG_GAIN_LEVEL) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "gain-level"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "gain-level"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-Level", "%d", member->volume_in_level); switch_event_fire(&event); } @@ -596,7 +596,7 @@ void conference_loop_volume_listen_dn(conference_member_t *member, caller_contro if (test_eflag(member->conference, EFLAG_GAIN_LEVEL) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "gain-level"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "gain-level"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-Level", "%d", member->volume_in_level); switch_event_fire(&event); } @@ -618,9 +618,9 @@ void conference_loop_event(conference_member_t *member, caller_control_action_t switch_event_t *event; if (test_eflag(member->conference, EFLAG_DTMF) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "dtmf"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "DTMF-Key", action->binded_dtmf); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Data", action->expanded_data); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "dtmf"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "DTMF-Key", action->binded_dtmf); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Data", action->expanded_data); switch_event_fire(&event); } } @@ -638,8 +638,8 @@ void conference_loop_transfer(conference_member_t *member, caller_control_action if (test_eflag(member->conference, EFLAG_DTMF) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "transfer"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Dialplan", action->expanded_data); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "transfer"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Dialplan", action->expanded_data); switch_event_fire(&event); } conference_utils_member_clear_flag_locked(member, MFLAG_RUNNING); @@ -687,8 +687,8 @@ void conference_loop_exec_app(conference_member_t *member, caller_control_action if (test_eflag(member->conference, EFLAG_DTMF) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "execute_app"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application", action->expanded_data); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "execute_app"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Application", action->expanded_data); switch_event_fire(&event); } @@ -793,7 +793,7 @@ static void stop_talking_handler(conference_member_t *member) switch_event_add_header(event, SWITCH_STACK_BOTTOM, "talking-hit-off-percent", "%f", ngcp); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "talking-hit-off-differential", "%f", gcp - ngcp); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "stop-talking"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "stop-talking"); switch_event_fire(&event); } @@ -1101,7 +1101,7 @@ void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, void *ob } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "talk-report"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "talk-report"); switch_event_fire(&event); } @@ -1153,7 +1153,7 @@ void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, void *ob !conference_utils_member_test_flag(member, MFLAG_HOLD) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "start-talking"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "start-talking"); switch_event_fire(&event); } @@ -1166,7 +1166,7 @@ void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, void *ob if (test_eflag(member->conference, EFLAG_MUTE_DETECT) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "mute-detect"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "mute-detect"); switch_event_fire(&event); } } diff --git a/src/mod/applications/mod_conference/conference_member.c b/src/mod/applications/mod_conference/conference_member.c index 6112a2890c..656df915f7 100644 --- a/src/mod/applications/mod_conference/conference_member.c +++ b/src/mod/applications/mod_conference/conference_member.c @@ -72,11 +72,11 @@ void conference_member_bind_controls(conference_member_t *member, const char *co int i; switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "Conf-Name", member->conference->name); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "Conf-Profile", member->conference->profile_name); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "Action", "request-controls"); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "Controls", controls); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "Fetch-Call-UUID", switch_core_session_get_uuid(member->session)); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "Conf-Name", member->conference->name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "Conf-Profile", member->conference->profile_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "Action", "request-controls"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "Controls", controls); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "Fetch-Call-UUID", switch_core_session_get_uuid(member->session)); if (!(cxml = switch_xml_open_cfg(mod_conference_cf_name, &cfg, params))) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Open of %s failed\n", mod_conference_cf_name); @@ -956,7 +956,7 @@ switch_status_t conference_member_add(conference_obj_t *conference, conference_m if (!switch_channel_test_app_flag_key("conference_silent", channel, CONF_SILENT_REQ) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "add-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "add-member"); switch_event_fire(&event); } @@ -1152,18 +1152,18 @@ void conference_member_set_floor_holder(conference_obj_t *conference, conference if (test_eflag(conference, EFLAG_FLOOR_CHANGE)) { switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT); conference_event_add_data(conference, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "floor-change"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "floor-change"); if (old_id) { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Old-ID", "%d", old_id); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Old-ID", "none"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Old-ID", "none"); } if (conference->floor_holder) { conference_member_add_event_data(member, event); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-ID", "%d", conference->floor_holder); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "New-ID", "none"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "New-ID", "none"); } switch_event_fire(&event); @@ -1344,7 +1344,7 @@ switch_status_t conference_member_del(conference_obj_t *conference, conference_m if (test_eflag(conference, EFLAG_DEL_MEMBER) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "del-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "del-member"); switch_event_fire(&event); } } diff --git a/src/mod/applications/mod_conference/conference_record.c b/src/mod/applications/mod_conference/conference_record.c index b8270113a7..ca4f5a8612 100644 --- a/src/mod/applications/mod_conference/conference_record.c +++ b/src/mod/applications/mod_conference/conference_record.c @@ -279,9 +279,9 @@ void *SWITCH_THREAD_FUNC conference_record_thread_run(switch_thread_t *thread, v if (test_eflag(conference, EFLAG_RECORD) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_event_add_data(conference, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "start-recording"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Path", rec->path); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Error", "File could not be opened for recording"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "start-recording"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Path", rec->path); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Error", "File could not be opened for recording"); switch_event_fire(&event); } @@ -318,8 +318,8 @@ void *SWITCH_THREAD_FUNC conference_record_thread_run(switch_thread_t *thread, v if (test_eflag(conference, EFLAG_RECORD) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_event_add_data(conference, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "start-recording"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Path", rec->path); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "start-recording"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Path", rec->path); switch_event_fire(&event); } @@ -426,9 +426,9 @@ void *SWITCH_THREAD_FUNC conference_record_thread_run(switch_thread_t *thread, v if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_event_add_data(conference, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "stop-recording"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Path", rec->path); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Other-Recordings", conference->record_count ? "true" : "false"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "stop-recording"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Path", rec->path); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Other-Recordings", conference->record_count ? "true" : "false"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Samples-Out", "%ld", (long) member->rec->fh.samples_out); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Samplerate", "%ld", (long) member->rec->fh.samplerate); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Milliseconds-Elapsed", "%ld", (long) member->rec->fh.samples_out / (member->rec->fh.samplerate / 1000)); diff --git a/src/mod/applications/mod_conference/conference_video.c b/src/mod/applications/mod_conference/conference_video.c index e94b835c3d..92b25c9f05 100644 --- a/src/mod/applications/mod_conference/conference_video.c +++ b/src/mod/applications/mod_conference/conference_video.c @@ -81,7 +81,7 @@ void conference_video_parse_layouts(conference_obj_t *conference, int WIDTH, int switch_event_create(¶ms, SWITCH_EVENT_COMMAND); switch_assert(params); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "conference_name", conference->name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "conference_name", conference->name); if (!(cxml = switch_xml_open_cfg(conference->video_layout_conf, &cfg, params))) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Open of %s failed\n", conference->video_layout_conf); @@ -577,7 +577,7 @@ void conference_video_scale_and_patch(mcu_layer_t *layer, switch_image_t *ximg, switch_event_t *event; if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "action", "movement-detection"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "action", "movement-detection"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "member_id", "%d", layer->member_id); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "last_x", "%d", layer->manual_geometry.x); @@ -2514,7 +2514,7 @@ void conference_video_check_avatar(conference_member_t *member, switch_bool_t fo switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT); conference_event_add_data(member->conference, event); conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "vfi-triggered-member"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "vfi-triggered-member"); switch_event_fire(&event); switch_img_copy(member->video_mute_img, &member->avatar_png_img); @@ -4814,16 +4814,16 @@ void conference_video_set_floor_holder(conference_obj_t *conference, conference_ if (test_eflag(conference, EFLAG_FLOOR_CHANGE)) { switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT); conference_event_add_data(conference, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "video-floor-change"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "video-floor-change"); if (old_id) { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Old-ID", "%d", old_id); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Old-ID", "none"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Old-ID", "none"); } if (conference->video_floor_holder) { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-ID", "%d", conference->video_floor_holder); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "New-ID", "none"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "New-ID", "none"); } switch_event_fire(&event); } diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c index 619cd8c4a6..628bbd9fdc 100644 --- a/src/mod/applications/mod_conference/mod_conference.c +++ b/src/mod/applications/mod_conference/mod_conference.c @@ -185,13 +185,13 @@ void conference_send_notify(conference_obj_t *conference, const char *status, co if (switch_event_create(&event, SWITCH_EVENT_CONFERENCE_DATA) == SWITCH_STATUS_SUCCESS) { event->flags |= EF_UNIQ_HEADERS; - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "conference-name", name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "conference-domain", domain); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "conference-event", "refer"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call_id", call_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "conference-name", name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "conference-domain", domain); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "conference-event", "refer"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call_id", call_id); if (final) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "final", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "final", "true"); } @@ -264,7 +264,7 @@ void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, void *ob last_heartbeat_time = now; switch_event_create_subclass(&heartbeat_event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT); conference_event_add_data(conference, heartbeat_event); - switch_event_add_header_string(heartbeat_event, SWITCH_STACK_BOTTOM, "Action", "conference-heartbeat"); + switch_event_add_header_string_dup(heartbeat_event, SWITCH_STACK_BOTTOM, "Action", "conference-heartbeat"); switch_event_fire(&heartbeat_event); } @@ -862,7 +862,7 @@ void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, void *ob switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT); conference_event_add_data(conference, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "conference-destroy"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "conference-destroy"); switch_event_fire(&event); switch_mutex_lock(conference->member_mutex); @@ -1703,10 +1703,10 @@ void *SWITCH_THREAD_FUNC conference_outcall_run(switch_thread_t *thread, void *o if (call->conference && test_eflag(call->conference, EFLAG_BGDIAL_RESULT) && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { conference_event_add_data(call->conference, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "bgdial-result"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Result", switch_channel_cause2str(cause)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Job-UUID", call->uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Peer-UUID", peer_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "bgdial-result"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Result", switch_channel_cause2str(cause)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Job-UUID", call->uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Peer-UUID", peer_uuid); switch_event_fire(&event); } @@ -1783,7 +1783,7 @@ switch_status_t conference_outcall_bg(conference_obj_t *conference, if (call_uuid) { call->uuid = strdup(call_uuid); if (call->var_event) { - switch_event_add_header_string(call->var_event, SWITCH_STACK_BOTTOM, "conference_bgdial_jobid", call->uuid); + switch_event_add_header_string_dup(call->var_event, SWITCH_STACK_BOTTOM, "conference_bgdial_jobid", call->uuid); } } @@ -2026,9 +2026,9 @@ SWITCH_STANDARD_APP(conference_function) switch_event_create(¶ms, SWITCH_EVENT_COMMAND); switch_assert(params); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "conference_name", conference_name); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "profile_name", profile_name); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "Fetch-Call-UUID", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "conference_name", conference_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "profile_name", profile_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "Fetch-Call-UUID", switch_core_session_get_uuid(session)); /* Open the config from the xml registry */ if (!(cxml = switch_xml_open_cfg(mod_conference_cf_name, &cfg, params))) { @@ -2124,9 +2124,9 @@ SWITCH_STANDARD_APP(conference_function) /* send event */ switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT); switch_channel_event_set_basic_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Conference-Name", conference_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Conference-Profile-Name", profile_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "rejected-join-only"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Conference-Name", conference_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Conference-Profile-Name", profile_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "rejected-join-only"); switch_event_fire(&event); /* check what sound file to play */ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Cannot create a conference since join-only flag is set\n"); @@ -2675,7 +2675,7 @@ void conference_set_variable(conference_obj_t *conference, const char *var, cons if (!val) { switch_event_del_header(conference->variables, var); } else { - switch_event_add_header_string(conference->variables, SWITCH_STACK_BOTTOM, var, val); + switch_event_add_header_string_dup(conference->variables, SWITCH_STACK_BOTTOM, var, val); } switch_mutex_unlock(conference->flag_mutex); } @@ -3846,7 +3846,7 @@ conference_obj_t *conference_new(char *name, conference_xml_cfg_t cfg, switch_co if (conference->verbose_events && channel) { switch_channel_event_set_data(channel, event); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "conference-create"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "conference-create"); switch_event_fire(&event); end: @@ -3864,29 +3864,29 @@ void conference_send_presence(conference_obj_t *conference) switch_event_t *event; if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", CONF_CHAT_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", conference->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", CONF_CHAT_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", conference->name); if (strchr(conference->name, '@')) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from", conference->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from", conference->name); } else { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", conference->name, conference->domain); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "unique-id", conference->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "unique-id", conference->name); if (conference->count) { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "force-status", "Active (%d caller%s)", conference->count, conference->count == 1 ? "" : "s"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_ROUTING"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", conference->count == 1 ? "early" : "confirmed"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "presence-call-direction", conference->count == 1 ? "outbound" : "inbound"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_ROUTING"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", conference->count == 1 ? "early" : "confirmed"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "presence-call-direction", conference->count == 1 ? "outbound" : "inbound"); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "force-status", "Inactive"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", "terminated"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-direction", "inbound"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "force-status", "Inactive"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", "terminated"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call-direction", "inbound"); } @@ -3938,7 +3938,7 @@ void send_presence(switch_event_types_t id) switch_event_create(¶ms, SWITCH_EVENT_COMMAND); switch_assert(params); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "presence", "true"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "presence", "true"); /* Open the config from the xml registry */ @@ -3954,12 +3954,12 @@ void send_presence(switch_event_types_t id) switch_event_t *event; if (name && switch_event_create(&event, id) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", CONF_CHAT_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from", name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "force-status", status ? status : "Available"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", CONF_CHAT_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from", name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "force-status", status ? status : "Available"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); switch_event_fire(&event); } } diff --git a/src/mod/applications/mod_curl/mod_curl.c b/src/mod/applications/mod_curl/mod_curl.c index 02079d6767..a98935e4ec 100644 --- a/src/mod/applications/mod_curl/mod_curl.c +++ b/src/mod/applications/mod_curl/mod_curl.c @@ -506,9 +506,9 @@ static switch_status_t http_sendfile_test_file_open(http_sendfile_data_t *http_d { if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, HTTP_SENDFILE_ACK_EVENT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Command-Execution-Identifier", http_data->identifier_str); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Filename", http_data->filename_element); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "File-Access", "Failure"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Command-Execution-Identifier", http_data->identifier_str); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Filename", http_data->filename_element); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "File-Access", "Failure"); switch_event_fire(&event); switch_event_destroy(&event); } @@ -536,10 +536,10 @@ static void http_sendfile_success_report(http_sendfile_data_t *http_data, switch memset(code_as_string, 0, 16); switch_snprintf(code_as_string, 16, "%d", http_data->http_response_code); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Command-Execution-Identifier", http_data->identifier_str); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Filename", http_data->filename_element); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "File-Access", "Success"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "REST-HTTP-Code", code_as_string); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Command-Execution-Identifier", http_data->identifier_str); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Filename", http_data->filename_element); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "File-Access", "Success"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "REST-HTTP-Code", code_as_string); switch_event_add_body(event, "%s", http_data->sendfile_response); switch_event_fire(&event); diff --git a/src/mod/applications/mod_cv/mod_cv.cpp b/src/mod/applications/mod_cv/mod_cv.cpp index 800452dd9a..b55c0a8185 100644 --- a/src/mod/applications/mod_cv/mod_cv.cpp +++ b/src/mod/applications/mod_cv/mod_cv.cpp @@ -766,12 +766,12 @@ static switch_status_t video_thread_callback(switch_core_session_t *session, swi context->detect_event = 1; if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_VIDEO_DETECT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Detect-Type", "primary"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Detect-Disposition", "start"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Detect-Type", "primary"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Detect-Disposition", "start"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Detect-Simo-Count", "%u", context->detected.simo_count); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Detect-Average", "%f", context->detected.avg); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Detect-Last-Score", "%u", context->detected.last_score); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(session)); //switch_channel_event_set_data(channel, event); DUMP_EVENT(event); switch_event_fire(&event); @@ -784,12 +784,12 @@ static switch_status_t video_thread_callback(switch_core_session_t *session, swi if (context->detected.simo_miss_count >= context->confidence_level) { if (context->detect_event) { if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_VIDEO_DETECT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Detect-Type", "primary"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Detect-Disposition", "stop"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Detect-Type", "primary"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Detect-Disposition", "stop"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Detect-Simo-Count", "%u", context->detected.simo_count); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Detect-Average", "%f", context->detected.avg); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Detect-Last-Score", "%u", context->detected.last_score); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(session)); //switch_channel_event_set_data(channel, event); DUMP_EVENT(event); switch_event_fire(&event); @@ -818,12 +818,12 @@ static switch_status_t video_thread_callback(switch_core_session_t *session, swi context->nest_detect_event = 1; if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_VIDEO_DETECT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Detect-Type", "nested"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Detect-Disposition", "start"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Detect-Type", "nested"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Detect-Disposition", "start"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Detect-Simo-Count", "%d", context->nestDetected.simo_count); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Detect-Average", "%f", context->nestDetected.avg); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Detect-Last-Score", "%u", context->nestDetected.last_score); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(session)); //switch_channel_event_set_data(channel, event); DUMP_EVENT(event); switch_event_fire(&event); @@ -834,12 +834,12 @@ static switch_status_t video_thread_callback(switch_core_session_t *session, swi } else if (context->nestDetected.above_avg_simo_count == 0) { if (context->nest_detect_event) { if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_VIDEO_DETECT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Detect-Type", "nested"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Detect-Disposition", "stop"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Detect-Type", "nested"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Detect-Disposition", "stop"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Detect-Simo-Count", "%d", context->nestDetected.simo_count); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Detect-Average", "%f", context->nestDetected.avg); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Detect-Last-Score", "%u", context->nestDetected.last_score); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(session)); //switch_channel_event_set_data(channel, event); DUMP_EVENT(event); switch_event_fire(&event); diff --git a/src/mod/applications/mod_dptools/mod_dptools.c b/src/mod/applications/mod_dptools/mod_dptools.c index f38509016b..6070c41781 100644 --- a/src/mod/applications/mod_dptools/mod_dptools.c +++ b/src/mod/applications/mod_dptools/mod_dptools.c @@ -132,7 +132,7 @@ static switch_status_t digit_nomatch_action_callback(switch_ivr_dmachine_match_t switch_channel_get_name(channel), match->match_digits); if (switch_event_create_plain(&event, SWITCH_EVENT_CHANNEL_DATA) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "digits", match->match_digits); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "digits", match->match_digits); if (switch_core_session_queue_event(use_session, &event) != SWITCH_STATUS_SUCCESS) { switch_event_destroy(&event); @@ -209,11 +209,11 @@ static switch_status_t digit_action_callback(switch_ivr_dmachine_match_t *match) api = 1; } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, string, act->value); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "digits", match->match_digits); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, string, act->value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "digits", match->match_digits); if (exec) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "execute", exec == 1 ? "non-blocking" : "blocking"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "execute", exec == 1 ? "non-blocking" : "blocking"); } if (switch_core_session_queue_event(use_session, &event) != SWITCH_STATUS_SUCCESS) { @@ -1929,16 +1929,16 @@ SWITCH_STANDARD_APP(event_function) if (!strcasecmp(var, "Event-Name")) { switch_name_event(val, &event->event_id); switch_event_del_header(event, var); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, var, val); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, var, val); } else if (!strcasecmp(var, "Event-Subclass")) { size_t len = strlen(val) + 1; void *new = malloc(len); switch_assert(new); memcpy(new, val, len); event->subclass_name = new; - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, var, val); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, var, val); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, var, val); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, var, val); } } } @@ -2087,21 +2087,21 @@ SWITCH_STANDARD_API(presence_api_function) } if (switch_event_create(&event, type) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", "dp"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", __FILE__); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from", argv[1]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", argv[2]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "status", argv[3]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", "dp"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", __FILE__); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from", argv[1]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", argv[2]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "status", argv[3]); if (type == SWITCH_EVENT_PRESENCE_IN) { if (!strncasecmp(argv[3], "cs_", 3) || switch_stristr("hangup", argv[3])) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "status", "CS_HANGUP"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "status", "CS_HANGUP"); } } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "status", "CS_HANGUP"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "status", "CS_HANGUP"); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", 0); switch_event_fire(&event); } @@ -2167,7 +2167,7 @@ SWITCH_STANDARD_APP(ivr_application_function) /* Open the config from the xml registry */ switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(params); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "Menu-Name", name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "Menu-Name", name); switch_channel_event_set_data(channel, params); if ((cxml = switch_xml_open_cfg(ivr_cf_name, &cfg, params)) != NULL) { @@ -3749,38 +3749,38 @@ static void pickup_send_presence(const char *key_name) if (count > 0) { if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", PICKUP_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", dup_id); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from", dup_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", PICKUP_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", dup_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from", dup_id); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "force-status", "Active (%d call%s)", count, count == 1 ? "" : "s"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", "active"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", "active"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "unique-id", key_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_ROUTING"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", "confirmed"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-direction", "inbound"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "unique-id", key_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_ROUTING"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", "confirmed"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call-direction", "inbound"); switch_event_fire(&event); } } else { if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", PICKUP_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", dup_id); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from", dup_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", PICKUP_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", dup_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from", dup_id); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "force-status", "Idle"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "force-status", "Idle"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "unique-id", dup_id); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", "terminated"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-direction", "inbound"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "unique-id", dup_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", "terminated"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call-direction", "inbound"); switch_event_fire(&event); } } @@ -3826,33 +3826,33 @@ static void pickup_pres_event_handler(switch_event_t *event) switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN); if (count) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", PICKUP_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", key_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", PICKUP_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", key_name); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", key_name, domain_name); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "force-status", "Active (%d call%s)", count, count == 1 ? "" : "s"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", "active"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", "active"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "unique-id", key_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_ROUTING"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", "confirmed"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-direction", "inbound"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "unique-id", key_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_ROUTING"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", "confirmed"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call-direction", "inbound"); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", PICKUP_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", key_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", PICKUP_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", key_name); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", key_name, domain_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "force-status", "Idle"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "force-status", "Idle"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "unique-id", key_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", "terminated"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-direction", "inbound"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "unique-id", key_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", "terminated"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call-direction", "inbound"); } @@ -4148,10 +4148,10 @@ SWITCH_STANDARD_APP(pickup_function) if (switch_event_create(&event, SWITCH_EVENT_CALL_UPDATE) == SWITCH_STATUS_SUCCESS) { const char *partner_uuid = switch_channel_get_partner_uuid(channel); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Direction", "RECV"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Direction", "RECV"); if (partner_uuid) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridged-To", partner_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Bridged-To", partner_uuid); } switch_channel_event_set_data(channel, event); switch_event_fire(&event); @@ -4367,8 +4367,8 @@ static switch_call_cause_t user_outgoing_channel(switch_core_session_t *session, switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(params); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "as_channel", "true"); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "action", "user_call"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "as_channel", "true"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "action", "user_call"); if (var_event) { switch_event_merge(params, var_event); @@ -4400,7 +4400,7 @@ static switch_call_cause_t user_outgoing_channel(switch_core_session_t *session, } else { switch_event_del_header(var_event, pvar + 9); } - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, pvar + 9, val); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, pvar + 9, val); } } } @@ -4408,8 +4408,8 @@ static switch_call_cause_t user_outgoing_channel(switch_core_session_t *session, dialed_user = (char *)switch_xml_attr(x_user, "id"); if (var_event) { - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "dialed_user", dialed_user); - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "dialed_domain", domain); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "dialed_user", dialed_user); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "dialed_domain", domain); if (!zstr(dest) && !strstr(dest, "presence_id=")) { switch_event_add_header(var_event, SWITCH_STACK_BOTTOM, "presence_id", "%s@%s", dialed_user, domain); } @@ -4459,8 +4459,8 @@ static switch_call_cause_t user_outgoing_channel(switch_core_session_t *session, switch_assert(event); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "dialed_user", dialed_user); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "dialed_domain", domain); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "dialed_user", dialed_user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "dialed_domain", domain); d_dest = switch_event_expand_headers(event, dest); switch_event_destroy(&event); } @@ -4652,7 +4652,7 @@ static switch_status_t event_chat_send(switch_event_t *message_event) if ((to = switch_event_get_header(event, "to"))) { char *v; if ((v = switch_core_get_variable_dup(to))) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Command", v); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Command", v); free(v); } } @@ -4972,7 +4972,7 @@ static switch_status_t next_file(switch_file_handle_t *handle) if (switch_test_flag((&context->fh), SWITCH_FILE_OPEN)) { if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FILE_STRING_CLOSE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "File", context->argv[(context->index - 1)]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "File", context->argv[(context->index - 1)]); switch_event_fire(&event); } @@ -5004,7 +5004,7 @@ static switch_status_t next_file(switch_file_handle_t *handle) *p = '\0'; if (switch_dir_make_recursive(path, SWITCH_DEFAULT_DIR_PERMS, handle->memory_pool) != SWITCH_STATUS_SUCCESS) { if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FILE_STRING_FAIL) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "File", context->argv[context->index]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "File", context->argv[context->index]); switch_event_fire(&event); } @@ -5019,7 +5019,7 @@ static switch_status_t next_file(switch_file_handle_t *handle) if (switch_core_file_open(&context->fh, file, handle->channels, handle->samplerate, handle->flags, NULL) != SWITCH_STATUS_SUCCESS) { if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FILE_STRING_FAIL) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "File", context->argv[context->index]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "File", context->argv[context->index]); switch_event_fire(&event); } @@ -5031,7 +5031,7 @@ static switch_status_t next_file(switch_file_handle_t *handle) } if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FILE_STRING_OPEN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "File", context->argv[context->index]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "File", context->argv[context->index]); switch_event_fire(&event); } diff --git a/src/mod/applications/mod_fifo/mod_fifo.c b/src/mod/applications/mod_fifo/mod_fifo.c index 304996981a..6b3b467377 100644 --- a/src/mod/applications/mod_fifo/mod_fifo.c +++ b/src/mod/applications/mod_fifo/mod_fifo.c @@ -189,7 +189,7 @@ static void change_pos(switch_event_t *event, int pos) channel = switch_core_session_get_channel(session); switch_snprintf(tmp, sizeof(tmp), "%d", pos); switch_channel_set_variable(channel, "fifo_position", tmp); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fifo_position", tmp); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fifo_position", tmp); switch_core_session_rwunlock(session); } @@ -1157,10 +1157,10 @@ static void do_unbridge(switch_core_session_t *consumer_session, switch_core_ses if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(consumer_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", MANUAL_QUEUE_NAME); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "bridge-consumer-stop"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", MANUAL_QUEUE_NAME); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "bridge-consumer-stop"); if (outbound_id) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Outbound-ID", outbound_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Outbound-ID", outbound_id); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Use-Count", "%d", use_count); } switch_event_fire(&event); @@ -1169,16 +1169,16 @@ static void do_unbridge(switch_core_session_t *consumer_session, switch_core_ses if (caller_channel) { if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(caller_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", MANUAL_QUEUE_NAME); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "bridge-caller-stop"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", MANUAL_QUEUE_NAME); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "bridge-caller-stop"); switch_event_fire(&event); } } if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(consumer_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", MANUAL_QUEUE_NAME); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "consumer_stop"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", MANUAL_QUEUE_NAME); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "consumer_stop"); switch_event_fire(&event); } } @@ -1287,12 +1287,12 @@ static switch_status_t messagehook (switch_core_session_t *session, switch_core_ if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(consumer_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", MANUAL_QUEUE_NAME); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "bridge-consumer-start"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Caller-CID-Name", ced_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Caller-CID-Number", ced_number); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", MANUAL_QUEUE_NAME); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "bridge-consumer-start"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Caller-CID-Name", ced_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Caller-CID-Number", ced_number); if (outbound_id) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Outbound-ID", outbound_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Outbound-ID", outbound_id); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Use-Count", "%d", fifo_get_use_count(outbound_id)); } switch_event_fire(&event); @@ -1301,8 +1301,8 @@ static switch_status_t messagehook (switch_core_session_t *session, switch_core_ if (caller_channel) { if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(caller_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", MANUAL_QUEUE_NAME); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "bridge-caller-start"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", MANUAL_QUEUE_NAME); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "bridge-caller-start"); switch_event_fire(&event); } @@ -1558,22 +1558,22 @@ static void *SWITCH_THREAD_FUNC outbound_ringall_thread_run(switch_thread_t *thr switch_event_add_header(ovars, SWITCH_STACK_BOTTOM, "origination_caller_id_name", "(%s) %s", node->outbound_name, caller_id_name); } } else { - switch_event_add_header_string(ovars, SWITCH_STACK_BOTTOM, "origination_caller_id_name", caller_id_name); + switch_event_add_header_string_dup(ovars, SWITCH_STACK_BOTTOM, "origination_caller_id_name", caller_id_name); } } } if (!switch_event_get_header(ovars, "origination_caller_id_number")) { if ((cid_num = switch_event_get_header(pop, "caller-caller-id-number"))) { - switch_event_add_header_string(ovars, SWITCH_STACK_BOTTOM, "origination_caller_id_number", cid_num); + switch_event_add_header_string_dup(ovars, SWITCH_STACK_BOTTOM, "origination_caller_id_number", cid_num); } } if ((id = switch_event_get_header(pop, "unique-id"))) { - switch_event_add_header_string(ovars, SWITCH_STACK_BOTTOM, "fifo_bridge_uuid", id); + switch_event_add_header_string_dup(ovars, SWITCH_STACK_BOTTOM, "fifo_bridge_uuid", id); } - switch_event_add_header_string(ovars, SWITCH_STACK_BOTTOM, "fifo_originate_uuid", uuid_str); + switch_event_add_header_string_dup(ovars, SWITCH_STACK_BOTTOM, "fifo_originate_uuid", uuid_str); if ((export = switch_event_get_header(pop, "variable_fifo_export"))) { int argc; @@ -1587,7 +1587,7 @@ static void *SWITCH_THREAD_FUNC outbound_ringall_thread_run(switch_thread_t *thr char *name = switch_mprintf("variable_%s", argv[x]); if ((tmp = switch_event_get_header(pop, name))) { - switch_event_add_header_string(ovars, SWITCH_STACK_BOTTOM, argv[x], tmp); + switch_event_add_header_string_dup(ovars, SWITCH_STACK_BOTTOM, argv[x], tmp); } free(name); @@ -1606,12 +1606,12 @@ static void *SWITCH_THREAD_FUNC outbound_ringall_thread_run(switch_thread_t *thr switch_core_session_rwunlock(session); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", node->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "pre-dial"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "outbound-strategy", "ringall"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "caller-uuid", id); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "originate_string", originate_string); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Outbound-UUID-List", uuid_list); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", node->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "pre-dial"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "outbound-strategy", "ringall"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "caller-uuid", id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "originate_string", originate_string); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Outbound-UUID-List", uuid_list); switch_event_fire(&event); } @@ -1635,7 +1635,7 @@ static void *SWITCH_THREAD_FUNC outbound_ringall_thread_run(switch_thread_t *thr switch_snprintf(nstr, sizeof(nstr), "%s@%si@%sh", codec, ptime, rate); } - switch_event_add_header_string(ovars, SWITCH_STACK_BOTTOM, "absolute_codec_string", nstr); + switch_event_add_header_string_dup(ovars, SWITCH_STACK_BOTTOM, "absolute_codec_string", nstr); } add_caller_outbound_call(id, &cancel_cause); @@ -1678,15 +1678,15 @@ static void *SWITCH_THREAD_FUNC outbound_ringall_thread_run(switch_thread_t *thr } if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", node->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "post-dial"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "outbound-strategy", "ringall"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "caller-uuid", id); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "result", "failure"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "acceptable", acceptable); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "cause", switch_channel_cause2str(cause)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "originate_string", originate_string); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Outbound-UUID-List", uuid_list); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", node->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "post-dial"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "outbound-strategy", "ringall"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "caller-uuid", id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "result", "failure"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "acceptable", acceptable); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "cause", switch_channel_cause2str(cause)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "originate_string", originate_string); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Outbound-UUID-List", uuid_list); switch_event_fire(&event); } @@ -1697,14 +1697,14 @@ static void *SWITCH_THREAD_FUNC outbound_ringall_thread_run(switch_thread_t *thr if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", node->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "post-dial"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "outbound-strategy", "ringall"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "caller-uuid", id); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Outbound-UUID", switch_channel_get_variable(channel, "fifo_outbound_uuid")); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Outbound-UUID-List", uuid_list); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "result", "success"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "originate_string", originate_string); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", node->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "post-dial"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "outbound-strategy", "ringall"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "caller-uuid", id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Outbound-UUID", switch_channel_get_variable(channel, "fifo_outbound_uuid")); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Outbound-UUID-List", uuid_list); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "result", "success"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "originate_string", originate_string); switch_event_fire(&event); } @@ -1835,11 +1835,11 @@ static void *SWITCH_THREAD_FUNC outbound_enterprise_thread_run(switch_thread_t * } if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", node ? node->name : ""); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "pre-dial"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Outbound-UUID", h->uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "outbound-strategy", "enterprise"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "originate_string", originate_string); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", node ? node->name : ""); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "pre-dial"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Outbound-UUID", h->uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "outbound-strategy", "enterprise"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "originate_string", originate_string); switch_event_fire(&event); } @@ -1855,13 +1855,13 @@ static void *SWITCH_THREAD_FUNC outbound_enterprise_thread_run(switch_thread_t * fifo_execute_sql_queued(&sql, SWITCH_TRUE, SWITCH_TRUE); if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", node ? node->name : ""); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "post-dial"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Outbound-UUID", h->uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "outbound-strategy", "enterprise"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "result", "failure"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "cause", switch_channel_cause2str(cause)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "originate_string", originate_string); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", node ? node->name : ""); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "post-dial"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Outbound-UUID", h->uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "outbound-strategy", "enterprise"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "result", "failure"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "cause", switch_channel_cause2str(cause)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "originate_string", originate_string); switch_event_fire(&event); } @@ -1872,12 +1872,12 @@ static void *SWITCH_THREAD_FUNC outbound_enterprise_thread_run(switch_thread_t * if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", node ? node->name : ""); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "post-dial"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Outbound-UUID", h->uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "outbound-strategy", "enterprise"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "result", "success"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "originate_string", originate_string); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", node ? node->name : ""); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "post-dial"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Outbound-UUID", h->uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "outbound-strategy", "enterprise"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "result", "success"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "originate_string", originate_string); switch_event_fire(&event); } @@ -2237,30 +2237,30 @@ static void send_presence(fifo_node_t *node) } if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", "queue"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", "queue"); if (node->domain_name) { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "login", "%s@%s", node->name, node->domain_name); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", node->name, node->domain_name); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", node->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from", node->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", node->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from", node->name); } if ((wait_count = node_caller_count(node)) > 0) { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "force-status", "Active (%d waiting)", wait_count); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "force-status", "Idle"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "force-status", "Idle"); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", 0); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", wait_count > 0 ? "CS_ROUTING" : "CS_HANGUP"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "unique-id", node->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", wait_count > 0 ? "confirmed" : "terminated"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "presence-call-direction", "inbound"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", wait_count > 0 ? "CS_ROUTING" : "CS_HANGUP"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "unique-id", node->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", wait_count > 0 ? "confirmed" : "terminated"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "presence-call-direction", "inbound"); switch_event_fire(&event); } } @@ -2331,7 +2331,7 @@ static uint32_t fifo_add_outbound(const char *node_name, const char *url, uint32 switch_mutex_unlock(globals.mutex); switch_event_create(&call_event, SWITCH_EVENT_CHANNEL_DATA); - switch_event_add_header_string(call_event, SWITCH_STACK_BOTTOM, "dial-url", url); + switch_event_add_header_string_dup(call_event, SWITCH_STACK_BOTTOM, "dial-url", url); fifo_queue_push(node->fifo_list[priority], call_event); call_event = NULL; @@ -2414,11 +2414,11 @@ static void dec_use_count(switch_core_session_t *session, const char *type) originator_cp = switch_channel_get_caller_profile(channel); switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", MANUAL_QUEUE_NAME); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "channel-consumer-stop"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Type", type); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", MANUAL_QUEUE_NAME); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "channel-consumer-stop"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Type", type); if (outbound_id) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Outbound-ID", outbound_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Outbound-ID", outbound_id); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Use-Count", "%d", fifo_get_use_count(outbound_id)); } hold_usec = originator_cp->times->hold_accum; @@ -2504,13 +2504,13 @@ SWITCH_STANDARD_APP(fifo_track_call_function) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", MANUAL_QUEUE_NAME); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "channel-consumer-start"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Outbound-ID", data); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", MANUAL_QUEUE_NAME); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "channel-consumer-start"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Outbound-ID", data); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Use-Count", "%d", fifo_get_use_count(data)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Type", "manual"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Caller-CID-Name", cid_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Caller-CID-Number", cid_number); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Type", "manual"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Caller-CID-Name", cid_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Caller-CID-Number", cid_number); switch_event_fire(&event); } } @@ -2742,8 +2742,8 @@ SWITCH_STANDARD_APP(fifo_function) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "push"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "push"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "FIFO-Slot", "%d", p); switch_event_fire(&event); } @@ -2865,8 +2865,8 @@ SWITCH_STANDARD_APP(fifo_function) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", cd.do_orbit ? "timeout" : "abort"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", cd.do_orbit ? "timeout" : "abort"); switch_event_fire(&event); } @@ -2982,8 +2982,8 @@ SWITCH_STANDARD_APP(fifo_function) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "consumer_start"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "consumer_start"); switch_event_fire(&event); } @@ -3200,19 +3200,19 @@ SWITCH_STANDARD_APP(fifo_function) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "caller_outbound"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "caller_outbound"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "FIFO-Result", "failure:%s", switch_channel_cause2str(cause)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Outbound-URL", url); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Outbound-URL", url); switch_event_fire(&event); } } else { if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "caller_outbound"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Result", "success"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Outbound-URL", url); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "caller_outbound"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Result", "success"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Outbound-URL", url); switch_event_fire(&event); } url = NULL; @@ -3223,8 +3223,8 @@ SWITCH_STANDARD_APP(fifo_function) switch_channel_t *other_channel = switch_core_session_get_channel(other_session); if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(other_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "caller_pop"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "caller_pop"); switch_event_fire(&event); } } @@ -3241,9 +3241,9 @@ SWITCH_STANDARD_APP(fifo_function) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "consumer_pop"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Caller-UUID", switch_core_session_get_uuid(other_session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "consumer_pop"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Caller-UUID", switch_core_session_get_uuid(other_session)); switch_event_fire(&event); } @@ -3377,13 +3377,13 @@ SWITCH_STANDARD_APP(fifo_function) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "channel-consumer-start"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Type", "onhook"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Caller-CID-Name", cid_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Caller-CID-Number", cid_number); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "channel-consumer-start"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Type", "onhook"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Caller-CID-Name", cid_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Caller-CID-Number", cid_number); if (outbound_id) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Outbound-ID", outbound_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Outbound-ID", outbound_id); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Use-Count", "%d", fifo_get_use_count(outbound_id)); } switch_event_fire(&event); @@ -3391,10 +3391,10 @@ SWITCH_STANDARD_APP(fifo_function) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "bridge-consumer-start"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "bridge-consumer-start"); if (outbound_id) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Outbound-ID", outbound_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Outbound-ID", outbound_id); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Use-Count", "%d", fifo_get_use_count(outbound_id)); } @@ -3402,8 +3402,8 @@ SWITCH_STANDARD_APP(fifo_function) } if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(other_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "bridge-caller-start"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "bridge-caller-start"); switch_event_fire(&event); } @@ -3461,11 +3461,11 @@ SWITCH_STANDARD_APP(fifo_function) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { uint64_t hold_usec = 0, tt_usec = 0; switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", arg_fifo_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "channel-consumer-stop"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Type", "onhook"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", arg_fifo_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "channel-consumer-stop"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Type", "onhook"); if (outbound_id) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Outbound-ID", outbound_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Outbound-ID", outbound_id); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Use-Count", "%d", fifo_get_use_count(outbound_id)); } hold_usec = originator_cp->times->hold_accum; @@ -3488,10 +3488,10 @@ SWITCH_STANDARD_APP(fifo_function) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "bridge-consumer-stop"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "bridge-consumer-stop"); if (outbound_id) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Outbound-ID", outbound_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Outbound-ID", outbound_id); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "FIFO-Consumer-Use-Count", "%d", fifo_get_use_count(outbound_id)); } switch_event_fire(&event); @@ -3499,8 +3499,8 @@ SWITCH_STANDARD_APP(fifo_function) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { uint64_t hold_usec = 0, tt_usec = 0; switch_channel_event_set_data(other_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "bridge-caller-stop"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "bridge-caller-stop"); hold_usec = originatee_cp->times->hold_accum; tt_usec = (switch_micro_time_now() - originatee_cp->times->bridged) - hold_usec; switch_event_add_header(event, SWITCH_STACK_BOTTOM, "FIFO-Caller-Talk-Time-us", "%"SWITCH_TIME_T_FMT, tt_usec); @@ -3567,8 +3567,8 @@ SWITCH_STANDARD_APP(fifo_function) switch_channel_set_variable(channel, "fifo_status", "WRAPUP"); if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "consumer_wrapup"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "consumer_wrapup"); switch_event_fire(&event); } } @@ -3622,8 +3622,8 @@ SWITCH_STANDARD_APP(fifo_function) if (do_wait && switch_channel_ready(channel)) { if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "consumer_reentrance"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "consumer_reentrance"); switch_event_fire(&event); } } @@ -3631,8 +3631,8 @@ SWITCH_STANDARD_APP(fifo_function) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "consumer_stop"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Name", argv[0]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FIFO-Action", "consumer_stop"); switch_event_fire(&event); } diff --git a/src/mod/applications/mod_fsk/mod_fsk.c b/src/mod/applications/mod_fsk/mod_fsk.c index 1e22cff74f..af09e319e4 100644 --- a/src/mod/applications/mod_fsk/mod_fsk.c +++ b/src/mod/applications/mod_fsk/mod_fsk.c @@ -262,7 +262,7 @@ static switch_bool_t fsk_detect_callback(switch_media_bug_t *bug, void *user_dat switch_channel_get_name(channel), varname, val); switch_channel_set_variable(channel, varname, val); if (event) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, varname, val); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, varname, val); } } } diff --git a/src/mod/applications/mod_httapi/mod_httapi.c b/src/mod/applications/mod_httapi/mod_httapi.c index 4b32d87c6d..ac09b7d2fe 100644 --- a/src/mod/applications/mod_httapi/mod_httapi.c +++ b/src/mod/applications/mod_httapi/mod_httapi.c @@ -344,7 +344,7 @@ static switch_status_t parse_get_var(const char *tag_name, client_t *client, swi (!client->profile->var_params.get_var_list || switch_event_check_permission_list(client->profile->var_params.get_var_list, var))) { const char *vval = switch_channel_get_variable(client->channel, var); if (vval) { - switch_event_add_header_string(switch_true(perm) ? client->params : client->one_time_params, SWITCH_STACK_BOTTOM, var, vval); + switch_event_add_header_string_dup(switch_true(perm) ? client->params : client->one_time_params, SWITCH_STACK_BOTTOM, var, vval); } } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "variable %s permission denied!\n", var); @@ -600,8 +600,8 @@ static switch_status_t parse_playback(const char *tag_name, client_t *client, sw status = switch_ivr_play_and_detect_speech(client->session, file, sp_engine, sp_grammar, &result, input_timeout, args); if (!zstr(result)) { - switch_event_add_header_string(client->one_time_params, SWITCH_STACK_BOTTOM, name, result); - switch_event_add_header_string(client->one_time_params, SWITCH_STACK_BOTTOM, "input_type", "detected_speech"); + switch_event_add_header_string_dup(client->one_time_params, SWITCH_STACK_BOTTOM, name, result); + switch_event_add_header_string_dup(client->one_time_params, SWITCH_STACK_BOTTOM, "input_type", "detected_speech"); submit = 1; break; } @@ -631,8 +631,8 @@ static switch_status_t parse_playback(const char *tag_name, client_t *client, sw if (status == SWITCH_STATUS_BREAK) { if (error_file) { switch_ivr_play_file(client->session, NULL, error_file, &nullargs); - switch_event_add_header_string(client->one_time_params, SWITCH_STACK_BOTTOM, name, "invalid"); - switch_event_add_header_string(client->one_time_params, SWITCH_STACK_BOTTOM, "input_type", "invalid"); + switch_event_add_header_string_dup(client->one_time_params, SWITCH_STACK_BOTTOM, name, "invalid"); + switch_event_add_header_string_dup(client->one_time_params, SWITCH_STACK_BOTTOM, "input_type", "invalid"); } status = SWITCH_STATUS_SUCCESS; } else if (status == SWITCH_STATUS_FOUND) { @@ -658,8 +658,8 @@ static switch_status_t parse_playback(const char *tag_name, client_t *client, sw } } } - switch_event_add_header_string(client->one_time_params, SWITCH_STACK_BOTTOM, name, client->matching_action_binding->match_digits); - switch_event_add_header_string(client->one_time_params, SWITCH_STACK_BOTTOM, "input_type", "dtmf"); + switch_event_add_header_string_dup(client->one_time_params, SWITCH_STACK_BOTTOM, name, client->matching_action_binding->match_digits); + switch_event_add_header_string_dup(client->one_time_params, SWITCH_STACK_BOTTOM, "input_type", "dtmf"); } if (client->matching_action_binding->action) { @@ -693,7 +693,7 @@ static switch_status_t parse_playback(const char *tag_name, client_t *client, sw status = SWITCH_STATUS_FALSE; } else { - switch_event_add_header_string(client->params, SWITCH_STACK_BOTTOM, "url", sub_action); + switch_event_add_header_string_dup(client->params, SWITCH_STACK_BOTTOM, "url", sub_action); } } } @@ -807,12 +807,12 @@ static switch_status_t parse_sms(const char *tag_name, client_t *client, switch_ const char *to = switch_xml_attr(tag, "to"); if (to && switch_event_create(&event, SWITCH_EVENT_MESSAGE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", from_proto); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_proto", to_proto); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", from_proto); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "to_proto", to_proto); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from", switch_channel_get_variable(client->channel, "caller_id_number")); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to", to); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "text/plain"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from", switch_channel_get_variable(client->channel, "caller_id_number")); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "to", to); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "text/plain"); if (body) { switch_event_add_body(event, "%s", body); @@ -1105,12 +1105,12 @@ static switch_status_t parse_record(const char *tag_name, client_t *client, swit } if (sub_action) { - switch_event_add_header_string(client->params, SWITCH_STACK_BOTTOM, "url", sub_action); + switch_event_add_header_string_dup(client->params, SWITCH_STACK_BOTTOM, "url", sub_action); } if (!http && !zstr(tmp_record_path) && switch_file_exists(tmp_record_path, client->pool) == SWITCH_STATUS_SUCCESS) { char *key = switch_core_sprintf(client->pool, "attach_file:%s:%s.%s", name, fname, ext); - switch_event_add_header_string(client->one_time_params, SWITCH_STACK_BOTTOM, key, tmp_record_path); + switch_event_add_header_string_dup(client->one_time_params, SWITCH_STACK_BOTTOM, key, tmp_record_path); } end: @@ -1128,11 +1128,11 @@ static switch_status_t parse_common(const char *tag_name, client_t *client, swit const char *tmp_action = switch_xml_attr(tag, "temp-action"); if (action) { - switch_event_add_header_string(client->params, SWITCH_STACK_BOTTOM, "url", action); + switch_event_add_header_string_dup(client->params, SWITCH_STACK_BOTTOM, "url", action); } if (tmp_action) { - switch_event_add_header_string(client->one_time_params, SWITCH_STACK_BOTTOM, "url", tmp_action); + switch_event_add_header_string_dup(client->one_time_params, SWITCH_STACK_BOTTOM, "url", tmp_action); } return SWITCH_STATUS_SUCCESS; @@ -1164,7 +1164,7 @@ static switch_status_t parse_xml(client_t *client) if (zstr(val)) { val = NULL; } - switch_event_add_header_string(client->params, SWITCH_STACK_BOTTOM, tag->name, val); + switch_event_add_header_string_dup(client->params, SWITCH_STACK_BOTTOM, tag->name, val); } tag = tag->ordered; } @@ -1275,7 +1275,7 @@ static size_t get_header_callback(void *ptr, size_t size, size_t nmemb, void *us *cr = '\0'; } - switch_event_add_header_string(client->headers, SWITCH_STACK_BOTTOM, header, val); + switch_event_add_header_string_dup(client->headers, SWITCH_STACK_BOTTOM, header, val); } switch_safe_free(header); @@ -1383,7 +1383,7 @@ static client_t *client_create(switch_core_session_t *session, const char *profi switch_event_create(&client->one_time_params, SWITCH_EVENT_CLONE); client->one_time_params->flags |= EF_UNIQ_HEADERS; - switch_event_add_header_string(client->params, SWITCH_STACK_BOTTOM, "hostname", switch_core_get_switchname()); + switch_event_add_header_string_dup(client->params, SWITCH_STACK_BOTTOM, "hostname", switch_core_get_switchname()); return client; } @@ -1459,12 +1459,12 @@ static switch_status_t httapi_sync(client_t *client) if (!(url = switch_event_get_header(client->params, "url"))) { url = client->profile->url; - switch_event_add_header_string(client->params, SWITCH_STACK_BOTTOM, "url", url); + switch_event_add_header_string_dup(client->params, SWITCH_STACK_BOTTOM, "url", url); } get_style_method = method ? strcasecmp(method, "post") : 1; - switch_event_add_header_string(client->params, SWITCH_STACK_TOP, "session_id", session_id); + switch_event_add_header_string_dup(client->params, SWITCH_STACK_TOP, "session_id", session_id); dynamic_url = switch_event_expand_headers(client->params, url); @@ -1958,7 +1958,7 @@ static switch_status_t do_config(void) if (zstr(type)) type = profile->var_params.default_allow ? "deny" : "allow"; if (name) { - switch_event_add_header_string(profile->var_params.set_var_list, SWITCH_STACK_BOTTOM, name, type); + switch_event_add_header_string_dup(profile->var_params.set_var_list, SWITCH_STACK_BOTTOM, name, type); } } } @@ -1986,7 +1986,7 @@ static switch_status_t do_config(void) if (zstr(type)) type = profile->var_params.default_allow ? "deny" : "allow"; if (name) { - switch_event_add_header_string(profile->var_params.get_var_list, SWITCH_STACK_BOTTOM, name, type); + switch_event_add_header_string_dup(profile->var_params.get_var_list, SWITCH_STACK_BOTTOM, name, type); } } } @@ -2016,7 +2016,7 @@ static switch_status_t do_config(void) if (zstr(type)) type = profile->dial_params.default_allow ? "deny" : "allow"; if (name) { - switch_event_add_header_string(profile->dial_params.app_list, SWITCH_STACK_BOTTOM, name, type); + switch_event_add_header_string_dup(profile->dial_params.app_list, SWITCH_STACK_BOTTOM, name, type); } } } @@ -2045,7 +2045,7 @@ static switch_status_t do_config(void) if (zstr(type)) type = profile->var_params.default_allow ? "deny" : "allow"; if (name) { - switch_event_add_header_string(profile->var_params.expand_var_list, SWITCH_STACK_BOTTOM, name, type); + switch_event_add_header_string_dup(profile->var_params.expand_var_list, SWITCH_STACK_BOTTOM, name, type); } } } @@ -2068,7 +2068,7 @@ static switch_status_t do_config(void) if (zstr(type)) type = profile->var_params.default_allow ? "deny" : "allow"; if (name) { - switch_event_add_header_string(profile->var_params.api_list, SWITCH_STACK_BOTTOM, name, type); + switch_event_add_header_string_dup(profile->var_params.api_list, SWITCH_STACK_BOTTOM, name, type); } } } @@ -2207,24 +2207,24 @@ static switch_status_t my_on_reporting(switch_core_session_t *session) switch_channel_event_set_extended_data(channel, client->one_time_params); } - switch_event_add_header_string(client->one_time_params, SWITCH_STACK_BOTTOM, "exiting", "true"); + switch_event_add_header_string_dup(client->one_time_params, SWITCH_STACK_BOTTOM, "exiting", "true"); if (client->record.file) { char *key = switch_core_sprintf(client->pool, "attach_file:%s:%s.wav", client->record.name, switch_core_session_get_uuid(session)); switch_ivr_stop_record_session(client->session, client->record.file); - switch_event_add_header_string(client->one_time_params, SWITCH_STACK_BOTTOM, key, client->record.file); + switch_event_add_header_string_dup(client->one_time_params, SWITCH_STACK_BOTTOM, key, client->record.file); } var = switch_event_get_header(client->params, "url"); if (var && client->record.action) { if (strcmp(var, client->record.action)) { - switch_event_add_header_string(client->one_time_params, SWITCH_STACK_BOTTOM, "url", client->record.action); + switch_event_add_header_string_dup(client->one_time_params, SWITCH_STACK_BOTTOM, "url", client->record.action); httapi_sync(client); if (client->profile->perms.extended_data) { switch_channel_event_set_extended_data(channel, client->one_time_params); } - switch_event_add_header_string(client->one_time_params, SWITCH_STACK_BOTTOM, "exiting", "true"); + switch_event_add_header_string_dup(client->one_time_params, SWITCH_STACK_BOTTOM, "exiting", "true"); } } @@ -2276,7 +2276,7 @@ SWITCH_STANDARD_APP(httapi_function) switch_event_create(¶ms, SWITCH_EVENT_CLONE); params->flags |= EF_UNIQ_HEADERS; } - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "url", url); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "url", url); } } diff --git a/src/mod/applications/mod_lcr/mod_lcr.c b/src/mod/applications/mod_lcr/mod_lcr.c index ab7c163ce5..4424022055 100644 --- a/src/mod/applications/mod_lcr/mod_lcr.c +++ b/src/mod/applications/mod_lcr/mod_lcr.c @@ -676,7 +676,7 @@ static int route_add_callback(void *pArg, int argc, char **argv, char **columnNa } /* add all fields to the fields event */ - switch_event_add_header_string(additional->fields, SWITCH_STACK_BOTTOM, columnNames[i], argv[i]); + switch_event_add_header_string_dup(additional->fields, SWITCH_STACK_BOTTOM, columnNames[i], argv[i]); } cbt->matches++; @@ -968,15 +968,15 @@ static switch_status_t lcr_do_lookup(callback_t *cb_struct) } if (cb_struct->event) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(cb_struct->session), SWITCH_LOG_DEBUG, "we have an event\n"); - switch_event_add_header_string(cb_struct->event, SWITCH_STACK_BOTTOM, "lcr_rate_field", rate_field); - switch_event_add_header_string(cb_struct->event, SWITCH_STACK_BOTTOM, "lcr_user_rate_field", user_rate_field); - switch_event_add_header_string(cb_struct->event, SWITCH_STACK_BOTTOM, "lcr_query_digits", digits_copy); + switch_event_add_header_string_dup(cb_struct->event, SWITCH_STACK_BOTTOM, "lcr_rate_field", rate_field); + switch_event_add_header_string_dup(cb_struct->event, SWITCH_STACK_BOTTOM, "lcr_user_rate_field", user_rate_field); + switch_event_add_header_string_dup(cb_struct->event, SWITCH_STACK_BOTTOM, "lcr_query_digits", digits_copy); id_str = switch_core_sprintf(cb_struct->pool, "%d", cb_struct->profile->id); - switch_event_add_header_string(cb_struct->event, SWITCH_STACK_BOTTOM, "lcr_query_profile", id_str); - switch_event_add_header_string(cb_struct->event, SWITCH_STACK_BOTTOM, "lcr_query_expanded_digits", digits_expanded); - switch_event_add_header_string(cb_struct->event, SWITCH_STACK_BOTTOM, "lcr_query_expanded_lrn_digits", lrn_digits_expanded); + switch_event_add_header_string_dup(cb_struct->event, SWITCH_STACK_BOTTOM, "lcr_query_profile", id_str); + switch_event_add_header_string_dup(cb_struct->event, SWITCH_STACK_BOTTOM, "lcr_query_expanded_digits", digits_expanded); + switch_event_add_header_string_dup(cb_struct->event, SWITCH_STACK_BOTTOM, "lcr_query_expanded_lrn_digits", lrn_digits_expanded); if ( cb_struct->lrn_number ) { - switch_event_add_header_string(cb_struct->event, SWITCH_STACK_BOTTOM, "lcr_lrn", cb_struct->lrn_number); + switch_event_add_header_string_dup(cb_struct->event, SWITCH_STACK_BOTTOM, "lcr_lrn", cb_struct->lrn_number); } } diff --git a/src/mod/applications/mod_oreka/mod_oreka.c b/src/mod/applications/mod_oreka/mod_oreka.c index 560c34f6c6..4511103536 100644 --- a/src/mod/applications/mod_oreka/mod_oreka.c +++ b/src/mod/applications/mod_oreka/mod_oreka.c @@ -189,7 +189,7 @@ static void save_extra_headers(switch_event_t *extra_headers, switch_channel_t * const char *name = ei->name; char *value = ei->value; if (!strncasecmp(name, SIP_OREKA_HEADER_PREFIX, SIP_OREKA_HEADER_PREFIX_LEN)) { - switch_event_add_header_string(extra_headers, SWITCH_STACK_BOTTOM, name, value); + switch_event_add_header_string_dup(extra_headers, SWITCH_STACK_BOTTOM, name, value); } } switch_channel_variable_last(channel); diff --git a/src/mod/applications/mod_rad_auth/mod_rad_auth.c b/src/mod/applications/mod_rad_auth/mod_rad_auth.c index a4d43d545d..2ad3bd1578 100644 --- a/src/mod/applications/mod_rad_auth/mod_rad_auth.c +++ b/src/mod/applications/mod_rad_auth/mod_rad_auth.c @@ -752,7 +752,7 @@ switch_status_t load_config() switch_event_create(¶ms, SWITCH_EVENT_MESSAGE); switch_assert(params); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "profile", + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "profile", "profile_rad_auth"); //vsas diff --git a/src/mod/applications/mod_sms/mod_sms.c b/src/mod/applications/mod_sms/mod_sms.c index 68ad7d7ccc..33e13518fb 100644 --- a/src/mod/applications/mod_sms/mod_sms.c +++ b/src/mod/applications/mod_sms/mod_sms.c @@ -47,7 +47,7 @@ static void send_report(switch_event_t *event, const char * Status) { if (switch_event_create_subclass(&report, SWITCH_EVENT_CUSTOM, MY_EVENT_DELIVERY_REPORT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(report, SWITCH_STACK_BOTTOM, "Status", Status); + switch_event_add_header_string_dup(report, SWITCH_STACK_BOTTOM, "Status", Status); for (header = event->headers; header; header = header->next) { @@ -60,10 +60,10 @@ static void send_report(switch_event_t *event, const char * Status) { if (header->idx) { int i; for (i = 0; i < header->idx; i++) { - switch_event_add_header_string(report, SWITCH_STACK_PUSH, header->name, header->array[i]); + switch_event_add_header_string_dup(report, SWITCH_STACK_PUSH, header->name, header->array[i]); } } else { - switch_event_add_header_string(report, SWITCH_STACK_BOTTOM, header->name, header->value); + switch_event_add_header_string_dup(report, SWITCH_STACK_BOTTOM, header->name, header->value); } } switch_event_fire(&report); @@ -263,14 +263,14 @@ static int parse_exten(switch_event_t *event, switch_xml_t xexten, switch_event_ if (xinline) { switch_core_execute_chat_app(event, application, data); } else { - switch_event_add_header_string(*extension, SWITCH_STACK_BOTTOM, application, zstr(data) ? "__undef" : data); + switch_event_add_header_string_dup(*extension, SWITCH_STACK_BOTTOM, application, zstr(data) ? "__undef" : data); } } proceed = 1; } } else { if (field && strchr(expression, '(')) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "DP_MATCH", NULL); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "DP_MATCH", NULL); switch_capture_regex(re, proceed, field_data, ovector, "DP_MATCH", switch_regex_set_event_header_callback, event); } @@ -320,7 +320,7 @@ static int parse_exten(switch_event_t *event, switch_xml_t xexten, switch_event_ if (xinline) { switch_core_execute_chat_app(event, application, app_data); } else { - switch_event_add_header_string(*extension, SWITCH_STACK_BOTTOM, application, zstr(app_data) ? "__undef" : app_data); + switch_event_add_header_string_dup(*extension, SWITCH_STACK_BOTTOM, application, zstr(app_data) ? "__undef" : app_data); } } switch_safe_free(substituted); @@ -553,7 +553,7 @@ SWITCH_STANDARD_CHAT_APP(set_function) if (zstr(val)) { switch_event_del_header(message, var); } else { - switch_event_add_header_string(message, SWITCH_STACK_BOTTOM, var, val); + switch_event_add_header_string_dup(message, SWITCH_STACK_BOTTOM, var, val); } free(var); diff --git a/src/mod/applications/mod_sms_flowroute/mod_sms_flowroute.c b/src/mod/applications/mod_sms_flowroute/mod_sms_flowroute.c index 3c4f7c69cf..e88bc4f5ec 100644 --- a/src/mod/applications/mod_sms_flowroute/mod_sms_flowroute.c +++ b/src/mod/applications/mod_sms_flowroute/mod_sms_flowroute.c @@ -164,12 +164,12 @@ static int mod_sms_flowroute_profile_request_handler(h2o_handler_t *handler, h2o } switch_event_create(&evt, SWITCH_EVENT_MESSAGE); - switch_event_add_header_string(evt, SWITCH_STACK_BOTTOM, "to", cJSON_GetObjectCstr(parsed, "to")); - switch_event_add_header_string(evt, SWITCH_STACK_BOTTOM, "body", cJSON_GetObjectCstr(parsed, "body")); - switch_event_add_header_string(evt, SWITCH_STACK_BOTTOM, "from", cJSON_GetObjectCstr(parsed, "from")); - switch_event_add_header_string(evt, SWITCH_STACK_BOTTOM, "record_id", cJSON_GetObjectCstr(parsed, "id")); - switch_event_add_header_string(evt, SWITCH_STACK_BOTTOM, "context", "default"); - switch_event_add_header_string(evt, SWITCH_STACK_BOTTOM, "proto", "sms_flowroute"); + switch_event_add_header_string_dup(evt, SWITCH_STACK_BOTTOM, "to", cJSON_GetObjectCstr(parsed, "to")); + switch_event_add_header_string_dup(evt, SWITCH_STACK_BOTTOM, "body", cJSON_GetObjectCstr(parsed, "body")); + switch_event_add_header_string_dup(evt, SWITCH_STACK_BOTTOM, "from", cJSON_GetObjectCstr(parsed, "from")); + switch_event_add_header_string_dup(evt, SWITCH_STACK_BOTTOM, "record_id", cJSON_GetObjectCstr(parsed, "id")); + switch_event_add_header_string_dup(evt, SWITCH_STACK_BOTTOM, "context", "default"); + switch_event_add_header_string_dup(evt, SWITCH_STACK_BOTTOM, "proto", "sms_flowroute"); switch_core_chat_send("GLOBAL_SMS", evt); switch_event_destroy(&evt); @@ -486,7 +486,7 @@ SWITCH_STANDARD_APP(mod_sms_flowroute_app_send_function) /* Cycle through all of the channel headers, and ones with 'sms_flowroute_' prefix copy over without the prefix */ for ( chan_var = switch_channel_variable_first(channel); chan_var; chan_var = chan_var->next) { if ( !strncmp(chan_var->name, "sms_flowroute_", 14) ) { - switch_event_add_header_string(message, SWITCH_STACK_BOTTOM, chan_var->name + 14, chan_var->value); + switch_event_add_header_string_dup(message, SWITCH_STACK_BOTTOM, chan_var->name + 14, chan_var->value); } } @@ -531,8 +531,8 @@ SWITCH_STANDARD_API(mod_sms_flowroute_send_api) switch_goto_status(SWITCH_STATUS_GENERR, done); } - switch_event_add_header_string(message, SWITCH_STACK_BOTTOM, "destination_addr", argv[1]); - switch_event_add_header_string(message, SWITCH_STACK_BOTTOM, "source_addr", argv[2]); + switch_event_add_header_string_dup(message, SWITCH_STACK_BOTTOM, "destination_addr", argv[1]); + switch_event_add_header_string_dup(message, SWITCH_STACK_BOTTOM, "source_addr", argv[2]); switch_event_set_body(message, argv[3]); if (mod_sms_flowroute_profile_send_message(profile, message) != SWITCH_STATUS_SUCCESS) { diff --git a/src/mod/applications/mod_snom/mod_snom.c b/src/mod/applications/mod_snom/mod_snom.c index b3cf2b478e..c3f7b131d7 100644 --- a/src/mod/applications/mod_snom/mod_snom.c +++ b/src/mod/applications/mod_snom/mod_snom.c @@ -43,10 +43,10 @@ static switch_bool_t snom_bind_key(const char *key, if (user && host && profile) { if (switch_event_create(&event, SWITCH_EVENT_SEND_MESSAGE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "user", user); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "host", host); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "profile", profile); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "content-type", "application/x-buttons"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "user", user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "host", host); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "profile", profile); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "content-type", "application/x-buttons"); if (action && action_name) { switch_event_add_body(event, "k=%s\nc=%s\nl=%s\nn=%s\na=%s\n", key, light, label, action, action_name); } else { diff --git a/src/mod/applications/mod_sonar/mod_sonar.c b/src/mod/applications/mod_sonar/mod_sonar.c index 52bd5ebf17..bc5114ace2 100644 --- a/src/mod/applications/mod_sonar/mod_sonar.c +++ b/src/mod/applications/mod_sonar/mod_sonar.c @@ -197,9 +197,9 @@ SWITCH_STANDARD_APP(sonar_app) switch_event_add_header(event, SWITCH_STACK_BOTTOM, "ping_recv", "%d", ph.received); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "ping_lost", "%d", lost); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "lost_rate", "%2.2f%%", lost * 1.0 / loops); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "destination_number", + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "destination_number", switch_channel_get_variable(channel, "ping_destination_number")); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "sonar_ping_ref", + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "sonar_ping_ref", switch_channel_get_variable(channel, "sonar_ping_ref")); verbose_event = switch_channel_get_variable(channel, "sonar_channel_event"); diff --git a/src/mod/applications/mod_spandsp/mod_spandsp_dsp.c b/src/mod/applications/mod_spandsp/mod_spandsp_dsp.c index 836808a48d..af8fc1005b 100644 --- a/src/mod/applications/mod_spandsp/mod_spandsp_dsp.c +++ b/src/mod/applications/mod_spandsp/mod_spandsp_dsp.c @@ -117,11 +117,11 @@ static void put_text_msg(void *user_data, const uint8_t *msg, int len) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_TDD_RECV_MESSAGE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", "mod_spandsp"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", "tdd"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "subject", "TDD MESSAGE"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "TDD-Data", (char *)msg); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(pvt->session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", "mod_spandsp"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", "tdd"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "subject", "TDD MESSAGE"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "TDD-Data", (char *)msg); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(pvt->session)); switch_event_add_body(event, "%s\n\n", (char *)msg); if (switch_core_session_get_partner(pvt->session, &other_session) == SWITCH_STATUS_SUCCESS) { @@ -927,8 +927,8 @@ static switch_bool_t callprogress_detector_process_buffer(switch_media_bug_t *bu switch_channel_execute_on(channel, execute_on_tone_var); switch_channel_api_on(channel, api_on_tone_var); if (switch_event_create(&event, SWITCH_EVENT_DETECTED_TONE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Detected-Tone", detected_tone); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Detected-Tone", detected_tone); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(session)); switch_channel_event_set_data(channel, event); switch_event_fire(&event); } diff --git a/src/mod/applications/mod_spandsp/mod_spandsp_fax.c b/src/mod/applications/mod_spandsp/mod_spandsp_fax.c index 8c8d0103c4..6165c803d9 100644 --- a/src/mod/applications/mod_spandsp/mod_spandsp_fax.c +++ b/src/mod/applications/mod_spandsp/mod_spandsp_fax.c @@ -386,17 +386,17 @@ static int phase_b_handler(void *user_data, int result) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, pvt->app_mode == FUNCTION_TX ? SPANDSP_EVENT_TXFAXNEGOCIATERESULT : SPANDSP_EVENT_RXFAXNEGOCIATERESULT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "uuid", switch_core_session_get_uuid(session)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-transfer-rate", fax_transfer_rate); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-ecm-used", (t30_stats.error_correcting_mode) ? "on" : "off"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-t38-status", get_t38_status(pvt->t38_mode)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-local-station-id", local_ident); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-remote-station-id", far_ident); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-remote-country", switch_str_nil(t30_get_rx_country(pvt->t30))); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-remote-vendor", switch_str_nil(t30_get_rx_vendor(pvt->t30))); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-remote-model", switch_str_nil(t30_get_rx_model(pvt->t30))); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "uuid", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-transfer-rate", fax_transfer_rate); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-ecm-used", (t30_stats.error_correcting_mode) ? "on" : "off"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-t38-status", get_t38_status(pvt->t38_mode)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-local-station-id", local_ident); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-remote-station-id", far_ident); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-remote-country", switch_str_nil(t30_get_rx_country(pvt->t30))); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-remote-vendor", switch_str_nil(t30_get_rx_vendor(pvt->t30))); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-remote-model", switch_str_nil(t30_get_rx_model(pvt->t30))); if (pvt->app_mode == FUNCTION_TX) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-document-total-pages", fax_document_total_pages); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-document-total-pages", fax_document_total_pages); } switch_event_fire(&event); } @@ -521,20 +521,20 @@ static int phase_d_handler(void *user_data, int msg) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, pvt->app_mode == FUNCTION_TX ? SPANDSP_EVENT_TXFAXPAGERESULT : SPANDSP_EVENT_RXFAXPAGERESULT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "uuid", switch_core_session_get_uuid(session)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-document-transferred-pages", fax_document_transferred_pages); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "uuid", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-document-transferred-pages", fax_document_transferred_pages); if (pvt->app_mode == FUNCTION_TX) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-document-total-pages", fax_document_total_pages); - } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-image-resolution", fax_line_image_resolution); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-file-image-resolution", fax_file_image_resolution); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-image-size", fax_image_size); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-image-pixel-size", fax_line_image_pixel_size); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-file-image-pixel-size", fax_file_image_pixel_size); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-bad-rows", fax_bad_rows); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-longest-bad-row-run", fax_longest_bad_row_run); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-encoding", fax_encoding); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-encoding-name", t4_compression_to_str(t30_stats.compression)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-document-total-pages", fax_document_total_pages); + } + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-image-resolution", fax_line_image_resolution); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-file-image-resolution", fax_file_image_resolution); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-image-size", fax_image_size); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-image-pixel-size", fax_line_image_pixel_size); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-file-image-pixel-size", fax_file_image_pixel_size); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-bad-rows", fax_bad_rows); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-longest-bad-row-run", fax_longest_bad_row_run); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-encoding", fax_encoding); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-encoding-name", t4_compression_to_str(t30_stats.compression)); switch_event_fire(&event); } @@ -676,19 +676,19 @@ static void phase_e_handler(void *user_data, int result) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, pvt->app_mode == FUNCTION_TX ? SPANDSP_EVENT_TXFAXRESULT : SPANDSP_EVENT_RXFAXRESULT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-success", (result == T30_ERR_OK) ? "1" : "0"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-result-code", fax_result_code); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-result-text", t30_completion_code_to_str(result)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-document-transferred-pages", fax_document_transferred_pages); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-document-total-pages", fax_document_total_pages); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-image-resolution", fax_image_resolution); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-image-size", fax_image_size); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-bad-rows", fax_bad_rows); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-transfer-rate", fax_transfer_rate); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-ecm-used", (t.error_correcting_mode) ? "on" : "off"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-t38-status", get_t38_status(pvt->t38_mode)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-local-station-id", local_ident); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fax-remote-station-id", far_ident); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-success", (result == T30_ERR_OK) ? "1" : "0"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-result-code", fax_result_code); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-result-text", t30_completion_code_to_str(result)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-document-transferred-pages", fax_document_transferred_pages); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-document-total-pages", fax_document_total_pages); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-image-resolution", fax_image_resolution); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-image-size", fax_image_size); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-bad-rows", fax_bad_rows); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-transfer-rate", fax_transfer_rate); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-ecm-used", (t.error_correcting_mode) ? "on" : "off"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-t38-status", get_t38_status(pvt->t38_mode)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-local-station-id", local_ident); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fax-remote-station-id", far_ident); switch_event_fire(&event); } @@ -2021,8 +2021,8 @@ static switch_status_t t38_gateway_on_consume_media(switch_core_session_t *sessi switch_core_session_receive_message(session, &msg); if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_BRIDGE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridge-A-Unique-ID", switch_core_session_get_uuid(session)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridge-B-Unique-ID", peer_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Bridge-A-Unique-ID", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Bridge-B-Unique-ID", peer_uuid); switch_channel_event_set_data(channel, event); switch_event_fire(&event); } @@ -2410,7 +2410,7 @@ static switch_bool_t tone_detect_callback(switch_media_bug_t *bug, void *user_da switch_core_session_t *session = NULL; switch_channel_t *channel = NULL; - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Detected-Fax-Tone", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Detected-Fax-Tone", "true"); session = switch_core_media_bug_get_session(bug); if (session) { @@ -2425,7 +2425,7 @@ static switch_bool_t tone_detect_callback(switch_media_bug_t *bug, void *user_da if (switch_core_session_queue_event(cont->session, &event) != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(switch_core_media_bug_get_session(bug)), SWITCH_LOG_ERROR, "Event queue failed!\n"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "delivery-failure", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "delivery-failure", "true"); switch_event_fire(&event); } } diff --git a/src/mod/applications/mod_stress/mod_stress.cpp b/src/mod/applications/mod_stress/mod_stress.cpp index 66da2d26dc..249199c7d6 100644 --- a/src/mod/applications/mod_stress/mod_stress.cpp +++ b/src/mod/applications/mod_stress/mod_stress.cpp @@ -173,15 +173,15 @@ static switch_bool_t stress_callback(switch_media_bug_t *bug, void *user_data, s switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(switch_core_media_bug_get_session(bug)), SWITCH_LOG_DEBUG, "Stress %0.2f\n", sth->stress); if (switch_event_create(&event, SWITCH_EVENT_DETECTED_SPEECH) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Speech-Type", "stress-level"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Speech-Type", "stress-level"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Stress-Level", "%0.2f", sth->stress); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(sth->session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(sth->session)); if (switch_event_dup(&dup, event) == SWITCH_STATUS_SUCCESS) { switch_event_fire(&dup); } if (switch_core_session_queue_event(sth->session, &event) != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(switch_core_media_bug_get_session(bug)), SWITCH_LOG_ERROR, "Event queue failed!\n"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "delivery-failure", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "delivery-failure", "true"); switch_event_fire(&event); } } diff --git a/src/mod/applications/mod_translate/mod_translate.c b/src/mod/applications/mod_translate/mod_translate.c index efbcd3f14b..909aa69e2a 100644 --- a/src/mod/applications/mod_translate/mod_translate.c +++ b/src/mod/applications/mod_translate/mod_translate.c @@ -351,9 +351,9 @@ SWITCH_STANDARD_API(translate_function) if (zstr(areacode)) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "no default_areacode set, using default of 777\n"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "areacode", "777"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "areacode", "777"); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "areacode", areacode); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "areacode", areacode); } } translate_number(argv[0], argv[1], &translated, session, event, pool); diff --git a/src/mod/applications/mod_valet_parking/mod_valet_parking.c b/src/mod/applications/mod_valet_parking/mod_valet_parking.c index c304cad824..7021ce9fd9 100644 --- a/src/mod/applications/mod_valet_parking/mod_valet_parking.c +++ b/src/mod/applications/mod_valet_parking/mod_valet_parking.c @@ -331,38 +331,38 @@ static void valet_send_presence(const char *lot_name, valet_lot_t *lot, valet_to if (count > 0) { if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", VALET_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", lot_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", VALET_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", lot_name); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", lot_name, domain_name); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "force-status", "Active (%d caller%s)", count, count == 1 ? "" : "s"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", "active"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", "active"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "unique-id", lot_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_ROUTING"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", "confirmed"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "presence-call-direction", "inbound"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "unique-id", lot_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_ROUTING"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", "confirmed"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "presence-call-direction", "inbound"); switch_event_fire(&event); } } else { if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", VALET_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", lot_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", VALET_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", lot_name); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", lot_name, domain_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "force-status", "Empty"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "force-status", "Empty"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "unique-id", lot_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", "terminated"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "presence-call-direction", "inbound"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "unique-id", lot_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", "terminated"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "presence-call-direction", "inbound"); switch_event_fire(&event); } } @@ -371,34 +371,34 @@ static void valet_send_presence(const char *lot_name, valet_lot_t *lot, valet_to if (in) { if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", VALET_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", token->ext); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", VALET_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", token->ext); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", token->ext, domain_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "force-status", token->bridged == 0 ? "Holding" : "Active"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", "active"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "force-status", token->bridged == 0 ? "Holding" : "Active"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", "active"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "unique-id", token->ext); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_ROUTING"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", "confirmed"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "presence-call-direction", token->bridged == 0 ? "outbound" : "inbound"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "unique-id", token->ext); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_ROUTING"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", "confirmed"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "presence-call-direction", token->bridged == 0 ? "outbound" : "inbound"); switch_event_fire(&event); } } else { if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", VALET_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", token->ext); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", VALET_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", token->ext); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", token->ext, domain_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "force-status", "Empty"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "force-status", "Empty"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "unique-id", token->ext); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", "terminated"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "presence-call-direction", "inbound"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "unique-id", token->ext); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", "terminated"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "presence-call-direction", "inbound"); switch_event_fire(&event); } } @@ -577,10 +577,10 @@ SWITCH_STANDARD_APP(valet_parking_function) if (!zstr(token->uuid) && (b_session = switch_core_session_locate(token->uuid))) { if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, VALET_EVENT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Valet-Lot-Name", lot_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Valet-Extension", ext); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "bridge"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridge-To-UUID", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Valet-Lot-Name", lot_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Valet-Extension", ext); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "bridge"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Bridge-To-UUID", switch_core_session_get_uuid(session)); switch_channel_event_set_data(switch_core_session_get_channel(b_session), event); switch_event_fire(&event); switch_core_session_rwunlock(b_session); @@ -682,9 +682,9 @@ SWITCH_STANDARD_APP(valet_parking_function) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, VALET_EVENT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Valet-Lot-Name", lot_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Valet-Extension", ext); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "hold"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Valet-Lot-Name", lot_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Valet-Extension", ext); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "hold"); switch_channel_event_set_data(channel, event); switch_event_fire(&event); } @@ -747,9 +747,9 @@ SWITCH_STANDARD_APP(valet_parking_function) if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, VALET_EVENT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Valet-Lot-Name", lot_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Valet-Extension", ext); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "exit"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Valet-Lot-Name", lot_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Valet-Extension", ext); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action", "exit"); switch_channel_event_set_data(channel, event); switch_event_fire(&event); } @@ -847,41 +847,41 @@ static void pres_event_handler(switch_event_t *event) if (count) { if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", VALET_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", lot_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", VALET_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", lot_name); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", lot_name, domain_name); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "force-status", "Active (%d caller%s)", count, count == 1 ? "" : "s"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", "active"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", "active"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "unique-id", lot_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_ROUTING"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", "confirmed"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "presence-call-direction", "inbound"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "unique-id", lot_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_ROUTING"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", "confirmed"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "presence-call-direction", "inbound"); if (call_id) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-id", call_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call-id", call_id); } switch_event_fire(&event); } found++; } else { if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", VALET_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", VALET_PROTO); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", lot_name, domain_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "force-status", "Empty"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "force-status", "Empty"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "unique-id", lot_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", "terminated"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "presence-call-direction", "inbound"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "unique-id", lot_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", "terminated"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "presence-call-direction", "inbound"); if (call_id) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-id", call_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call-id", call_id); } switch_event_fire(&event); } @@ -916,20 +916,20 @@ static void pres_event_handler(switch_event_t *event) found++; if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", VALET_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", lot_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", VALET_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", lot_name); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", lot_name, domain_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "force-status", token->bridged == 0 ? "Holding" : "Active"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "force-status", token->bridged == 0 ? "Holding" : "Active"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "unique-id", lot_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_ROUTING"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", "confirmed"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "presence-call-direction", token->bridged == 0 ? "outbound" : "inbound"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "unique-id", lot_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_ROUTING"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", "confirmed"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "presence-call-direction", token->bridged == 0 ? "outbound" : "inbound"); if (call_id) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-id", call_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call-id", call_id); } switch_event_fire(&event); } @@ -943,21 +943,21 @@ static void pres_event_handler(switch_event_t *event) if (!found && switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", VALET_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", lot_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", VALET_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", lot_name); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", lot_name, domain_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "force-status", "Empty"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "force-status", "Empty"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "unique-id", lot_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", "terminated"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "presence-call-direction", "inbound"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "unique-id", lot_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", "terminated"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "presence-call-direction", "inbound"); if (call_id) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-id", call_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call-id", call_id); } switch_event_fire(&event); } diff --git a/src/mod/applications/mod_vmd/mod_vmd.c b/src/mod/applications/mod_vmd/mod_vmd.c index a4a0917404..10794db33a 100644 --- a/src/mod/applications/mod_vmd/mod_vmd.c +++ b/src/mod/applications/mod_vmd/mod_vmd.c @@ -315,11 +315,11 @@ static void find_beep(vmd_session_info_t *vmd_info, switch_frame_t *frame) return; } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Beep-Status", "stop"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Beep-Status", "stop"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Beep-Time", "%d", (int) vmd_info->timestamp / POINTS); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(vmd_info->session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(vmd_info->session)); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Frequency", "%6.4lf", vmd_info->beep_freq); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-command", "vmd"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call-command", "vmd"); if ((switch_event_dup(&event_copy, event)) != SWITCH_STATUS_SUCCESS) { return; diff --git a/src/mod/applications/mod_voicemail/mod_voicemail.c b/src/mod/applications/mod_voicemail/mod_voicemail.c index 6ece9f4f47..71b57d6401 100644 --- a/src/mod/applications/mod_voicemail/mod_voicemail.c +++ b/src/mod/applications/mod_voicemail/mod_voicemail.c @@ -739,10 +739,10 @@ static vm_profile_t *load_profile(const char *profile_name) /* Take care of the custom config structure */ if ((x_email = switch_xml_child(x_profile, "email"))) { if ((param = switch_xml_child(x_email, "body"))) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "email_body", param->txt); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "email_body", param->txt); } if ((param = switch_xml_child(x_email, "headers"))) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "email_headers", param->txt); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "email_headers", param->txt); } for (param = switch_xml_child(x_email, "param"); param; param = param->next) { @@ -751,7 +751,7 @@ static vm_profile_t *load_profile(const char *profile_name) if ((var = (char *) switch_xml_attr_soft(param, "name")) && (val = (char *) switch_xml_attr_soft(param, "value"))) { switch_snprintf(buf, 2048, "email_%s", var); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, buf, val); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, buf, val); } } } @@ -1361,7 +1361,7 @@ static char *resolve_id(const char *myid, const char *domain_name, const char *a char *ret = (char *) myid; switch_event_create(¶ms, SWITCH_EVENT_GENERAL); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "action", action); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "action", action); if (switch_xml_locate_user_merged("id:number-alias", myid, domain_name, NULL, &xx_user, params) == SWITCH_STATUS_SUCCESS) { ret = strdup(switch_xml_attr(xx_user, "id")); @@ -1873,7 +1873,7 @@ static switch_status_t listen_file(switch_core_session_t *session, vm_profile_t /* this isn't done? it was in the other place * switch_channel_event_set_data(channel, event); */ - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Message-Type", "forwarded-voicemail"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Message-Type", "forwarded-voicemail"); switch_event_fire(&event); } @@ -1934,8 +1934,8 @@ static void update_mwi(vm_profile_t *profile, const char *id, const char *domain if (total_new_messages || total_new_urgent_messages) { yn = "yes"; } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "MWI-Messages-Waiting", yn); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Update-Reason", update_reason); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "MWI-Messages-Waiting", yn); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Update-Reason", update_reason); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "MWI-Message-Account", "%s@%s", id, domain_name); if (profile->send_full_vm_header) { @@ -1953,9 +1953,9 @@ static void update_mwi(vm_profile_t *profile, const char *id, const char *domain switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Update MWI: Voice Message %d/%d\n", total_new_messages, total_saved_messages); switch_event_create_subclass(&message_event, SWITCH_EVENT_CUSTOM, VM_EVENT_MAINT); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "VM-Action", "mwi-update"); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "VM-User", id); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "VM-Domain", domain_name); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "VM-Action", "mwi-update"); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "VM-User", id); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "VM-Domain", domain_name); switch_event_add_header(message_event, SWITCH_STACK_BOTTOM, "VM-Total-New", "%d", total_new_messages); switch_event_add_header(message_event, SWITCH_STACK_BOTTOM, "VM-Total-Saved", "%d", total_saved_messages); switch_event_add_header(message_event, SWITCH_STACK_BOTTOM, "VM-Total-New-Urgent", "%d", total_new_urgent_messages); @@ -2054,10 +2054,10 @@ static void voicemail_check_main(switch_core_session_t *session, vm_profile_t *p switch_event_create_subclass(¶ms, SWITCH_EVENT_CUSTOM, VM_EVENT_MAINT); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-Action", "folder-summary"); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-User", myid); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-Domain", domain_name); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-Folder", myfolder); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-Action", "folder-summary"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-User", myid); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-Domain", domain_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-Folder", myfolder); switch_event_add_header(params, SWITCH_STACK_BOTTOM, "VM-Total-New-Messages", "%u", total_new_messages); switch_event_add_header(params, SWITCH_STACK_BOTTOM, "VM-Total-Saved-Messages", "%u", total_saved_messages); switch_event_add_header(params, SWITCH_STACK_BOTTOM, "VM-Total-New-Urgent-Messages", "%u", total_new_urgent_messages); @@ -2254,13 +2254,13 @@ static void voicemail_check_main(switch_core_session_t *session, vm_profile_t *p switch_event_create_subclass(¶ms, SWITCH_EVENT_CUSTOM, VM_EVENT_MAINT); if (file_path == NULL) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-Action", "remove-greeting"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-Action", "remove-greeting"); } else { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-Action", "change-greeting"); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-Greeting-Path", file_path); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-Action", "change-greeting"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-Greeting-Path", file_path); } - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-User", myid); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-Domain", domain_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-User", myid); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-Domain", domain_name); switch_channel_event_set_data(channel, params); switch_event_fire(¶ms); } @@ -2289,10 +2289,10 @@ static void voicemail_check_main(switch_core_session_t *session, vm_profile_t *p switch_safe_free(tmp_file_path); switch_event_create_subclass(¶ms, SWITCH_EVENT_CUSTOM, VM_EVENT_MAINT); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-Action", "record-greeting"); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-Greeting-Path", file_path); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-User", myid); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-Domain", domain_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-Action", "record-greeting"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-Greeting-Path", file_path); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-User", myid); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-Domain", domain_name); switch_channel_event_set_data(channel, params); switch_event_fire(¶ms); @@ -2314,10 +2314,10 @@ static void voicemail_check_main(switch_core_session_t *session, vm_profile_t *p switch_event_create_subclass(¶ms, SWITCH_EVENT_CUSTOM, VM_EVENT_MAINT); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-Action", "change-password"); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-User-Password", buf); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-User", myid); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-Domain", domain_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-Action", "change-password"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-User-Password", buf); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-User", myid); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-Domain", domain_name); switch_channel_event_set_data(channel, params); if (zstr(buf) && !profile->allow_empty_password_auth) { @@ -2365,10 +2365,10 @@ static void voicemail_check_main(switch_core_session_t *session, vm_profile_t *p switch_safe_free(sql); switch_event_create_subclass(¶ms, SWITCH_EVENT_CUSTOM, VM_EVENT_MAINT); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-Action", "record-name"); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-Name-Path", file_path); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-User", myid); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "VM-Domain", domain_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-Action", "record-name"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-Name-Path", file_path); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-User", myid); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "VM-Domain", domain_name); switch_channel_event_set_data(channel, params); switch_event_fire(¶ms); @@ -2455,9 +2455,9 @@ static void voicemail_check_main(switch_core_session_t *session, vm_profile_t *p switch_event_create(¶ms, SWITCH_EVENT_GENERAL); switch_assert(params); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "action", "voicemail-lookup"); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "destination_number", caller_profile->destination_number); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "caller_id_number", caller_id_number); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "action", "voicemail-lookup"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "destination_number", caller_profile->destination_number); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "caller_id_number", caller_id_number); if (switch_xml_locate_user_merged("id:number-alias", myid, domain_name, switch_channel_get_variable(channel, "network_addr"), &x_user, params) != SWITCH_STATUS_SUCCESS) { @@ -2605,10 +2605,10 @@ static void voicemail_check_main(switch_core_session_t *session, vm_profile_t *p } switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, VM_EVENT_MAINT); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "VM-Action", "authentication"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "VM-Auth-Result", auth ? "success" : "fail"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "VM-User", myid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "VM-Domain", domain_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "VM-Action", "authentication"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "VM-Auth-Result", auth ? "success" : "fail"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "VM-User", myid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "VM-Domain", domain_name); switch_channel_event_set_data(channel, event); switch_event_fire(&event); @@ -2894,15 +2894,15 @@ static switch_status_t deliver_vm(vm_profile_t *profile, switch_event_t *message_event; switch_event_create_subclass(&message_event, SWITCH_EVENT_CUSTOM, VM_EVENT_MAINT); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "VM-Action", "leave-message"); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "VM-User", myid); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "VM-Domain", domain_name); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "VM-Caller-ID-Name", caller_id_name); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "VM-Caller-ID-Number", caller_id_number); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "VM-File-Path", file_path); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "VM-Flags", read_flags); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "VM-Folder", myfolder); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "VM-UUID", use_uuid); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "VM-Action", "leave-message"); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "VM-User", myid); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "VM-Domain", domain_name); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "VM-Caller-ID-Name", caller_id_name); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "VM-Caller-ID-Number", caller_id_number); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "VM-File-Path", file_path); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "VM-Flags", read_flags); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "VM-Folder", myfolder); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "VM-UUID", use_uuid); switch_event_add_header(message_event, SWITCH_STACK_BOTTOM, "VM-Message-Len", "%u", message_len); switch_event_add_header(message_event, SWITCH_STACK_BOTTOM, "VM-Timestamp", "%lu", (unsigned long) switch_epoch_time_now(NULL)); if (channel) { @@ -2952,37 +2952,37 @@ static switch_status_t deliver_vm(vm_profile_t *profile, } formatted_cid_num = switch_format_number(caller_id_number); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "voicemail_current_folder", myfolder); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "voicemail_current_folder", myfolder); switch_snprintf(tmpvar, sizeof(tmpvar), "%d", total_new_messages); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "voicemail_total_new_messages", tmpvar); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "voicemail_total_new_messages", tmpvar); switch_snprintf(tmpvar, sizeof(tmpvar), "%d", total_saved_messages); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "voicemail_total_saved_messages", tmpvar); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "voicemail_total_saved_messages", tmpvar); switch_snprintf(tmpvar, sizeof(tmpvar), "%d", total_new_urgent_messages); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "voicemail_urgent_new_messages", tmpvar); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "voicemail_urgent_new_messages", tmpvar); switch_snprintf(tmpvar, sizeof(tmpvar), "%d", total_saved_urgent_messages); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "voicemail_urgent_saved_messages", tmpvar); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "voicemail_account", myid); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "voicemail_domain", domain_name); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "voicemail_caller_id_number", caller_id_number); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "voicemail_formatted_caller_id_number", formatted_cid_num); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "voicemail_caller_id_name", caller_id_name); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "voicemail_file_path", file_path); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "voicemail_read_flags", read_flags); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "voicemail_time", date); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "voicemail_uuid", use_uuid); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "voicemail_urgent_saved_messages", tmpvar); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "voicemail_account", myid); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "voicemail_domain", domain_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "voicemail_caller_id_number", caller_id_number); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "voicemail_formatted_caller_id_number", formatted_cid_num); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "voicemail_caller_id_name", caller_id_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "voicemail_file_path", file_path); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "voicemail_read_flags", read_flags); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "voicemail_time", date); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "voicemail_uuid", use_uuid); switch_safe_free(formatted_cid_num); switch_snprintf(tmpvar, sizeof(tmpvar), "%d", priority); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "voicemail_priority", tmpvar); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "voicemail_priority", tmpvar); if (vm_email) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "voicemail_email", vm_email); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "voicemail_email", vm_email); } if (vm_email_from) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "voicemail_email_from", vm_email_from); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "voicemail_email_from", vm_email_from); } if (vm_notify_email) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "voicemail_notify_email", vm_notify_email); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "voicemail_notify_email", vm_notify_email); } l_duration = switch_time_make(message_len, 0); switch_core_measure_time(l_duration, &duration); @@ -2990,7 +2990,7 @@ static switch_status_t deliver_vm(vm_profile_t *profile, duration.hr += duration.day * 24; switch_snprintf(duration_str, sizeof(duration_str), "%.2u:%.2u:%.2u", duration.hr, duration.min, duration.sec); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "voicemail_message_len", duration_str); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "voicemail_message_len", duration_str); if (!zstr(vm_email_from)) { from = switch_core_strdup(pool, vm_email_from); @@ -3023,7 +3023,7 @@ static switch_status_t deliver_vm(vm_profile_t *profile, switch_event_dup(&event, params); if (event) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Message-Type", "voicemail"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Message-Type", "voicemail"); switch_event_fire(&event); } @@ -3077,7 +3077,7 @@ static switch_status_t deliver_vm(vm_profile_t *profile, switch_event_dup(&event, params); if (event) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Message-Type", "voicemail-notify"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Message-Type", "voicemail-notify"); switch_event_fire(&event); } @@ -3248,20 +3248,20 @@ static switch_status_t voicemail_inject(const char *data, switch_core_session_t switch_assert(my_params); if (isgroup) { - switch_event_add_header_string(my_params, SWITCH_STACK_BOTTOM, "group", user); + switch_event_add_header_string_dup(my_params, SWITCH_STACK_BOTTOM, "group", user); } else { if (isall) { - switch_event_add_header_string(my_params, SWITCH_STACK_BOTTOM, "user", "_all_"); + switch_event_add_header_string_dup(my_params, SWITCH_STACK_BOTTOM, "user", "_all_"); } else { - switch_event_add_header_string(my_params, SWITCH_STACK_BOTTOM, "user", user); + switch_event_add_header_string_dup(my_params, SWITCH_STACK_BOTTOM, "user", user); } } if (forwarded_by) { - switch_event_add_header_string(my_params, SWITCH_STACK_BOTTOM, "Forwarded-By", forwarded_by); + switch_event_add_header_string_dup(my_params, SWITCH_STACK_BOTTOM, "Forwarded-By", forwarded_by); } - switch_event_add_header_string(my_params, SWITCH_STACK_BOTTOM, "domain", domain); - switch_event_add_header_string(my_params, SWITCH_STACK_BOTTOM, "purpose", "publish-vm"); + switch_event_add_header_string_dup(my_params, SWITCH_STACK_BOTTOM, "domain", domain); + switch_event_add_header_string_dup(my_params, SWITCH_STACK_BOTTOM, "purpose", "publish-vm"); if (switch_xml_locate_domain(domain, my_params, &xml_root, &x_domain) != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Cannot locate domain %s\n", domain); @@ -3417,7 +3417,7 @@ static switch_status_t voicemail_leave_main(switch_core_session_t *session, vm_p switch_event_create(&locate_params, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(locate_params); - switch_event_add_header_string(locate_params, SWITCH_STACK_BOTTOM, "action", "voicemail-lookup"); + switch_event_add_header_string_dup(locate_params, SWITCH_STACK_BOTTOM, "action", "voicemail-lookup"); if (switch_xml_locate_user_merged("id:number-alias", id, domain_name, switch_channel_get_variable(channel, "network_addr"), &x_user, locate_params) == SWITCH_STATUS_SUCCESS) { @@ -3962,8 +3962,8 @@ SWITCH_STANDARD_API(prefs_api_function) if (total_new_messages || total_new_urgent_messages) { \ yn = "yes"; \ } \ - switch_event_add_header_string(new_event, SWITCH_STACK_BOTTOM, "MWI-Messages-Waiting", yn); \ - switch_event_add_header_string(new_event, SWITCH_STACK_BOTTOM, "MWI-Message-Account", account); \ + switch_event_add_header_string_dup(new_event, SWITCH_STACK_BOTTOM, "MWI-Messages-Waiting", yn); \ + switch_event_add_header_string_dup(new_event, SWITCH_STACK_BOTTOM, "MWI-Message-Account", account); \ switch_event_add_header(new_event, SWITCH_STACK_BOTTOM, "MWI-Voice-Message", "%d/%d (%d/%d)", \ +total_new_messages, total_saved_messages, total_new_urgent_messages, total_saved_urgent_messages); \ } \ @@ -4024,8 +4024,8 @@ static void actual_message_query_handler(switch_event_t *event) if (!new_event) { if (switch_event_create(&new_event, SWITCH_EVENT_MESSAGE_WAITING) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(new_event, SWITCH_STACK_BOTTOM, "MWI-Messages-Waiting", "no"); - switch_event_add_header_string(new_event, SWITCH_STACK_BOTTOM, "MWI-Message-Account", account); + switch_event_add_header_string_dup(new_event, SWITCH_STACK_BOTTOM, "MWI-Messages-Waiting", "no"); + switch_event_add_header_string_dup(new_event, SWITCH_STACK_BOTTOM, "MWI-Message-Account", account); } } @@ -4034,7 +4034,7 @@ static void actual_message_query_handler(switch_event_t *event) for (hp = event->headers; hp; hp = hp->next) { if (!strncasecmp(hp->name, "vm-", 3)) { - switch_event_add_header_string(new_event, SWITCH_STACK_BOTTOM, hp->name + 3, hp->value); + switch_event_add_header_string_dup(new_event, SWITCH_STACK_BOTTOM, hp->name + 3, hp->value); } } @@ -6037,20 +6037,20 @@ SWITCH_STANDARD_API(vm_fsdb_msg_email_function) formatted_cid_num = switch_format_number(switch_event_get_header(cbt.my_params, "VM-Message-Caller-Number")); /* Legacy Mod_VoiceMail variable */ - switch_event_add_header_string(cbt.my_params, SWITCH_STACK_BOTTOM, "Message-Type", "forwarded-voicemail"); + switch_event_add_header_string_dup(cbt.my_params, SWITCH_STACK_BOTTOM, "Message-Type", "forwarded-voicemail"); switch_event_add_header(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_total_new_messages", "%d", total_new_messages); switch_event_add_header(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_total_saved_messages", "%d", total_saved_messages); switch_event_add_header(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_urgent_new_messages", "%d", total_new_urgent_messages); switch_event_add_header(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_urgent_saved_messages", "%d", total_saved_urgent_messages); - switch_event_add_header_string(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_current_folder", switch_event_get_header(cbt.my_params, "VM-Message-Folder")); - switch_event_add_header_string(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_account", id); - switch_event_add_header_string(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_domain", domain); - switch_event_add_header_string(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_caller_id_number", switch_event_get_header(cbt.my_params, "VM-Message-Caller-Number")); - switch_event_add_header_string(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_formatted_caller_id_number", formatted_cid_num); - switch_event_add_header_string(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_caller_id_name", switch_event_get_header(cbt.my_params, "VM-Message-Caller-Name")); - switch_event_add_header_string(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_file_path", switch_event_get_header(cbt.my_params, "VM-Message-File-Path")); - switch_event_add_header_string(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_read_flags", switch_event_get_header(cbt.my_params, "VM-Message-Read-Flags")); - switch_event_add_header_string(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_time", date); + switch_event_add_header_string_dup(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_current_folder", switch_event_get_header(cbt.my_params, "VM-Message-Folder")); + switch_event_add_header_string_dup(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_account", id); + switch_event_add_header_string_dup(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_domain", domain); + switch_event_add_header_string_dup(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_caller_id_number", switch_event_get_header(cbt.my_params, "VM-Message-Caller-Number")); + switch_event_add_header_string_dup(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_formatted_caller_id_number", formatted_cid_num); + switch_event_add_header_string_dup(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_caller_id_name", switch_event_get_header(cbt.my_params, "VM-Message-Caller-Name")); + switch_event_add_header_string_dup(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_file_path", switch_event_get_header(cbt.my_params, "VM-Message-File-Path")); + switch_event_add_header_string_dup(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_read_flags", switch_event_get_header(cbt.my_params, "VM-Message-Read-Flags")); + switch_event_add_header_string_dup(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_time", date); switch_event_add_header(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_priority", "%d", priority); @@ -6064,8 +6064,8 @@ SWITCH_STANDARD_API(vm_fsdb_msg_email_function) switch_snprintf(duration_str, sizeof(duration_str), "%.2u:%.2u:%.2u", duration.hr, duration.min, duration.sec); - switch_event_add_header_string(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_message_len", duration_str); - switch_event_add_header_string(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_email", email); + switch_event_add_header_string_dup(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_message_len", duration_str); + switch_event_add_header_string_dup(cbt.my_params, SWITCH_STACK_BOTTOM, "voicemail_email", email); if (zstr(profile->email_from)) { from = switch_core_sprintf(pool, "%s@%s", id, domain); diff --git a/src/mod/applications/mod_voicemail_ivr/utils.c b/src/mod/applications/mod_voicemail_ivr/utils.c index 7ea72cbcae..fcc6fd02ff 100644 --- a/src/mod/applications/mod_voicemail_ivr/utils.c +++ b/src/mod/applications/mod_voicemail_ivr/utils.c @@ -155,7 +155,7 @@ void append_event_message(switch_core_session_t *session, vmivr_profile_t *profi switch_event_add_header(phrase_params, SWITCH_STACK_BOTTOM, "VM-Message-Type", "%s", "new"); switch_event_add_header(phrase_params, SWITCH_STACK_BOTTOM, "VM-Message-Number", "%"SWITCH_SIZE_T_FMT, current_msg); - switch_event_add_header_string(phrase_params, SWITCH_STACK_BOTTOM, "VM-Message-Private-Local-Copy", "False"); + switch_event_add_header_string_dup(phrase_params, SWITCH_STACK_BOTTOM, "VM-Message-Private-Local-Copy", "False"); switch_safe_free(apicmd); } diff --git a/src/mod/endpoints/mod_alsa/mod_alsa.c b/src/mod/endpoints/mod_alsa/mod_alsa.c index ecb7c53eb3..a53d6737f8 100644 --- a/src/mod/endpoints/mod_alsa/mod_alsa.c +++ b/src/mod/endpoints/mod_alsa/mod_alsa.c @@ -254,8 +254,8 @@ static switch_status_t channel_on_init(switch_core_session_t *session) snprintf(buf, sizeof(buf), "BRRRRING! BRRRRING! call %s\n", tech_pvt->call_id); if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_RINGING) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_info", buf); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call_id", tech_pvt->call_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_info", buf); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call_id", tech_pvt->call_id); switch_channel_event_set_data(channel, event); switch_event_fire(&event); } diff --git a/src/mod/endpoints/mod_gsmopen/mod_gsmopen.cpp b/src/mod/endpoints/mod_gsmopen/mod_gsmopen.cpp index 20697adda4..3e75261cb5 100644 --- a/src/mod/endpoints/mod_gsmopen/mod_gsmopen.cpp +++ b/src/mod/endpoints/mod_gsmopen/mod_gsmopen.cpp @@ -1842,12 +1842,12 @@ static switch_status_t compat_chat_send(const char *proto, const char *from, con switch_status_t status; if (switch_event_create(&message_event, SWITCH_EVENT_MESSAGE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "proto", proto); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "from", from); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "to", to); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "subject", subject); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "type", type); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "hint", hint); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "proto", proto); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "from", from); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "to", to); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "subject", subject); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "type", type); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "hint", hint); if (body) { switch_event_add_body(message_event, "%s", body); @@ -2836,67 +2836,67 @@ int dump_event_full(private_t *tech_pvt, int is_alarm, int alarm_code, const cha if (status == SWITCH_STATUS_SUCCESS) { if (is_alarm) { snprintf(value, sizeof(value) - 1, "%d", alarm_code); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alarm_code", value); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alarm_message", alarm_message); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alarm_code", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alarm_message", alarm_message); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "interface_name", tech_pvt->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "interface_id", tech_pvt->id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "interface_name", tech_pvt->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "interface_id", tech_pvt->id); snprintf(value, sizeof(value) - 1, "%d", tech_pvt->active); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "active", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "active", value); if (!tech_pvt->network_creg_not_supported) { snprintf(value, sizeof(value) - 1, "%d", tech_pvt->not_registered); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "not_registered", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "not_registered", value); snprintf(value, sizeof(value) - 1, "%d", tech_pvt->home_network_registered); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "home_network_registered", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "home_network_registered", value); snprintf(value, sizeof(value) - 1, "%d", tech_pvt->roaming_registered); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "roaming_registered", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "roaming_registered", value); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "not_registered", "N/A"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "home_network_registered", "N/A"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "roaming_registered", "N/A"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "not_registered", "N/A"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "home_network_registered", "N/A"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "roaming_registered", "N/A"); } snprintf(value, sizeof(value) - 1, "%d", tech_pvt->got_signal); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "got_signal", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "got_signal", value); snprintf(value, sizeof(value) - 1, "%d", tech_pvt->signal_strength); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "signal_strength", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "signal_strength", value); snprintf(value, sizeof(value) - 1, "%d", tech_pvt->running); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "running", value); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "subscriber_number", tech_pvt->subscriber_number); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "device_manufacturer", tech_pvt->device_mfg); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "device_model", tech_pvt->device_model); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "device_firmware", tech_pvt->device_firmware); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "operator", tech_pvt->operator_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "imei", tech_pvt->imei); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "imsi", tech_pvt->imsi); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "running", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "subscriber_number", tech_pvt->subscriber_number); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "device_manufacturer", tech_pvt->device_mfg); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "device_model", tech_pvt->device_model); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "device_firmware", tech_pvt->device_firmware); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "operator", tech_pvt->operator_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "imei", tech_pvt->imei); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "imsi", tech_pvt->imsi); snprintf(value, sizeof(value) - 1, "%d", tech_pvt->controldev_dead); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "controldev_dead", value); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "controldevice_name", tech_pvt->controldevice_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "controldev_dead", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "controldevice_name", tech_pvt->controldevice_name); snprintf(value, sizeof(value) - 1, "%d", tech_pvt->no_sound); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "no_sound", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "no_sound", value); snprintf(value, sizeof(value) - 1, "%f", tech_pvt->playback_boost); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "playback_boost", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "playback_boost", value); snprintf(value, sizeof(value) - 1, "%f", tech_pvt->capture_boost); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "capture_boost", value); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "dialplan", tech_pvt->dialplan); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "context", tech_pvt->context); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "destination", tech_pvt->destination); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "capture_boost", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "dialplan", tech_pvt->dialplan); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "context", tech_pvt->context); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "destination", tech_pvt->destination); snprintf(value, sizeof(value) - 1, "%lu", tech_pvt->ib_calls); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "ib_calls", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "ib_calls", value); snprintf(value, sizeof(value) - 1, "%lu", tech_pvt->ob_calls); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "ob_calls", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "ob_calls", value); snprintf(value, sizeof(value) - 1, "%lu", tech_pvt->ib_failed_calls); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "ib_failed_calls", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "ib_failed_calls", value); snprintf(value, sizeof(value) - 1, "%lu", tech_pvt->ob_failed_calls); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "ob_failed_calls", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "ob_failed_calls", value); snprintf(value, sizeof(value) - 1, "%d", tech_pvt->interface_state); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "interface_state", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "interface_state", value); snprintf(value, sizeof(value) - 1, "%d", tech_pvt->phone_callflow); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "phone_callflow", value); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "session_uuid_str", tech_pvt->session_uuid_str); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "phone_callflow", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "session_uuid_str", tech_pvt->session_uuid_str); if (strlen(tech_pvt->session_uuid_str)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "during-call", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "during-call", "true"); } else { //no session - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "during-call", "false"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "during-call", "false"); } if (channel) { switch_channel_event_set_data(channel, event); @@ -2932,20 +2932,20 @@ int sms_incoming(private_t *tech_pvt) NOTICA("received SMS on interface %s: DATE=%s, SENDER=%s, BODY=|%s|\n", GSMOPEN_P_LOG, tech_pvt->name, tech_pvt->sms_date, tech_pvt->sms_sender, tech_pvt->sms_body); if (switch_event_create(&event, SWITCH_EVENT_MESSAGE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", GSMOPEN_CHAT_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", tech_pvt->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from", tech_pvt->sms_sender); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "date", tech_pvt->sms_date); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "userdataheader", tech_pvt->sms_userdataheader); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "datacodingscheme", tech_pvt->sms_datacodingscheme); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "servicecentreaddress", tech_pvt->sms_servicecentreaddress); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", GSMOPEN_CHAT_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", tech_pvt->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from", tech_pvt->sms_sender); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "date", tech_pvt->sms_date); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "userdataheader", tech_pvt->sms_userdataheader); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "datacodingscheme", tech_pvt->sms_datacodingscheme); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "servicecentreaddress", tech_pvt->sms_servicecentreaddress); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "messagetype", "%d", tech_pvt->sms_messagetype); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "subject", "SIMPLE MESSAGE"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to", tech_pvt->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "hint", tech_pvt->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_proto", GSMOPEN_CHAT_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_user", tech_pvt->sms_sender); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_user", tech_pvt->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "subject", "SIMPLE MESSAGE"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "to", tech_pvt->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "hint", tech_pvt->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "to_proto", GSMOPEN_CHAT_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from_user", tech_pvt->sms_sender); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "to_user", tech_pvt->name); switch_event_add_body(event, "%s\n", tech_pvt->sms_body); switch_core_chat_send("GLOBAL", event); /* mod_sms */ } else { @@ -2972,21 +2972,21 @@ int ussd_incoming(private_t *tech_pvt) /* mod_sms begin */ if (switch_event_create(&event, SWITCH_EVENT_MESSAGE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", GSMOPEN_CHAT_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", tech_pvt->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from", "ussd"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", GSMOPEN_CHAT_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", tech_pvt->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from", "ussd"); //switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "date", tech_pvt->sms_date); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "datacodingscheme", tech_pvt->ussd_dcs); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "datacodingscheme", tech_pvt->ussd_dcs); //switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "servicecentreaddress", tech_pvt->sms_servicecentreaddress); //switch_event_add_header(event, SWITCH_STACK_BOTTOM, "messagetype", "%d", tech_pvt->sms_messagetype); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "subject", "USSD MESSAGE"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to", tech_pvt->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "hint", tech_pvt->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_proto", GSMOPEN_CHAT_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_user", "ussd"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "subject", "USSD MESSAGE"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "to", tech_pvt->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "hint", tech_pvt->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "to_proto", GSMOPEN_CHAT_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from_user", "ussd"); //switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_host", "from_host"); //switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_full", "from_full"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_user", tech_pvt->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "to_user", tech_pvt->name); //switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_host", "to_host"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "ussd_status", "%d", tech_pvt->ussd_status); switch_event_add_body(event, "%s\n", tech_pvt->ussd_message); diff --git a/src/mod/endpoints/mod_h323/mod_h323.cpp b/src/mod/endpoints/mod_h323/mod_h323.cpp index c6dc7fc9e9..04f03b0194 100644 --- a/src/mod/endpoints/mod_h323/mod_h323.cpp +++ b/src/mod/endpoints/mod_h323/mod_h323.cpp @@ -477,7 +477,7 @@ switch_status_t FSH323EndPoint::ReadConfig(int reload) switch_event_t *params = NULL; switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(params); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "profile", switch_str_nil("")); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "profile", switch_str_nil("")); switch_xml_t cfg; switch_xml_t xml = switch_xml_open_cfg(cf, &cfg, params); diff --git a/src/mod/endpoints/mod_loopback/mod_loopback.c b/src/mod/endpoints/mod_loopback/mod_loopback.c index 456936562a..7b224228a8 100644 --- a/src/mod/endpoints/mod_loopback/mod_loopback.c +++ b/src/mod/endpoints/mod_loopback/mod_loopback.c @@ -489,9 +489,9 @@ static switch_status_t channel_on_execute(switch_core_session_t *session) switch_channel_get_name(other_channel)); if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, "loopback::bowout") == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Resigning-UUID", switch_channel_get_uuid(channel)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Resigning-Peer-UUID", switch_channel_get_uuid(tech_pvt->other_channel)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Acquired-UUID", switch_channel_get_uuid(other_channel)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Resigning-UUID", switch_channel_get_uuid(channel)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Resigning-Peer-UUID", switch_channel_get_uuid(tech_pvt->other_channel)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Acquired-UUID", switch_channel_get_uuid(other_channel)); switch_event_fire(&event); } @@ -922,19 +922,19 @@ static switch_status_t channel_write_frame(switch_core_session_t *session, switc switch_event_t *event = NULL; if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, "loopback::direct") == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(tech_pvt->channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Resigning-UUID", switch_channel_get_uuid(tech_pvt->channel)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Resigning-Peer-UUID", switch_channel_get_uuid(tech_pvt->other_channel)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Connecting-Leg-A-UUID", switch_channel_get_uuid(ch_a)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Connecting-Leg-B-UUID", switch_channel_get_uuid(ch_b)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Resigning-UUID", switch_channel_get_uuid(tech_pvt->channel)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Resigning-Peer-UUID", switch_channel_get_uuid(tech_pvt->other_channel)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Connecting-Leg-A-UUID", switch_channel_get_uuid(ch_a)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Connecting-Leg-B-UUID", switch_channel_get_uuid(ch_b)); switch_event_fire(&event); } if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, "loopback::direct") == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(tech_pvt->other_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Resigning-UUID", switch_channel_get_uuid(tech_pvt->other_channel)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Resigning-Peer-UUID", switch_channel_get_uuid(tech_pvt->channel)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Connecting-Leg-A-UUID", switch_channel_get_uuid(ch_b)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Connecting-Leg-B-UUID", switch_channel_get_uuid(ch_a)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Resigning-UUID", switch_channel_get_uuid(tech_pvt->other_channel)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Resigning-Peer-UUID", switch_channel_get_uuid(tech_pvt->channel)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Connecting-Leg-A-UUID", switch_channel_get_uuid(ch_b)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Connecting-Leg-B-UUID", switch_channel_get_uuid(ch_a)); switch_event_fire(&event); } } @@ -1209,13 +1209,13 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi switch_channel_set_variable(channel, "loopback_app", app); if (clone) { - switch_event_add_header_string(clone, SWITCH_STACK_BOTTOM, "loopback_app", app); + switch_event_add_header_string_dup(clone, SWITCH_STACK_BOTTOM, "loopback_app", app); } if (arg) { switch_channel_set_variable(channel, "loopback_app_arg", arg); if (clone) { - switch_event_add_header_string(clone, SWITCH_STACK_BOTTOM, "loopback_app_arg", arg); + switch_event_add_header_string_dup(clone, SWITCH_STACK_BOTTOM, "loopback_app_arg", arg); } } diff --git a/src/mod/endpoints/mod_opal/mod_opal.cpp b/src/mod/endpoints/mod_opal/mod_opal.cpp index fd414d7675..f6752fd638 100644 --- a/src/mod/endpoints/mod_opal/mod_opal.cpp +++ b/src/mod/endpoints/mod_opal/mod_opal.cpp @@ -349,7 +349,7 @@ switch_status_t FSManager::ReadConfig(int reload) switch_event_t *request_params = NULL; switch_event_create(&request_params, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(request_params); - switch_event_add_header_string(request_params, SWITCH_STACK_BOTTOM, "profile", switch_str_nil("")); + switch_event_add_header_string_dup(request_params, SWITCH_STACK_BOTTOM, "profile", switch_str_nil("")); switch_xml_t cfg; switch_xml_t xml = switch_xml_open_cfg(ConfigFile, &cfg, request_params); diff --git a/src/mod/endpoints/mod_portaudio/mod_portaudio.c b/src/mod/endpoints/mod_portaudio/mod_portaudio.c index 62eba524d3..497d4e2827 100644 --- a/src/mod/endpoints/mod_portaudio/mod_portaudio.c +++ b/src/mod/endpoints/mod_portaudio/mod_portaudio.c @@ -383,8 +383,8 @@ static switch_status_t channel_on_routing(switch_core_session_t *session) switch_snprintf(buf, sizeof(buf), "BRRRRING! BRRRRING! call %s\n", tech_pvt->call_id); if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_RINGING) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_info", buf); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call_id", tech_pvt->call_id); /* left behind for backwards compatability */ + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_info", buf); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call_id", tech_pvt->call_id); /* left behind for backwards compatability */ switch_channel_set_variable(channel, SWITCH_PA_CALL_ID_VARIABLE, tech_pvt->call_id); switch_channel_event_set_data(channel, event); switch_event_fire(&event); @@ -2370,7 +2370,7 @@ static int create_shared_audio_stream(shared_audio_stream_t *shstream) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Can't open audio device (indev = %d, outdev = %d, error = %s)\n", inputParameters.device, outputParameters.device, Pa_GetErrorText(err)); if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_ERROR_AUDIO_DEV) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Reason", Pa_GetErrorText(err)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Reason", Pa_GetErrorText(err)); switch_event_fire(&event); } return -1; @@ -2442,7 +2442,7 @@ static audio_stream_t *create_audio_stream(int indev, int outdev) switch_safe_free(stream); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Can't open audio device\n"); if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_ERROR_AUDIO_DEV) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Reason", Pa_GetErrorText(err)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Reason", Pa_GetErrorText(err)); switch_event_fire(&event); } return NULL; @@ -3037,8 +3037,8 @@ static switch_status_t place_call(char **argv, int argc, switch_stream_handle_t char buf[512]; switch_channel_event_set_data(channel, event); switch_snprintf(buf, sizeof(buf), "Thread error!.\n"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "error", buf); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fail", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "error", buf); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fail", "true"); switch_event_fire(&event); } } else { @@ -3047,7 +3047,7 @@ static switch_status_t place_call(char **argv, int argc, switch_stream_handle_t stream->write_function(stream, "SUCCESS:%s:%s\n", tech_pvt->call_id, switch_core_session_get_uuid(tech_pvt->session)); if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_MAKE_CALL) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fail", "false"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fail", "false"); switch_event_fire(&event); } } @@ -3059,8 +3059,8 @@ static switch_status_t place_call(char **argv, int argc, switch_stream_handle_t char buf[512]; switch_channel_event_set_data(channel, event); switch_snprintf(buf, sizeof(buf), "Device fail.\n"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "error", buf); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fail", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "error", buf); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "fail", "true"); switch_event_fire(&event); } } diff --git a/src/mod/endpoints/mod_rtmp/mod_rtmp.c b/src/mod/endpoints/mod_rtmp/mod_rtmp.c index 585d91b552..c4db37794d 100644 --- a/src/mod/endpoints/mod_rtmp/mod_rtmp.c +++ b/src/mod/endpoints/mod_rtmp/mod_rtmp.c @@ -820,7 +820,7 @@ switch_status_t rtmp_receive_event(switch_core_session_t *session, switch_event_ switch_assert(tech_pvt != NULL); /* Deliver the event as a custom message to the target rtmp session */ - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Session", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Session", switch_core_session_get_uuid(session)); rtmp_send_event(rsession, event); @@ -867,15 +867,15 @@ void rtmp_session_rwunlock(rtmp_session_t *rsession) void rtmp_event_fill(rtmp_session_t *rsession, switch_event_t *event) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "RTMP-Session-ID", rsession->uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "RTMP-Flash-Version", rsession->flashVer); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "RTMP-SWF-URL", rsession->swfUrl); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "RTMP-TC-URL", rsession->tcUrl); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "RTMP-Page-URL", rsession->pageUrl); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "RTMP-Profile", rsession->profile->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "RTMP-Session-ID", rsession->uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "RTMP-Flash-Version", rsession->flashVer); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "RTMP-SWF-URL", rsession->swfUrl); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "RTMP-TC-URL", rsession->tcUrl); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "RTMP-Page-URL", rsession->pageUrl); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "RTMP-Profile", rsession->profile->name); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Network-Port", "%d", rsession->remote_port); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Network-IP", rsession->remote_address); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "RTMP-Profile", rsession->profile->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Network-IP", rsession->remote_address); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "RTMP-Profile", rsession->profile->name); } switch_status_t rtmp_session_request(rtmp_profile_t *profile, rtmp_session_t **newsession) @@ -1302,9 +1302,9 @@ void rtmp_add_registration(rtmp_session_t *rsession, const char *auth, const cha reg->user = switch_core_strdup(rsession->pool, user); reg->domain = switch_core_strdup(rsession->pool, domain); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "User", user); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Domain", domain); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Nickname", switch_str_nil(nickname)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "User", user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Domain", domain); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Nickname", switch_str_nil(nickname)); switch_event_fire(&event); switch_core_add_registration(user, domain, token, url, 0, rsession->remote_address, network_port_c, "tcp", ""); free(dup); @@ -1331,9 +1331,9 @@ static void rtmp_clear_reg_auth(rtmp_session_t *rsession, const char *auth, cons if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, RTMP_EVENT_UNREGISTER) == SWITCH_STATUS_SUCCESS) { rtmp_event_fill(rsession, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "User", reg->user); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Domain", reg->domain); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Nickname", switch_str_nil(reg->nickname)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "User", reg->user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Domain", reg->domain); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Nickname", switch_str_nil(reg->nickname)); switch_event_fire(&event); } } @@ -1390,8 +1390,8 @@ switch_status_t rtmp_session_login(rtmp_session_t *rsession, const char *user, c if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, RTMP_EVENT_LOGIN) == SWITCH_STATUS_SUCCESS) { rtmp_event_fill(rsession, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "User", user); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Domain", domain); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "User", user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Domain", domain); switch_event_fire(&event); } @@ -1422,8 +1422,8 @@ switch_status_t rtmp_session_logout(rtmp_session_t *rsession, const char *user, if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, RTMP_EVENT_LOGOUT) == SWITCH_STATUS_SUCCESS) { rtmp_event_fill(rsession, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "User", user); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Domain", domain); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "User", user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Domain", domain); switch_event_fire(&event); } @@ -1464,7 +1464,7 @@ void rtmp_attach_private(rtmp_session_t *rsession, rtmp_private_t *tech_pvt) #endif if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, RTMP_EVENT_DETACH) == SWITCH_STATUS_SUCCESS) { rtmp_event_fill(rsession, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Call-ID", + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Call-ID", switch_core_session_get_uuid(rsession->tech_pvt->session)); switch_event_fire(&event); } @@ -1496,7 +1496,7 @@ void rtmp_attach_private(rtmp_session_t *rsession, rtmp_private_t *tech_pvt) #endif if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, RTMP_EVENT_ATTACH) == SWITCH_STATUS_SUCCESS) { rtmp_event_fill(rsession, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Call-ID", switch_core_session_get_uuid(tech_pvt->session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Call-ID", switch_core_session_get_uuid(tech_pvt->session)); switch_event_fire(&event); } } diff --git a/src/mod/endpoints/mod_rtmp/rtmp.c b/src/mod/endpoints/mod_rtmp/rtmp.c index 285bc81103..aa336f8180 100644 --- a/src/mod/endpoints/mod_rtmp/rtmp.c +++ b/src/mod/endpoints/mod_rtmp/rtmp.c @@ -218,7 +218,7 @@ switch_status_t rtmp_check_auth(rtmp_session_t *rsession, const char *user, cons switch_event_create(&locate_params, SWITCH_EVENT_GENERAL); switch_assert(locate_params); - switch_event_add_header_string(locate_params, SWITCH_STACK_BOTTOM, "source", "mod_rtmp"); + switch_event_add_header_string_dup(locate_params, SWITCH_STACK_BOTTOM, "source", "mod_rtmp"); /* Locate user */ if (switch_xml_locate_user_merged("id", user, domain, NULL, &xml, locate_params) != SWITCH_STATUS_SUCCESS) { @@ -313,7 +313,7 @@ switch_status_t amf_object_to_event(amf0_data *obj, switch_event_t **event) if (!strcmp(name, "_body")) { switch_event_add_body(*event, "%s", value); } else { - switch_event_add_header_string(*event, SWITCH_STACK_BOTTOM, name, value); + switch_event_add_header_string_dup(*event, SWITCH_STACK_BOTTOM, name, value); } } } @@ -372,7 +372,7 @@ void rtmp_get_user_variables(switch_event_t **event, switch_core_session_t *sess if ((he = switch_channel_variable_first(channel))) { for (; he; he = he->next) { if (!strncmp(he->name, RTMP_USER_VARIABLE_PREFIX, strlen(RTMP_USER_VARIABLE_PREFIX))) { - switch_event_add_header_string(*event, SWITCH_STACK_BOTTOM, he->name, he->value); + switch_event_add_header_string_dup(*event, SWITCH_STACK_BOTTOM, he->name, he->value); } } switch_channel_variable_last(channel); @@ -391,7 +391,7 @@ void rtmp_get_user_variables_event(switch_event_t **event, switch_event_t *var_e if ((he = var_event->headers)) { for (; he; he = he->next) { if (!strncmp(he->name, RTMP_USER_VARIABLE_PREFIX, strlen(RTMP_USER_VARIABLE_PREFIX))) { - switch_event_add_header_string(*event, SWITCH_STACK_BOTTOM, he->name, he->value); + switch_event_add_header_string_dup(*event, SWITCH_STACK_BOTTOM, he->name, he->value); } } } @@ -445,7 +445,7 @@ void rtmp_send_incoming_call(switch_core_session_t *session, switch_event_t *var if (event) { if (tech_pvt->has_video) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "want_video", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "want_video", "true"); } amf_event_to_object(&obj, event); switch_event_destroy(&event); diff --git a/src/mod/endpoints/mod_skinny/skinny_server.c b/src/mod/endpoints/mod_skinny/skinny_server.c index af7702a363..bde0ad443b 100644 --- a/src/mod/endpoints/mod_skinny/skinny_server.c +++ b/src/mod/endpoints/mod_skinny/skinny_server.c @@ -1166,7 +1166,7 @@ switch_status_t skinny_handle_register(listener_t *listener, skinny_message_t *r /* Check directory */ skinny_device_event(listener, ¶ms, SWITCH_EVENT_REQUEST_PARAMS, SWITCH_EVENT_SUBCLASS_ANY); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "action", "skinny-auth"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "action", "skinny-auth"); /* clean up all traces before adding to database */ skinny_lock_device_name(listener, request->data.reg.device_name); @@ -1321,7 +1321,7 @@ switch_status_t skinny_handle_register(listener_t *listener, skinny_message_t *r switch_event_t *message_query_event = NULL; if (switch_event_create(&message_query_event, SWITCH_EVENT_MESSAGE_QUERY) == SWITCH_STATUS_SUCCESS) { switch_event_add_header(message_query_event, SWITCH_STACK_BOTTOM, "Message-Account", "skinny:%s@%s", value, profile->domain); - switch_event_add_header_string(message_query_event, SWITCH_STACK_BOTTOM, "VM-Skinny-Profile", profile->name); + switch_event_add_header_string_dup(message_query_event, SWITCH_STACK_BOTTOM, "VM-Skinny-Profile", profile->name); switch_event_fire(&message_query_event); } } diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index e40f1e5deb..a79988b736 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -646,8 +646,8 @@ switch_status_t sofia_on_hangup(switch_core_session_t *session) if (cause == SWITCH_CAUSE_WRONG_CALL_STATE) { switch_event_t *s_event; if (switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_WRONG_CALL_STATE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "from_user", tech_pvt->from_user); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "network_ip", tech_pvt->mparams.remote_ip); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "from_user", tech_pvt->from_user); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "network_ip", tech_pvt->mparams.remote_ip); switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "network_port", "%d", tech_pvt->mparams.remote_port); switch_event_fire(&s_event); } @@ -2097,17 +2097,17 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi if (switch_event_create(&event, SWITCH_EVENT_CALL_UPDATE) == SWITCH_STATUS_SUCCESS) { const char *uuid = switch_channel_get_partner_uuid(channel); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Direction", "SEND"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Direction", "SEND"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Sent-Callee-ID-Name", name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Sent-Callee-ID-Number", number); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Sent-Callee-ID-Name", name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Sent-Callee-ID-Number", number); //switch_channel_set_profile_var(channel, "callee_id_name", name); //switch_channel_set_profile_var(channel, "callee_id_number", number); if (uuid) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridged-To", uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Bridged-To", uuid); } switch_channel_event_set_data(channel, event); switch_event_fire(&event); @@ -4608,7 +4608,7 @@ SWITCH_STANDARD_API(sofia_function) } else { if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_RECOVERY_RECOVERED) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "recovered_calls", "0"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "recovered_calls", "0"); switch_event_fire(&event); } diff --git a/src/mod/endpoints/mod_sofia/sip-dig.c b/src/mod/endpoints/mod_sofia/sip-dig.c index e89f5aef44..6b723c38ce 100644 --- a/src/mod/endpoints/mod_sofia/sip-dig.c +++ b/src/mod/endpoints/mod_sofia/sip-dig.c @@ -241,7 +241,7 @@ switch_status_t sip_dig_function(_In_opt_z_ const char *cmd, _In_opt_ switch_cor } if (!strcasecmp(argv[i], "xml")) { - switch_event_add_header_string(stream->param_event, SWITCH_STACK_BOTTOM, "xml", "true"); + switch_event_add_header_string_dup(stream->param_event, SWITCH_STACK_BOTTOM, "xml", "true"); i++; xml++; } diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index 6f73823b86..a985c9e366 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -628,15 +628,15 @@ void sofia_handle_sip_i_notify(switch_core_session_t *session, int status, if (sip->sip_content_type && sip->sip_content_type->c_type && sip->sip_payload && sip->sip_payload->pl_data && !strcasecmp(sip->sip_event->o_type, "refer")) { if (switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_NOTIFY_REFER) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "content-type", sip->sip_content_type->c_type); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "content-type", sip->sip_content_type->c_type); switch_event_add_body(s_event, "%s", sip->sip_payload->pl_data); } } /* add common headers for the NOTIFY to the switch_event and fire if it exists */ if (s_event != NULL) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "event-package", sip->sip_event->o_type); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "event-id", sip->sip_event->o_id); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "event-package", sip->sip_event->o_type); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "event-id", sip->sip_event->o_id); if (sip->sip_contact) { switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "contact", "%s@%s", @@ -644,27 +644,27 @@ void sofia_handle_sip_i_notify(switch_core_session_t *session, int status, } switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "from", "%s@%s", sip->sip_from->a_url->url_user, sip->sip_from->a_url->url_host); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "from-tag", sip->sip_from->a_tag); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "from-tag", sip->sip_from->a_tag); switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "to", "%s@%s", sip->sip_to->a_url->url_user, sip->sip_to->a_url->url_host); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "to-tag", sip->sip_to->a_tag); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "to-tag", sip->sip_to->a_tag); if (sip->sip_call_id && sip->sip_call_id->i_id) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "call-id", sip->sip_call_id->i_id); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "call-id", sip->sip_call_id->i_id); } if (sip->sip_subscription_state && sip->sip_subscription_state->ss_substate) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "subscription-substate", sip->sip_subscription_state->ss_substate); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "subscription-substate", sip->sip_subscription_state->ss_substate); } if (sip->sip_subscription_state && sip->sip_subscription_state->ss_reason) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "subscription-reason", sip->sip_subscription_state->ss_reason); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "subscription-reason", sip->sip_subscription_state->ss_reason); } if (sip->sip_subscription_state && sip->sip_subscription_state->ss_retry_after) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "subscription-retry-after", sip->sip_subscription_state->ss_retry_after); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "subscription-retry-after", sip->sip_subscription_state->ss_retry_after); } if (sip->sip_subscription_state && sip->sip_subscription_state->ss_expires) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "subscription-expires", sip->sip_subscription_state->ss_expires); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "subscription-expires", sip->sip_subscription_state->ss_expires); } if (session) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "UniqueID", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "UniqueID", switch_core_session_get_uuid(session)); } switch_event_fire(&s_event); } @@ -778,15 +778,15 @@ void sofia_handle_sip_i_notify(switch_core_session_t *session, int status, /* dispatch freeswitch event */ if (switch_event_create(&s_event, SWITCH_EVENT_NOTIFY_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "event", sip->sip_event->o_type); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "pl_data", sip->sip_payload ? sip->sip_payload->pl_data : ""); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "event", sip->sip_event->o_type); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "pl_data", sip->sip_payload ? sip->sip_payload->pl_data : ""); if ( sip->sip_content_type != NULL ) - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "sip_content_type", sip->sip_content_type->c_type); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "sip_content_type", sip->sip_content_type->c_type); switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "port", "%d", gateway->profile->sip_port); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "module_name", "mod_sofia"); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile_name", gateway->profile->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile_uri", gateway->profile->url); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "gateway_name", gateway->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "module_name", "mod_sofia"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile_name", gateway->profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile_uri", gateway->profile->url); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "gateway_name", gateway->name); if ( sip->sip_call_info != NULL ) { sip_call_info_t *call_info = sip->sip_call_info; char *nua_hold = sip_header_as_string(nua_handle_home(nh), (void *) call_info); @@ -809,7 +809,7 @@ void sofia_handle_sip_i_notify(switch_core_session_t *session, int status, su_free(nua_handle_home(nh), tmp); cur_len = cur_len + tmp_len + 2; } - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "Call-Info", hold); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "Call-Info", hold); switch_safe_free(hold); } switch_event_fire(&s_event); @@ -860,7 +860,7 @@ void sofia_handle_sip_i_notify(switch_core_session_t *session, int status, "Forwarding unsolicited MWI ( %s : %s@%s )\n", mwi_stat, sip->sip_to->a_url->url_user, sip->sip_to->a_url->url_host ); if (switch_event_create(&s_event, SWITCH_EVENT_MESSAGE_WAITING) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "MWI-Messages-Waiting", mwi_stat ); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "MWI-Messages-Waiting", mwi_stat ); switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "MWI-Message-Account", "%s@%s", sip->sip_to->a_url->url_user, sip->sip_to->a_url->url_host ); switch_event_fire(&s_event); @@ -1357,9 +1357,9 @@ void sofia_update_callee_id(switch_core_session_t *session, sofia_profile_t *pro if (switch_event_create(&event, SWITCH_EVENT_CALL_UPDATE) == SWITCH_STATUS_SUCCESS) { const char *uuid = switch_channel_get_partner_uuid(channel); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Direction", "RECV"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Direction", "RECV"); if (uuid) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridged-To", uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Bridged-To", uuid); } switch_channel_event_set_data(channel, event); switch_event_fire(&event); @@ -1420,9 +1420,9 @@ static void notify_watched_header(switch_core_session_t *session, const char *ms switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Found known watched header in message '%s', %s: %s\n", msgline, hdrname, hdrval); if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_NOTIFY_WATCHED_HEADER) == SWITCH_STATUS_SUCCESS) { switch_channel_t *channel = switch_core_session_get_channel(session); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "SIP-Message", msgline); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Header-Name", hdrname); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Header-Value", hdrval); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "SIP-Message", msgline); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Header-Name", hdrname); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Header-Value", hdrval); switch_channel_event_set_data(channel, event); switch_event_fire(&event); } else { @@ -1938,28 +1938,28 @@ static void our_sofia_event_callback(nua_event_t event, } if (switch_event_create(&event, SWITCH_EVENT_CALL_SETUP_REQ) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Requesting-Component", "mod_sofia"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Target-Component", req_user); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Target-Domain", req_host); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Request-Action", action); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Requesting-Component", "mod_sofia"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Target-Component", req_user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Target-Domain", req_host); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Request-Action", action); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Request-Target", "sofia/%s/%s", profile->name, refer_to); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Request-Target-URI", "%s", refer_to); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Request-Target-Extension", ref_to_user); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Request-Target-Domain", ref_to_host); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Request-Target-Extension", ref_to_user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Request-Target-Domain", ref_to_host); if (switch_true(full_url)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "full_url", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "full_url", "true"); } if (sip->sip_call_id && sip->sip_call_id->i_id) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Request-Call-ID", sip->sip_call_id->i_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Request-Call-ID", sip->sip_call_id->i_id); } if (!zstr(referred_by)) { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Request-Sender", "sofia/%s/%s", profile->name, referred_by); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "var_origination_caller_id_number", ref_by_user); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "var_origination_caller_id_name", ref_by_user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "var_origination_caller_id_number", ref_by_user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "var_origination_caller_id_name", ref_by_user); switch_event_fire(&event); } @@ -2064,26 +2064,26 @@ static void our_sofia_event_callback(nua_event_t event, if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", profile->url); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "user-agent", + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", profile->url); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "user-agent", (sip && sip->sip_user_agent) ? sip->sip_user_agent->g_string : "unknown"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", sofia_private->user, sofia_private->realm); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "status", "Unregistered"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "presence-source", "register"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "status", "Unregistered"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "presence-source", "register"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); switch_event_fire(&event); } if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_UNREGISTER) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "profile-name", profile->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from-user", sofia_private->user); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from-host", sofia_private->realm); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-id", sofia_private->call_id); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "reason", "socket-disconnection"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "profile-name", profile->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from-user", sofia_private->user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from-host", sofia_private->realm); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call-id", sofia_private->call_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "reason", "socket-disconnection"); switch_event_fire(&event); } @@ -2660,33 +2660,33 @@ void event_handler(switch_event_t *event) if (!strcasecmp(class, "PRESENCE_IN")) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "\nGot Presence IN event via MultiCast\n"); if (switch_event_create(&pevent, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "alt_event_type", switch_event_get_header_nil(event, "orig-alt_event_type")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "answer-state", switch_event_get_header_nil(event, "orig-answer-state")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "astate", switch_event_get_header_nil(event, "orig-astate")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "call-direction", switch_event_get_header_nil(event, "orig-call-direction")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "Caller-Callee-ID-Number", switch_event_get_header_nil(event, "Orig-Caller-Callee-ID-Number")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "Caller-Caller-ID-Name", switch_event_get_header_nil(event, "Orig-Caller-Caller-ID-Name")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "Caller-Caller-ID-Number", switch_event_get_header_nil(event, "Orig-Caller-Caller-ID-Number")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "Caller-Destination-Number", switch_event_get_header_nil(event, "Orig-Caller-Destination-Number")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "Caller-Direction", switch_event_get_header_nil(event, "Orig-Caller-Direction")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "Caller-Username", switch_event_get_header_nil(event, "Orig-Caller-Username")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "channel-state", switch_event_get_header_nil(event, "orig-channel-state")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "force-status", switch_event_get_header_nil(event, "orig-force-status")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "from", switch_event_get_header_nil(event, "orig-from")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "login", switch_event_get_header_nil(event, "orig-login")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "Other-Leg-Caller-ID-Name", switch_event_get_header_nil(event, "Orig-Other-Leg-Caller-ID-Name")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "Other-Leg-Caller-ID-Number", switch_event_get_header_nil(event, "Orig-Other-Leg-Caller-ID-Number")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "presence-call-direction", switch_event_get_header_nil(event, "orig-presence-call-direction")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "presence-call-info-state", switch_event_get_header_nil(event, "orig-presence-call-info-state")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "Presence-Privacy", switch_event_get_header_nil(event, "Orig-Presence-Privacy")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "proto", switch_event_get_header_nil(event, "orig-proto")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "register-source", switch_event_get_header_nil(event, "orig-register-source")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "resub", switch_event_get_header_nil(event, "orig-resub")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "rpid", switch_event_get_header_nil(event, "orig-rpid")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "status", switch_event_get_header_nil(event, "orig-status")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "Unique-ID", switch_event_get_header_nil(event, "Orig-Unique-ID")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "variable_sip_from_user", switch_event_get_header_nil(event, "Orig-variable_sip_from_user")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "variable_sip_to_user", switch_event_get_header_nil(event, "Orig-variable_sip_to_user")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "alt_event_type", switch_event_get_header_nil(event, "orig-alt_event_type")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "answer-state", switch_event_get_header_nil(event, "orig-answer-state")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "astate", switch_event_get_header_nil(event, "orig-astate")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "call-direction", switch_event_get_header_nil(event, "orig-call-direction")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "Caller-Callee-ID-Number", switch_event_get_header_nil(event, "Orig-Caller-Callee-ID-Number")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "Caller-Caller-ID-Name", switch_event_get_header_nil(event, "Orig-Caller-Caller-ID-Name")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "Caller-Caller-ID-Number", switch_event_get_header_nil(event, "Orig-Caller-Caller-ID-Number")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "Caller-Destination-Number", switch_event_get_header_nil(event, "Orig-Caller-Destination-Number")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "Caller-Direction", switch_event_get_header_nil(event, "Orig-Caller-Direction")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "Caller-Username", switch_event_get_header_nil(event, "Orig-Caller-Username")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "channel-state", switch_event_get_header_nil(event, "orig-channel-state")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "force-status", switch_event_get_header_nil(event, "orig-force-status")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "from", switch_event_get_header_nil(event, "orig-from")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "login", switch_event_get_header_nil(event, "orig-login")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "Other-Leg-Caller-ID-Name", switch_event_get_header_nil(event, "Orig-Other-Leg-Caller-ID-Name")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "Other-Leg-Caller-ID-Number", switch_event_get_header_nil(event, "Orig-Other-Leg-Caller-ID-Number")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "presence-call-direction", switch_event_get_header_nil(event, "orig-presence-call-direction")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "presence-call-info-state", switch_event_get_header_nil(event, "orig-presence-call-info-state")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "Presence-Privacy", switch_event_get_header_nil(event, "Orig-Presence-Privacy")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "proto", switch_event_get_header_nil(event, "orig-proto")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "register-source", switch_event_get_header_nil(event, "orig-register-source")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "resub", switch_event_get_header_nil(event, "orig-resub")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "rpid", switch_event_get_header_nil(event, "orig-rpid")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "status", switch_event_get_header_nil(event, "orig-status")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "Unique-ID", switch_event_get_header_nil(event, "Orig-Unique-ID")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "variable_sip_from_user", switch_event_get_header_nil(event, "Orig-variable_sip_from_user")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "variable_sip_to_user", switch_event_get_header_nil(event, "Orig-variable_sip_to_user")); /* we cannot use switch_event_fire, or otherwise we'll start an endless loop */ sofia_presence_event_handler(pevent); @@ -2698,9 +2698,9 @@ void event_handler(switch_event_t *event) } else if (!strcasecmp(class, "MESSAGE_WAITING")) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "\nGot MWI event via MultiCast\n"); if (switch_event_create(&pevent, SWITCH_EVENT_MESSAGE_WAITING) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "MWI-Messages-Waiting", switch_event_get_header_nil(event, "orig-MWI-Messages-Waiting")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "MWI-Message-Account", switch_event_get_header_nil(event, "orig-MWI-Message-Account")); - switch_event_add_header_string(pevent, SWITCH_STACK_BOTTOM, "MWI-Voice-Message", switch_event_get_header_nil(event, "orig-MWI-Voice-Message")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "MWI-Messages-Waiting", switch_event_get_header_nil(event, "orig-MWI-Messages-Waiting")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "MWI-Message-Account", switch_event_get_header_nil(event, "orig-MWI-Message-Account")); + switch_event_add_header_string_dup(pevent, SWITCH_STACK_BOTTOM, "MWI-Voice-Message", switch_event_get_header_nil(event, "orig-MWI-Voice-Message")); /* we cannot use switch_event_fire, or otherwise we'll start an endless loop */ sofia_presence_event_handler(pevent); return; @@ -2916,13 +2916,13 @@ static void sofia_perform_profile_start_failure(sofia_profile_t *profile, char * } if ((switch_event_create(&s_event, SWITCH_EVENT_FAILURE) == SWITCH_STATUS_SUCCESS)) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "module_name", "mod_sofia"); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile_name", profile_name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "module_name", "mod_sofia"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile_name", profile_name); if (profile) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile_uri", profile->url); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile_uri", profile->url); } - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "failure_message", "Profile failed to start."); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "file", file); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "failure_message", "Profile failed to start."); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "file", file); switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "line", "%d", line); switch_event_fire(&s_event); @@ -3048,7 +3048,7 @@ switch_thread_t *launch_sofia_worker_thread(sofia_profile_t *profile) /* Parse gateways */ switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(params); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "profile", profile->name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "profile", profile->name); if (!(xml = switch_xml_open_cfg(cf, &cfg, params))) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Open of %s failed\n", cf); @@ -3066,8 +3066,8 @@ switch_thread_t *launch_sofia_worker_thread(sofia_profile_t *profile) switch_event_t *xml_params; switch_event_create(&xml_params, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(xml_params); - switch_event_add_header_string(xml_params, SWITCH_STACK_BOTTOM, "purpose", "gateways"); - switch_event_add_header_string(xml_params, SWITCH_STACK_BOTTOM, "profile", profile->name); + switch_event_add_header_string_dup(xml_params, SWITCH_STACK_BOTTOM, "purpose", "gateways"); + switch_event_add_header_string_dup(xml_params, SWITCH_STACK_BOTTOM, "profile", profile->name); for (domain_tag = switch_xml_child(domains_tag, "domain"); domain_tag; domain_tag = domain_tag->next) { switch_xml_t droot, x_domain_tag; @@ -3438,13 +3438,13 @@ void *SWITCH_THREAD_FUNC sofia_profile_thread_run(switch_thread_t *thread, void (sofia_test_pflag(profile, PFLAG_TLS)) ? ",_sips._tcp" : ""); switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "port", "%d", profile->sip_port); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "module_name", "mod_sofia"); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile_name", profile->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile_uri", profile->url); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "module_name", "mod_sofia"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile_name", profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile_uri", profile->url); if (sofia_test_pflag(profile, PFLAG_TLS)) { switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "tls_port", "%d", profile->tls_sip_port); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile_tls_uri", profile->tls_url); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile_tls_uri", profile->tls_url); } switch_event_fire(&s_event); } @@ -3548,13 +3548,13 @@ void *SWITCH_THREAD_FUNC sofia_profile_thread_run(switch_thread_t *thread, void (sofia_test_pflag(profile, PFLAG_TLS)) ? ",_sips._tcp" : ""); switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "port", "%d", profile->sip_port); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "module_name", "mod_sofia"); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile_name", profile->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile_uri", profile->url); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "module_name", "mod_sofia"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile_name", profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile_uri", profile->url); if (sofia_test_pflag(profile, PFLAG_TLS)) { switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "tls_port", "%d", profile->tls_sip_port); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile_tls_uri", profile->tls_url); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile_tls_uri", profile->tls_url); } switch_event_fire(&s_event); } @@ -3871,14 +3871,14 @@ static void parse_gateways(sofia_profile_t *profile, switch_xml_t gateways_tag, if (!gateway->ib_vars) { switch_event_create_plain(&gateway->ib_vars, SWITCH_EVENT_GENERAL); } - switch_event_add_header_string(gateway->ib_vars, SWITCH_STACK_BOTTOM, var, val); + switch_event_add_header_string_dup(gateway->ib_vars, SWITCH_STACK_BOTTOM, var, val); } if (out) { if (!gateway->ob_vars) { switch_event_create_plain(&gateway->ob_vars, SWITCH_EVENT_GENERAL); } - switch_event_add_header_string(gateway->ob_vars, SWITCH_STACK_BOTTOM, var, val); + switch_event_add_header_string_dup(gateway->ob_vars, SWITCH_STACK_BOTTOM, var, val); } } } @@ -4434,9 +4434,9 @@ switch_status_t config_gateway(const char *profile_name, const char *gateway_nam switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(params); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "profile", profile_name); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "reconfig", "true"); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "gateway", gateway_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "profile", profile_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "reconfig", "true"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "gateway", gateway_name); if (!(xml = switch_xml_open_cfg(cf, &cfg, params))) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Open of %s failed\n", gateway_name); @@ -4488,9 +4488,9 @@ switch_status_t config_sofia(sofia_config_t reload, char *profile_name) switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(params); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "profile", profile_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "profile", profile_name); if (reload == SOFIA_CONFIG_RESCAN) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "reconfig", "true"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "reconfig", "true"); } if (!(xml = switch_xml_open_cfg(cf, &cfg, params))) { @@ -6270,8 +6270,8 @@ switch_status_t config_sofia(sofia_config_t reload, char *profile_name) switch_event_t *xml_params; switch_event_create(&xml_params, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(xml_params); - switch_event_add_header_string(xml_params, SWITCH_STACK_BOTTOM, "purpose", "gateways"); - switch_event_add_header_string(xml_params, SWITCH_STACK_BOTTOM, "profile", profile->name); + switch_event_add_header_string_dup(xml_params, SWITCH_STACK_BOTTOM, "purpose", "gateways"); + switch_event_add_header_string_dup(xml_params, SWITCH_STACK_BOTTOM, "profile", profile->name); for (domain_tag = switch_xml_child(domains_tag, "domain"); domain_tag; domain_tag = domain_tag->next) { switch_xml_t droot, x_domain_tag; @@ -6344,9 +6344,9 @@ switch_status_t config_sofia(sofia_config_t reload, char *profile_name) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Started Profile %s [%s]\n", profile->name, url); } if ((switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_PROFILE_START) == SWITCH_STATUS_SUCCESS)) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "module_name", "mod_sofia"); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile_name", profile->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile_uri", profile->url); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "module_name", "mod_sofia"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile_name", profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile_uri", profile->url); switch_event_fire(&s_event); } } else { @@ -8480,7 +8480,7 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status, } if (switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_REINVITE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(session)); switch_event_fire(&s_event); } } else { @@ -9164,21 +9164,21 @@ void sofia_handle_sip_i_refer(nua_t *nua, sofia_profile_t *profile, nua_handle_t if(sofia_test_pflag(profile, PFLAG_FIRE_TRANFER_EVENTS)) { if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_REPLACED) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel_b, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "att_xfer_replaced_by", br_a); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "att_xfer_replaced_by", br_a); switch_event_fire(&event); } if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_TRANSFEROR) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel_a, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "att_xfer_original_call_id", br_a); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "att_xfer_destination_call_id", br_b); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "att_xfer_destination_peer_uuid", switch_core_session_get_uuid(b_session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "att_xfer_original_call_id", br_a); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "att_xfer_destination_call_id", br_b); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "att_xfer_destination_peer_uuid", switch_core_session_get_uuid(b_session)); switch_event_fire(&event); } if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_TRANSFEREE) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(a_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "att_xfer_replaced_call_id", switch_core_session_get_uuid(b_session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "att_xfer_replaced_call_id", switch_core_session_get_uuid(b_session)); switch_event_fire(&event); } } @@ -9280,15 +9280,15 @@ void sofia_handle_sip_i_refer(nua_t *nua, sofia_profile_t *profile, nua_handle_t if(sofia_test_pflag(profile, PFLAG_FIRE_TRANFER_EVENTS)) { if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_REPLACED) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel_b, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "att_xfer_replaced_by", br_a); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "att_xfer_replaced_by", br_a); switch_event_fire(&event); } if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_TRANSFEROR) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel_a, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "att_xfer_original_call_id", br_a); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "att_xfer_destination_call_id", br_b); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "att_xfer_destination_peer_uuid", switch_core_session_get_uuid(b_session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "att_xfer_original_call_id", br_a); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "att_xfer_destination_call_id", br_b); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "att_xfer_destination_peer_uuid", switch_core_session_get_uuid(b_session)); switch_event_fire(&event); } @@ -9370,9 +9370,9 @@ void sofia_handle_sip_i_refer(nua_t *nua, sofia_profile_t *profile, nua_handle_t if(sofia_test_pflag(profile, PFLAG_FIRE_TRANFER_EVENTS)) { if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_TRANSFEROR) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel_a, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "att_xfer_original_call_id", switch_core_session_get_uuid(hup_session)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "att_xfer_destination_call_id", switch_core_session_get_uuid(t_session)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "att_xfer_destination_peer_uuid", switch_channel_get_partner_uuid(t_channel)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "att_xfer_original_call_id", switch_core_session_get_uuid(hup_session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "att_xfer_destination_call_id", switch_core_session_get_uuid(t_session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "att_xfer_destination_peer_uuid", switch_channel_get_partner_uuid(t_channel)); switch_event_fire(&event); } @@ -9437,17 +9437,17 @@ void sofia_handle_sip_i_refer(nua_t *nua, sofia_profile_t *profile, nua_handle_t switch_xml_t params = NULL, param = NULL; switch_event_create(&xml_params, SWITCH_EVENT_REQUEST_PARAMS); - switch_event_add_header_string(xml_params, SWITCH_STACK_BOTTOM, "purpose", "nightmare_xfer"); - switch_event_add_header_string(xml_params, SWITCH_STACK_BOTTOM, "profile", profile->name); - switch_event_add_header_string(xml_params, SWITCH_STACK_BOTTOM, "refer-to-user", refer_to->r_url->url_user); - switch_event_add_header_string(xml_params, SWITCH_STACK_BOTTOM, "refer-to-host", refer_to->r_url->url_host); - switch_event_add_header_string(xml_params, SWITCH_STACK_BOTTOM, "refer-to-params", refer_to->r_url->url_params ? refer_to->r_url->url_params : ""); - switch_event_add_header_string(xml_params, SWITCH_STACK_BOTTOM, "refer-to-headers", refer_to->r_url->url_headers ? refer_to->r_url->url_headers : ""); + switch_event_add_header_string_dup(xml_params, SWITCH_STACK_BOTTOM, "purpose", "nightmare_xfer"); + switch_event_add_header_string_dup(xml_params, SWITCH_STACK_BOTTOM, "profile", profile->name); + switch_event_add_header_string_dup(xml_params, SWITCH_STACK_BOTTOM, "refer-to-user", refer_to->r_url->url_user); + switch_event_add_header_string_dup(xml_params, SWITCH_STACK_BOTTOM, "refer-to-host", refer_to->r_url->url_host); + switch_event_add_header_string_dup(xml_params, SWITCH_STACK_BOTTOM, "refer-to-params", refer_to->r_url->url_params ? refer_to->r_url->url_params : ""); + switch_event_add_header_string_dup(xml_params, SWITCH_STACK_BOTTOM, "refer-to-headers", refer_to->r_url->url_headers ? refer_to->r_url->url_headers : ""); if (replaces) { - switch_event_add_header_string(xml_params, SWITCH_STACK_BOTTOM, "replaces-call-id", replaces->rp_call_id); + switch_event_add_header_string_dup(xml_params, SWITCH_STACK_BOTTOM, "replaces-call-id", replaces->rp_call_id); } - switch_event_add_header_string(xml_params, SWITCH_STACK_BOTTOM, "refer-from-channel-id", switch_core_session_get_uuid(session)); - switch_event_add_header_string(xml_params, SWITCH_STACK_BOTTOM, "refer-for-channel-id", br_a); + switch_event_add_header_string_dup(xml_params, SWITCH_STACK_BOTTOM, "refer-from-channel-id", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(xml_params, SWITCH_STACK_BOTTOM, "refer-for-channel-id", br_a); if (switch_xml_locate("channels", NULL, NULL, NULL, &xml_root, &xml_channel, xml_params, SWITCH_FALSE) == SWITCH_STATUS_SUCCESS) { @@ -9547,24 +9547,24 @@ void sofia_handle_sip_i_refer(nua_t *nua, sofia_profile_t *profile, nua_handle_t rep_h = switch_channel_get_variable(channel, SOFIA_REPLACES_HEADER); if (rep_h) { - switch_event_add_header_string(nightmare_xfer_helper->vars, SWITCH_STACK_BOTTOM, SOFIA_REPLACES_HEADER, rep_h); + switch_event_add_header_string_dup(nightmare_xfer_helper->vars, SWITCH_STACK_BOTTOM, SOFIA_REPLACES_HEADER, rep_h); } else { - switch_event_add_header_string(nightmare_xfer_helper->vars, SWITCH_STACK_BOTTOM, SOFIA_REPLACES_HEADER, rep); + switch_event_add_header_string_dup(nightmare_xfer_helper->vars, SWITCH_STACK_BOTTOM, SOFIA_REPLACES_HEADER, rep); } if (!zstr(full_ref_by)) { - switch_event_add_header_string(nightmare_xfer_helper->vars, SWITCH_STACK_BOTTOM, "Referred-By", full_ref_by); + switch_event_add_header_string_dup(nightmare_xfer_helper->vars, SWITCH_STACK_BOTTOM, "Referred-By", full_ref_by); } if (!zstr(full_ref_to)) { - switch_event_add_header_string(nightmare_xfer_helper->vars, SWITCH_STACK_BOTTOM, SOFIA_REFER_TO_VARIABLE, full_ref_to); + switch_event_add_header_string_dup(nightmare_xfer_helper->vars, SWITCH_STACK_BOTTOM, SOFIA_REFER_TO_VARIABLE, full_ref_to); } if(sofia_test_pflag(profile, PFLAG_FIRE_TRANFER_EVENTS)) { if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_TRANSFEROR) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "att_xfer_original_call_id", br_a); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "att_xfer_destination_call_id", br_b); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "att_xfer_original_call_id", br_a); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "att_xfer_destination_call_id", br_b); switch_channel_event_set_data(channel_a, event); switch_event_fire(&event); } @@ -9575,8 +9575,8 @@ void sofia_handle_sip_i_refer(nua_t *nua, sofia_profile_t *profile, nua_handle_t } } - switch_event_add_header_string(nightmare_xfer_helper->vars, SWITCH_STACK_BOTTOM, "sip_h_X-FS-Refer-From", switch_core_session_get_uuid(session)); - switch_event_add_header_string(nightmare_xfer_helper->vars, SWITCH_STACK_BOTTOM, "sip_h_X-FS-Refer-For", br_a); + switch_event_add_header_string_dup(nightmare_xfer_helper->vars, SWITCH_STACK_BOTTOM, "sip_h_X-FS-Refer-From", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(nightmare_xfer_helper->vars, SWITCH_STACK_BOTTOM, "sip_h_X-FS-Refer-For", br_a); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Good Luck, you'll need it......\n"); nightmare_xfer_helper->profile = profile; @@ -9678,8 +9678,8 @@ void sofia_handle_sip_i_refer(nua_t *nua, sofia_profile_t *profile, nua_handle_t if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_ERROR) == SWITCH_STATUS_SUCCESS) { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Error-Type", "blind_transfer"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Transfer-Exten", exten); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Full-Refer-To", full_ref_to); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Transfer-Exten", exten); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Full-Refer-To", full_ref_to); switch_channel_event_set_data(channel, event); switch_event_fire(&event); } @@ -9716,48 +9716,48 @@ static switch_status_t create_info_event(sip_t const *sip, } if (sip->sip_content_type) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "SIP-Content-Type", sip->sip_content_type->c_type); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "SIP-Content-Type", sip->sip_content_type->c_type); } if (sip->sip_from) { if (sip->sip_from->a_url->url_user) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "SIP-From-User", sip->sip_from->a_url->url_user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "SIP-From-User", sip->sip_from->a_url->url_user); } if (sip->sip_from->a_url->url_host) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "SIP-From-Host", sip->sip_from->a_url->url_host); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "SIP-From-Host", sip->sip_from->a_url->url_host); } } if (sip->sip_to) { if (sip->sip_to->a_url->url_user) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "SIP-To-User", sip->sip_to->a_url->url_user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "SIP-To-User", sip->sip_to->a_url->url_user); } if (sip->sip_to->a_url->url_host) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "SIP-To-Host", sip->sip_to->a_url->url_host); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "SIP-To-Host", sip->sip_to->a_url->url_host); } } if (sip->sip_contact) { if (sip->sip_contact->m_url->url_user) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "SIP-Contact-User", sip->sip_contact->m_url->url_user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "SIP-Contact-User", sip->sip_contact->m_url->url_user); } if (sip->sip_contact->m_url->url_host) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "SIP-Contact-Host", sip->sip_contact->m_url->url_host); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "SIP-Contact-Host", sip->sip_contact->m_url->url_host); } } if (sip->sip_call_info) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Call-Info", + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Call-Info", sip_header_as_string(nua_handle_home(nh), (void *) sip->sip_call_info)); } if (alert_info) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Alert-Info", sip_header_as_string(nua_handle_home(nh), (void *) alert_info)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Alert-Info", sip_header_as_string(nua_handle_home(nh), (void *) alert_info)); } @@ -10331,7 +10331,7 @@ switch_status_t sofia_locate_user(char* user, switch_core_session_t *session, si if (switch_event_create(&v_event, SWITCH_EVENT_REQUEST_PARAMS) == SWITCH_STATUS_SUCCESS) { sip_unknown_t *un; for (un = sip->sip_unknown; un; un = un->un_next) { - switch_event_add_header_string(v_event, SWITCH_STACK_BOTTOM, un->un_name, un->un_value); + switch_event_add_header_string_dup(v_event, SWITCH_STACK_BOTTOM, un->un_name, un->un_value); }; switch_channel_event_set_data(switch_core_session_get_channel(session), v_event); } @@ -11745,7 +11745,7 @@ void sofia_handle_sip_i_invite_replaces(switch_core_session_t *session, switch_c && sip && sip->sip_call_id && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_REPLACED) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(b_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "att_xfer_replaced_by", sip->sip_call_id->i_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "att_xfer_replaced_by", sip->sip_call_id->i_id); switch_event_fire(&event); } } else { @@ -11796,7 +11796,7 @@ void sofia_handle_sip_i_invite_replaces(switch_core_session_t *session, switch_c && sip->sip_call_id && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_INTERCEPTED) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(b_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "intercepted_by", sip->sip_call_id->i_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "intercepted_by", sip->sip_call_id->i_id); switch_event_fire(&event); } } @@ -11823,7 +11823,7 @@ void sofia_handle_sip_i_invite_replaces(switch_core_session_t *session, switch_c && sip && sip->sip_call_id && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_INTERCEPTED) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(b_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "intercepted_by", sip->sip_call_id->i_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "intercepted_by", sip->sip_call_id->i_id); switch_event_fire(&event); } } @@ -11839,7 +11839,7 @@ void sofia_handle_sip_i_invite_replaces(switch_core_session_t *session, switch_c && sip && sip->sip_call_id && switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_REPLACED) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(b_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "att_xfer_replaced_by", sip->sip_call_id->i_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "att_xfer_replaced_by", sip->sip_call_id->i_id); switch_event_fire(&event); } switch_channel_hangup(b_channel, SWITCH_CAUSE_ATTENDED_TRANSFER); diff --git a/src/mod/endpoints/mod_sofia/sofia_presence.c b/src/mod/endpoints/mod_sofia/sofia_presence.c index 00cc8561d6..7bc13d50f0 100644 --- a/src/mod/endpoints/mod_sofia/sofia_presence.c +++ b/src/mod/endpoints/mod_sofia/sofia_presence.c @@ -275,10 +275,10 @@ switch_status_t sofia_presence_chat_send(switch_event_t *message_event) // emit no recipient event if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_ERROR) == SWITCH_STATUS_SUCCESS) { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Error-Type", "chat"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Error-Reason", "no recipient"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Chat-Send-To", to); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Chat-Send-From", from); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Chat-Send-Profile", prof); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Error-Reason", "no recipient"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Chat-Send-To", to); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Chat-Send-From", from); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Chat-Send-Profile", prof); switch_event_add_body(event, "%s", body); switch_event_fire(&event); } @@ -807,11 +807,11 @@ static void do_normal_probe(switch_event_t *event) if (!h.rowcount) { switch_event_t *sevent; if (switch_event_create(&sevent, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "login", profile->name); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "login", profile->name); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); switch_event_add_header(sevent, SWITCH_STACK_BOTTOM, "from", "%s@%s", probe_euser, probe_host); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "status", "Unregistered"); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "status", "Unregistered"); switch_event_fire(&sevent); } } @@ -1390,24 +1390,24 @@ static switch_event_t *actual_sofia_presence_event_handler(switch_event_t *event rpid = sofia_presence_translate_rpid(rpid, status); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Answer-State", "early"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "status", status); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-State", status); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Call-State", "EARLY"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "astate", "early"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", "early"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Answer-State", "early"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "status", status); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Channel-State", status); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Channel-Call-State", "EARLY"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "astate", "early"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", "early"); } else { status = "CS_EXECUTE"; if (rpid) { rpid = sofia_presence_translate_rpid(rpid, status); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Answer-State", "answered"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "status", status); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-State", status); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Call-State", "ACTIVE"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "astate", "confirmed"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", "confirmed"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Answer-State", "answered"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "status", status); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Channel-State", status); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Channel-Call-State", "ACTIVE"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "astate", "confirmed"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", "confirmed"); } } @@ -1536,13 +1536,13 @@ static switch_event_t *actual_sofia_presence_event_handler(switch_event_t *event if (hup && dh.hits < 1) { /* so many phones get confused when whe hangup we have to reprobe to get them all to reset to absolute states so the lights stay correct */ if (switch_event_create(&s_event, SWITCH_EVENT_PRESENCE_PROBE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "login", profile->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "login", profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "from", "%s@%s", euser, host); switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "to", "%s@%s", euser, host); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); sofia_event_fire(profile, &s_event); } } @@ -1736,8 +1736,8 @@ static int sofia_presence_sub_reg_callback(void *pArg, int argc, char **argv, ch if (switch_event_create(&event, SWITCH_EVENT_MESSAGE_QUERY) == SWITCH_STATUS_SUCCESS) { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Message-Account", "sip:%s@%s", user, host); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "VM-Sofia-Profile", profile->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "VM-sub-call-id", argv[7]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "VM-Sofia-Profile", profile->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "VM-sub-call-id", argv[7]); if (mod_sofia_globals.debug_presence > 0) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Create MESSAGE QUERY EVENT...\n"); @@ -1751,14 +1751,14 @@ static int sofia_presence_sub_reg_callback(void *pArg, int argc, char **argv, ch } if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_PROBE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", profile->url); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", profile->url); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", user, host); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_subtype", "probe"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto-specific-event-name", event_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "expires", expires); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_subtype", "probe"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto-specific-event-name", event_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "expires", expires); sofia_event_fire(profile, &event); } @@ -1839,9 +1839,9 @@ static int sofia_presence_resub_callback(void *pArg, int argc, char **argv, char } if (do_event && switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", proto ? proto : SOFIA_CHAT_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", profile->url); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", proto ? proto : SOFIA_CHAT_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", profile->url); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", user, host); @@ -1850,37 +1850,37 @@ static int sofia_presence_resub_callback(void *pArg, int argc, char **argv, char } if (!zstr(call_id)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-id", call_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call-id", call_id); } - //switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "resub", "true"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "status", status); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", rpid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + //switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "resub", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "status", status); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", rpid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", 0); if (!zstr(to_user)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to-user", to_user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "to-user", to_user); } if (zstr(state)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); - //switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", "resubscribe"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_HANGUP"); + //switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", "resubscribe"); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_ROUTING"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-state", "CS_ROUTING"); if (uuid) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "unique-id", uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "unique-id", uuid); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", state); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "astate", state); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "presence-call-direction", direction); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "answer-state", state); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "astate", state); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "presence-call-direction", direction); } if (h->event) { for (hp = h->event->headers; hp; hp = hp->next) { if (!strncasecmp(hp->name, "fwd-", 4)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, hp->name + 4, hp->value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, hp->name + 4, hp->value); } } } @@ -4001,12 +4001,12 @@ void sofia_presence_handle_sip_i_subscribe(int status, switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "sending pnp NOTIFY for %s to provision to %s\n", uri, profile->pnp_prov_url); switch_event_create(¶ms, SWITCH_EVENT_NOTIFY); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "profile", profile->name); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "event-string", sip->sip_event->o_type); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "to-uri", uri); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "from-uri", uri); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "extra-headers", extra_headers); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "content-type", ct); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "profile", profile->name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "event-string", sip->sip_event->o_type); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "to-uri", uri); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "from-uri", uri); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "extra-headers", extra_headers); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "content-type", ct); switch_event_add_body(params, "%s", profile->pnp_prov_url); switch_event_fire(¶ms); @@ -4225,14 +4225,14 @@ void sofia_presence_handle_sip_i_subscribe(int status, switch_snprintf(sip_cseq, sizeof(sip_cseq), "%d", sip->sip_cseq->cs_seq); switch_event_create(&event, SWITCH_EVENT_PHONE_FEATURE_SUBSCRIBE); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "user", from_user); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "host", from_host); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "contact", contact_str); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-id", call_id); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "expires", exp_delta_str); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "cseq", sip_cseq); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "profile_name", profile->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "hostname", mod_sofia_globals.hostname); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "user", from_user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "host", from_host); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "contact", contact_str); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call-id", call_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "expires", exp_delta_str); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "cseq", sip_cseq); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "profile_name", profile->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "hostname", mod_sofia_globals.hostname); if (sip->sip_payload) { switch_xml_t xml = NULL; @@ -4246,43 +4246,43 @@ void sofia_presence_handle_sip_i_subscribe(int status, switch_xml_t device = NULL; if ((device = switch_xml_child(xml, "device"))) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "device", device->txt); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "device", device->txt); } if (xml->name && !strcmp(xml->name, "SetDoNotDisturb")) { switch_xml_t action = NULL; - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Feature-Action", "SetDoNotDisturb"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Feature-Action", "SetDoNotDisturb"); if ((action = switch_xml_child(xml, "doNotDisturbOn"))) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Feature-Enabled", action->txt); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action-Name", action->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Feature-Enabled", action->txt); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action-Name", action->name); } } if (xml->name && !strcmp(xml->name, "SetForwarding")) { switch_xml_t cfwd_type, cfwd_enable, cfwd_target; - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Feature-Action", "SetCallForward"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Feature-Action", "SetCallForward"); if ((cfwd_type = switch_xml_child(xml, "forwardingType")) && (cfwd_enable = switch_xml_child(xml, "activateForward")) && (cfwd_target = switch_xml_child(xml, "forwardDN"))) { if (!strcmp(cfwd_type->txt, "forwardImmediate")) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Feature-Enabled", cfwd_enable->txt); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action-Name", "forward_immediate"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action-Value", cfwd_target->txt); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Feature-Enabled", cfwd_enable->txt); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action-Name", "forward_immediate"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action-Value", cfwd_target->txt); } else if (!strcmp(cfwd_type->txt, "forwardBusy")) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Feature-Enabled", cfwd_enable->txt); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action-Name", "forward_busy"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action-Value", cfwd_target->txt); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Feature-Enabled", cfwd_enable->txt); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action-Name", "forward_busy"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action-Value", cfwd_target->txt); } else if (!strcmp(cfwd_type->txt, "forwardNoAns")) { switch_xml_t rc; - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Feature-Enabled", cfwd_enable->txt); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action-Name", "forward_no_answer"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action-Value", cfwd_target->txt); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Feature-Enabled", cfwd_enable->txt); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action-Name", "forward_no_answer"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Action-Value", cfwd_target->txt); if ((rc = switch_xml_child(xml, "ringCount"))) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "ringCount", rc->txt); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "ringCount", rc->txt); } } } @@ -4316,12 +4316,12 @@ void sofia_presence_handle_sip_i_subscribe(int status, } else if (!strcasecmp(event, "conference")) { switch_event_t *event; switch_event_create(&event, SWITCH_EVENT_CONFERENCE_DATA_QUERY); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Conference-Name", to_user); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Conference-Domain", to_host); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Query-From", from_user); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Query-From-Domain", from_host); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Call-Id", call_id); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Sofia-Profile", profile->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Conference-Name", to_user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Conference-Domain", to_host); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Query-From", from_user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Query-From-Domain", from_host); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Call-Id", call_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Sofia-Profile", profile->name); switch_event_fire(&event); } @@ -4338,34 +4338,34 @@ void sofia_presence_handle_sip_i_subscribe(int status, } if (switch_event_create(&sevent, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "proto", protocol); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "proto", protocol); if (!zstr(orig_proto)) { - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "orig_proto", orig_proto); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "orig_proto", orig_proto); } - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "login", profile->name); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "login", profile->name); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); switch_event_add_header(sevent, SWITCH_STACK_BOTTOM, "from", "%s@%s", to_user, to_host); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "rpid", "active"); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "status", "Click To Call"); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "rpid", "active"); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "status", "Click To Call"); switch_event_fire(&sevent); } } else if (to_user && (strcasecmp(proto, SOFIA_CHAT_PROTO) != 0)) { if (switch_event_create(&sevent, SWITCH_EVENT_PRESENCE_PROBE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "proto", proto); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "proto", proto); if (!zstr(orig_proto)) { - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "orig_proto", orig_proto); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "orig_proto", orig_proto); } - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "login", profile->name); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "login", profile->name); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); switch_event_add_header(sevent, SWITCH_STACK_BOTTOM, "from", "%s@%s", from_user, from_host); switch_event_add_header(sevent, SWITCH_STACK_BOTTOM, "to", "%s%s%s@%s", proto, "+", to_user, to_host); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "proto-specific-event-name", event); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "expires", exp_delta_str); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "expires", exp_delta_str); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "sub-call-id", call_id); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "proto-specific-event-name", event); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "expires", exp_delta_str); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "expires", exp_delta_str); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "sub-call-id", call_id); switch_event_fire(&sevent); } @@ -4373,33 +4373,33 @@ void sofia_presence_handle_sip_i_subscribe(int status, if (!strcasecmp(event, "dialog")) { if (switch_event_create(&sevent, SWITCH_EVENT_PRESENCE_PROBE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "probe-type", "dialog"); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "login", profile->name); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "probe-type", "dialog"); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "login", profile->name); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); switch_event_add_header(sevent, SWITCH_STACK_BOTTOM, "from", "%s@%s", from_user, from_host); switch_event_add_header(sevent, SWITCH_STACK_BOTTOM, "to", "%s@%s", to_user, to_host); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "proto-specific-event-name", event); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "expires", exp_delta_str); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "expires", exp_delta_str); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "sub-call-id", call_id); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "proto-specific-event-name", event); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "expires", exp_delta_str); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "expires", exp_delta_str); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "sub-call-id", call_id); switch_event_fire(&sevent); } } else if (!strcasecmp(event, "presence")) { if (switch_event_create(&sevent, SWITCH_EVENT_PRESENCE_PROBE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "login", profile->name); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "presence-source", "subscribe"); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "login", profile->name); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "presence-source", "subscribe"); switch_event_add_header(sevent, SWITCH_STACK_BOTTOM, "from", "%s@%s", from_user, from_host); switch_event_add_header(sevent, SWITCH_STACK_BOTTOM, "to", "%s@%s", to_user, to_host); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "expires", exp_delta_str); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "rpid", "unknown"); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "status", "Registered"); - switch_event_add_header_string(sevent, SWITCH_STACK_BOTTOM, "sub-call-id", call_id); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "expires", exp_delta_str); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "rpid", "unknown"); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "status", "Registered"); + switch_event_add_header_string_dup(sevent, SWITCH_STACK_BOTTOM, "sub-call-id", call_id); switch_event_fire(&sevent); } } @@ -4697,14 +4697,14 @@ void sofia_presence_handle_sip_i_publish(nua_t *nua, sofia_profile_t *profile, n if (sub_count > 0) { if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", rpid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", profile->url); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "user-agent", full_agent); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", rpid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", profile->url); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "user-agent", full_agent); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", from_user, from_host); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "status", note_txt); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", event_type); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "status", note_txt); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", event_type); switch_event_fire(&event); } } @@ -4890,36 +4890,36 @@ void sofia_presence_handle_sip_i_message(int status, } if (switch_event_create(&event, SWITCH_EVENT_MESSAGE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", profile->url); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", profile->url); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_proto", proto); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "to_proto", proto); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from", from_addr); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_user", from_user); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_host", from_host); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_user", to_user); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to_host", to_host); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_sip_ip", network_ip); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from", from_addr); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from_user", from_user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from_host", from_host); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "to_user", to_user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "to_host", to_host); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from_sip_ip", network_ip); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from_sip_port", "%d", network_port); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to", to_addr); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "subject", "SIMPLE MESSAGE"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "context", profile->context); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "to", to_addr); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "subject", "SIMPLE MESSAGE"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "context", profile->context); if (sip->sip_content_type && sip->sip_content_type->c_subtype) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", sip->sip_content_type->c_type); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", sip->sip_content_type->c_type); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "text/plain"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "text/plain"); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_full", full_from); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from_full", full_from); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); if (sip->sip_call_info) { sip_call_info_t *call_info = sip->sip_call_info; char *ci = sip_header_as_string(nua_handle_home(nh), (void *) call_info); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "sip_call_info", ci); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "sip_call_info", ci); } /* Loop thru unknown Headers Here so we can do something with them */ @@ -4930,14 +4930,14 @@ void sofia_presence_handle_sip_i_message(int status, if (!zstr(un->un_value)) { char *tmp_name; if ((tmp_name = switch_mprintf("%s%s", SOFIA_SIP_HEADER_PREFIX, un->un_name))) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, tmp_name, un->un_value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, tmp_name, un->un_value); free(tmp_name); } } } else if (!strncasecmp(un->un_name, "History-Info", 12)) { if (first_history_info) { /* If the header exists first time, make sure to remove old info and re-set the variable */ - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "sip_history_info", un->un_value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "sip_history_info", un->un_value); first_history_info = 0; } else { /* Append the History-Info into one long string */ @@ -4945,19 +4945,19 @@ void sofia_presence_handle_sip_i_message(int status, if (!zstr(history_var)) { char *tmp_str; if ((tmp_str = switch_mprintf("%s, %s", history_var, un->un_value))) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "sip_history_info", tmp_str); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "sip_history_info", tmp_str); free(tmp_str); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "sip_history_info", un->un_value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "sip_history_info", un->un_value); } } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "sip_history_info", un->un_value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "sip_history_info", un->un_value); } } } else if (!strcasecmp(un->un_name, "Geolocation")) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "sip_geolocation", un->un_value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "sip_geolocation", un->un_value); } else if (!strcasecmp(un->un_name, "Geolocation-Error")) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "sip_geolocation_error", un->un_value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "sip_geolocation_error", un->un_value); } else if (!strncasecmp(un->un_name, "X-", 2) || !strncasecmp(un->un_name, "P-", 2) || !strcasecmp(un->un_name, "User-to-User")) { if (!zstr(un->un_value)) { char new_name[512] = ""; @@ -4974,7 +4974,7 @@ void sofia_presence_handle_sip_i_message(int status, continue; } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, new_name, un->un_value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, new_name, un->un_value); break; } } @@ -4994,7 +4994,7 @@ void sofia_presence_handle_sip_i_message(int status, if (switch_event_dup(&event_dup, event) == SWITCH_STATUS_SUCCESS) { event_dup->event_id = SWITCH_EVENT_RECV_MESSAGE; event_dup->flags |= EF_UNIQ_HEADERS; - switch_event_add_header_string(event_dup, SWITCH_STACK_BOTTOM, "Event-Name", switch_event_name(event_dup->event_id)); + switch_event_add_header_string_dup(event_dup, SWITCH_STACK_BOTTOM, "Event-Name", switch_event_name(event_dup->event_id)); switch_event_fire(&event_dup); } } diff --git a/src/mod/endpoints/mod_sofia/sofia_reg.c b/src/mod/endpoints/mod_sofia/sofia_reg.c index 9791190f5f..036405365f 100644 --- a/src/mod/endpoints/mod_sofia/sofia_reg.c +++ b/src/mod/endpoints/mod_sofia/sofia_reg.c @@ -154,16 +154,16 @@ void sofia_reg_fire_custom_gateway_state_event(sofia_gateway_t *gateway, int sta { switch_event_t *s_event; if (switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_GATEWAY_STATE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "Gateway", gateway->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "State", sofia_state_string(gateway->state)); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "Ping-Status", sofia_gateway_status_name(gateway->status)); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "Gateway", gateway->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "State", sofia_state_string(gateway->state)); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "Ping-Status", sofia_gateway_status_name(gateway->status)); if (!zstr_buf(gateway->register_network_ip)) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "Register-Network-IP", gateway->register_network_ip); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "Register-Network-IP", gateway->register_network_ip); switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "Register-Network-Port", "%d", gateway->register_network_port); } if (!zstr(phrase)) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "Phrase", phrase); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "Phrase", phrase); } if (status) { switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "Status", "%d", status); @@ -177,16 +177,16 @@ void sofia_reg_fire_custom_sip_user_state_event(sofia_profile_t *profile, const { switch_event_t *s_event; if (switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_SIP_USER_STATE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "sip_contact", contact); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile-name", profile->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "sip_user", sip_user); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "from-user", from_user); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "from-host", from_host); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "call-id", call_id); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "Ping-Status", sofia_sip_user_status_name(status)); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "sip_contact", contact); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile-name", profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "sip_user", sip_user); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "from-user", from_user); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "from-host", from_host); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "call-id", call_id); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "Ping-Status", sofia_sip_user_status_name(status)); switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "Status", "%d", options_res); if (!zstr(phrase)) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "Phrase", phrase); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "Phrase", phrase); } switch_event_fire(&s_event); } @@ -341,8 +341,8 @@ void sofia_reg_check_gateway(sofia_profile_t *profile, time_t now) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Deleted gateway %s\n", gateway_ptr->name); if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_GATEWAY_DEL) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "profile-name", gateway_ptr->profile->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Gateway", gateway_ptr->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "profile-name", gateway_ptr->profile->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Gateway", gateway_ptr->name); switch_event_fire(&event); } if (gateway_ptr->ob_vars) { @@ -724,35 +724,35 @@ int sofia_reg_del_callback(void *pArg, int argc, char **argv, char **columnNames if (argc >= 3) { if (switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_EXPIRE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile-name", argv[10]); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "call-id", argv[0]); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "user", argv[1]); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "username", argv[1]); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "host", argv[2]); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "contact", argv[3]); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "expires", argv[6]); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "user-agent", argv[7]); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "realm", argv[14]); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "network-ip", argv[11]); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "network-port", argv[12]); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile-name", argv[10]); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "call-id", argv[0]); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "user", argv[1]); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "username", argv[1]); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "host", argv[2]); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "contact", argv[3]); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "expires", argv[6]); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "user-agent", argv[7]); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "realm", argv[14]); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "network-ip", argv[11]); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "network-port", argv[12]); sofia_event_fire(profile, &s_event); } if (switch_event_create(&s_event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "rpid", "away"); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "login", profile->url); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "rpid", "away"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "login", profile->url); if (argv[4]) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "user-agent", argv[4]); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "user-agent", argv[4]); } if (argv[1] && argv[2]) { switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "from", "%s@%s", argv[1], argv[2]); } - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "status", "Unregistered"); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "status", "Unregistered"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "event_type", "presence"); sofia_event_fire(profile, &s_event); } @@ -1607,36 +1607,36 @@ uint8_t sofia_reg_handle_register_token(nua_t *nua, sofia_profile_t *profile, nu realm = switch_event_get_header(auth_params, "sip_auth_realm"); } if (switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_REGISTER_ATTEMPT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile-name", profile->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "from-user", to_user); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "from-host", reg_host); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile-name", profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "from-user", to_user); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "from-host", reg_host); if (contact) - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "contact", contact_str); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "call-id", call_id); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "rpid", rpid); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "status", reg_desc); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "contact", contact_str); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "call-id", call_id); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "rpid", rpid); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "status", reg_desc); if (contact) switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "expires", "%ld", (long) exptime); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "to-user", from_user); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "to-host", from_host); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "network-ip", network_ip); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "network-port", network_port_c); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "username", username); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "realm", realm); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "user-agent", agent); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "to-user", from_user); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "to-host", from_host); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "network-ip", network_ip); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "network-port", network_port_c); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "username", username); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "realm", realm); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "user-agent", agent); switch (auth_res) { case AUTH_OK: - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "auth-result", "SUCCESS"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "auth-result", "SUCCESS"); break; case AUTH_RENEWED: - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "auth-result", "RENEWED"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "auth-result", "RENEWED"); break; case AUTH_STALE: - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "auth-result", "STALE"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "auth-result", "STALE"); break; case AUTH_FORBIDDEN: - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "auth-result", "FORBIDDEN"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "auth-result", "FORBIDDEN"); break; } switch_event_fire(&s_event); @@ -1794,14 +1794,14 @@ uint8_t sofia_reg_handle_register_token(nua_t *nua, sofia_profile_t *profile, nu } if (forbidden && switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_REGISTER_FAILURE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile-name", profile->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "to-user", to_user); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "to-host", to_host); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "network-ip", network_ip); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "user-agent", agent); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile-name", profile->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "network-port", network_port_c); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "registration-type", (regtype == REG_INVITE) ? "INVITE" : "REGISTER"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile-name", profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "to-user", to_user); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "to-host", to_host); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "network-ip", network_ip); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "user-agent", agent); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile-name", profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "network-port", network_port_c); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "registration-type", (regtype == REG_INVITE) ? "INVITE" : "REGISTER"); switch_event_fire(&s_event); } switch_goto_int(r, 1, end); @@ -1812,21 +1812,21 @@ uint8_t sofia_reg_handle_register_token(nua_t *nua, sofia_profile_t *profile, nu const char *realm = profile->challenge_realm; if (switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_PRE_REGISTER) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile-name", profile->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "from-user", to_user); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "from-host", reg_host); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile-name", profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "from-user", to_user); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "from-host", reg_host); if (contact) - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "contact", contact_str); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "call-id", call_id); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "rpid", rpid); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "status", reg_desc); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "contact", contact_str); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "call-id", call_id); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "rpid", rpid); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "status", reg_desc); if (contact) switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "expires", "%ld", (long) exptime); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "to-user", from_user); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "to-host", from_host); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "network-ip", network_ip); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "network-port", network_port_c); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "user-agent", agent); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "to-user", from_user); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "to-host", from_host); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "network-ip", network_ip); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "network-port", network_port_c); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "user-agent", agent); switch_event_fire(&s_event); } @@ -2058,24 +2058,24 @@ uint8_t sofia_reg_handle_register_token(nua_t *nua, sofia_profile_t *profile, nu if (switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_REGISTER) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile-name", profile->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "from-user", to_user); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "from-host", reg_host); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "presence-hosts", profile->presence_hosts ? profile->presence_hosts : "n/a"); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "contact", contact_str); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "call-id", call_id); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "rpid", rpid); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "status", reg_desc); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile-name", profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "from-user", to_user); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "from-host", reg_host); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "presence-hosts", profile->presence_hosts ? profile->presence_hosts : "n/a"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "contact", contact_str); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "call-id", call_id); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "rpid", rpid); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "status", reg_desc); switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "expires", "%ld", (long) exptime); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "to-user", from_user); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "to-host", from_host); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "network-ip", network_ip); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "network-port", network_port_c); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "username", username); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "realm", realm); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "user-agent", agent); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "to-user", from_user); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "to-host", from_host); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "network-ip", network_ip); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "network-port", network_port_c); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "username", username); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "realm", realm); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "user-agent", agent); if (update_registration) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "update-reg", "true"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "update-reg", "true"); } if (v_event && *v_event) { switch_event_merge(s_event, *v_event); @@ -2102,15 +2102,15 @@ uint8_t sofia_reg_handle_register_token(nua_t *nua, sofia_profile_t *profile, nu sofia_reg_check_socket(profile, call_id, network_ip, network_port_c); if (send && switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", rpid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", profile->url); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "user-agent", + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", rpid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", profile->url); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "user-agent", (sip && sip->sip_user_agent) ? sip->sip_user_agent->g_string : "unknown"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", to_user, sub_host); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "status", "Unregistered"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "presence-source", "register"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "status", "Unregistered"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "presence-source", "register"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); switch_event_fire(&event); } @@ -2168,8 +2168,8 @@ uint8_t sofia_reg_handle_register_token(nua_t *nua, sofia_profile_t *profile, nu if (send_message_query == 2 || (reg_count == 1 && send_message_query == 1 && debounce_ok)) { if (switch_event_create(&s_mwi_event, SWITCH_EVENT_MESSAGE_QUERY) == SWITCH_STATUS_SUCCESS) { switch_event_add_header(s_mwi_event, SWITCH_STACK_BOTTOM, "Message-Account", "%s:%s@%s", proto, mwi_user, mwi_host); - switch_event_add_header_string(s_mwi_event, SWITCH_STACK_BOTTOM, "VM-Sofia-Profile", profile->name); - switch_event_add_header_string(s_mwi_event, SWITCH_STACK_BOTTOM, "VM-Call-ID", call_id); + switch_event_add_header_string_dup(s_mwi_event, SWITCH_STACK_BOTTOM, "VM-Sofia-Profile", profile->name); + switch_event_add_header_string_dup(s_mwi_event, SWITCH_STACK_BOTTOM, "VM-Call-ID", call_id); } } @@ -2179,23 +2179,23 @@ uint8_t sofia_reg_handle_register_token(nua_t *nua, sofia_profile_t *profile, nu if (sofia_test_pflag(profile, PFLAG_PRESENCE_PROBE_ON_REGISTER)) { if (switch_event_create(&s_event, SWITCH_EVENT_PRESENCE_PROBE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "login", profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "login", profile->name); switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "from", "%s@%s", to_user, sub_host); switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "to", "%s@%s", to_user, sub_host); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "presence-source", "register"); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "presence-source", "register"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); switch_event_fire(&s_event); } } else { if (switch_event_create(&s_event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "login", profile->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "presence-source", "register"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "proto", SOFIA_CHAT_PROTO); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "login", profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "presence-source", "register"); switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "from", "%s@%s", to_user, sub_host); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "status", "Registered"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "status", "Registered"); switch_event_fire(&s_event); } } @@ -2212,17 +2212,17 @@ uint8_t sofia_reg_handle_register_token(nua_t *nua, sofia_profile_t *profile, nu switch_core_del_registration(to_user, reg_host, call_id); if (switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_UNREGISTER) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile-name", profile->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "username", username); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "from-user", to_user); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "from-host", reg_host); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "contact", contact_str); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "call-id", call_id); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "rpid", rpid); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "realm", realm); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "network-ip", network_ip); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "network-port", network_port_c); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "user-agent", agent); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile-name", profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "username", username); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "from-user", to_user); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "from-host", reg_host); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "contact", contact_str); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "call-id", call_id); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "rpid", rpid); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "realm", realm); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "network-ip", network_ip); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "network-port", network_port_c); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "user-agent", agent); switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "expires", "%ld", (long) exptime); if (v_event && *v_event) { @@ -2796,10 +2796,10 @@ void sofia_reg_handle_sip_r_challenge(int status, switch_event_create(&locate_params, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(locate_params); - switch_event_add_header_string(locate_params, SWITCH_STACK_BOTTOM, "action", "reverse-auth-lookup"); + switch_event_add_header_string_dup(locate_params, SWITCH_STACK_BOTTOM, "action", "reverse-auth-lookup"); if ( sip->sip_call_id ) { - switch_event_add_header_string(locate_params, SWITCH_STACK_BOTTOM, "sip_call_id", sip->sip_call_id->i_id); + switch_event_add_header_string_dup(locate_params, SWITCH_STACK_BOTTOM, "sip_call_id", sip->sip_call_id->i_id); } if (switch_xml_locate_user_merged("id", sip->sip_to->a_url->url_user, sip->sip_to->a_url->url_host, NULL, @@ -2834,9 +2834,9 @@ void sofia_reg_handle_sip_r_challenge(int status, if (gateway) { switch_event_t *s_event; if (switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_GATEWAY_INVALID_DIGEST_REQ) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "Gateway", gateway->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile-name", gateway->profile->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "realm", realm); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "Gateway", gateway->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile-name", gateway->profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "realm", realm); switch_event_fire(&s_event); } } @@ -3124,50 +3124,50 @@ auth_res_t sofia_reg_parse_auth(sofia_profile_t *profile, switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(params); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "action", "sip_auth"); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_user_agent", user_agent); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_auth_username", username); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_auth_realm", realm); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_auth_nonce", nonce); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_auth_uri", uri); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "action", "sip_auth"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_profile", profile->name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_user_agent", user_agent); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_auth_username", username); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_auth_realm", realm); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_auth_nonce", nonce); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_auth_uri", uri); if (sip->sip_contact) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_contact_user", sip->sip_contact->m_url->url_user); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_contact_host", sip->sip_contact->m_url->url_host); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_contact_user", sip->sip_contact->m_url->url_user); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_contact_host", sip->sip_contact->m_url->url_host); } if (sip->sip_to) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_to_user", sip->sip_to->a_url->url_user); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_to_host", sip->sip_to->a_url->url_host); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_to_user", sip->sip_to->a_url->url_user); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_to_host", sip->sip_to->a_url->url_host); if (sip->sip_to->a_url->url_port) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_to_port", sip->sip_to->a_url->url_port); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_to_port", sip->sip_to->a_url->url_port); } } if (sip->sip_via) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_via_protocol", sofia_glue_transport2str(sofia_glue_via2transport(sip->sip_via))); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_via_protocol", sofia_glue_transport2str(sofia_glue_via2transport(sip->sip_via))); } if (sip->sip_from) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_from_user", sip->sip_from->a_url->url_user); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_from_host", sip->sip_from->a_url->url_host); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_from_user", sip->sip_from->a_url->url_user); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_from_host", sip->sip_from->a_url->url_host); if (sip->sip_from->a_url->url_port) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_from_port", sip->sip_from->a_url->url_port); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_from_port", sip->sip_from->a_url->url_port); } } if (sip->sip_call_id && sip->sip_call_id->i_id) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_call_id", sip->sip_call_id->i_id); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_call_id", sip->sip_call_id->i_id); } if (sip->sip_request) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_request_user", sip->sip_request->rq_url->url_user); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_request_host", sip->sip_request->rq_url->url_host); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_request_user", sip->sip_request->rq_url->url_user); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_request_host", sip->sip_request->rq_url->url_host); if (sip->sip_request->rq_url->url_port) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_request_port", sip->sip_request->rq_url->url_port); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_request_port", sip->sip_request->rq_url->url_port); } } @@ -3175,7 +3175,7 @@ auth_res_t sofia_reg_parse_auth(sofia_profile_t *profile, if (!strncasecmp(un->un_name, "X-", 2)) { if (!zstr(un->un_value)) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG10, "adding %s => %s to xml_curl request\n", un->un_name, un->un_value); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, un->un_name, un->un_value); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, un->un_name, un->un_value); } } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG10, "skipping %s => %s from xml_curl request\n", un->un_name, un->un_value); @@ -3183,19 +3183,19 @@ auth_res_t sofia_reg_parse_auth(sofia_profile_t *profile, } if (qop) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_auth_qop", qop); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_auth_qop", qop); } if (cnonce) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_auth_cnonce", cnonce); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_auth_cnonce", cnonce); } if (nc) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_auth_nc", nc); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_auth_nc", nc); } - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_auth_response", response); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_auth_response", response); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "sip_auth_method", (sip && sip->sip_request) ? sip->sip_request->rq_method_name : NULL); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "sip_auth_method", (sip && sip->sip_request) ? sip->sip_request->rq_method_name : NULL); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "client_port", client_port); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "client_port", client_port); if (auth_params) { switch_event_dup(auth_params, params); } @@ -3442,15 +3442,15 @@ auth_res_t sofia_reg_parse_auth(sofia_profile_t *profile, switch_xml_t xparams[6]; int i = 0; - switch_event_add_header_string(*v_event, SWITCH_STACK_BOTTOM, "sip_number_alias", number_alias); - switch_event_add_header_string(*v_event, SWITCH_STACK_BOTTOM, "sip_auth_username", username); - switch_event_add_header_string(*v_event, SWITCH_STACK_BOTTOM, "sip_auth_realm", realm); - switch_event_add_header_string(*v_event, SWITCH_STACK_BOTTOM, "number_alias", number_alias); - switch_event_add_header_string(*v_event, SWITCH_STACK_BOTTOM, "user_name", username); - switch_event_add_header_string(*v_event, SWITCH_STACK_BOTTOM, "domain_name", domain_name); + switch_event_add_header_string_dup(*v_event, SWITCH_STACK_BOTTOM, "sip_number_alias", number_alias); + switch_event_add_header_string_dup(*v_event, SWITCH_STACK_BOTTOM, "sip_auth_username", username); + switch_event_add_header_string_dup(*v_event, SWITCH_STACK_BOTTOM, "sip_auth_realm", realm); + switch_event_add_header_string_dup(*v_event, SWITCH_STACK_BOTTOM, "number_alias", number_alias); + switch_event_add_header_string_dup(*v_event, SWITCH_STACK_BOTTOM, "user_name", username); + switch_event_add_header_string_dup(*v_event, SWITCH_STACK_BOTTOM, "domain_name", domain_name); if (mwi_account) { - switch_event_add_header_string(*v_event, SWITCH_STACK_BOTTOM, "mwi-account", mwi_account); + switch_event_add_header_string_dup(*v_event, SWITCH_STACK_BOTTOM, "mwi-account", mwi_account); } if ((uparams = switch_xml_child(user, "params"))) { @@ -3476,7 +3476,7 @@ auth_res_t sofia_reg_parse_auth(sofia_profile_t *profile, if (profile->debug) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "event_add_header -> '%s' = '%s'\n", var, val); } - switch_event_add_header_string(*v_event, SWITCH_STACK_BOTTOM, var, val); + switch_event_add_header_string_dup(*v_event, SWITCH_STACK_BOTTOM, var, val); } } } @@ -3722,8 +3722,8 @@ switch_status_t sofia_reg_add_gateway(sofia_profile_t *profile, const char *key, switch_event_t *s_event; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Added gateway '%s' to profile '%s'\n", gateway->name, gateway->profile->name); if (switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_GATEWAY_ADD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "Gateway", gateway->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "profile-name", gateway->profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "Gateway", gateway->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "profile-name", gateway->profile->name); switch_event_fire(&s_event); } } diff --git a/src/mod/endpoints/mod_verto/mod_verto.c b/src/mod/endpoints/mod_verto/mod_verto.c index 2245c33a56..6735683557 100644 --- a/src/mod/endpoints/mod_verto/mod_verto.c +++ b/src/mod/endpoints/mod_verto/mod_verto.c @@ -392,7 +392,7 @@ static void presence_ping(const char *event_channel) if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_CALLSTATE) == SWITCH_STATUS_SUCCESS) { switch_channel_callstate_t callstate = switch_channel_get_callstate(channel); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Original-Channel-Call-State", switch_channel_callstate2str(callstate)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Original-Channel-Call-State", switch_channel_callstate2str(callstate)); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Channel-Call-State-Number", "%d", callstate); switch_channel_event_set_data(channel, event); switch_event_fire(&event); @@ -854,7 +854,7 @@ static void set_perm(const char *str, switch_event_t **event, switch_bool_t add) } if (add) { - switch_event_add_header_string(*event, SWITCH_STACK_BOTTOM, cur, MARKER); + switch_event_add_header_string_dup(*event, SWITCH_STACK_BOTTOM, cur, MARKER); } else { switch_event_del_header(*event, cur); } @@ -905,7 +905,7 @@ static void check_permissions(jsock_t *jsock, switch_xml_t x_user, cJSON *params set_perm(allowed_fsapi, &jsock->allowed_fsapi, SWITCH_TRUE); set_perm(allowed_event_channels, &jsock->allowed_event_channels, SWITCH_TRUE); - switch_event_add_header_string(jsock->allowed_methods, SWITCH_STACK_BOTTOM, "login", MARKER); + switch_event_add_header_string_dup(jsock->allowed_methods, SWITCH_STACK_BOTTOM, "login", MARKER); } @@ -940,16 +940,16 @@ static void login_fire_custom_event(jsock_t *jsock, cJSON *params, int success, switch_event_t *s_event; if (switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_LOGIN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "verto_profile_name", jsock->profile->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "verto_client_address", jsock->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "verto_profile_name", jsock->profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "verto_client_address", jsock->name); if (params) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "verto_login", cJSON_GetObjectCstr(params, "login")); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "verto_login", cJSON_GetObjectCstr(params, "login")); if (success) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "verto_sessid", cJSON_GetObjectCstr(params, "sessid")); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "verto_sessid", cJSON_GetObjectCstr(params, "sessid")); } } switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "verto_success", "%d", success); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "verto_result_txt", result_txt); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "verto_result_txt", result_txt); switch_event_fire(&s_event); } } @@ -1027,11 +1027,11 @@ static switch_bool_t check_auth(jsock_t *jsock, cJSON *params, int *code, char * for(i = json_ptr->child; i; i = i->next) { if (i->type == cJSON_True) { - switch_event_add_header_string(req_params, SWITCH_STACK_BOTTOM, i->string, "true"); + switch_event_add_header_string_dup(req_params, SWITCH_STACK_BOTTOM, i->string, "true"); } else if (i->type == cJSON_False) { - switch_event_add_header_string(req_params, SWITCH_STACK_BOTTOM, i->string, "false"); + switch_event_add_header_string_dup(req_params, SWITCH_STACK_BOTTOM, i->string, "false"); } else if (!zstr(i->string) && !zstr(i->valuestring)) { - switch_event_add_header_string(req_params, SWITCH_STACK_BOTTOM, i->string, i->valuestring); + switch_event_add_header_string_dup(req_params, SWITCH_STACK_BOTTOM, i->string, i->valuestring); } } } @@ -1043,21 +1043,21 @@ static switch_bool_t check_auth(jsock_t *jsock, cJSON *params, int *code, char * switch_mutex_lock(jsock->flag_mutex); for(i = json_ptr->child; i; i = i->next) { if (i->type == cJSON_True) { - switch_event_add_header_string(jsock->user_vars, SWITCH_STACK_BOTTOM, i->string, "true"); + switch_event_add_header_string_dup(jsock->user_vars, SWITCH_STACK_BOTTOM, i->string, "true"); } else if (i->type == cJSON_False) { - switch_event_add_header_string(jsock->user_vars, SWITCH_STACK_BOTTOM, i->string, "false"); + switch_event_add_header_string_dup(jsock->user_vars, SWITCH_STACK_BOTTOM, i->string, "false"); } else if (!zstr(i->string) && !zstr(i->valuestring)) { - switch_event_add_header_string(jsock->user_vars, SWITCH_STACK_BOTTOM, i->string, i->valuestring); + switch_event_add_header_string_dup(jsock->user_vars, SWITCH_STACK_BOTTOM, i->string, i->valuestring); } } switch_mutex_unlock(jsock->flag_mutex); } if (jsock->profile->send_passwd || verto_globals.send_passwd) { - switch_event_add_header_string(req_params, SWITCH_STACK_BOTTOM, "user_supplied_pass", passwd); + switch_event_add_header_string_dup(req_params, SWITCH_STACK_BOTTOM, "user_supplied_pass", passwd); } - switch_event_add_header_string(req_params, SWITCH_STACK_BOTTOM, "action", "jsonrpc-authenticate"); + switch_event_add_header_string_dup(req_params, SWITCH_STACK_BOTTOM, "action", "jsonrpc-authenticate"); if (switch_xml_locate_user_merged("id", id, domain, NULL, &x_user, req_params) != SWITCH_STATUS_SUCCESS && !jsock->profile->blind_reg) { *code = CODE_AUTH_FAILED; @@ -1105,7 +1105,7 @@ static switch_bool_t check_auth(jsock_t *jsock, cJSON *params, int *code, char * verto_dialplan = val; } - switch_event_add_header_string(jsock->params, SWITCH_STACK_BOTTOM, var, val); + switch_event_add_header_string_dup(jsock->params, SWITCH_STACK_BOTTOM, var, val); } } @@ -1115,8 +1115,8 @@ static switch_bool_t check_auth(jsock_t *jsock, cJSON *params, int *code, char * const char *val = switch_xml_attr_soft(x_param, "value"); switch_mutex_lock(jsock->flag_mutex); - switch_event_add_header_string(jsock->vars, SWITCH_STACK_BOTTOM, var, val); - switch_event_add_header_string(jsock->user_vars, SWITCH_STACK_BOTTOM, var, val); + switch_event_add_header_string_dup(jsock->vars, SWITCH_STACK_BOTTOM, var, val); + switch_event_add_header_string_dup(jsock->user_vars, SWITCH_STACK_BOTTOM, var, val); switch_mutex_unlock(jsock->flag_mutex); switch_clear_flag(jsock, JPFLAG_AUTH_EXPIRED); @@ -1720,7 +1720,7 @@ static void request_headers_to_event(switch_event_t *event, kws_request_t *reque for (i = 0; i < KWS_MAX_HEADERS; i++) { if (!request->headers_k[i]) break; - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, request->headers_k[i], request->headers_v[i]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, request->headers_k[i], request->headers_v[i]); } } @@ -1814,8 +1814,8 @@ new_req: stream.raw_write_function = http_stream_raw_write; request_headers_to_event(stream.param_event, request); - switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "Request-Method", request->method); - switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-Request-URI", request->uri); + switch_event_add_header_string_dup(stream.param_event, SWITCH_STACK_BOTTOM, "Request-Method", request->method); + switch_event_add_header_string_dup(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-Request-URI", request->uri); if (!jsock->profile->vhosts) goto err; @@ -1882,7 +1882,7 @@ new_req: authed: switch_set_flag(jsock, JPFLAG_AUTHED); - switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-USER", auth_user); + switch_event_add_header_string_dup(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-USER", auth_user); } if (vhost->rewrites) { @@ -1905,7 +1905,7 @@ authed: } } - switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-URI", request->uri); + switch_event_add_header_string_dup(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-URI", request->uri); if ((ext = strrchr(request->uri, '.'))) { char path[1024]; @@ -2180,9 +2180,9 @@ static void *SWITCH_THREAD_FUNC client_thread(switch_thread_t *thread, void *obj switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s Ending client thread.\n", jsock->name); if (switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_CLIENT_DISCONNECT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "verto_profile_name", jsock->profile->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "verto_client_address", jsock->name); - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "verto_login", switch_str_nil(jsock->uid)); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "verto_profile_name", jsock->profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "verto_client_address", jsock->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "verto_login", switch_str_nil(jsock->uid)); switch_event_fire(&s_event); } switch_thread_rwlock_wrlock(jsock->rwlock); @@ -3775,8 +3775,8 @@ static switch_bool_t verto__info_func(const char *method, cJSON *params, jsock_t json_text = cJSON_PrintUnformatted(jevent); switch_assert(json_text); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "content-type", "text/json"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "content-source", "verto"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "content-type", "text/json"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "content-source", "verto"); switch_event_add_body(event, "%s", json_text); switch_safe_free(json_text); @@ -3873,27 +3873,27 @@ static switch_bool_t verto__info_func(const char *method, cJSON *params, jsock_t } if (!zstr(to) && !zstr(body) && switch_event_create(&event, SWITCH_EVENT_MESSAGE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", VERTO_CHAT_PROTO); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", VERTO_CHAT_PROTO); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from", jsock->uid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_user", jsock->id); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_host", jsock->domain); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from", jsock->uid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from_user", jsock->id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from_host", jsock->domain); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "to", to); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "text/plain"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from_full", jsock->id); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "verto_profile", jsock->profile->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "verto_jsock_uuid", jsock->uuid_str); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "to", to); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "text/plain"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from_full", jsock->id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "verto_profile", jsock->profile->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "verto_jsock_uuid", jsock->uuid_str); for(i = msg->child; i; i = i->next) { if (!zstr(i->string) && !zstr(i->valuestring) && (!strncasecmp(i->string, "from_", 5) || !strncasecmp(i->string, "to_", 3))) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, i->string, i->valuestring); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, i->string, i->valuestring); } } if (is_dialog) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call_id", call_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call_id", call_id); } switch_event_add_body(event, "%s", body); @@ -3987,7 +3987,7 @@ static switch_bool_t verto__invite_func(const char *method, cJSON *params, jsock err = 1; goto cleanup; } - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "origination_uuid", call_id); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "origination_uuid", call_id); if ((reason = switch_core_session_outgoing_channel(NULL, var_event, "rtc", NULL, &session, NULL, SOF_NONE, &cancel_cause)) != SWITCH_CAUSE_SUCCESS) { @@ -4129,7 +4129,7 @@ static switch_bool_t verto__invite_func(const char *method, cJSON *params, jsock } } else if (caller_id_name) { if (!switch_event_get_header(jsock->params, "caller-id-name")) { - switch_event_add_header_string(jsock->params, SWITCH_STACK_BOTTOM, "caller-id-name", caller_id_name); + switch_event_add_header_string_dup(jsock->params, SWITCH_STACK_BOTTOM, "caller-id-name", caller_id_name); } } @@ -4474,7 +4474,7 @@ static switch_bool_t login_func(const char *method, cJSON *params, jsock_t *jsoc switch_mutex_lock(jsock->flag_mutex); if ((var = switch_event_get_header(jsock->vars, "moderator")) && switch_true(var)) { cJSON_AddItemToObject(*response, "moderator", cJSON_CreateTrue()); - switch_event_add_header_string(jsock->vars, SWITCH_STACK_BOTTOM, "conf_mvar_moderator", "true"); + switch_event_add_header_string_dup(jsock->vars, SWITCH_STACK_BOTTOM, "conf_mvar_moderator", "true"); } if ((var = switch_event_get_header(jsock->vars, "stereo_audio")) && switch_true(var)) { @@ -4482,7 +4482,7 @@ static switch_bool_t login_func(const char *method, cJSON *params, jsock_t *jsoc } if ((var = switch_event_get_header(jsock->vars, "superuser")) && switch_true(var)) { - switch_event_add_header_string(jsock->vars, SWITCH_STACK_BOTTOM, "conf_mvar_superuser", "true"); + switch_event_add_header_string_dup(jsock->vars, SWITCH_STACK_BOTTOM, "conf_mvar_superuser", "true"); cJSON_AddItemToObject(*response, "superuser", cJSON_CreateTrue()); } switch_mutex_unlock(jsock->flag_mutex); @@ -4712,7 +4712,7 @@ static int start_jsock(verto_profile_t *profile, ks_socket_t sock, int family) jsock->name, jsock->remote_host, jsock->remote_port); if (switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_CLIENT_CONNECT) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "verto_profile_name", profile->name); + switch_event_add_header_string_dup(s_event, SWITCH_STACK_BOTTOM, "verto_profile_name", profile->name); switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "verto_client_address", "%s", jsock->name); switch_event_fire(&s_event); } @@ -5408,7 +5408,7 @@ static switch_status_t parse_config(const char *cf) if (zstr(expr)) continue; - switch_event_add_header_string(vhost->rewrites, SWITCH_STACK_BOTTOM, expr, val); + switch_event_add_header_string_dup(vhost->rewrites, SWITCH_STACK_BOTTOM, expr, val); } } } // rewrites @@ -6060,14 +6060,14 @@ static switch_call_cause_t verto_outgoing_channel(switch_core_session_t *session if (!switch_stristr("u:", dest)) { char *dial_str = verto_get_dial_string(dest, NULL); - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "verto_orig_dest", dest); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "verto_orig_dest", dest); if (zstr(switch_event_get_header(var_event, "origination_callee_id_number"))) { char *p; char *trimmed_dest = strdup(dest); switch_assert(trimmed_dest); p = strchr(trimmed_dest, '@'); if (p) *p = '\0'; - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "origination_callee_id_number", trimmed_dest); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "origination_callee_id_number", trimmed_dest); free(trimmed_dest); } @@ -6101,10 +6101,10 @@ static switch_call_cause_t verto_outgoing_channel(switch_core_session_t *session if (dialed_domain) { switch_event_add_header(var_event, SWITCH_STACK_BOTTOM, "verto_orig_dest", "%s@%s", dialed_user, dialed_domain); } else { - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "verto_orig_dest", dialed_user); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "verto_orig_dest", dialed_user); } if (zstr(switch_event_get_header(var_event, "origination_callee_id_number"))) { - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "origination_callee_id_number", dialed_user); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "origination_callee_id_number", dialed_user); outbound_profile->callee_id_number = switch_sanitize_number(switch_core_strdup(outbound_profile->pool, dialed_user)); } } diff --git a/src/mod/event_handlers/mod_erlang_event/handle_msg.c b/src/mod/event_handlers/mod_erlang_event/handle_msg.c index 292134d716..348afbd604 100644 --- a/src/mod/event_handlers/mod_erlang_event/handle_msg.c +++ b/src/mod/event_handlers/mod_erlang_event/handle_msg.c @@ -84,16 +84,16 @@ static void *SWITCH_THREAD_FUNC api_exec(switch_thread_t *thread, void *obj) if (switch_event_create(&event, SWITCH_EVENT_BACKGROUND_JOB) == SWITCH_STATUS_SUCCESS) { ei_x_buff ebuf; - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Job-UUID", acs->uuid_str); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Job-Command", acs->api_cmd); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Job-UUID", acs->uuid_str); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Job-Command", acs->api_cmd); ei_x_new_with_version(&ebuf); if (acs->arg) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Job-Command-Arg", acs->arg); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Job-Command-Arg", acs->arg); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Job-Successful", r ? "true" : "false"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Job-Successful", r ? "true" : "false"); switch_event_add_body(event, "%s", reply); switch_event_fire(&event); @@ -373,7 +373,7 @@ static switch_status_t handle_msg_filter(listener_t *listener, int arity, ei_x_b *header_val++ = '\0'; } } - switch_event_add_header_string(listener->filters, SWITCH_STACK_BOTTOM, header_name, header_val); + switch_event_add_header_string_dup(listener->filters, SWITCH_STACK_BOTTOM, header_name, header_val); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "+OK filter added. [%s]=[%s]", header_name, header_val); ei_x_encode_tuple_header(rbuf, 3); _ei_x_encode_string(rbuf, "added"); diff --git a/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c b/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c index d15f748eb7..1f61a735d5 100644 --- a/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c +++ b/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c @@ -663,8 +663,8 @@ static switch_status_t notify_new_session(listener_t *listener, session_elem_t * switch_channel_event_set_data(channel, call_event); switch_core_session_rwunlock(session); /* TODO reply? sure? */ - switch_event_add_header_string(call_event, SWITCH_STACK_BOTTOM, "Content-Type", "command/reply"); - switch_event_add_header_string(call_event, SWITCH_STACK_BOTTOM, "Reply-Text", "+OK\n"); + switch_event_add_header_string_dup(call_event, SWITCH_STACK_BOTTOM, "Content-Type", "command/reply"); + switch_event_add_header_string_dup(call_event, SWITCH_STACK_BOTTOM, "Reply-Text", "+OK\n"); ei_x_new_with_version(&lbuf); ei_x_encode_tuple_header(&lbuf, 2); @@ -721,7 +721,7 @@ static switch_status_t check_attached_sessions(listener_t *listener, int *msgs_s if (status != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_UUID_LOG(sp->uuid_str), SWITCH_LOG_DEBUG, "Notifying new session failed\n"); /* mark this session for removal */ - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "delete", (const char *) key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "delete", (const char *) key); continue; } switch_set_flag_locked(sp, LFLAG_OUTBOUND_INIT); @@ -767,7 +767,7 @@ static switch_status_t check_attached_sessions(listener_t *listener, int *msgs_s switch_mutex_unlock(listener->sock_mutex); ei_x_free(&ebuf); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "delete", (const char *) key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "delete", (const char *) key); continue; } else if (switch_queue_trypop(sp->event_queue, &pop) == SWITCH_STATUS_SUCCESS) { diff --git a/src/mod/event_handlers/mod_event_multicast/mod_event_multicast.c b/src/mod/event_handlers/mod_event_multicast/mod_event_multicast.c index 1ebf5cb7fe..506ed52a15 100644 --- a/src/mod/event_handlers/mod_event_multicast/mod_event_multicast.c +++ b/src/mod/event_handlers/mod_event_multicast/mod_event_multicast.c @@ -496,13 +496,13 @@ static void event_handler(switch_event_t *event) switch_event_t *local_event; if (switch_event_create_subclass(&local_event, SWITCH_EVENT_CUSTOM, MULTICAST_PEERUP) == SWITCH_STATUS_SUCCESS) { char lastseen[21]; - switch_event_add_header_string(local_event, SWITCH_STACK_BOTTOM, "Peer", sender); + switch_event_add_header_string_dup(local_event, SWITCH_STACK_BOTTOM, "Peer", sender); if (p->lastseen) { switch_snprintf(lastseen, sizeof(lastseen), "%d", (int) p->lastseen); } else { switch_snprintf(lastseen, sizeof(lastseen), "%s", "Never"); } - switch_event_add_header_string(local_event, SWITCH_STACK_BOTTOM, "Lastseen", lastseen); + switch_event_add_header_string_dup(local_event, SWITCH_STACK_BOTTOM, "Lastseen", lastseen); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Peer %s has come up; last seen: %s\n", sender, lastseen); switch_event_fire(&local_event); @@ -576,9 +576,9 @@ static void event_handler(switch_event_t *event) last->active = SWITCH_FALSE; if (switch_event_create_subclass(&local_event, SWITCH_EVENT_CUSTOM, MULTICAST_PEERDOWN) == SWITCH_STATUS_SUCCESS) { char lastseen[21]; - switch_event_add_header_string(local_event, SWITCH_STACK_BOTTOM, "Peer", host); + switch_event_add_header_string_dup(local_event, SWITCH_STACK_BOTTOM, "Peer", host); switch_snprintf(lastseen, sizeof(lastseen), "%d", (int) last->lastseen); - switch_event_add_header_string(local_event, SWITCH_STACK_BOTTOM, "Lastseen", lastseen); + switch_event_add_header_string_dup(local_event, SWITCH_STACK_BOTTOM, "Lastseen", lastseen); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Peer %s has gone down; last seen: %s\n", host, lastseen); switch_event_fire(&local_event); @@ -604,7 +604,7 @@ static void event_handler(switch_event_t *event) case SWITCH_EVENT_LOG: return; default: - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Multicast-Sender", switch_core_get_switchname()); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Multicast-Sender", switch_core_get_switchname()); if (switch_event_serialize(event, &packet, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS) { size_t len; char *buf; @@ -760,7 +760,7 @@ static switch_status_t process_packet(char* packet, size_t len) /*switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "\nEVENT %d\n--------------------------------\n%s\n", (int) len, packet); */ if (switch_event_create_subclass(&local_event, SWITCH_EVENT_CUSTOM, MULTICAST_EVENT) == SWITCH_STATUS_SUCCESS) { char *var, *val, *term = NULL, tmpname[128]; - switch_event_add_header_string(local_event, SWITCH_STACK_BOTTOM, "Multicast", "yes"); + switch_event_add_header_string_dup(local_event, SWITCH_STACK_BOTTOM, "Multicast", "yes"); var = packet; while (var && *var) { if ((val = strchr(var, ':')) != 0) { @@ -776,7 +776,7 @@ static switch_status_t process_packet(char* packet, size_t len) } switch_url_decode(val); switch_snprintf(tmpname, sizeof(tmpname), "Orig-%s", var); - switch_event_add_header_string(local_event, SWITCH_STACK_BOTTOM, tmpname, val); + switch_event_add_header_string_dup(local_event, SWITCH_STACK_BOTTOM, tmpname, val); var = term + 1; } else { /* This should be our magic packet, done processing incoming headers */ diff --git a/src/mod/event_handlers/mod_event_socket/mod_event_socket.c b/src/mod/event_handlers/mod_event_socket/mod_event_socket.c index 70331a95e2..7a22512678 100644 --- a/src/mod/event_handlers/mod_event_socket/mod_event_socket.c +++ b/src/mod/event_handlers/mod_event_socket/mod_event_socket.c @@ -800,7 +800,7 @@ SWITCH_STANDARD_API(event_sink_function) stream->write_function(stream, "Invalid Syntax\n"); goto filter_end; } - switch_event_add_header_string(listener->filters, SWITCH_STACK_BOTTOM, header_name, header_val); + switch_event_add_header_string_dup(listener->filters, SWITCH_STACK_BOTTOM, header_name, header_val); stream->write_function(stream, "\n filter added.\n\n"); } else { stream->write_function(stream, "Invalid Syntax\n"); @@ -1297,7 +1297,7 @@ static switch_status_t read_packet(listener_t *listener, switch_event_t **event, count++; if (count == 1) { switch_event_create(event, SWITCH_EVENT_CLONE); - switch_event_add_header_string(*event, SWITCH_STACK_BOTTOM, "Command", mbuf); + switch_event_add_header_string_dup(*event, SWITCH_STACK_BOTTOM, "Command", mbuf); } else if (cur) { char *var, *val; var = cur; @@ -1310,7 +1310,7 @@ static switch_status_t read_packet(listener_t *listener, switch_event_t **event, } } if (val) { - switch_event_add_header_string(*event, SWITCH_STACK_BOTTOM, var, val); + switch_event_add_header_string_dup(*event, SWITCH_STACK_BOTTOM, var, val); if (!strcasecmp(var, "content-length")) { clen = atoi(val); @@ -1570,11 +1570,11 @@ static void *SWITCH_THREAD_FUNC api_exec(switch_thread_t *thread, void *obj) switch_event_t *event; if (switch_event_create(&event, SWITCH_EVENT_BACKGROUND_JOB) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Job-UUID", acs->uuid_str); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Job-Owner-UUID", acs->bg_owner_uuid_str); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Job-Command", acs->api_cmd); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Job-UUID", acs->uuid_str); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Job-Owner-UUID", acs->bg_owner_uuid_str); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Job-Command", acs->api_cmd); if (acs->arg) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Job-Command-Arg", acs->arg); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Job-Command-Arg", acs->arg); } switch_event_add_body(event, "%s", reply); switch_event_fire(&event); @@ -1807,7 +1807,7 @@ static switch_status_t parse_command(listener_t *listener, switch_event_t **even switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(params); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "action", "event_socket_auth"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "action", "event_socket_auth"); if (switch_xml_locate_user("id", user, domain_name, NULL, &x_domain_root, &x_domain, &x_user, &x_group, params) == SWITCH_STATUS_SUCCESS) { switch_xml_t list[3]; @@ -1990,7 +1990,7 @@ static switch_status_t parse_command(listener_t *listener, switch_event_t **even *header_val++ = '\0'; } } - switch_event_add_header_string(listener->filters, SWITCH_STACK_BOTTOM, header_name, header_val); + switch_event_add_header_string_dup(listener->filters, SWITCH_STACK_BOTTOM, header_name, header_val); switch_snprintf(reply, reply_len, "+OK filter added. [%s]=[%s]", header_name, header_val); } else { switch_snprintf(reply, reply_len, "-ERR invalid syntax"); @@ -2026,10 +2026,10 @@ static switch_status_t parse_command(listener_t *listener, switch_event_t **even switch_caller_profile_event_set_data(switch_channel_get_caller_profile(channel), "Channel", call_event); switch_channel_event_set_data(channel, call_event); } - switch_event_add_header_string(call_event, SWITCH_STACK_BOTTOM, "Content-Type", "command/reply"); - switch_event_add_header_string(call_event, SWITCH_STACK_BOTTOM, "Reply-Text", "+OK\n"); - switch_event_add_header_string(call_event, SWITCH_STACK_BOTTOM, "Socket-Mode", switch_test_flag(listener, LFLAG_ASYNC) ? "async" : "static"); - switch_event_add_header_string(call_event, SWITCH_STACK_BOTTOM, "Control", switch_test_flag(listener, LFLAG_FULL) ? "full" : "single-channel"); + switch_event_add_header_string_dup(call_event, SWITCH_STACK_BOTTOM, "Content-Type", "command/reply"); + switch_event_add_header_string_dup(call_event, SWITCH_STACK_BOTTOM, "Reply-Text", "+OK\n"); + switch_event_add_header_string_dup(call_event, SWITCH_STACK_BOTTOM, "Socket-Mode", switch_test_flag(listener, LFLAG_ASYNC) ? "async" : "static"); + switch_event_add_header_string_dup(call_event, SWITCH_STACK_BOTTOM, "Control", switch_test_flag(listener, LFLAG_FULL) ? "full" : "single-channel"); switch_event_serialize(call_event, &event_str, SWITCH_TRUE); switch_assert(event_str); @@ -2238,7 +2238,7 @@ static switch_status_t parse_command(listener_t *listener, switch_event_t **even char uuid_str[SWITCH_UUID_FORMATTED_LENGTH + 1]; switch_uuid_str(uuid_str, sizeof(uuid_str)); - switch_event_add_header_string(*event, SWITCH_STACK_BOTTOM, "Event-UUID", uuid_str); + switch_event_add_header_string_dup(*event, SWITCH_STACK_BOTTOM, "Event-UUID", uuid_str); strip_cr(cmd); diff --git a/src/mod/event_handlers/mod_kazoo/kazoo_commands.c b/src/mod/event_handlers/mod_kazoo/kazoo_commands.c index 6d956376a8..980bd2904f 100644 --- a/src/mod/event_handlers/mod_kazoo/kazoo_commands.c +++ b/src/mod/event_handlers/mod_kazoo/kazoo_commands.c @@ -267,7 +267,7 @@ static size_t header_callback(char *buffer, size_t size, size_t nitems, void *us char buf[1024]; if(len > 2 && len < 1024) { snprintf(buf, sizeof(buf), "%s", buffer); - switch_event_add_header_string(event, SWITCH_STACK_PUSH | SWITCH_STACK_BOTTOM, "Reply-Headers", buf); + switch_event_add_header_string_dup(event, SWITCH_STACK_PUSH | SWITCH_STACK_BOTTOM, "Reply-Headers", buf); } return nitems * size; } @@ -538,8 +538,8 @@ SWITCH_STANDARD_API(kz_contact_fun) switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(params); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "action", "call"); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "Fetch-Exclude-Cache", "true"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "action", "call"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "Fetch-Exclude-Cache", "true"); /* if (stream->param_event) { @@ -549,9 +549,9 @@ SWITCH_STANDARD_API(kz_contact_fun) /* if (session) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "Fetch-Call-UUID", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "Fetch-Call-UUID", switch_core_session_get_uuid(session)); } else if (stream->param_event && (var = switch_event_get_header(stream->param_event, "ent_originate_aleg_uuid")) != NULL) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "Fetch-Call-UUID", var); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "Fetch-Call-UUID", var); } */ diff --git a/src/mod/event_handlers/mod_kazoo/kazoo_dptools.c b/src/mod/event_handlers/mod_kazoo/kazoo_dptools.c index 5a01650969..e0179dd4eb 100644 --- a/src/mod/event_handlers/mod_kazoo/kazoo_dptools.c +++ b/src/mod/event_handlers/mod_kazoo/kazoo_dptools.c @@ -183,7 +183,7 @@ SWITCH_STANDARD_APP(prefix_unset_function) const char *name = ei->name; char *value = ei->value; if (!strncasecmp(name, arg, strlen(arg))) { - switch_event_add_header_string(clear, SWITCH_STACK_BOTTOM, name, value); + switch_event_add_header_string_dup(clear, SWITCH_STACK_BOTTOM, name, value); } } @@ -885,7 +885,7 @@ void *SWITCH_THREAD_FUNC kz_att_thread_run(switch_thread_t *thread, void *obj) b_channel = switch_core_session_get_channel(b_session); if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, "sofia::transferee") == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(b_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "att_xfer_replaced_call_id", switch_core_session_get_uuid(peer_session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "att_xfer_replaced_call_id", switch_core_session_get_uuid(peer_session)); switch_event_fire(&event); } diff --git a/src/mod/event_handlers/mod_kazoo/kazoo_ei_utils.c b/src/mod/event_handlers/mod_kazoo/kazoo_ei_utils.c index ef45af0ea3..c71b51b5ad 100644 --- a/src/mod/event_handlers/mod_kazoo/kazoo_ei_utils.c +++ b/src/mod/event_handlers/mod_kazoo/kazoo_ei_utils.c @@ -862,7 +862,7 @@ static void fetch_config_filters(switch_memory_pool_t *pool) switch_event_t *params; switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "Action", "request-filter"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "Action", "request-filter"); if (!(xml = switch_xml_open_cfg(cf, &cfg, params))) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to open configuration file %s\n", cf); @@ -898,7 +898,7 @@ static void fetch_config_handlers(switch_memory_pool_t *pool) switch_event_t *params; switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "Action", "request-handlers"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "Action", "request-handlers"); if (!(xml = switch_xml_open_cfg(cf, &cfg, params))) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to open configuration file %s\n", cf); diff --git a/src/mod/event_handlers/mod_kazoo/kazoo_endpoints.c b/src/mod/event_handlers/mod_kazoo/kazoo_endpoints.c index 4ddfeddae4..3f1eff2384 100644 --- a/src/mod/event_handlers/mod_kazoo/kazoo_endpoints.c +++ b/src/mod/event_handlers/mod_kazoo/kazoo_endpoints.c @@ -52,7 +52,7 @@ static void kz_tweaks_variables_to_event(switch_core_session_t *session, switch_ switch_channel_t *channel = switch_core_session_get_channel(session); for(i = 0; x_bridge_variables[i] != NULL; i++) { const char *val = switch_channel_get_variable_dup(channel, x_bridge_variables[i], SWITCH_FALSE, -1); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, x_bridge_variables[i], val); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, x_bridge_variables[i], val); } } @@ -113,10 +113,10 @@ static switch_call_cause_t kz_endpoint_outgoing_channel(switch_core_session_t *s switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(params); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "as_channel", "true"); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "action", "user_call"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "as_channel", "true"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "action", "user_call"); if (session) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(session)); } if (var_event) { @@ -156,7 +156,7 @@ static switch_call_cause_t kz_endpoint_outgoing_channel(switch_core_session_t *s } else { switch_event_del_header(var_event, pvar); } - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, pvar, val); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, pvar, val); } } @@ -178,7 +178,7 @@ static switch_call_cause_t kz_endpoint_outgoing_channel(switch_core_session_t *s switch_event_del_header(var_event, pvar + 9); } switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "adding dialog var to var_event => %s = %s\n", pvar + 9, val); - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, pvar + 9, val); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, pvar + 9, val); } } } @@ -241,8 +241,8 @@ static switch_call_cause_t kz_endpoint_outgoing_channel(switch_core_session_t *s dialed_user = (char *)switch_xml_attr(x_user, "id"); if (var_event) { - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "dialed_user", dialed_user); - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "dialed_domain", domain); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "dialed_user", dialed_user); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "dialed_domain", domain); } if (!dest) { @@ -293,8 +293,8 @@ static switch_call_cause_t kz_endpoint_outgoing_channel(switch_core_session_t *s switch_assert(event); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "dialed_user", dialed_user); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "dialed_domain", domain); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "dialed_user", dialed_user); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "dialed_domain", domain); } if ((x_params = switch_xml_child(x_user, "profile-variables"))) { @@ -302,7 +302,7 @@ static switch_call_cause_t kz_endpoint_outgoing_channel(switch_core_session_t *s const char *pvar = switch_xml_attr_soft(x_param, "name"); const char *val = switch_xml_attr(x_param, "value"); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "adding profile variable to event => %s = %s\n", pvar, val); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, pvar, val); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, pvar, val); } } @@ -311,7 +311,7 @@ static switch_call_cause_t kz_endpoint_outgoing_channel(switch_core_session_t *s const char *pvar = switch_xml_attr_soft(x_param, "name"); const char *val = switch_xml_attr(x_param, "value"); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "adding variable to event => %s = %s\n", pvar, val); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, pvar, val); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, pvar, val); } } @@ -323,7 +323,7 @@ static switch_call_cause_t kz_endpoint_outgoing_channel(switch_core_session_t *s if (!strncasecmp(pvar, "dial-var-", 9)) { switch_event_del_header(event, pvar + 9); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "adding dialog var to event => %s = %s\n", pvar + 9, val); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, pvar + 9, val); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, pvar + 9, val); } } } diff --git a/src/mod/event_handlers/mod_kazoo/kazoo_event_stream.c b/src/mod/event_handlers/mod_kazoo/kazoo_event_stream.c index 3d1f18326b..54014e3a33 100644 --- a/src/mod/event_handlers/mod_kazoo/kazoo_event_stream.c +++ b/src/mod/event_handlers/mod_kazoo/kazoo_event_stream.c @@ -103,10 +103,10 @@ static switch_status_t kazoo_event_dup(switch_event_t **clone, switch_event_t *e if (header->idx) { int i; for (i = 0; i < header->idx; i++) { - switch_event_add_header_string(*clone, SWITCH_STACK_PUSH, header->name, header->array[i]); + switch_event_add_header_string_dup(*clone, SWITCH_STACK_PUSH, header->name, header->array[i]); } } else { - switch_event_add_header_string(*clone, SWITCH_STACK_BOTTOM, header->name, header->value); + switch_event_add_header_string_dup(*clone, SWITCH_STACK_BOTTOM, header->name, header->value); } } @@ -201,8 +201,8 @@ static void event_handler(switch_event_t *event) { ei_x_encode_version(ebuf); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Target-Node", event_binding->stream->node->peer_nodename); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Switch-Nodename", kazoo_globals.ei_cnode.thisnodename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Target-Node", event_binding->stream->node->peer_nodename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Switch-Nodename", kazoo_globals.ei_cnode.thisnodename); if(event_stream->node->legacy) { res = encode_event_old(event, ebuf); diff --git a/src/mod/event_handlers/mod_kazoo/kazoo_fetch_agent.c b/src/mod/event_handlers/mod_kazoo/kazoo_fetch_agent.c index 5023e39344..25dd96c741 100644 --- a/src/mod/event_handlers/mod_kazoo/kazoo_fetch_agent.c +++ b/src/mod/event_handlers/mod_kazoo/kazoo_fetch_agent.c @@ -162,7 +162,7 @@ static switch_xml_t fetch_handler(const char *section, const char *tag_name, con } } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Switch-Nodename", kazoo_globals.ei_cnode.thisnodename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Switch-Nodename", kazoo_globals.ei_cnode.thisnodename); /* prepare the reply collector */ switch_uuid_get(&uuid); @@ -188,16 +188,16 @@ static switch_xml_t fetch_handler(const char *section, const char *tag_name, con } } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Fetch-UUID", reply.uuid_str); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Fetch-Section", section); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Fetch-Tag", tag_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Fetch-Key-Name", key_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Fetch-Key-Value", key_value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Fetch-UUID", reply.uuid_str); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Fetch-Section", section); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Fetch-Tag", tag_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Fetch-Key-Name", key_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Fetch-Key-Value", key_value); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Fetch-Timeout", "%u", profile->fetch_timeout); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Fetch-Timestamp-Micro", "%" SWITCH_UINT64_T_FMT, (uint64_t)now); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Kazoo-Version", VERSION); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Kazoo-Bundle", BUNDLE); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Kazoo-Release", RELEASE); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Kazoo-Version", VERSION); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Kazoo-Bundle", BUNDLE); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Kazoo-Release", RELEASE); kz_event_decode(event); diff --git a/src/mod/event_handlers/mod_kazoo/kazoo_node.c b/src/mod/event_handlers/mod_kazoo/kazoo_node.c index fae09bee2f..c76dcd94e8 100644 --- a/src/mod/event_handlers/mod_kazoo/kazoo_node.c +++ b/src/mod/event_handlers/mod_kazoo/kazoo_node.c @@ -229,13 +229,13 @@ SWITCH_DECLARE(switch_status_t) kazoo_api_execute(const char *cmd, const char *a if (stream->param_event) { if (cmd_used && *cmd_used) { - switch_event_add_header_string(stream->param_event, SWITCH_STACK_BOTTOM, "API-Command", cmd_used); + switch_event_add_header_string_dup(stream->param_event, SWITCH_STACK_BOTTOM, "API-Command", cmd_used); } if (arg_used && *arg_used) { - switch_event_add_header_string(stream->param_event, SWITCH_STACK_BOTTOM, "API-Command-Argument", arg_used); + switch_event_add_header_string_dup(stream->param_event, SWITCH_STACK_BOTTOM, "API-Command-Argument", arg_used); } if (arg_expanded && *arg_expanded) { - switch_event_add_header_string(stream->param_event, SWITCH_STACK_BOTTOM, "API-Command-Argument-Expanded", arg_expanded); + switch_event_add_header_string_dup(stream->param_event, SWITCH_STACK_BOTTOM, "API-Command-Argument-Expanded", arg_expanded); } } @@ -706,7 +706,7 @@ static switch_status_t handle_request_command(ei_node_t *ei_node, erlang_pid *pi } log_sendmsg_request(uuid_str, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event-uuid", cmd_uuid_str); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event-uuid", cmd_uuid_str); switch_core_session_queue_private_event(session, &event, SWITCH_FALSE); switch_core_session_rwunlock(session); @@ -746,9 +746,9 @@ static switch_status_t handle_request_commands(ei_node_t *ei_node, erlang_pid *p } log_sendmsg_request(uuid_str, event); if(n == (propslist_length - 1)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event-uuid", cmd_uuid_str); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event-uuid", cmd_uuid_str); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event-uuid", "null"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event-uuid", "null"); // switch_event_del_header_val(event, "event-uuid-name", NULL); } switch_core_session_queue_private_event(session, &event, SWITCH_FALSE); diff --git a/src/mod/event_handlers/mod_kazoo/kazoo_tweaks.c b/src/mod/event_handlers/mod_kazoo/kazoo_tweaks.c index e647871855..90670d11fe 100644 --- a/src/mod/event_handlers/mod_kazoo/kazoo_tweaks.c +++ b/src/mod/event_handlers/mod_kazoo/kazoo_tweaks.c @@ -67,8 +67,8 @@ static switch_status_t kz_tweaks_signal_bridge_on_hangup(switch_core_session_t * switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "tweak signal bridge on hangup: %s , %s\n", switch_core_session_get_uuid(session), peer_uuid); if (switch_event_create(&my_event, SWITCH_EVENT_CHANNEL_UNBRIDGE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(my_event, SWITCH_STACK_BOTTOM, "Bridge-A-Unique-ID", switch_core_session_get_uuid(session)); - switch_event_add_header_string(my_event, SWITCH_STACK_BOTTOM, "Bridge-B-Unique-ID", peer_uuid); + switch_event_add_header_string_dup(my_event, SWITCH_STACK_BOTTOM, "Bridge-A-Unique-ID", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(my_event, SWITCH_STACK_BOTTOM, "Bridge-B-Unique-ID", peer_uuid); switch_channel_event_set_data(channel, my_event); switch_event_fire(&my_event); } @@ -148,9 +148,9 @@ static void kz_tweaks_handle_bridge_replaces_call_id(switch_event_t *event) if (call_id && (call_session = switch_core_session_locate(call_id)) != NULL) { switch_channel_t *call_channel = switch_core_session_get_channel(call_session); if (switch_event_create(&my_event, SWITCH_EVENT_CHANNEL_BRIDGE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(my_event, SWITCH_STACK_BOTTOM, "Bridge-A-Unique-ID", switch_core_session_get_uuid(call_session)); - switch_event_add_header_string(my_event, SWITCH_STACK_BOTTOM, "Bridge-B-Unique-ID", peer_uuid); - switch_event_add_header_string(my_event, SWITCH_STACK_BOTTOM, "Bridge-Event-Processed", "true"); + switch_event_add_header_string_dup(my_event, SWITCH_STACK_BOTTOM, "Bridge-A-Unique-ID", switch_core_session_get_uuid(call_session)); + switch_event_add_header_string_dup(my_event, SWITCH_STACK_BOTTOM, "Bridge-B-Unique-ID", peer_uuid); + switch_event_add_header_string_dup(my_event, SWITCH_STACK_BOTTOM, "Bridge-Event-Processed", "true"); switch_channel_event_set_data(call_channel, my_event); switch_event_fire(&my_event); } @@ -317,7 +317,7 @@ static switch_status_t kz_tweaks_handle_loopback(switch_core_session_t *session) } else if(!strncmp(header->name, "sip_loopback_", 13)) { kz_switch_event_add_variable_name_printf(to_add, SWITCH_STACK_BOTTOM, header->value, "sip_%s", header->name+13); } else if(!strncmp(header->name, "ecallmgr_", 9)) { - switch_event_add_header_string(to_remove, SWITCH_STACK_BOTTOM, header->name, header->value); + switch_event_add_header_string_dup(to_remove, SWITCH_STACK_BOTTOM, header->name, header->value); } } if(n) { diff --git a/src/mod/event_handlers/mod_kazoo/kazoo_utils.c b/src/mod/event_handlers/mod_kazoo/kazoo_utils.c index 951707d179..9ae580505c 100644 --- a/src/mod/event_handlers/mod_kazoo/kazoo_utils.c +++ b/src/mod/event_handlers/mod_kazoo/kazoo_utils.c @@ -600,7 +600,7 @@ void kz_expand_headers(switch_event_t *resolver, switch_event_t *event) { for(header = event->headers; header; header = header->next) { char *expanded = kz_event_expand_headers(resolver, header->value); if (expanded != header->value) { - switch_event_add_header_string(clone, SWITCH_STACK_BOTTOM, header->name, expanded); + switch_event_add_header_string_dup(clone, SWITCH_STACK_BOTTOM, header->name, expanded); switch_safe_free(expanded); } } diff --git a/src/mod/event_handlers/mod_rayo/mod_rayo.c b/src/mod/event_handlers/mod_rayo/mod_rayo.c index 6ed46489a7..f4f393452a 100644 --- a/src/mod/event_handlers/mod_rayo/mod_rayo.c +++ b/src/mod/event_handlers/mod_rayo/mod_rayo.c @@ -1856,9 +1856,9 @@ void rayo_call_send(struct rayo_actor *call, struct rayo_message *msg) if (!zstr(body)) { switch_event_t *event; if (switch_event_create(&event, SWITCH_EVENT_SEND_MESSAGE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "content-type", "text/plain"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "uuid", rayo_call_get_uuid(RAYO_CALL(call))); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "subject", iks_find_cdata(stanza, "subject")); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "content-type", "text/plain"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "uuid", rayo_call_get_uuid(RAYO_CALL(call))); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "subject", iks_find_cdata(stanza, "subject")); switch_event_add_body(event, "%s", body); switch_event_fire(&event); } @@ -2242,11 +2242,11 @@ static iks *exec_conference_app(switch_core_session_t *session, const char *comm /* send execute conference event to session */ if (switch_event_create(&execute_event, SWITCH_EVENT_COMMAND) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(execute_event, SWITCH_STACK_BOTTOM, "call-command", "execute"); - switch_event_add_header_string(execute_event, SWITCH_STACK_BOTTOM, "execute-app-name", "conference"); - switch_event_add_header_string(execute_event, SWITCH_STACK_BOTTOM, "execute-app-arg", command); - //switch_event_add_header_string(execute_event, SWITCH_STACK_BOTTOM, "event_uuid", uuid); - switch_event_add_header_string(execute_event, SWITCH_STACK_BOTTOM, "event-lock", "true"); + switch_event_add_header_string_dup(execute_event, SWITCH_STACK_BOTTOM, "call-command", "execute"); + switch_event_add_header_string_dup(execute_event, SWITCH_STACK_BOTTOM, "execute-app-name", "conference"); + switch_event_add_header_string_dup(execute_event, SWITCH_STACK_BOTTOM, "execute-app-arg", command); + //switch_event_add_header_string_dup(execute_event, SWITCH_STACK_BOTTOM, "event_uuid", uuid); + switch_event_add_header_string_dup(execute_event, SWITCH_STACK_BOTTOM, "event-lock", "true"); if (!switch_channel_test_flag(channel, CF_PROXY_MODE)) { switch_channel_set_flag(channel, CF_BLOCK_BROADCAST_UNTIL_MEDIA); } @@ -2703,9 +2703,9 @@ static void *SWITCH_THREAD_FUNC rayo_dial_thread(switch_thread_t *thread, void * } /* set originate channel variables */ - switch_event_add_header_string(originate_vars, SWITCH_STACK_BOTTOM, "origination_uuid", rayo_call_get_uuid(call)); - switch_event_add_header_string(originate_vars, SWITCH_STACK_BOTTOM, "rayo_dcp_jid", dcp_jid); - switch_event_add_header_string(originate_vars, SWITCH_STACK_BOTTOM, "rayo_call_jid", RAYO_JID(call)); + switch_event_add_header_string_dup(originate_vars, SWITCH_STACK_BOTTOM, "origination_uuid", rayo_call_get_uuid(call)); + switch_event_add_header_string_dup(originate_vars, SWITCH_STACK_BOTTOM, "rayo_dcp_jid", dcp_jid); + switch_event_add_header_string_dup(originate_vars, SWITCH_STACK_BOTTOM, "rayo_call_jid", RAYO_JID(call)); if (!zstr(dial_from)) { char *from_uri = NULL; @@ -2717,24 +2717,24 @@ static void *SWITCH_THREAD_FUNC rayo_dial_thread(switch_thread_t *thread, void * } else if (scheme == RAYO_URI_SCHEME_SIP) { /* SIP URI */ if (!zstr(from_uri)) { - switch_event_add_header_string(originate_vars, SWITCH_STACK_BOTTOM, "sip_from_uri", from_uri); + switch_event_add_header_string_dup(originate_vars, SWITCH_STACK_BOTTOM, "sip_from_uri", from_uri); switch_log_printf(SWITCH_CHANNEL_UUID_LOG(rayo_call_get_uuid(call)), SWITCH_LOG_DEBUG, "dial: sip_from_uri=%s\n", from_uri); } if (!zstr(from_display)) { - switch_event_add_header_string(originate_vars, SWITCH_STACK_BOTTOM, "sip_from_display", from_display); + switch_event_add_header_string_dup(originate_vars, SWITCH_STACK_BOTTOM, "sip_from_display", from_display); switch_log_printf(SWITCH_CHANNEL_UUID_LOG(rayo_call_get_uuid(call)), SWITCH_LOG_DEBUG, "dial: sip_from_display=%s\n", from_display); } } if (!zstr(from_uri)) { - switch_event_add_header_string(originate_vars, SWITCH_STACK_BOTTOM, "origination_caller_id_number", from_uri); + switch_event_add_header_string_dup(originate_vars, SWITCH_STACK_BOTTOM, "origination_caller_id_number", from_uri); switch_log_printf(SWITCH_CHANNEL_UUID_LOG(rayo_call_get_uuid(call)), SWITCH_LOG_DEBUG, "dial: origination_caller_id_number=%s\n", from_uri); } if (!zstr(from_display)) { - switch_event_add_header_string(originate_vars, SWITCH_STACK_BOTTOM, "origination_caller_id_name", from_display); + switch_event_add_header_string_dup(originate_vars, SWITCH_STACK_BOTTOM, "origination_caller_id_name", from_display); switch_log_printf(SWITCH_CHANNEL_UUID_LOG(rayo_call_get_uuid(call)), SWITCH_LOG_DEBUG, "dial: origination_caller_id_name=%s\n", from_display); } else if (scheme == RAYO_URI_SCHEME_TEL && !zstr(from_uri)) { /* set caller ID name to same as number if telephone number and a name wasn't specified */ - switch_event_add_header_string(originate_vars, SWITCH_STACK_BOTTOM, "origination_caller_id_name", from_uri); + switch_event_add_header_string_dup(originate_vars, SWITCH_STACK_BOTTOM, "origination_caller_id_name", from_uri); switch_log_printf(SWITCH_CHANNEL_UUID_LOG(rayo_call_get_uuid(call)), SWITCH_LOG_DEBUG, "dial: origination_caller_id_name=%s\n", from_uri); } } @@ -2752,7 +2752,7 @@ static void *SWITCH_THREAD_FUNC rayo_dial_thread(switch_thread_t *thread, void * if (!zstr(name) && !zstr(value)) { char *header_name = switch_core_sprintf(dtdata->pool, "%s%s", RAYO_SIP_REQUEST_HEADER, name); switch_log_printf(SWITCH_CHANNEL_UUID_LOG(rayo_call_get_uuid(call)), SWITCH_LOG_DEBUG, "dial: Adding SIP header: %s: %s\n", name, value); - switch_event_add_header_string(originate_vars, SWITCH_STACK_BOTTOM, header_name, value); + switch_event_add_header_string_dup(originate_vars, SWITCH_STACK_BOTTOM, header_name, value); } } } diff --git a/src/mod/event_handlers/mod_rayo/rayo_cpa_component.c b/src/mod/event_handlers/mod_rayo/rayo_cpa_component.c index 15dcd74aa7..3532a69b3d 100644 --- a/src/mod/event_handlers/mod_rayo/rayo_cpa_component.c +++ b/src/mod/event_handlers/mod_rayo/rayo_cpa_component.c @@ -137,7 +137,7 @@ static void subscriber_execute(const char *uuid, const char *signal_type, subscr const void *jid; void *dont_care; switch_core_hash_this(hi, &jid, NULL, &dont_care); - switch_event_add_header_string(subscriber_list, SWITCH_STACK_BOTTOM, "execute", (const char *)jid); + switch_event_add_header_string_dup(subscriber_list, SWITCH_STACK_BOTTOM, "execute", (const char *)jid); } } else { switch_log_printf(SWITCH_CHANNEL_UUID_LOG(uuid), SWITCH_LOG_DEBUG, "No subscribers for %s\n", signal_type); diff --git a/src/mod/event_handlers/mod_rayo/rayo_cpa_detector.c b/src/mod/event_handlers/mod_rayo/rayo_cpa_detector.c index 6a85db561b..350b8d8d12 100644 --- a/src/mod/event_handlers/mod_rayo/rayo_cpa_detector.c +++ b/src/mod/event_handlers/mod_rayo/rayo_cpa_detector.c @@ -174,20 +174,20 @@ static void rayo_cpa_detector_event(switch_event_t *event) } switch_log_printf(SWITCH_CHANNEL_UUID_LOG(uuid), SWITCH_LOG_DEBUG, "Got Rayo CPA event %s\n", signal_type); if (switch_event_create_subclass(&cpa_event, SWITCH_EVENT_CUSTOM, "rayo::cpa") == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(cpa_event, SWITCH_STACK_BOTTOM, "Unique-ID", uuid); - switch_event_add_header_string(cpa_event, SWITCH_STACK_BOTTOM, "detector-name", detector->name); - switch_event_add_header_string(cpa_event, SWITCH_STACK_BOTTOM, "detector-uuid", detector->uuid); + switch_event_add_header_string_dup(cpa_event, SWITCH_STACK_BOTTOM, "Unique-ID", uuid); + switch_event_add_header_string_dup(cpa_event, SWITCH_STACK_BOTTOM, "detector-name", detector->name); + switch_event_add_header_string_dup(cpa_event, SWITCH_STACK_BOTTOM, "detector-uuid", detector->uuid); switch_event_add_header(cpa_event, SWITCH_STACK_BOTTOM, "signal-type", "%s%s:%s", RAYO_CPA_BASE, signal_type, RAYO_VERSION); if (!zstr(detector->signal_value_header)) { const char *value = switch_event_get_header(event, detector->signal_value_header); if (!zstr(value)) { - switch_event_add_header_string(cpa_event, SWITCH_STACK_BOTTOM, "value", value); + switch_event_add_header_string_dup(cpa_event, SWITCH_STACK_BOTTOM, "value", value); } } if (!zstr(detector->signal_duration_header)) { const char *duration = switch_event_get_header(event, detector->signal_duration_header); if (!zstr(duration)) { - switch_event_add_header_string(cpa_event, SWITCH_STACK_BOTTOM, "duration", duration); + switch_event_add_header_string_dup(cpa_event, SWITCH_STACK_BOTTOM, "duration", duration); } } switch_event_fire(&cpa_event); diff --git a/src/mod/event_handlers/mod_rayo/rayo_fax_components.c b/src/mod/event_handlers/mod_rayo/rayo_fax_components.c index b605702005..b9cfb715b7 100644 --- a/src/mod/event_handlers/mod_rayo/rayo_fax_components.c +++ b/src/mod/event_handlers/mod_rayo/rayo_fax_components.c @@ -204,9 +204,9 @@ static iks *start_sendfax_component(struct rayo_actor *call, struct rayo_message /* execute txfax APP */ if (switch_event_create(&execute_event, SWITCH_EVENT_COMMAND) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(execute_event, SWITCH_STACK_BOTTOM, "call-command", "execute"); - switch_event_add_header_string(execute_event, SWITCH_STACK_BOTTOM, "execute-app-name", "txfax"); - switch_event_add_header_string(execute_event, SWITCH_STACK_BOTTOM, "execute-app-arg", fax_document); + switch_event_add_header_string_dup(execute_event, SWITCH_STACK_BOTTOM, "call-command", "execute"); + switch_event_add_header_string_dup(execute_event, SWITCH_STACK_BOTTOM, "execute-app-name", "txfax"); + switch_event_add_header_string_dup(execute_event, SWITCH_STACK_BOTTOM, "execute-app-arg", fax_document); if (!switch_channel_test_flag(channel, CF_PROXY_MODE)) { switch_channel_set_flag(channel, CF_BLOCK_BROADCAST_UNTIL_MEDIA); } @@ -307,9 +307,9 @@ static iks *start_receivefax_component(struct rayo_actor *call, struct rayo_mess /* execute rxfax APP */ if (switch_event_create(&execute_event, SWITCH_EVENT_COMMAND) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(execute_event, SWITCH_STACK_BOTTOM, "call-command", "execute"); - switch_event_add_header_string(execute_event, SWITCH_STACK_BOTTOM, "execute-app-name", "rxfax"); - switch_event_add_header_string(execute_event, SWITCH_STACK_BOTTOM, "execute-app-arg", receivefax_component->local_filename); + switch_event_add_header_string_dup(execute_event, SWITCH_STACK_BOTTOM, "call-command", "execute"); + switch_event_add_header_string_dup(execute_event, SWITCH_STACK_BOTTOM, "execute-app-name", "rxfax"); + switch_event_add_header_string_dup(execute_event, SWITCH_STACK_BOTTOM, "execute-app-arg", receivefax_component->local_filename); if (!switch_channel_test_flag(channel, CF_PROXY_MODE)) { switch_channel_set_flag(channel, CF_BLOCK_BROADCAST_UNTIL_MEDIA); } diff --git a/src/mod/event_handlers/mod_rayo/rayo_input_component.c b/src/mod/event_handlers/mod_rayo/rayo_input_component.c index 84a8e745cc..25848dc19f 100644 --- a/src/mod/event_handlers/mod_rayo/rayo_input_component.c +++ b/src/mod/event_handlers/mod_rayo/rayo_input_component.c @@ -290,7 +290,7 @@ static switch_status_t input_handler_on_dtmf(switch_core_session_t *session, con if (!components_to_remove) { switch_event_create_subclass(&components_to_remove, SWITCH_EVENT_CLONE, NULL); } - switch_event_add_header_string(components_to_remove, SWITCH_STACK_BOTTOM, "done", RAYO_JID(component)); + switch_event_add_header_string_dup(components_to_remove, SWITCH_STACK_BOTTOM, "done", RAYO_JID(component)); } } @@ -338,7 +338,7 @@ static switch_bool_t input_handler_bug_callback(switch_media_bug_t *bug, void *u if (!components_to_remove) { switch_event_create_subclass(&components_to_remove, SWITCH_EVENT_CLONE, NULL); } - switch_event_add_header_string(components_to_remove, SWITCH_STACK_BOTTOM, "done", RAYO_JID(component)); + switch_event_add_header_string_dup(components_to_remove, SWITCH_STACK_BOTTOM, "done", RAYO_JID(component)); } } diff --git a/src/mod/event_handlers/mod_smpp/mod_smpp.c b/src/mod/event_handlers/mod_smpp/mod_smpp.c index e04bea31a3..ff850fbb86 100644 --- a/src/mod/event_handlers/mod_smpp/mod_smpp.c +++ b/src/mod/event_handlers/mod_smpp/mod_smpp.c @@ -91,9 +91,9 @@ SWITCH_STANDARD_APP(mod_smpp_app_send_function) /* Cycle through all of the channel headers, and ones with 'smpp_' prefix copy over without the prefix */ for ( chan_var = switch_channel_variable_first(channel); chan_var; chan_var = chan_var->next) { if ( !strncmp(chan_var->name, "smpp_", 5) ) { - switch_event_add_header_string(message, SWITCH_STACK_BOTTOM, chan_var->name + 5, chan_var->value); + switch_event_add_header_string_dup(message, SWITCH_STACK_BOTTOM, chan_var->name + 5, chan_var->value); } else { - switch_event_add_header_string(message, SWITCH_STACK_BOTTOM, chan_var->name, chan_var->value); + switch_event_add_header_string_dup(message, SWITCH_STACK_BOTTOM, chan_var->name, chan_var->value); } } @@ -138,8 +138,8 @@ SWITCH_STANDARD_API(mod_smpp_send_api) switch_goto_status(SWITCH_STATUS_GENERR, done); } - switch_event_add_header_string(message, SWITCH_STACK_BOTTOM, "to_user", argv[1]); - switch_event_add_header_string(message, SWITCH_STACK_BOTTOM, "from_user", argv[2]); + switch_event_add_header_string_dup(message, SWITCH_STACK_BOTTOM, "to_user", argv[1]); + switch_event_add_header_string_dup(message, SWITCH_STACK_BOTTOM, "from_user", argv[2]); switch_event_set_body(message, argv[3]); if (mod_smpp_gateway_send_message(gateway, message) != SWITCH_STATUS_SUCCESS) { diff --git a/src/mod/event_handlers/mod_smpp/mod_smpp_message.c b/src/mod/event_handlers/mod_smpp/mod_smpp_message.c index a7407102bc..57c57b523d 100644 --- a/src/mod/event_handlers/mod_smpp/mod_smpp_message.c +++ b/src/mod/event_handlers/mod_smpp/mod_smpp_message.c @@ -127,7 +127,7 @@ switch_status_t mod_smpp_message_decode(mod_smpp_gateway_t *gateway, deliver_sm_ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to create new event\n"); } - switch_event_add_header_string(evt, SWITCH_STACK_BOTTOM, "endpoint", "mod_smpp"); + switch_event_add_header_string_dup(evt, SWITCH_STACK_BOTTOM, "endpoint", "mod_smpp"); str = switch_mprintf("%d", res->sequence_number); switch_event_add_header_string(evt, SWITCH_STACK_BOTTOM | SWITCH_STACK_NODUP, "sequence_number", str); @@ -138,8 +138,8 @@ switch_status_t mod_smpp_message_decode(mod_smpp_gateway_t *gateway, deliver_sm_ str = switch_mprintf("%d", res->command_id); switch_event_add_header_string(evt, SWITCH_STACK_BOTTOM | SWITCH_STACK_NODUP, "command_id", str); - switch_event_add_header_string(evt, SWITCH_STACK_BOTTOM, "smpp_gateway", gateway->name); - switch_event_add_header_string(evt, SWITCH_STACK_BOTTOM, "proto", "smpp"); + switch_event_add_header_string_dup(evt, SWITCH_STACK_BOTTOM, "smpp_gateway", gateway->name); + switch_event_add_header_string_dup(evt, SWITCH_STACK_BOTTOM, "proto", "smpp"); str = switch_mprintf("%d", res->source_addr_ton); switch_event_add_header_string(evt, SWITCH_STACK_BOTTOM | SWITCH_STACK_NODUP, "source_addr_ton", str); @@ -147,7 +147,7 @@ switch_status_t mod_smpp_message_decode(mod_smpp_gateway_t *gateway, deliver_sm_ str = switch_mprintf("%d", res->source_addr_npi); switch_event_add_header_string(evt, SWITCH_STACK_BOTTOM | SWITCH_STACK_NODUP, "source_addr_npi", str); - switch_event_add_header_string(evt, SWITCH_STACK_BOTTOM, "from_user", (const char *) res->source_addr); + switch_event_add_header_string_dup(evt, SWITCH_STACK_BOTTOM, "from_user", (const char *) res->source_addr); str = switch_mprintf("%d", res->dest_addr_ton); switch_event_add_header_string(evt, SWITCH_STACK_BOTTOM | SWITCH_STACK_NODUP, "dest_addr_ton", str); @@ -155,13 +155,13 @@ switch_status_t mod_smpp_message_decode(mod_smpp_gateway_t *gateway, deliver_sm_ str = switch_mprintf("%d", res->dest_addr_npi); switch_event_add_header_string(evt, SWITCH_STACK_BOTTOM | SWITCH_STACK_NODUP, "dest_addr_npi", str); - switch_event_add_header_string(evt, SWITCH_STACK_BOTTOM, "to_user", (const char *) res->destination_addr); + switch_event_add_header_string_dup(evt, SWITCH_STACK_BOTTOM, "to_user", (const char *) res->destination_addr); str = switch_mprintf("%d", res->data_coding); switch_event_add_header_string(evt, SWITCH_STACK_BOTTOM | SWITCH_STACK_NODUP, "data_coding", str); str = NULL; - switch_event_add_header_string(evt, SWITCH_STACK_BOTTOM, "profile", gateway->profile); + switch_event_add_header_string_dup(evt, SWITCH_STACK_BOTTOM, "profile", gateway->profile); switch_event_add_body(evt, "%s", (const char *) res->short_message); diff --git a/src/mod/formats/mod_imagick/mod_imagick.c b/src/mod/formats/mod_imagick/mod_imagick.c index ce789637cf..c2cb72854f 100644 --- a/src/mod/formats/mod_imagick/mod_imagick.c +++ b/src/mod/formats/mod_imagick/mod_imagick.c @@ -119,11 +119,11 @@ static void *SWITCH_THREAD_FUNC open_pdf_thread_run(switch_thread_t *thread, voi switch_event_t *event = NULL; if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, "imagick::info") == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "loaded"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", context->path); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "loaded"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", context->path); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "pagecount", "%d", context->pagecount); if (context->lazy_cookie) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "cookie", context->lazy_cookie); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "cookie", context->lazy_cookie); } switch_event_fire(&event); } diff --git a/src/mod/languages/mod_v8/mod_v8.cpp b/src/mod/languages/mod_v8/mod_v8.cpp index b297fa39e1..a711195dc5 100644 --- a/src/mod/languages/mod_v8/mod_v8.cpp +++ b/src/mod/languages/mod_v8/mod_v8.cpp @@ -1146,7 +1146,7 @@ SWITCH_STANDARD_JSON_API(json_function) json_text = cJSON_PrintUnformatted(data); switch_event_create(&stream.param_event, SWITCH_EVENT_REQUEST_PARAMS); - switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "JSON", json_text); + switch_event_add_header_string_dup(stream.param_event, SWITCH_STACK_BOTTOM, "JSON", json_text); switch_safe_free(json_text); v8_parse_and_execute(session, (char *) path->valuestring, &stream, NULL, NULL); diff --git a/src/mod/languages/mod_v8/src/fsevent.cpp b/src/mod/languages/mod_v8/src/fsevent.cpp index 75bb7daba7..51d73e31d6 100644 --- a/src/mod/languages/mod_v8/src/fsevent.cpp +++ b/src/mod/languages/mod_v8/src/fsevent.cpp @@ -182,7 +182,7 @@ JS_EVENT_FUNCTION_IMPL(AddHeader) stack_kind = SWITCH_STACK_PUSH; } - switch_event_add_header_string(_event, stack_kind, hname, hval); + switch_event_add_header_string_dup(_event, stack_kind, hname, hval); info.GetReturnValue().Set(true); return; } diff --git a/src/mod/languages/mod_v8/src/fseventhandler.cpp b/src/mod/languages/mod_v8/src/fseventhandler.cpp index 145984c83f..a81903a8e1 100644 --- a/src/mod/languages/mod_v8/src/fseventhandler.cpp +++ b/src/mod/languages/mod_v8/src/fseventhandler.cpp @@ -314,7 +314,7 @@ JS_EVENTHANDLER_FUNCTION_IMPL(AddFilter) switch_event_create_plain(&_filters, SWITCH_EVENT_CLONE); } - switch_event_add_header_string(_filters, SWITCH_STACK_BOTTOM, headerName, headerVal); + switch_event_add_header_string_dup(_filters, SWITCH_STACK_BOTTOM, headerName, headerVal); info.GetReturnValue().Set(true); @@ -470,10 +470,10 @@ static void *SWITCH_THREAD_FUNC api_exec(switch_thread_t *thread, void *obj) } if (switch_event_create(&event, SWITCH_EVENT_BACKGROUND_JOB) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Job-UUID", acs->uuid_str); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Job-Command", acs->cmd); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Job-UUID", acs->uuid_str); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Job-Command", acs->cmd); if (acs->arg) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Job-Command-Arg", acs->arg); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Job-Command-Arg", acs->arg); } switch_event_add_body(event, "%s", reply); switch_event_fire(&event); diff --git a/src/mod/languages/mod_v8/src/fsrequest.cpp b/src/mod/languages/mod_v8/src/fsrequest.cpp index c5bd344c8d..cd40700762 100644 --- a/src/mod/languages/mod_v8/src/fsrequest.cpp +++ b/src/mod/languages/mod_v8/src/fsrequest.cpp @@ -81,7 +81,7 @@ JS_REQUEST_FUNCTION_IMPL(AddHeader) String::Utf8Value str2(info[1]); const char *hname = js_safe_str(*str1); const char *hval = js_safe_str(*str2); - switch_event_add_header_string(this->_stream->param_event, SWITCH_STACK_BOTTOM, hname, hval); + switch_event_add_header_string_dup(this->_stream->param_event, SWITCH_STACK_BOTTOM, hname, hval); info.GetReturnValue().Set(true); return; } diff --git a/src/mod/loggers/mod_graylog2/mod_graylog2.c b/src/mod/loggers/mod_graylog2/mod_graylog2.c index 59fe1202a8..36e0a5331a 100644 --- a/src/mod/loggers/mod_graylog2/mod_graylog2.c +++ b/src/mod/loggers/mod_graylog2/mod_graylog2.c @@ -299,7 +299,7 @@ static switch_status_t do_config(void) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Ignoring empty channel variable for session field \"%s\"\n", name); continue; } - switch_event_add_header_string(globals.session_fields, SWITCH_STACK_BOTTOM, + switch_event_add_header_string_dup(globals.session_fields, SWITCH_STACK_BOTTOM, switch_core_strdup(globals.pool, name), switch_core_strdup(globals.pool, variable)); } } diff --git a/src/mod/xml_int/mod_xml_curl/mod_xml_curl.c b/src/mod/xml_int/mod_xml_curl/mod_xml_curl.c index 5a2e201a72..8384ea792e 100644 --- a/src/mod/xml_int/mod_xml_curl/mod_xml_curl.c +++ b/src/mod/xml_int/mod_xml_curl/mod_xml_curl.c @@ -187,11 +187,11 @@ static switch_xml_t xml_url_fetch(const char *section, const char *tag_name, con switch_assert(params); } - switch_event_add_header_string(params, SWITCH_STACK_TOP, "hostname", hostname); - switch_event_add_header_string(params, SWITCH_STACK_TOP, "section", switch_str_nil(section)); - switch_event_add_header_string(params, SWITCH_STACK_TOP, "tag_name", switch_str_nil(tag_name)); - switch_event_add_header_string(params, SWITCH_STACK_TOP, "key_name", switch_str_nil(key_name)); - switch_event_add_header_string(params, SWITCH_STACK_TOP, "key_value", switch_str_nil(key_value)); + switch_event_add_header_string_dup(params, SWITCH_STACK_TOP, "hostname", hostname); + switch_event_add_header_string_dup(params, SWITCH_STACK_TOP, "section", switch_str_nil(section)); + switch_event_add_header_string_dup(params, SWITCH_STACK_TOP, "tag_name", switch_str_nil(tag_name)); + switch_event_add_header_string_dup(params, SWITCH_STACK_TOP, "key_name", switch_str_nil(key_name)); + switch_event_add_header_string_dup(params, SWITCH_STACK_TOP, "key_value", switch_str_nil(key_value)); dynamic_url = switch_event_expand_headers(params, binding->url); switch_assert(dynamic_url); } else { diff --git a/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c b/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c index 43e25b6f9e..e0493c8df5 100644 --- a/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c +++ b/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c @@ -211,7 +211,7 @@ static switch_status_t http_stream_write(switch_stream_handle_t *handle, const c ret = HTTPWrite(r, val, (uint32_t) strlen(val)); } /* flag to prevent running this more than once per http reply */ - switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "Content-Type", strstr(val,":")+2); + switch_event_add_header_string_dup(evnt, SWITCH_STACK_BOTTOM, "Content-Type", strstr(val,":")+2); ct = switch_event_get_header(evnt, "Content-Type"); } @@ -269,7 +269,7 @@ static abyss_bool user_attributes(const char *user, const char *domain_name, switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(params); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "number_alias", "check"); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "number_alias", "check"); if (switch_xml_locate_user_merged("id", user, domain_name, NULL, &x_user, params) != SWITCH_STATUS_SUCCESS) { @@ -883,25 +883,25 @@ abyss_bool handler_hook(TSession * r) evnt = stream.param_event; if (html) { - switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "Content-Type", "text/html"); + switch_event_add_header_string_dup(evnt, SWITCH_STACK_BOTTOM, "Content-Type", "text/html"); } else if (text) { - switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "Content-Type", "text/plain"); + switch_event_add_header_string_dup(evnt, SWITCH_STACK_BOTTOM, "Content-Type", "text/plain"); } else if (xml) { - switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "Content-Type", "text/xml"); + switch_event_add_header_string_dup(evnt, SWITCH_STACK_BOTTOM, "Content-Type", "text/xml"); } if (api) { - switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-API", "api"); + switch_event_add_header_string_dup(evnt, SWITCH_STACK_BOTTOM, "HTTP-API", "api"); } - if (fs_user) switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "FreeSWITCH-User", fs_user); - if (fs_domain) switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "FreeSWITCH-Domain", fs_domain); - if (path_info) switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-Path-Info", path_info); - - if (info->host) switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-HOST", info->host); - if (info->from) switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-FROM", info->from); - if (info->useragent) switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-USER-AGENT", info->useragent); - if (info->referer) switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-REFERER", info->referer); - if (info->requestline) switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-REQUESTLINE", info->requestline); - if (info->user) switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-USER", info->user); + if (fs_user) switch_event_add_header_string_dup(evnt, SWITCH_STACK_BOTTOM, "FreeSWITCH-User", fs_user); + if (fs_domain) switch_event_add_header_string_dup(evnt, SWITCH_STACK_BOTTOM, "FreeSWITCH-Domain", fs_domain); + if (path_info) switch_event_add_header_string_dup(evnt, SWITCH_STACK_BOTTOM, "HTTP-Path-Info", path_info); + + if (info->host) switch_event_add_header_string_dup(evnt, SWITCH_STACK_BOTTOM, "HTTP-HOST", info->host); + if (info->from) switch_event_add_header_string_dup(evnt, SWITCH_STACK_BOTTOM, "HTTP-FROM", info->from); + if (info->useragent) switch_event_add_header_string_dup(evnt, SWITCH_STACK_BOTTOM, "HTTP-USER-AGENT", info->useragent); + if (info->referer) switch_event_add_header_string_dup(evnt, SWITCH_STACK_BOTTOM, "HTTP-REFERER", info->referer); + if (info->requestline) switch_event_add_header_string_dup(evnt, SWITCH_STACK_BOTTOM, "HTTP-REQUESTLINE", info->requestline); + if (info->user) switch_event_add_header_string_dup(evnt, SWITCH_STACK_BOTTOM, "HTTP-USER", info->user); if (info->port) switch_event_add_header(evnt, SWITCH_STACK_BOTTOM, "HTTP-PORT", "%u", info->port); { @@ -956,7 +956,7 @@ abyss_bool handler_hook(TSession * r) /* parse query and add kv-pairs as event headers */ /* a kv pair starts with '&', '+' or \0 mark the end */ if (query) { - switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-QUERY", query); + switch_event_add_header_string_dup(evnt, SWITCH_STACK_BOTTOM, "HTTP-QUERY", query); qd = strdup(query); } else { qd = strdup(uri); @@ -976,7 +976,7 @@ abyss_bool handler_hook(TSession * r) /* "?" is absent in url so parse uri */ *((char *)uri + (next - q - 1)) = '\0'; query = next; - switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-QUERY", next); + switch_event_add_header_string_dup(evnt, SWITCH_STACK_BOTTOM, "HTTP-QUERY", next); /* and strip uri */ /* the start of first kv pair marks the end of uri */ /* to prevent kv-pairs confusing fs api commands */ @@ -996,7 +996,7 @@ abyss_bool handler_hook(TSession * r) name = q; if ((val = strchr(name, '='))) { *val++ = '\0'; - switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, name, val); + switch_event_add_header_string_dup(evnt, SWITCH_STACK_BOTTOM, name, val); } q = next; } while (q != NULL); @@ -1005,7 +1005,7 @@ abyss_bool handler_hook(TSession * r) } } - switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-URI", uri); + switch_event_add_header_string_dup(evnt, SWITCH_STACK_BOTTOM, "HTTP-URI", uri); /* We made it this far, always OK */ if (!HTTPWrite(r, "HTTP/1.1 200 OK\r\n", (uint32_t) strlen("HTTP/1.1 200 OK\r\n"))) { @@ -1273,7 +1273,7 @@ void stop_all_websockets() if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, "websocket::stophook") != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_LOG,SWITCH_LOG_ERROR, "Failed to create event!\n"); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "stop", "now"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "stop", "now"); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "stopping all websockets ...\n"); if (switch_event_fire(&event) != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_LOG,SWITCH_LOG_ERROR, "Failed to fire the event!\n"); diff --git a/src/switch_caller.c b/src/switch_caller.c index 37a3683039..078a24bbbd 100644 --- a/src/switch_caller.c +++ b/src/switch_caller.c @@ -325,88 +325,88 @@ SWITCH_DECLARE(void) switch_caller_profile_event_set_data(switch_caller_profile_ switch_channel_timetable_t *times = NULL; switch_snprintf(header_name, sizeof(header_name), "%s-Direction", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->direction == SWITCH_CALL_DIRECTION_INBOUND ? + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->direction == SWITCH_CALL_DIRECTION_INBOUND ? "inbound" : "outbound"); switch_snprintf(header_name, sizeof(header_name), "%s-Logical-Direction", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->logical_direction == SWITCH_CALL_DIRECTION_INBOUND ? + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->logical_direction == SWITCH_CALL_DIRECTION_INBOUND ? "inbound" : "outbound"); if (!zstr(caller_profile->username)) { switch_snprintf(header_name, sizeof(header_name), "%s-Username", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->username); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->username); } if (!zstr(caller_profile->dialplan)) { switch_snprintf(header_name, sizeof(header_name), "%s-Dialplan", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->dialplan); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->dialplan); } if (!zstr(caller_profile->caller_id_name)) { switch_snprintf(header_name, sizeof(header_name), "%s-Caller-ID-Name", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->caller_id_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->caller_id_name); } if (!zstr(caller_profile->caller_id_number)) { switch_snprintf(header_name, sizeof(header_name), "%s-Caller-ID-Number", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->caller_id_number); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->caller_id_number); } if (!zstr(caller_profile->caller_id_name)) { switch_snprintf(header_name, sizeof(header_name), "%s-Orig-Caller-ID-Name", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->orig_caller_id_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->orig_caller_id_name); } if (!zstr(caller_profile->caller_id_number)) { switch_snprintf(header_name, sizeof(header_name), "%s-Orig-Caller-ID-Number", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->orig_caller_id_number); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->orig_caller_id_number); } if (!zstr(caller_profile->callee_id_name)) { switch_snprintf(header_name, sizeof(header_name), "%s-Callee-ID-Name", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->callee_id_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->callee_id_name); } if (!zstr(caller_profile->callee_id_number)) { switch_snprintf(header_name, sizeof(header_name), "%s-Callee-ID-Number", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->callee_id_number); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->callee_id_number); } if (!zstr(caller_profile->network_addr)) { switch_snprintf(header_name, sizeof(header_name), "%s-Network-Addr", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->network_addr); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->network_addr); } if (!zstr(caller_profile->ani)) { switch_snprintf(header_name, sizeof(header_name), "%s-ANI", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->ani); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->ani); } if (!zstr(caller_profile->aniii)) { switch_snprintf(header_name, sizeof(header_name), "%s-ANI-II", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->aniii); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->aniii); } if (!zstr(caller_profile->destination_number)) { switch_snprintf(header_name, sizeof(header_name), "%s-Destination-Number", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->destination_number); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->destination_number); } if (!zstr(caller_profile->uuid)) { switch_snprintf(header_name, sizeof(header_name), "%s-Unique-ID", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->uuid); } if (!zstr(caller_profile->source)) { switch_snprintf(header_name, sizeof(header_name), "%s-Source", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->source); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->source); } if (!zstr(caller_profile->transfer_source)) { switch_snprintf(header_name, sizeof(header_name), "%s-Transfer-Source", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->transfer_source); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->transfer_source); } if (!zstr(caller_profile->context)) { switch_snprintf(header_name, sizeof(header_name), "%s-Context", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->context); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->context); } if (!zstr(caller_profile->rdnis)) { switch_snprintf(header_name, sizeof(header_name), "%s-RDNIS", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->rdnis); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->rdnis); } if (!zstr(caller_profile->chan_name)) { switch_snprintf(header_name, sizeof(header_name), "%s-Channel-Name", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->chan_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->chan_name); } if (!zstr(caller_profile->profile_index)) { switch_snprintf(header_name, sizeof(header_name), "%s-Profile-Index", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->profile_index); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->profile_index); } if (caller_profile->soft) { @@ -415,9 +415,9 @@ SWITCH_DECLARE(void) switch_caller_profile_event_set_data(switch_caller_profile_ for (pn = caller_profile->soft; pn; pn = pn->next) { if (switch_test_flag(caller_profile, SWITCH_CPF_SOFT_PREFIX)) { switch_snprintf(header_name, sizeof(header_name), "%s-%s", prefix, pn->var); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, pn->val); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, pn->val); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, pn->var, pn->val); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, pn->var, pn->val); } } @@ -454,13 +454,13 @@ SWITCH_DECLARE(void) switch_caller_profile_event_set_data(switch_caller_profile_ } switch_snprintf(header_name, sizeof(header_name), "%s-Screen-Bit", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, switch_test_flag(caller_profile, SWITCH_CPF_SCREEN) ? "true" : "false"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, switch_test_flag(caller_profile, SWITCH_CPF_SCREEN) ? "true" : "false"); switch_snprintf(header_name, sizeof(header_name), "%s-Privacy-Hide-Name", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, switch_test_flag(caller_profile, SWITCH_CPF_HIDE_NAME) ? "true" : "false"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, switch_test_flag(caller_profile, SWITCH_CPF_HIDE_NAME) ? "true" : "false"); switch_snprintf(header_name, sizeof(header_name), "%s-Privacy-Hide-Number", prefix); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, switch_test_flag(caller_profile, SWITCH_CPF_HIDE_NUMBER) ? "true" : "false"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, switch_test_flag(caller_profile, SWITCH_CPF_HIDE_NUMBER) ? "true" : "false"); } SWITCH_DECLARE(switch_status_t) switch_caller_extension_clone(switch_caller_extension_t **new_ext, switch_caller_extension_t *orig, diff --git a/src/switch_channel.c b/src/switch_channel.c index ea3f66c246..8093c10f65 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -298,7 +298,7 @@ SWITCH_DECLARE(void) switch_channel_perform_set_callstate(switch_channel_t *chan switch_channel_check_device_state(channel, channel->callstate); if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_CALLSTATE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Original-Channel-Call-State", switch_channel_callstate2str(o_callstate)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Original-Channel-Call-State", switch_channel_callstate2str(o_callstate)); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Channel-Call-State-Number", "%d", callstate); switch_channel_event_set_data(channel, event); switch_event_fire(&event); @@ -803,18 +803,18 @@ SWITCH_DECLARE(void) switch_channel_perform_presence(switch_channel_t *channel, if (switch_event_create(&event, type) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "proto", "any"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "login", __FILE__); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "from", id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "proto", "any"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "login", __FILE__); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "from", id); if (type == SWITCH_EVENT_PRESENCE_IN) { if (!rpid) { rpid = "unknown"; } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", rpid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "status", status); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "rpid", rpid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "status", status); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog"); if (!strcasecmp(status, "idle") || !switch_channel_up_nosig(channel)) { @@ -835,22 +835,22 @@ SWITCH_DECLARE(void) switch_channel_perform_presence(switch_channel_t *channel, } } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "presence-call-info-state", call_info_state); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "presence-call-info-state", call_info_state); if (call_info) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "presence-call-info", call_info); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "presence-call-info", call_info); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "presence-call-direction", + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "presence-call-direction", channel->direction == SWITCH_CALL_DIRECTION_OUTBOUND ? "outbound" : "inbound"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", channel->event_count++); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Presence-Calling-File", file); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Presence-Calling-Function", func); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Presence-Calling-File", file); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Presence-Calling-Function", func); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Presence-Calling-Line", "%d", line); if (switch_true(switch_channel_get_variable(channel, "presence_privacy"))) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Presence-Privacy", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Presence-Privacy", "true"); } switch_event_fire(&event); @@ -959,7 +959,7 @@ SWITCH_DECLARE(switch_status_t) switch_channel_get_scope_variables(switch_channe for (ep = channel->scope_variables; ep; ep = ep->next) { for (hp = ep->headers; hp; hp = hp->next) { if (!switch_event_get_header(new_event, hp->value)) { - switch_event_add_header_string(new_event, SWITCH_STACK_BOTTOM, hp->name, hp->value); + switch_event_add_header_string_dup(new_event, SWITCH_STACK_BOTTOM, hp->name, hp->value); } } } @@ -1244,7 +1244,7 @@ SWITCH_DECLARE(void) switch_channel_process_export(switch_channel_t *channel, sw if (var_event) { switch_event_del_header(var_event, export_varname); - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, export_varname, export_vars); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, export_varname, export_vars); } if (peer_channel) { @@ -1265,7 +1265,7 @@ SWITCH_DECLARE(void) switch_channel_process_export(switch_channel_t *channel, sw } if (var_event) { switch_event_del_header(var_event, vvar); - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, vvar, vval); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, vvar, vval); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(channel->session), SWITCH_LOG_DEBUG, "%s EXPORTING[%s] [%s]=[%s] to event\n", switch_channel_get_name(channel), @@ -1443,7 +1443,7 @@ SWITCH_DECLARE(switch_status_t) switch_channel_set_log_tag(switch_channel_t *cha if (zstr(tagvalue)) { switch_event_del_header(channel->log_tags, tagname); } else { - switch_event_add_header_string(channel->log_tags, SWITCH_STACK_BOTTOM, tagname, tagvalue); + switch_event_add_header_string_dup(channel->log_tags, SWITCH_STACK_BOTTOM, tagname, tagvalue); } status = SWITCH_STATUS_SUCCESS; } @@ -1484,7 +1484,7 @@ SWITCH_DECLARE(switch_status_t) switch_channel_set_variable_var_check(switch_cha ok = !switch_string_var_check_const(value); } if (ok) { - switch_event_add_header_string(channel->variables, SWITCH_STACK_BOTTOM, varname, value); + switch_event_add_header_string_dup(channel->variables, SWITCH_STACK_BOTTOM, varname, value); } else { switch_log_printf(SWITCH_CHANNEL_CHANNEL_LOG(channel), SWITCH_LOG_CRIT, "Invalid data (${%s} contains a variable)\n", varname); } @@ -1526,7 +1526,7 @@ SWITCH_DECLARE(switch_status_t) switch_channel_set_variable_strip_quotes_var_che ok = !switch_string_var_check_const(r); } if (ok) { - switch_event_add_header_string(channel->variables, SWITCH_STACK_BOTTOM, varname, r); + switch_event_add_header_string_dup(channel->variables, SWITCH_STACK_BOTTOM, varname, r); } else { switch_log_printf(SWITCH_CHANNEL_CHANNEL_LOG(channel), SWITCH_LOG_CRIT, "Invalid data (${%s} contains a variable)\n", varname); } @@ -2649,63 +2649,63 @@ SWITCH_DECLARE(void) switch_channel_event_set_basic_data(switch_channel_t *chann originatee_caller_profile = caller_profile->originatee_caller_profile; } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-State", switch_channel_state_name(channel->running_state)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Call-State", switch_channel_callstate2str(channel->callstate)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Channel-State", switch_channel_state_name(channel->running_state)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Channel-Call-State", switch_channel_callstate2str(channel->callstate)); switch_snprintf(state_num, sizeof(state_num), "%d", channel->state); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-State-Number", state_num); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Name", switch_channel_get_name(channel)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(channel->session)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Session-External-ID", switch_core_session_get_external_id(channel->session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Channel-State-Number", state_num); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Channel-Name", switch_channel_get_name(channel)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(channel->session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Session-External-ID", switch_core_session_get_external_id(channel->session)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Call-Direction", + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Call-Direction", channel->direction == SWITCH_CALL_DIRECTION_OUTBOUND ? "outbound" : "inbound"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Presence-Call-Direction", + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Presence-Call-Direction", channel->direction == SWITCH_CALL_DIRECTION_OUTBOUND ? "outbound" : "inbound"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-HIT-Dialplan", + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Channel-HIT-Dialplan", switch_channel_direction(channel) == SWITCH_CALL_DIRECTION_INBOUND || switch_channel_test_flag(channel, CF_DIALPLAN) ? "true" : "false"); if ((v = switch_channel_get_variable_dup(channel, "presence_id", SWITCH_FALSE, -1))) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Presence-ID", v); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Channel-Presence-ID", v); } if ((v = switch_channel_get_variable_dup(channel, "presence_data", SWITCH_FALSE, -1))) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Presence-Data", v); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Channel-Presence-Data", v); } if ((v = switch_channel_get_variable_dup(channel, "presence_data_cols", SWITCH_FALSE, -1))) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Presence-Data-Cols", v); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Presence-Data-Cols", v); switch_event_add_presence_data_cols(channel, event, "PD-"); } if ((v = switch_channel_get_variable_dup(channel, "call_uuid", SWITCH_FALSE, -1))) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Call-UUID", v); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Channel-Call-UUID", v); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Call-UUID", switch_core_session_get_uuid(channel->session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Channel-Call-UUID", switch_core_session_get_uuid(channel->session)); } if (switch_channel_down_nosig(channel)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Answer-State", "hangup"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Answer-State", "hangup"); } else if (switch_channel_test_flag(channel, CF_ANSWERED)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Answer-State", "answered"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Answer-State", "answered"); } else if (switch_channel_test_flag(channel, CF_EARLY_MEDIA)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Answer-State", "early"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Answer-State", "early"); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Answer-State", "ringing"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Answer-State", "ringing"); } if (channel->hangup_cause) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Hangup-Cause", switch_channel_cause2str(channel->hangup_cause)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Hangup-Cause", switch_channel_cause2str(channel->hangup_cause)); } switch_core_session_get_read_impl(channel->session, &impl); if (impl.iananame) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Read-Codec-Name", impl.iananame); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Channel-Read-Codec-Name", impl.iananame); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Channel-Read-Codec-Rate", "%u", impl.actual_samples_per_second); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Channel-Read-Codec-Bit-Rate", "%d", impl.bits_per_second); } @@ -2713,7 +2713,7 @@ SWITCH_DECLARE(void) switch_channel_event_set_basic_data(switch_channel_t *chann switch_core_session_get_write_impl(channel->session, &impl); if (impl.iananame) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Write-Codec-Name", impl.iananame); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Channel-Write-Codec-Name", impl.iananame); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Channel-Write-Codec-Rate", "%u", impl.actual_samples_per_second); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Channel-Write-Codec-Bit-Rate", "%d", impl.bits_per_second); } @@ -2725,10 +2725,10 @@ SWITCH_DECLARE(void) switch_channel_event_set_basic_data(switch_channel_t *chann /* Index Originator/ee's Profile */ if (originator_caller_profile && channel->last_profile_type == LP_ORIGINATOR) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Other-Type", "originator"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Other-Type", "originator"); switch_caller_profile_event_set_data(originator_caller_profile, "Other-Leg", event); } else if (originatee_caller_profile && channel->last_profile_type == LP_ORIGINATEE) { /* Index Originatee's Profile */ - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Other-Type", "originatee"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Other-Type", "originatee"); switch_caller_profile_event_set_data(originatee_caller_profile, "Other-Leg", event); } @@ -2796,7 +2796,7 @@ SWITCH_DECLARE(void) switch_channel_event_set_extended_data(switch_channel_t *ch switch_snprintf(buf, sizeof(buf), "scope_variable_%s", vvar); if (!switch_event_get_header(event, buf)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, buf, vval); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, buf, vval); } } } @@ -2812,7 +2812,7 @@ SWITCH_DECLARE(void) switch_channel_event_set_extended_data(switch_channel_t *ch switch_assert(vvar && vval); switch_snprintf(buf, sizeof(buf), "variable_%s", vvar); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, buf, vval); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, buf, vval); } } } @@ -3257,10 +3257,10 @@ SWITCH_DECLARE(void) switch_channel_flip_cid(switch_channel_t *channel) if (switch_event_create(&event, SWITCH_EVENT_CALL_UPDATE) == SWITCH_STATUS_SUCCESS) { const char *uuid = switch_channel_get_partner_uuid(channel); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Direction", "RECV"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Direction", "RECV"); if (uuid) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridged-To", uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Bridged-To", uuid); } switch_channel_event_set_data(channel, event); switch_event_fire(&event); @@ -4450,7 +4450,7 @@ SWITCH_DECLARE(switch_status_t) switch_channel_get_variables_prefix(switch_chann for (hi = channel->variables->headers; hi; hi = hi->next) { if (!strncmp(hi->name, prefix, strlen(prefix))) { - switch_event_add_header_string(vars, SWITCH_STACK_BOTTOM, hi->name, hi->value); + switch_event_add_header_string_dup(vars, SWITCH_STACK_BOTTOM, hi->name, hi->value); } } } @@ -5116,8 +5116,8 @@ SWITCH_DECLARE(void) switch_channel_clear_device_record(switch_channel_t *channe int x = 0; char prefix[80] = ""; - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Type", "device"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Device-ID", channel->device_node->parent->device_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Type", "device"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Device-ID", channel->device_node->parent->device_id); switch_mutex_lock(channel->device_node->parent->mutex); for(np = channel->device_node->parent->uuid_list; np; np = np->next) { @@ -5303,10 +5303,10 @@ static void switch_channel_check_device_state(switch_channel_t *channel, switch_ if (switch_event_create(&event, SWITCH_EVENT_DEVICE_STATE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Device-ID", drec->device_id); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Last-Device-State", switch_channel_device_state2str(drec->last_state)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Device-State", switch_channel_device_state2str(drec->state)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Device-Call-State", switch_channel_callstate2str(callstate)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Device-ID", drec->device_id); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Last-Device-State", switch_channel_device_state2str(drec->last_state)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Device-State", switch_channel_device_state2str(drec->state)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Device-Call-State", switch_channel_callstate2str(callstate)); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Device-Total-Legs", "%u", drec->stats.total); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Device-Legs-Offhook", "%u", drec->stats.offhook); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Device-Legs-Ringing", "%u", drec->stats.ringing); diff --git a/src/switch_console.c b/src/switch_console.c index 2de5ac27ab..d32560d6a5 100644 --- a/src/switch_console.c +++ b/src/switch_console.c @@ -437,9 +437,9 @@ SWITCH_DECLARE(void) switch_console_printf(switch_text_channel_t channel, const if (channel == SWITCH_CHANNEL_ID_EVENT && switch_event_running() == SWITCH_STATUS_SUCCESS && switch_event_create(&event, SWITCH_EVENT_LOG) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Log-Data", data); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Log-File", filep); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Log-Function", func); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Log-Data", data); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Log-File", filep); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Log-Function", func); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Log-Line", "%d", line); switch_event_fire(&event); } diff --git a/src/switch_core.c b/src/switch_core.c index b9b92f40c7..89687e905f 100644 --- a/src/switch_core.c +++ b/src/switch_core.c @@ -147,8 +147,8 @@ static void check_ip(void) } else if (strcmp(hostname, runtime.hostname)) { if (switch_event_create(&event, SWITCH_EVENT_TRAP) == SWITCH_STATUS_SUCCESS) { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "condition", "hostname-change"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "old-hostname", hostname ? hostname : "nil"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "new-hostname", runtime.hostname); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "old-hostname", hostname ? hostname : "nil"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "new-hostname", runtime.hostname); switch_event_fire(&event); } @@ -194,12 +194,12 @@ static void check_ip(void) if (switch_event_create(&event, SWITCH_EVENT_TRAP) == SWITCH_STATUS_SUCCESS) { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "condition", "network-address-change"); if (!ok4) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "network-address-previous-v4", old_ip4); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "network-address-change-v4", main_ip4); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "network-address-previous-v4", old_ip4); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "network-address-change-v4", main_ip4); } if (!ok6) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "network-address-previous-v6", old_ip6); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "network-address-change-v6", main_ip6); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "network-address-previous-v6", old_ip6); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "network-address-change-v6", main_ip6); } switch_event_fire(&event); } @@ -209,11 +209,11 @@ static void check_ip(void) if (switch_event_create(&event, SWITCH_EVENT_TRAP) == SWITCH_STATUS_SUCCESS) { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "condition", "network-outage"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "network-status-v4", ok4 == 2 ? "disconnected" : "active"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "network-address-v4", main_ip4); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "network-status-v4", ok4 == 2 ? "disconnected" : "active"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "network-address-v4", main_ip4); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "network-status-v6", ok6 == 2 ? "disconnected" : "active"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "network-address-v6", main_ip6); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "network-status-v6", ok6 == 2 ? "disconnected" : "active"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "network-address-v6", main_ip6); switch_event_fire(&event); } @@ -451,7 +451,7 @@ SWITCH_DECLARE(void) switch_core_set_variable(const char *varname, const char *v if (value) { char *v = strdup(value); switch_string_var_check(v, SWITCH_TRUE); - switch_event_add_header_string(runtime.global_vars, SWITCH_STACK_BOTTOM, varname, v); + switch_event_add_header_string_dup(runtime.global_vars, SWITCH_STACK_BOTTOM, varname, v); free(v); } else { switch_event_del_header(runtime.global_vars, varname); @@ -1637,8 +1637,8 @@ SWITCH_DECLARE(void) switch_load_network_lists(switch_bool_t reload) switch_event_create(&my_params, SWITCH_EVENT_GENERAL); switch_assert(my_params); - switch_event_add_header_string(my_params, SWITCH_STACK_BOTTOM, "domain", domain); - switch_event_add_header_string(my_params, SWITCH_STACK_BOTTOM, "purpose", "network-list"); + switch_event_add_header_string_dup(my_params, SWITCH_STACK_BOTTOM, "domain", domain); + switch_event_add_header_string_dup(my_params, SWITCH_STACK_BOTTOM, "purpose", "network-list"); if (switch_xml_locate_domain(domain, my_params, &xml_root, &x_domain) != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Cannot locate domain %s\n", domain); diff --git a/src/switch_core_codec.c b/src/switch_core_codec.c index 69883f8122..a310bfaddd 100644 --- a/src/switch_core_codec.c +++ b/src/switch_core_codec.c @@ -163,7 +163,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_set_real_read_codec(switch_c if (changed_read_codec && session->read_codec && session->read_impl.decoded_bytes_per_packet) { if (switch_event_create(&event, SWITCH_EVENT_CODEC) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(session->channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-read-codec-name", session->read_impl.iananame); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-read-codec-name", session->read_impl.iananame); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-read-codec-rate", "%d", session->read_impl.actual_samples_per_second); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-read-codec-bit-rate", "%d", session->read_impl.bits_per_second); if (session->read_impl.actual_samples_per_second != session->read_impl.samples_per_second) { @@ -272,7 +272,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_set_read_codec(switch_core_s if (session->read_impl.decoded_bytes_per_packet) { if (switch_event_create(&event, SWITCH_EVENT_CODEC) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(session->channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-read-codec-name", session->read_impl.iananame); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-read-codec-name", session->read_impl.iananame); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-read-codec-rate", "%d", session->read_impl.actual_samples_per_second); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-read-codec-bit-rate", "%d", session->read_impl.bits_per_second); if (session->read_impl.actual_samples_per_second != session->read_impl.samples_per_second) { @@ -443,7 +443,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_set_write_codec(switch_core_ if (codec && session->write_impl.codec_id) { if (switch_event_create(&event, SWITCH_EVENT_CODEC) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(session->channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Write-Codec-Name", session->write_impl.iananame); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Channel-Write-Codec-Name", session->write_impl.iananame); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Channel-Write-Codec-Rate", "%d", session->write_impl.actual_samples_per_second); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Channel-Write-codec-bit-rate", "%d", session->write_impl.bits_per_second); if (session->write_impl.actual_samples_per_second != session->write_impl.samples_per_second) { @@ -503,7 +503,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_set_video_read_codec(switch_ if (switch_event_create(&event, SWITCH_EVENT_CODEC) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(session->channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-video-read-codec-name", codec->implementation->iananame); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-video-read-codec-name", codec->implementation->iananame); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-video-read-codec-rate", "%d", codec->implementation->actual_samples_per_second); switch_event_fire(&event); } @@ -551,7 +551,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_set_video_write_codec(switch if (switch_event_create(&event, SWITCH_EVENT_CODEC) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(session->channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-video-write-codec-name", codec->implementation->iananame); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "channel-video-write-codec-name", codec->implementation->iananame); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-video-write-codec-rate", "%d", codec->implementation->actual_samples_per_second); switch_event_fire(&event); } diff --git a/src/switch_core_hash.c b/src/switch_core_hash.c index 3009ec4824..77cfc2a915 100644 --- a/src/switch_core_hash.c +++ b/src/switch_core_hash.c @@ -246,7 +246,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_hash_delete_multi(switch_hash_t *has void *val; switch_core_hash_this(hi, &key, NULL, &val); if (!callback || callback(key, val, pData)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "delete", (const char *) key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "delete", (const char *) key); } } diff --git a/src/switch_core_media.c b/src/switch_core_media.c index 0754494ee3..249151d16c 100644 --- a/src/switch_core_media.c +++ b/src/switch_core_media.c @@ -2952,65 +2952,65 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_read_frame(switch_core_session char *uuid = switch_core_session_get_uuid(session); if (uuid) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(session)); } snprintf(value, sizeof(value), "%.8x", rtcp_frame.ssrc); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "SSRC", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "SSRC", value); snprintf(value, sizeof(value), "%u", rtcp_frame.ntp_msw); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "NTP-Most-Significant-Word", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "NTP-Most-Significant-Word", value); snprintf(value, sizeof(value), "%u", rtcp_frame.ntp_lsw); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "NTP-Least-Significant-Word", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "NTP-Least-Significant-Word", value); snprintf(value, sizeof(value), "%u", rtcp_frame.timestamp); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "RTP-Timestamp", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "RTP-Timestamp", value); snprintf(value, sizeof(value), "%u", rtcp_frame.packet_count); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Sender-Packet-Count", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Sender-Packet-Count", value); snprintf(value, sizeof(value), "%u", rtcp_frame.octect_count); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Octect-Packet-Count", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Octect-Packet-Count", value); snprintf(value, sizeof(value), "%u", engine->read_frame.timestamp); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Last-RTP-Timestamp", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Last-RTP-Timestamp", value); snprintf(value, sizeof(value), "%u", engine->read_frame.rate); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "RTP-Rate", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "RTP-Rate", value); snprintf(value, sizeof(value), "%" SWITCH_TIME_T_FMT, switch_time_now()); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Capture-Time", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Capture-Time", value); // Add sources info for (i = 0; i < rtcp_frame.report_count; i++) { snprintf(header, sizeof(header), "Source%u-SSRC", i); snprintf(value, sizeof(value), "%.8x", rtcp_frame.reports[i].ssrc); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header, value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header, value); snprintf(header, sizeof(header), "Source%u-Fraction", i); snprintf(value, sizeof(value), "%u", rtcp_frame.reports[i].fraction); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header, value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header, value); snprintf(header, sizeof(header), "Source%u-Lost", i); snprintf(value, sizeof(value), "%u", rtcp_frame.reports[i].lost); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header, value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header, value); snprintf(header, sizeof(header), "Source%u-Loss-Avg", i); snprintf(value, sizeof(value), "%u", rtcp_frame.reports[i].loss_avg); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header, value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header, value); snprintf(header, sizeof(header), "Source%u-Highest-Sequence-Number-Received", i); snprintf(value, sizeof(value), "%u", rtcp_frame.reports[i].highest_sequence_number_received); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header, value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header, value); snprintf(header, sizeof(header), "Source%u-Jitter", i); snprintf(value, sizeof(value), "%u", rtcp_frame.reports[i].jitter); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header, value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header, value); snprintf(header, sizeof(header), "Source%u-LSR", i); snprintf(value, sizeof(value), "%u", rtcp_frame.reports[i].lsr); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header, value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header, value); snprintf(header, sizeof(header), "Source%u-DLSR", i); snprintf(value, sizeof(value), "%u", rtcp_frame.reports[i].dlsr); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header, value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header, value); snprintf(header, sizeof(header), "Rtt%u-Avg", i); snprintf(value, sizeof(value), "%f", rtcp_frame.reports[i].rtt_avg); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header, value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header, value); } switch_event_fire(&event); @@ -10145,10 +10145,10 @@ switch_status_t switch_core_media_sdp_map(const char *r_sdp, switch_event_t **fm switch_snprintf(key, sizeof(key), "%s", map->rm_encoding); } - switch_event_add_header_string(*pt, SWITCH_STACK_BOTTOM, key, buf); + switch_event_add_header_string_dup(*pt, SWITCH_STACK_BOTTOM, key, buf); if (map->rm_fmtp) { - switch_event_add_header_string(*fmtp, SWITCH_STACK_BOTTOM, key, map->rm_fmtp); + switch_event_add_header_string_dup(*fmtp, SWITCH_STACK_BOTTOM, key, map->rm_fmtp); } } } diff --git a/src/switch_core_session.c b/src/switch_core_session.c index 2cfdee869d..48e40beb11 100644 --- a/src/switch_core_session.c +++ b/src/switch_core_session.c @@ -280,7 +280,7 @@ SWITCH_DECLARE(uint32_t) switch_core_session_hupall_matching_var_ans(const char return r; switch_event_create(&vars, SWITCH_EVENT_CLONE); - switch_event_add_header_string(vars, SWITCH_STACK_BOTTOM, var_name, var_val); + switch_event_add_header_string_dup(vars, SWITCH_STACK_BOTTOM, var_name, var_val); r = switch_core_session_hupall_matching_vars_ans(vars, cause, type); switch_event_destroy(&vars); return r; @@ -2048,7 +2048,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_set_uuid(switch_core_session switch_channel_set_variable(session->channel, "call_uuid", use_uuid); switch_event_create(&event, SWITCH_EVENT_CHANNEL_UUID); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Old-Unique-ID", session->uuid_str); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Old-Unique-ID", session->uuid_str); switch_core_hash_delete(session_manager.session_table, session->uuid_str); switch_set_string(session->uuid_str, use_uuid); switch_core_hash_insert(session_manager.session_table, session->uuid_str, session); @@ -2684,18 +2684,18 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_execute_application_async(sw } if (switch_event_create(&execute_event, SWITCH_EVENT_COMMAND) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(execute_event, SWITCH_STACK_BOTTOM, "call-command", "execute"); - switch_event_add_header_string(execute_event, SWITCH_STACK_BOTTOM, "execute-app-name", app); + switch_event_add_header_string_dup(execute_event, SWITCH_STACK_BOTTOM, "call-command", "execute"); + switch_event_add_header_string_dup(execute_event, SWITCH_STACK_BOTTOM, "execute-app-name", app); if (arg) { - switch_event_add_header_string(execute_event, SWITCH_STACK_BOTTOM, "execute-app-arg", arg); + switch_event_add_header_string_dup(execute_event, SWITCH_STACK_BOTTOM, "execute-app-arg", arg); } if (!switch_channel_test_flag(session->channel, CF_PROXY_MODE)) { switch_channel_set_flag(session->channel, CF_BLOCK_BROADCAST_UNTIL_MEDIA); } - switch_event_add_header_string(execute_event, SWITCH_STACK_BOTTOM, "event-lock", "true"); + switch_event_add_header_string_dup(execute_event, SWITCH_STACK_BOTTOM, "event-lock", "true"); switch_core_session_queue_private_event(session, &execute_event, SWITCH_FALSE); return SWITCH_STATUS_SUCCESS; @@ -2937,10 +2937,10 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_exec(switch_core_session_t * if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_EXECUTE) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(session->channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application", application_interface->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application-Data", expanded); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application-UUID", app_uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application-UUID-Name", app_uuid_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Application", application_interface->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Application-Data", expanded); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Application-UUID", app_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Application-UUID-Name", app_uuid_name); switch_event_fire(&event); } @@ -2961,11 +2961,11 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_exec(switch_core_session_t * if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_EXECUTE_COMPLETE) == SWITCH_STATUS_SUCCESS) { const char *resp = switch_channel_get_variable(session->channel, SWITCH_CURRENT_APPLICATION_RESPONSE_VARIABLE); switch_channel_event_set_data(session->channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application", application_interface->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application-Data", expanded); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application-Response", resp ? resp : "_none_"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application-UUID", app_uuid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application-UUID-Name", app_uuid_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Application", application_interface->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Application-Data", expanded); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Application-Response", resp ? resp : "_none_"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Application-UUID", app_uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Application-UUID-Name", app_uuid_name); switch_event_fire(&event); } diff --git a/src/switch_core_state_machine.c b/src/switch_core_state_machine.c index b2bc14a1df..2fa90c2cf7 100644 --- a/src/switch_core_state_machine.c +++ b/src/switch_core_state_machine.c @@ -941,7 +941,7 @@ SWITCH_DECLARE(void) switch_core_session_reporting_state(switch_core_session_t * } if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_HANGUP_COMPLETE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Hangup-Cause", switch_channel_cause2str(cause)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Hangup-Cause", switch_channel_cause2str(cause)); switch_channel_event_set_data(session->channel, event); if (switch_true(switch_channel_get_variable(session->channel, "hangup_complete_with_xml"))) { switch_xml_t cdr = NULL; @@ -949,7 +949,7 @@ SWITCH_DECLARE(void) switch_core_session_reporting_state(switch_core_session_t * if (switch_ivr_generate_xml_cdr(session, &cdr) == SWITCH_STATUS_SUCCESS) { xml_cdr_text = switch_xml_toxml(cdr, SWITCH_FALSE); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "CDR-Attached", "xml"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "CDR-Attached", "xml"); switch_event_add_body(event, "%s", xml_cdr_text); switch_xml_free(cdr); switch_safe_free(xml_cdr_text); diff --git a/src/switch_cpp.cpp b/src/switch_cpp.cpp index fe71a6400a..3266c1f69c 100644 --- a/src/switch_cpp.cpp +++ b/src/switch_cpp.cpp @@ -453,7 +453,7 @@ SWITCH_DECLARE(bool) Event::addHeader(const char *header_name, const char *value this_check(false); if (event) { - return switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, value) == SWITCH_STATUS_SUCCESS ? true : false; + return switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, value) == SWITCH_STATUS_SUCCESS ? true : false; } else { switch_log_printf(SWITCH_CHANNEL_LOG,SWITCH_LOG_ERROR, "Trying to addHeader an event that does not exist!\n"); } diff --git a/src/switch_event.c b/src/switch_event.c index 4cc60fa60c..152caac850 100644 --- a/src/switch_event.c +++ b/src/switch_event.c @@ -779,7 +779,7 @@ SWITCH_DECLARE(switch_status_t) switch_event_create_subclass_detailed(const char if (subclass_name) { (*event)->subclass_name = DUP(subclass_name); - switch_event_add_header_string(*event, SWITCH_STACK_BOTTOM, "Event-Subclass", subclass_name); + switch_event_add_header_string_dup(*event, SWITCH_STACK_BOTTOM, "Event-Subclass", subclass_name); } return SWITCH_STATUS_SUCCESS; @@ -788,7 +788,7 @@ SWITCH_DECLARE(switch_status_t) switch_event_create_subclass_detailed(const char SWITCH_DECLARE(switch_status_t) switch_event_set_priority(switch_event_t *event, switch_priority_t priority) { event->priority = priority; - switch_event_add_header_string(event, SWITCH_STACK_TOP, "priority", switch_priority_name(priority)); + switch_event_add_header_string_dup(event, SWITCH_STACK_TOP, "priority", switch_priority_name(priority)); return SWITCH_STATUS_SUCCESS; } @@ -992,7 +992,7 @@ SWITCH_DECLARE(int) switch_event_add_array(switch_event_t *event, const char *va switch_separate_string_string(data, "|:", array, max); for(i = 0; i < max; i++) { - switch_event_add_header_string(event, SWITCH_STACK_PUSH, var, array[i]); + switch_event_add_header_string_dup(event, SWITCH_STACK_PUSH, var, array[i]); } free(array); @@ -1231,7 +1231,7 @@ SWITCH_DECLARE(switch_status_t) switch_event_set_subclass_name(switch_event_t *e switch_safe_free(event->subclass_name); event->subclass_name = DUP(subclass_name); switch_event_del_header(event, "Event-Subclass"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Event-Subclass", event->subclass_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Event-Subclass", event->subclass_name); return SWITCH_STATUS_SUCCESS; } @@ -1243,6 +1243,14 @@ SWITCH_DECLARE(switch_status_t) switch_event_add_header_string(switch_event_t *e return SWITCH_STATUS_GENERR; } +SWITCH_DECLARE(switch_status_t) switch_event_add_header_string_dup(switch_event_t *event, switch_stack_t stack, const char *header_name, const char *data) +{ + if (data) { + return switch_event_base_add_header(event, stack, header_name, DUP(data)); + } + return SWITCH_STATUS_GENERR; +} + SWITCH_DECLARE(switch_status_t) switch_event_set_body(switch_event_t *event, const char *body) { switch_safe_free(event->body); @@ -1314,10 +1322,10 @@ SWITCH_DECLARE(void) switch_event_merge(switch_event_t *event, switch_event_t *t int i; for(i = 0; i < hp->idx; i++) { - switch_event_add_header_string(event, SWITCH_STACK_PUSH, hp->name, hp->array[i]); + switch_event_add_header_string_dup(event, SWITCH_STACK_PUSH, hp->name, hp->array[i]); } } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, hp->name, hp->value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, hp->name, hp->value); } } } @@ -1342,10 +1350,10 @@ SWITCH_DECLARE(switch_status_t) switch_event_dup(switch_event_t **event, switch_ if (hp->idx) { int i; for (i = 0; i < hp->idx; i++) { - switch_event_add_header_string(*event, SWITCH_STACK_PUSH, hp->name, hp->array[i]); + switch_event_add_header_string_dup(*event, SWITCH_STACK_PUSH, hp->name, hp->array[i]); } } else { - switch_event_add_header_string(*event, SWITCH_STACK_BOTTOM, hp->name, hp->value); + switch_event_add_header_string_dup(*event, SWITCH_STACK_BOTTOM, hp->name, hp->value); } } @@ -1398,17 +1406,17 @@ SWITCH_DECLARE(switch_status_t) switch_event_dup_reply(switch_event_t **event, s if (hp->idx) { int i; for (i = 0; i < hp->idx; i++) { - switch_event_add_header_string(*event, SWITCH_STACK_PUSH, name, hp->array[i]); + switch_event_add_header_string_dup(*event, SWITCH_STACK_PUSH, name, hp->array[i]); } } else { - switch_event_add_header_string(*event, SWITCH_STACK_BOTTOM, name, value); + switch_event_add_header_string_dup(*event, SWITCH_STACK_BOTTOM, name, value); } } - switch_event_add_header_string(*event, SWITCH_STACK_BOTTOM, "replying", "true"); + switch_event_add_header_string_dup(*event, SWITCH_STACK_BOTTOM, "replying", "true"); if (todup->body) { - switch_event_add_header_string(*event, SWITCH_STACK_BOTTOM, "orig_body", todup->body); + switch_event_add_header_string_dup(*event, SWITCH_STACK_BOTTOM, "orig_body", todup->body); } (*event)->key = todup->key; @@ -1450,7 +1458,7 @@ SWITCH_DECLARE(switch_status_t) switch_event_binary_deserialize(switch_event_t * while (tpl_unpack(tn, 1)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, sh.name, sh.value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, sh.name, sh.value); } *eventp = event; @@ -1645,7 +1653,7 @@ SWITCH_DECLARE(switch_status_t) switch_event_create_array_pair(switch_event_t ** name = "Unknown"; } - switch_event_add_header_string(*event, SWITCH_STACK_BOTTOM, name, val); + switch_event_add_header_string_dup(*event, SWITCH_STACK_BOTTOM, name, val); } return SWITCH_STATUS_SUCCESS; @@ -1726,7 +1734,7 @@ SWITCH_DECLARE(switch_status_t) switch_event_create_brackets(char *data, char a, if (switch_separate_string(var_array[x], '=', inner_var_array, (sizeof(inner_var_array) / sizeof(inner_var_array[0]))) == 2) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG1, "Parsing variable [%s]=[%s]\n", inner_var_array[0], inner_var_array[1]); - switch_event_add_header_string(e, SWITCH_STACK_BOTTOM, inner_var_array[0], inner_var_array[1]); + switch_event_add_header_string_dup(e, SWITCH_STACK_BOTTOM, inner_var_array[0], inner_var_array[1]); } } } @@ -1783,7 +1791,7 @@ SWITCH_DECLARE(switch_status_t) switch_event_create_json(switch_event_t **event, switch_name_event(value, &new_event->event_id); } - switch_event_add_header_string(new_event, SWITCH_STACK_BOTTOM, name, value); + switch_event_add_header_string_dup(new_event, SWITCH_STACK_BOTTOM, name, value); } } else if (name) { @@ -1794,7 +1802,7 @@ SWITCH_DECLARE(switch_status_t) switch_event_create_json(switch_event_t **event, cJSON *item = cJSON_GetArrayItem(cjp, i); if (item && item->type == cJSON_String && item->valuestring) { - switch_event_add_header_string(new_event, SWITCH_STACK_PUSH, name, item->valuestring); + switch_event_add_header_string_dup(new_event, SWITCH_STACK_PUSH, name, item->valuestring); } } } @@ -1969,21 +1977,21 @@ SWITCH_DECLARE(void) switch_event_prep_for_delivery_detailed(const char *file, c switch_mutex_unlock(EVENT_QUEUE_MUTEX); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Event-Name", switch_event_name(event->event_id)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Core-UUID", switch_core_get_uuid()); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FreeSWITCH-Hostname", switch_core_get_hostname()); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FreeSWITCH-Switchname", switch_core_get_switchname()); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FreeSWITCH-IPv4", guess_ip_v4); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "FreeSWITCH-IPv6", guess_ip_v6); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Event-Name", switch_event_name(event->event_id)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Core-UUID", switch_core_get_uuid()); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FreeSWITCH-Hostname", switch_core_get_hostname()); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FreeSWITCH-Switchname", switch_core_get_switchname()); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FreeSWITCH-IPv4", guess_ip_v4); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "FreeSWITCH-IPv6", guess_ip_v6); switch_time_exp_lt(&tm, ts); switch_strftime_nocheck(date, &retsize, sizeof(date), "%Y-%m-%d %T", &tm); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Event-Date-Local", date); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Event-Date-Local", date); switch_rfc822_date(date, ts); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Event-Date-GMT", date); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Event-Date-GMT", date); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Event-Date-Timestamp", "%" SWITCH_UINT64_T_FMT, (uint64_t) ts); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Event-Calling-File", switch_cut_path(file)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Event-Calling-Function", func); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Event-Calling-File", switch_cut_path(file)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Event-Calling-Function", func); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Event-Calling-Line-Number", "%d", line); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Event-Sequence", "%" SWITCH_UINT64_T_FMT, seq); @@ -2204,17 +2212,17 @@ SWITCH_DECLARE(switch_status_t) switch_event_create_pres_in_detailed(char *file, switch_event_t *pres_event; if (switch_event_create_subclass(&pres_event, SWITCH_EVENT_PRESENCE_IN, SWITCH_EVENT_SUBCLASS_ANY) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(pres_event, SWITCH_STACK_TOP, "proto", proto); - switch_event_add_header_string(pres_event, SWITCH_STACK_TOP, "login", login); + switch_event_add_header_string_dup(pres_event, SWITCH_STACK_TOP, "proto", proto); + switch_event_add_header_string_dup(pres_event, SWITCH_STACK_TOP, "login", login); switch_event_add_header(pres_event, SWITCH_STACK_TOP, "from", "%s@%s", from, from_domain); - switch_event_add_header_string(pres_event, SWITCH_STACK_TOP, "status", status); - switch_event_add_header_string(pres_event, SWITCH_STACK_TOP, "event_type", event_type); - switch_event_add_header_string(pres_event, SWITCH_STACK_TOP, "alt_event_type", alt_event_type); + switch_event_add_header_string_dup(pres_event, SWITCH_STACK_TOP, "status", status); + switch_event_add_header_string_dup(pres_event, SWITCH_STACK_TOP, "event_type", event_type); + switch_event_add_header_string_dup(pres_event, SWITCH_STACK_TOP, "alt_event_type", alt_event_type); switch_event_add_header(pres_event, SWITCH_STACK_TOP, "event_count", "%d", event_count); - switch_event_add_header_string(pres_event, SWITCH_STACK_TOP, "unique-id", alt_event_type); - switch_event_add_header_string(pres_event, SWITCH_STACK_TOP, "channel-state", channel_state); - switch_event_add_header_string(pres_event, SWITCH_STACK_TOP, "answer-state", answer_state); - switch_event_add_header_string(pres_event, SWITCH_STACK_TOP, "presence-call-direction", call_direction); + switch_event_add_header_string_dup(pres_event, SWITCH_STACK_TOP, "unique-id", alt_event_type); + switch_event_add_header_string_dup(pres_event, SWITCH_STACK_TOP, "channel-state", channel_state); + switch_event_add_header_string_dup(pres_event, SWITCH_STACK_TOP, "answer-state", answer_state); + switch_event_add_header_string_dup(pres_event, SWITCH_STACK_TOP, "presence-call-direction", call_direction); switch_event_fire_detailed(file, func, line, &pres_event, NULL); return SWITCH_STATUS_SUCCESS; } @@ -2695,7 +2703,7 @@ SWITCH_DECLARE(void) switch_event_add_presence_data_cols(switch_channel_t *chann switch_snprintf(header_name, sizeof(header_name), "%s%s", prefix, cols[i]); val = switch_channel_get_variable(channel, cols[i]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, val); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header_name, val); } switch_safe_free(data_copy); @@ -3147,7 +3155,7 @@ SWITCH_DECLARE(void) switch_event_channel_permission_modify(const char *cookie, } if (set) { - switch_event_add_header_string(vals, SWITCH_STACK_BOTTOM, event_channel, "true"); + switch_event_add_header_string_dup(vals, SWITCH_STACK_BOTTOM, event_channel, "true"); } else { switch_event_del_header(vals, event_channel); } diff --git a/src/switch_ivr.c b/src/switch_ivr.c index 77d957fb7c..69aa2ff82e 100644 --- a/src/switch_ivr.c +++ b/src/switch_ivr.c @@ -3709,8 +3709,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_say(switch_core_session_t *session, switch_event_create(&hint_data, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(hint_data); - switch_event_add_header_string(hint_data, SWITCH_STACK_BOTTOM, "macro_name", "say_app"); - switch_event_add_header_string(hint_data, SWITCH_STACK_BOTTOM, "lang", chan_lang); + switch_event_add_header_string_dup(hint_data, SWITCH_STACK_BOTTOM, "macro_name", "say_app"); + switch_event_add_header_string_dup(hint_data, SWITCH_STACK_BOTTOM, "lang", chan_lang); switch_channel_event_set_data(channel, hint_data); if (switch_xml_locate_language(&xml, &cfg, hint_data, &language, &phrases, ¯os, chan_lang) != SWITCH_STATUS_SUCCESS) { @@ -3817,8 +3817,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_say_string(switch_core_session_t *ses switch_event_create(&hint_data, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(hint_data); - switch_event_add_header_string(hint_data, SWITCH_STACK_BOTTOM, "macro_name", "say_app"); - switch_event_add_header_string(hint_data, SWITCH_STACK_BOTTOM, "lang", chan_lang); + switch_event_add_header_string_dup(hint_data, SWITCH_STACK_BOTTOM, "macro_name", "say_app"); + switch_event_add_header_string_dup(hint_data, SWITCH_STACK_BOTTOM, "lang", chan_lang); if (channel) { switch_channel_event_set_data(channel, hint_data); @@ -4322,7 +4322,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_create_message_reply(switch_event_t * abort(); } - switch_event_add_header_string(*reply, SWITCH_STACK_BOTTOM, "proto", new_proto); + switch_event_add_header_string_dup(*reply, SWITCH_STACK_BOTTOM, "proto", new_proto); return status; } @@ -4340,11 +4340,11 @@ SWITCH_DECLARE(char *) switch_ivr_check_presence_mapping(const char *exten_name, switch_assert(params); if ( !zstr(domain_name) ) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "domain", domain_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "domain", domain_name); } if ( !zstr(exten_name) ) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "exten", exten_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "exten", exten_name); } if (!(xml = switch_xml_open_cfg(cf, &cfg, params))) { diff --git a/src/switch_ivr_async.c b/src/switch_ivr_async.c index 6dfdcf7248..352b75c256 100644 --- a/src/switch_ivr_async.c +++ b/src/switch_ivr_async.c @@ -1215,7 +1215,7 @@ static void merge_recording_variables(struct record_helper *rh, switch_event_t * switch_assert(vvar && vval); switch_snprintf(buf, sizeof(buf), "Recording-Variable-%s", vvar); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, buf, vval); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, buf, vval); } } } @@ -1238,10 +1238,10 @@ static void send_record_stop_event(switch_channel_t *channel, switch_codec_imple if (switch_event_create(&event, SWITCH_EVENT_RECORD_STOP) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Record-File-Path", rh->file); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Record-File-Path", rh->file); merge_recording_variables(rh, event); if (!zstr(rh->completion_cause)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Record-Completion-Cause", rh->completion_cause); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Record-Completion-Cause", rh->completion_cause); } switch_event_fire(&event); } @@ -1479,7 +1479,7 @@ static switch_bool_t record_callback(switch_media_bug_t *bug, void *user_data, s rh->start_event_sent = 1; if (switch_event_create(&event, SWITCH_EVENT_RECORD_START) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Record-File-Path", rh->file); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Record-File-Path", rh->file); merge_recording_variables(rh, event); switch_event_fire(&event); } @@ -3929,8 +3929,8 @@ static switch_status_t generate_on_dtmf(switch_core_session_t *session, const sw switch_channel_event_set_data(channel, event); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "DTMF-Digit", "%c", dtmf->digit); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "DTMF-Duration", "%u", dtmf->duration); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "DTMF-Source", "APP"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "DTMF-Conversion", "native:inband"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "DTMF-Source", "APP"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "DTMF-Conversion", "native:inband"); if (switch_channel_test_flag(channel, CF_DIVERT_EVENTS)) { switch_core_session_queue_event(session, &event); } else { @@ -4267,7 +4267,7 @@ static switch_bool_t tone_detect_callback(switch_media_bug_t *bug, void *user_da if (switch_event_create(&event, SWITCH_EVENT_DETECTED_TONE) == SWITCH_STATUS_SUCCESS) { switch_event_t *dup; - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Detected-Tone", cont->list[i].key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Detected-Tone", cont->list[i].key); if (switch_event_dup(&dup, event) == SWITCH_STATUS_SUCCESS) { switch_event_fire(&dup); @@ -4276,7 +4276,7 @@ static switch_bool_t tone_detect_callback(switch_media_bug_t *bug, void *user_da if (switch_core_session_queue_event(cont->session, &event) != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(switch_core_media_bug_get_session(bug)), SWITCH_LOG_ERROR, "Event queue failed!\n"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "delivery-failure", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "delivery-failure", "true"); switch_event_fire(&event); } } @@ -5067,7 +5067,7 @@ static void *SWITCH_THREAD_FUNC speech_thread(switch_thread_t *thread, void *obj if (switch_event_create(&event, SWITCH_EVENT_DETECTED_SPEECH) == SWITCH_STATUS_SUCCESS) { if (status == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Speech-Type", "detected-speech"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Speech-Type", "detected-speech"); if (headers) { switch_event_merge(event, headers); @@ -5075,7 +5075,7 @@ static void *SWITCH_THREAD_FUNC speech_thread(switch_thread_t *thread, void *obj switch_event_add_body(event, "%s", xmlstr); } else if (status == SWITCH_STATUS_MORE_DATA) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Speech-Type", "detected-partial-speech"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Speech-Type", "detected-partial-speech"); if (headers) { switch_event_merge(event, headers); @@ -5083,7 +5083,7 @@ static void *SWITCH_THREAD_FUNC speech_thread(switch_thread_t *thread, void *obj switch_event_add_body(event, "%s", xmlstr); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Speech-Type", "begin-speaking"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Speech-Type", "begin-speaking"); } if (switch_test_flag(sth->ah, SWITCH_ASR_FLAG_FIRE_EVENTS)) { @@ -5098,7 +5098,7 @@ static void *SWITCH_THREAD_FUNC speech_thread(switch_thread_t *thread, void *obj if (switch_core_session_queue_event(sth->session, &event) != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_CHANNEL_LOG(channel), SWITCH_LOG_ERROR, "Event queue failed!\n"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "delivery-failure", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "delivery-failure", "true"); switch_event_fire(&event); } } @@ -5113,7 +5113,7 @@ static void *SWITCH_THREAD_FUNC speech_thread(switch_thread_t *thread, void *obj done: if (switch_event_create(&event, SWITCH_EVENT_DETECTED_SPEECH) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Speech-Type", "closed"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Speech-Type", "closed"); if (switch_test_flag(sth->ah, SWITCH_ASR_FLAG_FIRE_EVENTS)) { switch_event_t *dup; @@ -5126,7 +5126,7 @@ static void *SWITCH_THREAD_FUNC speech_thread(switch_thread_t *thread, void *obj if (switch_core_session_queue_event(sth->session, &event) != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_CHANNEL_LOG(channel), SWITCH_LOG_ERROR, "Event queue failed!\n"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "delivery-failure", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "delivery-failure", "true"); switch_event_fire(&event); } } @@ -5695,10 +5695,10 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_broadcast(const char *uuid, const cha } else { switch_core_session_get_app_flags(app, &app_flags); if (switch_event_create(&event, SWITCH_EVENT_COMMAND) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-command", "execute"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "execute-app-name", app); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "execute-app-arg", path); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, (flags & SMF_PRIORITY) ? "event-lock-pri" : "event-lock", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call-command", "execute"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "execute-app-name", app); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "execute-app-arg", path); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, (flags & SMF_PRIORITY) ? "event-lock-pri" : "event-lock", "true"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "lead-frames", "%d", 5); @@ -5707,7 +5707,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_broadcast(const char *uuid, const cha } if ((flags & SMF_HOLD_BLEG)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "hold-bleg", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "hold-bleg", "true"); } switch_core_session_queue_private_event(other_session, &event, (flags & SMF_PRIORITY)); @@ -5727,17 +5727,17 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_broadcast(const char *uuid, const cha switch_core_session_execute_application(session, app, path); } else { if (switch_event_create(&event, SWITCH_EVENT_COMMAND) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-command", "execute"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "execute-app-name", app); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "execute-app-arg", path); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, (flags & SMF_PRIORITY) ? "event-lock-pri" : "event-lock", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call-command", "execute"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "execute-app-name", app); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "execute-app-arg", path); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, (flags & SMF_PRIORITY) ? "event-lock-pri" : "event-lock", "true"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "lead-frames", "%d", 5); if ((flags & SMF_LOOP)) { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "loops", "%d", -1); } if ((flags & SMF_HOLD_BLEG)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "hold-bleg", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "hold-bleg", "true"); } switch_core_session_queue_private_event(session, &event, (flags & SMF_PRIORITY)); @@ -5750,10 +5750,10 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_broadcast(const char *uuid, const cha if (cause) { if (switch_event_create(&event, SWITCH_EVENT_COMMAND) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-command", "execute"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "execute-app-name", "hangup"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "execute-app-arg", cause); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, (flags & SMF_PRIORITY) ? "event-lock-pri" : "event-lock", "true"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "call-command", "execute"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "execute-app-name", "hangup"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "execute-app-arg", cause); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, (flags & SMF_PRIORITY) ? "event-lock-pri" : "event-lock", "true"); switch_core_session_queue_private_event(session, &event, (flags & SMF_PRIORITY)); } } diff --git a/src/switch_ivr_bridge.c b/src/switch_ivr_bridge.c index f91fc2c69f..14b6fc1f5b 100644 --- a/src/switch_ivr_bridge.c +++ b/src/switch_ivr_bridge.c @@ -1235,15 +1235,15 @@ static switch_status_t uuid_bridge_on_soft_execute(switch_core_session_t *sessio /* fire events that will change the data table from "show channels" */ if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_EXECUTE) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application", "uuid_bridge"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application-Data", switch_core_session_get_uuid(other_session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Application", "uuid_bridge"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Application-Data", switch_core_session_get_uuid(other_session)); switch_event_fire(&event); } if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_EXECUTE) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(other_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application", "uuid_bridge"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application-Data", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Application", "uuid_bridge"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Application-Data", switch_core_session_get_uuid(session)); switch_event_fire(&event); } @@ -1377,8 +1377,8 @@ static switch_status_t signal_bridge_on_hibernate(switch_core_session_t *session if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_BRIDGE) == SWITCH_STATUS_SUCCESS) { switch_core_session_t *other_session; - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridge-A-Unique-ID", switch_core_session_get_uuid(session)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridge-B-Unique-ID", msg.string_arg); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Bridge-A-Unique-ID", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Bridge-B-Unique-ID", msg.string_arg); switch_channel_event_set_data(channel, event); if ((other_session = switch_core_session_locate(msg.string_arg))) { switch_channel_t *other_channel = switch_core_session_get_channel(other_session); @@ -1479,8 +1479,8 @@ static switch_status_t signal_bridge_on_hangup(switch_core_session_t *session) if (switch_channel_test_flag(channel, CF_BRIDGE_ORIGINATOR)) { switch_channel_clear_flag_recursive(channel, CF_BRIDGE_ORIGINATOR); if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_UNBRIDGE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridge-A-Unique-ID", switch_core_session_get_uuid(session)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridge-B-Unique-ID", uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Bridge-A-Unique-ID", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Bridge-B-Unique-ID", uuid); switch_event_add_presence_data_cols(other_channel, event, "Bridge-B-PD-"); switch_channel_event_set_data(channel, event); switch_event_fire(&event); @@ -1492,8 +1492,8 @@ static switch_status_t signal_bridge_on_hangup(switch_core_session_t *session) if (switch_channel_test_flag(channel, CF_BRIDGE_ORIGINATOR)) { switch_channel_clear_flag_recursive(channel, CF_BRIDGE_ORIGINATOR); if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_UNBRIDGE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridge-A-Unique-ID", switch_core_session_get_uuid(session)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridge-B-Unique-ID", uuid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Bridge-A-Unique-ID", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Bridge-B-Unique-ID", uuid); switch_channel_event_set_data(channel, event); switch_event_fire(&event); } @@ -1569,15 +1569,15 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_signal_bridge(switch_core_session_t * /* fire events that will change the data table from "show channels" */ if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_EXECUTE) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(caller_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application", "signal_bridge"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application-Data", switch_core_session_get_uuid(peer_session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Application", "signal_bridge"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Application-Data", switch_core_session_get_uuid(peer_session)); switch_event_fire(&event); } if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_EXECUTE) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(peer_channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application", "signal_bridge"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application-Data", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Application", "signal_bridge"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Application-Data", switch_core_session_get_uuid(session)); switch_event_fire(&event); } @@ -1687,8 +1687,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_multi_threaded_bridge(switch_core_ses switch_channel_set_bridge_time(peer_channel); if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_BRIDGE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridge-A-Unique-ID", switch_core_session_get_uuid(session)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridge-B-Unique-ID", switch_core_session_get_uuid(peer_session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Bridge-A-Unique-ID", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Bridge-B-Unique-ID", switch_core_session_get_uuid(peer_session)); switch_channel_event_set_data(caller_channel, event); switch_event_add_presence_data_cols(peer_channel, event, "Bridge-B-PD-"); switch_event_fire(&event); @@ -1877,8 +1877,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_multi_threaded_bridge(switch_core_ses switch_channel_set_variable(peer_channel, "call_uuid", switch_core_session_get_uuid(peer_session)); if (br && switch_event_create(&event, SWITCH_EVENT_CHANNEL_UNBRIDGE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridge-A-Unique-ID", switch_core_session_get_uuid(session)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridge-B-Unique-ID", switch_core_session_get_uuid(peer_session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Bridge-A-Unique-ID", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Bridge-B-Unique-ID", switch_core_session_get_uuid(peer_session)); switch_channel_event_set_data(caller_channel, event); switch_event_add_presence_data_cols(peer_channel, event, "Bridge-B-PD-"); switch_event_fire(&event); diff --git a/src/switch_ivr_menu.c b/src/switch_ivr_menu.c index 255c9a4f12..d824c55b54 100644 --- a/src/switch_ivr_menu.c +++ b/src/switch_ivr_menu.c @@ -83,7 +83,7 @@ static void ivr_send_event(switch_core_session_t *session, char *event_type, swi switch_channel_t *channel = switch_core_session_get_channel(session); switch_event_t *event = NULL; if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, event_type) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Menu-Name", menu->name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Menu-Name", menu->name); switch_channel_event_set_data(channel, event); switch_event_fire(&event); } diff --git a/src/switch_ivr_originate.c b/src/switch_ivr_originate.c index 31b326bc1f..d5042046ce 100644 --- a/src/switch_ivr_originate.c +++ b/src/switch_ivr_originate.c @@ -1608,7 +1608,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_enterprise_originate(switch_core_sess } if (session) { - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "ent_originate_aleg_uuid", switch_core_session_get_uuid(session)); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "ent_originate_aleg_uuid", switch_core_session_get_uuid(session)); } if (channel) { @@ -1617,19 +1617,19 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_enterprise_originate(switch_core_sess switch_channel_process_export(channel, NULL, var_event, SWITCH_EXPORT_VARS_VARIABLE); if ((tmp_var = switch_channel_get_variable(channel, "effective_ani"))) { - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "origination_ani", tmp_var); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "origination_ani", tmp_var); } if ((tmp_var = switch_channel_get_variable(channel, "effective_aniii"))) { - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "origination_aniii", tmp_var); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "origination_aniii", tmp_var); } if ((tmp_var = switch_channel_get_variable(channel, "effective_caller_id_name"))) { - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "origination_caller_id_name", tmp_var); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "origination_caller_id_name", tmp_var); } if ((tmp_var = switch_channel_get_variable(channel, "effective_caller_id_number"))) { - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "origination_caller_id_number", tmp_var); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "origination_caller_id_number", tmp_var); } } @@ -1661,11 +1661,11 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_enterprise_originate(switch_core_sess if (ovars && ovars != var_event) { for (hi = ovars->headers; hi; hi = hi->next) { - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, hi->name, hi->value); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, hi->name, hi->value); } } - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "ignore_early_media", "true"); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "ignore_early_media", "true"); if (data) { if (!(x_argc = switch_separate_string_string(data, SWITCH_ENT_ORIGINATE_DELIM, x_argv, MAX_PEERS))) { @@ -2395,7 +2395,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess } if (ok && !switch_event_get_header(var_event, hi->name)) { - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, (char *) hi->name, (char *) hi->value); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, (char *) hi->name, (char *) hi->value); } } switch_channel_variable_last(caller_channel); @@ -2405,7 +2405,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess for (; hi; hi = switch_core_hash_next(&hi)) { switch_core_hash_this(hi, &vvar, NULL, &vval); if (vvar && vval) { - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, (void *) vvar, (char *) vval); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, (void *) vvar, (char *) vval); } } switch_channel_variable_last(caller_channel); @@ -2621,7 +2621,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess if (cid_name_override) { if (!cid_tmp) { - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "origination_caller_id_name", cid_name_override); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "origination_caller_id_name", cid_name_override); } } else { cid_name_override = switch_event_get_header(var_event, "origination_caller_id_name"); @@ -2633,7 +2633,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess if (cid_num_override) { if (!cid_tmp) { - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "origination_caller_id_number", cid_num_override); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "origination_caller_id_number", cid_num_override); } } else { cid_num_override = switch_event_get_header(var_event, "origination_caller_id_number"); @@ -3018,14 +3018,14 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess } } - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "originate_early_media", oglobals.early_ok ? "true" : "false"); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "originate_early_media", oglobals.early_ok ? "true" : "false"); if (caller_channel && switch_true(switch_channel_get_variable(caller_channel, "push_channel_name"))) { char *new_name = switch_core_session_sprintf(session, "%s__B", switch_channel_get_name(caller_channel)); - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "origination_channel_name", new_name); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "origination_channel_name", new_name); new_name = switch_core_session_sprintf(session, "_%s", switch_channel_get_name(caller_channel)); - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "sip_h_X-FS-Channel-Name", new_name); + switch_event_add_header_string_dup(var_event, SWITCH_STACK_BOTTOM, "sip_h_X-FS-Channel-Name", new_name); } @@ -4331,7 +4331,7 @@ SWITCH_DECLARE(void) switch_dial_handle_list_add_global_var(switch_dial_handle_l switch_event_create_plain(&hl->global_vars, SWITCH_EVENT_CHANNEL_DATA); } - switch_event_add_header_string(hl->global_vars, SWITCH_STACK_BOTTOM, var, val); + switch_event_add_header_string_dup(hl->global_vars, SWITCH_STACK_BOTTOM, var, val); } SWITCH_DECLARE(void) switch_dial_handle_list_add_global_var_printf(switch_dial_handle_list_t *hl, const char *var, const char *fmt, ...) @@ -4490,7 +4490,7 @@ SWITCH_DECLARE(void) switch_dial_handle_add_global_var(switch_dial_handle_t *han switch_event_create_plain(&handle->global_vars, SWITCH_EVENT_CHANNEL_DATA); } - switch_event_add_header_string(handle->global_vars, SWITCH_STACK_BOTTOM, var, val); + switch_event_add_header_string_dup(handle->global_vars, SWITCH_STACK_BOTTOM, var, val); } SWITCH_DECLARE(void) switch_dial_handle_add_global_var_printf(switch_dial_handle_t *handle, const char *var, const char *fmt, ...) @@ -4519,7 +4519,7 @@ SWITCH_DECLARE(switch_status_t) switch_dial_handle_add_leg_var(switch_dial_leg_t switch_event_create_plain(&leg->leg_vars, SWITCH_EVENT_CHANNEL_DATA); } - switch_event_add_header_string(leg->leg_vars, SWITCH_STACK_BOTTOM, var, val); + switch_event_add_header_string_dup(leg->leg_vars, SWITCH_STACK_BOTTOM, var, val); return SWITCH_STATUS_SUCCESS; diff --git a/src/switch_ivr_play_say.c b/src/switch_ivr_play_say.c index 25486eee7f..7db16b7353 100644 --- a/src/switch_ivr_play_say.c +++ b/src/switch_ivr_play_say.c @@ -75,12 +75,12 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_phrase_macro_event(switch_core_sessio switch_event_create(&hint_data, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(hint_data); - switch_event_add_header_string(hint_data, SWITCH_STACK_BOTTOM, "macro_name", macro_name); - switch_event_add_header_string(hint_data, SWITCH_STACK_BOTTOM, "lang", chan_lang); + switch_event_add_header_string_dup(hint_data, SWITCH_STACK_BOTTOM, "macro_name", macro_name); + switch_event_add_header_string_dup(hint_data, SWITCH_STACK_BOTTOM, "lang", chan_lang); if (data) { - switch_event_add_header_string(hint_data, SWITCH_STACK_BOTTOM, "data", data); + switch_event_add_header_string_dup(hint_data, SWITCH_STACK_BOTTOM, "data", data); if (event) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "data", data); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "data", data); } } else { data = ""; @@ -376,7 +376,7 @@ static void merge_recording_variables(switch_event_t *vars, switch_event_t *even switch_assert(vvar && vval); switch_snprintf(buf, sizeof(buf), "Recording-Variable-%s", vvar); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, buf, vval); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, buf, vval); } } } @@ -766,7 +766,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_record_file_event(switch_core_session if (switch_event_create(&event, SWITCH_EVENT_RECORD_START) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Record-File-Path", file); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Record-File-Path", file); merge_recording_variables(vars, event); switch_event_fire(&event); } @@ -1029,7 +1029,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_record_file_event(switch_core_session if (switch_event_create(&event, SWITCH_EVENT_RECORD_STOP) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Record-File-Path", file); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Record-File-Path", file); merge_recording_variables(vars, event); switch_event_fire(&event); } @@ -1651,12 +1651,12 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess if (switch_event_create(&event, SWITCH_EVENT_PLAYBACK_START) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); if (!strncasecmp(file, "local_stream:", 13)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Playback-File-Type", "local_stream"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Playback-File-Type", "local_stream"); } if (!strncasecmp(file, "tone_stream:", 12)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Playback-File-Type", "tone_stream"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Playback-File-Type", "tone_stream"); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Playback-File-Path", file); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Playback-File-Path", file); if (fh->params) { switch_event_merge(event, fh->params); } @@ -2025,16 +2025,16 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess if (switch_event_create(&event, SWITCH_EVENT_PLAYBACK_STOP) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); if (!strncasecmp(file, "local_stream:", 13)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Playback-File-Type", "local_stream"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Playback-File-Type", "local_stream"); } if (!strncasecmp(file, "tone_stream:", 12)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Playback-File-Type", "tone_stream"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Playback-File-Type", "tone_stream"); } - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Playback-File-Path", file); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Playback-File-Path", file); if (status == SWITCH_STATUS_BREAK) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Playback-Status", "break"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Playback-Status", "break"); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Playback-Status", "done"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Playback-Status", "done"); } if (fh->params) { switch_event_merge(event, fh->params); diff --git a/src/switch_limit.c b/src/switch_limit.c index e64008887a..81a6409776 100644 --- a/src/switch_limit.c +++ b/src/switch_limit.c @@ -62,9 +62,9 @@ SWITCH_DECLARE(void) switch_limit_fire_event(const char *backend, const char *re switch_event_t *event; if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, LIMIT_EVENT_USAGE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "backend", backend); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "realm", realm); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "backend", backend); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "realm", realm); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", key); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "usage", "%d", usage); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "rate", "%d", rate); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "max", "%d", max); diff --git a/src/switch_loadable_module.c b/src/switch_loadable_module.c index cf9c8f368e..161f428441 100644 --- a/src/switch_loadable_module.c +++ b/src/switch_loadable_module.c @@ -172,10 +172,10 @@ static switch_status_t switch_loadable_module_process(char *key, switch_loadable switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Adding Endpoint '%s'\n", ptr->interface_name); switch_core_hash_insert(loadable_modules.endpoint_hash, ptr->interface_name, (const void *) ptr); if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "endpoint"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", new_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "endpoint"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", new_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); if (!event_hash) { switch_event_fire(&event); @@ -243,11 +243,11 @@ static switch_status_t switch_loadable_module_process(char *key, switch_loadable } if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "codec"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", new_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "module", new_module->module_interface->module_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "codec"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", new_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "module", new_module->module_interface->module_name); if (!event_hash) { switch_event_fire(&event); @@ -272,10 +272,10 @@ static switch_status_t switch_loadable_module_process(char *key, switch_loadable } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Adding Dialplan '%s'\n", ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "dialplan"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", new_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "dialplan"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", new_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); if (!event_hash) { switch_event_fire(&event); @@ -300,10 +300,10 @@ static switch_status_t switch_loadable_module_process(char *key, switch_loadable } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Adding Timer '%s'\n", ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "timer"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", new_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "timer"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", new_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); if (!event_hash) { switch_event_fire(&event); @@ -328,12 +328,12 @@ static switch_status_t switch_loadable_module_process(char *key, switch_loadable } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Adding Application '%s'\n", ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "application"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "description", switch_str_nil(ptr->short_desc)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "syntax", switch_str_nil(ptr->syntax)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", new_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "application"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "description", switch_str_nil(ptr->short_desc)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "syntax", switch_str_nil(ptr->syntax)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", new_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); if (!event_hash) { switch_event_fire(&event); @@ -358,12 +358,12 @@ static switch_status_t switch_loadable_module_process(char *key, switch_loadable } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Adding Chat Application '%s'\n", ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "application"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "description", switch_str_nil(ptr->short_desc)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "syntax", switch_str_nil(ptr->syntax)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", new_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "application"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "description", switch_str_nil(ptr->short_desc)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "syntax", switch_str_nil(ptr->syntax)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", new_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); if (!event_hash) { switch_event_fire(&event); @@ -388,12 +388,12 @@ static switch_status_t switch_loadable_module_process(char *key, switch_loadable } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Adding API Function '%s'\n", ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "api"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "description", switch_str_nil(ptr->desc)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "syntax", switch_str_nil(ptr->syntax)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", new_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "api"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "description", switch_str_nil(ptr->desc)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "syntax", switch_str_nil(ptr->syntax)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", new_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); if (!event_hash) { switch_event_fire(&event); @@ -418,12 +418,12 @@ static switch_status_t switch_loadable_module_process(char *key, switch_loadable } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Adding JSON API Function '%s'\n", ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "json_api"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "description", switch_str_nil(ptr->desc)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "syntax", switch_str_nil(ptr->syntax)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", new_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "json_api"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "description", switch_str_nil(ptr->desc)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "syntax", switch_str_nil(ptr->syntax)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", new_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); if (!event_hash) { switch_event_fire(&event); @@ -454,11 +454,11 @@ static switch_status_t switch_loadable_module_process(char *key, switch_loadable for (i = 0; ptr->extens[i]; i++) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Adding File Format '%s'\n", ptr->extens[i]); if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "file"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->extens[i]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", new_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "module", new_module->module_interface->module_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "file"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->extens[i]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", new_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "module", new_module->module_interface->module_name); if (!event_hash) { switch_event_fire(&event); @@ -499,11 +499,11 @@ static switch_status_t switch_loadable_module_process(char *key, switch_loadable for (i = 0; ptr->prefixes[i]; i++) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Adding dsn prefix '%s'\n", ptr->prefixes[i]); if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "database"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->prefixes[i]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", new_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "module", new_module->module_interface->module_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "database"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->prefixes[i]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", new_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "module", new_module->module_interface->module_name); if (!event_hash) { switch_event_fire(&event); @@ -536,10 +536,10 @@ static switch_status_t switch_loadable_module_process(char *key, switch_loadable } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Adding Speech interface '%s'\n", ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "speech"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", new_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "speech"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", new_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); if (!event_hash) { switch_event_fire(&event); @@ -564,10 +564,10 @@ static switch_status_t switch_loadable_module_process(char *key, switch_loadable } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Adding ASR interface '%s'\n", ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "asr"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", new_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "asr"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", new_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); if (!event_hash) { switch_event_fire(&event); @@ -592,10 +592,10 @@ static switch_status_t switch_loadable_module_process(char *key, switch_loadable } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Adding Directory interface '%s'\n", ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "directory"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", new_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "directory"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", new_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); if (!event_hash) { switch_event_fire(&event); @@ -620,10 +620,10 @@ static switch_status_t switch_loadable_module_process(char *key, switch_loadable } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Adding Chat interface '%s'\n", ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "chat"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", new_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "chat"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", new_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); if (!event_hash) { switch_event_fire(&event); @@ -648,10 +648,10 @@ static switch_status_t switch_loadable_module_process(char *key, switch_loadable } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Adding Say interface '%s'\n", ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "say"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", new_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "say"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", new_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); if (!event_hash) { switch_event_fire(&event); @@ -682,10 +682,10 @@ static switch_status_t switch_loadable_module_process(char *key, switch_loadable "Adding Management interface '%s' OID[%s.%s]\n", key, FREESWITCH_OID_PREFIX, ptr->relative_oid); switch_core_hash_insert(loadable_modules.management_hash, ptr->relative_oid, (const void *) ptr); if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "management"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->relative_oid); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", new_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "management"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->relative_oid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", new_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); if (!event_hash) { switch_event_fire(&event); @@ -716,10 +716,10 @@ static switch_status_t switch_loadable_module_process(char *key, switch_loadable "Adding Limit interface '%s'\n", ptr->interface_name); switch_core_hash_insert(loadable_modules.limit_hash, ptr->interface_name, (const void *) ptr); if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "limit"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", new_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "limit"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", new_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); if (!event_hash) { switch_event_fire(&event); @@ -738,10 +738,10 @@ static switch_status_t switch_loadable_module_process(char *key, switch_loadable if (!added) { if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "generic"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", new_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", new_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "generic"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", new_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", new_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", new_module->filename); if (!event_hash) { switch_event_fire(&event); @@ -816,7 +816,7 @@ static switch_status_t do_chat_send(switch_event_t *message_event) if (!(proto = switch_event_get_header(message_event, "proto"))) { proto = "global"; - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "proto", proto); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "proto", proto); } replying = switch_event_get_header(message_event, "replying"); @@ -871,12 +871,12 @@ static switch_status_t do_chat_send(switch_event_t *message_event) if ( switch_true(switch_event_get_header(message_event, "blocking")) ) { if (status == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(dup, SWITCH_STACK_BOTTOM, "Delivery-Failure", "false"); + switch_event_add_header_string_dup(dup, SWITCH_STACK_BOTTOM, "Delivery-Failure", "false"); } else { - switch_event_add_header_string(dup, SWITCH_STACK_BOTTOM, "Delivery-Failure", "true"); + switch_event_add_header_string_dup(dup, SWITCH_STACK_BOTTOM, "Delivery-Failure", "true"); } } else { - switch_event_add_header_string(dup, SWITCH_STACK_BOTTOM, "Nonblocking-Delivery", "true"); + switch_event_add_header_string_dup(dup, SWITCH_STACK_BOTTOM, "Nonblocking-Delivery", "true"); } switch_event_fire(&dup); @@ -1035,15 +1035,15 @@ SWITCH_DECLARE(switch_status_t) switch_core_chat_send_args(const char *dest_prot switch_status_t status; if (switch_event_create(&message_event, SWITCH_EVENT_MESSAGE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "proto", proto); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "from", from); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "to", to); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "subject", subject); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "type", type); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "hint", hint); - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "skip_global_process", "true"); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "proto", proto); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "from", from); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "to", to); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "subject", subject); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "type", type); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "hint", hint); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "skip_global_process", "true"); if (blocking) { - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "blocking", "true"); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "blocking", "true"); } if (body) { @@ -1054,7 +1054,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_chat_send_args(const char *dest_prot } if (dest_proto) { - switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "dest_proto", dest_proto); + switch_event_add_header_string_dup(message_event, SWITCH_STACK_BOTTOM, "dest_proto", dest_proto); } @@ -1077,7 +1077,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_chat_send(const char *dest_proto, sw switch_event_dup(&dup, message_event); if (dest_proto) { - switch_event_add_header_string(dup, SWITCH_STACK_BOTTOM, "dest_proto", dest_proto); + switch_event_add_header_string_dup(dup, SWITCH_STACK_BOTTOM, "dest_proto", dest_proto); } chat_queue_message(&dup); @@ -1089,7 +1089,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_chat_deliver(const char *dest_proto, { if (dest_proto) { - switch_event_add_header_string(*message_event, SWITCH_STACK_BOTTOM, "dest_proto", dest_proto); + switch_event_add_header_string_dup(*message_event, SWITCH_STACK_BOTTOM, "dest_proto", dest_proto); } chat_queue_message(message_event); @@ -1122,8 +1122,8 @@ static switch_status_t switch_loadable_module_unprocess(switch_loadable_module_t switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Deleting Endpoint '%s'\n", ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_UNLOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "endpoint"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "endpoint"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); switch_event_fire(&event); removed++; } @@ -1176,9 +1176,9 @@ static switch_status_t switch_loadable_module_unprocess(switch_loadable_module_t } } if (switch_event_create(&event, SWITCH_EVENT_MODULE_UNLOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "codec"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "module", old_module->module_interface->module_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "codec"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "module", old_module->module_interface->module_name); switch_event_fire(&event); removed++; } @@ -1194,8 +1194,8 @@ static switch_status_t switch_loadable_module_unprocess(switch_loadable_module_t if (ptr->interface_name) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Deleting Dialplan '%s'\n", ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_UNLOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "dialplan"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "dialplan"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); switch_event_fire(&event); removed++; } @@ -1211,8 +1211,8 @@ static switch_status_t switch_loadable_module_unprocess(switch_loadable_module_t if (ptr->interface_name) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Deleting Timer '%s'\n", ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_UNLOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "timer"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "timer"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); switch_event_fire(&event); removed++; } @@ -1236,10 +1236,10 @@ static switch_status_t switch_loadable_module_unprocess(switch_loadable_module_t } if (switch_event_create(&event, SWITCH_EVENT_MODULE_UNLOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "application"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "description", switch_str_nil(ptr->short_desc)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "syntax", switch_str_nil(ptr->syntax)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "application"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "description", switch_str_nil(ptr->short_desc)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "syntax", switch_str_nil(ptr->syntax)); switch_event_fire(&event); removed++; } @@ -1263,10 +1263,10 @@ static switch_status_t switch_loadable_module_unprocess(switch_loadable_module_t } if (switch_event_create(&event, SWITCH_EVENT_MODULE_UNLOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "application"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "description", switch_str_nil(ptr->short_desc)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "syntax", switch_str_nil(ptr->syntax)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "application"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "description", switch_str_nil(ptr->short_desc)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "syntax", switch_str_nil(ptr->syntax)); switch_event_fire(&event); removed++; } @@ -1293,12 +1293,12 @@ static switch_status_t switch_loadable_module_unprocess(switch_loadable_module_t if (switch_event_create(&event, SWITCH_EVENT_MODULE_UNLOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "api"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "description", switch_str_nil(ptr->desc)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "syntax", switch_str_nil(ptr->syntax)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "key", old_module->key); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "filename", old_module->filename); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "api"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "description", switch_str_nil(ptr->desc)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "syntax", switch_str_nil(ptr->syntax)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "key", old_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "filename", old_module->filename); switch_event_fire(&event); removed++; } @@ -1325,10 +1325,10 @@ static switch_status_t switch_loadable_module_unprocess(switch_loadable_module_t if (switch_event_create(&event, SWITCH_EVENT_MODULE_UNLOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "json_api"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "description", switch_str_nil(ptr->desc)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "syntax", switch_str_nil(ptr->syntax)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "json_api"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "description", switch_str_nil(ptr->desc)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "syntax", switch_str_nil(ptr->syntax)); switch_event_fire(&event); removed++; } @@ -1357,9 +1357,9 @@ static switch_status_t switch_loadable_module_unprocess(switch_loadable_module_t for (i = 0; ptr->extens[i]; i++) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Deleting File Format '%s'\n", ptr->extens[i]); if (switch_event_create(&event, SWITCH_EVENT_MODULE_UNLOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "file"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->extens[i]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "module", old_module->module_interface->module_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "file"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->extens[i]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "module", old_module->module_interface->module_name); switch_event_fire(&event); removed++; } @@ -1409,9 +1409,9 @@ static switch_status_t switch_loadable_module_unprocess(switch_loadable_module_t for (i = 0; ptr->prefixes[i]; i++) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Deleting dsn prefix '%s'\n", ptr->prefixes[i]); if (switch_event_create(&event, SWITCH_EVENT_MODULE_UNLOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "database"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->prefixes[i]); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "module", old_module->module_interface->module_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "database"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->prefixes[i]); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "module", old_module->module_interface->module_name); switch_event_fire(&event); removed++; } @@ -1462,8 +1462,8 @@ static switch_status_t switch_loadable_module_unprocess(switch_loadable_module_t switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Deleting Speech interface '%s'\n", ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_UNLOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "speech"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "speech"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); switch_event_fire(&event); removed++; } @@ -1489,8 +1489,8 @@ static switch_status_t switch_loadable_module_unprocess(switch_loadable_module_t switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Deleting Asr interface '%s'\n", ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_UNLOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "asr"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "asr"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); switch_event_fire(&event); removed++; } @@ -1516,8 +1516,8 @@ static switch_status_t switch_loadable_module_unprocess(switch_loadable_module_t switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Deleting Directory interface '%s'\n", ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_UNLOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "directory"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "directory"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); switch_event_fire(&event); removed++; } @@ -1543,8 +1543,8 @@ static switch_status_t switch_loadable_module_unprocess(switch_loadable_module_t switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Deleting Chat interface '%s'\n", ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_UNLOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "chat"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "chat"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); switch_event_fire(&event); removed++; } @@ -1568,8 +1568,8 @@ static switch_status_t switch_loadable_module_unprocess(switch_loadable_module_t } switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Deleting Say interface '%s'\n", ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_UNLOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "say"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "say"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); switch_event_fire(&event); removed++; } @@ -1587,8 +1587,8 @@ static switch_status_t switch_loadable_module_unprocess(switch_loadable_module_t "Deleting Management interface '%s' OID[%s.%s]\n", old_module->key, FREESWITCH_OID_PREFIX, ptr->relative_oid); switch_core_hash_delete(loadable_modules.management_hash, ptr->relative_oid); if (switch_event_create(&event, SWITCH_EVENT_MODULE_UNLOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "management"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->relative_oid); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "management"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->relative_oid); switch_event_fire(&event); removed++; } @@ -1605,8 +1605,8 @@ static switch_status_t switch_loadable_module_unprocess(switch_loadable_module_t "Deleting Limit interface '%s'\n", ptr->interface_name); switch_core_hash_delete(loadable_modules.limit_hash, ptr->interface_name); if (switch_event_create(&event, SWITCH_EVENT_MODULE_UNLOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "limit"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "limit"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", ptr->interface_name); switch_event_fire(&event); removed++; } @@ -1616,8 +1616,8 @@ static switch_status_t switch_loadable_module_unprocess(switch_loadable_module_t if (!removed) { if (switch_event_create(&event, SWITCH_EVENT_MODULE_UNLOAD) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "type", "generic"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "name", old_module->key); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "type", "generic"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "name", old_module->key); switch_event_fire(&event); removed++; } @@ -2951,10 +2951,10 @@ SWITCH_DECLARE(switch_status_t) switch_api_execute(const char *cmd, const char * if (stream->param_event) { if (cmd_used && *cmd_used) { - switch_event_add_header_string(stream->param_event, SWITCH_STACK_BOTTOM, "API-Command", cmd_used); + switch_event_add_header_string_dup(stream->param_event, SWITCH_STACK_BOTTOM, "API-Command", cmd_used); } if (arg_used && *arg_used) { - switch_event_add_header_string(stream->param_event, SWITCH_STACK_BOTTOM, "API-Command-Argument", arg_used); + switch_event_add_header_string_dup(stream->param_event, SWITCH_STACK_BOTTOM, "API-Command-Argument", arg_used); } } diff --git a/src/switch_log.c b/src/switch_log.c index 74a5713635..db82710690 100644 --- a/src/switch_log.c +++ b/src/switch_log.c @@ -193,7 +193,7 @@ SWITCH_DECLARE(cJSON *) switch_log_node_to_json(const switch_log_node_t *node, i if (!log_fields) { switch_event_create_plain(&log_fields, SWITCH_EVENT_CHANNEL_DATA); } - switch_event_add_header_string(log_fields, SWITCH_STACK_BOTTOM, hp->name, val); + switch_event_add_header_string_dup(log_fields, SWITCH_STACK_BOTTOM, hp->name, val); } } } @@ -650,13 +650,13 @@ SWITCH_DECLARE(void) switch_log_meta_vprintf(switch_text_channel_t channel, cons if (channel == SWITCH_CHANNEL_ID_EVENT) { switch_event_t *event; if (switch_event_running() == SWITCH_STATUS_SUCCESS && switch_event_create(&event, SWITCH_EVENT_LOG) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Log-Data", data); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Log-File", filep); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Log-Function", funcp); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Log-Data", data); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Log-File", filep); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Log-Function", funcp); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Log-Line", "%d", line); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Log-Level", "%d", (int) level); if (!zstr(userdata)) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "User-Data", userdata); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "User-Data", userdata); } switch_event_fire(&event); data = NULL; diff --git a/src/switch_msrp.c b/src/switch_msrp.c index 1f5db7ac20..681feadae1 100644 --- a/src/switch_msrp.c +++ b/src/switch_msrp.c @@ -664,7 +664,7 @@ SWITCH_DECLARE(switch_status_t) switch_msrp_msg_add_header(switch_msrp_msg_t *ms return SWITCH_STATUS_MEMERR; } - status = switch_event_add_header_string(msrp_msg->headers, SWITCH_STACK_BOTTOM, switch_msrp_msg_header_name(htype), data); + status = switch_event_add_header_string_dup(msrp_msg->headers, SWITCH_STACK_BOTTOM, switch_msrp_msg_header_name(htype), data); switch (htype) { case MSRP_H_TRASACTION_ID: diff --git a/src/switch_nat.c b/src/switch_nat.c index f6b9bc553b..90286ebe75 100644 --- a/src/switch_nat.c +++ b/src/switch_nat.c @@ -330,9 +330,9 @@ static void *SWITCH_THREAD_FUNC switch_nat_multicast_runtime(switch_thread_t * t do_repub = SWITCH_TRUE; switch_event_create(&event, SWITCH_EVENT_TRAP); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "condition", "network-external-address-change"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "network-external-address-previous-v4", nat_globals.pub_addr); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "network-external-address-change-v4", newip); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "condition", "network-external-address-change"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "network-external-address-previous-v4", nat_globals.pub_addr); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "network-external-address-change-v4", newip); switch_event_fire(&event); switch_set_string(nat_globals.pub_addr, newip); @@ -606,10 +606,10 @@ SWITCH_DECLARE(switch_status_t) switch_nat_add_mapping_internal(switch_port_t po if (publish && status == SWITCH_STATUS_SUCCESS) { switch_event_create(&event, SWITCH_EVENT_NAT); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "op", "add"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "op", "add"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "port", "%d", port); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "proto", "%d", proto); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "sticky", (sticky ? "true" : "false")); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "sticky", (sticky ? "true" : "false")); switch_event_fire(&event); } @@ -640,7 +640,7 @@ SWITCH_DECLARE(switch_status_t) switch_nat_del_mapping(switch_port_t port, switc if (status == SWITCH_STATUS_SUCCESS) { switch_event_create(&event, SWITCH_EVENT_NAT); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "op", "del"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "op", "del"); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "port", "%d", port); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "proto", "%d", proto); switch_event_fire(&event); diff --git a/src/switch_regex.c b/src/switch_regex.c index 21e54b29fe..ad3c37f49b 100644 --- a/src/switch_regex.c +++ b/src/switch_regex.c @@ -314,7 +314,7 @@ SWITCH_DECLARE_NONSTD(void) switch_regex_set_event_header_callback(const char *v { switch_event_t *event = (switch_event_t *) user_data; - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, var, val); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, var, val); } diff --git a/src/switch_rtp.c b/src/switch_rtp.c index e8a3d30da1..8bf599d2c7 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -1912,40 +1912,40 @@ static void switch_send_rtcp_event(switch_rtp_t *rtp_session ,struct switch_rtcp uint32_t tmpLost; char *uuid = switch_core_session_get_uuid(rtp_session->session); if (uuid) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(rtp_session->session)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(rtp_session->session)); } snprintf(value, sizeof(value), "%.8x", rtp_session->stats.rtcp.ssrc); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "SSRC", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "SSRC", value); snprintf(value, sizeof(value), "%u", ntohl(sr->sender_info.ntp_msw)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "NTP-Most-Significant-Word", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "NTP-Most-Significant-Word", value); snprintf(value, sizeof(value), "%u", ntohl(sr->sender_info.ntp_lsw)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "NTP-Least-Significant-Word", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "NTP-Least-Significant-Word", value); snprintf(value, sizeof(value), "%u", ntohl(sr->sender_info.ts)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "RTP-Timestamp", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "RTP-Timestamp", value); snprintf(value, sizeof(value), "%u", ntohl(sr->sender_info.pc)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Sender-Packet-Count", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Sender-Packet-Count", value); snprintf(value, sizeof(value), "%u", ntohl(sr->sender_info.oc)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Octect-Packet-Count", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Octect-Packet-Count", value); snprintf(value, sizeof(value), "%u", ntohl(sr->sender_info.ts)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Last-RTP-Timestamp", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Last-RTP-Timestamp", value); snprintf(value, sizeof(value), "%" SWITCH_TIME_T_FMT, switch_time_now()); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Capture-Time", value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Capture-Time", value); /* Add sources info */ snprintf(header, sizeof(header), "Source-SSRC"); snprintf(value, sizeof(value), "%.8x", rtp_session->stats.rtcp.peer_ssrc); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header, value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header, value); snprintf(header, sizeof(header), "Source-Fraction"); snprintf(value, sizeof(value), "%u", (uint8_t)rtcp_report_block->fraction); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header, value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header, value); snprintf(header, sizeof(header), "Source-Lost"); #if SWITCH_BYTE_ORDER == __BIG_ENDIAN tmpLost = rtcp_report_block->lost; /* signed 24bit will extended signess to int32_t automatically */ @@ -1954,19 +1954,19 @@ static void switch_send_rtcp_event(switch_rtp_t *rtp_session ,struct switch_rtcp tmpLost = tmpLost | ((tmpLost & 0x00800000) ? 0xff000000 : 0x00000000); /* ...and signess compensation */ #endif snprintf(value, sizeof(value), "%u", tmpLost); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header, value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header, value); snprintf(header, sizeof(header), "Source-Highest-Sequence-Number-Received"); snprintf(value, sizeof(value), "%u", ntohl(rtcp_report_block->highest_sequence_number_received)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header, value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header, value); snprintf(header, sizeof(header), "Source-Jitter"); snprintf(value, sizeof(value), "%u", ntohl(rtcp_report_block->jitter)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header, value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header, value); snprintf(header, sizeof(header), "Source-LSR"); snprintf(value, sizeof(value), "%u", ntohl(rtcp_report_block->lsr)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header, value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header, value); snprintf(header, sizeof(header), "Source-DLSR"); snprintf(value, sizeof(value), "%u", ntohl(rtcp_report_block->dlsr)); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header, value); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, header, value); switch_event_fire(&event); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(rtp_session->session), SWITCH_LOG_DEBUG10, "Dispatched RTCP SEND event\n"); @@ -4200,7 +4200,7 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_add_crypto_key(switch_rtp_t *rtp_sess } else { switch_event_add_header(fsevent, SWITCH_STACK_BOTTOM, "secure_type", "srtp:sdes:%s", switch_channel_get_variable(channel, "rtp_has_crypto")); } - switch_event_add_header_string(fsevent, SWITCH_STACK_BOTTOM, "caller-unique-id", switch_channel_get_uuid(channel)); + switch_event_add_header_string_dup(fsevent, SWITCH_STACK_BOTTOM, "caller-unique-id", switch_channel_get_uuid(channel)); switch_event_fire(&fsevent); } diff --git a/src/switch_scheduler.c b/src/switch_scheduler.c index 9c0f29a35b..9b9bd2aff2 100644 --- a/src/switch_scheduler.c +++ b/src/switch_scheduler.c @@ -72,8 +72,8 @@ static void switch_scheduler_execute(switch_scheduler_task_container_t *tp) tp->executed = 0; if (switch_event_create(&event, SWITCH_EVENT_RE_SCHEDULE) == SWITCH_STATUS_SUCCESS) { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Task-ID", "%u", tp->task.task_id); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Task-Desc", tp->desc); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Task-Group", switch_str_nil(tp->task.group)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Task-Desc", tp->desc); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Task-Group", switch_str_nil(tp->task.group)); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Task-Runtime", "%" SWITCH_INT64_T_FMT, tp->task.runtime); switch_queue_push(globals.event_queue, event); event = NULL; @@ -150,8 +150,8 @@ static int task_thread_loop(int done) if (switch_event_create(&event, SWITCH_EVENT_DEL_SCHEDULE) == SWITCH_STATUS_SUCCESS) { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Task-ID", "%u", tofree->task.task_id); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Task-Desc", tofree->desc); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Task-Group", switch_str_nil(tofree->task.group)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Task-Desc", tofree->desc); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Task-Group", switch_str_nil(tofree->task.group)); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Task-Runtime", "%" SWITCH_INT64_T_FMT, tofree->task.runtime); switch_queue_push(globals.event_queue, event); event = NULL; @@ -265,8 +265,8 @@ SWITCH_DECLARE(uint32_t) switch_scheduler_add_task_ex(time_t task_runtime, if (switch_event_create(&event, SWITCH_EVENT_ADD_SCHEDULE) == SWITCH_STATUS_SUCCESS) { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Task-ID", "%u", tp->task.task_id); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Task-Desc", tp->desc); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Task-Group", switch_str_nil(tp->task.group)); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Task-Desc", tp->desc); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Task-Group", switch_str_nil(tp->task.group)); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Task-Runtime", "%" SWITCH_INT64_T_FMT, tp->task.runtime); switch_queue_push(globals.event_queue, event); event = NULL; diff --git a/src/switch_utils.c b/src/switch_utils.c index d8b830943a..cfc80d7498 100644 --- a/src/switch_utils.c +++ b/src/switch_utils.c @@ -4218,7 +4218,7 @@ SWITCH_DECLARE(void) switch_http_parse_qs(switch_http_request_t *request, char * name = q; if ((val = strchr(name, '='))) { *val++ = '\0'; - switch_event_add_header_string(request->headers, SWITCH_STACK_BOTTOM, name, val); + switch_event_add_header_string_dup(request->headers, SWITCH_STACK_BOTTOM, name, val); } q = next; } while (q); @@ -4366,7 +4366,7 @@ SWITCH_DECLARE(switch_status_t) switch_http_parse_header(char *buffer, uint32_t if (len && *(value + len - 1) == '\r') *(value + len - 1) = '\0'; - switch_event_add_header_string(request->headers, SWITCH_STACK_BOTTOM, header, value); + switch_event_add_header_string_dup(request->headers, SWITCH_STACK_BOTTOM, header, value); if (!strncasecmp(header, "User-Agent", 10)) { request->user_agent = value; diff --git a/src/switch_vpx.c b/src/switch_vpx.c index e35d87712f..1407dead90 100644 --- a/src/switch_vpx.c +++ b/src/switch_vpx.c @@ -1849,7 +1849,7 @@ static void parse_codecs(my_vpx_cfg_t *my_cfg, switch_xml_t codecs) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "codec: %s, profile: %s\n", name, profile); - switch_event_add_header_string(my_cfg->codecs, SWITCH_STACK_BOTTOM, name, profile); + switch_event_add_header_string_dup(my_cfg->codecs, SWITCH_STACK_BOTTOM, name, profile); } } diff --git a/src/switch_xml.c b/src/switch_xml.c index c43a530252..6a13fa143e 100644 --- a/src/switch_xml.c +++ b/src/switch_xml.c @@ -1818,7 +1818,7 @@ SWITCH_DECLARE(switch_status_t) switch_xml_locate_domain(const char *domain_name if (!params) { switch_event_create(&my_params, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(my_params); - switch_event_add_header_string(my_params, SWITCH_STACK_BOTTOM, "domain", domain_name); + switch_event_add_header_string_dup(my_params, SWITCH_STACK_BOTTOM, "domain", domain_name); params = my_params; } @@ -1848,11 +1848,11 @@ SWITCH_DECLARE(switch_status_t) switch_xml_locate_group(const char *group_name, } if (group_name) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "group_name", group_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "group_name", group_name); } if (domain_name) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "domain", domain_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "domain", domain_name); } if ((status = switch_xml_locate_domain(domain_name, params, root, domain)) != SWITCH_STATUS_SUCCESS) { @@ -2195,18 +2195,18 @@ SWITCH_DECLARE(switch_status_t) switch_xml_locate_user(const char *key, params = my_params; } - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "key", key); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "key", key); if (user_name) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "user", user_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "user", user_name); } if (domain_name) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "domain", domain_name); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "domain", domain_name); } if (ip) { - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "ip", ip); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "ip", ip); } if ((status = switch_xml_locate_domain(domain_name, params, root, domain)) != SWITCH_STATUS_SUCCESS) { @@ -3337,7 +3337,7 @@ SWITCH_DECLARE(switch_status_t) switch_xml_locate_language(switch_xml_t *root, s *secondary++ = '\0'; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "language %s not found. trying %s by removing %s\n", str_language, str_language_dup, secondary); - switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "lang", str_language_dup); + switch_event_add_header_string_dup(params, SWITCH_STACK_BOTTOM, "lang", str_language_dup); status = switch_xml_locate_language_ex(root, node, params, language, phrases, macros, str_language_dup); } switch_safe_free(str_language_dup); diff --git a/src/switch_xml_config.c b/src/switch_xml_config.c index 6d67ccdad4..1abef85a73 100644 --- a/src/switch_xml_config.c +++ b/src/switch_xml_config.c @@ -61,7 +61,7 @@ SWITCH_DECLARE(switch_size_t) switch_event_import_xml(switch_xml_t xml, const ch const char *key = switch_xml_attr_soft(node, keyname); const char *value = switch_xml_attr_soft(node, valuename); if (key && value) { - switch_event_add_header_string(*event, SWITCH_STACK_BOTTOM, key, value); + switch_event_add_header_string_dup(*event, SWITCH_STACK_BOTTOM, key, value); count++; } } diff --git a/tests/unit/switch_core.c b/tests/unit/switch_core.c index 5689513cbc..36cf5e1fc7 100644 --- a/tests/unit/switch_core.c +++ b/tests/unit/switch_core.c @@ -56,12 +56,12 @@ FST_CORE_BEGIN("./conf") switch_event_t* event; if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_CALLSTATE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Call-State-Number[0]", "1"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Channel-Call-State-Number[0]", "1"); switch_event_fire(&event); } if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_CALLSTATE) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Call-State-Number[5000]", "12"); + switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, "Channel-Call-State-Number[5000]", "12"); switch_event_fire(&event); } } diff --git a/tests/unit/switch_event.c b/tests/unit/switch_event.c index bf8c3f43d2..489deaed30 100644 --- a/tests/unit/switch_event.c +++ b/tests/unit/switch_event.c @@ -45,13 +45,13 @@ FST_TEST_BEGIN(benchmark) #ifndef BENCHMARK for ( x = 0; x < loops; x++) { - status = switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, index[x], index[x]); + status = switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, index[x], index[x]); fst_xcheck(status == SWITCH_STATUS_SUCCESS, "Failed to add header to event"); } #else small_start_ts = switch_time_now(); for ( x = 0; x < loops; x++) { - if ( switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, index[x], index[x]) != SWITCH_STATUS_SUCCESS) { + if ( switch_event_add_header_string_dup(event, SWITCH_STACK_BOTTOM, index[x], index[x]) != SWITCH_STATUS_SUCCESS) { fst_fail("Failed to add header to event"); } } diff --git a/tests/unit/switch_ivr_async.c b/tests/unit/switch_ivr_async.c index 7b6a5e86c8..e92dc00e47 100644 --- a/tests/unit/switch_ivr_async.c +++ b/tests/unit/switch_ivr_async.c @@ -135,12 +135,12 @@ FST_CORE_BEGIN("./conf_async") // record READ stream only- should be complete silence which will trigger the initial timeout. // Min seconds set to 2, which will cause the recording to be discarded. // Expect the record_start_test_pass and record_stop_test_pass variables set to true - switch_event_add_header_string(rec_vars, SWITCH_STACK_BOTTOM, "execute_on_record_start", "set record_start_test_pass=true"); - switch_event_add_header_string(rec_vars, SWITCH_STACK_BOTTOM, "execute_on_record_stop", "set record_stop_test_pass=true"); - switch_event_add_header_string(rec_vars, SWITCH_STACK_BOTTOM, SWITCH_RECORD_POST_PROCESS_EXEC_APP_VARIABLE, "set record_post_process_test_pass=true"); - switch_event_add_header_string(rec_vars, SWITCH_STACK_BOTTOM, "RECORD_READ_ONLY", "true"); - switch_event_add_header_string(rec_vars, SWITCH_STACK_BOTTOM, "RECORD_INITIAL_TIMEOUT_MS", "500"); - switch_event_add_header_string(rec_vars, SWITCH_STACK_BOTTOM, "RECORD_MIN_SEC", "2"); + switch_event_add_header_string_dup(rec_vars, SWITCH_STACK_BOTTOM, "execute_on_record_start", "set record_start_test_pass=true"); + switch_event_add_header_string_dup(rec_vars, SWITCH_STACK_BOTTOM, "execute_on_record_stop", "set record_stop_test_pass=true"); + switch_event_add_header_string_dup(rec_vars, SWITCH_STACK_BOTTOM, SWITCH_RECORD_POST_PROCESS_EXEC_APP_VARIABLE, "set record_post_process_test_pass=true"); + switch_event_add_header_string_dup(rec_vars, SWITCH_STACK_BOTTOM, "RECORD_READ_ONLY", "true"); + switch_event_add_header_string_dup(rec_vars, SWITCH_STACK_BOTTOM, "RECORD_INITIAL_TIMEOUT_MS", "500"); + switch_event_add_header_string_dup(rec_vars, SWITCH_STACK_BOTTOM, "RECORD_MIN_SEC", "2"); status = switch_ivr_record_session_event(fst_session, record_filename, 0, NULL, rec_vars); fst_xcheck(status == SWITCH_STATUS_SUCCESS, "Expect switch_ivr_record_session() to return SWITCH_STATUS_SUCCESS"); diff --git a/tests/unit/switch_ivr_originate.c b/tests/unit/switch_ivr_originate.c index 5603e18f0e..e524cde7f6 100644 --- a/tests/unit/switch_ivr_originate.c +++ b/tests/unit/switch_ivr_originate.c @@ -121,7 +121,7 @@ FST_CORE_BEGIN("./conf") switch_call_cause_t cause; switch_event_t *ovars = NULL; switch_event_create(&ovars, SWITCH_EVENT_CLONE); - switch_event_add_header_string(ovars, SWITCH_STACK_BOTTOM, "origination_external_id", "zzzz"); + switch_event_add_header_string_dup(ovars, SWITCH_STACK_BOTTOM, "origination_external_id", "zzzz"); status = switch_ivr_originate(NULL, &session, &cause, "null/+15553334444", 2, NULL, NULL, NULL, NULL, ovars, SOF_NONE, NULL, NULL); fst_requires(session); fst_check(status == SWITCH_STATUS_SUCCESS); diff --git a/tests/unit/switch_ivr_play_say.c b/tests/unit/switch_ivr_play_say.c index c23a2d3332..a451ecb201 100644 --- a/tests/unit/switch_ivr_play_say.c +++ b/tests/unit/switch_ivr_play_say.c @@ -408,9 +408,9 @@ FST_CORE_BEGIN("./conf_playsay") fst_requires(rec_vars); switch_event_bind("record_file_event", SWITCH_EVENT_RECORD_START, SWITCH_EVENT_SUBCLASS_ANY, on_record_start, NULL); switch_event_bind("record_file_event", SWITCH_EVENT_RECORD_STOP, SWITCH_EVENT_SUBCLASS_ANY, on_record_stop, NULL); - switch_event_add_header_string(rec_vars, SWITCH_STACK_BOTTOM, "execute_on_record_start", "set record_start_test_pass=true"); - switch_event_add_header_string(rec_vars, SWITCH_STACK_BOTTOM, "execute_on_record_stop", "set record_stop_test_pass=true"); - switch_event_add_header_string(rec_vars, SWITCH_STACK_BOTTOM, "ID", "foo"); + switch_event_add_header_string_dup(rec_vars, SWITCH_STACK_BOTTOM, "execute_on_record_start", "set record_start_test_pass=true"); + switch_event_add_header_string_dup(rec_vars, SWITCH_STACK_BOTTOM, "execute_on_record_stop", "set record_stop_test_pass=true"); + switch_event_add_header_string_dup(rec_vars, SWITCH_STACK_BOTTOM, "ID", "foo"); switch_ivr_displace_session(fst_session, "file_string://silence_stream://500,0!tone_stream://%%(2000,0,350,440)", 0, "r"); status = switch_ivr_record_file_event(fst_session, NULL, record_filename, NULL, 4, rec_vars); fst_check(status == SWITCH_STATUS_SUCCESS); @@ -438,7 +438,7 @@ FST_CORE_BEGIN("./conf_playsay") switch_event_bind("record_file_event", SWITCH_EVENT_RECORD_STOP, SWITCH_EVENT_SUBCLASS_ANY, on_record_stop, NULL); switch_channel_set_variable(fst_channel, "execute_on_record_start_1", "set record_start_test_pass=true"); switch_channel_set_variable(fst_channel, "execute_on_record_stop_1", "set record_stop_test_pass=true"); - switch_event_add_header_string(rec_vars, SWITCH_STACK_BOTTOM, "ID", "foo"); + switch_event_add_header_string_dup(rec_vars, SWITCH_STACK_BOTTOM, "ID", "foo"); switch_ivr_displace_session(fst_session, "file_string://silence_stream://500,0!tone_stream://%%(2000,0,350,440)", 0, "r"); status = switch_ivr_record_file_event(fst_session, NULL, record_filename, NULL, 4, rec_vars); fst_check(status == SWITCH_STATUS_SUCCESS);