Confbrige TalkingStatus Event Not Working Properly

Hi,
I am trying to get “user talking status” using Confbridge. I updated confbridge.conf file to be able to set Talk Detect events. Here is the user profile I defined;

[conf_user_profile]
type=user
quiet=no
dtmf_passthrough=yes
talk_detection_events=yes
dsp_drop_silence=yes
startmuted=yes
end_marked=yes
dsp_talking_threshold=8000
dsp_silence_threshold=2000

When I run the CLI command, “confbridge show profile user conf_user_profile”, I get the following;

--------------------------------------------
Name:                    conf_user_profile
Admin:                   false
Marked User:             false
Start Muted:             true
MOH When Empty:          disabled
MOH Class:               default
Announcement:            
Quiet:                   disabled
Wait Marked:             disabled
END Marked:              enabled
Drop_silence:            enabled
Silence Threshold:       2000ms
Talking Threshold:       6000ms
Denoise:                 disabled
Jitterbuffer:            disabled
Talk Detect Events:      enabled
DTMF Pass Through:       enabled
PIN:                     None
Announce User Count:     disabled
Announce join/leave:     disabled
Announce User Count all: disabled

According to the CLI output, everything seems OK. I wait AMI Hook event is triggered when user talks. But when I apply the scenario, “Confbridge Talking On” event is triggered whenever user joins the conference, not the time user starts talking

[Jun  7 14:52:31] DEBUG[11124][C-00000001]: file.c:2646 amihook_helper:  AMI Event: 
Category: 2 Event: ConfbridgeTalking
Event: ConfbridgeTalking
Privilege: call,all
Channel: SIP/4502-00000001
Uniqueid: 1528372347.4
Conference: 4444
TalkingStatus: on

Most probably, another setting overrides my settings. Do you have any setting or configuration item to look for ?

I don’t believe there is any other setting that would cause that - do you only get the single event? No talking off? Have you recorded the stream and listened to it to see what it is like?

I registered to all AMI events, so I listen and catch all AMI events in my module. Although the microphone is muted, it behaves like client is talking… There is call record( too small size, 44 byte ) in the server, but there is no voice…

If there is no audio stream then the code won’t detect it as no talking currently, it requires a constant stream of media to examine.

Do you have any idea about why regarding AMI event; “Confbridge Talking On” is triggered after the user joins the conference, and ConfbridgeJoin event triggered?

It could be a small burst of media or something, I don’t know anything further.

Is there any CLI command to check if there is any voice or media at that time ?

If using SIP then the “rtp set debug on” CLI command will show media being sent and received.

Here is the rtp trace written on the console whenever I join the conference;

10.1.10.80 => Client IP

Sent RTP packet to 10.1.10.80:5086 (type 00, seq 043548, ts 021760, len 000160)
Got RTP packet from 10.1.10.80:5086 (type 00, seq 038215, ts 021760, len 000160)

Why does it start to send packets when the call is started ?

Can it be somehow related to the following declarations in bridge_softmix.c ?

/* This is the threshold in ms at which a channel’s own audio will stop getting

  • mixed out its own write audio stream because it is not talking. */
    #define DEFAULT_SOFTMIX_SILENCE_THRESHOLD 2500
    #define DEFAULT_SOFTMIX_TALKING_THRESHOLD 160

Those are the default settings. It’s possible that yours aren’t getting applied, but someone would need to dig into it deeper and follow your particular scenario and see. It’s not something you can do it at a high level.

In conf_config_parser.c file, talking threshold value seems to be set from silence threshold value of user profile … I could not understand the following registration, do you know the reason behind this approach ?
By the way, I am using asterisk 11.5.0 numbered version

aco_option_register(&cfg_info, "dsp_silence_threshold", ACO_EXACT, user_types, __stringify(DEFAULT_SILENCE_THRESHOLD), OPT_UINT_T, 0, FLDSET(struct user_profile, silence_threshold));
aco_option_register(&cfg_info, "dsp_talking_threshold", ACO_EXACT, user_types, __stringify(DEFAULT_TALKING_THRESHOLD), OPT_UINT_T, 0, FLDSET(struct user_profile, silence_threshold));

Your version is quite old and unsupported, I don’t really know what things were like back then - it could have changed.

