<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 網頁通話 >[info] **功能說明** >webRTC (Web Real-Time Communications) ,是一項實時通訊技術,它允許網絡應用或者站點,在不借助中間媒介的情況下,建立瀏覽器之間點對點(Peer-to-Peer)的連接,實現視頻流和(或)音頻流或者其他任意數據的傳輸。 > 在CTI應用中,webRTC可以理解為直接使用瀏覽器撥打電話,支持PC端與移動端。 > 我們已經將webRTC封裝為JavaScript(js),開發者無需掌握webRTC底層技術,僅需要簡單的js調用即可實現通過網頁撥打電話。 * **調用方式** ``` 在項目開發中我們會提供已經開發好的demo文件, 開發者只需引用已經封裝好的js文件,并拷貝demo文件中的js調用方法到自己的業務系統中即可。 ``` ![](https://img.kancloud.cn/3d/c2/3dc2223741efaa535f0053ea9fa1066c_493x633.png) * **js調用方法** ``` 以下為部分代碼,在實際開發中我們會有提供demo文件并提供一對一技術支持。 ``` ~~~ //定義 SoftPhone 類 var SoftPhone = function(config) { var that = this; JsSIP.debug.disable('JsSIP:*');//關閉調試 JsSIP.C.SESSION_EXPIRES = 3600;//sip注冊周期 JsSIP.C.MIN_SESSION_EXPIRES = 120; // 修改定義 JsSIP 的 SESSION_TIMER 常量,默認 FreeSwitch 的 Session Timer 范圍為 120,而 JsSIP 默認為 90 var socket=new JsSIP.WebSocketInterface(config.WSS_URI); // 構建用于信令傳輸的 WebSocket 接口 var audioRemote=config.audioRemote;//播放遠端通話聲的audio標簽 var audioRingin=config.audioRingin;//播放來電振鈴聲的audio標簽 var audioRingback=config.audioRingback;//播放外呼回鈴聲的audio標簽 var audioHangup=config.audioHangup;//播放掛機聲音的audio標簽 //通過拼接構造 JsSIP.UA 實例的配置參數 var configuration = { sockets : [ socket ], uri : 'sip:' + config.user + '@' + config.SIP_DOMAIN, password : config.password, display_name : config.user, contact_uri : 'sip:' + config.user + '@' + config.SIP_DOMAIN + ';transport=wss', register_expires : config.register_expires }; //構造 JsSIP.UA 類的實例 var ua = new JsSIP.UA(configuration); this.ua = ua; // 邦定 RTCSession 實例監聽的事件 var eventHandlers = { 'getusermediafailed': function(e) { alert('找不到麥克風設備!'); }, 'progress': function(e) { // 外呼/呼入進行中事件 console.log('call is in progress'); that.updateView(); audioRingin[0].pause(); }, 'failed': function(e) { // 呼叫失敗事件處理 console.log('call failed with cause: '+ e.cause); that.updateView(); audioRingin[0].pause(); audioRingback[0].pause(); audioHangup[0].currentTime = 0; //audioHangup[0].play(); }, 'ended': function(e) { // 呼叫結束事件 console.log('call ended with cause: '+ e.cause); that.updateView(); audioRingin[0].pause(); audioRingback[0].pause(); audioHangup[0].currentTime = 0; audioHangup[0].play(); }, 'confirmed': function(e) { // 呼叫建立事件 console.log('call confirmed'); that.updateView(); audioRingin[0].pause(); audioRingback[0].pause(); }, "peerconnection": function(e) { // RTCPeerConnection 對象創建成功后的事件,用于將 Early Media 以及遠端的聲音,通過 audioRemote 的 DOM:audio 對象實時播放出來 console.log('peer connection'); //監聽 RTCPeerConnection 實例的 OnAddStream 事件,一旦有遠端流被添加進來,就賦予給 audioRemote 進行還原播放 e.peerconnection.addEventListener('track', function(event) { console.log('onaddstream'); audioRingback[0].pause(); audioRemote[0].srcObject = event.streams[0]; audioRemote[0].play();//播放遠端聲音 }); } }; //撥打電話 $('#btn_call').click(function() { var telnum = $('#tel').val(); telnum=telnum.replace(/[ ]/g,'');//刪除所有空格 if(!telnum){ return false; } var session = phone.call(telnum); }); //掛機 $('#btn_end').click(function() { phone.endcall(); }); ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看