Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejs
themeRDark
        Flashphoner.init({flashMediaProviderSwfLocation: '../../../../media-provider.swf',
            mediaProvidersReadyCallback: function(mediaProviders) {
                //hide remote video if current media provider is Flash
                if (mediaProviders[0] == "Flash") {
                    $("#remoteVideoWrapper").hide();
                    $("#localVideoWrapper").attr('class', 'fp-remoteVideo');
                }
            }});

...

Code Block
languagejs
themeRDark
    var url = $('#urlServer').val();
    var registerRequired = $("#sipRegisterRequired").is(':checked');

    var sipOptions = {
	      login: $("#sipLogin").val(),
             authenticationName: $("#sipAuthenticationName").val(),
	      password: $("#sipPassword").val(),
	      domain: $("#sipDomain").val(),
             outboundProxy: $("#sipOutboundProxy").val(),
	      port: $("#sipPort").val(),
             registerRequired: registerRequired
    };

    var connectionOptions = {
        urlServer: url,
        sipOptions: sipOptions
    };

    //create session
    console.log("Create new session with url " + url);
    Flashphoner.createSession(connectionOptions).on(SESSION_STATUS.ESTABLISHED, function(session){
        setStatus("#regStatus", SESSION_STATUS.ESTABLISHED);...
    });


3. Получение от сервера события, подтверждающего успешное соединение.

ConnectionStatusEvent ESTABLISHED код