When I check the current channels, there are 4 active channels…

Bridge/0x7f4bec00b83 s@default:1 Up (None)
ConfBridgeRecorder/c s@default:1 Up (None)
SIP/4502-00000000 4503@CommPanelsWithA Up ConfBridge(4444,)
Bridge/0x7f4bec00b83 s@default:1 Up (None)
4 active channels
1 active call
1 call processed

I only use the bold one, do you have any idea about why others are created ? Can it be the reason of why talk detect event is raised ?

Bridge channels are for playing media into the bridge. The ConfBridgeRecorder channel is for just that, recording the conference bridge. It would not be the reason the event is raised.

By the way, when I join the conference the speaker announce something like “You join the conference bla bla…” . Can asterisk somehow understand it like the client talking ?

Do you see anything wrong in the following trace ? Although I muted my microphone, AMI catches Confbridge Talking On event …

[Jun  8 11:14:30] DEBUG[4369][C-00000000]: res_recording.c:2782 amihook_helper:  AMI Event: 
Category: 2 Event: Newchannel
Event: Newchannel
Privilege: call,all
Channel: Bridge/0x7f4c34011d98-input
ChannelState: 6
ChannelStateDesc: Up
CallerIDNum: 
CallerIDName: 
AccountCode: 
Exten: 
Context: 
Uniqueid: 1528445670.2


[Jun  8 11:14:30] DEBUG[2111]: manager.c:4787 match_filter: Examining event:
Event: Newchannel
Privilege: call,all
Channel: Bridge/0x7f4c34011d98-input
ChannelState: 6
ChannelStateDesc: Up
CallerIDNum: 
CallerIDName: 
AccountCode: 
Exten: 
Context: 
Uniqueid: 1528445670.2


[Jun  8 11:14:30] DEBUG[2111]: manager.c:4787 match_filter: Examining event:
Event: CEL
Privilege: call,all
EventName: CHAN_START
AccountCode: 
CallerIDnum: 
CallerIDname: 
CallerIDani: 
CallerIDrdnis: 
CallerIDdnid: 
Exten: s
Context: default
Channel: Bridge/0x7f4c34011d98-input
Application: 
AppData: 
EventTime: 2018-06-08 11:14:30
AMAFlags: DOCUMENTATION
UniqueID: 1528445670.2
LinkedID: 1528445670.2
Userfield: 
Peer: 
PeerAccount: 
Extra: 


[Jun  8 11:14:30] DEBUG[4369][C-00000000]: res_recording.c:2782 amihook_helper:  AMI Event: 
Category: 2 Event: Newchannel
Event: Newchannel
Privilege: call,all
Channel: Bridge/0x7f4c34011d98-output
ChannelState: 6
ChannelStateDesc: Up
CallerIDNum: 
CallerIDName: 
AccountCode: 
Exten: 
Context: 
Uniqueid: 1528445670.3

[Jun  8 11:14:30] DEBUG[2100]: res_recording.c:2782 amihook_helper:  AMI Event: 
Category: 2 Event: CEL
Event: CEL
Privilege: call,all
EventName: CHAN_START
AccountCode: 
CallerIDnum: 
CallerIDname: 
CallerIDani: 
CallerIDrdnis: 
CallerIDdnid: 
Exten: s
Context: default
Channel: Bridge/0x7f4c34011d98-input
Application: 
AppData: 
EventTime: 2018-06-08 11:14:30
AMAFlags: DOCUMENTATION
UniqueID: 1528445670.2
LinkedID: 1528445670.2
Userfield: 
Peer: 
PeerAccount: 
Extra: 

[Jun  8 11:14:30] DEBUG[2100]: res_recording.c:2782 amihook_helper:  AMI Event: 
Category: 2 Event: CEL
Event: CEL
Privilege: call,all
EventName: CHAN_START
AccountCode: 
CallerIDnum: 
CallerIDname: 
CallerIDani: 
CallerIDrdnis: 
CallerIDdnid: 
Exten: s
Context: default
Channel: Bridge/0x7f4c34011d98-output
Application: 
AppData: 
EventTime: 2018-06-08 11:14:30
AMAFlags: DOCUMENTATION
UniqueID: 1528445670.3
LinkedID: 1528445670.3
Userfield: 
Peer: 
PeerAccount: 
Extra: 


