Ring Daemon 16.0.0
Loading...
Searching...
No Matches
configurationmanager_interface.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2004-2025 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#include "security_const.h"
29
30#ifdef __APPLE__
31#include <TargetConditionals.h>
32#endif
33
34namespace libjami {
35
36[[deprecated("Replaced by registerSignalHandlers")]] LIBJAMI_PUBLIC void registerConfHandlers(
37 const std::map<std::string, std::shared_ptr<CallbackWrapperBase>>&);
38
40{
41 std::string from;
42 std::map<std::string, std::string> payloads;
43 uint64_t received;
44};
45
46LIBJAMI_PUBLIC std::map<std::string, std::string> getAccountDetails(const std::string& accountId);
47LIBJAMI_PUBLIC std::map<std::string, std::string> getVolatileAccountDetails(
48 const std::string& accountId);
49LIBJAMI_PUBLIC void setAccountDetails(const std::string& accountId,
50 const std::map<std::string, std::string>& details);
51LIBJAMI_PUBLIC void setAccountActive(const std::string& accountId,
52 bool active,
53 bool shutdownConnections = false);
54LIBJAMI_PUBLIC void loadAccountAndConversation(const std::string& accountId,
55 bool loadAll,
56 const std::string& convId);
57LIBJAMI_PUBLIC std::map<std::string, std::string> getAccountTemplate(const std::string& accountType);
58LIBJAMI_PUBLIC std::string addAccount(const std::map<std::string, std::string>& details,
59 const std::string& accountId = {});
60LIBJAMI_PUBLIC void monitor(bool continuous);
61LIBJAMI_PUBLIC std::vector<std::map<std::string, std::string>> getConnectionList(
62 const std::string& accountId, const std::string& conversationId);
63LIBJAMI_PUBLIC std::vector<std::map<std::string, std::string>> getChannelList(
64 const std::string& accountId, const std::string& connectionId);
65
66LIBJAMI_PUBLIC bool provideAccountAuthentication(const std::string& accountId,
67 const std::string& credentialsFromUser,
68 const std::string& scheme);
69
70LIBJAMI_PUBLIC int32_t addDevice(const std::string& accountId, const std::string& uri);
71LIBJAMI_PUBLIC bool confirmAddDevice(const std::string& accountId, uint32_t op_id);
72LIBJAMI_PUBLIC bool cancelAddDevice(const std::string& accountId, uint32_t op_id);
73
74LIBJAMI_PUBLIC bool exportToFile(const std::string& accountID,
75 const std::string& destinationPath,
76 const std::string& scheme = {},
77 const std::string& password = {});
78LIBJAMI_PUBLIC bool revokeDevice(const std::string& accountId,
79 const std::string& deviceId,
80 const std::string& scheme = {},
81 const std::string& password = {});
82LIBJAMI_PUBLIC std::map<std::string, std::string> getKnownRingDevices(const std::string& accountId);
83LIBJAMI_PUBLIC bool changeAccountPassword(const std::string& accountId,
84 const std::string& password_old,
85 const std::string& password_new);
86LIBJAMI_PUBLIC bool isPasswordValid(const std::string& accountId, const std::string& password);
87LIBJAMI_PUBLIC std::vector<uint8_t> getPasswordKey(const std::string& accountId,
88 const std::string& password);
89
90LIBJAMI_PUBLIC bool lookupName(const std::string& account,
91 const std::string& nameserver,
92 const std::string& name);
93LIBJAMI_PUBLIC bool lookupAddress(const std::string& account,
94 const std::string& nameserver,
95 const std::string& address);
96LIBJAMI_PUBLIC bool registerName(const std::string& account,
97 const std::string& name,
98 const std::string& scheme = {},
99 const std::string& password = {});
100LIBJAMI_PUBLIC bool searchUser(const std::string& account, const std::string& query);
101
102LIBJAMI_PUBLIC void removeAccount(const std::string& accountId);
103LIBJAMI_PUBLIC std::vector<std::string> getAccountList();
104LIBJAMI_PUBLIC void sendRegister(const std::string& accountId, bool enable);
106LIBJAMI_PUBLIC uint64_t sendAccountTextMessage(const std::string& accountId,
107 const std::string& to,
108 const std::map<std::string, std::string>& payloads,
109 int32_t flags);
110LIBJAMI_PUBLIC bool cancelMessage(const std::string& accountId, uint64_t message);
111LIBJAMI_PUBLIC std::vector<Message> getLastMessages(const std::string& accountId,
112 const uint64_t& base_timestamp);
113LIBJAMI_PUBLIC std::map<std::string, std::string> getNearbyPeers(const std::string& accountId);
114LIBJAMI_PUBLIC void updateProfile(const std::string& accountId,
115 const std::string& displayName,
116 const std::string& avatar,
117 const std::string& fileType,
118 int32_t flag);
119LIBJAMI_PUBLIC int getMessageStatus(uint64_t id);
120LIBJAMI_PUBLIC int getMessageStatus(const std::string& accountId, uint64_t id);
121LIBJAMI_PUBLIC void setIsComposing(const std::string& accountId,
122 const std::string& conversationUri,
123 bool isWriting);
124LIBJAMI_PUBLIC bool setMessageDisplayed(const std::string& accountId,
125 const std::string& conversationUri,
126 const std::string& messageId,
127 int status);
128
129LIBJAMI_PUBLIC std::vector<unsigned> getCodecList();
130LIBJAMI_PUBLIC std::vector<std::string> getSupportedTlsMethod();
131LIBJAMI_PUBLIC std::vector<std::string> getSupportedCiphers(const std::string& accountId);
132LIBJAMI_PUBLIC std::map<std::string, std::string> getCodecDetails(const std::string& accountId,
133 const unsigned& codecId);
134LIBJAMI_PUBLIC bool setCodecDetails(const std::string& accountId,
135 const unsigned& codecId,
136 const std::map<std::string, std::string>& details);
137LIBJAMI_PUBLIC std::vector<unsigned> getActiveCodecList(const std::string& accountId);
138
139LIBJAMI_PUBLIC void setActiveCodecList(const std::string& accountId,
140 const std::vector<unsigned>& list);
141
142LIBJAMI_PUBLIC std::vector<std::string> getAudioPluginList();
143LIBJAMI_PUBLIC void setAudioPlugin(const std::string& audioPlugin);
144LIBJAMI_PUBLIC std::vector<std::string> getAudioOutputDeviceList();
145LIBJAMI_PUBLIC void setAudioOutputDevice(int32_t index);
147LIBJAMI_PUBLIC void setAudioInputDevice(int32_t index);
148LIBJAMI_PUBLIC void setAudioRingtoneDevice(int32_t index);
149LIBJAMI_PUBLIC std::vector<std::string> getAudioInputDeviceList();
150LIBJAMI_PUBLIC std::vector<std::string> getCurrentAudioDevicesIndex();
151LIBJAMI_PUBLIC int32_t getAudioInputDeviceIndex(const std::string& name);
152LIBJAMI_PUBLIC int32_t getAudioOutputDeviceIndex(const std::string& name);
155LIBJAMI_PUBLIC void setNoiseSuppressState(const std::string& state);
156
158LIBJAMI_PUBLIC void setAgcState(bool enabled);
159
160LIBJAMI_PUBLIC void muteDtmf(bool mute);
162
164LIBJAMI_PUBLIC void muteCapture(bool mute);
166LIBJAMI_PUBLIC void mutePlayback(bool mute);
168LIBJAMI_PUBLIC void muteRingtone(bool mute);
169
170LIBJAMI_PUBLIC std::vector<std::string> getSupportedAudioManagers();
171LIBJAMI_PUBLIC std::string getAudioManager();
172LIBJAMI_PUBLIC bool setAudioManager(const std::string& api);
173
174LIBJAMI_PUBLIC std::string getRecordPath();
175LIBJAMI_PUBLIC void setRecordPath(const std::string& recPath);
179LIBJAMI_PUBLIC void setRecordPreview(bool rec);
182
183LIBJAMI_PUBLIC void setHistoryLimit(int32_t days);
185
186LIBJAMI_PUBLIC void setRingingTimeout(int32_t timeout);
188
189LIBJAMI_PUBLIC void setAccountsOrder(const std::string& order);
190
191LIBJAMI_PUBLIC std::vector<std::map<std::string, std::string>> getCredentials(
192 const std::string& accountId);
193LIBJAMI_PUBLIC void setCredentials(const std::string& accountId,
194 const std::vector<std::map<std::string, std::string>>& details);
195
196LIBJAMI_PUBLIC std::string getAddrFromInterfaceName(const std::string& iface);
197
198LIBJAMI_PUBLIC std::vector<std::string> getAllIpInterface();
199LIBJAMI_PUBLIC std::vector<std::string> getAllIpInterfaceByName();
200
201LIBJAMI_PUBLIC void setVolume(const std::string& device, double value);
202LIBJAMI_PUBLIC double getVolume(const std::string& device);
203
204/*
205 * Security
206 */
207LIBJAMI_PUBLIC std::map<std::string, std::string> validateCertificate(
208 const std::string& accountId, const std::string& certificate);
209LIBJAMI_PUBLIC std::map<std::string, std::string> validateCertificatePath(
210 const std::string& accountId,
211 const std::string& certificatePath,
212 const std::string& privateKey,
213 const std::string& privateKeyPassword,
214 const std::string& caList);
215
216LIBJAMI_PUBLIC std::map<std::string, std::string> getCertificateDetails(
217 const std::string& accountId, const std::string& certificate);
218LIBJAMI_PUBLIC std::map<std::string, std::string> getCertificateDetailsPath(
219 const std::string& accountId,
220 const std::string& certificatePath,
221 const std::string& privateKey,
222 const std::string& privateKeyPassword);
223
224LIBJAMI_PUBLIC std::vector<std::string> getPinnedCertificates(const std::string& accountId);
225
226LIBJAMI_PUBLIC std::vector<std::string> pinCertificate(const std::string& accountId,
227 const std::vector<uint8_t>& certificate,
228 bool local);
229LIBJAMI_PUBLIC bool unpinCertificate(const std::string& accountId, const std::string& certId);
230
231LIBJAMI_PUBLIC void pinCertificatePath(const std::string& accountId, const std::string& path);
232LIBJAMI_PUBLIC unsigned unpinCertificatePath(const std::string& accountId, const std::string& path);
233
234LIBJAMI_PUBLIC bool pinRemoteCertificate(const std::string& accountId, const std::string& certId);
235LIBJAMI_PUBLIC bool setCertificateStatus(const std::string& account,
236 const std::string& certId,
237 const std::string& status);
238LIBJAMI_PUBLIC std::vector<std::string> getCertificatesByStatus(const std::string& account,
239 const std::string& status);
240
241/* contact requests */
242LIBJAMI_PUBLIC std::vector<std::map<std::string, std::string>> getTrustRequests(
243 const std::string& accountId);
244LIBJAMI_PUBLIC bool acceptTrustRequest(const std::string& accountId, const std::string& from);
245LIBJAMI_PUBLIC bool discardTrustRequest(const std::string& accountId, const std::string& from);
246LIBJAMI_PUBLIC void sendTrustRequest(const std::string& accountId,
247 const std::string& to,
248 const std::vector<uint8_t>& payload = {});
249
250/* Contacts */
251
252LIBJAMI_PUBLIC void addContact(const std::string& accountId, const std::string& uri);
253LIBJAMI_PUBLIC void removeContact(const std::string& accountId, const std::string& uri, bool ban);
254LIBJAMI_PUBLIC std::map<std::string, std::string> getContactDetails(const std::string& accountId,
255 const std::string& uri);
256LIBJAMI_PUBLIC std::vector<std::map<std::string, std::string>> getContacts(
257 const std::string& accountId);
258
259/*
260 * Network connectivity
261 */
263
264/* Dht proxy */
265
271LIBJAMI_PUBLIC void setPushNotificationToken(const std::string& pushDeviceToken);
272
278LIBJAMI_PUBLIC void setPushNotificationTopic(const std::string& topic);
279
280LIBJAMI_PUBLIC void setPushNotificationConfig(const std::map<std::string, std::string>& data);
281
285LIBJAMI_PUBLIC void pushNotificationReceived(const std::string& from,
286 const std::map<std::string, std::string>& data);
287
293LIBJAMI_PUBLIC bool isAudioMeterActive(const std::string& id);
294
300LIBJAMI_PUBLIC void setAudioMeterState(const std::string& id, bool state);
301
305LIBJAMI_PUBLIC void setDefaultModerator(const std::string& accountId,
306 const std::string& peerURI,
307 bool state);
308
312LIBJAMI_PUBLIC std::vector<std::string> getDefaultModerators(const std::string& accountId);
313
317LIBJAMI_PUBLIC void enableLocalModerators(const std::string& accountId, bool isModEnabled);
318
322LIBJAMI_PUBLIC bool isLocalModeratorsEnabled(const std::string& accountId);
323
327LIBJAMI_PUBLIC void setAllModerators(const std::string& accountId, bool allModerators);
328
332LIBJAMI_PUBLIC bool isAllModerators(const std::string& accountId);
333
337LIBJAMI_PUBLIC void setResourceDirPath(const std::string& resourceDirPath);
338
340{
342 {
343 constexpr static const char* name = "audioDeviceEvent";
344 using cb_type = void(void);
345 };
346 // Linear audio level (between 0 and 1). To get level in dB: dB=20*log10(level)
348 {
349 constexpr static const char* name = "AudioMeter";
350 using cb_type = void(const std::string& id, float level);
351 };
352};
353
354// Configuration signal type definitions
356{
358 {
359 constexpr static const char* name = "VolumeChanged";
360 using cb_type = void(const std::string& /*device*/, double /*value*/);
361 };
363 {
364 constexpr static const char* name = "AccountsChanged";
365 using cb_type = void(void);
366 };
368 {
369 constexpr static const char* name = "Error";
370 using cb_type = void(int /*alert*/);
371 };
372
373 // used for client awareness of available link device jami-auth uri
375 {
376 constexpr static const char* name = "AddDeviceStateChanged";
377 using cb_type = void(const std::string& /*account_id*/,
378 uint32_t /*op_id */,
379 int /*state*/,
380 const std::map<std::string, std::string>& /*detail*/);
381 };
382 // used for link device authentication (password, error, etc.)
384 {
385 constexpr static const char* name = "DeviceAuthStateChanged";
386 using cb_type = void(const std::string& /*account_id*/,
387 int /*state*/,
388 const std::map<std::string, std::string>& /*detail*/);
389 };
390 // TODO: move those to AccountSignal in next API breakage
392 {
393 constexpr static const char* name = "AccountDetailsChanged";
394 using cb_type = void(const std::string& /*account_id*/,
395 const std::map<std::string, std::string>& /* details */);
396 };
398 {
399 constexpr static const char* name = "StunStatusFailed";
400 using cb_type = void(const std::string& /*account_id*/);
401 };
403 {
404 constexpr static const char* name = "RegistrationStateChanged";
405 using cb_type = void(const std::string& /*account_id*/,
406 const std::string& /*state*/,
407 int /*detailsCode*/,
408 const std::string& /*detailsStr*/);
409 };
411 {
412 constexpr static const char* name = "VolatileDetailsChanged";
413 using cb_type = void(const std::string& /*account_id*/,
414 const std::map<std::string, std::string>& /* details */);
415 };
417 {
418 constexpr static const char* name = "IncomingAccountMessage";
419 using cb_type = void(const std::string& /*account_id*/,
420 const std::string& /*from*/,
421 const std::string& /*message_id*/,
422 const std::map<std::string, std::string>& /*payloads*/);
423 };
425 {
426 constexpr static const char* name = "AccountMessageStatusChanged";
427 using cb_type = void(const std::string& /*account_id*/,
428 const std::string& /*conversation_id*/,
429 const std::string& /*peer*/,
430 const std::string& /*message_id*/,
431 int /*state*/);
432 };
434 {
435 constexpr static const char* name = "NeedsHost";
436 using cb_type = void(const std::string& /*account_id*/,
437 const std::string& /*conversation_id*/);
438 };
440 {
441 constexpr static const char* name = "ActiveCallsChanged";
442 using cb_type = void(const std::string& /*account_id*/,
443 const std::string& /*conversation_id*/,
444 const std::vector<std::map<std::string, std::string>>& /*activeCalls*/);
445 };
447 {
448 constexpr static const char* name = "ProfileReceived";
449 using cb_type = void(const std::string& /*account_id*/,
450 const std::string& /*from*/,
451 const std::string& /*vcard*/);
452 };
454 {
455 constexpr static const char* name = "ComposingStatusChanged";
456 using cb_type = void(const std::string& /*account_id*/,
457 const std::string& /*convId*/,
458 const std::string& /*from*/,
459 int /*status*/);
460 };
462 {
463 constexpr static const char* name = "IncomingTrustRequest";
464 using cb_type = void(const std::string& /*account_id*/,
465 const std::string& /*from*/,
466 const std::string& /*conversationId*/,
467 const std::vector<uint8_t>& payload,
468 time_t received);
469 };
471 {
472 constexpr static const char* name = "ContactAdded";
473 using cb_type = void(const std::string& /*account_id*/,
474 const std::string& /*uri*/,
475 bool confirmed);
476 };
478 {
479 constexpr static const char* name = "ContactRemoved";
480 using cb_type = void(const std::string& /*account_id*/,
481 const std::string& /*uri*/,
482 bool banned);
483 };
484 // struct LIBJAMI_PUBLIC ExportToPeer
485 // {
486 // constexpr static const char* name = "ExportToPeer";
487 // using cb_type = void(const std::string& /*account_id*/, const std::string& uri);
488 // };
490 {
491 constexpr static const char* name = "NameRegistrationEnded";
492 using cb_type = void(const std::string& /*account_id*/, int state, const std::string& name);
493 };
495 {
496 constexpr static const char* name = "KnownDevicesChanged";
497 using cb_type = void(const std::string& /*account_id*/,
498 const std::map<std::string, std::string>& devices);
499 };
501 {
502 constexpr static const char* name = "RegisteredNameFound";
503 using cb_type = void(const std::string& /*account_id*/,
504 const std::string& /*request_name*/,
505 int state,
506 const std::string& /*address*/,
507 const std::string& /*name*/);
508 };
510 {
511 constexpr static const char* name = "UserSearchEnded";
512 using cb_type = void(const std::string& /*account_id*/,
513 int state,
514 const std::string& /*query*/,
515 const std::vector<std::map<std::string, std::string>>& /*results*/);
516 };
518 {
519 constexpr static const char* name = "CertificatePinned";
520 using cb_type = void(const std::string& /*certId*/);
521 };
523 {
524 constexpr static const char* name = "CertificatePathPinned";
525 using cb_type = void(const std::string& /*path*/,
526 const std::vector<std::string>& /*certId*/);
527 };
529 {
530 constexpr static const char* name = "CertificateExpired";
531 using cb_type = void(const std::string& /*certId*/);
532 };
534 {
535 constexpr static const char* name = "CertificateStateChanged";
536 using cb_type = void(const std::string& /*account_id*/,
537 const std::string& /*certId*/,
538 const std::string& /*state*/);
539 };
541 {
542 constexpr static const char* name = "MediaParametersChanged";
543 using cb_type = void(const std::string& /*accountId*/);
544 };
546 {
547 constexpr static const char* name = "MigrationEnded";
548 using cb_type = void(const std::string& /*accountId*/, const std::string& /*state*/);
549 };
551 {
552 constexpr static const char* name = "DeviceRevocationEnded";
553 using cb_type = void(const std::string& /*accountId*/,
554 const std::string& /*device*/,
555 int /*status*/);
556 };
558 {
559 constexpr static const char* name = "AccountProfileReceived";
560 using cb_type = void(const std::string& /*accountId*/,
561 const std::string& displayName,
562 const std::string& /*userPhoto*/);
563 };
568#if defined(__ANDROID__) || (defined(TARGET_OS_IOS) && TARGET_OS_IOS)
569 struct LIBJAMI_PUBLIC GetHardwareAudioFormat
570 {
571 constexpr static const char* name = "GetHardwareAudioFormat";
572 using cb_type = void(std::vector<int32_t>* /* params_ret */);
573 };
574#endif
575#if defined(__ANDROID__) || (defined(TARGET_OS_IOS) && TARGET_OS_IOS)
576 struct LIBJAMI_PUBLIC GetAppDataPath
577 {
578 constexpr static const char* name = "GetAppDataPath";
579 using cb_type = void(const std::string& name, std::vector<std::string>* /* path_ret */);
580 };
581 struct LIBJAMI_PUBLIC GetDeviceName
582 {
583 constexpr static const char* name = "GetDeviceName";
584 using cb_type = void(std::vector<std::string>* /* path_ret */);
585 };
586#endif
588 {
589 constexpr static const char* name = "HardwareDecodingChanged";
590 using cb_type = void(bool /* state */);
591 };
593 {
594 constexpr static const char* name = "HardwareEncodingChanged";
595 using cb_type = void(bool /* state */);
596 };
598 {
599 constexpr static const char* name = "MessageSend";
600 using cb_type = void(const std::string&);
601 };
602};
603
604} // 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)
bool cancelMessage(const std::string &accountId, uint64_t messageId)
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()
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 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)
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(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