<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">On Wed, Mar 13, 2019 at 1:24 PM Dan Cropp <<a href="mailto:dan@amtelco.com" target="_blank">dan@amtelco.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-US">
<div class="m_5032563944999979521gmail-m_3068396929699339446WordSection1">
<p class="MsoNormal">Running a test using asterisk 16.1.1 and two PCs with Firefox browsers.  I’m running the cmp2k demo.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I place calls into the same asterisk and using AMI answer the calls and then add them into the same confbridge.<u></u><u></u></p>
<p class="MsoNormal">Video mode is configured to follow_talker.  However, the Remote Video displayed to both browsers is always the video of the opposite call.  It’s not following whoever talked last.  I have the talk_detection_events enabled and looking at
 the event it seems asterisk isn’t always detecting the talking correctly. </p></div></div></blockquote><div><br></div><div>If Asterisk is not always detecting the talking then it might be that you need to adjust the dsp_talking_threshold and/or dsp_silence_threshold settings. I'm not sure why the video is not switching unless it's the same thing as the other problem you ran into and the browsers aren't handling the streams swapping.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="m_5032563944999979521gmail-m_3068396929699339446WordSection1"><p class="MsoNormal"> <u></u>
<u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Next question….<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">If asterisk is reporting channel PJSIP/webrtc_client1-0000000e is talking, shouldn’t the confbridge follow_talker setting change this confbridge VideoSource to be the Uniqueid of this channel?<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Event: ConfbridgeTalking^M<u></u><u></u></p>
<p class="MsoNormal">Privilege: call,all^M<u></u><u></u></p>
<p class="MsoNormal">Conference: Bridge2^M<u></u><u></u></p>
<p class="MsoNormal">BridgeUniqueid: ea6e7cb6-cc86-413e-885c-b0a25be887ee^M<u></u><u></u></p>
<p class="MsoNormal">BridgeType: base^M<u></u><u></u></p>
<p class="MsoNormal">BridgeTechnology: softmix^M<u></u><u></u></p>
<p class="MsoNormal">BridgeCreator: ConfBridge^M<u></u><u></u></p>
<p class="MsoNormal">BridgeName: Bridge2^M<u></u><u></u></p>
<p class="MsoNormal">BridgeNumChannels: 3^M<u></u><u></u></p>
<p class="MsoNormal">BridgeVideoSourceMode: talker^M<u></u><u></u></p>
<p class="MsoNormal">BridgeVideoSource: 1552492132.33^M<u></u><u></u></p>
<p class="MsoNormal">Channel: PJSIP/webrtc_client1-0000000e^M<u></u><u></u></p>
<p class="MsoNormal">ChannelState: 6^M<u></u><u></u></p>
<p class="MsoNormal">ChannelStateDesc: Up^M<u></u><u></u></p>
<p class="MsoNormal">CallerIDNum: webrtc_client1^M<u></u><u></u></p>
<p class="MsoNormal">CallerIDName: <unknown>^M<u></u><u></u></p>
<p class="MsoNormal">ConnectedLineNum: <unknown>^M<u></u><u></u></p>
<p class="MsoNormal">ConnectedLineName: <unknown>^M<u></u><u></u></p>
<p class="MsoNormal">Language: en^M<u></u><u></u></p>
<p class="MsoNormal">AccountCode: 19^M<u></u><u></u></p>
<p class="MsoNormal">Context: ABC^M<u></u><u></u></p>
<p class="MsoNormal">Exten: 55555^M<u></u><u></u></p>
<p class="MsoNormal">Priority: 14^M<u></u><u></u></p>
<p class="MsoNormal">Uniqueid: 1552492117.32^M<u></u><u></u></p>
<p class="MsoNormal">Linkedid: 1552492117.32^M<u></u><u></u></p>
<p class="MsoNormal">TalkingStatus: on^M<u></u><u></u></p>
<p class="MsoNormal">Admin: No^M</p></div></div></blockquote><div><br></div><div>While the follow_talker setting initiates the "switching" process I'd expect most of the time the Id's to be different here. When talking is detected, and when this event is dispatched can differ from when the video source actually changes. When the video source changes you should see a BridgeVideoSourceUpdate event. I'd suspect that usually it'd follow the ConfbridgeTalking event in most cases.</div><div> </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="m_5032563944999979521gmail-m_3068396929699339446WordSection1"><p class="MsoNormal"><u></u></p>
<p class="MsoNormal">Last question….<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I see times where it seems the talk detection seems to become stuck for a channel.  I see this event happening and the confbridge videosource becomes this channel’s uniqueid.  I have not talked into this PC/browser’s mic in hours.  Literally
 went to lunch and it seems stuck in the TalkingStatus: on state.<u></u><u></u></p>
