<h1>Project "FreeSWITCH Source" received a push.</h1>
<h2>branch: master updated</h2>
<pre>
discards e281aca3463da39e3b0a339459d390b7c2f3ceab (commit)
discards 86884e52568eb7cdca89995fa82f407d4c4059c9 (commit)
discards 642882727f015be345501f6f7c727ef23ec70c9f (commit)
discards d8add09a352cdfca64fa94688285ce6c96e6f6dc (commit)
discards c81bf01fc977fd1a12b521cf29abb5b466f1fda2 (commit)
discards 25f9bba3743c72970c3285509129b09d93b6c22b (commit)
discards c467886267db6b842b9bed9f50ee812d4ee427e4 (commit)
discards 6cecbca2bbb8dc7cc4511e91a992ce77cb126d17 (commit)
discards b6afdadc82a3d9c95ff61bad4a7f869d220cd0f9 (commit)
discards c339d6f2e1e8111da4150974ca324d3c3b9393c0 (commit)
discards 14e931ffbb1d0e3196420b0eceb7a21fcd09abf4 (commit)
via: c9ee4fab736d1d0db6638468598bab11b1648c87 (commit)
This update added new revisions after undoing existing revisions. That is
to say, the old revision is not a strict subset of the new revision. This
situation occurs when you --force push a change and generate a repository
containing something like this:
* -- * -- B -- O -- O -- O (e281aca3463da39e3b0a339459d390b7c2f3ceab)
\
N -- N -- N (c9ee4fab736d1d0db6638468598bab11b1648c87)
When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.
</pre>= COMMIT LOG ===========================================================
<div class="highlight"><pre>committer: Moises Silva
comments:
freetdm: remove deprecated channel variables code
<span style="color: #000080; font-weight: bold">diff --git a/libs/freetdm/mod_freetdm/mod_freetdm.c b/libs/freetdm/mod_freetdm/mod_freetdm.c</span>
<span style="color: #000080; font-weight: bold">index 78874de..b42a13b 100755</span>
<span style="color: #A00000">--- a/libs/freetdm/mod_freetdm/mod_freetdm.c</span>
<span style="color: #00A000">+++ b/libs/freetdm/mod_freetdm/mod_freetdm.c</span>
<span style="color: #800080; font-weight: bold">@@ -1552,6 +1552,8 @@ ftdm_status_t ftdm_channel_from_event(ftdm_sigmsg_t *sigmsg, switch_core_session</span>
        switch_channel_set_variable_printf(channel, "freetdm_chan_number", "%d", chanid);
        switch_channel_set_variable_printf(channel, "freetdm_bearer_capability", "%d", channel_caller_data->bearer_capability);        
        switch_channel_set_variable_printf(channel, "freetdm_bearer_layer1", "%d", channel_caller_data->bearer_layer1);
<span style="color: #00A000">+        switch_channel_set_variable_printf(channel, "freetdm_screening_ind", ftdm_screening2str(channel_caller_data->screen));</span>
<span style="color: #00A000">+        switch_channel_set_variable_printf(channel, "freetdm_presentation_ind", ftdm_presentation2str(channel_caller_data->pres));</span>
        
        if (globals.sip_headers) {
                switch_channel_set_variable(channel, "sip_h_X-FreeTDM-SpanName", ftdm_channel_get_span_name(sigmsg->channel));
<span style="color: #800080; font-weight: bold">@@ -1580,21 +1582,13 @@ ftdm_status_t ftdm_channel_from_event(ftdm_sigmsg_t *sigmsg, switch_core_session</span>
        if (channel_caller_data->raw_data_len) {
                switch_channel_set_variable_printf(channel, "freetdm_custom_call_data", "%s", channel_caller_data->raw_data);
        }
<span style="color: #A00000">-        /* Add any channel variable to the dial plan */</span>
<span style="color: #A00000">-        iter = ftdm_channel_get_var_iterator(sigmsg->channel, NULL);</span>
<span style="color: #A00000">-        for (curr = iter ; curr; curr = ftdm_iterator_next(curr)) {</span>
<span style="color: #A00000">-                ftdm_channel_get_current_var(curr, &var_name, &var_value);</span>
<span style="color: #A00000">-                snprintf(name, sizeof(name), FREETDM_VAR_PREFIX "%s", var_name);</span>
<span style="color: #A00000">-                switch_channel_set_variable_printf(channel, name, "%s", var_value);</span>
<span style="color: #A00000">-        }        </span>
<span style="color: #A00000">-        </span>
        /* Add any call variable to the dial plan */
        iter = ftdm_call_get_var_iterator(channel_caller_data, iter);
        for (curr = iter ; curr; curr = ftdm_iterator_next(curr)) {
                ftdm_call_get_current_var(curr, &var_name, &var_value);
                snprintf(name, sizeof(name), FREETDM_VAR_PREFIX "%s", var_name);
                switch_channel_set_variable_printf(channel, name, "%s", var_value);
<span style="color: #A00000">-                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Call Variable: %s=%s\n", name, var_value);</span>
<span style="color: #00A000">+                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Call Variable: %s = %s\n", name, var_value);</span>
        }
        ftdm_iterator_free(iter);
        
<span style="color: #800080; font-weight: bold">@@ -2149,8 +2143,6 @@ static FIO_SIGNAL_CB_FUNCTION(on_clear_channel_signal)</span>
switch(sigmsg->event_id) {
case FTDM_SIGEVENT_START:
                {
<span style="color: #A00000">-                        ftdm_call_add_var(caller_data, "screening_ind", ftdm_screening2str(caller_data->screen));</span>
<span style="color: #A00000">-                        ftdm_call_add_var(caller_data, "presentation_ind", ftdm_presentation2str(caller_data->pres));</span>
                        return ftdm_channel_from_event(sigmsg, &session);
                }
                break;
<span style="color: #000080; font-weight: bold">diff --git a/libs/freetdm/src/ftdm_io.c b/libs/freetdm/src/ftdm_io.c</span>
<span style="color: #000080; font-weight: bold">index bd4e896..59615b4 100644</span>
<span style="color: #A00000">--- a/libs/freetdm/src/ftdm_io.c</span>
<span style="color: #00A000">+++ b/libs/freetdm/src/ftdm_io.c</span>
<span style="color: #800080; font-weight: bold">@@ -65,7 +65,6 @@ ftdm_time_t time_current_throttle_log = 0;</span>
static ftdm_iterator_t *get_iterator(ftdm_iterator_type_t type, ftdm_iterator_t *iter);
static ftdm_status_t ftdm_call_set_call_id(ftdm_channel_t *fchan, ftdm_caller_data_t *caller_data);
static ftdm_status_t ftdm_call_clear_call_id(ftdm_caller_data_t *caller_data);
<span style="color: #A00000">-static ftdm_status_t ftdm_channel_clear_vars(ftdm_channel_t *ftdmchan);</span>
static ftdm_status_t ftdm_channel_done(ftdm_channel_t *ftdmchan);
static int time_is_init = 0;
<span style="color: #800080; font-weight: bold">@@ -2633,7 +2632,6 @@ static ftdm_status_t ftdm_channel_done(ftdm_channel_t *ftdmchan)</span>
        ftdm_buffer_destroy(&ftdmchan->pre_buffer);
        ftdmchan->pre_buffer_size = 0;
        ftdm_mutex_unlock(ftdmchan->pre_buffer_mutex);
<span style="color: #A00000">-        ftdm_channel_clear_vars(ftdmchan);</span>
        if (ftdmchan->hangup_timer) {
                ftdm_sched_cancel_timer(globals.timingsched, ftdmchan->hangup_timer);
        }
<span style="color: #800080; font-weight: bold">@@ -4034,19 +4032,12 @@ done:</span>
FT_DECLARE(void) ftdm_call_clear_data(ftdm_caller_data_t *caller_data)
{
<span style="color: #A00000">-        ftdm_call_clear_vars(caller_data);</span>
<span style="color: #A00000">-        memset(&caller_data->raw_data, 0, sizeof(caller_data->raw_data));</span>
<span style="color: #A00000">-        caller_data->raw_data_len = 0;</span>
<span style="color: #A00000">-        return;</span>
<span style="color: #A00000">-}</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-FT_DECLARE(ftdm_status_t) ftdm_call_clear_vars(ftdm_caller_data_t *caller_data)</span>
<span style="color: #A00000">-{</span>
        if (caller_data->variables) {
                hashtable_destroy(caller_data->variables);
        }
        caller_data->variables = NULL;
<span style="color: #A00000">-        return FTDM_SUCCESS;</span>
<span style="color: #00A000">+        memset(&caller_data->raw_data, 0, sizeof(caller_data->raw_data));</span>
<span style="color: #00A000">+        caller_data->raw_data_len = 0;</span>
}
FT_DECLARE(ftdm_status_t) ftdm_call_remove_var(ftdm_caller_data_t *caller_data, const char *var_name)
<span style="color: #800080; font-weight: bold">@@ -4058,7 +4049,6 @@ FT_DECLARE(ftdm_status_t) ftdm_call_remove_var(ftdm_caller_data_t *caller_data,</span>
        return FTDM_SUCCESS;
}
<span style="color: #A00000">-</span>
FT_DECLARE(ftdm_status_t) ftdm_call_add_var(ftdm_caller_data_t *caller_data, const char *var_name, const char *value)
{
        char *t_name = 0, *t_val = 0;
<span style="color: #800080; font-weight: bold">@@ -4125,72 +4115,6 @@ FT_DECLARE(ftdm_status_t) ftdm_call_get_current_var(ftdm_iterator_t *iter, const</span>
        return FTDM_SUCCESS;
}
<span style="color: #A00000">-</span>
<span style="color: #A00000">-static ftdm_status_t ftdm_channel_clear_vars(ftdm_channel_t *ftdmchan)</span>
<span style="color: #A00000">-{</span>
<span style="color: #A00000">-        ftdm_channel_lock(ftdmchan);</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-        if (ftdmchan->variable_hash) {</span>
<span style="color: #A00000">-                hashtable_destroy(ftdmchan->variable_hash);</span>
<span style="color: #A00000">-        }</span>
<span style="color: #A00000">-        ftdmchan->variable_hash = NULL;</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-        ftdm_channel_unlock(ftdmchan);</span>
<span style="color: #A00000">-        return FTDM_SUCCESS;</span>
<span style="color: #A00000">-}</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-FT_DECLARE(ftdm_status_t) ftdm_channel_add_var(ftdm_channel_t *ftdmchan, const char *var_name, const char *value)</span>
<span style="color: #A00000">-{</span>
<span style="color: #A00000">-        char *t_name = 0, *t_val = 0;</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-        ftdm_status_t status = FTDM_FAIL;</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-        if (!var_name || !value) {</span>
<span style="color: #A00000">-                return FTDM_FAIL;</span>
<span style="color: #A00000">-        }</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-        ftdm_channel_lock(ftdmchan);</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-        if (!ftdmchan->variable_hash) {</span>
<span style="color: #A00000">-                /* initialize on first use */</span>
<span style="color: #A00000">-                ftdmchan->variable_hash = create_hashtable(16, ftdm_hash_hashfromstring, ftdm_hash_equalkeys);</span>
<span style="color: #A00000">-                if (!ftdmchan->variable_hash) {</span>
<span style="color: #A00000">-                        goto done;</span>
<span style="color: #A00000">-                }</span>
<span style="color: #A00000">-        }</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-        t_name = ftdm_strdup(var_name);</span>
<span style="color: #A00000">-        t_val = ftdm_strdup(value);</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-        hashtable_insert(ftdmchan->variable_hash, t_name, t_val, HASHTABLE_FLAG_FREE_KEY | HASHTABLE_FLAG_FREE_VALUE);</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-        status = FTDM_SUCCESS;</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-done:</span>
<span style="color: #A00000">-        ftdm_channel_unlock(ftdmchan);</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-        return status;</span>
<span style="color: #A00000">-}</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-FT_DECLARE(const char *) ftdm_channel_get_var(ftdm_channel_t *ftdmchan, const char *var_name)</span>
<span style="color: #A00000">-{</span>
<span style="color: #A00000">-        const char *var = NULL;</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-        ftdm_channel_lock(ftdmchan);</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-        if (!ftdmchan->variable_hash || !var_name) {</span>
<span style="color: #A00000">-                goto done;</span>
<span style="color: #A00000">-        }</span>
<span style="color: #A00000">-        </span>
<span style="color: #A00000">-        var = (const char *)hashtable_search(ftdmchan->variable_hash, (void *)var_name);</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-done:</span>
<span style="color: #A00000">-        ftdm_channel_unlock(ftdmchan);</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-        return var;</span>
<span style="color: #A00000">-}</span>
<span style="color: #A00000">-</span>
static ftdm_iterator_t *get_iterator(ftdm_iterator_type_t type, ftdm_iterator_t *iter)
{
        int allocated = 0;
<span style="color: #800080; font-weight: bold">@@ -4215,25 +4139,6 @@ static ftdm_iterator_t *get_iterator(ftdm_iterator_type_t type, ftdm_iterator_t</span>
        return iter;
}
<span style="color: #A00000">-FT_DECLARE(ftdm_iterator_t *) ftdm_channel_get_var_iterator(const ftdm_channel_t *ftdmchan, ftdm_iterator_t *iter)</span>
<span style="color: #A00000">-{</span>
<span style="color: #A00000">-        ftdm_hash_iterator_t *hashiter = NULL;</span>
<span style="color: #A00000">-        ftdm_channel_lock(ftdmchan);</span>
<span style="color: #A00000">-        hashiter = ftdmchan->variable_hash == NULL ? NULL : hashtable_first(ftdmchan->variable_hash);</span>
<span style="color: #A00000">-        ftdm_channel_unlock(ftdmchan);</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-        if (hashiter == NULL) {</span>
<span style="color: #A00000">-                return NULL;</span>
<span style="color: #A00000">-        }</span>
<span style="color: #A00000">-        </span>
<span style="color: #A00000">-        if (!(iter = get_iterator(FTDM_ITERATOR_VARS, iter))) {</span>
<span style="color: #A00000">-                return NULL;</span>
<span style="color: #A00000">-        }</span>
<span style="color: #A00000">-        iter->pvt.hashiter = hashiter;</span>
<span style="color: #A00000">-        return iter;</span>
<span style="color: #A00000">-}</span>
<span style="color: #A00000">-</span>
FT_DECLARE(ftdm_iterator_t *) ftdm_span_get_chan_iterator(const ftdm_span_t *span, ftdm_iterator_t *iter)
{
        if (!(iter = get_iterator(FTDM_ITERATOR_CHANS, iter))) {
<span style="color: #800080; font-weight: bold">@@ -4244,24 +4149,6 @@ FT_DECLARE(ftdm_iterator_t *) ftdm_span_get_chan_iterator(const ftdm_span_t *spa</span>
        return iter;
}
<span style="color: #A00000">-FT_DECLARE(ftdm_status_t) ftdm_channel_get_current_var(ftdm_iterator_t *iter, const char **var_name, const char **var_val)</span>
<span style="color: #A00000">-{</span>
<span style="color: #A00000">-        const void *key = NULL;</span>
<span style="color: #A00000">-        void *val = NULL;</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-        *var_name = NULL;</span>
<span style="color: #A00000">-        *var_val = NULL;</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-        ftdm_assert_return(iter && (iter->type == FTDM_ITERATOR_VARS) && iter->pvt.hashiter, FTDM_FAIL, "Cannot get variable from invalid iterator!\n");</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-        hashtable_this(iter->pvt.hashiter, &key, NULL, &val);</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-        *var_name = key;</span>
<span style="color: #A00000">-        *var_val = val;</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-        return FTDM_SUCCESS;</span>
<span style="color: #A00000">-}</span>
<span style="color: #A00000">-</span>
FT_DECLARE(ftdm_iterator_t *) ftdm_iterator_next(ftdm_iterator_t *iter)
{
        ftdm_assert_return(iter && iter->type, NULL, "Invalid iterator\n");
<span style="color: #000080; font-weight: bold">diff --git a/libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c b/libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c</span>
<span style="color: #000080; font-weight: bold">index 06b0b21..918b284 100644</span>
<span style="color: #A00000">--- a/libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c</span>
<span style="color: #00A000">+++ b/libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c</span>
<span style="color: #800080; font-weight: bold">@@ -299,7 +299,7 @@ void ft_to_sngss7_iam (ftdm_channel_t * ftdmchan)</span>
                                                        ftdmchan->caller_data.dnis.digits,
                                                        iam.cdPtyNum.natAddrInd.val);
<span style="color: #A00000">-        ftdm_call_clear_vars(&ftdmchan->caller_data);</span>
<span style="color: #00A000">+        ftdm_call_clear_data(&ftdmchan->caller_data);</span>
        SS7_FUNC_TRACE_EXIT (__FUNCTION__);
        return;
}
<span style="color: #800080; font-weight: bold">@@ -379,7 +379,7 @@ void ft_to_sngss7_acm (ftdm_channel_t * ftdmchan)</span>
                                                ADDRCMPLT);
        
        SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx ACM\n", sngss7_info->circuit->cic);
<span style="color: #A00000">-        ftdm_call_clear_vars(&ftdmchan->caller_data);</span>
<span style="color: #00A000">+        ftdm_call_clear_data(&ftdmchan->caller_data);</span>
        SS7_FUNC_TRACE_EXIT (__FUNCTION__);
        return;
}
<span style="color: #800080; font-weight: bold">@@ -403,7 +403,7 @@ void ft_to_sngss7_anm (ftdm_channel_t * ftdmchan)</span>
                                                5);
SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx ANM\n", sngss7_info->circuit->cic);
<span style="color: #A00000">- ftdm_call_clear_vars(&ftdmchan->caller_data);</span>
<span style="color: #00A000">+ ftdm_call_clear_data(&ftdmchan->caller_data);</span>
SS7_FUNC_TRACE_EXIT (__FUNCTION__);
return;
}
<span style="color: #800080; font-weight: bold">@@ -438,7 +438,7 @@ void ft_to_sngss7_rel (ftdm_channel_t * ftdmchan)</span>
        SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx REL cause=%d \n",
                                                        sngss7_info->circuit->cic,
                                                        ftdmchan->caller_data.hangup_cause );
<span style="color: #A00000">-        ftdm_call_clear_vars(&ftdmchan->caller_data);</span>
<span style="color: #00A000">+        ftdm_call_clear_data(&ftdmchan->caller_data);</span>
        SS7_FUNC_TRACE_EXIT (__FUNCTION__);
        return;
}
<span style="color: #800080; font-weight: bold">@@ -461,7 +461,7 @@ void ft_to_sngss7_rlc (ftdm_channel_t * ftdmchan)</span>
                                                &rlc);
        
        SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx RLC\n", sngss7_info->circuit->cic);
