var notRegistered={regMessageText:gettext("Нет подключения к сети")};var registered={regMessageText:gettext("Подключен к сети")};var notReadyToCall={grantMessageText:gettext("Необходимо войти в сеть"),showCallButton:false,showAnswerButton:false,showCancelButton:false,showTransferButton:false};var readyToCall={showCallButton:true,showAnswerButton:false,showCancelButton:false,showTransferButton:false};var incomingCall={showCallButton:false,showAnswerButton:true,showCancelButton:true,showTransferButton:false};var outgoingCall={showCallButton:false,showAnswerButton:false,showCancelButton:true,showTransferButton:false};var callInProgress={showCallButton:false,showAnswerButton:false,showCancelButton:true,showTransferButton:false};function Call(a,b,d,c){this.url=a;this.state=b;this.totalDuration=d;this.connectDuration=c}var stateManager={calls:[],currentRegState:null,switchCallState:function(e,a,d,f,c){var b=this.calls[a];if(!b){if(e==readyToCall&&a!=""){return}this.calls[a]=new Call(a,e,f,c);b=this.calls[a]}else{if(e==b.state){return}b.state=e;b.info=d;b.totalDuration=f;b.connectDuration=c}webInterface.drawCallState(e,a);if(a!=""){callResults.drawCall(b)}},switchRegState:function(a){if(a==this.currentRegState){return}this.currentRegState=a;webInterface.drawRegState(a)},init:function(){this.switchRegState(notRegistered);softPhone.requestRegState();var b=softPhone.enumCalls();for(var a=0;a<b.length;a++){softPhone.requestCallState(b[a])}}};function onCallStateChanged(b,a,d,e,c){switch(b){case"CALLING":case"EARLY":case"CONNECTING":stateManager.switchCallState(outgoingCall,a,d,e,c);break;break;case"CONFIRMED":stateManager.switchCallState(callInProgress,a,d,e,c);break;case"INCOMING":stateManager.switchCallState(incomingCall,a,d,e,c);break;case"DISCONNCTD":stateManager.switchCallState(readyToCall,a,d,e,c);break}}function onRegStateChanged(a){switch(a){case"OK":stateManager.switchCallState(readyToCall,"");stateManager.switchRegState(registered);break;default:stateManager.switchCallState(notReadyToCall,"");stateManager.switchRegState(notRegistered);break}};
