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 */
}
+ 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);