<span style="color: #A00000">-        ftdm_call_clear_vars(&ftdmchan->caller_data);</span>
<span style="color: #00A000">+        ftdm_call_clear_data(&ftdmchan->caller_data);</span>
        SS7_FUNC_TRACE_EXIT (__FUNCTION__);
        return;
}
<span style="color: #800080; font-weight: bold">@@ -482,7 +482,7 @@ void ft_to_sngss7_rsc (ftdm_channel_t * ftdmchan)</span>
                                                NULL);
        
        SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx RSC\n", sngss7_info->circuit->cic);
<span style="color: #A00000">-        ftdm_call_clear_vars(&ftdmchan->caller_data);</span>
<span style="color: #00A000">+        ftdm_call_clear_data(&ftdmchan->caller_data);</span>
        SS7_FUNC_TRACE_EXIT (__FUNCTION__);
        return;
}
<span style="color: #800080; font-weight: bold">@@ -503,7 +503,7 @@ void ft_to_sngss7_rsca (ftdm_channel_t * ftdmchan)</span>
                                                NULL);
        
        SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx RSC-RLC\n", sngss7_info->circuit->cic);
<span style="color: #A00000">-        ftdm_call_clear_vars(&ftdmchan->caller_data);</span>
<span style="color: #00A000">+        ftdm_call_clear_data(&ftdmchan->caller_data);</span>
        SS7_FUNC_TRACE_EXIT (__FUNCTION__);