Code Block
languagejs
themeRDark
    onConnectedFlashphoner.createSession(session);
		if (!registerRequired) {
            disableOutgoing(false);
		}
    }).connectionOptions).on(SESSION_STATUS.REGISTEREDESTABLISHED, function(session){
        setStatus("#regStatus", SESSION_STATUS.REGISTEREDESTABLISHED);
        onConnected(session);
        		if (!registerRequired) {
            disableOutgoing(false);
		}
    }).on(SESSION_STATUS.DISCONNECTEDREGISTERED, function(session){
        setStatus("#regStatus", ...
    }).on(SESSION_STATUS.DISCONNECTED, function();{
        onDisconnected();...
    }).on(SESSION_STATUS.FAILED, function(){
        setStatus("#regStatus", SESSION_STATUS.FAILED);
  ...
      onDisconnected();
    }).on(SESSION_STATUS.INCOMING_CALL, function(call){ 
        call.on(CALL_STATUS.RING...
    });


4. Получение от сервера события, подтверждающего успешную регистрацию на SIP-сервере.

ConnectionStatusEvent REGISTERED код

Code Block
languagejs
themeRDark
    Flashphoner.createSession(connectionOptions).on(SESSION_STATUS.ESTABLISHED, function(session){
		      setStatus("#callStatus", CALL_STATUS.RING);
   ...
       }).on(CALLSESSION_STATUS.HOLDREGISTERED, function(session) {
            $setStatus("#holdBtn").prop('disabled',false#regStatus", SESSION_STATUS.REGISTERED);
        }).on(CALL_STATUS.ESTABLISHED, function(){
		onConnected(session);
        setStatus("#callStatus", CALL_STATUS.ESTABLISHED);
			enableMuteToggles(true);if (registerRequired) {
            $("#holdBtn").prop('disabled',disableOutgoing(false);
    		}
    }).on(CALLSESSION_STATUS.FINISHDISCONNECTED, function(){
		     setStatus("#callStatus", CALL_STATUS.FINISH);
			onHangupIncoming();
		   ...
    }).on(SESSION_STATUS.FAILED, function(){
    currentCall = null;
  ...
      }).on(CALLSESSION_STATUS.FAILEDINCOMING_CALL, function(call){ 
        ...
    setStatus("#callStatus", CALL_STATUS.FAILED);});


5. Получение от сервера события, сигнализирующего о входящем звонке.

ConnectionStatusEvent INCOMING_CALL код

Code Block
languagejs
themeRDark
    Flashphoner.createSession(connectionOptions).on(SESSION_STATUS.ESTABLISHED, function(session){
         ...
     onHangupIncoming();}).on(SESSION_STATUS.REGISTERED, function(session){
        ...
    currentCall = null;}).on(SESSION_STATUS.DISCONNECTED, function(){
        });
		onIncomingCall(call);
...
    });

3. Получение от сервера события, подтверждающего успешное соединение.

ConnectionStatusEvent ESTABLISHED код

Code Block
languagejs
themeRDark
 Flashphoner.createSession(connectionOptions).on.on(SESSION_STATUS.ESTABLISHEDFAILED, function(session){
        setStatus("#regStatus", SESSION_STATUS.ESTABLISHED);...
        onConnected(session);
		if (!registerRequired) {}).on(SESSION_STATUS.INCOMING_CALL, function(call){ 
            disableOutgoing(false);
		}
    })call.on(SESSIONCALL_STATUS.REGISTEREDRING, function(session){
         setStatus("#regStatus", SESSION_STATUS.REGISTERED);   ...
        onConnected(session});
        if (registerRequired) {
            disableOutgoing(false);
		}		onIncomingCall(call);
    }).on(SESSION_STATUS.DISCONNECTED, function(){
        setStatus("#regStatus", SESSION_STATUS.DISCONNECTED);
        onDisconnected();
    }).on(SESSION_STATUS.FAILED, function(){
        setStatus("#regStatus", SESSION_STATUS.FAILED);
        onDisconnected();
    }).on(SESSION_STATUS.INCOMING_CALL, function(call){ 
        call.on(CALL_STATUS.RING, function(){
		    setStatus("#callStatus", CALL_STATUS.RING);
        }).on(CALL_STATUS.HOLD, function() {
            $("#holdBtn").prop('disabled',false);
        }).on(CALL_STATUS.ESTABLISHED, function(){
		    setStatus("#callStatus", CALL_STATUS.ESTABLISHED);
			enableMuteToggles(true);
            $("#holdBtn").prop('disabled',false);
        }).on(CALL_STATUS.FINISH, function(){
		    setStatus("#callStatus", CALL_STATUS.FINISH);
			onHangupIncoming();
		    currentCall = null;
        }).on(CALL_STATUS.FAILED, function(){
            setStatus("#callStatus", CALL_STATUS.FAILED);
            onHangupIncoming();
            currentCall = null;
        });
		onIncomingCall(call);
    });

4. Получение от сервера события, подтверждающего успешную регистрацию на SIP-сервере.

ConnectionStatusEvent REGISTERED код

Code Block
languagejs
themeRDark
Flashphoner.createSession(connectionOptions).on(SESSION_STATUS.ESTABLISHED, function(session){
        setStatus("#regStatus", SESSION_STATUS.ESTABLISHED);
        onConnected(session);
		if (!registerRequired) {
            disableOutgoing(false);
		}
    }).on(SESSION_STATUS.REGISTERED, function(session){
        setStatus("#regStatus", SESSION_STATUS.REGISTERED);
        onConnected(session);
        if (registerRequired) {
            disableOutgoing(false);
		}
    }).on(SESSION_STATUS.DISCONNECTED, function(){
        setStatus("#regStatus", SESSION_STATUS.DISCONNECTED);
        onDisconnected();
    }).on(SESSION_STATUS.FAILED, function(){
        setStatus("#regStatus", SESSION_STATUS.FAILED);
        onDisconnected();
    }).on(SESSION_STATUS.INCOMING_CALL, function(call){ 
        call.on(CALL_STATUS.RING, function(){
		    setStatus("#callStatus", CALL_STATUS.RING);
        }).on(CALL_STATUS.HOLD, function() {
            $("#holdBtn").prop('disabled',false);
        }).on(CALL_STATUS.ESTABLISHED, function(){
		    setStatus("#callStatus", CALL_STATUS.ESTABLISHED);
			enableMuteToggles(true);
            $("#holdBtn").prop('disabled',false);
        }).on(CALL_STATUS.FINISH, function(){
		    setStatus("#callStatus", CALL_STATUS.FINISH);
			onHangupIncoming();
		    currentCall = null;
        }).on(CALL_STATUS.FAILED, function(){
            setStatus("#callStatus", CALL_STATUS.FAILED);
            onHangupIncoming();
            currentCall = null;
        });
		onIncomingCall(call);
    });

5. Получение от сервера события, сигнализирующего о входящем звонке.

ConnectionStatusEvent INCOMING_CALL код

Code Block
languagejs
themeRDark
Flashphoner.createSession(connectionOptions).on(SESSION_STATUS.ESTABLISHED, function(session){
        setStatus("#regStatus", SESSION_STATUS.ESTABLISHED);
        onConnected(session);
		if (!registerRequired) {
            disableOutgoing(false);
		}
    }).on(SESSION_STATUS.REGISTERED, function(session){
        setStatus("#regStatus", SESSION_STATUS.REGISTERED);
        onConnected(session);
        if (registerRequired) {
            disableOutgoing(false);
		}
    }).on(SESSION_STATUS.DISCONNECTED, function(){
        setStatus("#regStatus", SESSION_STATUS.DISCONNECTED);
        onDisconnected();
    }).on(SESSION_STATUS.FAILED, function(){
        setStatus("#regStatus", SESSION_STATUS.FAILED);
        onDisconnected();
    }).on(SESSION_STATUS.INCOMING_CALL, function(call){ 
        call.on(CALL_STATUS.RING, function(){
		    setStatus("#callStatus", CALL_STATUS.RING);
        }).on(CALL_STATUS.HOLD, function() {
            $("#holdBtn").prop('disabled',false);
        }).on(CALL_STATUS.ESTABLISHED, function(){
		    setStatus("#callStatus", CALL_STATUS.ESTABLISHED);
			enableMuteToggles(true);
            $("#holdBtn").prop('disabled',false);
        }).on(CALL_STATUS.FINISH, function(){
		    setStatus("#callStatus", CALL_STATUS.FINISH);
			onHangupIncoming();
		    currentCall = null;
        }).on(CALL_STATUS.FAILED, function(){
            setStatus("#callStatus", CALL_STATUS.FAILED);
            onHangupIncoming();
            currentCall = null;
        });
		onIncomingCall(call);
    });

6. Исходящий звонок.

session.createCall(), call() код

При создании звонка в метод передаются следующие параметры:

  • callee - SIP имя пользователя вызываемого
  • visibleName - отображаемое имя
  • localVideoDisplay - div-элемент, в котором будет отображаться видео с камеры
  • remoteVideoDisplay - div-элемент, в котором будет отображаться видео другой стороны
Code Block
languagejs
themeRDark
 var outCall = session.createCall({
		callee: $("#callee").val(),
              visibleName: $("#sipLogin").val(),
	       localVideoDisplay: localVideo, 
              remoteVideoDisplay: remoteVideo 
	}).on(CALL_STATUS.RING, function(){
		setStatus("#callStatus", CALL_STATUS.RING);
    }).on(CALL_STATUS.ESTABLISHED, function(){
		setStatus("#callStatus", CALL_STATUS.ESTABLISHED);
        onAnswerOutgoing();
        $("#holdBtn").prop('disabled',false);
    }).on(CALL_STATUS.HOLD, function() {
        $("#holdBtn").prop('disabled',false);
    }).on(CALL_STATUS.FINISH, function(){
		setStatus("#callStatus", CALL_STATUS.FINISH);
	    onHangupOutgoing();
		currentCall = null;
    }).on(CALL_STATUS.FAILED, function(){
        setStatus("#callStatus", CALL_STATUS.FAILED);;


6. Исходящий звонок.

session.createCall(), call() код

При создании звонка в метод передаются следующие параметры:

  • callee - SIP имя пользователя вызываемого
  • visibleName - отображаемое имя
  • localVideoDisplay - div-элемент, в котором будет отображаться видео с камеры
  • remoteVideoDisplay - div-элемент, в котором будет отображаться видео другой стороны
Code Block
languagejs
themeRDark
    var outCall = session.createCall({
		callee: $("#callee").val(),
        visibleName: $("#sipLogin").val(),
	    localVideoDisplay: localVideo, 
        onHangupIncoming();
  remoteVideoDisplay: remoteVideo 
      currentCall = null;...
    });
	
	outCall.call();


7. Ответ на входящий звонок.

...

Code Block
languagejs
themeRDark
    $("#answerBtn").off('click').click(function(){
		$(this).prop('disabled', true);
		inCall.answer({
                localVideoDisplay: localVideo,
                remoteVideoDisplay: remoteVideo
            });
		showAnswered();
    }).prop('disabled', false);

...

Code Block
languagejs
themeRDark
    $("#hangupBtn").off('click').click(function(){
		$(this).prop('disabled', true);
		$("#answerBtn").prop('disabled', true);
        inCall.hangup();
    }).prop('disabled', false);

...