[Home]

Summary:ASTERISK-29618: ConfBridge errors on creation conference room
Reporter:Alexander Zharov (alex_net)Labels:webrtc
Date Opened:2021-08-27 08:24:41Date Closed:2021-09-08 09:44:46
Priority:MinorRegression?
Status:Closed/CompleteComponents:Applications/app_confbridge Resources/res_pjsip
Versions:16.20.0 Frequency of
Occurrence
Constant
Related
Issues:
Environment:CentOS Linux 7.4.170, kernel 3.10.0-1127.13.1.el7.x86_64, libsrtp 1.5.4Attachments:( 0) aster_cli_16.20.0.log
( 1) aster_cli_16.9.0.log
( 2) debug_log_29618_16.20.0_bad_call.log
( 3) debug_log_29618_16.9.0_good_call.log
( 4) debug_log_29618_20210907.log
Description:After Asterisk upgrade from 16.9.0 to 16.20.0, we began to experience problems with the application when creating ConfBridge conference rooms for 2+ participants. Video streams for some participants do not appear.
Connection schema: Asterisk - Kamailio - WebRTC Users

{code:title=logs|borderStyle=solid}
[Aug 25 11:11:53] ERROR[106619][C-00000001]: bridge_softmix.c:669 sfu_topologies_on_join:  CBAnn/conference_room_37197-00000000;2: Couldn't request topology change
[Aug 25 11:12:08] ERROR[106435]: res_pjsip_session.c:2158 resolve_refresh_media_states:  State not consistent
[Aug 25 11:12:08] WARNING[106435]: res_pjsip_session.c:2299 sip_session_refresh:  PJSIP/webrtc-00000000: Unable to merge media states
{code}

{code:title=extensions.conf|borderStyle=solid}
[conference_room]
exten => create,1,NoOp('Create conference room')
same => n,GoSub(add_member,1)

exten => add_member,1,NoOp('Add member to conference room')
same => n,GoSub(configure_client,1)
same => n,GoSub(configure_bridge,1)
same => n,GoTo(join,1)

exten => configure_bridge,1,NoOp('Configure bridge profile')
same => n,Set(CONFBRIDGE(bridge,template)=conference_members_bridge)
same => n,Return()

exten => configure_client,1,NoOp('Configure client params')
same => n,Set(user_profile=client_profile)
same => n,Set(user_menu=client_menu)
same => n,Return()

exten => join,1,NoOp(Join to ConfBridge: conf_name=${conf_name}, user_profile=${user_profile}, user_menu=${user_menu})
same => n,ConfBridge(${conf_name},,${user_profile},${user_menu})
same => n,Hangup()
{code}

{code:title=confbridge.conf|borderStyle=solid}
[client_profile]
type=user
end_marked=yes
jitterbuffer=no ; Jitterbuffer should be disabled when video is used.
quiet=yes
startmuted=no
dsp_drop_silence=no
talk_detection_events=no

[conference_members_bridge]
type=bridge
video_mode=sfu
max_members=15
record_file_timestamp=no
mixing_interval=10
video_update_discard=1000
remb_send_interval=1000
remb_behavior=average_all
{code}

