@@ -709,8 +709,13 @@ func extractFingerprint(desc *sdp.SessionDescription) (string, string, error) {
709709 return "" , "" , ErrSessionDescriptionNoFingerprint
710710 }
711711
712- for _ , m := range fingerprints {
713- if m != fingerprints [0 ] {
712+ // https://github.com/pion/webrtc/issues/2621
713+ groupAttribue , _ := desc .Attribute (sdp .AttrKeyGroup )
714+
715+ isBundled := strings .Contains (groupAttribue , "BUNDLE" )
716+
717+ if ! isBundled {
718+ if len (fingerprints ) != 1 {
714719 return "" , "" , ErrSessionDescriptionConflictingFingerprints
715720 }
716721 }
@@ -769,14 +774,15 @@ func extractICEDetails(desc *sdp.SessionDescription, log logging.LeveledLogger)
769774 return "" , "" , nil , ErrSessionDescriptionMissingIcePwd
770775 }
771776
772- for _ , m := range remoteUfrags {
773- if m != remoteUfrags [0 ] {
774- return "" , "" , nil , ErrSessionDescriptionConflictingIceUfrag
775- }
776- }
777+ // https://github.com/pion/webrtc/issues/2621
778+ groupAttribue , _ := desc .Attribute (sdp .AttrKeyGroup )
779+
780+ isBundled := strings .Contains (groupAttribue , "BUNDLE" )
777781
778- for _ , m := range remotePwds {
779- if m != remotePwds [0 ] {
782+ if ! isBundled {
783+ if len (remoteUfrags ) != 1 {
784+ return "" , "" , nil , ErrSessionDescriptionConflictingIceUfrag
785+ } else if len (remotePwds ) != 1 {
780786 return "" , "" , nil , ErrSessionDescriptionConflictingIcePwd
781787 }
782788 }
0 commit comments