return;
}
<span style="color: #800080; font-weight: bold">@@ -524,7 +524,7 @@ void ft_to_sngss7_blo (ftdm_channel_t * ftdmchan)</span>
                                                NULL);
        
        SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx BLO\n", sngss7_info->circuit->cic);
<span style="color: #A00000">-        ftdm_call_clear_vars(&ftdmchan->caller_data);</span>
<span style="color: #00A000">+        ftdm_call_clear_data(&ftdmchan->caller_data);</span>
        SS7_FUNC_TRACE_EXIT (__FUNCTION__);
        return;
}
<span style="color: #800080; font-weight: bold">@@ -545,7 +545,7 @@ void ft_to_sngss7_bla (ftdm_channel_t * ftdmchan)</span>
                                                NULL);
        
        SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx BLA\n", sngss7_info->circuit->cic);
<span style="color: #A00000">-        ftdm_call_clear_vars(&ftdmchan->caller_data);</span>
<span style="color: #00A000">+        ftdm_call_clear_data(&ftdmchan->caller_data);</span>
        SS7_FUNC_TRACE_EXIT (__FUNCTION__);
        return;
}
<span style="color: #800080; font-weight: bold">@@ -567,7 +567,7 @@ ft_to_sngss7_ubl (ftdm_channel_t * ftdmchan)</span>
                                                NULL);
        
        SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx UBL\n", sngss7_info->circuit->cic);
