OLD | NEW |
1 <html> | 1 <html> |
2 <head> | 2 <head> |
3 <script type="text/javascript" src="webrtc_test_utilities.js"></script> | 3 <script type="text/javascript" src="webrtc_test_utilities.js"></script> |
4 <script type="text/javascript" src="webrtc_test_audio.js"></script> | 4 <script type="text/javascript" src="webrtc_test_audio.js"></script> |
5 <script type="text/javascript"> | 5 <script type="text/javascript"> |
6 $ = function(id) { | 6 $ = function(id) { |
7 return document.getElementById(id); | 7 return document.getElementById(id); |
8 }; | 8 }; |
9 | 9 |
10 var gFirstConnection = null; | 10 var gFirstConnection = null; |
(...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
620 gFirstConnection.addStream(new_stream); | 620 gFirstConnection.addStream(new_stream); |
621 gSecondConnection.addStream(new_stream); | 621 gSecondConnection.addStream(new_stream); |
622 negotiate(); | 622 negotiate(); |
623 } | 623 } |
624 | 624 |
625 function negotiate() { | 625 function negotiate() { |
626 negotiateBetween(gFirstConnection, gSecondConnection); | 626 negotiateBetween(gFirstConnection, gSecondConnection); |
627 } | 627 } |
628 | 628 |
629 function negotiateBetween(caller, callee) { | 629 function negotiateBetween(caller, callee) { |
| 630 console.log("Negotiating call..."); |
630 // Not stable = negotiation is ongoing. The behavior of re-negotiating while | 631 // Not stable = negotiation is ongoing. The behavior of re-negotiating while |
631 // a negotiation is ongoing is more or less undefined, so avoid this. | 632 // a negotiation is ongoing is more or less undefined, so avoid this. |
632 if (caller.signalingState != 'stable') | 633 if (caller.signalingState != 'stable') |
633 throw 'You can only negotiate when the connection is stable!'; | 634 throw 'You can only negotiate when the connection is stable!'; |
634 | 635 |
635 connectOnIceCandidate(caller, callee); | 636 connectOnIceCandidate(caller, callee); |
636 | 637 |
637 caller.createOffer( | 638 caller.createOffer( |
638 function (offer) { | 639 function (offer) { |
639 onOfferCreated(offer, caller, callee); | 640 onOfferCreated(offer, caller, callee); |
640 }); | 641 }); |
641 } | 642 } |
642 | 643 |
643 function onOfferCreated(offer, caller, callee) { | 644 function onOfferCreated(offer, caller, callee) { |
644 offer.sdp = maybeForceIsac16K(transformSdp(offer.sdp)); | 645 offer.sdp = maybeForceIsac16K(transformSdp(offer.sdp)); |
645 caller.setLocalDescription(offer, function() { | 646 caller.setLocalDescription(offer, function() { |
646 expectEquals('have-local-offer', caller.signalingState); | 647 expectEquals('have-local-offer', caller.signalingState); |
647 receiveOffer(offer.sdp, caller, callee); | 648 receiveOffer(offer.sdp, caller, callee); |
648 }, onLocalDescriptionError); | 649 }, onLocalDescriptionError); |
649 } | 650 } |
650 | 651 |
651 function receiveOffer(offerSdp, caller, callee) { | 652 function receiveOffer(offerSdp, caller, callee) { |
| 653 console.log("Receiving offer..."); |
652 offerSdp = transformRemoteSdp(offerSdp); | 654 offerSdp = transformRemoteSdp(offerSdp); |
653 | 655 |
654 var parsedOffer = new RTCSessionDescription({ type: 'offer', | 656 var parsedOffer = new RTCSessionDescription({ type: 'offer', |
655 sdp: offerSdp }); | 657 sdp: offerSdp }); |
656 callee.setRemoteDescription(parsedOffer); | 658 callee.setRemoteDescription(parsedOffer); |
657 callee.createAnswer(function (answer) { | 659 callee.createAnswer(function (answer) { |
658 onAnswerCreated(answer, caller, callee); | 660 onAnswerCreated(answer, caller, callee); |
659 }); | 661 }); |
660 expectEquals('have-remote-offer', callee.signalingState); | 662 expectEquals('have-remote-offer', callee.signalingState); |
661 } | 663 } |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
707 } | 709 } |
708 | 710 |
709 function onAnswerCreated(answer, caller, callee) { | 711 function onAnswerCreated(answer, caller, callee) { |
710 answer.sdp = maybeForceIsac16K(transformSdp(answer.sdp)); | 712 answer.sdp = maybeForceIsac16K(transformSdp(answer.sdp)); |
711 callee.setLocalDescription(answer); | 713 callee.setLocalDescription(answer); |
712 expectEquals('stable', callee.signalingState); | 714 expectEquals('stable', callee.signalingState); |
713 receiveAnswer(answer.sdp, caller); | 715 receiveAnswer(answer.sdp, caller); |
714 } | 716 } |
715 | 717 |
716 function receiveAnswer(answerSdp, caller) { | 718 function receiveAnswer(answerSdp, caller) { |
| 719 console.log("Receiving answer..."); |
717 answerSdp = transformRemoteSdp(answerSdp); | 720 answerSdp = transformRemoteSdp(answerSdp); |
718 var parsedAnswer = new RTCSessionDescription({ type: 'answer', | 721 var parsedAnswer = new RTCSessionDescription({ type: 'answer', |
719 sdp: answerSdp }); | 722 sdp: answerSdp }); |
720 caller.setRemoteDescription(parsedAnswer); | 723 caller.setRemoteDescription(parsedAnswer); |
721 expectEquals('stable', caller.signalingState); | 724 expectEquals('stable', caller.signalingState); |
722 } | 725 } |
723 | 726 |
724 function connectOnIceCandidate(caller, callee) { | 727 function connectOnIceCandidate(caller, callee) { |
725 caller.onicecandidate = function(event) { onIceCandidate(event, callee); } | 728 caller.onicecandidate = function(event) { onIceCandidate(event, callee); } |
726 callee.onicecandidate = function(event) { onIceCandidate(event, caller); } | 729 callee.onicecandidate = function(event) { onIceCandidate(event, caller); } |
727 } | 730 } |
728 | 731 |
729 function addGiceCredsToCandidate(candidate) { | 732 function addGiceCredsToCandidate(candidate) { |
730 return candidate.trimRight() + | 733 return candidate.trimRight() + |
731 ' username ' + EXTERNAL_GICE_UFRAG + ' password ' + EXTERNAL_GICE_PWD; | 734 ' username ' + EXTERNAL_GICE_UFRAG + ' password ' + EXTERNAL_GICE_PWD; |
732 } | 735 } |
733 | 736 |
734 function onIceCandidate(event, target) { | 737 function onIceCandidate(event, target) { |
735 if (event.candidate) { | 738 if (event.candidate) { |
736 var candidate = new RTCIceCandidate(event.candidate); | 739 var candidate = new RTCIceCandidate(event.candidate); |
737 candidate.candidate = transformCandidate(candidate.candidate); | 740 candidate.candidate = transformCandidate(candidate.candidate); |
738 target.addIceCandidate(candidate); | 741 target.addIceCandidate(candidate); |
739 } | 742 } |
740 } | 743 } |
741 | 744 |
742 function onRemoteStream(e, target) { | 745 function onRemoteStream(e, target) { |
| 746 console.log("Receiving remote stream..."); |
743 if (gTestWithoutMsid && e.stream.id != "default") { | 747 if (gTestWithoutMsid && e.stream.id != "default") { |
744 document.title = 'a default remote stream was expected but instead ' + | 748 document.title = 'a default remote stream was expected but instead ' + |
745 e.stream.id + ' was received.'; | 749 e.stream.id + ' was received.'; |
746 return; | 750 return; |
747 } | 751 } |
748 gRemoteStreams[target] = e.stream; | 752 gRemoteStreams[target] = e.stream; |
749 var remoteStreamUrl = URL.createObjectURL(e.stream); | 753 var remoteStreamUrl = URL.createObjectURL(e.stream); |
750 var remoteVideo = $(target); | 754 var remoteVideo = $(target); |
751 remoteVideo.src = remoteStreamUrl; | 755 remoteVideo.src = remoteStreamUrl; |
752 } | 756 } |
(...skipping 26 matching lines...) Expand all Loading... |
779 <td><canvas width="320" height="240" id="remote-view-2-canvas" | 783 <td><canvas width="320" height="240" id="remote-view-2-canvas" |
780 style="display:none"></canvas></td> | 784 style="display:none"></canvas></td> |
781 <td><canvas width="320" height="240" id="remote-view-3-canvas" | 785 <td><canvas width="320" height="240" id="remote-view-3-canvas" |
782 style="display:none"></canvas></td> | 786 style="display:none"></canvas></td> |
783 <td><canvas width="320" height="240" id="remote-view-4-canvas" | 787 <td><canvas width="320" height="240" id="remote-view-4-canvas" |
784 style="display:none"></canvas></td> | 788 style="display:none"></canvas></td> |
785 </tr> | 789 </tr> |
786 </table> | 790 </table> |
787 </body> | 791 </body> |
788 </html> | 792 </html> |
OLD | NEW |