diff --git a/src/Account.cpp b/src/Account.cpp index 2bd6e0e9d46f616daaa7217780a2e8c50794a66c..6e4f05e0cc52e257d072067ef813efdbcd430ab9 100644 --- a/src/Account.cpp +++ b/src/Account.cpp @@ -86,6 +86,12 @@ Account* Account::buildExistingAccountFromId(const QString& _accountId) return NULL; } a->m_pAccountDetails = aDetails; + + //Enable for debug + // foreach (QString str, *aDetails) { + // qDebug() << aDetails->key(str) << str; + // } + return a; } @@ -152,6 +158,10 @@ const QString& Account::getAccountDetail(const QString& param) const } if (m_pAccountDetails->find(param) != m_pAccountDetails->end()) return (*m_pAccountDetails)[param]; + else if (m_pAccountDetails->count() > 0) { + qDebug() << "Account paramater \"" << param << "\" not found"; + return EMPTY_STRING; + } else { qDebug() << "Account details not found, there is " << m_pAccountDetails->count() << " details available"; return EMPTY_STRING; @@ -167,13 +177,13 @@ const QString& Account::getAlias() const ///Is this account enabled bool Account::isEnabled() const { - return (getAccountDetail(ACCOUNT_ENABLED) == ACCOUNT_ENABLED_TRUE); + return (getAccountDetail(ACCOUNT_ENABLED) == REGISTRATION_ENABLED_TRUE); } ///Is this account registered bool Account::isRegistered() const { - return (getAccountDetail(ACCOUNT_STATUS) == ACCOUNT_STATE_REGISTERED); + return (getAccountDetail(REGISTRATION_STATUS) == ACCOUNT_STATE_REGISTERED); } @@ -207,7 +217,7 @@ void Account::setAccountId(const QString& id) ///Set account enabled void Account::setEnabled(bool checked) { - setAccountDetail(ACCOUNT_ENABLED, checked ? ACCOUNT_ENABLED_TRUE : ACCOUNT_ENABLED_FALSE); + setAccountDetail(ACCOUNT_ENABLED, checked ? REGISTRATION_ENABLED_TRUE : REGISTRATION_ENABLED_FALSE); } /***************************************************************************** @@ -222,8 +232,8 @@ void Account::updateState() if(! isNew()) { ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); MapStringString details = configurationManager.getAccountDetails(getAccountId()).value(); - QString status = details[ACCOUNT_STATUS]; - setAccountDetail(ACCOUNT_STATUS, status); //Update -internal- object state + QString status = details[REGISTRATION_STATUS]; + setAccountDetail(REGISTRATION_STATUS, status); //Update -internal- object state } } diff --git a/src/AccountList.cpp b/src/AccountList.cpp index 8a99b6b899a9095ffd4fc7a81df429b6cdf3f50f..30c440de2cf37e91b4b7b3e07fca06a531679e4c 100644 --- a/src/AccountList.cpp +++ b/src/AccountList.cpp @@ -143,7 +143,7 @@ QVector<Account*> AccountList::getAccountsByState(const QString& state) { QVector<Account *> v; for (int i = 0; i < m_pAccounts->size(); ++i) { - if ((*m_pAccounts)[i]->getAccountDetail(ACCOUNT_STATUS) == state) + if ((*m_pAccounts)[i]->getAccountDetail(REGISTRATION_STATUS) == state) v += (*m_pAccounts)[i]; } return v; @@ -157,7 +157,7 @@ QVector<Account*> AccountList::registeredAccounts() const Account* current; for (int i = 0; i < m_pAccounts->count(); ++i) { current = (*m_pAccounts)[i]; - if(current->getAccountDetail(ACCOUNT_STATUS) == ACCOUNT_STATE_REGISTERED) { + if(current->getAccountDetail(REGISTRATION_STATUS) == ACCOUNT_STATE_REGISTERED) { qDebug() << current->getAlias() << " : " << current; registeredAccounts.append(current); } @@ -171,11 +171,11 @@ Account* AccountList::firstRegisteredAccount() const Account* current; for (int i = 0; i < m_pAccounts->count(); ++i) { current = (*m_pAccounts)[i]; - if(current && current->getAccountDetail(ACCOUNT_STATUS) == ACCOUNT_STATE_REGISTERED) { + if(current && current->getAccountDetail(REGISTRATION_STATUS) == ACCOUNT_STATE_REGISTERED) { return current; } else { - qDebug() << "Account " << current->getAccountId() << " is not registered (" << current->getAccountDetail(ACCOUNT_STATUS) << ")"; + qDebug() << "Account " << ((current)?current->getAccountId():"") << " is not registered (" << ((current)?current->getAccountDetail(REGISTRATION_STATUS):"") << ") State:" << ((current)?current->getAccountDetail(REGISTRATION_STATUS):""); } } return NULL; diff --git a/src/AccountList.h b/src/AccountList.h index 68f995b08dfd2bde6c4891fafed49d22a1e6be08..b1fce03a9d02c00c385c84cef0ebb233947e8666 100644 --- a/src/AccountList.h +++ b/src/AccountList.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ + **************************************************************************/ #ifndef ACCOUNT_LIST_H #define ACCOUNT_LIST_H @@ -70,5 +70,4 @@ signals: void accountListUpdated(); }; - #endif diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c2fa10571ef547aeec51bee8f033c6322ec560ba..f0c574c9d0f4296a9c5fc15b43dd237ab1cdfe76 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,5 +1,8 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +ADD_DEFINITIONS("-std=c++0x") +# ADD_DEFINITIONS("-std=c++0x") + ADD_DEFINITIONS( ${QT_DEFINITIONS} -fexceptions diff --git a/src/Call.cpp b/src/Call.cpp index 7504e8e0ec41f3a6bfe9a42263bc2961d4902591..e09f029a425a2765ee3f5e3f001d77476d7228a9 100644 --- a/src/Call.cpp +++ b/src/Call.cpp @@ -313,7 +313,7 @@ daemon_call_state Call::toDaemonCallState(const QString & stateName) QString Call::getStopTimeStamp() const { if (m_pStopTime == NULL) - return QString(); + return QString("0"); return QString::number(m_pStopTime->toTime_t()); } @@ -321,7 +321,7 @@ QString Call::getStopTimeStamp() const QString Call::getStartTimeStamp() const { if (m_pStartTime == NULL) - return QString(); + return QString("0"); return QString::number(m_pStartTime->toTime_t()); } @@ -385,6 +385,12 @@ const QString& Call::getConfId() const return m_ConfId; } +///Get the recording path +const QString& Call::getRecordingPath() const +{ + return m_RecordingPath; +} + ///Get the current codec QString Call::getCurrentCodecName() const { @@ -459,6 +465,12 @@ void Call::setConfId(QString value) m_ConfId = value; } +///Set the recording path +void Call::setRecordingPath(const QString& path) +{ + m_RecordingPath = path; +} + /***************************************************************************** * * * Mutator * diff --git a/src/Call.h b/src/Call.h index 8e475dbcdfdcd9c665168835413d4b42fabd370f..47252d9f60a1bbca1dcfe19c9d7fb985ab513481 100644 --- a/src/Call.h +++ b/src/Call.h @@ -151,6 +151,7 @@ public: const QString& getConfId () const; const QString& getTransferNumber () const; const QString& getCallNumber () const; + const QString& getRecordingPath () const; //Automated function call_state stateChanged(const QString & newState); @@ -161,6 +162,7 @@ public: void setConfId(QString value); void setTransferNumber(const QString& number); void setCallNumber(const QString& number); + void setRecordingPath(const QString& path); //Mutators void appendText(const QString& str); @@ -175,6 +177,7 @@ private: QString m_ConfId ; QString m_PeerPhoneNumber; QString m_PeerName ; + QString m_RecordingPath ; history_state m_HistoryState ; QDateTime* m_pStartTime ; QDateTime* m_pStopTime ; diff --git a/src/CallModel.h b/src/CallModel.h index 608af376d043a0d15c16ba95e663e4afe460ac99..7644138291457ed5aa2a1c0ba8de6840a383fe4e 100644 --- a/src/CallModel.h +++ b/src/CallModel.h @@ -175,11 +175,11 @@ class LIB_EXPORT CallModel : public CallModelBase { struct InternalStruct; typedef QList<InternalStruct*> InternalCallList; struct InternalStruct { - CallWidget call ; - Call* call_real ; - Index index ; - InternalCallList children ; - bool conference ; + CallWidget call ; + Call* call_real ; + Index index ; + InternalCallList children ; + bool conference ; }; typedef QHash< Call* , InternalStruct* > InternalCall ; typedef QHash< QString , InternalStruct* > InternalCallId; diff --git a/src/CallModel.hpp b/src/CallModel.hpp index f19081c5a580269fd29f90a9985c553b9ec9ffe8..8fb295df4de58fd0e407396aa166953017ccbe92 100644 --- a/src/CallModel.hpp +++ b/src/CallModel.hpp @@ -77,7 +77,7 @@ template<typename CallWidget, typename Index> bool CallModel<CallWidget,Index>:: //Setup accounts if (m_spAccountList == NULL) - m_spAccountList = new AccountList(true); + m_spAccountList = new AccountList(true); } m_sInstanceInit = true; return true; @@ -117,25 +117,22 @@ template<typename CallWidget, typename Index> bool CallModel<CallWidget,Index>:: { if (!m_sHistoryInit) { ConfigurationManagerInterface& configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); - QStringList historyMap = configurationManager.getHistory().value(); - foreach (QString historyCallId, historyMap) { - QStringList param = historyCallId.split("|"); - if (param.count() <= 10) { - //If this ever change, look at the gnome client - QString history_state = param[0]; - QString peer_number = param[1]; - QString peer_name = param[2]; - QString time_start = param[3]; - QString time_stop = param[4]; - QString callID = param[5]; - QString accountID = param[6]; - QString recordfile = param[7]; - QString confID = param[8]; - QString time_added = param[9]; - m_sHistoryCalls[time_start] = Call::buildHistoryCall(callID, time_start.toUInt(), time_stop.toUInt(), accountID, peer_name, peer_number, history_state); - addCall(m_sHistoryCalls[time_start]); - } + QVector< QMap<QString, QString> > history = configurationManager.getHistory(); + foreach (MapStringString hc, history) { + Call* pastCall = Call::buildHistoryCall( + hc[ CALLID_KEY ] , + hc[ TIMESTAMP_START_KEY ].toUInt(), + hc[ TIMESTAMP_STOP_KEY ].toUInt(), + hc[ ACCOUNT_ID_KEY ] , + hc[ DISPLAY_NAME_KEY ] , + hc[ PEER_NUMBER_KEY ] , + hc[ STATE_KEY ] + ); + pastCall->setRecordingPath(hc[ RECORDING_PATH_KEY ]); + m_sHistoryCalls[ hc[TIMESTAMP_START_KEY ]] = pastCall; + addCall(pastCall); } + qDebug() << "There is " << m_sHistoryCalls.count() << "in history"; } m_sHistoryInit = true; return true; @@ -181,6 +178,9 @@ template<typename CallWidget, typename Index> QList<Call*> CallModel<CallWidget, template<typename CallWidget, typename Index> Call* CallModel<CallWidget,Index>::addCall(Call* call, Call* parent) { Q_UNUSED(parent) + if (!call) + return new Call("",""); //Invalid, but better than managing NULL everywhere + InternalStruct* aNewStruct = new InternalStruct; aNewStruct->call_real = call; aNewStruct->conference = false; @@ -277,7 +277,7 @@ template<typename CallWidget, typename Index> void CallModel<CallWidget,Index>:: ///Transfer this call to "target" number template<typename CallWidget, typename Index> void CallModel<CallWidget,Index>::transfer(Call* toTransfer, QString target) { - qDebug() << "\n\n\n\n\nTransferring call " << toTransfer->getCallId() << target << "\n\n\n\n\n"; + qDebug() << "Transferring call " << toTransfer->getCallId() << "to" << target; toTransfer->setTransferNumber(target); toTransfer->changeCurrentState(CALL_STATE_TRANSFER); toTransfer->actionPerformed(CALL_ACTION_ACCEPT); @@ -415,6 +415,7 @@ template<typename CallWidget, typename Index> const QStringList CallModel<CallWi ///Return the history list template<typename CallWidget, typename Index> const CallHash& CallModel<CallWidget,Index>::getHistory() { + qDebug() << "Getting history" << m_sHistoryCalls.count(); return m_sHistoryCalls; } @@ -441,7 +442,7 @@ template<typename CallWidget, typename Index> QString CallModel<CallWidget,Index template<typename CallWidget, typename Index> Account* CallModel<CallWidget,Index>::getCurrentAccount() { Account* priorAccount = getAccountList()->getAccountById(m_sPriorAccountId); - if(priorAccount && priorAccount->getAccountDetail(ACCOUNT_STATUS) == ACCOUNT_STATE_REGISTERED ) { + if(priorAccount && priorAccount->getAccountDetail(REGISTRATION_STATUS) == ACCOUNT_STATE_REGISTERED ) { return priorAccount; } else { @@ -491,7 +492,7 @@ template<typename CallWidget, typename Index> QList<Call*> CallModel<CallWidget, QList<Call*> toReturn; if (m_sPrivateCallList_widget[widget] && m_sPrivateCallList_widget[widget]->conference) { foreach (InternalStruct* child, m_sPrivateCallList_widget[widget]->children) { - toReturn << child.call_real; + toReturn << child.call_real; } } return toReturn; @@ -537,7 +538,7 @@ template<typename CallWidget, typename Index> QList<Call*> CallModel<CallWidget, QList<Call*> toReturn; if (m_sPrivateCallList_call[call] && m_sPrivateCallList_call[call]->conference) { foreach (InternalStruct* child, m_sPrivateCallList_call[call]->children) { - toReturn << child.call_real; + toReturn << child.call_real; } } return toReturn; @@ -568,7 +569,7 @@ template<typename CallWidget, typename Index> QList<Call*> CallModel<CallWidget, QList<Call*> toReturn; if (m_sPrivateCallList_index[idx] && m_sPrivateCallList_index[idx]->conference) { foreach (InternalStruct* child, m_sPrivateCallList_index[idx]->children) { - toReturn << child.call_real; + toReturn << child.call_real; } } return toReturn; @@ -598,7 +599,7 @@ template<typename CallWidget, typename Index> QList<Call*> CallModel<CallWidget, QList<Call*> toReturn; if (m_sPrivateCallList_callId[callId] && m_sPrivateCallList_callId[callId]->conference) { foreach (InternalStruct* child, m_sPrivateCallList_callId[callId]->children) { - toReturn << child.callId_real; + toReturn << child.callId_real; } } return toReturn; @@ -705,4 +706,4 @@ template<typename CallWidget, typename Index> bool CallModel<CallWidget,Index>:: m_sPrivateCallList_call[call]->index = value ; m_sPrivateCallList_index[value] = m_sPrivateCallList_call[call] ; return true; -} \ No newline at end of file +} diff --git a/src/ContactBackend.h b/src/ContactBackend.h index 81a0c051d2e8c3b4d291530e8d1fe4afdc579ae1..66d65cd8dae12ed87942f5bc46c2daab109e9995 100644 --- a/src/ContactBackend.h +++ b/src/ContactBackend.h @@ -37,7 +37,7 @@ class LIB_EXPORT ContactBackend : public QObject { Q_OBJECT public: ContactBackend(QObject* parent); - virtual Contact* getContactByPhone ( const QString& phoneNumber ) = 0; + virtual Contact* getContactByPhone ( const QString& phoneNumber , bool resolveDNS = false) = 0; virtual Contact* getContactByUid ( const QString& uid ) = 0; virtual void editContact ( Contact* contact ) = 0; virtual void addNewContact ( Contact* contact ) = 0; diff --git a/src/Item.h b/src/Item.h index 24238fa5c4e34f318efd4916f6226e3e107979dd..7da33c927da425bcd23909c79200cf46f729e090 100644 --- a/src/Item.h +++ b/src/Item.h @@ -25,68 +25,68 @@ class QListWidgetItem; -/** - @author Jérémy Quentin <jeremy.quentin@gmail.com> - Represents an item of a list, that is displayed - by an QListWidgetItem with a QWidget inside. - The two objects are contained in this class, but their - initializations are pure virtual. - The template class WIDGET_TYPE should be derived from - QWidget. - The implementation of initItem should call initItemWidget +/** + * @author Jérémy Quentin <jeremy.quentin@gmail.com> + * Represents an item of a list, that is displayed + * by an QListWidgetItem with a QWidget inside. + * The two objects are contained in this class, but their + * initializations are pure virtual. + * The template class WIDGET_TYPE should be derived from + * QWidget. + * The implementation of initItem should call initItemWidget */ template<class WIDGET_TYPE>class LIB_EXPORT Item { protected: - QListWidgetItem * item; - WIDGET_TYPE * itemWidget; - + QListWidgetItem * item; + WIDGET_TYPE * itemWidget; + public: - /** - * Would be great to take the QListWidget as attribute - * to be able to add the itemWidget to the item in the list. - * For the moment, we have to do it from outside. - */ - Item(/*QListWidget *list=0*/) { - item = NULL; - itemWidget = NULL; - } - - /** - * Be careful that it is not already deleted by QObject - * Commented for safety reasons... - */ - virtual ~Item() { -// delete item; -// delete itemWidget; - } - - QListWidgetItem* getItem() { - return item; - } - - WIDGET_TYPE* getItemWidget() { - return itemWidget; - } - - const QListWidgetItem* getItem() const { - return item; - } - const WIDGET_TYPE* getItemWidget() const { - return itemWidget; - } - - /** - * Initializes the item and widget - * Implementation should call initItemWidget! - */ - virtual void initItem() = 0; - + /** + * Would be great to take the QListWidget as attribute + * to be able to add the itemWidget to the item in the list. + * For the moment, we have to do it from outside. + */ + Item(/*QListWidget *list=0*/) { + item = NULL; + itemWidget = NULL; + } + + /** + * Be careful that it is not already deleted by QObject + * Commented for safety reasons... + */ + virtual ~Item() { + // delete item; + // delete itemWidget; + } + + QListWidgetItem* getItem() { + return item; + } + + WIDGET_TYPE* getItemWidget() { + return itemWidget; + } + + const QListWidgetItem* getItem() const { + return item; + } + const WIDGET_TYPE* getItemWidget() const { + return itemWidget; + } + + /** + * Initializes the item and widget + * Implementation should call initItemWidget! + */ + virtual void initItem() = 0; + protected: - virtual void initItemWidget() = 0; - - + virtual void initItemWidget() = 0; + + }; #endif diff --git a/src/configurationmanager_interface_singleton.cpp b/src/configurationmanager_interface_singleton.cpp index bcd19e8ff1f37f55b7e6853682e95b0e14eb73ce..0c78866ed5dc8fdea5063e53fd8e4757ba8366b6 100644 --- a/src/configurationmanager_interface_singleton.cpp +++ b/src/configurationmanager_interface_singleton.cpp @@ -32,4 +32,4 @@ ConfigurationManagerInterface & ConfigurationManagerInterfaceSingleton::getInsta } return *interface; } - + diff --git a/src/dbus/callmanager-introspec.xml b/src/dbus/callmanager-introspec.xml index 46cec40068df52b9d16a50324c3947821ed7f443..a742426b77507d01a447521eca94b2237ad136f1 100644 --- a/src/dbus/callmanager-introspec.xml +++ b/src/dbus/callmanager-introspec.xml @@ -1,825 +1,781 @@ <?xml version="1.0" encoding="UTF-8" ?> <node name="/callmanager-introspec" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0"> - <interface name="org.sflphone.SFLphone.CallManager"> - - <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> - <p>The CallManager interface is used to manage - any call and conference related actions.</p> - <p>Since SFLphone-daemon support multiple incoming/outgoing calls, any actions involving a specific call must address the method by the means of a unique callID. SFLphone-clients is responsible to generate the callID on outgoing call. On the other hand, SFLphone-daemon will generate a unique callID on incoming calls.</p> - </tp:docstring> - <method name="placeCall" tp:name-for-bindings="placeCall"> - <tp:docstring> - <p>This is the main method in order to place a new call. The call is registered to the daemon using this method.</p> - </tp:docstring> - <arg type="s" name="accountID" direction="in"> - <tp:docstring> - The ID of the account you want to make a call with. If the call is to be placed whithout any account by the means of a SIP URI (i.e. sip:num@server), the "IP2IP_PROFILE" is passed as the accountID. For more details about accounts see the configuration manager interface. - </tp:docstring> - </arg> - <arg type="s" name="callID" direction="in"> - <tp:docstring> - The callID is a unique identifier that must be randomly generated on the client's side. Any subsequent actions refering to this call must use this callID. - </tp:docstring> - </arg> - <arg type="s" name="to" direction="in"> - <tp:docstring> - If bound to a VoIP account, then the argument is the phone number. In case of calls involving "IP2IP_PROFILE", a complete SIP URI must be specified. - </tp:docstring> - </arg> - </method> - - <method name="placeCallFirstAccount" tp:name-for-bindings="placeCallFirstAccount"> - <tp:added version="0.9.8"/> - <tp:docstring> - Place a call with the fist registered account, regarding to the account list order. - <tp:rationale> - Use this function when you don't have any information about the accounts used (Ex: Firefly mozilla extension) - </tp:rationale> - </tp:docstring> - <arg type="s" name="callID" direction="in"> - <tp:docstring> - The callID is a unique identifier that must be randomly generated on the client's side. Any subsequent actions refering to this call must use this callID. - </tp:docstring> - </arg> - <arg type="s" name="to" direction="in"> - <tp:docstring> - If bound to a VoIP account, then the argument is the phone number. In case of calls involving "IP2IP_PROFILE", a complete SIP URI must be specified. - </tp:docstring> - </arg> - </method> - - <method name="refuse" tp:name-for-bindings="refuse"> - <tp:docstring> - Refuse an incoming call. - </tp:docstring> - <arg type="s" name="callID" direction="in"> - <tp:docstring> - The callID. - </tp:docstring> - </arg> - - </method> - - <method name="accept" tp:name-for-bindings="accept"> - <tp:docstring> - Answer an incoming call. Automatically put the current call on state HOLD. - </tp:docstring> - <arg type="s" name="callID" direction="in"> - <tp:docstring> - The callID. - </tp:docstring> - </arg> - </method> - - <method name="hangUp" tp:name-for-bindings="hangUp"> - <tp:docstring> - Hangup a call in state "CURRENT" or "HOLD". - </tp:docstring> - <arg type="s" name="callID" direction="in"> - <tp:docstring> - The callID. - </tp:docstring> - </arg> - </method> - - <method name="hangUpConference" tp:name-for-bindings="hangUpConference"> - <tp:added version="0.9.7"/> - <tp:docstring> - Hangup a conference, and every call participating to the conference. - </tp:docstring> - <arg type="s" name="confID" direction="in"> - <tp:docstring> - The unique conference ID. - </tp:docstring> - </arg> - </method> - - <method name="hold" tp:name-for-bindings="hold"> - <tp:docstring> - Place a call on hold. - </tp:docstring> - <arg type="s" name="callID" direction="in"> - <tp:docstring> - The callID. - </tp:docstring> - </arg> - </method> - - <method name="unhold" tp:name-for-bindings="unhold"> - <tp:docstring> - Hold off a call, and place this call on state CURRENT. - </tp:docstring> - <arg type="s" name="callID" direction="in"> - <tp:docstring> - The callID. - </tp:docstring> - </arg> - </method> - - <method name="transfer" tp:name-for-bindings="transfer"> - <tp:docstring> - Transfer a call to given phone number. - </tp:docstring> - <arg type="s" name="callID" direction="in"> - <tp:docstring> - The callID. - </tp:docstring> - </arg> - <arg type="s" name="to" direction="in"> - <tp:docstring> - The phone number to transfer the call to. - </tp:docstring> - </arg> - </method> - - <method name="attendedTransfer" tp:name-for-bindings="attendedTransfer"> - <tp:docstring> - Perform an attended transfer on two calls - </tp:docstring> - <arg type="s" name="transferID" direction="in"> - <tp:docstring> - The callID of the call to be transfered. - </tp:docstring> - </arg> - <arg type="s" name="targetID" direction="in"> - <tp:docstring> - The callID of the target call. - </tp:docstring> - </arg> - </method> - - <method name="playDTMF" tp:name-for-bindings="playDTMF"> - <tp:docstring> - Dual-Tone multi-frequency. Tell the core to play dial tones. A SIP INFO message is sent to notify the server. - </tp:docstring> - <arg type="s" name="key" direction="in"> - <tp:docstring> - Unicode charter for pressed key - </tp:docstring> - </arg> - </method> - - <method name="startTone" tp:name-for-bindings="startTone"> - <tp:docstring> - Start audio stream and play tone.. - </tp:docstring> - <arg type="i" name="start" direction="in"/> - <arg type="i" name="type" direction="in"/> - </method> - - <method name="setVolume" tp:name-for-bindings="setVolume"> - <tp:docstring> - <p>Sets the volume using a linear scale [0,100].</p> - <tp:rationale>Pulseaudio has its own mechanism to modify application volume. This method is enabled only if the ALSA API is used.</tp:rationale> - </tp:docstring> - <arg type="s" name="device" direction="in"> - <tp:docstring> - The device: mic or speaker - </tp:docstring> - </arg> - <arg type="d" name="value" direction="in"> - <tp:docstring> - The volume value (between 0 and 100) - </tp:docstring> - </arg> - </method> - - <method name="getVolume" tp:name-for-bindings="getVolume"> - <tp:docstring> - <p>Return the volume value of the given device on a linear scale [0,100].</p> - <tp:rationale>Only enabled if the ALSA API is used, Pulseaudio has its own mechanism to modify application volume.</tp:rationale> - </tp:docstring> - <arg type="s" name="device" direction="in"> - <tp:docstring> - The device: mic or speaker - </tp:docstring> - </arg> - <arg type="d" name="value" direction="out"> - <tp:docstring> - The volume value (between 0 and 100) - </tp:docstring> - </arg> - </method> - - <method name="joinParticipant" tp:name-for-bindings="joinParticipant"> - <tp:added version="0.9.7"/> - <tp:docstring> - <p>Join two participants together to create a 3-way conference including the current client.</p> - <tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale> - </tp:docstring> - <arg type="s" name="sel_callID" direction="in"/> - <arg type="s" name="drag_callID" direction="in"/> - </method> - - <method name="createConfFromParticipantList" tp:name-for-bindings="createConfFromParticipantList"> - <tp:added version="0.9.14"/> - <tp:docstring> - <p>Create a conference from a list of participant</p> - <tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale> - </tp:docstring> - <arg type="as" name="participants" direction="in"/> - </method> - - <method name="addParticipant" tp:name-for-bindings="addParticipant"> - <tp:added version="0.9.7"/> - <tp:docstring> - <p>Join a new particiant to an existing conference.</p> - <tp:rationale>The signal <tp:member-ref>conferenceChanged</tp:member-ref> is emitted on success.</tp:rationale> - </tp:docstring> - <arg type="s" name="callID" direction="in"> - <tp:docstring> - The ID of the call to add to the conference - </tp:docstring> - </arg> - <arg type="s" name="confID" direction="in"> - <tp:docstring> - An existing conference ID - </tp:docstring> - </arg> - </method> - - <method name="addMainParticipant" tp:name-for-bindings="addMainParticipant"> - <tp:added version="0.9.7"/> - <tp:docstring> - <p>As the core can handle multiple calls an conferences, it may happens that the client's user leave a conference to answer an incoming call or send new ones. This method is used to reintroduce SFLphone-client's user into the conference.</p> - <p>It put the current call on state HOLD or detach SFLphone-client's user from the another conference.</p> - </tp:docstring> - <arg type="s" name="confID" direction="in"> - <tp:docstring> - An existing conference ID - </tp:docstring> - </arg> - </method> - - <method name="detachParticipant" tp:name-for-bindings="detachParticipant"> - <tp:added version="0.9.7"/> - <tp:docstring> - Detach the given call from the conference. If only one participant is left, the conference is deleted and the signal <tp:member-ref>conferenceRemoved</tp:member-ref> is emited. - </tp:docstring> - <arg type="s" name="callID" direction="in"> - <tp:docstring> - The call ID - </tp:docstring> - </arg> - </method> - - <method name="joinConference" tp:name-for-bindings="joinConference"> - <tp:added version="0.9.7"/> - <tp:docstring> - Join two conferences together. - </tp:docstring> - <arg type="s" name="sel_confID" direction="in"/> - <arg type="s" name="drag_confID" direction="in"/> - </method> - - <method name="getConferenceDetails" tp:name-for-bindings="getConferenceDetails"> - <tp:added version="0.9.7"/> - <tp:docstring> - Returns a hashtable containing conference details. - </tp:docstring> - <arg type="s" name="callID" direction="in"> - <tp:docstring> - The conference ID - </tp:docstring> - </arg> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/> - <arg type="a{ss}" name="infos" direction="out"> - <tp:docstring> - A map containing the ID of the conferences - and their states: - <ul> - <li>ACTIVE_ATTACHED</li> - <li>ACTIVE_DETACHED</li> - <li>HOLD</li> - </ul> - </tp:docstring> - </arg> - </method> - - <method name="getConferenceList" tp:name-for-bindings="getConferenceList"> - <tp:added version="0.9.7"/> - <tp:docstring> - Returns a list containing all active - conferences. - <tp:rationale>To update client status, one should - use <tp:member-ref>getParticipantList</tp:member-ref> - with provided conference IDs.</tp:rationale> - </tp:docstring> - <arg type="as" name="list" direction="out"> - <tp:docstring> - The list of conferences. - </tp:docstring> - </arg> - </method> - - <method name="setRecording" tp:name-for-bindings="setRecording"> - <tp:docstring> - Start recording a call. - </tp:docstring> - <arg type="s" name="callID" direction="in"> - <tp:docstring> - The ID of the call to record. - </tp:docstring> - </arg> - </method> - - <method name="getIsRecording" tp:name-for-bindings="getIsRecording"> - <tp:docstring> - Tells whether or not a call is being recorded. - </tp:docstring> - <arg type="s" name="callID" direction="in"> - <tp:docstring> - The call ID. - </tp:docstring> - </arg> - <arg type="b" name="isRecording" direction="out"> - <tp:docstring> - Returns true is the call is being recorded. False otherwise. - </tp:docstring> - </arg> - </method> - - <signal name="recordPlaybackFilepath" tp:name-for-bindings="recordPlaybackFilepath"> - <tp:docstring> - Once after starting recording for the first time, this signal is emited to - provide the recorded file path to client application. - </tp:docstring> - <arg type="s" name="callID" /> - <arg type="s" name="filepath"/> - </signal> - - <signal name="recordPlaybackStopped" tp:name-for-bindings="recordPlaybackStopped"> - <tp:docstring/> - <arg type="s" name="filepath" /> - </signal> - - - <method name="getCallDetails" tp:name-for-bindings="getCallDetails"> - <tp:docstring> - Get all the details about a specific call. - </tp:docstring> - <arg type="s" name="callID" direction="in"> - <tp:docstring> - The call ID. - </tp:docstring> - </arg> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/> - <arg type="a{ss}" name="infos" direction="out" tp:type="String_String_Map"> - <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> - <p>A map containing the call details: </p> - <ul> - <li>ACCOUNTID</li> - <li>PEER_NUMBER</li> - <li>PEER_NAME</li> - <li>DISPLAY_NAME</li> - <li>CALL_STATE</li> - <li>CALL_TYPE</li> - </ul> - </tp:docstring> - </arg> - </method> - - <method name="getCallList" tp:name-for-bindings="getCallList"> - <tp:docstring> - Get the list of active calls. - <tp:rationale>To get the call details, iterate on the return value and call <tp:member-ref>getCallDetails</tp:member-ref> method.</tp:rationale> - </tp:docstring> - <arg type="as" name="list" direction="out"> - <tp:docstring> - A list of call IDs. - </tp:docstring> - </arg> - </method> - - <method name="getCurrentCallID" tp:name-for-bindings="getCurrentCallID"> - <tp:docstring> - Unused - </tp:docstring> - <arg type="s" name="callID" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="getCurrentAudioCodecName" tp:name-for-bindings="getCurrentAudioCodecName"> - <tp:docstring> - Unused - </tp:docstring> - <arg type="s" name="callID" direction="in"/> - <arg type="s" name="codecName" direction="out"/> - </method> - - <method name="sendTextMessage" tp:name-for-bindings="sendTextMessage"> - <tp:docstring> - Send a text message to the specified call - </tp:docstring> - <arg type="s" name="callID" direction="in"/> - <arg type="s" name="message" direction="in"/> - </method> - - <signal name="newCallCreated" tp:name-for-bindings="newCallCreated"> - <tp:docstring> - <p>Notify that a cell have been created.</p> - <p>The callID generated by the daemon must be stored by the clients in order to address other action for - this call. This signal is emitted when call have been created by the daemon itself.</p> - <tp:rationale> The client must subscribe to this signal to handle calls created by other clients </tp:rationale> - </tp:docstring> - <arg type="s" name="accountID"> - <tp:docstring> - The account ID of the calle. Clients must notify teh right account when receiving this signal. - </tp:docstring> - </arg> - <arg type="s" name="callID"> - <tp:docstring> - A new call ID. - </tp:docstring> - </arg> - <arg type="s" name="to"> - <tp:docstring> - The sip uri this call is trying to reach - </tp:docstring> - </arg> - </signal> - - <signal name="incomingCall" tp:name-for-bindings="incomingCall"> - <tp:docstring> - <p>Notify an incoming call.</p> - <p>The callID generated by the daemon must be stored by the clients in order to address other action for - this call. This signal is emitted when we receive a call from a remote peer</p> - <tp:rationale>The client must subscribe to this signal to handle incoming calls.</tp:rationale> - </tp:docstring> - <arg type="s" name="accountID"> - <tp:docstring> - The account ID of the callee. Clients must notify the right account when receiving this signal. - </tp:docstring> - </arg> - <arg type="s" name="callID"> - <tp:docstring> - A new call ID. - </tp:docstring> - </arg> - <arg type="s" name="from"> - <tp:docstring> - The caller phone number. - </tp:docstring> - </arg> - </signal> - - <signal name="incomingMessage" tp:name-for-bindings="incomingMessage"> - <tp:docstring> - Notify clients that a new text message has been received. - </tp:docstring> - <arg type="s" name="callID" /> - <arg type="s" name="from" /> - <arg type="s" name="message" /> - </signal> - - <signal name="callStateChanged" tp:name-for-bindings="callStateChanged"> - <tp:docstring> - <p>Notify of a change in a call state.</p> - <p>The client must subscribe to this signal.</p> - </tp:docstring> - <arg type="s" name="callID"> - <tp:docstring> - The call ID. - </tp:docstring> - </arg> - <arg type="s" name="state" > - <tp:docstring> - The acceptable states are: - <ul> - <li>INCOMING: Initial state of incoming calls</li> - <li>RINGING: Initial state of received outgoing call</li> - <li>CURRENT: The normal active state of an answered call</li> - <li>HUNGUP: Notify that the call has been hungup by peer</li> - <li>BUSY</li> - <li>FAILURE: Error when processing a call</li> - <li>HOLD</li> - <li>UNHOLD_CURRENT</li> - <li>UNHOLD_RECORD</li> - </ul> - </tp:docstring> - </arg> - </signal> - - <signal name="conferenceChanged" tp:name-for-bindings="conferenceChanged"> - <tp:added version="0.9.7"/> - <tp:docstring> - Notify of a change in the conferences state - </tp:docstring> - <arg type="s" name="confID"> - <tp:docstring> - The conference ID. - </tp:docstring> - </arg> - <arg type="s" name="state"> - <tp:docstring> - The acceptable states are: - <ul> - <li>ACTIVE_ATTACHED: SFLphone user is - participating to this conference</li> - <li>ACTIVE_DETACHED: This situation can - occur if a call is received while - SFLphone user is participating to a - conference. In this case, one can leave - the conference by answering the - call. Other participants may continue - conferencing normally.</li> - <li>HOLD: Each call in this conference - is on state HOLD</li> - </ul> - </tp:docstring> - </arg> - </signal> - - <method name="getParticipantList" tp:name-for-bindings="getParticipantList"> - <tp:added version="0.9.7"/> - <tp:docstring> - Get the call IDs of every participant to a given conference. The client should keep and update the list of participant. - </tp:docstring> - <arg type="s" name="confID" direction="in"> - <tp:docstring> - The conference ID. - </tp:docstring> - </arg> - <arg type="as" name="list" direction="out"> - <tp:docstring> - The list of the call IDs. - </tp:docstring> - </arg> - </method> - - <signal name="conferenceCreated" tp:name-for-bindings="conferenceCreated"> - <tp:added version="0.9.7"/> - <tp:docstring> - Emited when a new conference is created. SFLphone-client is reponsible to store the confID and call <tp:member-ref>getParticipantList</tp:member-ref> to update the display. - </tp:docstring> - <arg type="s" name="confID"> - <tp:docstring> - A new conference ID. - </tp:docstring> - </arg> - </signal> - - <signal name="conferenceRemoved" tp:name-for-bindings="conferenceRemoved"> - <tp:added version="0.9.7"/> - <tp:docstring> - Emited when a new conference is remove. SFLphone-client should have kept a list of current participant in order to display modification. - </tp:docstring> - <arg type="s" name="confID"> - <tp:docstring> - The conference ID. - </tp:docstring> - </arg> - </signal> - - <method name="holdConference" tp:name-for-bindings="holdConference"> - <tp:added version="0.9.7"/> - <tp:docstring> - Hold on every calls participating to this conference. - </tp:docstring> - <arg type="s" name="confID" direction="in"> - <tp:docstring> - The conference ID. - </tp:docstring> - </arg> - </method> - - <method name="unholdConference" tp:name-for-bindings="unholdConference"> - <tp:added version="0.9.7"/> - <tp:docstring> - Hold off every calls participating to this conference. - </tp:docstring> - <arg type="s" name="confID" direction="in"> - <tp:docstring> - The conference ID. - </tp:docstring> - </arg> - </method> - - <method name="startRecordedFilePlayback" tp:name-for-bindings="startRecordedFilePlayback"> - <tp:added version="0.9.14"/> - <tp:docstring> - </tp:docstring> - <arg type="s" name="filepath" direction="in"/> - <arg type="b" name="result" direction="out"/> - </method> - - <method name="stopRecordedFilePlayback" tp:name-for-bindings="stopRecordedFilePlayback"> - <tp:added version="0.9.14"/> - <tp:docstring/> - <arg type="s" name="filepath" direction="in"/> - </method> - - <signal name="sipCallStateChanged" tp:name-for-bindings="sipCallStateChanged"> - <tp:docstring> - <p>Call state changed, SFLphone received a notification - from registrar concerning this call.</p> - </tp:docstring> - <arg type="s" name="callID" /> - <tp:docstring> - The call ID - </tp:docstring> - <arg type="s" name="state" /> - <tp:docstring> - Description string - </tp:docstring> - <arg type="i" name="code" /> - <tp:docstring> - The SIP or IAX2 message code - </tp:docstring> - </signal> - - <signal name="registrationStateChanged" tp:name-for-bindings="registrationStateChanged"> - <tp:docstring> - <p>Account state changed, SFLphone received a notification - from registrar.</p> - </tp:docstring> - <arg type="s" name="accountID" > - <tp:docstring> - The account ID - </tp:docstring> - </arg> - <arg type="s" name="state"> - <tp:docstring> - Description string - </tp:docstring> - </arg> - <arg type="i" name="code"> - <tp:docstring> - The SIP or IAX2 message code - </tp:docstring> - </arg> - </signal> - - <signal name="voiceMailNotify" tp:name-for-bindings="voiceMailNotify"> - <tp:docstring> - Notify the clients of the voicemail number for a specific account, if applicable. - </tp:docstring> - <arg type="s" name="accountID"> - <tp:docstring> - The account ID. - </tp:docstring> - </arg> - <arg type="i" name="count"> - <tp:docstring> - The number of waiting messages. - </tp:docstring> - </arg> - </signal> - - <signal name="volumeChanged" tp:name-for-bindings="volumeChanged"> - <tp:docstring> - <p>Notify clients of a volume level - change.</p> - <p>This signal occurs only if ALSA is - enabled since Pulseaudio streams are - managed externally. </p> - </tp:docstring> - <arg type="s" name="device"> - <tp:docstring> - The device: mic or speaker - </tp:docstring> - </arg> - <arg type="d" name="value"> - <tp:docstring> - The new volume value - </tp:docstring> - </arg> - </signal> - - <signal name="transferSucceded" tp:name-for-bindings="transferSucceded"> - <tp:docstring> - <p>Transfer has been successfully - processed. Client should remove transfered - call from call list as it is no longer - accessible in SFLphone-daemon.</p> - </tp:docstring> - </signal> - - <signal name="transferFailed" tp:name-for-bindings="transferFailed"> - <tp:docstring> - <p>Transfer operation failed. Corespondin - call is no longer accessible in - SFLphone-daemon.</p> - </tp:docstring> - </signal> - - <signal name="secureSdesOn" tp:name-for-bindings="secureSdesOn"> - <tp:added version="0.9.7"/> - <tp:docstring> - <p>Signal sent on SDES session success. Media transmission is encripted - for this call only. It does not apply for a - conference.</p> - <p>A conference can be considered to be secured if and only if each - participant is secured.</p> - </tp:docstring> - <arg type="s" name="callID"/> - </signal> - - <signal name="secureSdesOff" tp:name-for-bindings="secureSdesOff"> - <tp:added version="0.9.7"/> - <tp:docstring> - <p>Sinal sent to notify that SDES session - failed.</p> - <p>Media transmission is not encrypted.</p> - </tp:docstring> - <arg type="s" name="callID" /> - </signal> - - <!-- ZRTP Methods and Signals --> - <signal name="secureZrtpOn" tp:name-for-bindings="secureZrtpOn"> - <tp:added version="0.9.7"/> - <tp:docstring> - </tp:docstring> - <arg type="s" name="callID" /> - <arg type="s" name="cipher" /> - </signal> - - <signal name="secureZrtpOff" tp:name-for-bindings="secureZrtpOff"> - <tp:added version="0.9.7"/> - <tp:docstring> - </tp:docstring> - <arg type="s" name="callID" /> - </signal> - - <signal name="confirmGoClear" tp:name-for-bindings="confirmGoClear"> - <tp:added version="0.9.7"/> - <tp:docstring> - </tp:docstring> - <arg type="s" name="callID" /> - </signal> - - <signal name="zrtpNegotiationFailed" tp:name-for-bindings="zrtpNegotiationFailed"> - <tp:added version="0.9.7"/> - <tp:docstring> - </tp:docstring> - <arg type="s" name="callID" /> - <arg type="s" name="reason" /> - <arg type="s" name="severity" /> - </signal> - - <signal name="zrtpNotSuppOther" tp:name-for-bindings="zrtpNotSuppOther"> - <tp:added version="0.9.7"/> - <tp:docstring> - </tp:docstring> - <arg type="s" name="callID" /> - </signal> - - <signal name="showSAS" tp:name-for-bindings="showSAS"> - <tp:added version="0.9.7"/> - <tp:added version="0.9.7"/> - <tp:docstring> - </tp:docstring> - <arg type="s" name="callID" /> - <arg type="s" name="sas" /> - <arg type="b" name="verified"/> - </signal> - - <method name="setSASVerified" tp:name-for-bindings="setSASVerified"> - <tp:added version="0.9.7"/> - <tp:docstring> - </tp:docstring> - <arg type="s" name="callID" direction="in"/> - </method> - - <method name="resetSASVerified" tp:name-for-bindings="resetSASVerified"> - <tp:added version="0.9.7"/> - <tp:docstring> - </tp:docstring> - <arg type="s" name="callID" direction="in"/> - </method> - - <method name="setConfirmGoClear" tp:name-for-bindings="setConfirmGoClear"> - <tp:added version="0.9.7"/> - <tp:docstring> - </tp:docstring> - <arg type="s" name="callID" direction="in"/> - </method> - - <method name="requestGoClear" tp:name-for-bindings="requestGoClear"> - <tp:added version="0.9.7"/> - <tp:docstring> - </tp:docstring> - <arg type="s" name="callID" direction="in"/> - </method> - - <method name="acceptEnrollment" tp:name-for-bindings="acceptEnrollment"> - <tp:added version="0.9.7"/> - <tp:docstring> - </tp:docstring> - <arg type="s" name="callID" direction="in"/> - <arg type="b" name="accepted" direction="in"/> - </method> - - <method name="setPBXEnrollment" tp:name-for-bindings="setPBXEnrollment"> - <tp:added version="0.9.7"/> - <tp:docstring> - </tp:docstring> - <arg type="s" name="callID" direction="in"/> - <arg type="b" name="yesNo" direction="in"/> - </method> - - </interface> + <interface name="org.sflphone.SFLphone.CallManager"> + + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>The CallManager interface is used to manage call and conference related actions.</p> + <p>Since SFLphone-daemon supports multiple incoming/outgoing calls, any actions involving a specific call must address the method by the means of a unique callID. + SFLphone-clients is responsible for generating the callID on outgoing calls. Conversely, SFLphone-daemon will generate a unique callID for incoming calls.</p> + </tp:docstring> + <method name="placeCall" tp:name-for-bindings="placeCall"> + <tp:docstring> + <p>This is the main method in order to place a new call. The call is registered with the daemon using this method.</p> + </tp:docstring> + <arg type="s" name="accountID" direction="in"> + <tp:docstring> + The ID of the account with which you want to make a call. If the call is to be placed without any account by means of a SIP URI (i.e. sip:num@server), the "IP2IP_PROFILE" is passed as the accountID. For more details on accounts see the configuration manager interface. + </tp:docstring> + </arg> + <arg type="s" name="callID" direction="in"> + <tp:docstring> + The callID is a unique identifier that must be randomly generated on the client's side. Any subsequent actions refering to this call must use this callID. + </tp:docstring> + </arg> + <arg type="s" name="to" direction="in"> + <tp:docstring> + If bound to a VoIP account, then the argument is the phone number. In case of calls involving "IP2IP_PROFILE", a complete SIP URI must be specified. + </tp:docstring> + </arg> + </method> + + <method name="placeCallFirstAccount" tp:name-for-bindings="placeCallFirstAccount"> + <tp:added version="0.9.8"/> + <tp:docstring> + Place a call with the first registered account in the account list. + <tp:rationale> + Use this function when you don't have any information about the accounts used (Ex: Firefly mozilla extension) + </tp:rationale> + </tp:docstring> + <arg type="s" name="callID" direction="in"> + <tp:docstring> + The callID is a unique identifier that must be randomly generated on the client's side. Any subsequent actions refering to this call must use this callID. + </tp:docstring> + </arg> + <arg type="s" name="to" direction="in"> + <tp:docstring> + If bound to a VoIP account, then the argument is the phone number. In case of calls involving "IP2IP_PROFILE", a complete SIP URI must be specified. + </tp:docstring> + </arg> + </method> + + <method name="refuse" tp:name-for-bindings="refuse"> + <tp:docstring> + Refuse an incoming call. + </tp:docstring> + <arg type="s" name="callID" direction="in"> + <tp:docstring> + The callID. + </tp:docstring> + </arg> + + </method> + + <method name="accept" tp:name-for-bindings="accept"> + <tp:docstring> + Answer an incoming call. Automatically puts the current call on HOLD. + </tp:docstring> + <arg type="s" name="callID" direction="in"> + <tp:docstring> + The callID. + </tp:docstring> + </arg> + </method> + + <method name="hangUp" tp:name-for-bindings="hangUp"> + <tp:docstring> + Hangup a call in state "CURRENT" or "HOLD". + </tp:docstring> + <arg type="s" name="callID" direction="in"> + <tp:docstring> + The callID. + </tp:docstring> + </arg> + </method> + + <method name="hangUpConference" tp:name-for-bindings="hangUpConference"> + <tp:added version="0.9.7"/> + <tp:docstring> + Hangup a conference, and every call participating to the conference. + </tp:docstring> + <arg type="s" name="confID" direction="in"> + <tp:docstring> + The unique conference ID. + </tp:docstring> + </arg> + </method> + + <method name="hold" tp:name-for-bindings="hold"> + <tp:docstring> + Place a call on hold. + </tp:docstring> + <arg type="s" name="callID" direction="in"> + <tp:docstring> + The callID. + </tp:docstring> + </arg> + </method> + + <method name="unhold" tp:name-for-bindings="unhold"> + <tp:docstring> + Take a call off hold, and place this call in state CURRENT. + </tp:docstring> + <arg type="s" name="callID" direction="in"> + <tp:docstring> + The callID. + </tp:docstring> + </arg> + </method> + + <method name="transfer" tp:name-for-bindings="transfer"> + <tp:docstring> + Transfer a call to the given phone number. + </tp:docstring> + <arg type="s" name="callID" direction="in"> + <tp:docstring> + The callID. + </tp:docstring> + </arg> + <arg type="s" name="to" direction="in"> + <tp:docstring> + The phone number to which the call will be transferred. + </tp:docstring> + </arg> + </method> + + <method name="attendedTransfer" tp:name-for-bindings="attendedTransfer"> + <tp:docstring> + Perform an attended transfer on two calls. + </tp:docstring> + <arg type="s" name="transferID" direction="in"> + <tp:docstring> + The callID of the call to be transfered. + </tp:docstring> + </arg> + <arg type="s" name="targetID" direction="in"> + <tp:docstring> + The callID of the target call. + </tp:docstring> + </arg> + </method> + + <method name="playDTMF" tp:name-for-bindings="playDTMF"> + <tp:docstring> + Dual-Tone multi-frequency. Tell the core to play dialtones. A SIP INFO message is sent to notify the server. + </tp:docstring> + <arg type="s" name="key" direction="in"> + <tp:docstring> + Unicode character for pressed key. + </tp:docstring> + </arg> + </method> + + <method name="startTone" tp:name-for-bindings="startTone"> + <tp:docstring> + Start audio stream and play tone. + </tp:docstring> + <arg type="i" name="start" direction="in"/> + <arg type="i" name="type" direction="in"/> + </method> + + <method name="setVolume" tp:name-for-bindings="setVolume"> + <tp:docstring> + <p>Sets the volume using a linear scale [0,100].</p> + <tp:rationale>Pulseaudio has its own mechanism to modify application volume. This method is enabled only if the ALSA API is used.</tp:rationale> + </tp:docstring> + <arg type="s" name="device" direction="in"> + <tp:docstring> + The device: mic or speaker + </tp:docstring> + </arg> + <arg type="d" name="value" direction="in"> + <tp:docstring> + The volume value (between 0 and 100) + </tp:docstring> + </arg> + </method> + + <method name="getVolume" tp:name-for-bindings="getVolume"> + <tp:docstring> + <p>Return the volume value of the given device on a linear scale [0,100].</p> + <tp:rationale>Only enabled if the ALSA API is used, Pulseaudio has its own mechanism to modify application volume.</tp:rationale> + </tp:docstring> + <arg type="s" name="device" direction="in"> + <tp:docstring> + The device: mic or speaker + </tp:docstring> + </arg> + <arg type="d" name="value" direction="out"> + <tp:docstring> + The volume value (between 0 and 100) + </tp:docstring> + </arg> + </method> + + <method name="joinParticipant" tp:name-for-bindings="joinParticipant"> + <tp:added version="0.9.7"/> + <tp:docstring> + <p>Join two participants together to create a 3-way conference including the current client.</p> + <tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale> + </tp:docstring> + <arg type="s" name="sel_callID" direction="in"/> + <arg type="s" name="drag_callID" direction="in"/> + </method> + + <method name="createConfFromParticipantList" tp:name-for-bindings="createConfFromParticipantList"> + <tp:added version="0.9.14"/> + <tp:docstring> + <p>Create a conference from a list of participants</p> + <tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale> + </tp:docstring> + <arg type="as" name="participants" direction="in"/> + </method> + + <method name="addParticipant" tp:name-for-bindings="addParticipant"> + <tp:added version="0.9.7"/> + <tp:docstring> + <p>Join a new particiant to an existing conference.</p> + <tp:rationale>The signal <tp:member-ref>conferenceChanged</tp:member-ref> is emitted on success.</tp:rationale> + </tp:docstring> + <arg type="s" name="callID" direction="in"> + <tp:docstring> + The ID of the call to add to the conference + </tp:docstring> + </arg> + <arg type="s" name="confID" direction="in"> + <tp:docstring> + An existing conference ID + </tp:docstring> + </arg> + </method> + + <method name="addMainParticipant" tp:name-for-bindings="addMainParticipant"> + <tp:added version="0.9.7"/> + <tp:docstring> + <p>As the core can handle multiple calls and conferences, it may happen that the client's user leaves a conference to answer an incoming call or to start new calls. This method is used to reintroduce SFLphone-client's user into the conference.</p> + <p>Its put the current call on HOLD or detaches SFLphone-client's user from the another conference.</p> + </tp:docstring> + <arg type="s" name="confID" direction="in"> + <tp:docstring> + An existing conference ID + </tp:docstring> + </arg> + </method> + + <method name="detachParticipant" tp:name-for-bindings="detachParticipant"> + <tp:added version="0.9.7"/> + <tp:docstring> + Detach the given call from the conference. If only one participant is left, the conference is deleted and the signal <tp:member-ref>conferenceRemoved</tp:member-ref> is emited. + </tp:docstring> + <arg type="s" name="callID" direction="in"> + <tp:docstring> + The call ID + </tp:docstring> + </arg> + </method> + + <method name="joinConference" tp:name-for-bindings="joinConference"> + <tp:added version="0.9.7"/> + <tp:docstring> + Join two conferences together. + </tp:docstring> + <arg type="s" name="sel_confID" direction="in"/> + <arg type="s" name="drag_confID" direction="in"/> + </method> + + <method name="getConferenceDetails" tp:name-for-bindings="getConferenceDetails"> + <tp:added version="0.9.7"/> + <tp:docstring> + Returns a hashtable containing conference details. + </tp:docstring> + <arg type="s" name="callID" direction="in"> + <tp:docstring> + The conference ID + </tp:docstring> + </arg> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/> + <arg type="a{ss}" name="infos" direction="out"> + <tp:docstring> + A map containing the ID of the conferences + and their states: + <ul> + <li>ACTIVE_ATTACHED</li> + <li>ACTIVE_DETACHED</li> + <li>HOLD</li> + </ul> + </tp:docstring> + </arg> + </method> + + <method name="getConferenceList" tp:name-for-bindings="getConferenceList"> + <tp:added version="0.9.7"/> + <tp:docstring> + Returns a list containing all active + conferences. + <tp:rationale>To update client status, one should + use <tp:member-ref>getParticipantList</tp:member-ref> + with provided conference IDs.</tp:rationale> + </tp:docstring> + <arg type="as" name="list" direction="out"> + <tp:docstring> + The list of conferences. + </tp:docstring> + </arg> + </method> + + <method name="setRecording" tp:name-for-bindings="setRecording"> + <tp:docstring> + Start recording a call. + </tp:docstring> + <arg type="s" name="callID" direction="in"> + <tp:docstring> + The ID of the call to record. + </tp:docstring> + </arg> + </method> + + <method name="getIsRecording" tp:name-for-bindings="getIsRecording"> + <tp:docstring> + Tells whether or not a call is being recorded. + </tp:docstring> + <arg type="s" name="callID" direction="in"> + <tp:docstring> + The call ID. + </tp:docstring> + </arg> + <arg type="b" name="isRecording" direction="out"> + <tp:docstring> + Returns true is the call is being recorded. False otherwise. + </tp:docstring> + </arg> + </method> + + <signal name="recordPlaybackFilepath" tp:name-for-bindings="recordPlaybackFilepath"> + <tp:docstring> + Once after starting recording for the first time, this signal is emited to + provide the recorded file path to client application. + </tp:docstring> + <arg type="s" name="callID" /> + <arg type="s" name="filepath"/> + </signal> + + <signal name="recordPlaybackStopped" tp:name-for-bindings="recordPlaybackStopped"> + <tp:docstring/> + <arg type="s" name="filepath" /> + </signal> + + + <method name="getCallDetails" tp:name-for-bindings="getCallDetails"> + <tp:docstring> + Get all the details about a specific call. + </tp:docstring> + <arg type="s" name="callID" direction="in"> + <tp:docstring> + The call ID. + </tp:docstring> + </arg> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/> + <arg type="a{ss}" name="infos" direction="out" tp:type="String_String_Map"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>A map containing the call details: </p> + <ul> + <li>ACCOUNTID</li> + <li>PEER_NUMBER</li> + <li>PEER_NAME</li> + <li>DISPLAY_NAME</li> + <li>CALL_STATE</li> + <li>CALL_TYPE</li> + </ul> + </tp:docstring> + </arg> + </method> + + <method name="getCallList" tp:name-for-bindings="getCallList"> + <tp:docstring> + Get the list of active calls. + <tp:rationale>To get the call details, iterate on the return value and call <tp:member-ref>getCallDetails</tp:member-ref> method.</tp:rationale> + </tp:docstring> + <arg type="as" name="list" direction="out"> + <tp:docstring> + A list of call IDs. + </tp:docstring> + </arg> + </method> + + <method name="getCurrentAudioCodecName" tp:name-for-bindings="getCurrentAudioCodecName"> + <arg type="s" name="callID" direction="in"/> + <arg type="s" name="codecName" direction="out"/> + </method> + + <method name="sendTextMessage" tp:name-for-bindings="sendTextMessage"> + <tp:docstring> + Send a text message to the specified call + </tp:docstring> + <arg type="s" name="callID" direction="in"/> + <arg type="s" name="message" direction="in"/> + </method> + + <signal name="newCallCreated" tp:name-for-bindings="newCallCreated"> + <tp:docstring> + <p>Notify that a call has been created.</p> + <p>The callID generated by the daemon must be stored by the clients in order to address other actions for + this call. This signal is emitted when call haves been created by the daemon itself.</p> + <tp:rationale>The client must subscribe to this signal to handle calls created by other clients</tp:rationale> + </tp:docstring> + <arg type="s" name="accountID"> + <tp:docstring> + The account ID of the call. Clients must notify the right account when receiving this signal. + </tp:docstring> + </arg> + <arg type="s" name="callID"> + <tp:docstring> + A new call ID. + </tp:docstring> + </arg> + <arg type="s" name="to"> + <tp:docstring> + The SIP URI this call is trying to reach. + </tp:docstring> + </arg> + </signal> + + <signal name="incomingCall" tp:name-for-bindings="incomingCall"> + <tp:docstring> + <p>Notify an incoming call.</p> + <p>The callID generated by the daemon must be stored by the clients in order to address other action for + this call. This signal is emitted when we receive a call from a remote peer</p> + <tp:rationale>The client must subscribe to this signal to handle incoming calls.</tp:rationale> + </tp:docstring> + <arg type="s" name="accountID"> + <tp:docstring> + The account ID of the callee. Clients must notify the right account when receiving this signal. + </tp:docstring> + </arg> + <arg type="s" name="callID"> + <tp:docstring> + A new call ID. + </tp:docstring> + </arg> + <arg type="s" name="from"> + <tp:docstring> + The caller phone number. + </tp:docstring> + </arg> + </signal> + + <signal name="incomingMessage" tp:name-for-bindings="incomingMessage"> + <tp:docstring> + Notify clients that a new text message has been received. + </tp:docstring> + <arg type="s" name="callID" /> + <arg type="s" name="from" /> + <arg type="s" name="message" /> + </signal> + + <signal name="callStateChanged" tp:name-for-bindings="callStateChanged"> + <tp:docstring> + <p>Notify of a change in a call state.</p> + <p>The client must subscribe to this signal.</p> + </tp:docstring> + <arg type="s" name="callID"> + <tp:docstring> + The call ID. + </tp:docstring> + </arg> + <arg type="s" name="state" > + <tp:docstring> + The acceptable states are: + <ul> + <li>INCOMING: Initial state of incoming calls</li> + <li>RINGING: Initial state of received outgoing call</li> + <li>CURRENT: The normal active state of an answered call</li> + <li>HUNGUP: Notify that the call has been hungup by peer</li> + <li>BUSY</li> + <li>FAILURE: Error when processing a call</li> + <li>HOLD</li> + <li>UNHOLD_CURRENT</li> + <li>UNHOLD_RECORD</li> + </ul> + </tp:docstring> + </arg> + </signal> + + <signal name="conferenceChanged" tp:name-for-bindings="conferenceChanged"> + <tp:added version="0.9.7"/> + <tp:docstring> + Notify of a change in the conferences state + </tp:docstring> + <arg type="s" name="confID"> + <tp:docstring> + The conference ID. + </tp:docstring> + </arg> + <arg type="s" name="state"> + <tp:docstring> + The acceptable states are: + <ul> + <li>ACTIVE_ATTACHED: SFLphone user is + participating to this conference</li> + <li>ACTIVE_DETACHED: This situation can + occur if a call is received while + SFLphone user is participating to a + conference. In this case, one can leave + the conference by answering the + call. Other participants may continue + conferencing normally.</li> + <li>HOLD: Each call in this conference + is on state HOLD</li> + </ul> + </tp:docstring> + </arg> + </signal> + + <method name="getParticipantList" tp:name-for-bindings="getParticipantList"> + <tp:added version="0.9.7"/> + <tp:docstring> + Get the call IDs of every participant to a given conference. The client should keep and update the list of participants. + </tp:docstring> + <arg type="s" name="confID" direction="in"> + <tp:docstring> + The conference ID. + </tp:docstring> + </arg> + <arg type="as" name="list" direction="out"> + <tp:docstring> + The list of the call IDs. + </tp:docstring> + </arg> + </method> + + <signal name="conferenceCreated" tp:name-for-bindings="conferenceCreated"> + <tp:added version="0.9.7"/> + <tp:docstring> + Emited when a new conference is created. SFLphone-client is reponsible for storing the confID and call <tp:member-ref>getParticipantList</tp:member-ref> to update the display. + </tp:docstring> + <arg type="s" name="confID"> + <tp:docstring> + A new conference ID. + </tp:docstring> + </arg> + </signal> + + <signal name="conferenceRemoved" tp:name-for-bindings="conferenceRemoved"> + <tp:added version="0.9.7"/> + <tp:docstring> + Emited when a new conference is remove. SFLphone-client should have kept a list of current participant in order to display modification. + </tp:docstring> + <arg type="s" name="confID"> + <tp:docstring> + The conference ID. + </tp:docstring> + </arg> + </signal> + + <method name="holdConference" tp:name-for-bindings="holdConference"> + <tp:added version="0.9.7"/> + <tp:docstring> + Hold every call which is participating in this conference. + </tp:docstring> + <arg type="s" name="confID" direction="in"> + <tp:docstring> + The conference ID. + </tp:docstring> + </arg> + </method> + + <method name="unholdConference" tp:name-for-bindings="unholdConference"> + <tp:added version="0.9.7"/> + <tp:docstring> + Hold off every call participating in this conference. + </tp:docstring> + <arg type="s" name="confID" direction="in"> + <tp:docstring> + The conference ID. + </tp:docstring> + </arg> + </method> + + <method name="startRecordedFilePlayback" tp:name-for-bindings="startRecordedFilePlayback"> + <tp:added version="0.9.14"/> + <arg type="s" name="filepath" direction="in"/> + <arg type="b" name="result" direction="out"/> + </method> + + <method name="stopRecordedFilePlayback" tp:name-for-bindings="stopRecordedFilePlayback"> + <tp:added version="0.9.14"/> + <tp:docstring/> + <arg type="s" name="filepath" direction="in"/> + </method> + + <signal name="sipCallStateChanged" tp:name-for-bindings="sipCallStateChanged"> + <tp:docstring> + <p>Call state changed, SFLphone received a notification + from registrar concerning this call.</p> + </tp:docstring> + <arg type="s" name="callID" /> + <tp:docstring> + The call ID + </tp:docstring> + <arg type="s" name="state" /> + <tp:docstring> + Description string + </tp:docstring> + <arg type="i" name="code" /> + <tp:docstring> + The SIP or IAX2 message code + </tp:docstring> + </signal> + + <signal name="registrationStateChanged" tp:name-for-bindings="registrationStateChanged"> + <tp:docstring> + <p>Account state changed, SFLphone received a notification + from registrar.</p> + </tp:docstring> + <arg type="s" name="accountID" > + <tp:docstring> + The account ID + </tp:docstring> + </arg> + <arg type="s" name="state"> + <tp:docstring> + Description string + </tp:docstring> + </arg> + <arg type="i" name="code"> + <tp:docstring> + The SIP or IAX2 message code + </tp:docstring> + </arg> + </signal> + + <signal name="voiceMailNotify" tp:name-for-bindings="voiceMailNotify"> + <tp:docstring> + Notify the clients of the voicemail number for a specific account, if applicable. + </tp:docstring> + <arg type="s" name="accountID"> + <tp:docstring> + The account ID. + </tp:docstring> + </arg> + <arg type="i" name="count"> + <tp:docstring> + The number of waiting messages. + </tp:docstring> + </arg> + </signal> + + <signal name="volumeChanged" tp:name-for-bindings="volumeChanged"> + <tp:docstring> + <p>Notify clients of a volume level change.</p> + <p>This signal occurs only if ALSA is enabled since Pulseaudio streams are managed externally. </p> + </tp:docstring> + <arg type="s" name="device"> + <tp:docstring> + The device: mic or speaker + </tp:docstring> + </arg> + <arg type="d" name="value"> + <tp:docstring> + The new volume value + </tp:docstring> + </arg> + </signal> + + <signal name="transferSucceeded" tp:name-for-bindings="transferSucceeded"> + <tp:docstring> + <p>Transfer has been successfully + processed. Client should remove transfered + call from call list as it is no longer + accessible in SFLphone-daemon.</p> + </tp:docstring> + </signal> + + <signal name="transferFailed" tp:name-for-bindings="transferFailed"> + <tp:docstring> + <p>Transfer operation failed. Corresponding + call is no longer accessible in + SFLphone-daemon.</p> + </tp:docstring> + </signal> + + <signal name="secureSdesOn" tp:name-for-bindings="secureSdesOn"> + <tp:added version="0.9.7"/> + <tp:docstring> + <p>Signal sent on SDES session success. Media transmission is encripted + for this call only. It does not apply for a conference.</p> + <p>A conference can be considered to be secured if and only if each + participant is secured.</p> + </tp:docstring> + <arg type="s" name="callID"/> + </signal> + + <signal name="secureSdesOff" tp:name-for-bindings="secureSdesOff"> + <tp:added version="0.9.7"/> + <tp:docstring> + <p>Sinal sent to notify that SDES session failed.</p> + <p>Media transmission is not encrypted.</p> + </tp:docstring> + <arg type="s" name="callID" /> + </signal> + + <!-- ZRTP Methods and Signals --> + <signal name="secureZrtpOn" tp:name-for-bindings="secureZrtpOn"> + <tp:added version="0.9.7"/> + <arg type="s" name="callID" /> + <arg type="s" name="cipher" /> + </signal> + + <signal name="secureZrtpOff" tp:name-for-bindings="secureZrtpOff"> + <tp:added version="0.9.7"/> + <arg type="s" name="callID" /> + </signal> + + <signal name="confirmGoClear" tp:name-for-bindings="confirmGoClear"> + <tp:added version="0.9.7"/> + <arg type="s" name="callID" /> + </signal> + + <signal name="zrtpNegotiationFailed" tp:name-for-bindings="zrtpNegotiationFailed"> + <tp:added version="0.9.7"/> + <arg type="s" name="callID" /> + <arg type="s" name="reason" /> + <arg type="s" name="severity" /> + </signal> + + <signal name="zrtpNotSuppOther" tp:name-for-bindings="zrtpNotSuppOther"> + <tp:added version="0.9.7"/> + <arg type="s" name="callID" /> + </signal> + + <signal name="showSAS" tp:name-for-bindings="showSAS"> + <tp:added version="0.9.7"/> + <tp:added version="0.9.7"/> + <arg type="s" name="callID" /> + <arg type="s" name="sas" /> + <arg type="b" name="verified"/> + </signal> + + <method name="setSASVerified" tp:name-for-bindings="setSASVerified"> + <tp:added version="0.9.7"/> + <arg type="s" name="callID" direction="in"/> + </method> + + <method name="resetSASVerified" tp:name-for-bindings="resetSASVerified"> + <tp:added version="0.9.7"/> + <arg type="s" name="callID" direction="in"/> + </method> + + <method name="setConfirmGoClear" tp:name-for-bindings="setConfirmGoClear"> + <tp:added version="0.9.7"/> + <arg type="s" name="callID" direction="in"/> + </method> + + <method name="requestGoClear" tp:name-for-bindings="requestGoClear"> + <tp:added version="0.9.7"/> + <arg type="s" name="callID" direction="in"/> + </method> + + <method name="acceptEnrollment" tp:name-for-bindings="acceptEnrollment"> + <tp:added version="0.9.7"/> + <arg type="s" name="callID" direction="in"/> + <arg type="b" name="accepted" direction="in"/> + </method> + + <method name="setPBXEnrollment" tp:name-for-bindings="setPBXEnrollment"> + <tp:added version="0.9.7"/> + <arg type="s" name="callID" direction="in"/> + <arg type="b" name="yesNo" direction="in"/> + </method> + + </interface> </node> diff --git a/src/dbus/configurationmanager-introspec.xml b/src/dbus/configurationmanager-introspec.xml index 13f666940b39300c39b405ac4abe3ff7ce1e0aa0..926ff774de75a99636920b3dc711ab6914695cb9 100644 --- a/src/dbus/configurationmanager-introspec.xml +++ b/src/dbus/configurationmanager-introspec.xml @@ -1,107 +1,97 @@ <?xml version="1.0" ?> <node name="/configurationmanager-introspec" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0"> - <interface name="org.sflphone.SFLphone.ConfigurationManager"> - - <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> - Used to handle the configuration stuff: accounts settings, account registration, user preferences, ... - </tp:docstring> - - <method name="getAccountDetails" tp:name-for-bindings="getAccountDetails"> - <tp:docstring> - Get all parameters of the specified account. - </tp:docstring> - <arg type="s" name="accountID" direction="in"> - <tp:docstring> - The account ID - </tp:docstring> - </arg> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/> - <arg type="a{ss}" name="details" direction="out" tp:type="String_String_Map"> - <tp:docstring> - The available keys / parameters are: - <ul> - <li>CONFIG_ACCOUNT_ENABLE: True or False (Default: True)</li> - <li>CONFIG_ACCOUNT_RESOLVE_ONCE</li> - <li>CONFIG_ACCOUNT_TYPE: SIP or IAX2 (Default: SIP)</li> - <li>HOSTNAME: The IP adress or hostname of the registrar</li> - <li>USERNAME: The username (or extension) of the account</li> - <li>PASSWORD: The password associated to the account</li> - <li>REALM</li> - <li>CONFIG_ACCOUNT_MAILBOX: Number to dial to access the voicemail box</li> - <li>CONFIG_ACCOUNT_REGISTRATION_EXPIRE: SIP header expiration value (Default: 1600)</li> - <li>LOCAL_INTERFACE: The network interface (Default: eth0)</li> - <li>PUBLISHED_SAMEAS_LOCAL: If False, the published address equals the local address. This is the default.</li> - <li>PUBLISHED_ADDRESS: The SIP published address</li> - <li>LOCAL_PORT: The SIP listening port (Default: 5060)</li> - <li>PUBLISHED_PORT: The SIP published port</li> - <li>DISPLAY_NAMEL: The display name</li> - <li>STUN_ENABLE: True or False (Default: False)</li> - <li>STUN_SERVER: The STUN server address</li> - <li>REGISTRATION_STATUS: The account registration status. Should be Registered to make calls.</li> - <li>REGISTRATION_STATE_CODE</li> - <li>REGISTRATION_STATE_DESCRIPTION</li> - <li>SRTP_KEY_EXCHANGE</li> - <li>SRTP_ENABLE: Whether or not voice communication are encrypted - True or False (Default: False)</li> - <li>SRTP_RTP_FALLBACK</li> - <li>ZRTP_DISPLAY_SAS</li> - <li>ZRTP_DISPLAY_SAS_ONCE</li> - <li>ZRTP_HELLO_HASH</li> - <li>ZRTP_NOT_SUPP_WARNING</li> - <li>TLS_LISTENER_PORT: TLS listening port (Default: 5061)</li> - <li>TLS_ENABLE: Whether or not signalling is encrypted - True or False (Default: False)</li> - <li>TLS_CA_LIST_FILE</li> - <li>TLS_CERTIFICATE_FILE</li> - <li>TLS_PRIVATE_KEY_FILE</li> - <li>TLS_METHOD</li> - <li>TLS_CIPHERS</li> - <li>TLS_SERVER_NAME</li> - <li>TLS_VERIFY_SERVER</li> - <li>TLS_VERIFY_CLIENT</li> - <li>TLS_REQUIRE_CLIENT_CERTIFICATE</li> - <li>TLS_NEGOTIATION_TIMEOUT_SEC</li> - <li>TLS_NEGOTIATION_TIMEOUT_MSEC</li> - </ul> - </tp:docstring> - </arg> - </method> - - <method name="setAccountDetails" tp:name-for-bindings="setAccountDetails"> - <tp:docstring> - Send new account parameters, or account parameters changes, to the core. The hash table is not required to be complete, only the updated parameters may be specified. - <tp:rationale>Account settings are written to the configuration file when sflphone properly quits.</tp:rationale> - <tp:rationale>After calling this method, the core will emit the signal <tp:member-ref>accountsChanged</tp:member-ref> with the updated data. The client must subscribe to this signal and use it to update its internal data structure.</tp:rationale> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.In1" value="MapStringString"/> - <arg type="s" name="accountID" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - <arg type="a{ss}" name="details" direction="in" tp:type="String_String_Map"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setCredentials" tp:name-for-bindings="setCredentials"> - <tp:docstring> - </tp:docstring> - <arg type="s" name="accountID" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - <annotation name="com.trolltech.QtDBus.QtTypeName.In1" value="VectorMapStringString"/> - <arg type="aa{ss}" name="credentialInformation" direction="in" tp:type="String_String_Map"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="getIp2IpDetails" tp:name-for-bindings="getIp2IpDetails"> + <interface name="org.sflphone.SFLphone.ConfigurationManager"> + + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + Used to handle the configuration stuff: accounts settings, account registration, user preferences, ... + </tp:docstring> + + <method name="getAccountDetails" tp:name-for-bindings="getAccountDetails"> + <tp:docstring> + Get all parameters of the specified account. + </tp:docstring> + <arg type="s" name="accountID" direction="in"> + <tp:docstring> + The account ID + </tp:docstring> + </arg> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/> + <arg type="a{ss}" name="details" direction="out" tp:type="String_String_Map"> + <tp:docstring> + The available keys / parameters are: + <ul> + <li>CONFIG_ACCOUNT_ENABLE: True or False (Default: True)</li> + <li>CONFIG_ACCOUNT_RESOLVE_ONCE</li> + <li>CONFIG_ACCOUNT_TYPE: SIP or IAX2 (Default: SIP)</li> + <li>HOSTNAME: The IP adress or hostname of the registrar</li> + <li>USERNAME: The username (or extension) of the account</li> + <li>PASSWORD: The password associated to the account</li> + <li>REALM</li> + <li>CONFIG_ACCOUNT_MAILBOX: Number to dial to access the voicemail box</li> + <li>CONFIG_ACCOUNT_REGISTRATION_EXPIRE: SIP header expiration value (Default: 1600)</li> + <li>LOCAL_INTERFACE: The network interface (Default: eth0)</li> + <li>PUBLISHED_SAMEAS_LOCAL: If False, the published address equals the local address. This is the default.</li> + <li>PUBLISHED_ADDRESS: The SIP published address</li> + <li>LOCAL_PORT: The SIP listening port (Default: 5060)</li> + <li>PUBLISHED_PORT: The SIP published port</li> + <li>DISPLAY_NAMEL: The display name</li> + <li>STUN_ENABLE: True or False (Default: False)</li> + <li>STUN_SERVER: The STUN server address</li> + <li>REGISTRATION_STATUS: The account registration status. Should be Registered to make calls.</li> + <li>REGISTRATION_STATE_CODE</li> + <li>REGISTRATION_STATE_DESCRIPTION</li> + <li>SRTP_KEY_EXCHANGE</li> + <li>SRTP_ENABLE: Whether or not voice communication are encrypted - True or False (Default: False)</li> + <li>SRTP_RTP_FALLBACK</li> + <li>ZRTP_DISPLAY_SAS</li> + <li>ZRTP_DISPLAY_SAS_ONCE</li> + <li>ZRTP_HELLO_HASH</li> + <li>ZRTP_NOT_SUPP_WARNING</li> + <li>TLS_LISTENER_PORT: TLS listening port (Default: 5061)</li> + <li>TLS_ENABLE: Whether or not signalling is encrypted - True or False (Default: False)</li> + <li>TLS_CA_LIST_FILE</li> + <li>TLS_CERTIFICATE_FILE</li> + <li>TLS_PRIVATE_KEY_FILE</li> + <li>TLS_METHOD</li> + <li>TLS_CIPHERS</li> + <li>TLS_SERVER_NAME</li> + <li>TLS_VERIFY_SERVER</li> + <li>TLS_VERIFY_CLIENT</li> + <li>TLS_REQUIRE_CLIENT_CERTIFICATE</li> + <li>TLS_NEGOTIATION_TIMEOUT_SEC</li> + <li>TLS_NEGOTIATION_TIMEOUT_MSEC</li> + </ul> + </tp:docstring> + </arg> + </method> + + <method name="setAccountDetails" tp:name-for-bindings="setAccountDetails"> + <tp:docstring> + Send new account parameters, or account parameters changes, to the core. The hash table is not required to be complete, only the updated parameters may be specified. + <tp:rationale>Account settings are written to the configuration file when sflphone properly quits.</tp:rationale> + <tp:rationale>After calling this method, the core will emit the signal <tp:member-ref>accountsChanged</tp:member-ref> with the updated data. The client must subscribe to this signal and use it to update its internal data structure.</tp:rationale> + </tp:docstring> + <annotation name="com.trolltech.QtDBus.QtTypeName.In1" value="MapStringString"/> + <arg type="s" name="accountID" direction="in"> + </arg> + <arg type="a{ss}" name="details" direction="in" tp:type="String_String_Map"> + </arg> + </method> + + <method name="setCredentials" tp:name-for-bindings="setCredentials"> + <arg type="s" name="accountID" direction="in"> + </arg> + <annotation name="com.trolltech.QtDBus.QtTypeName.In1" value="VectorMapStringString"/> + <arg type="aa{ss}" name="credentialInformation" direction="in" tp:type="String_String_Map"> + </arg> + </method> + + <method name="getIp2IpDetails" tp:name-for-bindings="getIp2IpDetails"> <tp:docstring> Get configuration settings of the IP2IP_PROFILE. They are sligthly different from account settings since no VoIP accounts are involved. </tp:docstring> <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/> - <!--<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>--> + <!--<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>--> <arg type="a{ss}" name="details" direction="out" tp:type="String_String_Map"> <tp:docstring> Available parameters are: @@ -134,597 +124,388 @@ </arg> </method> - <method name="getCredentials" tp:name-for-bindings="getCredentials"> - <tp:docstring> - </tp:docstring> - <arg type="s" name="accountID" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorMapStringString"/> - <arg type="aa{ss}" name="credentialInformation" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="addAccount" tp:name-for-bindings="addAccount"> - <tp:docstring> - Add a new account. When created, the signal <tp:member-ref>accountsChanged</tp:member-ref> is emitted. The clients must then call <tp:member-ref>getAccountList</tp:member-ref> to update their internal data structure. - <tp:rationale>If no details are specified, the default parameters are used.</tp:rationale> - <tp:rationale>The core tries to register the account as soon it is created.</tp:rationale> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/> - <arg type="a{ss}" name="details" direction="in" tp:type="String_String_Map"> - <tp:docstring> - The new account settings - </tp:docstring> - </arg> - <arg type="s" name="createdAccountId" direction="out"> - <tp:docstring> - A new account ID - </tp:docstring> - </arg> - </method> - - <method name="setAccountsOrder" tp:name-for-bindings="setAccountsOrder"> - <tp:docstring> - Update the accounts order. - <tp:rationale>When placing a call, the first registered account in the list is used.</tp:rationale> - </tp:docstring> - <arg type="s" name="order" direction="in"> - <tp:docstring> - An ordered list of account IDs, delimited by '/' - </tp:docstring> - </arg> - </method> - - <method name="removeAccount" tp:name-for-bindings="removeAccount"> - <tp:docstring> - Remove an existing account. When removed, the signal <tp:member-ref>accountsChanged</tp:member-ref> is emitted. The clients must then call <tp:member-ref>getAccountList</tp:member-ref> to update their internal data structure. - </tp:docstring> - <arg type="s" name="accoundID" direction="in"> - <tp:docstring> - The account to remove, identified by its ID - </tp:docstring> - </arg> - </method> - - <method name="getAccountList" tp:name-for-bindings="getAccountList"> - <tp:docstring> - Get a list of all created accounts, as stored by the core. - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> - <arg type="as" name="list" direction="out"> - <tp:docstring> - A list of account IDs - </tp:docstring> - </arg> - </method> - - <method name="sendRegister" tp:name-for-bindings="sendRegister"> - <tp:docstring> - Send account registration (REGISTER) to the registrar. - </tp:docstring> - the account if expire=1, unregister if expire=0. - - @param[in] input accountID - --> - <arg type="s" name="accountID" direction="in"> - <tp:docstring> - The account ID - </tp:docstring> - </arg> - <arg type="i" name="expire" direction="in"> - <tp:docstring> - <p>To register, expire must be 1.</p> - <p>To un-register, expire must be 0.</p> - </tp:docstring> - </arg> - </method> - - <method name="getAudioManager" tp:name-for-bindings="getAudioManager"> - <tp:docstring> - </tp:docstring> - <arg type="s" name="api" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setAudioManager" tp:name-for-bindings="setAudioManager"> - <tp:docstring> - </tp:docstring> - <arg type="s" name="api" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="getRecordPath" tp:name-for-bindings="getRecordPath"> - <tp:docstring> - </tp:docstring> - <arg type="s" name="rec" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setRecordPath" tp:name-for-bindings="setRecordPath"> - <tp:docstring> - </tp:docstring> - <arg type="s" name="rec" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="getIsAlwaysRecording" tp:name-for-bindings="getIsAlwaysRecording"> - <tp:docstring> - </tp:docstring> - <arg type="b" name="res" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setIsAlwaysRecording" tp:name-for-bindings="setIsAlwaysRecording"> - <tp:docstring> - </tp:docstring> - <arg type="b" name="enabled" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <!-- /////////////////////// --> - - <!-- Codecs-related methods --> - - <method name="getAudioCodecList" tp:name-for-bindings="getAudioCodecList"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorInt"/> - <arg type="ai" name="list" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="getAudioCodecDetails" tp:name-for-bindings="getAudioCodecDetails"> - <tp:docstring> - </tp:docstring> - <arg type="i" name="payload" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> - <arg type="as" name="details" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="getActiveAudioCodecList" tp:name-for-bindings="getActiveAudioCodecList"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorInt"/> - <arg type="s" name="accountID" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - <arg type="ai" name="list" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setActiveAudioCodecList" tp:name-for-bindings="setActiveAudioCodecList"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="VectorString"/> - <arg type="as" name="list" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - <arg type="s" name="accountID" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - - <!-- Audio devices methods --> - - <method name="getAudioPluginList" tp:name-for-bindings="getAudioPluginList"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> - <arg type="as" name="list" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setAudioPlugin" tp:name-for-bindings="setAudioPlugin"> - <tp:docstring> - </tp:docstring> - <arg type="s" name="audioPlugin" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="getAudioOutputDeviceList" tp:name-for-bindings="getAudioOutputDeviceList"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> - <arg type="as" name="list" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setAudioOutputDevice" tp:name-for-bindings="setAudioOutputDevice"> - <tp:docstring> - </tp:docstring> - <arg type="i" name="index" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setAudioInputDevice" tp:name-for-bindings="setAudioInputDevice"> - <tp:docstring> - </tp:docstring> - <arg type="i" name="index" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setAudioRingtoneDevice" tp:name-for-bindings="setAudioRingtoneDevice"> - <tp:docstring> - </tp:docstring> - <arg type="i" name="index" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="getAudioInputDeviceList" tp:name-for-bindings="getAudioInputDeviceList"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> - <arg type="as" name="list" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - - <method name="getCurrentAudioDevicesIndex" tp:name-for-bindings="getCurrentAudioDevicesIndex"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> - <arg type="as" name="list" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="getAudioDeviceIndex" tp:name-for-bindings="getAudioDeviceIndex"> - <tp:docstring> - </tp:docstring> - <arg type="s" name="name" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - <arg type="i" name="index" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="getCurrentAudioOutputPlugin" tp:name-for-bindings="getCurrentAudioOutputPlugin"> - <tp:docstring> - </tp:docstring> - <arg type="s" name="plugin" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> + <method name="getCredentials" tp:name-for-bindings="getCredentials"> + <arg type="s" name="accountID" direction="in"> + </arg> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorMapStringString"/> + <arg type="aa{ss}" name="credentialInformation" direction="out"> + </arg> + </method> + + <method name="addAccount" tp:name-for-bindings="addAccount"> + <tp:docstring> + Add a new account. When created, the signal <tp:member-ref>accountsChanged</tp:member-ref> is emitted. The clients must then call <tp:member-ref>getAccountList</tp:member-ref> to update their internal data structure. + <tp:rationale>If no details are specified, the default parameters are used.</tp:rationale> + <tp:rationale>The core tries to register the account as soon it is created.</tp:rationale> + </tp:docstring> + <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/> + <arg type="a{ss}" name="details" direction="in" tp:type="String_String_Map"> + <tp:docstring> + The new account settings + </tp:docstring> + </arg> + <arg type="s" name="createdAccountId" direction="out"> + <tp:docstring> + A new account ID + </tp:docstring> + </arg> + </method> + + <method name="setAccountsOrder" tp:name-for-bindings="setAccountsOrder"> + <tp:docstring> + Update the accounts order. + <tp:rationale>When placing a call, the first registered account in the list is used.</tp:rationale> + </tp:docstring> + <arg type="s" name="order" direction="in"> + <tp:docstring> + An ordered list of account IDs, delimited by '/' + </tp:docstring> + </arg> + </method> + + <method name="removeAccount" tp:name-for-bindings="removeAccount"> + <tp:docstring> + Remove an existing account. When removed, the signal <tp:member-ref>accountsChanged</tp:member-ref> is emitted. The clients must then call <tp:member-ref>getAccountList</tp:member-ref> to update their internal data structure. + </tp:docstring> + <arg type="s" name="accoundID" direction="in"> + <tp:docstring> + The account to remove, identified by its ID + </tp:docstring> + </arg> + </method> + + <method name="getAccountList" tp:name-for-bindings="getAccountList"> + <tp:docstring> + Get a list of all created accounts, as stored by the core. + </tp:docstring> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> + <arg type="as" name="list" direction="out"> + <tp:docstring> + A list of account IDs + </tp:docstring> + </arg> + </method> + + <method name="sendRegister" tp:name-for-bindings="sendRegister"> + <tp:docstring> + Send account registration (REGISTER) to the registrar. + </tp:docstring> + Register the account if enable=true, unregister if enable=false. + + @param[in] input accountID + --> + <arg type="s" name="accountID" direction="in"> + <tp:docstring> + The account ID + </tp:docstring> + </arg> + <arg type="b" name="enable" direction="in"> + <tp:docstring> + <p>To register, enable must be true.</p> + <p>To un-register, enable must be false.</p> + </tp:docstring> + </arg> + </method> + + <method name="getAudioManager" tp:name-for-bindings="getAudioManager"> + <arg type="s" name="api" direction="out"> + </arg> + </method> + + <method name="setAudioManager" tp:name-for-bindings="setAudioManager"> + <arg type="s" name="api" direction="in"> + </arg> + </method> + + <method name="getRecordPath" tp:name-for-bindings="getRecordPath"> + <arg type="s" name="rec" direction="out"> + </arg> + </method> + + <method name="setRecordPath" tp:name-for-bindings="setRecordPath"> + <arg type="s" name="rec" direction="in"> + </arg> + </method> + + <method name="getIsAlwaysRecording" tp:name-for-bindings="getIsAlwaysRecording"> + <arg type="b" name="res" direction="out"> + </arg> + </method> + + <method name="setIsAlwaysRecording" tp:name-for-bindings="setIsAlwaysRecording"> + <arg type="b" name="enabled" direction="in"> + </arg> + </method> + + <!-- /////////////////////// --> + + <!-- Codecs-related methods --> + + <method name="getAudioCodecList" tp:name-for-bindings="getAudioCodecList"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorInt"/> + <arg type="ai" name="list" direction="out"> + </arg> + </method> + + <method name="getAudioCodecDetails" tp:name-for-bindings="getAudioCodecDetails"> + <arg type="i" name="payload" direction="in"> + </arg> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> + <arg type="as" name="details" direction="out"> + </arg> + </method> + + <method name="getActiveAudioCodecList" tp:name-for-bindings="getActiveAudioCodecList"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorInt"/> + <arg type="s" name="accountID" direction="in"> + </arg> + <arg type="ai" name="list" direction="out"> + </arg> + </method> + + <method name="setActiveAudioCodecList" tp:name-for-bindings="setActiveAudioCodecList"> + <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="VectorString"/> + <arg type="as" name="list" direction="in"> + </arg> + <arg type="s" name="accountID" direction="in"> + </arg> + </method> + + <!-- Audio devices methods --> + + <method name="getAudioPluginList" tp:name-for-bindings="getAudioPluginList"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> + <arg type="as" name="list" direction="out"> + </arg> + </method> + + <method name="setAudioPlugin" tp:name-for-bindings="setAudioPlugin"> + <arg type="s" name="audioPlugin" direction="in"> + </arg> + </method> + + <method name="getAudioOutputDeviceList" tp:name-for-bindings="getAudioOutputDeviceList"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> + <arg type="as" name="list" direction="out"> + </arg> + </method> + + <method name="setAudioOutputDevice" tp:name-for-bindings="setAudioOutputDevice"> + <arg type="i" name="index" direction="in"> + </arg> + </method> + + <method name="setAudioInputDevice" tp:name-for-bindings="setAudioInputDevice"> + <arg type="i" name="index" direction="in"> + </arg> + </method> + + <method name="setAudioRingtoneDevice" tp:name-for-bindings="setAudioRingtoneDevice"> + <arg type="i" name="index" direction="in"> + </arg> + </method> + + <method name="getAudioInputDeviceList" tp:name-for-bindings="getAudioInputDeviceList"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> + <arg type="as" name="list" direction="out"> + </arg> + </method> + + + <method name="getCurrentAudioDevicesIndex" tp:name-for-bindings="getCurrentAudioDevicesIndex"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> + <arg type="as" name="list" direction="out"> + </arg> + </method> + + <method name="getAudioDeviceIndex" tp:name-for-bindings="getAudioDeviceIndex"> + <arg type="s" name="name" direction="in"> + </arg> + <arg type="i" name="index" direction="out"> + </arg> + </method> + + <method name="getCurrentAudioOutputPlugin" tp:name-for-bindings="getCurrentAudioOutputPlugin"> + <arg type="s" name="plugin" direction="out"> + </arg> + </method> <method name="getEchoCancelState" tp:name-for-bindings="getNoiseSuppressState"> - <tp:docstring> - </tp:docstring> - <arg type="s" name="state" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setEchoCancelState" tp:name-for-bindings="setEchoCancelState"> - <arg type="s" name="state" direction="in"> - </arg> - </method> - - <method name="setEchoCancelTailLength" tp:name-for-bindings="setEchoCancelTailLength"> - <tp:docstring> - </tp:docstring> - <arg type="i" name="index" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="getEchoCancelTailLength" tp:name-for-bindings="getEchoCancelTailLength"> - <tp:docstring> - </tp:docstring> - <arg type="i" name="index" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setEchoCancelDelay" tp:name-for-bindings="setEchoCancelDelay"> - <tp:docstring> - </tp:docstring> - <arg type="i" name="index" direction="in"> - </arg> - </method> - - <method name="getEchoCancelDelay" tp:name-for-bindings="getEchoCancelDelay"> - <tp:docstring> - </tp:docstring> - <arg type="i" name="index" direction="out"> - </arg> - </method> - - - <method name="getNoiseSuppressState" tp:name-for-bindings="getEchoCancelState"> - <tp:docstring> - </tp:docstring> - <arg type="s" name="state" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setNoiseSuppressState" tp:name-for-bindings="setNoiseSuppressState"> - <arg type="s" name="state" direction="in"> - </arg> - </method> - - <!-- General Settings Panel --> - - <method name="isIax2Enabled" tp:name-for-bindings="isIax2Enabled"> - <tp:docstring> - </tp:docstring> - <arg type="i" name="res" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setMailNotify" tp:name-for-bindings="setMailNotify"> - <tp:docstring> - </tp:docstring> - </method> - - <method name="getMailNotify" tp:name-for-bindings="getMailNotify"> - <tp:docstring> - </tp:docstring> - <arg type="i" name="level" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - - <method name="getHistoryLimit" tp:name-for-bindings="getHistoryLimit"> - <tp:docstring> - </tp:docstring> - <arg type="i" name="days" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setHistoryLimit" tp:name-for-bindings="setHistoryLimit"> - <tp:docstring> - </tp:docstring> - <arg type="i" name="days" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <!-- Addressbook configuration --> - <method name="getAddressbookSettings" tp:name-for-bindings="getAddressbookSettings"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringInt"/> - <arg type="a{si}" name="settings" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setAddressbookSettings" tp:name-for-bindings="setAddressbookSettings"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringInt"/> - <arg type="a{si}" name="settings" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <!-- Addressbook list --> - <method name="getAddressbookList" tp:name-for-bindings="getAddressbookList"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> - <arg type="as" name="settings" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setAddressbookList" tp:name-for-bindings="setAddressbookList"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="VectorString"/> - <arg type="as" name="settings" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <!-- Hook configuration --> - <method name="getHookSettings" tp:name-for-bindings="getHookSettings"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/> - <arg type="a{ss}" name="settings" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setHookSettings" tp:name-for-bindings="setHookSettings"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/> - <arg type="a{ss}" name="settings" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="getHistory" tp:name-for-bindings="getHistory"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/> - <arg type="as" name="entries" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setHistory" tp:name-for-bindings="setHistory"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/> - <arg type="as" name="entries" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <signal name="accountsChanged" tp:name-for-bindings="accountsChanged"> - </signal> - - <signal name="errorAlert" tp:name-for-bindings="errorAlert"> - <arg type="i" name="code"> - <tp:docstring> - </tp:docstring> - </arg> - </signal> - - <!-- TLS Methods --> - <method name="getSupportedTlsMethod" tp:name-for-bindings="getSupportedTlsMethod"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> - <arg type="as" name="list" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="getTlsSettingsDefault" tp:name-for-bindings="getTlsSettingsDefault"> + <arg type="s" name="state" direction="out"> + </arg> + </method> + + <method name="setEchoCancelState" tp:name-for-bindings="setEchoCancelState"> + <arg type="s" name="state" direction="in"> + </arg> + </method> + + <method name="setEchoCancelTailLength" tp:name-for-bindings="setEchoCancelTailLength"> + <arg type="i" name="index" direction="in"> + </arg> + </method> + + <method name="getEchoCancelTailLength" tp:name-for-bindings="getEchoCancelTailLength"> + <arg type="i" name="index" direction="out"> + </arg> + </method> + + <method name="setEchoCancelDelay" tp:name-for-bindings="setEchoCancelDelay"> + <arg type="i" name="index" direction="in"> + </arg> + </method> + + <method name="getEchoCancelDelay" tp:name-for-bindings="getEchoCancelDelay"> + <arg type="i" name="index" direction="out"> + </arg> + </method> + + + <method name="getNoiseSuppressState" tp:name-for-bindings="getEchoCancelState"> + <arg type="s" name="state" direction="out"> + </arg> + </method> + + <method name="setNoiseSuppressState" tp:name-for-bindings="setNoiseSuppressState"> + <arg type="s" name="state" direction="in"> + </arg> + </method> + + <!-- General Settings Panel --> + + <method name="isIax2Enabled" tp:name-for-bindings="isIax2Enabled"> + <arg type="i" name="res" direction="out"> + </arg> + </method> + + <method name="setMailNotify" tp:name-for-bindings="setMailNotify"> + </method> + + <method name="getMailNotify" tp:name-for-bindings="getMailNotify"> + <arg type="i" name="level" direction="out"> + </arg> + </method> + + <method name="getHistoryLimit" tp:name-for-bindings="getHistoryLimit"> + <arg type="i" name="days" direction="out"> + </arg> + </method> + + <method name="setHistoryLimit" tp:name-for-bindings="setHistoryLimit"> + <arg type="i" name="days" direction="in"> + </arg> + </method> + + <!-- Addressbook configuration --> + <method name="getAddressbookSettings" tp:name-for-bindings="getAddressbookSettings"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringInt"/> + <arg type="a{si}" name="settings" direction="out"> + </arg> + </method> + + <method name="setAddressbookSettings" tp:name-for-bindings="setAddressbookSettings"> + <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringInt"/> + <arg type="a{si}" name="settings" direction="in"> + </arg> + </method> + + <!-- Addressbook list --> + <method name="getAddressbookList" tp:name-for-bindings="getAddressbookList"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> + <arg type="as" name="settings" direction="out"> + </arg> + </method> + + <method name="setAddressbookList" tp:name-for-bindings="setAddressbookList"> + <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="VectorString"/> + <arg type="as" name="settings" direction="in"> + </arg> + </method> + + <!-- Hook configuration --> + <method name="getHookSettings" tp:name-for-bindings="getHookSettings"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/> + <arg type="a{ss}" name="settings" direction="out"> + </arg> + </method> + + <method name="setHookSettings" tp:name-for-bindings="setHookSettings"> + <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/> + <arg type="a{ss}" name="settings" direction="in"> + </arg> + </method> + + <method name="getHistory" tp:name-for-bindings="getHistory"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorMapStringString"/> + <!-- Return a List of type Dict<string, string> >...a List of Dicts --> + <arg type="aa{ss}" name="entries" direction="out"/> + </method> + + <method name="clearHistory" tp:name-for-bindings="clearHistory"> + </method> + + <signal name="accountsChanged" tp:name-for-bindings="accountsChanged"> + </signal> + + <signal name="errorAlert" tp:name-for-bindings="errorAlert"> + <arg type="i" name="code"> + </arg> + </signal> + + <!-- TLS Methods --> + <method name="getSupportedTlsMethod" tp:name-for-bindings="getSupportedTlsMethod"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> + <arg type="as" name="list" direction="out"> + </arg> + </method> + + <method name="getTlsSettingsDefault" tp:name-for-bindings="getTlsSettingsDefault"> <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/> - <tp:docstring> - </tp:docstring> - <arg type="a{ss}" name="details" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="getTlsSettings" tp:name-for-bindings="getTlsSettings"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/> - <arg type="a{ss}" name="details" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setTlsSettings" tp:name-for-bindings="setTlsSettings"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/> - <arg type="a{ss}" name="details" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="getAddrFromInterfaceName" tp:name-for-bindings="getAddrFromInterfaceName"> - <tp:docstring> - </tp:docstring> - <arg type="s" name="interface" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - <arg type="s" name="address" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="getAllIpInterface" tp:name-for-bindings="getAllIpInterface"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> - <arg type="as" name="list" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="getAllIpInterfaceByName" tp:name-for-bindings="getAllIpInterfaceByName"> - <tp:docstring> - </tp:docstring> - <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> - <arg type="as" name="list" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="getShortcuts" tp:name-for-bindings="getShortcuts"> + <arg type="a{ss}" name="details" direction="out"> + </arg> + </method> + + <method name="getTlsSettings" tp:name-for-bindings="getTlsSettings"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/> + <arg type="a{ss}" name="details" direction="out"> + </arg> + </method> + + <method name="setTlsSettings" tp:name-for-bindings="setTlsSettings"> + <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/> + <arg type="a{ss}" name="details" direction="in"> + </arg> + </method> + + <method name="getAddrFromInterfaceName" tp:name-for-bindings="getAddrFromInterfaceName"> + <arg type="s" name="interface" direction="in"> + </arg> + <arg type="s" name="address" direction="out"> + </arg> + </method> + + <method name="getAllIpInterface" tp:name-for-bindings="getAllIpInterface"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> + <arg type="as" name="list" direction="out"> + </arg> + </method> + + <method name="getAllIpInterfaceByName" tp:name-for-bindings="getAllIpInterfaceByName"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> + <arg type="as" name="list" direction="out"> + </arg> + </method> + + <method name="getShortcuts" tp:name-for-bindings="getShortcuts"> <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/> - <tp:docstring> - </tp:docstring> - <arg type="a{ss}" name="shortcutsMap" direction="out"> - <tp:docstring> - </tp:docstring> - </arg> - </method> - - <method name="setShortcuts" tp:name-for-bindings="setShortcuts"> + <arg type="a{ss}" name="shortcutsMap" direction="out"> + </arg> + </method> + + <method name="setShortcuts" tp:name-for-bindings="setShortcuts"> <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/> - <tp:docstring> - </tp:docstring> - <arg type="a{ss}" name="shortcutsMap" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> - </method> + <arg type="a{ss}" name="shortcutsMap" direction="in"> + </arg> + </method> </interface> - </node> +</node> diff --git a/src/instance_interface_singleton.cpp b/src/instance_interface_singleton.cpp index cbf2d744a628e06c8d9832c8fd2653ec749fc5cb..68e700c71b3399cb8110b5f962d36a500ca76704 100644 --- a/src/instance_interface_singleton.cpp +++ b/src/instance_interface_singleton.cpp @@ -27,7 +27,7 @@ InstanceInterface* InstanceInterfaceSingleton::interface InstanceInterface& InstanceInterfaceSingleton::getInstance() { if(!interface->connection().isConnected()) { - throw "Error : sflphoned not connected. Service " + interface->service() + " not connected. From instance interface."; + throw "Error : sflphoned not connected. Service " + interface->service() + " not connected. From instance interface."; } return *interface; } diff --git a/src/instance_interface_singleton.h b/src/instance_interface_singleton.h index 1b29e058d21005f9b589456a6aac04ccb64761d6..0263954fe9eec6a396eb6f7cdf807dfe048d79f6 100644 --- a/src/instance_interface_singleton.h +++ b/src/instance_interface_singleton.h @@ -25,9 +25,9 @@ #include "src/lib/instance_dbus_interface.h" #include "typedefs.h" -/** - @author Jérémy Quentin <jeremy.quentin@savoirfairelinux.com> -*/ +/** + * @author Jérémy Quentin <jeremy.quentin@savoirfairelinux.com> + */ class LIB_EXPORT InstanceInterfaceSingleton { diff --git a/src/sflphone_const.h b/src/sflphone_const.h index 10009f279c6c30b36a3d129b89c5b54940eacd01..500cca98cf09c24c4a25a53963febed4f9c074de 100644 --- a/src/sflphone_const.h +++ b/src/sflphone_const.h @@ -110,63 +110,139 @@ /** Account details */ -#define ACCOUNT_TYPE "Account.type" -#define ACCOUNT_ALIAS "Account.alias" -#define ACCOUNT_ENABLED "Account.enable" -#define ACCOUNT_MAILBOX "Account.mailbox" -#define ACCOUNT_RESOLVE_ONCE "Account.resolveOnce" -#define ACCOUNT_REGISTRATION_EXPIRE "Account.expire" -#define ACCOUNT_SIP_STUN_SERVER "STUN.server" -#define ACCOUNT_SIP_STUN_ENABLED "STUN.enable" -#define ACCOUNT_HOSTNAME "hostname" -#define ACCOUNT_USERNAME "username" -#define ACCOUNT_PASSWORD "password" -#define ACCOUNT_AUTHENTICATION_USERNAME "authenticationUsername" -#define ACCOUNT_REALM "realm" -#define ACCOUNT_KEY_EXCHANGE "SRTP.keyExchange" -#define ACCOUNT_SRTP_ENABLED "SRTP.enable" -#define ACCOUNT_ZRTP_DISPLAY_SAS "ZRTP.displaySAS" -#define ACCOUNT_ZRTP_NOT_SUPP_WARNING "ZRTP.notSuppWarning" -#define ACCOUNT_ZRTP_HELLO_HASH "ZRTP.helloHashEnable" -#define ACCOUNT_DISPLAY_SAS_ONCE "ZRTP.displaySasOnce" -#define KEY_EXCHANGE_NONE "0" -#define ZRTP "1" -#define SDES "2" +// #define ACCOUNT_ID "Account.id" +// #define ACCOUNT_TYPE "Account.type" +// #define ACCOUNT_ALIAS "Account.alias" +// #define ACCOUNT_ENABLED "Account.enable" +// #define ACCOUNT_MAILBOX "Account.mailbox" +// #define ACCOUNT_USERAGENT "Account.useragent" +// #define ACCOUNT_REGISTRATION_EXPIRE "Account.registrationExpire" +// #define ACCOUNT_SIP_STUN_SERVER "STUN.server" +// #define ACCOUNT_SIP_STUN_ENABLED "STUN.enable" +// #define ACCOUNT_DTMF_TYPE "Account.dtmfType" +// #define ACCOUNT_HOSTNAME "Account.hostname" +// #define ACCOUNT_USERNAME "Account.username" +// #define ACCOUNT_ROUTE "Account.routeset" +// #define ACCOUNT_PASSWORD "Account.password" +// #define ACCOUNT_REALM "Account.realm" +// #define ACCOUNT_KEY_EXCHANGE "SRTP.keyExchange" +// #define ACCOUNT_SRTP_ENABLED "SRTP.enable" +// #define ACCOUNT_SRTP_RTP_FALLBACK "SRTP.rtpFallback" +// #define ACCOUNT_ZRTP_DISPLAY_SAS "ZRTP.displaySAS" +// #define ACCOUNT_ZRTP_NOT_SUPP_WARNING "ZRTP.notSuppWarning" +// #define ACCOUNT_ZRTP_HELLO_HASH "ZRTP.helloHashEnable" +// #define ACCOUNT_DISPLAY_SAS_ONCE "ZRTP.displaySasOnce" +// #define KEY_EXCHANGE_NONE "0" +// #define ZRTP "1" +// #define SDES "2" /** TLS */ -#define TLS_LISTENER_PORT "TLS.listenerPort" -#define TLS_ENABLE "TLS.enable" -#define TLS_PORT "TLS.port" -#define TLS_CA_LIST_FILE "TLS.certificateListFile" -#define TLS_CERTIFICATE_FILE "TLS.certificateFile" -#define TLS_PRIVATE_KEY_FILE "TLS.privateKeyFile" -#define TLS_PASSWORD "TLS.password" -#define TLS_METHOD "TLS.method" -#define TLS_CIPHERS "TLS.ciphers" -#define TLS_SERVER_NAME "TLS.serverName" -#define TLS_VERIFY_SERVER "TLS.verifyServer" -#define TLS_VERIFY_CLIENT "TLS.verifyClient" -#define TLS_REQUIRE_CLIENT_CERTIFICATE "TLS.requireClientCertificate" -#define TLS_NEGOTIATION_TIMEOUT_SEC "TLS.negotiationTimeoutSec" -#define TLS_NEGOTIATION_TIMEOUT_MSEC "TLS.negotiationTimemoutMsec" - -#define LOCAL_INTERFACE "Account.localInterface" -#define PUBLISHED_SAMEAS_LOCAL "Account.publishedSameAsLocal" -#define LOCAL_PORT "Account.localPort" -#define PUBLISHED_PORT "Account.publishedPort" -#define PUBLISHED_ADDRESS "Account.publishedAddress" - -#define REGISTRATION_STATUS "Status" -#define REGISTRATION_STATE_CODE "Registration.code" -#define REGISTRATION_STATE_DESCRIPTION "Registration.description" +// #define TLS_LISTENER_PORT "TLS.listenerPort" +// #define TLS_ENABLE "TLS.enable" +// #define TLS_PORT "TLS.port" +// #define TLS_CA_LIST_FILE "TLS.certificateListFile" +// #define TLS_CERTIFICATE_FILE "TLS.certificateFile" +// #define TLS_PRIVATE_KEY_FILE "TLS.privateKeyFile" +// #define TLS_PASSWORD "TLS.password" +// #define TLS_METHOD "TLS.method" +// #define TLS_CIPHERS "TLS.ciphers" +// #define TLS_SERVER_NAME "TLS.serverName" +// #define TLS_VERIFY_SERVER "TLS.verifyServer" +// #define TLS_VERIFY_CLIENT "TLS.verifyClient" +// #define TLS_REQUIRE_CLIENT_CERTIFICATE "TLS.requireClientCertificate" +// #define TLS_NEGOTIATION_TIMEOUT_SEC "TLS.negotiationTimeoutSec" +// #define TLS_NEGOTIATION_TIMEOUT_MSEC "TLS.negotiationTimemoutMsec" +// +// #define LOCAL_INTERFACE "Account.localInterface" +// #define PUBLISHED_SAMEAS_LOCAL "Account.publishedSameAsLocal" +// #define LOCAL_PORT "Account.localPort" +// #define PUBLISHED_PORT "Account.publishedPort" +// #define PUBLISHED_ADDRESS "Account.publishedAddress" +// +// #define REGISTRATION_STATUS "Registration.Status" +// #define REGISTRATION_STATE_CODE "Registration.code" +// #define REGISTRATION_STATE_DESCRIPTION "Registration.description" + + +#define IP2IP_PROFILE "IP2IP" + +#define ACCOUNT_ID "Account.id" +#define ACCOUNT_TYPE "Account.type" +#define ACCOUNT_ALIAS "Account.alias" +#define ACCOUNT_ENABLED "Account.enable" +#define ACCOUNT_MAILBOX "Account.mailbox" +#define ACCOUNT_USERAGENT "Account.useragent" +#define ACCOUNT_REGISTRATION_EXPIRE "Account.registrationExpire" +#define ACCOUNT_SIP_STUN_SERVER "STUN.server" +#define ACCOUNT_SIP_STUN_ENABLED "STUN.enable" +#define ACCOUNT_DTMF_TYPE "Account.dtmfType" +#define ACCOUNT_HOSTNAME "Account.hostname" +#define ACCOUNT_USERNAME "Account.username" +#define ACCOUNT_ROUTE "Account.routeset" +#define ACCOUNT_PASSWORD "Account.password" +#define ACCOUNT_REALM "Account.realm" +#define ACCOUNT_KEY_EXCHANGE "SRTP.keyExchange" +#define ACCOUNT_SRTP_ENABLED "SRTP.enable" +#define ACCOUNT_SRTP_RTP_FALLBACK "SRTP.rtpFallback" +#define ACCOUNT_ZRTP_DISPLAY_SAS "ZRTP.displaySAS" +#define ACCOUNT_ZRTP_NOT_SUPP_WARNING "ZRTP.notSuppWarning" +#define ACCOUNT_ZRTP_HELLO_HASH "ZRTP.helloHashEnable" +#define ACCOUNT_DISPLAY_SAS_ONCE "ZRTP.displaySasOnce" +#define KEY_EXCHANGE_NONE "none" +#define ZRTP "zrtp" +#define SDES "sdes" + +#define CONFIG_RINGTONE_PATH "Account.ringtonePath" +#define CONFIG_RINGTONE_ENABLED "Account.ringtoneEnabled" + +#define TLS_LISTENER_PORT "TLS.listenerPort" +#define TLS_ENABLE "TLS.enable" +#define TLS_PORT "TLS.port" +#define TLS_CA_LIST_FILE "TLS.certificateListFile" +#define TLS_CERTIFICATE_FILE "TLS.certificateFile" +#define TLS_PRIVATE_KEY_FILE "TLS.privateKeyFile" +#define TLS_PASSWORD "TLS.password" +#define TLS_METHOD "TLS.method" +#define TLS_CIPHERS "TLS.ciphers" +#define TLS_SERVER_NAME "TLS.serverName" +#define TLS_VERIFY_SERVER "TLS.verifyServer" +#define TLS_VERIFY_CLIENT "TLS.verifyClient" +#define TLS_REQUIRE_CLIENT_CERTIFICATE "TLS.requireClientCertificate" +#define TLS_NEGOTIATION_TIMEOUT_SEC "TLS.negotiationTimeoutSec" +#define TLS_NEGOTIATION_TIMEOUT_MSEC "TLS.negotiationTimemoutMsec" + +#define LOCAL_INTERFACE "Account.localInterface" +#define PUBLISHED_SAMEAS_LOCAL "Account.publishedSameAsLocal" +#define LOCAL_PORT "Account.localPort" +#define PUBLISHED_PORT "Account.publishedPort" +#define PUBLISHED_ADDRESS "Account.publishedAddress" + +#define REGISTRATION_STATUS "Registration.Status" +#define REGISTRATION_STATE_CODE "Registration.code" +#define REGISTRATION_STATE_DESCRIPTION "Registration.description" + +#define SHORTCUT_PICKUP "pickUp" +#define SHORTCUT_HANGUP "hangUp" +#define SHORTCUT_POPUP "popupWindow" +#define SHORTCUT_TOGGLEPICKUPHANGUP "togglePickupHangup" +#define SHORTCUT_TOGGLEHOLD "toggleHold" + + +#define CONFIG_ACCOUNT_HOSTNAME "Account.hostname" +#define CONFIG_ACCOUNT_USERNAME "Account.username" +#define CONFIG_ACCOUNT_ROUTESET "Account.routeset" +#define CONFIG_ACCOUNT_PASSWORD "Account.password" +#define CONFIG_ACCOUNT_REALM "Account.realm" +#define CONFIG_ACCOUNT_DEFAULT_REALM "*" +#define CONFIG_ACCOUNT_USERAGENT "Account.useragent" /** Maybe to remove **/ -#define ACCOUNT_EXPIRE "Account.expire" -#define ACCOUNT_STATUS "Status" -#define ACCOUNT_EXPIRE_DEFAULT 600 -#define ACCOUNT_ENABLED_TRUE "true" -#define ACCOUNT_ENABLED_FALSE "false" +// #define ACCOUNT_EXPIRE "Account.expire" +// #define ACCOUNT_STATUS "Status" +#define REGISTRATION_EXPIRE_DEFAULT 600 +#define REGISTRATION_ENABLED_TRUE "true" +#define REGISTRATION_ENABLED_FALSE "false" #define ACCOUNT_TYPE_SIP "SIP" #define ACCOUNT_TYPE_IAX "IAX" #define ACCOUNT_TYPES_TAB {QString(ACCOUNT_TYPE_SIP), QString(ACCOUNT_TYPE_IAX)} @@ -250,34 +326,34 @@ #define CONST_PULSEAUDIO 1 /** TLS */ -#define TLS_LISTENER_PORT "TLS.listenerPort" -#define TLS_ENABLE "TLS.enable" -#define TLS_PORT "TLS.port" -#define TLS_CA_LIST_FILE "TLS.certificateListFile" -#define TLS_CERTIFICATE_FILE "TLS.certificateFile" -#define TLS_PRIVATE_KEY_FILE "TLS.privateKeyFile" -#define TLS_PASSWORD "TLS.password" -#define TLS_METHOD "TLS.method" -#define TLS_CIPHERS "TLS.ciphers" -#define TLS_SERVER_NAME "TLS.serverName" -#define TLS_VERIFY_SERVER "TLS.verifyServer" -#define TLS_VERIFY_CLIENT "TLS.verifyClient" -#define TLS_REQUIRE_CLIENT_CERTIFICATE "TLS.requireClientCertificate" -#define TLS_NEGOTIATION_TIMEOUT_SEC "TLS.negotiationTimeoutSec" -#define TLS_NEGOTIATION_TIMEOUT_MSEC "TLS.negotiationTimemoutMsec" - -#define ACCOUNT_ID "Account.id" -#define ACCOUNT_AUTHENTICATION_USERNAME "authenticationUsername" -#define ACCOUNT_KEY_EXCHANGE "SRTP.keyExchange" -#define ACCOUNT_SRTP_ENABLED "SRTP.enable" -#define ACCOUNT_SRTP_RTP_FALLBACK "SRTP.rtpFallback" -#define ACCOUNT_ZRTP_DISPLAY_SAS "ZRTP.displaySAS" -#define ACCOUNT_ZRTP_NOT_SUPP_WARNING "ZRTP.notSuppWarning" -#define ACCOUNT_ZRTP_HELLO_HASH "ZRTP.helloHashEnable" -#define ACCOUNT_DISPLAY_SAS_ONCE "ZRTP.displaySasOnce" -#define KEY_EXCHANGE_NONE "0" -#define ZRTP "1" -#define SDES "2" +// #define TLS_LISTENER_PORT "TLS.listenerPort" +// #define TLS_ENABLE "TLS.enable" +// #define TLS_PORT "TLS.port" +// #define TLS_CA_LIST_FILE "TLS.certificateListFile" +// #define TLS_CERTIFICATE_FILE "TLS.certificateFile" +// #define TLS_PRIVATE_KEY_FILE "TLS.privateKeyFile" +// #define TLS_PASSWORD "TLS.password" +// #define TLS_METHOD "TLS.method" +// #define TLS_CIPHERS "TLS.ciphers" +// #define TLS_SERVER_NAME "TLS.serverName" +// #define TLS_VERIFY_SERVER "TLS.verifyServer" +// #define TLS_VERIFY_CLIENT "TLS.verifyClient" +// #define TLS_REQUIRE_CLIENT_CERTIFICATE "TLS.requireClientCertificate" +// #define TLS_NEGOTIATION_TIMEOUT_SEC "TLS.negotiationTimeoutSec" +// #define TLS_NEGOTIATION_TIMEOUT_MSEC "TLS.negotiationTimemoutMsec" + +// #define ACCOUNT_ID "Account.id" +// #define ACCOUNT_AUTHENTICATION_USERNAME "authenticationUsername" +// #define ACCOUNT_KEY_EXCHANGE "SRTP.keyExchange" +// #define ACCOUNT_SRTP_ENABLED "SRTP.enable" +// #define ACCOUNT_SRTP_RTP_FALLBACK "SRTP.rtpFallback" +// #define ACCOUNT_ZRTP_DISPLAY_SAS "ZRTP.displaySAS" +// #define ACCOUNT_ZRTP_NOT_SUPP_WARNING "ZRTP.notSuppWarning" +// #define ACCOUNT_ZRTP_HELLO_HASH "ZRTP.helloHashEnable" +// #define ACCOUNT_DISPLAY_SAS_ONCE "ZRTP.displaySasOnce" +// #define KEY_EXCHANGE_NONE "0" +// #define ZRTP "1" +// #define SDES "2" typedef enum { @@ -317,3 +393,17 @@ static const QString empty(""); #define MIME_PLAIN_TEXT "text/plain" #endif +/** HISTORY SERIALIZATION */ +#define ACCOUNT_ID_KEY "accountid" +#define CALLID_KEY "callid" +#define CONFID_KEY "confid" +#define DISPLAY_NAME_KEY "display_name" +#define PEER_NUMBER_KEY "peer_number" +#define RECORDING_PATH_KEY "recordfile" +#define STATE_KEY "state" +#define TIMESTAMP_START_KEY "timestamp_start" +#define TIMESTAMP_STOP_KEY "timestamp_stop" +#define MISSED_STRING "missed" +#define INCOMING_STRING "incoming" +#define OUTGOING_STRING "outgoing" +