]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
freetdm: fix small bug reported in freeswitch-dev where the call_id member of sigmsg
authorMoises Silva <moy@sangoma.com>
Thu, 8 Sep 2011 16:50:34 +0000 (12:50 -0400)
committerMoises Silva <moy@sangoma.com>
Thu, 8 Sep 2011 16:51:48 +0000 (12:51 -0400)
         is not being set for SIGEVENT_START event

libs/freetdm/src/ftdm_io.c

index e190becd350d0c9feae86aef126c45b3e94d630e..95626299bbbad0729ee783faa2eae276922662c1 100644 (file)
@@ -5465,10 +5465,6 @@ FT_DECLARE(ftdm_status_t) ftdm_span_send_signal(ftdm_span_t *span, ftdm_sigmsg_t
        if (sigmsg->channel) {
                fchan = sigmsg->channel;
                ftdm_channel_lock(fchan);
-               sigmsg->chan_id = fchan->chan_id;
-               sigmsg->span_id = fchan->span_id;
-               sigmsg->call_id = fchan->caller_data.call_id;
-               sigmsg->call_priv = fchan->caller_data.priv;
        }
        
        /* some core things to do on special events */
@@ -5558,6 +5554,14 @@ FT_DECLARE(ftdm_status_t) ftdm_span_send_signal(ftdm_span_t *span, ftdm_sigmsg_t
 
        }
 
+       if (fchan) {
+               /* set members of the sigmsg that must be present for all events */
+               sigmsg->chan_id = fchan->chan_id;
+               sigmsg->span_id = fchan->span_id;
+               sigmsg->call_id = fchan->caller_data.call_id;
+               sigmsg->call_priv = fchan->caller_data.priv;
+       }
+
        /* if the signaling module uses a queue for signaling notifications, then enqueue it */
        if (ftdm_test_flag(span, FTDM_SPAN_USE_SIGNALS_QUEUE)) {
                ftdm_span_queue_signal(span, sigmsg);