[Jun  8 11:14:30] DEBUG[2100]: res_recording.c:2782 amihook_helper:  AMI Event: 
Category: 2 Event: CEL
Event: CEL
Privilege: call,all
EventName: ANSWER
AccountCode: 
CallerIDnum: 
CallerIDname: 
CallerIDani: 
CallerIDrdnis: 
CallerIDdnid: 
Exten: s
Context: default
Channel: Bridge/0x7f4c34011d98-output
Application: 
AppData: 
EventTime: 2018-06-08 11:14:30
AMAFlags: DOCUMENTATION
UniqueID: 1528445670.3
LinkedID: 1528445670.3
Userfield: 
Peer: 
PeerAccount: 
Extra: 


[Jun  8 11:14:30] DEBUG[2100]: res_recording.c:2782 amihook_helper:  AMI Event: 
Category: 2 Event: CEL
Event: CEL
Privilege: call,all
EventName: ANSWER
AccountCode: 
CallerIDnum: 
CallerIDname: 
CallerIDani: 
CallerIDrdnis: 
CallerIDdnid: 
Exten: s
Context: default
Channel: Bridge/0x7f4c34011d98-input
Application: 
AppData: 
EventTime: 2018-06-08 11:14:30
AMAFlags: DOCUMENTATION
UniqueID: 1528445670.2
LinkedID: 1528445670.2
Userfield: 
Peer: 
PeerAccount: 
Extra: 


[Jun  8 11:14:30] DEBUG[4369][C-00000000]: app_confbridge.c:1355 alloc_playback_chan: Created a playback channel to conference bridge '4444'
[Jun  8 11:14:30] DEBUG[2111]: manager.c:4787 match_filter: Examining event:
Event: Newchannel
Privilege: call,all
Channel: Bridge/0x7f4c34011d98-output
ChannelState: 6
ChannelStateDesc: Up
CallerIDNum: 
CallerIDName: 
AccountCode: 
Exten: 
Context: 
Uniqueid: 1528445670.3


[Jun  8 11:14:30] DEBUG[2111]: manager.c:4787 match_filter: Examining event:
Event: CEL
Privilege: call,all
EventName: CHAN_START
AccountCode: 
CallerIDnum: 
CallerIDname: 
CallerIDani: 
CallerIDrdnis: 
CallerIDdnid: 
Exten: s
Context: default
Channel: Bridge/0x7f4c34011d98-output
Application: 
AppData: 
EventTime: 2018-06-08 11:14:30
AMAFlags: DOCUMENTATION
UniqueID: 1528445670.3
LinkedID: 1528445670.3
Userfield: 
Peer: 
PeerAccount: 
Extra: 


[Jun  8 11:14:30] DEBUG[2111]: manager.c:4787 match_filter: Examining event:
Event: CEL
Privilege: call,all
EventName: ANSWER
AccountCode: 
CallerIDnum: 
CallerIDname: 
CallerIDani: 
CallerIDrdnis: 
CallerIDdnid: 
Exten: s
Context: default
Channel: Bridge/0x7f4c34011d98-output
Application: 
AppData: 
EventTime: 2018-06-08 11:14:30
AMAFlags: DOCUMENTATION
UniqueID: 1528445670.3
LinkedID: 1528445670.3
Userfield: 
Peer: 
PeerAccount: 
Extra: 


[Jun  8 11:14:30] DEBUG[2111]: manager.c:4787 match_filter: Examining event:
Event: CEL
Privilege: call,all
EventName: ANSWER
AccountCode: 
CallerIDnum: 
CallerIDname: 
CallerIDani: 
CallerIDrdnis: 
CallerIDdnid: 
Exten: s
Context: default
Channel: Bridge/0x7f4c34011d98-input
Application: 
AppData: 
EventTime: 2018-06-08 11:14:30
AMAFlags: DOCUMENTATION
UniqueID: 1528445670.2
LinkedID: 1528445670.2
Userfield: 
Peer: 
PeerAccount: 
Extra: 


[Jun  8 11:14:30] DEBUG[4369][C-00000000]: channel.c:3604 ast_settimeout: Scheduling timer at (50 requested / 50 actual) timer ticks per second
    -- <Bridge/0x7f4c34011d98-input> Playing 'confbridge-join.slin' (language 'en')