<span style="color: #A00000">-        ftdm_call_clear_vars(&ftdmchan->caller_data);</span>
<span style="color: #00A000">+        ftdm_call_clear_data(&ftdmchan->caller_data);</span>
        SS7_FUNC_TRACE_EXIT (__FUNCTION__);
        return;
}
<span style="color: #800080; font-weight: bold">@@ -588,7 +588,7 @@ void ft_to_sngss7_uba (ftdm_channel_t * ftdmchan)</span>
                                                NULL);
        
        SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx UBA\n", sngss7_info->circuit->cic);
<span style="color: #A00000">-        ftdm_call_clear_vars(&ftdmchan->caller_data);</span>
<span style="color: #00A000">+        ftdm_call_clear_data(&ftdmchan->caller_data);</span>
        SS7_FUNC_TRACE_EXIT (__FUNCTION__);
        return;
}
<span style="color: #800080; font-weight: bold">@@ -609,7 +609,7 @@ void ft_to_sngss7_lpa (ftdm_channel_t * ftdmchan)</span>
                                                NULL);
        
        SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx LPA\n", sngss7_info->circuit->cic);
<span style="color: #A00000">-        ftdm_call_clear_vars(&ftdmchan->caller_data);</span>
<span style="color: #00A000">+        ftdm_call_clear_data(&ftdmchan->caller_data);</span>
        SS7_FUNC_TRACE_EXIT (__FUNCTION__);
