...
Code Block | ||||
---|---|---|---|---|
| ||||
Flashphoner.init({flashMediaProviderSwfLocation: '../../../../media-provider.swf',
mediaProvidersReadyCallback: function(mediaProviders) {
//hide remote video if current media provider is Flash
if (mediaProviders[0] == "Flash") {
$("#remoteVideoWrapper").removeClass().hide();
$("#localVideoWrapper").attr('class', 'b-video__video ui-widget-content');
}
}}); |
...
Code Block | ||||
---|---|---|---|---|
| ||||
var url = setURL(); this.sipOptions = {}; this.sipOptions.login = $('#sipLogin').val(); this.sipOptions.password = $('#sipPassword').val(); this.sipOptions.authenticationName = $('#sipAuthenticationName').val(); this.sipOptions.domain = $('#sipDomain').val(); this.sipOptions.outboundProxy = $('#sipOutboundProxy').val(); this.sipOptions.port = $('#sipPort').val(); this.sipOptions.useProxy = true; this.sipOptions.registerRequired = true; var connectionOptions = { urlServer: url, sipOptions: this.sipOptions }; Flashphoner.createSession(connectionOptions).on(SESSION_STATUS.ESTABLISHED, function(session){ me.session = session; me.connectionStatusListener(SESSION_STATUS.ESTABLISHED); }).on(SESSION_STATUS.REGISTERED, ; |
3. Получение от сервера события, подтверждающего успешное соединение.
ConnectionStatusEvent ESTABLISHED код
Code Block | ||||
---|---|---|---|---|
| ||||
Flashphoner.createSession(connectionOptions).on(SESSION_STATUS.ESTABLISHED, function(session){ me.session = session; me.registrationStatusListenerconnectionStatusListener(SESSION_STATUS.REGISTEREDESTABLISHED); }).on(SESSION_STATUS.DISCONNECTEDREGISTERED, function(session){ me.connectionStatusListener(SESSION_STATUS.DISCONNECTED);.. }).on(SESSION_STATUS.FAILEDDISCONNECTED, function(){ me..connectionStatusListener(SESSION_STATUS.FAILED); }).on(SESSION_STATUS.INCOMING_CALLFAILED, function(call){ call... }).on(CALLSESSION_STATUS.RINGINCOMING_CALL, function(call){ ... me.callStatusListener(call); }}); |
4. Получение от сервера события, подтверждающего успешную регистрацию на SIP-сервере.
ConnectionStatusEvent REGISTERED код
Code Block | ||||
---|---|---|---|---|
| ||||
Flashphoner.createSession(connectionOptions).on(CALLSESSION_STATUS.ESTABLISHED, function(session){ ... me}).callStatusListener(call); on(SESSION_STATUS.REGISTERED, function(session){ ... }).on(CALLSESSION_STATUS.HOLDDISCONNECTED, function() { me.callStatusListener(call); ... }).on(CALLSESSION_STATUS.FINISHFAILED, function(){ ... me}).callStatusListener(call); me.incomingCall = false; }).on(CALL_STATUS.FAILEDon(SESSION_STATUS.INCOMING_CALL, function(call){ ... me.callStatusListener(call); }); |
5. Получение от сервера события, сигнализирующего о входящем звонке.
ConnectionStatusEvent INCOMING_CALL код
Code Block | ||||
---|---|---|---|---|
| ||||
Flashphoner.createSession(connectionOptions).on(SESSION_STATUS.ESTABLISHED, function(session){ me.incomingCall = false; ... });}).on(SESSION_STATUS.REGISTERED, function(session){ me.onCallListener(call);... }); |
3. Получение от сервера события, подтверждающего успешное соединение.
ConnectionStatusEvent ESTABLISHED код
Code Block | ||||
---|---|---|---|---|
| ||||
Flashphoner.createSession(connectionOptions.on(SESSION_STATUS.DISCONNECTED, function(){ ... }).on(SESSION_STATUS.ESTABLISHEDFAILED, function(session){ me.session = session;... me.connectionStatusListener}).on(SESSION_STATUS.ESTABLISHED); INCOMING_CALL, function(call){ }) call.on(SESSIONCALL_STATUS.REGISTEREDRING, function(session){ me..registrationStatusListener(SESSION_STATUS.REGISTERED); }).on(SESSION_STATUS.DISCONNECTED, function(){; me.connectionStatusListener(SESSION_STATUS.DISCONNECTEDonCallListener(call); }).on(SESSION_STATUS.FAILED, function(){ me.connectionStatusListener(SESSION_STATUS.FAILED); }).on(SESSION_STATUS.INCOMING_CALL, function(call){ call.on(CALL_STATUS.RING, function(){ me.callStatusListener(call); }).on(CALL_STATUS.ESTABLISHED, function(){ me.callStatusListener(call); }).on(CALL_STATUS.HOLD, function() { me.callStatusListener(call); }).on(CALL_STATUS.FINISH, function(){ me.callStatusListener(call); me.incomingCall = false; }).on(CALL_STATUS.FAILED, function(){ me.callStatusListener(call); me.incomingCall = false; }); me.onCallListener(call); }); |
4. Получение от сервера события, подтверждающего успешную регистрацию на SIP-сервере.
ConnectionStatusEvent REGISTERED код
Code Block | ||||
---|---|---|---|---|
| ||||
Flashphoner.createSession(connectionOptions).on(SESSION_STATUS.ESTABLISHED, function(session){
me.session = session;
me.connectionStatusListener(SESSION_STATUS.ESTABLISHED);
}).on(SESSION_STATUS.REGISTERED, function(session){
me.registrationStatusListener(SESSION_STATUS.REGISTERED);
}).on(SESSION_STATUS.DISCONNECTED, function(){
me.connectionStatusListener(SESSION_STATUS.DISCONNECTED);
}).on(SESSION_STATUS.FAILED, function(){
me.connectionStatusListener(SESSION_STATUS.FAILED);
}).on(SESSION_STATUS.INCOMING_CALL, function(call){
call.on(CALL_STATUS.RING, function(){
me.callStatusListener(call);
}).on(CALL_STATUS.ESTABLISHED, function(){
me.callStatusListener(call);
}).on(CALL_STATUS.HOLD, function() {
me.callStatusListener(call);
}).on(CALL_STATUS.FINISH, function(){
me.callStatusListener(call);
me.incomingCall = false;
}).on(CALL_STATUS.FAILED, function(){
me.callStatusListener(call);
me.incomingCall = false;
});
me.onCallListener(call);
}); |
5. Получение от сервера события, сигнализирующего о входящем звонке.
ConnectionStatusEvent INCOMING_CALL код
Code Block | ||||
---|---|---|---|---|
| ||||
Flashphoner.createSession(connectionOptions).on(SESSION_STATUS.ESTABLISHED, function(session){
me.session = session;
me.connectionStatusListener(SESSION_STATUS.ESTABLISHED);
}).on(SESSION_STATUS.REGISTERED, function(session){
me.registrationStatusListener(SESSION_STATUS.REGISTERED);
}).on(SESSION_STATUS.DISCONNECTED, function(){
me.connectionStatusListener(SESSION_STATUS.DISCONNECTED);
}).on(SESSION_STATUS.FAILED, function(){
me.connectionStatusListener(SESSION_STATUS.FAILED);
}).on(SESSION_STATUS.INCOMING_CALL, function(call){
call.on(CALL_STATUS.RING, function(){
me.callStatusListener(call);
}).on(CALL_STATUS.ESTABLISHED, function(){
me.callStatusListener(call);
}).on(CALL_STATUS.HOLD, function() {
me.callStatusListener(call);
}).on(CALL_STATUS.FINISH, function(){
me.callStatusListener(call);
me.incomingCall = false;
}).on(CALL_STATUS.FAILED, function(){
me.callStatusListener(call);
me.incomingCall = false;
});
me.onCallListener(call);
}); |
6. Исходящий звонок.
session.createCall(), call() код
При создании звонка в метод передаются следующие параметры
- callee - SIP имя пользователя вызываемого
- visibleName - отображаемое имя
- localVideoDisplay - div-элемент, в котором будет отображаться видео с камеры
- remoteVideoDisplay - div-элемент, в котором будет отображаться видео другой стороны
- constraints - объект с параметрами, указывающими на наличие аудио и видео
Code Block | ||||
---|---|---|---|---|
| ||||
var constraints = { audio: true, video: hasVideo }; var outCall = this.session.createCall({ callee: callee, visibleName: this.sipOptions.login, localVideoDisplay: this.localVideo, remoteVideoDisplay: this.remoteVideo,; |
6. Исходящий звонок.
session.createCall(), call() код
При создании звонка в метод передаются следующие параметры
- callee - SIP имя пользователя вызываемого
- visibleName - отображаемое имя
- localVideoDisplay - div-элемент, в котором будет отображаться видео с камеры
- remoteVideoDisplay - div-элемент, в котором будет отображаться видео другой стороны
- constraints - объект с параметрами, указывающими на наличие аудио и видео
Code Block | ||||
---|---|---|---|---|
| ||||
var constraints = { constraintsaudio: constraintstrue, }).on(CALL_STATUS.RING, function(call){ video: hasVideo me.callStatusListener(call); }; var outCall = }).on(CALL_STATUS.ESTABLISHED, function(call){ this.session.createCall({ me.callStatusListener(call);callee: callee, }).on(CALL_STATUS.HOLD, function(call){ visibleName: this.sipOptions.login, me.callStatusListener(call); }).on(CALL_STATUS.FINISH, function(call){ localVideoDisplay: this.localVideo, remoteVideoDisplay: me.callStatusListener(call); this.remoteVideo, }).on(CALL_STATUS.FAILED, function(call){ constraints: constraints me.callStatusListener(call);... }); outCall.call(); |
7. Ответ на входящий звонок.
...
Code Block | ||||
---|---|---|---|---|
| ||||
this.currentCall.answer({
localVideoDisplay: this.localVideo,
remoteVideoDisplay: this.remoteVideo
}); |
...