[Jun  8 11:14:30] DEBUG[4423][C-00000000]: bridging.c:940 bridge_channel_join: Joining bridge channel 0x7f4c34001ac8 to bridge 0x7f4c340045f8
[Jun  8 11:14:30] DEBUG[4423][C-00000000]: bridging.c:162 bridge_array_add: Added channel Bridge/0x7f4c34011d98-output(0x7f4c3402d7a8) to bridge array on 0x7f4c340045f8, new count is 2
[Jun  8 11:14:30] DEBUG[4423][C-00000000]: bridging.c:592 bridge_make_compatible: Bridge 0x7f4c340045f8 is happy that channel Bridge/0x7f4c34011d98-output already has read format slin
[Jun  8 11:14:30] DEBUG[4423][C-00000000]: bridging.c:613 bridge_make_compatible: Bridge 0x7f4c340045f8 is happy that channel Bridge/0x7f4c34011d98-output already has write format slin
[Jun  8 11:14:30] DEBUG[4423][C-00000000]: bridging.c:979 bridge_channel_join: Giving bridge technology softmix notification that 0x7f4c34001ac8 is joining bridge 0x7f4c340045f8
[Jun  8 11:14:30] DEBUG[4423][C-00000000]: bridge_softmix.c:388 softmix_bridge_join: softmix_bridge_join 
[Jun  8 11:14:30] DEBUG[4423][C-00000000]: bridge_softmix.c:342 set_softmix_bridge_data: set_softmix_bridge_data 
[Jun  8 11:14:30] DEBUG[4423][C-00000000]: dsp.c:482 ast_tone_detect_init: Setup tone 1100 Hz, 500 ms, block_size=160, hits_required=21
[Jun  8 11:14:30] DEBUG[4423][C-00000000]: dsp.c:482 ast_tone_detect_init: Setup tone 2100 Hz, 2600 ms, block_size=160, hits_required=116
[Jun  8 11:14:30] DEBUG[4423][C-00000000]: bridge_softmix.c:378 set_softmix_bridge_data: set_softmix_bridge_data, dsp talking thresholSSSs is set to 160 
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:549 softmix_bridge_write:   totalsilence=0,silence_threshold=2500, sc->talking=0 
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:586 softmix_bridge_write:   softmix_bridge_write:: ast_bridge_notify_talking CALLED, update_talking=1 !!!
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:549 softmix_bridge_write:   totalsilence=0,silence_threshold=2500, sc->talking=-1 
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:549 softmix_bridge_write:   totalsilence=0,silence_threshold=2500, sc->talking=-1 
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:549 softmix_bridge_write:   totalsilence=0,silence_threshold=2500, sc->talking=-1 
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:549 softmix_bridge_write:   totalsilence=0,silence_threshold=2500, sc->talking=-1 
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:549 softmix_bridge_write:   totalsilence=0,silence_threshold=2500, sc->talking=-1 
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:549 softmix_bridge_write:   totalsilence=0,silence_threshold=2500, sc->talking=-1 
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:549 softmix_bridge_write:   totalsilence=0,silence_threshold=2500, sc->talking=-1 
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:549 softmix_bridge_write:   totalsilence=0,silence_threshold=2500, sc->talking=-1 
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:549 softmix_bridge_write:   totalsilence=0,silence_threshold=2500, sc->talking=-1 
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:549 softmix_bridge_write:   totalsilence=0,silence_threshold=2500, sc->talking=-1 
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:549 softmix_bridge_write:   totalsilence=0,silence_threshold=2500, sc->talking=-1 
[Jun  8 11:14:30] DEBUG[2137]: chan_sip.c:3874 __sip_xmit: Trying to put 'OPTIONS sip' onto UDP socket destined for 10.1.90.52:5060
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:549 softmix_bridge_write:   totalsilence=0,silence_threshold=2500, sc->talking=-1 
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:549 softmix_bridge_write:   totalsilence=20,silence_threshold=2500, sc->talking=-1 
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:549 softmix_bridge_write:   totalsilence=40,silence_threshold=2500, sc->talking=-1 
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:549 softmix_bridge_write:   totalsilence=60,silence_threshold=2500, sc->talking=-1 
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:549 softmix_bridge_write:   totalsilence=80,silence_threshold=2500, sc->talking=-1 
[Jun  8 11:14:30] DEBUG[2137]: chan_sip.c:3874 __sip_xmit: Trying to put 'OPTIONS sip' onto UDP socket destined for 10.1.10.59:5060
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:549 softmix_bridge_write:   totalsilence=100,silence_threshold=2500, sc->talking=-1 
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: channel.c:3604 ast_settimeout: Scheduling timer at (174 requested / 174 actual) timer ticks per second
[Jun  8 11:14:30] WARNING[4423][C-00000000]: bridge_softmix.c:549 softmix_bridge_write:   totalsilence=105,silence_threshold=2500, sc->talking=-1 
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: channel.c:3604 ast_settimeout: Scheduling timer at (0 requested / 0 actual) timer ticks per second
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: channel.c:3604 ast_settimeout: Scheduling timer at (0 requested / 0 actual) timer ticks per second
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: channel.c:3604 ast_settimeout: Scheduling timer at (0 requested / 0 actual) timer ticks per second
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: app_confbridge.c:1391 play_sound_helper: Departing underlying channel 'Bridge/0x7f4c34011d98-output' from bridge '0x7f4c340045f8'
[Jun  8 11:14:30] DEBUG[4423][C-00000000]: bridging.c:1036 bridge_channel_join: Giving bridge technology softmix notification that 0x7f4c34001ac8 is leaving bridge 0x7f4c340045f8
[Jun  8 11:14:30] DEBUG[4423][C-00000000]: bridging.c:198 bridge_array_remove: Removed channel 0x7f4c3402d7a8 from bridge array on 0x7f4c340045f8, new count is 1
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: res_recording.c:2782 amihook_helper:  AMI Event: 
Category: 2 Event: ConfbridgeJoin
Event: ConfbridgeJoin
Privilege: call,all
Channel: SIP/4502-00000000
Uniqueid: 1528445666.0
Conference: 4444
CallerIDnum: 4502
CallerIDname: didem


