|
|
@ -233,6 +233,10 @@
|
|
|
|
<enum name="max_forwards">
|
|
|
|
<enum name="max_forwards">
|
|
|
|
<para>R/W The maximum number of forwards allowed.</para>
|
|
|
|
<para>R/W The maximum number of forwards allowed.</para>
|
|
|
|
</enum>
|
|
|
|
</enum>
|
|
|
|
|
|
|
|
<enum name="callid">
|
|
|
|
|
|
|
|
<para>R/O Call identifier log tag associated with the channel
|
|
|
|
|
|
|
|
e.g., <literal>[C-00000000]</literal>.</para>
|
|
|
|
|
|
|
|
</enum>
|
|
|
|
</enumlist>
|
|
|
|
</enumlist>
|
|
|
|
<xi:include xpointer="xpointer(/docs/info[@name='CHANNEL'])" />
|
|
|
|
<xi:include xpointer="xpointer(/docs/info[@name='CHANNEL'])" />
|
|
|
|
</parameter>
|
|
|
|
</parameter>
|
|
|
@ -450,6 +454,16 @@ static int func_channel_read(struct ast_channel *chan, const char *function,
|
|
|
|
ast_channel_lock(chan);
|
|
|
|
ast_channel_lock(chan);
|
|
|
|
snprintf(buf, len, "%d", ast_max_forwards_get(chan));
|
|
|
|
snprintf(buf, len, "%d", ast_max_forwards_get(chan));
|
|
|
|
ast_channel_unlock(chan);
|
|
|
|
ast_channel_unlock(chan);
|
|
|
|
|
|
|
|
} else if (!strcasecmp(data, "callid")) {
|
|
|
|
|
|
|
|
ast_callid callid;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
buf[0] = '\0';
|
|
|
|
|
|
|
|
ast_channel_lock(chan);
|
|
|
|
|
|
|
|
callid = ast_channel_callid(chan);
|
|
|
|
|
|
|
|
if (callid) {
|
|
|
|
|
|
|
|
ast_callid_strnprint(buf, len, callid);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
ast_channel_unlock(chan);
|
|
|
|
} else if (!ast_channel_tech(chan) || !ast_channel_tech(chan)->func_channel_read || ast_channel_tech(chan)->func_channel_read(chan, function, data, buf, len)) {
|
|
|
|
} else if (!ast_channel_tech(chan) || !ast_channel_tech(chan)->func_channel_read || ast_channel_tech(chan)->func_channel_read(chan, function, data, buf, len)) {
|
|
|
|
ast_log(LOG_WARNING, "Unknown or unavailable item requested: '%s'\n", data);
|
|
|
|
ast_log(LOG_WARNING, "Unknown or unavailable item requested: '%s'\n", data);
|
|
|
|
ret = -1;
|
|
|
|
ret = -1;
|
|
|
|