return;
}
<span style="color: #800080; font-weight: bold">@@ -654,7 +654,7 @@ void ft_to_sngss7_gra (ftdm_channel_t * ftdmchan)</span>
                                                        sngss7_info->circuit->cic,
                                                        (sngss7_info->circuit->cic + sngss7_span->rx_grs.range));
        
<span style="color: #A00000">-        ftdm_call_clear_vars(&ftdmchan->caller_data);</span>
<span style="color: #00A000">+        ftdm_call_clear_data(&ftdmchan->caller_data);</span>
        SS7_FUNC_TRACE_EXIT (__FUNCTION__);
        return;
}
<span style="color: #800080; font-weight: bold">@@ -688,7 +688,7 @@ void ft_to_sngss7_grs (ftdm_channel_t * ftdmchan)</span>
                                                        sngss7_info->circuit->cic,
                                                        (sngss7_info->circuit->cic + sngss7_span->tx_grs.range));
<span style="color: #A00000">-        ftdm_call_clear_vars(&ftdmchan->caller_data);</span>
<span style="color: #00A000">+        ftdm_call_clear_data(&ftdmchan->caller_data);</span>
        SS7_FUNC_TRACE_EXIT (__FUNCTION__);
return;
}
<span style="color: #800080; font-weight: bold">@@ -737,7 +737,7 @@ void ft_to_sngss7_cgba(ftdm_channel_t * ftdmchan)</span>
        /* clean out the saved data */
        memset(&sngss7_span->rx_cgb, 0x0, sizeof(sngss7_group_data_t));
