Ring Daemon
Loading...
Searching...
No Matches
configurationmanager_interface.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2004-2026 Savoir-faire Linux Inc.
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <https://www.gnu.org/licenses/>.
16 */
17#pragma once
18
19#include "def.h"
20
21#include <vector>
22#include <map>
23#include <memory>
24#include <string>
25#include <cstdint>
26
27#include "jami.h"
28
29#ifdef __APPLE__
30#include <TargetConditionals.h>
31#endif
32
33namespace libjami {
34
35[[deprecated("Replaced by registerSignalHandlers")]] LIBJAMI_PUBLIC void registerConfHandlers(
36 const std::map<std::string, std::shared_ptr<CallbackWrapperBase>>&);
37
39{
40 std::string from;
41 std::map<std::string, std::string> payloads;
42 uint64_t received;
43};
44
45LIBJAMI_PUBLIC std::map<std::string, std::string> getAccountDetails(const std::string& accountId);
46LIBJAMI_PUBLIC std::map<std::string, std::string> getVolatileAccountDetails(const std::string& accountId);
47LIBJAMI_PUBLIC void setAccountDetails(const std::string& accountId, const std::map<std::string, std::string>& details);
48LIBJAMI_PUBLIC void setAccountActive(const std::string& accountId, bool active, bool shutdownConnections = false);
49LIBJAMI_PUBLIC void loadAccountAndConversation(const std::string& accountId, bool loadAll, const std::string& convId);
50LIBJAMI_PUBLIC std::map<std::string, std::string> getAccountTemplate(const std::string& accountType);
51LIBJAMI_PUBLIC std::string addAccount(const std::map<std::string, std::string>& details,
52 const std::string& accountId = {});
53LIBJAMI_PUBLIC void monitor(bool continuous);
54LIBJAMI_PUBLIC std::vector<std::map<std::string, std::string>> getConnectionList(const std::string& accountId,
55 const std::string& conversationId);
56LIBJAMI_PUBLIC std::vector<std::map<std::string, std::string>> getConversationConnectivity(
57 const std::string& accountId, const std::string& conversationId);
58LIBJAMI_PUBLIC std::vector<std::map<std::string, std::string>> getConversationTrackedMembers(
59 const std::string& accountId, const std::string& conversationId);
60LIBJAMI_PUBLIC std::vector<std::map<std::string, std::string>> getChannelList(const std::string& accountId,
61 const std::string& connectionId);
62
63LIBJAMI_PUBLIC bool provideAccountAuthentication(const std::string& accountId,
64 const std::string& credentialsFromUser,
65 const std::string& scheme);
66
67LIBJAMI_PUBLIC int32_t addDevice(const std::string& accountId, const std::string& uri);
68LIBJAMI_PUBLIC bool confirmAddDevice(const std::string& accountId, uint32_t op_id);
69LIBJAMI_PUBLIC bool cancelAddDevice(const std::string& accountId, uint32_t op_id);
70
71LIBJAMI_PUBLIC bool exportToFile(const std::string& accountID,
72 const std::string& destinationPath,
73 const std::string& scheme = {},
74 const std::string& password = {});
75LIBJAMI_PUBLIC bool revokeDevice(const std::string& accountId,
76 const std::string& deviceId,
77 const std::string& scheme = {},
78 const std::string& password = {});
79LIBJAMI_PUBLIC std::map<std::string, std::string> getKnownRingDevices(const std::string& accountId);
80LIBJAMI_PUBLIC bool changeAccountPassword(const std::string& accountId,
81 const std::string& password_old,
82 const std::string& password_new);
83LIBJAMI_PUBLIC bool isPasswordValid(const std::string& accountId, const std::string& password);
84LIBJAMI_PUBLIC std::vector<uint8_t> getPasswordKey(const std::string& accountId, const std::string& password);
85
86LIBJAMI_PUBLIC bool lookupName(const std::string& account, const std::string& nameserver, const std::string& name);
87LIBJAMI_PUBLIC bool lookupAddress(const std::string& account, const std::string& nameserver, const std::string& address);
88LIBJAMI_PUBLIC bool registerName(const std::string& account,
89 const std::string& name,
90 const std::string& scheme = {},
91 const std::string& password = {});
92LIBJAMI_PUBLIC bool searchUser(const std::string& account, const std::string& query);
93
94LIBJAMI_PUBLIC void removeAccount(const std::string& accountId);
95LIBJAMI_PUBLIC std::vector<std::string> getAccountList();
96LIBJAMI_PUBLIC void sendRegister(const std::string& accountId, bool enable);
98LIBJAMI_PUBLIC uint64_t sendAccountTextMessage(const std::string& accountId,
99 const std::string& to,
100 const std::map<std::string, std::string>& payloads,
101 int32_t flags);
102LIBJAMI_PUBLIC std::vector<Message> getLastMessages(const std::string& accountId, const uint64_t& base_timestamp);
103LIBJAMI_PUBLIC std::map<std::string, std::string> getNearbyPeers(const std::string& accountId);
104LIBJAMI_PUBLIC void updateProfile(const std::string& accountId,
105 const std::string& displayName,
106 const std::string& avatar,
107 const std::string& fileType,
108 int32_t flag);
109LIBJAMI_PUBLIC int getMessageStatus(uint64_t id);
110LIBJAMI_PUBLIC int getMessageStatus(const std::string& accountId, uint64_t id);
111LIBJAMI_PUBLIC void setIsComposing(const std::string& accountId, const std::string& conversationUri, bool isWriting);
112LIBJAMI_PUBLIC bool setMessageDisplayed(const std::string& accountId,
113 const std::string& conversationUri,
114 const std::string& messageId,
115 int status);
116
117LIBJAMI_PUBLIC std::vector<unsigned> getCodecList();
118LIBJAMI_PUBLIC std::vector<std::string> getSupportedTlsMethod();
119LIBJAMI_PUBLIC std::vector<std::string> getSupportedCiphers(const std::string& accountId);
120LIBJAMI_PUBLIC std::map<std::string, std::string> getCodecDetails(const std::string& accountId, const unsigned& codecId);
121LIBJAMI_PUBLIC bool setCodecDetails(const std::string& accountId,
122 const unsigned& codecId,
123 const std::map<std::string, std::string>& details);
124LIBJAMI_PUBLIC std::vector<unsigned> getActiveCodecList(const std::string& accountId);
125
126LIBJAMI_PUBLIC void setActiveCodecList(const std::string& accountId, const std::vector<unsigned>& list);
127
128LIBJAMI_PUBLIC std::vector<std::string> getAudioPluginList();
129LIBJAMI_PUBLIC void setAudioPlugin(const std::string& audioPlugin);
130LIBJAMI_PUBLIC std::vector<std::string> getAudioOutputDeviceList();
131LIBJAMI_PUBLIC void setAudioOutputDevice(int32_t index);
132LIBJAMI_PUBLIC void setAudioInputDevice(int32_t index);
133LIBJAMI_PUBLIC void setAudioRingtoneDevice(int32_t index);
134LIBJAMI_PUBLIC std::vector<std::string> getAudioInputDeviceList();
135LIBJAMI_PUBLIC std::vector<std::string> getCurrentAudioDevicesIndex();
136LIBJAMI_PUBLIC int32_t getAudioInputDeviceIndex(const std::string& name);
137LIBJAMI_PUBLIC int32_t getAudioOutputDeviceIndex(const std::string& name);
140LIBJAMI_PUBLIC void setNoiseSuppressState(const std::string& state);
142LIBJAMI_PUBLIC void setEchoCancellationState(const std::string& state);
145
147LIBJAMI_PUBLIC void setAgcState(bool enabled);
148
149LIBJAMI_PUBLIC void muteDtmf(bool mute);
151
153LIBJAMI_PUBLIC void muteCapture(bool mute);
155LIBJAMI_PUBLIC void mutePlayback(bool mute);
157LIBJAMI_PUBLIC void muteRingtone(bool mute);
158
159LIBJAMI_PUBLIC std::vector<std::string> getSupportedAudioManagers();
160LIBJAMI_PUBLIC std::string getAudioManager();
161LIBJAMI_PUBLIC bool setAudioManager(const std::string& api);
162
163LIBJAMI_PUBLIC std::string getRecordPath();
164LIBJAMI_PUBLIC void setRecordPath(const std::string& recPath);
168LIBJAMI_PUBLIC void setRecordPreview(bool rec);
171
172LIBJAMI_PUBLIC void setHistoryLimit(int32_t days);
174
175LIBJAMI_PUBLIC void setRingingTimeout(int32_t timeout);
177
178LIBJAMI_PUBLIC void setAccountsOrder(const std::string& order);
179
180LIBJAMI_PUBLIC std::vector<std::map<std::string, std::string>> getCredentials(const std::string& accountId);
181LIBJAMI_PUBLIC void setCredentials(const std::string& accountId,
182 const std::vector<std::map<std::string, std::string>>& details);
183
184LIBJAMI_PUBLIC std::string getAddrFromInterfaceName(const std::string& iface);
185
186LIBJAMI_PUBLIC std::vector<std::string> getAllIpInterface();
187LIBJAMI_PUBLIC std::vector<std::string> getAllIpInterfaceByName();
188
189LIBJAMI_PUBLIC void setVolume(const std::string& device, double value);
190LIBJAMI_PUBLIC double getVolume(const std::string& device);
191
192/*
193 * Security
194 */
195LIBJAMI_PUBLIC std::map<std::string, std::string> validateCertificate(const std::string& accountId,
196 const std::string& certificate);
197LIBJAMI_PUBLIC std::map<std::string, std::string> validateCertificatePath(const std::string& accountId,
198 const std::string& certificatePath,
199 const std::string& privateKey,
200 const std::string& privateKeyPassword,
201 const std::string& caList);
202
203LIBJAMI_PUBLIC std::map<std::string, std::string> getCertificateDetails(const std::string& accountId,
204 const std::string& certificate);
205LIBJAMI_PUBLIC std::map<std::string, std::string> getCertificateDetailsPath(const std::string& accountId,
206 const std::string& certificatePath,
207 const std::string& privateKey,
208 const std::string& privateKeyPassword);
209
210LIBJAMI_PUBLIC std::vector<std::string> getPinnedCertificates(const std::string& accountId);
211
212LIBJAMI_PUBLIC std::vector<std::string> pinCertificate(const std::string& accountId,
213 const std::vector<uint8_t>& certificate,
214 bool local);
215LIBJAMI_PUBLIC bool unpinCertificate(const std::string& accountId, const std::string& certId);
216
217LIBJAMI_PUBLIC void pinCertificatePath(const std::string& accountId, const std::string& path);
218LIBJAMI_PUBLIC unsigned unpinCertificatePath(const std::string& accountId, const std::string& path);
219
220LIBJAMI_PUBLIC bool pinRemoteCertificate(const std::string& accountId, const std::string& certId);
221LIBJAMI_PUBLIC bool setCertificateStatus(const std::string& account,
222 const std::string& certId,
223 const std::string& status);
224LIBJAMI_PUBLIC std::vector<std::string> getCertificatesByStatus(const std::string& account, const std::string& status);
225
226/* contact requests */
227LIBJAMI_PUBLIC std::vector<std::map<std::string, std::string>> getTrustRequests(const std::string& accountId);
228LIBJAMI_PUBLIC bool acceptTrustRequest(const std::string& accountId, const std::string& from);
229LIBJAMI_PUBLIC bool discardTrustRequest(const std::string& accountId, const std::string& from);
230LIBJAMI_PUBLIC void sendTrustRequest(const std::string& accountId,
231 const std::string& to,
232 const std::vector<uint8_t>& payload = {});
233
234/* Contacts */
235
236LIBJAMI_PUBLIC void addContact(const std::string& accountId, const std::string& uri);
237LIBJAMI_PUBLIC void removeContact(const std::string& accountId, const std::string& uri, bool ban);
238LIBJAMI_PUBLIC std::map<std::string, std::string> getContactDetails(const std::string& accountId,
239 const std::string& uri);
240LIBJAMI_PUBLIC std::vector<std::map<std::string, std::string>> getContacts(const std::string& accountId);
241
242/*
243 * Network connectivity
244 */
246
247/* Dht proxy */
248
254LIBJAMI_PUBLIC void setPushNotificationToken(const std::string& pushDeviceToken);
255
261LIBJAMI_PUBLIC void setPushNotificationTopic(const std::string& topic);
262
263LIBJAMI_PUBLIC void setPushNotificationConfig(const std::map<std::string, std::string>& data);
264
268LIBJAMI_PUBLIC void pushNotificationReceived(const std::string& from, const std::map<std::string, std::string>& data);
269
275LIBJAMI_PUBLIC bool isAudioMeterActive(const std::string& id);
276
282LIBJAMI_PUBLIC void setAudioMeterState(const std::string& id, bool state);
283
287LIBJAMI_PUBLIC void setDefaultModerator(const std::string& accountId, const std::string& peerURI, bool state);
288
292LIBJAMI_PUBLIC std::vector<std::string> getDefaultModerators(const std::string& accountId);
293
297LIBJAMI_PUBLIC void enableLocalModerators(const std::string& accountId, bool isModEnabled);
298
302LIBJAMI_PUBLIC bool isLocalModeratorsEnabled(const std::string& accountId);
303
307LIBJAMI_PUBLIC void setAllModerators(const std::string& accountId, bool allModerators);
308
312LIBJAMI_PUBLIC bool isAllModerators(const std::string& accountId);
313
317LIBJAMI_PUBLIC void setResourceDirPath(const std::string& resourceDirPath);
318
320{
322 {
323 constexpr static const char* name = "audioDeviceEvent";
324 using cb_type = void(void);
325 };
326 // Linear audio level (between 0 and 1). To get level in dB: dB=20*log10(level)
328 {
329 constexpr static const char* name = "AudioMeter";
330 using cb_type = void(const std::string& id, float level);
331 };
332};
333
334// Configuration signal type definitions
336{
338 {
339 constexpr static const char* name = "VolumeChanged";
340 using cb_type = void(const std::string& /*device*/, double /*value*/);
341 };
343 {
344 constexpr static const char* name = "AccountsChanged";
345 using cb_type = void(void);
346 };
348 {
349 constexpr static const char* name = "Error";
350 using cb_type = void(int /*alert*/);
351 };
352
353 // used for client awareness of available link device jami-auth uri
355 {
356 constexpr static const char* name = "AddDeviceStateChanged";
357 using cb_type = void(const std::string& /*account_id*/,
358 uint32_t /*op_id */,
359 int /*state*/,
360 const std::map<std::string, std::string>& /*detail*/);
361 };
362 // used for link device authentication (password, error, etc.)
364 {
365 constexpr static const char* name = "DeviceAuthStateChanged";
366 using cb_type = void(const std::string& /*account_id*/,
367 int /*state*/,
368 const std::map<std::string, std::string>& /*detail*/);
369 };
370 // TODO: move those to AccountSignal in next API breakage
372 {
373 constexpr static const char* name = "AccountDetailsChanged";
374 using cb_type = void(const std::string& /*account_id*/,
375 const std::map<std::string, std::string>& /* details */);
376 };
378 {
379 constexpr static const char* name = "StunStatusFailed";
380 using cb_type = void(const std::string& /*account_id*/);
381 };
383 {
384 constexpr static const char* name = "RegistrationStateChanged";
385 using cb_type = void(const std::string& /*account_id*/,
386 const std::string& /*state*/,
387 int /*detailsCode*/,
388 const std::string& /*detailsStr*/);
389 };
391 {
392 constexpr static const char* name = "VolatileDetailsChanged";
393 using cb_type = void(const std::string& /*account_id*/,
394 const std::map<std::string, std::string>& /* details */);
395 };
397 {
398 constexpr static const char* name = "IncomingAccountMessage";
399 using cb_type = void(const std::string& /*account_id*/,
400 const std::string& /*from*/,
401 const std::string& /*message_id*/,
402 const std::map<std::string, std::string>& /*payloads*/);
403 };
405 {
406 constexpr static const char* name = "AccountMessageStatusChanged";
407 using cb_type = void(const std::string& /*account_id*/,
408 const std::string& /*conversation_id*/,
409 const std::string& /*peer*/,
410 const std::string& /*message_id*/,
411 int /*state*/);
412 };
414 {
415 constexpr static const char* name = "NeedsHost";
416 using cb_type = void(const std::string& /*account_id*/, const std::string& /*conversation_id*/);
417 };
419 {
420 constexpr static const char* name = "ActiveCallsChanged";
421 using cb_type = void(const std::string& /*account_id*/,
422 const std::string& /*conversation_id*/,
423 const std::vector<std::map<std::string, std::string>>& /*activeCalls*/);
424 };
426 {
427 constexpr static const char* name = "ProfileReceived";
428 using cb_type = void(const std::string& /*account_id*/,
429 const std::string& /*from*/,
430 const std::string& /*vcard*/);
431 };
433 {
434 constexpr static const char* name = "ComposingStatusChanged";
435 using cb_type = void(const std::string& /*account_id*/,
436 const std::string& /*convId*/,
437 const std::string& /*from*/,
438 int /*status*/);
439 };
441 {
442 constexpr static const char* name = "IncomingTrustRequest";
443 using cb_type = void(const std::string& /*account_id*/,
444 const std::string& /*from*/,
445 const std::string& /*conversationId*/,
446 const std::vector<uint8_t>& payload,
447 time_t received);
448 };
450 {
451 constexpr static const char* name = "ContactAdded";
452 using cb_type = void(const std::string& /*account_id*/, const std::string& /*uri*/, bool confirmed);
453 };
455 {
456 constexpr static const char* name = "ContactRemoved";
457 using cb_type = void(const std::string& /*account_id*/, const std::string& /*uri*/, bool banned);
458 };
459 // struct LIBJAMI_PUBLIC ExportToPeer
460 // {
461 // constexpr static const char* name = "ExportToPeer";
462 // using cb_type = void(const std::string& /*account_id*/, const std::string& uri);
463 // };
465 {
466 constexpr static const char* name = "NameRegistrationEnded";
467 using cb_type = void(const std::string& /*account_id*/, int state, const std::string& name);
468 };
470 {
471 constexpr static const char* name = "KnownDevicesChanged";
472 using cb_type = void(const std::string& /*account_id*/, const std::map<std::string, std::string>& devices);
473 };
475 {
476 constexpr static const char* name = "RegisteredNameFound";
477 using cb_type = void(const std::string& /*account_id*/,
478 const std::string& /*request_name*/,
479 int state,
480 const std::string& /*address*/,
481 const std::string& /*name*/);
482 };
484 {
485 constexpr static const char* name = "UserSearchEnded";
486 using cb_type = void(const std::string& /*account_id*/,
487 int state,
488 const std::string& /*query*/,
489 const std::vector<std::map<std::string, std::string>>& /*results*/);
490 };
492 {
493 constexpr static const char* name = "CertificatePinned";
494 using cb_type = void(const std::string& /*certId*/);
495 };
497 {
498 constexpr static const char* name = "CertificatePathPinned";
499 using cb_type = void(const std::string& /*path*/, const std::vector<std::string>& /*certId*/);
500 };
502 {
503 constexpr static const char* name = "CertificateExpired";
504 using cb_type = void(const std::string& /*certId*/);
505 };
507 {
508 constexpr static const char* name = "CertificateStateChanged";
509 using cb_type = void(const std::string& /*account_id*/,
510 const std::string& /*certId*/,
511 const std::string& /*state*/);
512 };
514 {
515 constexpr static const char* name = "MediaParametersChanged";
516 using cb_type = void(const std::string& /*accountId*/);
517 };
519 {
520 constexpr static const char* name = "MigrationEnded";
521 using cb_type = void(const std::string& /*accountId*/, const std::string& /*state*/);
522 };
524 {
525 constexpr static const char* name = "DeviceRevocationEnded";
526 using cb_type = void(const std::string& /*accountId*/, const std::string& /*device*/, int /*status*/);
527 };
529 {
530 constexpr static const char* name = "AccountProfileReceived";
531 using cb_type = void(const std::string& /*accountId*/,
532 const std::string& displayName,
533 const std::string& /*userPhoto*/);
534 };
539#if defined(__ANDROID__) || (defined(TARGET_OS_IOS) && TARGET_OS_IOS)
540 struct LIBJAMI_PUBLIC GetHardwareAudioFormat
541 {
542 constexpr static const char* name = "GetHardwareAudioFormat";
543 using cb_type = void(std::vector<int32_t>* /* params_ret */);
544 };
545#endif
546#if defined(__ANDROID__) || (defined(TARGET_OS_IOS) && TARGET_OS_IOS)
547 struct LIBJAMI_PUBLIC GetAppDataPath
548 {
549 constexpr static const char* name = "GetAppDataPath";
550 using cb_type = void(const std::string& name, std::vector<std::string>* /* path_ret */);
551 };
552 struct LIBJAMI_PUBLIC GetDeviceName
553 {
554 constexpr static const char* name = "GetDeviceName";
555 using cb_type = void(std::vector<std::string>* /* path_ret */);
556 };
557#endif
559 {
560 constexpr static const char* name = "HardwareDecodingChanged";
561 using cb_type = void(bool /* state */);
562 };
564 {
565 constexpr static const char* name = "HardwareEncodingChanged";
566 using cb_type = void(bool /* state */);
567 };
569 {
570 constexpr static const char* name = "MessageSend";
571 using cb_type = void(const std::string&);
572 };
573};
574
575} // namespace libjami
#define LIBJAMI_PUBLIC
Definition def.h:42
std::vector< std::string > getDefaultModerators(const std::string &accountId)
Get default moderators for an account.
bool unpinCertificate(const std::string &accountId, const std::string &certId)
void setRingingTimeout(int32_t timeout)
void muteRingtone(bool mute)
std::vector< std::string > pinCertificate(const std::string &accountId, const std::vector< uint8_t > &certificate, bool local)
std::vector< Message > getLastMessages(const std::string &accountId, const uint64_t &base_timestamp)
void setAudioPlugin(const std::string &audioPlugin)
void setActiveCodecList(const std::string &accountId, const std::vector< unsigned > &list)
void setAccountDetails(const std::string &accountId, const std::map< std::string, std::string > &details)
void setHistoryLimit(int32_t days)
void setAccountsOrder(const std::string &order)
void setVolume(const std::string &device, double value)
std::vector< std::map< std::string, std::string > > getChannelList(const std::string &accountId, const std::string &connectionId)
std::vector< unsigned > getCodecList()
Send the list of all codecs loaded to the client through DBus.
bool isLocalModeratorsEnabled(const std::string &accountId)
Get local moderators state.
void setRecordPath(const std::string &recPath)
bool setCertificateStatus(const std::string &accountId, const std::string &certId, const std::string &ststr)
bool setAudioManager(const std::string &api)
uint64_t sendAccountTextMessage(const std::string &accountId, const std::string &to, const std::map< std::string, std::string > &payloads, int32_t flags)
void setAudioRingtoneDevice(int32_t index)
std::string getAddrFromInterfaceName(const std::string &interface)
bool lookupName(const std::string &account, const std::string &nameserver, const std::string &name)
int32_t getRecordQuality()
std::vector< std::string > getAudioPluginList()
void loadAccountAndConversation(const std::string &accountId, bool loadAll, const std::string &convId)
bool searchUser(const std::string &account, const std::string &query)
int32_t getAudioOutputDeviceIndex(const std::string &name)
void setPushNotificationToken(const std::string &token)
Set the device push notification token (for all accounts).
void setAudioMeterState(const std::string &id, bool state)
Enables/disables an audio meter for the specified @id.
bool confirmAddDevice(const std::string &accountId, uint32_t op_id)
void setIsAlwaysRecording(bool rec)
int32_t getRingingTimeout()
std::vector< std::map< std::string, std::string > > getConversationTrackedMembers(const std::string &accountId, const std::string &conversationId)
bool setCodecDetails(const std::string &accountId, const unsigned &codecId, const std::map< std::string, std::string > &details)
void mutePlayback(bool mute)
void sendTrustRequest(const std::string &accountId, const std::string &to, const std::vector< uint8_t > &payload)
void pushNotificationReceived(const std::string &from, const std::map< std::string, std::string > &data)
To be called by clients with relevant data when a push notification is received.
void registerConfHandlers(const std::map< std::string, std::shared_ptr< CallbackWrapperBase > > &handlers)
std::vector< std::string > getPinnedCertificates(const std::string &accountId)
std::map< std::string, std::string > getCertificateDetailsPath(const std::string &accountId, const std::string &certificate, const std::string &privateKey, const std::string &privateKeyPassword)
std::vector< std::string > getAccountList()
bool isAllModerators(const std::string &accountId)
Get all moderators state.
std::vector< unsigned > getActiveCodecList(const std::string &accountId)
std::vector< std::string > getSupportedAudioManagers()
std::map< std::string, std::string > getContactDetails(const std::string &accountId, const std::string &uri)
int32_t getAudioInputDeviceIndex(const std::string &name)
void updateProfile(const std::string &accountId, const std::string &displayName, const std::string &avatar, const std::string &fileType, int32_t flag)
void setAccountActive(const std::string &accountId, bool enable, bool shutdownConnections)
std::map< std::string, std::string > getCodecDetails(const std::string &accountId, const unsigned &codecId)
std::string addAccount(const std::map< std::string, std::string > &details, const std::string &accountId)
int32_t addDevice(const std::string &accountId, const std::string &uri)
bool acceptTrustRequest(const std::string &accountId, const std::string &from)
void setIsComposing(const std::string &accountId, const std::string &conversationUri, bool isWriting)
void setRecordPreview(bool rec)
void muteCapture(bool mute)
bool revokeDevice(const std::string &accountId, const std::string &deviceId, const std::string &scheme, const std::string &password)
bool changeAccountPassword(const std::string &accountId, const std::string &password_old, const std::string &password_new)
void setResourceDirPath(const std::string &resourceDir)
Set the resource directory path.
void setAudioInputDevice(int32_t index)
std::string getCurrentAudioOutputPlugin()
std::vector< std::string > getAllIpInterface()
bool pinRemoteCertificate(const std::string &accountId, const std::string &certId)
void setPushNotificationTopic(const std::string &topic)
Set the topic for ios bundle_id for ios 14.5 and higher bundle_id.voip for ios prior 14....
double getVolume(const std::string &device)
void setAudioOutputDevice(int32_t index)
std::vector< std::string > getCertificatesByStatus(const std::string &accountId, const std::string &ststr)
void muteDtmf(bool mute)
std::map< std::string, std::string > getCertificateDetails(const std::string &accountId, const std::string &certificate)
std::vector< std::map< std::string, std::string > > getCredentials(const std::string &accountId)
std::string getRecordPath()
bool isAudioMeterActive(const std::string &id)
Returns whether or not the audio meter is enabled for ring buffer @id.
bool getIsAlwaysRecording()
std::vector< std::string > getAllIpInterfaceByName()
void sendRegister(const std::string &accountId, bool enable)
std::string getNoiseSuppressState()
bool exportToFile(const std::string &accountId, const std::string &destinationPath, const std::string &scheme, const std::string &password)
int32_t getHistoryLimit()
void setNoiseSuppressState(const std::string &state)
bool lookupAddress(const std::string &account, const std::string &nameserver, const std::string &address)
std::vector< std::map< std::string, std::string > > getConnectionList(const std::string &accountId, const std::string &conversationId)
bool registerName(const std::string &account, const std::string &name, const std::string &scheme, const std::string &password)
std::vector< std::string > getAudioInputDeviceList()
bool isPasswordValid(const std::string &accountId, const std::string &password)
std::vector< uint8_t > getPasswordKey(const std::string &accountID, const std::string &password)
std::vector< std::string > getCurrentAudioDevicesIndex()
std::vector< std::map< std::string, std::string > > getTrustRequests(const std::string &accountId)
void setVoiceActivityDetectionState(bool state)
void setAgcState(bool enabled)
void enableLocalModerators(const std::string &accountId, bool isModEnabled)
Enable/disable local moderators for conferences.
void addContact(const std::string &accountId, const std::string &uri)
std::map< std::string, std::string > getKnownRingDevices(const std::string &accountId)
std::string getEchoCancellationState()
std::vector< std::map< std::string, std::string > > getConversationConnectivity(const std::string &accountId, const std::string &conversationId)
bool getVoiceActivityDetectionState()
void removeAccount(const std::string &accountId)
void setRecordQuality(int32_t quality)
std::map< std::string, std::string > getAccountDetails(const std::string &accountId)
bool provideAccountAuthentication(const std::string &accountId, const std::string &credentialsFromUser, const std::string &scheme)
std::vector< std::string > getSupportedTlsMethod()
bool discardTrustRequest(const std::string &accountId, const std::string &from)
void setAllModerators(const std::string &accountId, bool allModerators)
Enable/disable all moderators for conferences.
int getMessageStatus(uint64_t messageId)
std::vector< std::string > getAudioOutputDeviceList()
std::map< std::string, std::string > getVolatileAccountDetails(const std::string &accountId)
void setCredentials(const std::string &accountId, const std::vector< std::map< std::string, std::string > > &details)
bool setMessageDisplayed(const std::string &accountId, const std::string &conversationUri, const std::string &messageId, int status)
void pinCertificatePath(const std::string &accountId, const std::string &path)
std::map< std::string, std::string > getAccountTemplate(const std::string &accountType)
This function is used as a base for new accounts for clients that support it.
void removeContact(const std::string &accountId, const std::string &uri, bool ban)
std::map< std::string, std::string > validateCertificate(const std::string &accountId, const std::string &certificate)
std::map< std::string, std::string > getNearbyPeers(const std::string &accountId)
bool cancelAddDevice(const std::string &accountId, uint32_t op_id)
std::vector< std::map< std::string, std::string > > getContacts(const std::string &accountId)
void setPushNotificationConfig(const std::map< std::string, std::string > &data)
void monitor(bool continuous)
unsigned unpinCertificatePath(const std::string &accountId, const std::string &path)
std::vector< std::string > getSupportedCiphers(const std::string &accountId)
void setDefaultModerator(const std::string &accountId, const std::string &peerURI, bool state)
Add/remove default moderator for conferences.
std::map< std::string, std::string > validateCertificatePath(const std::string &accountId, const std::string &certificate, const std::string &privateKey, const std::string &privateKeyPass, const std::string &caList)
std::string getAudioManager()
void setEchoCancellationState(const std::string &state)
void(const std::string &id, float level) cb_type
void(const std::string &, const std::map< std::string, std::string > &) cb_type
void(const std::string &, const std::string &, const std::string &, const std::string &, int) cb_type
void(const std::string &, const std::string &displayName, const std::string &) cb_type
void(const std::string &, const std::string &, const std::vector< std::map< std::string, std::string > > &) cb_type
void(const std::string &, uint32_t, int, const std::map< std::string, std::string > &) cb_type
void(const std::string &, const std::vector< std::string > &) cb_type
void(const std::string &, const std::string &, const std::string &) cb_type
void(const std::string &, const std::string &, const std::string &, int) cb_type
void(const std::string &, const std::string &, bool confirmed) cb_type
void(const std::string &, const std::string &, bool banned) cb_type
void(const std::string &, int, const std::map< std::string, std::string > &) cb_type
void(const std::string &, const std::string &, int) cb_type
These are special getters for Android and UWP, so the daemon can retrieve information only accessible...
void(const std::string &, const std::string &, const std::string &, const std::map< std::string, std::string > &) cb_type
void(const std::string &, const std::string &, const std::string &, const std::vector< uint8_t > &payload, time_t received) cb_type
void(const std::string &, const std::map< std::string, std::string > &devices) cb_type
void(const std::string &, const std::string &) cb_type
void(const std::string &, int state, const std::string &name) cb_type
void(const std::string &, const std::string &) cb_type
void(const std::string &, const std::string &, const std::string &) cb_type
void(const std::string &, const std::string &, int state, const std::string &, const std::string &) cb_type
void(const std::string &, const std::string &, int, const std::string &) cb_type
void(const std::string &, int state, const std::string &, const std::vector< std::map< std::string, std::string > > &) cb_type
void(const std::string &, const std::map< std::string, std::string > &) cb_type
std::map< std::string, std::string > payloads