<enum name="dahdi_span">
<para>R/O DAHDI span related to this channel.</para>
</enum>
+ <enum name="dahdi_group">
+ <para>R/O DAHDI logical group related to this channel.</para>
+ </enum>
<enum name="dahdi_type">
<para>R/O DAHDI channel type, one of:</para>
<enumlist>
<synopsis>Raised when a DAHDI channel is created or an underlying technology is associated with a DAHDI channel.</synopsis>
<syntax>
<channel_snapshot/>
+ <parameter name="DAHDIGroup">
+ <para>The DAHDI logical group associated with this channel.</para>
+ </parameter>
<parameter name="DAHDISpan">
<para>The DAHDI span associated with this channel.</para>
</parameter>
{
RAII_VAR(struct ast_str *, channel_string, NULL, ast_free);
struct ast_channel_blob *obj = stasis_message_data(msg);
- struct ast_json *span, *channel;
+ struct ast_json *group, *span, *channel;
channel_string = ast_manager_build_channel_state_string(obj->snapshot);
if (!channel_string) {
return NULL;
}
+ group = ast_json_object_get(obj->blob, "group");
span = ast_json_object_get(obj->blob, "span");
channel = ast_json_object_get(obj->blob, "channel");
return ast_manager_event_blob_create(EVENT_FLAG_CALL, "DAHDIChannel",
"%s"
+ "DAHDIGroup: %llu\r\n"
"DAHDISpan: %u\r\n"
"DAHDIChannel: %s\r\n",
ast_str_buffer(channel_string),
+ (ast_group_t)ast_json_integer_get(group),
(unsigned int)ast_json_integer_get(span),
ast_json_string_get(channel));
}
);
/*! \brief Sends a DAHDIChannel channel blob used to produce DAHDIChannel AMI messages */
-static void publish_dahdichannel(struct ast_channel *chan, int span, const char *dahdi_channel)
+static void publish_dahdichannel(struct ast_channel *chan, ast_group_t group, int span, const char *dahdi_channel)
{
RAII_VAR(struct ast_json *, blob, NULL, ast_json_unref);
ast_assert(dahdi_channel != NULL);
- blob = ast_json_pack("{s: i, s: s}",
+ blob = ast_json_pack("{s: i, s: i, s: s}",
+ "group", group,
"span", span,
"channel", dahdi_channel);
if (!blob) {
/* Real channel */
snprintf(ch_name, sizeof(ch_name), "%d", p->channel);
}
- publish_dahdichannel(chan, p->span, ch_name);
+ publish_dahdichannel(chan, p->group, p->span, ch_name);
}
#ifdef HAVE_PRI
ast_mutex_lock(&p->lock);
snprintf(buf, len, "%d", p->span);
ast_mutex_unlock(&p->lock);
+ } else if (!strcasecmp(data, "dahdi_group")) {
+ ast_mutex_lock(&p->lock);
+ snprintf(buf, len, "%llu", p->group);
+ ast_mutex_unlock(&p->lock);
} else if (!strcasecmp(data, "dahdi_type")) {
ast_mutex_lock(&p->lock);
switch (p->sig) {