ConnectyCube / connectycube-flutter-sdk-releases

ConnectyCube Flutter SDK Releases
7 stars 1 forks source link

ConferenceRole validation problem when joining AudioCall #91

Closed pedrostick3 closed 1 year ago

pedrostick3 commented 1 year ago

Platform (use [x]) [x] Android [] iOS [] macOS [] Windows [] Web

Device info Manufacture: Google Model: Pixel 4 OS version: Android API 30

Describe the bug: When i enter in an audiocall ( CallType.AUDIO_CALL ) it apears a problem in line 457 that has conferenceRole = ConferenceRole.values.firstWhere((e) => e.toString() == 'ConferenceRole.' + displayRole); on file connectycube_sdk-2.5.1\lib\src\calls\signaling\janus_signaler.dart.

Steps to Reproduce:

  1. Create a call session ConferenceClient.instance.createCallSession(userId, callType: CallType.AUDIO_CALL).
  2. With Mobile1, Enter in AudioCall using method callSession.joinDialog().
  3. With Mobile2, Enter in the same AudioCall using method callSession.joinDialog().
  4. On Mobile1, Error appears refering a "Bad state: No element" in your library on file connectycube_sdk-2.5.1\lib\src\calls\signaling\janus_signaler.dart, line 457, method void eventParser(WsEvent wsEvent).

Logs:

E/flutter ( 7871): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Bad state: No element
E/flutter ( 7871): #0      ListMixin.firstWhere (dart:collection/list.dart:167:5)
E/flutter ( 7871): #1      JanusSignaler.eventParser
janus_signaler.dart:457
E/flutter ( 7871): #2      JanusSignaler.packetParser
janus_signaler.dart:357
E/flutter ( 7871): #3      JanusSignaler.onPacketReceived
janus_signaler.dart:543
E/flutter ( 7871): #4      WebSocketConnection.notifyListeners.<anonymous closure>
web_socket_connection.dart:104
E/flutter ( 7871): #5      List.forEach (dart:core-patch/growable_array.dart:416:8)
E/flutter ( 7871): #6      WebSocketConnection.notifyListeners
web_socket_connection.dart:104
E/flutter ( 7871): #7      WebSocketConnection.onParseMessage
web_socket_connection.dart:91
E/flutter ( 7871): #8      WebSocketConnection.connect.<anonymous closure>
web_socket_connection.dart:40
E/flutter ( 7871): #9      _RootZone.runUnaryGuarded (dart:async/zone.dart:1593:10)
E/flutter ( 7871): #10     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11)
E/flutter ( 7871): #11     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
E/flutter ( 7871): #12     _ForwardingStreamSubscription._add (dart:async/stream_pipe.dart:123:11)
E/flutter ( 7871): #13     _HandleErrorStream._handleData (dart:async/stream_pipe.dart:253:10)
E/flutter ( 7871): #14     _ForwardingStreamSubscription._handleData (dart:async/stream_pipe.dart:153:13)
E/flutter ( 7871): #15     _RootZone.runUnaryGuarded (dart:async/zone.dart:1593:10)
E/flutter ( 7871): #16     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11)
E/flutter ( 7871): #17     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
E/flutter ( 7871): #18     _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:774:19)
E/flutter ( 7871): #19     _StreamController._add (dart:async/stream_controller.dart:648:7)
E/flutter ( 7871): #20     _RootZone.runUnaryGuarded (dart:async/zone.dart:1593:10)
E/flutter ( 7871): #21     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11)
E/flutter ( 7871): #22     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
E/flutter ( 7871): #23     _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:774:19)
E/flutter ( 7871): #24     _StreamController._add (dart:async/stream_controller.dart:648:7)
E/flutter ( 7871): #25     _StreamController.add (dart:async/stream_controller.dart:596:5)
E/flutter ( 7871): #26     new _WebSocketImpl._fromSocket.<anonymous closure> (dart:_http/websocket_impl.dart:1144:21)
E/flutter ( 7871): #27     _RootZone.runUnaryGuarded (dart:async/zone.dart:1593:10)
E/flutter ( 7871): #28     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11)
E/flutter ( 7871): #29     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
E/flutter ( 7871): #30     _SinkTransformerStreamSubscription._add (dart:async/stream_transformers.dart:63:11)
E/flutter ( 7871): #31     _EventSinkWrapper.add (dart:async/stream_transformers.dart:13:11)
E/flutter ( 7871): #32     _WebSocketProtocolTransformer._messageFrameEnd (dart:_http/websocket_impl.dart:332:23)
E/flutter ( 7871): #33     _WebSocketProtocolTransformer.add (dart:_http/websocket_impl.dart:226:46)
E/flutter ( 7871): #34     _SinkTransformerStreamSubscription._handleData (dart:async/stream_transformers.dart:111:24)
E/flutter ( 7871): #35     _RootZone.runUnaryGuarded (dart:async/zone.dart:1593:10)
E/flutter ( 7871): #36     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11)
E/flutter ( 7871): #37     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
E/flutter ( 7871): #38     _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:774:19)
E/flutter ( 7871): #39     _StreamController._add (dart:async/stream_controller.dart:648:7)
E/flutter ( 7871): #40     _StreamController.add (dart:async/stream_controller.dart:596:5)
E/flutter ( 7871): #41     _Socket._onData (dart:io-patch/socket_patch.dart:2355:41)
E/flutter ( 7871): #42     _RootZone.runUnaryGuarded (dart:async/zone.dart:1593:10)
E/flutter ( 7871): #43     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11)
E/flutter ( 7871): #44     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
E/flutter ( 7871): #45     _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:774:19)
E/flutter ( 7871): #46     _StreamController._add (dart:async/stream_controller.dart:648:7)
E/flutter ( 7871): #47     _StreamController.add (dart:async/stream_controller.dart:596:5)
E/flutter ( 7871): #48     _RawSecureSocket._sendReadEvent (dart:io/secure_socket.dart:1111:19)
E/flutter ( 7871): #49     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:18:15)
E/flutter ( 7871): #50     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:398:19)
E/flutter ( 7871): #51     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:429:5)
E/flutter ( 7871): #52     _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:192:26)
E/flutter ( 7871):

Actual result: Everytime i enter in audio call this bug comes up.

Expected behavior: Enter in audio call without problems.

Additional info I fixed it by going to this file connectycube_sdk-2.5.1\lib\src\calls\signaling\janus_signaler.dart in line 457 and change from this:

conferenceRole = ConferenceRole.values.firstWhere((e) => e.toString() == 'ConferenceRole.' + displayRole);

to this:

conferenceRole = ConferenceRole.values.firstWhere((e) => e.toString() == 'ConferenceRole.' + displayRole.toUpperCase());

Hope it helped :) Please fix this bug and contact me when you merge this into a new package version so i can update it ;)

pedrostick3 commented 1 year ago

For your information, this was happening in 2.5.0 package version too. (was not related with 2.5.1 new changes)

TatankaConCube commented 1 year ago

we will check it and release a new version with fixes soon

TatankaConCube commented 1 year ago

version 2.5.2 was published with the required fix, please try it and close the ticket if your issue was resolved

pedrostick3 commented 1 year ago

This issue is resolved, thanks :)