<span style="color: #A00000">-        ftdm_call_clear_vars(&ftdmchan->caller_data);</span>
<span style="color: #00A000">+        ftdm_call_clear_data(&ftdmchan->caller_data);</span>
        SS7_FUNC_TRACE_EXIT (__FUNCTION__);
        return;
}
<span style="color: #800080; font-weight: bold">@@ -787,7 +787,7 @@ void ft_to_sngss7_cgua(ftdm_channel_t * ftdmchan)</span>
        /* clean out the saved data */
        memset(&sngss7_span->rx_cgu, 0x0, sizeof(sngss7_group_data_t));
<span style="color: #A00000">-        ftdm_call_clear_vars(&ftdmchan->caller_data);</span>
<span style="color: #00A000">+        ftdm_call_clear_data(&ftdmchan->caller_data);</span>
        SS7_FUNC_TRACE_EXIT (__FUNCTION__);
        return;
}
<span style="color: #800080; font-weight: bold">@@ -838,7 +838,7 @@ void ft_to_sngss7_cgb(ftdm_channel_t * ftdmchan)</span>
        /* clean out the saved data */
        memset(&sngss7_span->tx_cgb, 0x0, sizeof(sngss7_group_data_t));
<span style="color: #A00000">-        ftdm_call_clear_vars(&ftdmchan->caller_data);</span>
<span style="color: #00A000">+        ftdm_call_clear_data(&ftdmchan->caller_data);</span>
        SS7_FUNC_TRACE_EXIT (__FUNCTION__);
        return;
}
<span style="color: #800080; font-weight: bold">@@ -889,7 +889,7 @@ void ft_to_sngss7_cgu(ftdm_channel_t * ftdmchan)</span>
        /* clean out the saved data */
        memset(&sngss7_span->tx_cgu, 0x0, sizeof(sngss7_group_data_t));
