blob: fb76f19f7243f05af2a808de5664c54cf84498bf [file] [log] [blame]
Alexandre Lision864f9b82014-08-01 14:26:45 -04001/*
2 * Copyright (C) 2004-2013 Savoir-Faire Linux Inc.
3 * Author: Alexandre Savard <alexandre.savard@savoirfairelinux.com>
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, write to the Free Software
16 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17 *
18 * Additional permission under GNU GPL version 3 section 7:
19 *
20 * If you modify this program, or any covered work, by linking or
21 * combining it with the OpenSSL project's OpenSSL library (or a
22 * modified version of that library), containing parts covered by the
23 * terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.
24 * grants you additional permission to convey the resulting work.
25 * Corresponding Source for a non-source form of such a combination
26 * shall include the source code for the parts of OpenSSL used as well
27 * as that of the covered work.
28 */
29
30%header %{
Alexandre Lision9abb7c92014-08-04 19:22:55 -040031#include "sflphone.h"
Alexandre Lision864f9b82014-08-01 14:26:45 -040032
33class ConfigurationCallback {
34public:
Alexandre Lision719259d2014-08-07 12:10:13 -040035 virtual ~ConfigurationCallback(){}
Alexandre Lisionfc91a462014-08-07 18:21:07 -040036 virtual void configOnVolumeChange(const std::string& device, int value){}
37 virtual void configOnAccountsChange(void){}
38 virtual void configOnHistoryChange(void){}
39 virtual void configOnStunStatusFail(const std::string& account_id){}
40 virtual void configOnRegistrationStateChange(const std::string& account_id, int state){}
41 virtual void configOnSipRegistrationStateChange(const std::string& account_id, const std::string& state, int code){}
Tristan Matthews0811b002014-10-08 16:37:54 -040042 virtual void configOnVolatileAccountsChange(const std::string& account_id, const std::map<std::string, std::string>& details){}
Alexandre Lisionfc91a462014-08-07 18:21:07 -040043 virtual void configOnError(int alert){}
44 virtual std::vector<int32_t> configGetHardwareAudioFormat(void){}
Alexandre Lision864f9b82014-08-01 14:26:45 -040045};
Alexandre Lision864f9b82014-08-01 14:26:45 -040046%}
47
48%feature("director") ConfigurationCallback;
49
Alexandre Lision9abb7c92014-08-04 19:22:55 -040050std::map<std::string, std::string> sflph_config_get_account_details(const std::string& account_id);
51void sflph_config_set_account_details(const std::string& account_id, const std::map<std::string, std::string>& details);
52std::map<std::string, std::string> sflph_config_get_account_template(void);
53std::string sflph_config_add_account(const std::map<std::string, std::string>& details);
54void sflph_config_remove_account(const std::string& account_id);
55std::vector<std::string> sflph_config_get_account_list(void);
56void sflph_config_send_register(const std::string& account_id, bool enable);
57void sflph_config_register_all_accounts(void);
58std::map<std::string, std::string> sflph_config_get_tls_default_settings(void);
59std::vector<int> sflph_config_get_audio_codec_list(void);
60std::vector<std::string> sflph_config_get_supported_tls_method(void);
61std::vector<std::string> sflph_config_get_audio_codec_details(int payload);
62std::vector<int> sflph_config_get_active_audio_codec_list(const std::string& account_id);
63void sflph_config_set_active_audio_codec_list(const std::vector<std::string>& list, const std::string& account_id);
64std::vector<std::string> sflph_config_get_audio_plugin_list(void);
65void sflph_config_set_audio_plugin(const std::string& audio_plugin);
66std::vector<std::string> sflph_config_get_audio_output_device_list();
67void sflph_config_set_audio_output_device(int index);
68void sflph_config_set_audio_input_device(int index);
69void sflph_config_set_audio_ringtone_device(int index);
70std::vector<std::string> sflph_config_get_audio_input_device_list(void);
71std::vector<std::string> sflph_config_get_current_audio_devices_index(void);
72int sflph_config_get_audio_input_device_index(const std::string& name);
73int sflph_config_get_audio_output_device_index(const std::string& name);
74std::string sflph_config_get_current_audio_output_plugin(void);
75bool sflph_config_get_noise_suppress_state(void);
76void sflph_config_set_noise_suppress_state(bool state);
77bool sflph_config_is_agc_enabled(void);
78void sflph_config_enable_agc(bool enabled);
79void sflph_config_mute_dtmf(bool mute);
80bool sflph_config_is_dtmf_muted(void);
81bool sflph_config_is_capture_muted(void);
82void sflph_config_mute_capture(bool mute);
83bool sflph_config_is_playback_muted(void);
84void sflph_config_mute_playback(int mute);
85std::map<std::string, std::string> sflph_config_get_ringtone_list(void);
86std::string sflph_config_get_audio_manager(void);
87bool sflph_config_set_audio_manager(const std::string& api);
88std::vector<std::string> sflph_config_get_supported_audio_managers(void);
89int sflph_config_is_iax2_enabled(void);
90std::string sflph_config_get_record_path(void);
91void sflph_config_set_record_path(const std::string& path);
92bool sflph_config_is_always_recording(void);
93void sflph_config_set_always_recording(bool rec);
94void sflph_config_set_history_limit(int days);
95int sflph_config_get_history_limit(void);
96void sflph_config_clear_history(void);
97void sflph_config_set_accounts_order(const std::string& order);
98std::map<std::string, std::string> sflph_config_get_hook_settings(void);
99void sflph_config_set_hook_settings(const std::map<std::string, std::string>& settings);
100std::vector<std::map<std::string, std::string> > sflph_config_get_history(void);
101std::map<std::string, std::string> sflph_config_get_tls_settings();
102void sflph_config_set_tls_settings(const std::map< std::string, std::string >& settings);
103std::map<std::string, std::string> sflph_config_get_ip2ip_details(void);
104std::vector<std::map<std::string, std::string> > sflph_config_get_credentials(const std::string& account_id);
105void sflph_config_set_credentials(const std::string& account_id, const std::vector<std::map<std::string, std::string> >& details);
106std::string sflph_config_get_addr_from_interface_name(const std::string& interface);
107std::vector<std::string> sflph_config_get_all_ip_interface(void);
108std::vector<std::string> sflph_config_get_all_ip_interface_by_name(void);
109std::map<std::string, std::string> sflph_config_get_shortcuts();
110void sflph_config_set_shortcuts(const std::map<std::string, std::string>& shortcuts);
111void sflph_config_set_volume(const std::string& device, double value);
112double sflph_config_get_volume(const std::string& device);
113bool sflph_config_check_for_private_key(const std::string& pem_path);
114bool sflph_config_check_certificate_validity(const std::string& ca_path, const std::string& pem_path);
115bool sflph_config_check_hostname_certificate(const std::string& host, const std::string& port);
Alexandre Lision719259d2014-08-07 12:10:13 -0400116
117
118class ConfigurationCallback {
119public:
120 virtual ~ConfigurationCallback();
Alexandre Lision7b151702014-09-04 10:07:34 -0400121 virtual void configOnVolumeChange(const std::string& device, int value);
122 virtual void configOnAccountsChange(void);
123 virtual void configOnHistoryChange(void);
124 virtual void configOnStunStatusFail(const std::string& account_id);
125 virtual void configOnRegistrationStateChange(const std::string& account_id, int state);
126 virtual void configOnSipRegistrationStateChange(const std::string& account_id, const std::string& state, int code);
127 virtual void configOnError(int alert);
128 virtual std::vector<int32_t> configGetHardwareAudioFormat(void);
Alexandre Lision719259d2014-08-07 12:10:13 -0400129};
130