Versions Compared

Key

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

...

Code Block
languagejs
themeRDark
    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
    };

    if (authToken) {
        connectionOptions = {
            urlServer: url,
            authToken: authToken,
            keepAlive: true
        };
    } else {
        connectionOptions = {
            urlServer: url,
            sipOptions: sipOptions,
            keepAlive: true
        };
    }

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


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

ConnectionStatusEvent ESTABLISHED код

Code Block
languagejs
themeRDark
    $("#authToken"Flashphoner.createSession(connectionOptions).valon(connection.SESSION_STATUS.ESTABLISHED, function(session, connection){
        setStatus("#regStatus", SESSION_STATUS.ESTABLISHED);
        $("#authToken").val(connection.authToken);
        onConnected(session);
		if (!registerRequired) {
            disableOutgoing(false);
		}
    }).on(SESSION_STATUS.REGISTERED, function(session){
        setStatus("#regStatus", ...
    }).on(SESSION_STATUS.REGISTERED);
        onConnected(session);
        if (registerRequired) DISCONNECTED, function(){
            disableOutgoing(false);
		}
...
    }).on(SESSION_STATUS.DISCONNECTEDFAILED, function(){
        setStatus("#regStatus", SESSION_STATUS.DISCONNECTED);
 ...
       onDisconnected();
    }).on(SESSION_STATUS.FAILEDINCOMING_CALL, function(call){ 
        setStatus("#regStatus", SESSION_STATUS.FAILED);...
        onDisconnected();
    }});


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

ConnectionStatusEvent REGISTERED код

Code Block
languagejs
themeRDark
    Flashphoner.createSession(connectionOptions).on(SESSION_STATUS.INCOMING_CALLESTABLISHED, function(callsession, connection){
 
       ...
    call}).on(CALLSESSION_STATUS.RINGREGISTERED, function(session){
		        setStatus("#callStatus#regStatus", CALLSESSION_STATUS.RINGREGISTERED);
        }).on(CALL_STATUS.ESTABLISHED, function(){
		onConnected(session);
        if setStatus("#callStatus", CALL_STATUS.ESTABLISHED);(registerRequired) {
            $disableOutgoing("#holdBtn").prop('disabled',false);
			enableMuteToggle(true);
    false);
		}
    }).on(CALLSESSION_STATUS.HOLDDISCONNECTED, function() {
        ...
    $("#holdBtn"}).prop('disabled',false);on(SESSION_STATUS.FAILED, function(){
        ...
    }).on(CALLSESSION_STATUS.FINISHINCOMING_CALL, function(call){ 
		    setStatus("#callStatus", CALL_STATUS.FINISH);
			onHangupIncoming();
		    currentCall = null;
    ...
    }).on(CALL_STATUS.FAILED, function(;


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

ConnectionStatusEvent INCOMING_CALL код

Code Block
languagejs
themeRDark
    Flashphoner.createSession(connectionOptions).on(SESSION_STATUS.ESTABLISHED, function(session, connection){
        ...
    setStatus("#callStatus", CALL}).on(SESSION_STATUS.FAILED);REGISTERED, function(session){
        ...
    onHangupIncoming}).on(SESSION_STATUS.DISCONNECTED, function();{
        ...
    }).on(SESSION_STATUS.FAILED, function(){
  currentCall = null;
    ...
    });
		onIncomingCall(call);
    });

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

ConnectionStatusEvent ESTABLISHED код

Code Block
languagejs
themeRDark
 Flashphoner.createSession(connectionOptions)..on(SESSION_STATUS.ESTABLISHEDINCOMING_CALL, function(session, connectioncall){ 
        setStatus("#regStatus", SESSIONcall.on(CALL_STATUS.ESTABLISHED);
RING, function(){
            $("#authToken").val(connection.authToken);...
        onConnected(session});
		if onIncomingCall(!registerRequiredcall) {;
            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.ESTABLISHED, function(){
		    setStatus("#callStatus", CALL_STATUS.ESTABLISHED);
            $("#holdBtn").prop('disabled',false);
			enableMuteToggle(true);
        }).on(CALL_STATUS.HOLD, function() {
            $("#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, connection){
        setStatus("#regStatus", SESSION_STATUS.ESTABLISHED);
        $("#authToken").val(connection.authToken);
        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.ESTABLISHED, function(){
		    setStatus("#callStatus", CALL_STATUS.ESTABLISHED);
            $("#holdBtn").prop('disabled',false);
			enableMuteToggle(true);
        }).on(CALL_STATUS.HOLD, function() {
            $("#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, connection){
        setStatus("#regStatus", SESSION_STATUS.ESTABLISHED);
        $("#authToken").val(connection.authToken);
        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.ESTABLISHED, function(){
		    setStatus("#callStatus", CALL_STATUS.ESTABLISHED);
            $("#holdBtn").prop('disabled',false);
			enableMuteToggle(true);
        }).on(CALL_STATUS.HOLD, function() {
            $("#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-элемент локального дисплея (в случае Flash медиа-провайдера будет использован для диалога настроек Flash-плеера)
  • remoteVideoDisplay - div-элемент для получаемого аудио
  • constraints - ограничения для звонка (в данном случае параметр 'video' установлен в 'false' для аудиозвонка)
  • receiveAudio - установлен в 'true' для получения аудио
  • receiveVideo - установлен в 'false', чтобы не получать видео
Code Block
languagejs
themeRDark
var constraints = {
        audio: true,
        video: false
    };
	
	//prepare outgoing call 
    var outCall = session.createCall({
		callee: $("#callee").val(),
              visibleName: $("#sipLogin").val(),
		localVideoDisplay: localDisplay,
		remoteVideoDisplay: remoteDisplay,
		constraints: constraints,
		receiveAudio: true,
              receiveVideo: false
	}).on(CALL_STATUS.RING, function(){
		setStatus("#callStatus", CALL_STATUS.RING);
    }).on(CALL_STATUS.ESTABLISHED, function(){
		setStatus("#callStatus", CALL_STATUS.ESTABLISHED);
        $("#holdBtn").prop('disabled',false);
        onAnswerOutgoing();
    }).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);
        onHangupIncoming();
        currentCall = null;});


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

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

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

  • callee - SIP имя пользователя вызываемого
  • visibleName - отображаемое имя
  • localVideoDisplay - div-элемент локального дисплея (в случае Flash медиа-провайдера будет использован для диалога настроек Flash-плеера)
  • remoteVideoDisplay - div-элемент для получаемого аудио
  • constraints - ограничения для звонка (в данном случае параметр 'video' установлен в 'false' для аудиозвонка)
  • receiveAudio - установлен в 'true' для получения аудио
  • receiveVideo - установлен в 'false', чтобы не получать видео
Code Block
languagejs
themeRDark
    var constraints = {
        audio: true,
        video: false
    };
	
	//prepare outgoing call 
    var outCall = session.createCall({
		callee: $("#callee").val(),
              visibleName: $("#sipLogin").val(),
		localVideoDisplay: localDisplay,
		remoteVideoDisplay: remoteDisplay,
		constraints: constraints,
		receiveAudio: true,
        receiveVideo: false
        ...
    });
	
	outCall.call()


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

...

Code Block
languagejs
themeRDark
    $("#answerBtn").off('click').click(function(){
		$(this).prop('disabled', true);
        var constraints = {
            audio: true,
            video: false
        };
		inCall.answer({
            localVideoDisplay: localDisplay,
            remoteVideoDisplay: remoteDisplay,
            receiveVideo: false,
            constraints: constraints
        });
		showAnswered();
    }).prop('disabled', false);

...