const char *chan_type;
const char *state;
const char *last_state;
+ const char *uuid = NULL;
+ char sessionid[255];
float txgain, rxgain;
+ switch_core_session_t *session = NULL;
ftdm_alarm_flag_t alarmflag;
ftdm_caller_data_t *caller_data;
ftdm_channel_t *ftdmchan;
return;
}
+ strcpy(sessionid, "(none)");
ftdmchan = ftdm_span_get_channel(span, chan_id);
span_id = ftdm_span_get_id(span);
ftdm_channel_get_sig_status(ftdmchan, &sigstatus);
ftdm_channel_get_alarms(ftdmchan, &alarmflag);
+ uuid = ftdm_channel_get_uuid(ftdmchan, 0);
+ if (!zstr(uuid)) {
+ if (!(session = switch_core_session_locate(uuid))) {
+ snprintf(sessionid, sizeof(sessionid), "%s (dead)", uuid);
+ } else {
+ snprintf(sessionid, sizeof(sessionid), "%s", uuid);
+ switch_core_session_rwunlock(session);
+ }
+ }
+
stream->write_function(stream,
"span_id: %u\n"
"chan_id: %u\n"
"aniII: %s\n"
"dnis: %s\n"
"rdnis: %s\n"
- "cause: %s\n\n",
+ "cause: %s\n"
+ "session: %s\n\n",
span_id,
chan_id,
phspan_id,
caller_data->aniII,
caller_data->dnis.digits,
caller_data->rdnis.digits,
- switch_channel_cause2str(caller_data->hangup_cause));
+ switch_channel_cause2str(caller_data->hangup_cause),
+ sessionid);
}
void dump_chan_xml(ftdm_span_t *span, uint32_t chan_id, switch_stream_handle_t *stream)