<p class="MsoNormal">I have hundreds of ConfbridgeTalking events for the other channel (on and off) over the next several hours, but that channel’s TalkingStatus seems stuck.</p></div></div></blockquote><div><br></div><div>I am unsure what could cause this unless there is some kind of ambient noise that is being detected and your thresholds need to be adjusted. Otherwise it sounds like a bug to me. If this is happening consistently and your settings seem good then I'd suggest opening a ticket on the issue tracker [1]. Please attach (as *.txt files) a full asterisk debug log [2] (debug and verbose set to at least 5, and sip/pjsip debugging), along with the AMI log, and relevant configurations.</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="m_5032563944999979521gmail-m_3068396929699339446WordSection1"><p class="MsoNormal"><u></u></p>
<p class="MsoNormal">[03/13 10:49:00.595] DEBUG[49360] manager.c: Examining AMI event:<u></u><u></u></p>
<p class="MsoNormal">Event: ConfbridgeTalking^M<u></u><u></u></p>
<p class="MsoNormal">Privilege: call,all^M<u></u><u></u></p>
<p class="MsoNormal">Conference: OpBridge2^M<u></u><u></u></p>
<p class="MsoNormal">BridgeUniqueid: ea6e7cb6-cc86-413e-885c-b0a25be887ee^M<u></u><u></u></p>
<p class="MsoNormal">BridgeType: base^M<u></u><u></u></p>
<p class="MsoNormal">BridgeTechnology: softmix^M<u></u><u></u></p>
<p class="MsoNormal">BridgeCreator: ConfBridge^M<u></u><u></u></p>
<p class="MsoNormal">BridgeName: OpBridge2^M<u></u><u></u></p>
<p class="MsoNormal">BridgeNumChannels: 2^M<u></u><u></u></p>
<p class="MsoNormal">BridgeVideoSourceMode: talker^M<u></u><u></u></p>
<p class="MsoNormal">BridgeVideoSource: 1552492132.33^M<u></u><u></u></p>
<p class="MsoNormal">Channel: PJSIP/webrtc_client1-0000000f^M<u></u><u></u></p>
<p class="MsoNormal">ChannelState: 6^M<u></u><u></u></p>
<p class="MsoNormal">ChannelStateDesc: Up^M<u></u><u></u></p>
<p class="MsoNormal">CallerIDNum: webrtc_client1^M<u></u><u></u></p>
<p class="MsoNormal">CallerIDName: <unknown>^M<u></u><u></u></p>
<p class="MsoNormal">ConnectedLineNum: <unknown>^M<u></u><u></u></p>
<p class="MsoNormal">ConnectedLineName: <unknown>^M<u></u><u></u></p>
<p class="MsoNormal">Language: en^M<u></u><u></u></p>
<p class="MsoNormal">AccountCode: 19^M<u></u><u></u></p>
<p class="MsoNormal">Context: ABC^M<u></u><u></u></p>
<p class="MsoNormal">Exten: 4444^M<u></u><u></u></p>
<p class="MsoNormal">Priority: 14^M<u></u><u></u></p>
<p class="MsoNormal">Uniqueid: 1552492132.33^M<u></u><u></u></p>
<p class="MsoNormal">Linkedid: 1552492132.33^M<u></u><u></u></p>
<p class="MsoNormal">TalkingStatus: on^M<u></u><u></u></p>
<p class="MsoNormal">Admin: No^M<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">The templates I’m using are<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Action: SetVar<u></u><u></u></p>
<p class="MsoNormal">ActionID: C173<u></u><u></u></p>
<p class="MsoNormal">Channel: PJSIP/webrtc_client1-0000000f<u></u><u></u></p>
<p class="MsoNormal">Variable: CONFBRIDGE(bridge,template)<u></u><u></u></p>
<p class="MsoNormal">Value: 2<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Action: SetVar<u></u><u></u></p>
<p class="MsoNormal">ActionID: C174<u></u><u></u></p>
<p class="MsoNormal">Channel: PJSIP/webrtc_client1-0000000f<u></u><u></u></p>
<p class="MsoNormal">Variable: CONFBRIDGE(user,template)<u></u><u></u></p>
<p class="MsoNormal">Value: 4<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Action: SetVar<u></u><u></u></p>
<p class="MsoNormal">ActionID: C176<u></u><u></u></p>
<p class="MsoNormal">Channel: PJSIP/webrtc_client1-0000000e<u></u><u></u></p>
<p class="MsoNormal">Variable: CONFBRIDGE(bridge,template)<u></u><u></u></p>
<p class="MsoNormal">Value: 2<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Action: SetVar<u></u><u></u></p>
<p class="MsoNormal">ActionID: C177<u></u><u></u></p>
<p class="MsoNormal">Channel: PJSIP/webrtc_client1-0000000e<u></u><u></u></p>
<p class="MsoNormal">Variable: CONFBRIDGE(user,template)<u></u><u></u></p>
<p class="MsoNormal">Value: 4<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">[2]<u></u><u></u></p>
<p class="MsoNormal">type = bridge<u></u><u></u></p>
<p class="MsoNormal">language = en<u></u><u></u></p>
<p class="MsoNormal">internal_sample_rate = 0<u></u><u></u></p>
<p class="MsoNormal">mixing_interval = 20<u></u><u></u></p>
<p class="MsoNormal">record_file_append = no<u></u><u></u></p>
<p class="MsoNormal">max_members = 10<u></u><u></u></p>
<p class="MsoNormal">video_mode = follow_talker<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">[4]<u></u><u></u></p>
<p class="MsoNormal">type = user<u></u><u></u></p>
<p class="MsoNormal">admin = no<u></u><u></u></p>
<p class="MsoNormal">marked = no<u></u><u></u></p>
<p class="MsoNormal">startmuted = no<u></u><u></u></p>
<p class="MsoNormal">music_on_hold_when_empty = no<u></u><u></u></p>
<p class="MsoNormal">quiet = yes<u></u><u></u></p>
<p class="MsoNormal">wait_marked = no<u></u><u></u></p>
<p class="MsoNormal">end_marked = no<u></u><u></u></p>
<p class="MsoNormal">dsp_drop_silence = yes<u></u><u></u></p>
<p class="MsoNormal">dsp_silence_threshold = 2500<u></u><u></u></p>
<p class="MsoNormal">dsp_talking_threshold = 160<u></u><u></u></p>
<p class="MsoNormal">denoise = no<u></u><u></u></p>
<p class="MsoNormal">jitterbuffer = yes<u></u><u></u></p>
<p class="MsoNormal">talk_detection_events = yes<u></u><u></u></p>
<p class="MsoNormal">dtmf_passthrough = no<u></u><u></u></p>
<p class="MsoNormal">announce_user_count = no<u></u><u></u></p>
<p class="MsoNormal">announce_join_leave = no<u></u><u></u></p>
<p class="MsoNormal">announce_user_count_all = no<u></u><u></u></p>
<p class="MsoNormal">announce_only_user = no<u></u><u></u></p>
<p class="MsoNormal">send_events = no<u></u><u></u></p>
<p class="MsoNormal">echo_events = no<u></u><u></u></p>
<p class="MsoNormal">announce_join_leave_review = no<u></u><u></u></p>
</div>
</div>

-- <br><br></blockquote></div><br clear="all"><div><br></div><div>[1] <a href="https://issues.asterisk.org/" target="_blank">https://issues.asterisk.org/</a></div><div>[2] <a href="https://wiki.asterisk.org/wiki/display/AST/Collecting+Debug+Information" target="_blank">https://wiki.asterisk.org/wiki/display/AST/Collecting+Debug+Information</a></div><div><br></div><div>Thanks!</div><div><br></div>-- <br><div dir="ltr" class="m_5032563944999979521gmail_signature"><div dir="ltr">Kevin Harwell<div>Digium - A Sangoma Company | Senior Software Developer<div>445 Jan Davis Drive NW - Huntsville, AL 35806 - US</div><div>Check us out at: <a href="https://digium.com" target="_blank">https://digium.com</a> & <a href="https://asterisk.org" target="_blank">https://asterisk.org</a></div></div></div></div></div></div></div>