@@ -663,6 +663,14 @@ module.exports = class RTCSession extends EventEmitter
663
663
// Audio and/or video requested, prompt getUserMedia.
664
664
else if ( mediaConstraints . audio || mediaConstraints . video )
665
665
{
666
+ if ( ! navigator . mediaDevices )
667
+ {
668
+ const error = new Error ( 'Media inaccessible; Secure context required (eg. https://, file://)' ) ;
669
+
670
+ //this._failed('local', null, JsSIP_C.causes.USER_DENIED_MEDIA_ACCESS);
671
+ //this.emit('getusermediafailed', error);
672
+ throw error ;
673
+ }
666
674
this . _localMediaStreamLocallyGenerated = true ;
667
675
668
676
return navigator . mediaDevices . getUserMedia ( mediaConstraints )
@@ -793,12 +801,12 @@ module.exports = class RTCSession extends EventEmitter
793
801
} )
794
802
. catch ( ( error ) =>
795
803
{
804
+ logger . warn ( `getUserMedia error: ${ JSON . stringify ( error ) } ` ) ;
796
805
if ( this . _status === C . STATUS_TERMINATED )
797
806
{
798
807
return ;
799
808
}
800
-
801
- logger . warn ( error ) ;
809
+ throw error ;
802
810
} ) ;
803
811
}
804
812
@@ -2630,11 +2638,28 @@ module.exports = class RTCSession extends EventEmitter
2630
2638
// Request for user media access.
2631
2639
else if ( mediaConstraints . audio || mediaConstraints . video )
2632
2640
{
2641
+ if ( ! navigator . mediaDevices )
2642
+ {
2643
+ const error = new Error ( 'Media inaccessible; Secure context required (eg. https://, file://)' ) ;
2644
+
2645
+ //this._failed('local', null, JsSIP_C.causes.USER_DENIED_MEDIA_ACCESS);
2646
+ //this.emit('getusermediafailed', error);
2647
+ throw error ;
2648
+ }
2633
2649
this . _localMediaStreamLocallyGenerated = true ;
2634
2650
2651
+ logger . warn ( `getUserMedia requesting ${ JSON . stringify ( mediaConstraints ) } from ${ JSON . stringify ( navigator . mediaDevices ) } ` ) ;
2652
+
2635
2653
return navigator . mediaDevices . getUserMedia ( mediaConstraints )
2654
+ . then ( ( stream ) =>
2655
+ {
2656
+ logger . warn ( `getUserMedia gives ${ JSON . stringify ( stream ) } ` ) ;
2657
+
2658
+ return stream ;
2659
+ } )
2636
2660
. catch ( ( error ) =>
2637
2661
{
2662
+ logger . warn ( `getUserMedia error ${ JSON . stringify ( error ) } ` ) ;
2638
2663
if ( this . _status === C . STATUS_TERMINATED )
2639
2664
{
2640
2665
throw new Error ( 'terminated' ) ;
@@ -2652,6 +2677,7 @@ module.exports = class RTCSession extends EventEmitter
2652
2677
} )
2653
2678
. then ( ( stream ) =>
2654
2679
{
2680
+ logger . warn ( `getUserMedia returned stream ${ JSON . stringify ( stream ) } ` ) ;
2655
2681
if ( this . _status === C . STATUS_TERMINATED )
2656
2682
{
2657
2683
throw new Error ( 'terminated' ) ;
@@ -2699,12 +2725,12 @@ module.exports = class RTCSession extends EventEmitter
2699
2725
} )
2700
2726
. catch ( ( error ) =>
2701
2727
{
2728
+ logger . warn ( `getUserMedia error: ${ JSON . stringify ( error ) } ` ) ;
2702
2729
if ( this . _status === C . STATUS_TERMINATED )
2703
2730
{
2704
2731
return ;
2705
2732
}
2706
-
2707
- logger . warn ( error ) ;
2733
+ throw error ;
2708
2734
} ) ;
2709
2735
}
2710
2736
0 commit comments