@ -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 ;