Steps:
{code:title=ARI|borderStyle=solid}
1. Add first user to the conference:
POST http://asterisk.node:8088/ari/channels
{"endpoint": "PJSIP/81014504875@webrtc", "callerId": "<8007709999>", "context": "conference_room", "extension": "create", "variables": {"conf_name": "conference_room_37368", "formats": "opus,vp8" ... }

2. Add other participants. For example:
POST http://asterisk.node:8088/ari/channels
{"endpoint": "PJSIP/81014504876@webrtc", "callerId": "<8007709999>", "context": "conference_room", "extension": "add_member", "variables": {"conf_name": "conference_room_37368", "originator": "37368" ...}

Where "originator": "37368" - first user's channelId
{code}
Comments:By: Asterisk Team (asteriskteam) 2021-08-27 08:24:44.664-0500

Thanks for creating a report! The issue has entered the triage process. That means the issue will wait in this status until a Bug Marshal has an opportunity to review the issue. Once the issue has been reviewed you will receive comments regarding the next steps towards resolution. Please note that log messages and other files should not be sent to the Sangoma Asterisk Team unless explicitly asked for. All files should be placed on this issue in a sanitized fashion as needed.

A good first step is for you to review the [Asterisk Issue Guidelines|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines] if you haven't already. The guidelines detail what is expected from an Asterisk issue report.

Then, if you are submitting a patch, please review the [Patch Contribution Process|https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process].

Please note that once your issue enters an open state it has been accepted. As Asterisk is an open source project there is no guarantee or timeframe on when your issue will be looked into. If you need expedient resolution you will need to find and pay a suitable developer. Asking for an update on your issue will not yield any progress on it and will not result in a response. All updates are posted to the issue when they occur.

Please note that by submitting data, code, or documentation to Sangoma through JIRA, you accept the Terms of Use present at [https://www.asterisk.org/terms-of-use/|https://www.asterisk.org/terms-of-use/].

By: Benjamin Keith Ford (bford) 2021-08-27 12:27:09.404-0500

Thank you for taking the time to report this bug and helping to make Asterisk better. Unfortunately, we cannot work on this bug because your description did not include enough information. Please read over the Asterisk Issue Guidelines [1] which discusses the information necessary for your issue to be resolved and the format that information needs to be in. We would be grateful if you would then provide a more complete description of the problem. At a minimum, we need:

1. The specific steps or actions you took that caused you to encounter the problem.
2. The behavior you expected and the location of documentation that led you to that expectation.
3. The behavior you actually encountered.

To demonstrate the issue in detail, please include Asterisk log files generated per the instructions on the wiki [2]. If applicable, please ensure that protocol-level trace debugging is enabled, e.g., 'sip set debug on' if the issue involves chan_sip, and configuration information such as dialplan and channel configuration.

Thanks!

[1] https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines

[2] https://wiki.asterisk.org/wiki/display/AST/Collecting+Debug+Information



By: Alexander Zharov (alex_net) 2021-08-30 10:27:20.200-0500

I have attached diagnostic information and configuration files collected according to wiki instructions.

By: Benjamin Keith Ford (bford) 2021-08-31 10:25:54.039-0500

Can you try a basic scenario with just Asterisk and client by a simpler setup or following the instructions on this wiki page [1] to see if the problem is reproduced there as well? This is just to eliminate possibilities of what might be causing the problem. It does look like there may be an issue with requesting a topology change; I'm curious to see if the same happens here.

By: Alexander Zharov (alex_net) 2021-09-07 10:38:10.729-0500

Thanks for waiting. I tested schema only with Asterisk and and there was no more no-video-stream error. Everything works fine.
Before testing I have updated all linux packages to latest software version, including libsrtp.

But now I have two errors:
1) "Couldn't request topology change" still remain on confbridge room creation request
2) After enabling HTTPS server (for WebRTC clients) I keep getting ssl error "iostream.c: SSL_shutdown() failed: error:00000005:lib(0):func(0):DH lib, Underlying BIO error: Broken pipe" every second in logs. Even without any clients connected.

Also attached new log file named 'debug_log_29618_20210907.log'.

By: George Joseph (gjoseph) 2021-09-07 12:48:12.262-0500

The "topology change" messages are expected and can be ignored.  I think I left those log statements in there by accident.  :)

bq.  Even without any clients connected.

The latest log file shows there are indeed client connected.  Can you reproduce with a fresh restart of Asterisk and no clients connected?  Do you have ARI connections disconnecting un-cleanly perhaps?


By: Alexander Zharov (alex_net) 2021-09-08 06:10:52.794-0500

If "Couldn't request topology change" message is expected, why it has ERROR level? :)
In that case i'll receive a lot of messages in my monitoring system. Could it be changed to VERBOSE or something like that?

{code:title=logs|borderStyle=solid}
 1462 [Sep  7 18:05:58] ERROR[9569][C-00000001] bridge_softmix.c:  CBAnn/conference_room_221121-00000000;2: Couldn't request topology change
 1463 [Sep  7 18:05:58] DEBUG[9569][C-00000001] bridge_softmix.c:   CBAnn/conference_room_221121-00000000;2: Couldn't request topology change
{code}

_Can you reproduce with a fresh restart of Asterisk and no clients connected?_
Yeah... I found strange connection to my host and blocked it. Message is gone.

By: George Joseph (gjoseph) 2021-09-08 07:39:57.168-0500

bq. If "Couldn't request topology change" message is expected, why it has ERROR level?  In that case i'll receive a lot of messages in my monitoring system. Could it be changed to VERBOSE or something like that?

It's an ERROR level because sometimes when you need a quick indicator of a condition being hit, it's easier to just add a LOG_ERROR message than a debug message. :)   I'll do a quick fix to remove it.


By: Friendly Automation (friendly-automation) 2021-09-08 09:44:48.360-0500

Change 16417 merged by Friendly Automation:
bridge_softmix: Suppress error on topology change failure

[https://gerrit.asterisk.org/c/asterisk/+/16417|https://gerrit.asterisk.org/c/asterisk/+/16417]

By: Friendly Automation (friendly-automation) 2021-09-08 09:53:15.456-0500

Change 16447 merged by George Joseph:
bridge_softmix: Suppress error on topology change failure

[https://gerrit.asterisk.org/c/asterisk/+/16447|https://gerrit.asterisk.org/c/asterisk/+/16447]

By: Friendly Automation (friendly-automation) 2021-09-08 09:53:33.139-0500

Change 16446 merged by George Joseph:
bridge_softmix: Suppress error on topology change failure

[https://gerrit.asterisk.org/c/asterisk/+/16446|https://gerrit.asterisk.org/c/asterisk/+/16446]

By: Friendly Automation (friendly-automation) 2021-09-08 09:53:51.884-0500

Change 16445 merged by George Joseph:
bridge_softmix: Suppress error on topology change failure

[https://gerrit.asterisk.org/c/asterisk/+/16445|https://gerrit.asterisk.org/c/asterisk/+/16445]