[Jun  8 11:14:30] DEBUG[4369][C-00000000]: bridging.c:940 bridge_channel_join: Joining bridge channel 0x7f4c34029d68 to bridge 0x7f4c340045f8
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: bridging.c:162 bridge_array_add: Added channel SIP/4502-00000000(0x7f4c4402a838) to bridge array on 0x7f4c340045f8, new count is 2
[Jun  8 11:14:30] DEBUG[2111]: manager.c:4787 match_filter: Examining event:
Event: ConfbridgeJoin
Privilege: call,all
Channel: SIP/4502-00000000
Uniqueid: 1528445666.0
Conference: 4444
CallerIDnum: 4502
CallerIDname: didem


[Jun  8 11:14:30] DEBUG[4369][C-00000000]: bridging.c:583 bridge_make_compatible: Bridge technology softmix wants to read any of formats (slin) but channel has ulaw
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: channel.c:5388 set_format: Set channel SIP/4502-00000000 to read format slin
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: bridging.c:590 bridge_make_compatible: Bridge 0x7f4c340045f8 put channel SIP/4502-00000000 into read format slin
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: bridging.c:604 bridge_make_compatible: Bridge technology softmix wants to write any of formats (slin) but channel has ulaw
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: channel.c:5388 set_format: Set channel SIP/4502-00000000 to write format slin
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: bridging.c:611 bridge_make_compatible: Bridge 0x7f4c340045f8 put channel SIP/4502-00000000 into write format slin
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: bridging.c:979 bridge_channel_join: Giving bridge technology softmix notification that 0x7f4c34029d68 is joining bridge 0x7f4c340045f8
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: bridge_softmix.c:388 softmix_bridge_join: softmix_bridge_join 
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: bridge_softmix.c:342 set_softmix_bridge_data: set_softmix_bridge_data 
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: dsp.c:482 ast_tone_detect_init: Setup tone 1100 Hz, 500 ms, block_size=160, hits_required=21
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: dsp.c:482 ast_tone_detect_init: Setup tone 2100 Hz, 2600 ms, block_size=160, hits_required=116
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: bridge_softmix.c:375 set_softmix_bridge_data: set_softmix_bridge_data, dsp talking threshold is set to 5000 
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: res_rtp_asterisk.c:2465 ast_rtp_raw_write: Difference is 2880, ms is 380
[Jun  8 11:14:30] DEBUG[2111]: manager.c:5206 process_message: Running action 'Monitor'
[Jun  8 11:14:30] DEBUG[2111]: res_monitor.c:402 ast_monitor_start: Cannot start monitoring SIP/4502-00000000, already monitored
[Jun  8 11:14:30] DEBUG[2111]: res_monitor.c:603 ast_monitor_change_fname: comparing tmpstring /var/spool/asterisk/monitor/20180608111/20180608111426.0 to filename_base /var/spool/asterisk/monitor/20180608111/20180608111426.0
[Jun  8 11:14:30] DEBUG[2111]: res_monitor.c:610 ast_monitor_change_fname: No need to rename monitor filename to itself
[Jun  8 11:14:30] WARNING[4369][C-00000000]: bridge_softmix.c:549 softmix_bridge_write: totalsilence=20,silence_threshold=5000, sc->talking=0 
[Jun  8 11:14:30] WARNING[4369][C-00000000]: bridge_softmix.c:586 softmix_bridge_write: softmix_bridge_write:: ast_bridge_notify_talking CALLED, update_talking=1 !!!
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: app_confbridge.c:1426 conf_handle_talker_cb: app_confbridge::conf_handle_talker_cb 
[Jun  8 11:14:30] WARNING[4369][C-00000000]:app_confbridge.c:1457 conf_handle_talker_cb: app_confbridge::conf_handle_talker_cb, ConfbridgeTalking EVENT WAS TRIGGERED! Talking = on 
[Jun  8 11:14:30] DEBUG[4369][C-00000000]: res_recording.c:2782 amihook_helper:  AMI Event: 
Category: 2 Event: ConfbridgeTalking
Event: ConfbridgeTalking
Privilege: call,all
Channel: SIP/4502-00000000
Uniqueid: 1528445666.0
Conference: 4444
TalkingStatus: on