<span style="color: #A00000">-        ftdm_call_clear_vars(&ftdmchan->caller_data);</span>
<span style="color: #00A000">+        ftdm_call_clear_data(&ftdmchan->caller_data);</span>
        SS7_FUNC_TRACE_EXIT (__FUNCTION__);
        return;
}
<span style="color: #000080; font-weight: bold">diff --git a/libs/freetdm/src/include/freetdm.h b/libs/freetdm/src/include/freetdm.h</span>
<span style="color: #000080; font-weight: bold">index 588dc31..bb4b08b 100644</span>
<span style="color: #A00000">--- a/libs/freetdm/src/include/freetdm.h</span>
<span style="color: #00A000">+++ b/libs/freetdm/src/include/freetdm.h</span>
<span style="color: #800080; font-weight: bold">@@ -1368,34 +1368,12 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_read(ftdm_channel_t *ftdmchan, void *data</span>
*/
FT_DECLARE(ftdm_status_t) ftdm_channel_write(ftdm_channel_t *ftdmchan, void *data, ftdm_size_t datasize, ftdm_size_t *datalen);
<span style="color: #A00000">-/*! \brief Add a custom variable to the channel</span>
<span style="color: #A00000">- * \note This variables may be used by signaling modules to override signaling parameters</span>
<span style="color: #A00000">- * \todo Document which signaling variables are available</span>
<span style="color: #A00000">- * */</span>
<span style="color: #A00000">-FT_DECLARE(ftdm_status_t) ftdm_channel_add_var(ftdm_channel_t *ftdmchan, const char *var_name, const char *value);</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-/*! \brief Get a custom variable from the channel. </span>
<span style="color: #A00000">- * \note The variable pointer returned is only valid while the channel is open and it'll be destroyed when the channel is closed. */</span>
<span style="color: #A00000">-FT_DECLARE(const char *) ftdm_channel_get_var(ftdm_channel_t *ftdmchan, const char *var_name);</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-/*! \brief Get an iterator to iterate over the channel variables</span>
<span style="color: #A00000">- * \param ftdmchan The channel structure containing the variables</span>
<span style="color: #A00000">- * \param iter Optional iterator. You can reuse an old iterator (not previously freed) to avoid the extra allocation of a new iterator.</span>
<span style="color: #A00000">- * \note The iterator pointer returned is only valid while the channel is open and it'll be destroyed when the channel is closed. </span>
<span style="color: #A00000">- * This iterator is completely non-thread safe, if you are adding variables or removing variables while iterating </span>
<span style="color: #A00000">- * results are unpredictable</span>
<span style="color: #A00000">- */</span>
<span style="color: #A00000">-FT_DECLARE(ftdm_iterator_t *) ftdm_channel_get_var_iterator(const ftdm_channel_t *ftdmchan, ftdm_iterator_t *iter);</span>
<span style="color: #A00000">-</span>
/*! \brief Get iterator current value (depends on the iterator type)
* \note Channel iterators return a pointer to ftdm_channel_t
* Variable iterators return a pointer to the variable name (not the variable value)
*/
FT_DECLARE(void *) ftdm_iterator_current(ftdm_iterator_t *iter);
<span style="color: #A00000">-/*! \brief Get variable name and value for the current iterator position */</span>
<span style="color: #A00000">-FT_DECLARE(ftdm_status_t) ftdm_channel_get_current_var(ftdm_iterator_t *iter, const char **var_name, const char **var_val);</span>
<span style="color: #A00000">-</span>
/*! \brief Advance iterator */
FT_DECLARE(ftdm_iterator_t *) ftdm_iterator_next(ftdm_iterator_t *iter);
<span style="color: #800080; font-weight: bold">@@ -1426,23 +1404,6 @@ FT_DECLARE(ftdm_iterator_t *) ftdm_call_get_var_iterator(const ftdm_caller_data_</span>
/*! \brief Get variable name and value for the current iterator position */
FT_DECLARE(ftdm_status_t) ftdm_call_get_current_var(ftdm_iterator_t *iter, const char **var_name, const char **var_val);
<span style="color: #A00000">-/*! \brief Clear all variables attached to the call</span>
<span style="color: #A00000">- * \note Variables are cleared at the end of each call back, so it is not necessary for the user to call this function.</span>
<span style="color: #A00000">- * \todo Document which signaling variables are available</span>
<span style="color: #A00000">- * */</span>
<span style="color: #A00000">-FT_DECLARE(ftdm_status_t) ftdm_call_clear_vars(ftdm_caller_data_t *caller_data);</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-/*! \brief Remove a variable attached to the call</span>
<span style="color: #A00000">- * \note Removes a variable that was attached to the call.</span>
<span style="color: #A00000">- * \todo Document which call variables are available</span>
<span style="color: #A00000">- * */</span>
<span style="color: #A00000">-FT_DECLARE(ftdm_status_t) ftdm_call_remove_var(ftdm_caller_data_t *caller_data, const char *var_name);</span>
<span style="color: #A00000">-</span>
<span style="color: #A00000">-/*! \brief Clears all the temporary data attached to this call</span>
<span style="color: #A00000">- * \note Clears caller_data->variables and caller_data->raw_data.</span>
<span style="color: #A00000">- * */</span>
<span style="color: #A00000">-FT_DECLARE(void) ftdm_call_clear_data(ftdm_caller_data_t *caller_data);</span>
<span style="color: #A00000">-                </span>
/*! \brief Get the span pointer associated to the channel */
FT_DECLARE(ftdm_span_t *) ftdm_channel_get_span(const ftdm_channel_t *ftdmchan);
<span style="color: #000080; font-weight: bold">diff --git a/libs/freetdm/src/include/private/ftdm_core.h b/libs/freetdm/src/include/private/ftdm_core.h</span>
<span style="color: #000080; font-weight: bold">index ba16c7c..07717a4 100644</span>
<span style="color: #A00000">--- a/libs/freetdm/src/include/private/ftdm_core.h</span>
<span style="color: #00A000">+++ b/libs/freetdm/src/include/private/ftdm_core.h</span>
<span style="color: #800080; font-weight: bold">@@ -451,7 +451,6 @@ struct ftdm_channel {</span>
        struct ftdm_caller_data caller_data;
        struct ftdm_span *span;
        struct ftdm_io_interface *fio;
<span style="color: #A00000">-        ftdm_hash_t *variable_hash;</span>
        unsigned char rx_cas_bits;
        uint32_t pre_buffer_size;
        uint8_t rxgain_table[FTDM_GAINS_TABLE_SIZE];
<span style="color: #800080; font-weight: bold">@@ -629,6 +628,24 @@ FT_DECLARE(void) ftdm_channel_clear_detected_tones(ftdm_channel_t *ftdmchan);</span>
FT_DECLARE(void) ftdm_set_echocancel_call_begin(ftdm_channel_t *chan);
FT_DECLARE(void) ftdm_set_echocancel_call_end(ftdm_channel_t *chan);
<span style="color: #00A000">+/*! \brief Clear all variables attached to the call</span>
<span style="color: #00A000">+ * \note Variables are cleared at the end of each call back, so it is not necessary for the user to call this function.</span>
<span style="color: #00A000">+ * \todo Document which signaling variables are available</span>
<span style="color: #00A000">+ * */</span>
<span style="color: #00A000">+FT_DECLARE(ftdm_status_t) ftdm_call_clear_vars(ftdm_caller_data_t *caller_data);</span>
<span style="color: #00A000">+</span>
<span style="color: #00A000">+/*! \brief Remove a variable attached to the call</span>
<span style="color: #00A000">+ * \note Removes a variable that was attached to the call.</span>
<span style="color: #00A000">+ * \todo Document which call variables are available</span>
<span style="color: #00A000">+ * */</span>
<span style="color: #00A000">+FT_DECLARE(ftdm_status_t) ftdm_call_remove_var(ftdm_caller_data_t *caller_data, const char *var_name);</span>
<span style="color: #00A000">+</span>
<span style="color: #00A000">+/*! \brief Clears all the temporary data attached to this call</span>
<span style="color: #00A000">+ * \note Clears caller_data->variables and caller_data->raw_data.</span>
<span style="color: #00A000">+ * */</span>
<span style="color: #00A000">+FT_DECLARE(void) ftdm_call_clear_data(ftdm_caller_data_t *caller_data);</span>
<span style="color: #00A000">+                </span>
<span style="color: #00A000">+</span>
/*!
\brief Assert condition
*/
</pre></div>
========================================================================<pre>
Summary of changes:
libs/freetdm/mod_freetdm/mod_freetdm.c | 18 +---
libs/freetdm/src/ftdm_io.c | 122 +-------------------
libs/freetdm/src/ftmod/ftmod_r2/ftmod_r2.c | 28 +++--
.../ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c | 6 +-
.../ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c | 36 +++---
libs/freetdm/src/include/freetdm.h | 40 -------
libs/freetdm/src/include/private/ftdm_core.h | 22 +++-
7 files changed, 67 insertions(+), 205 deletions(-)
</pre>
<p>this email was generated because of /git/your-repo.git/hooks/post-receive by the file /git-core/contrib/hooks/post-receive-email<br />
For more info, see <a href="http://blog.chomperstomp.com/?p=630">http://blog.chomperstomp.com/?p=630</a>
-- <br />
FreeSWITCH Source</p>