diff --git a/src/gui/guiframework.cpp b/src/gui/guiframework.cpp index c927faf0831816f95dd991c64143f0d8b95bfaee..a85784c95b1a2bfba6df0f068b09a25bc2a67a94 100644 --- a/src/gui/guiframework.cpp +++ b/src/gui/guiframework.cpp @@ -253,3 +253,29 @@ GuiFramework::hasLoadedSetup() { return Manager::instance().hasLoadedSetup(); } + +bool +GuiFramework::getRegistrationState(std::string& stateCode, std::string& stateMessage) { + ManagerImpl::REGISTRATION_STATE state = Manager::instance().getRegistrationState(); + bool returnValue = false; + switch( state ) { + case ManagerImpl::REGISTERED: + returnValue = true; + stateCode = "103"; + stateMessage = "Registration succeed"; + break; + + case ManagerImpl::FAILED: + returnValue = true; + stateCode = "104"; + stateMessage = "Registration failed"; + break; + + case ManagerImpl::UNREGISTERED: + returnValue = false; + stateCode = ""; + stateMessage = ""; + break; + } + return returnValue; +} diff --git a/src/gui/guiframework.h b/src/gui/guiframework.h index ce3e7bc670f1bdfead747cd3546da5132d14aa1a..47407e3ed7eba89f49e605d109cd24169c9595ab 100644 --- a/src/gui/guiframework.h +++ b/src/gui/guiframework.h @@ -91,9 +91,10 @@ public: bool hasLoadedSetup(); CALLID getCurrentId(); + bool getRegistrationState(std::string& stateCode, std::string& stateMessage); protected: - std::string _message; + std::string _message; }; #endif // __GUI_FRAMEWORK_H__ diff --git a/src/gui/server/guiserverimpl.cpp b/src/gui/server/guiserverimpl.cpp index 3d31da7a4f2ea2056e3acf5a4b9b38c9675b892a..2e17299d9f62ba7fe58d0e677a7a07c01fab9306 100644 --- a/src/gui/server/guiserverimpl.cpp +++ b/src/gui/server/guiserverimpl.cpp @@ -132,7 +132,14 @@ GUIServerImpl::getEvents(const std::string& sequenceId) percentMic << GuiFramework::getMicVolume(); tk.push_back(percentMic.str()); tk.push_back("Microphone volume changed"); - _requestManager.sendResponse(ResponseMessage("022", sequenceId,tk)); + _requestManager.sendResponse(ResponseMessage("022", sequenceId, tk)); + + std::string stateCode; + std::string stateMessage; + if (GuiFramework::getRegistrationState(stateCode,stateMessage)) { + _requestManager.sendResponse(ResponseMessage(stateCode, sequenceId, stateMessage)); + } + return true; } diff --git a/src/managerimpl.cpp b/src/managerimpl.cpp index 9f0b0e64bd687cf55d3e4df77f5a169f3200c137..45bbce69f97e8ed556f2c458a6831b78d0ed9e38 100644 --- a/src/managerimpl.cpp +++ b/src/managerimpl.cpp @@ -90,6 +90,8 @@ ManagerImpl::ManagerImpl (void) _nbIncomingWaitingCall=0; _codecMap = CodecDescriptorMap().getMap(); + + _registerState = UNREGISTERED; } // never call if we use only the singleton... @@ -448,9 +450,13 @@ ManagerImpl::registerVoIPLink (void) if ( !useStun() ) { if (_voIPLinkVector.at(DFT_VOIP_LINK)->setRegister() >= 0) { returnValue = true; + _registerState = REGISTERED; } else { _debug("ManagerImpl::registerVoIPLink: Registration failed\n"); + _registerState = FAILED; } + } else { + _registerState = UNREGISTERED; } return returnValue; } diff --git a/src/managerimpl.h b/src/managerimpl.h index cc5050bbf1b7d0fa52007c37c26d1e02591f97e5..0efb6d458f6a267fdc264f8d7197ba8bb0559f86 100644 --- a/src/managerimpl.h +++ b/src/managerimpl.h @@ -228,19 +228,15 @@ name); * Write by main thread only */ unsigned short getSpkrVolume(void) { - //ost::MutexLock m(_mutex); return _spkr_volume; } void setSpkrVolume(unsigned short spkr_vol) { - //ost::MutexLock m(_mutex); _spkr_volume = spkr_vol; } unsigned short getMicVolume(void) { - //ost::MutexLock m(_mutex); return _mic_volume; } void setMicVolume(unsigned short mic_vol) { - //ost::MutexLock m(_mutex); _mic_volume = _mic_volume_before_mute = mic_vol; } @@ -259,19 +255,19 @@ name); inline bool isDriverLoaded (void) const { return _loaded; } inline void loaded (bool l) { _loaded = l; } - /* - * Functions about audio device - */ -/* - AudioDevice deviceList (int); - int deviceCount (void); - bool defaultDevice (int); -*/ /* * Init default values for the different fields */ void initConfigFile (void); + enum REGISTRATION_STATE { + UNREGISTERED, + REGISTERED, + FAILED + }; + + REGISTRATION_STATE getRegistrationState() { return _registerState; } + private: @@ -378,6 +374,9 @@ private: // Current callid CALLID _currentCallId; + // Register state + REGISTRATION_STATE _registerState; + /* * For the call timer */