I don’t have anything else to add, as I previously mentioned without diving deep into it, reproducing the scenario, etc, there’s nothing else I can really say or provide.

I tried to focus on the problem, and checked if the related callback function is triggered or not successfully. When using confbridge while making call, ConfbridgeTalking event should be triggered with “On”/“Off” parameters according to the source code below.;

static void conf_handle_talker_cb(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel, void *pvt_data)
{
	char *conf_name = pvt_data;
	int talking;

	switch (bridge_channel->state) {
	case AST_BRIDGE_CHANNEL_STATE_START_TALKING:
		talking = 1;
		break;
	case AST_BRIDGE_CHANNEL_STATE_STOP_TALKING:
		talking = 0;
		break;
	default:
		return; /* uhh this shouldn't happen, but bail if it does. */
	}

	/* notify AMI someone is has either started or stopped talking */
	/*** DOCUMENTATION
		<managerEventInstance>
			<synopsis>Raised when a conference participant has started or stopped talking.</synopsis>
			<syntax>
				<xi:include xpointer="xpointer(/docs/managerEvent[@name='ConfbridgeStart']/managerEventInstance/syntax/parameter[@name='Conference'])" />
				<parameter name="TalkingStatus">
					<enumlist>
						<enum name="on"/>
						<enum name="off"/>
					</enumlist>
				</parameter>
			</syntax>
		</managerEventInstance>
	***/
	ast_manager_event(bridge_channel->chan, EVENT_FLAG_CALL, "ConfbridgeTalking",
	      "Channel: %s\r\n"
	      "Uniqueid: %s\r\n"
	      "Conference: %s\r\n"
	      "TalkingStatus: %s\r\n",
	      ast_channel_name(bridge_channel->chan), ast_channel_uniqueid(bridge_channel->chan), conf_name, talking ? "on" : "off");
}

When I mute&unmute the microphone, this event is not triggered. There isn’t any rror/warning level log in messages file. Is there anything to be checked regarding this problem ?

As I stated previously it requires a constant stream of audio - if mue and unmute merely causes audio to not flow, then it won’t work as expected.