blob: 6f9d1fbf94c47d8445857ac8c3e9c0e9b2b90022 [file] [log] [blame]
simon26e79f72022-10-05 22:16:08 -04001/*
2 * Copyright (C) 2022 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 Affero General Public License as
6 * published by the Free Software Foundation; either version 3 of the
7 * License, or (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 Affero General Public License for more details.
13 *
14 * You should have received a copy of the GNU Affero General Public
15 * License along with this program. If not, see
16 * <https://www.gnu.org/licenses/>.
17 */
18
simon06527b02022-10-01 15:01:47 -040019/**
20 * Account parameters
21 *
22 * See `jami-daemon/src/account_schema.h`
23 */
24export default interface AccountDetails {
25 // Common account parameters
26 'Account.type': string;
27 'Account.alias': string;
28 'Account.displayName': string;
29 'Account.mailbox': string;
30 'Account.enable': string;
31 'Account.autoAnswer': string;
32 'Account.sendReadReceipt': string;
33 'Account.rendezVous': string;
34 'Account.registrationExpire': string;
35 'Account.dtmfType': string;
36 'Account.ringtonePath': string;
37 'Account.ringtoneEnabled': string;
38 'Account.videoEnabled': string;
39 'Account.keepAliveEnabled': string;
40 'Account.presenceEnabled': string;
41 'Account.presencePublishSupported': string;
42 'Account.presenceSubscribeSupported': string;
43 'Account.presenceStatus': string;
44 'Account.presenceNote': string;
45
46 'Account.hostname': string;
47 'Account.username': string;
48 'Account.routeset': string;
49 'Account.allowIPAutoRewrite': string;
50 'Account.password': string;
51 'Account.realm': string;
52 'Account.useragent': string;
53 'Account.hasCustomUserAgent': string;
54 'Account.audioPortMin': string;
55 'Account.audioPortMax': string;
56 'Account.videoPortMin': string;
57 'Account.videoPortMax': string;
58
59 'Account.bindAddress': string;
60 'Account.localInterface': string;
61 'Account.publishedSameAsLocal': string;
62 'Account.localPort': string;
63 'Account.publishedPort': string;
64 'Account.publishedAddress': string;
65 'Account.upnpEnabled': string;
66 'Account.defaultModerators': string;
67 'Account.localModeratorsEnabled': string;
68 'Account.allModeratorEnabled': string;
69
70 // SIP specific parameters
71 'STUN.server': string;
72 'STUN.enable': string;
73 'TURN.server': string;
74 'TURN.enable': string;
75 'TURN.username': string;
76 'TURN.password': string;
77 'TURN.realm': string;
78
79 // SRTP specific parameters
80 'SRTP.enable': string;
81 'SRTP.keyExchange': string;
82 'SRTP.rtpFallback': string;
83
84 'TLS.listenerPort': string;
85 'TLS.enable': string;
86 'TLS.certificateListFile': string;
87 'TLS.certificateFile': string;
88 'TLS.privateKeyFile': string;
89 'TLS.password': string;
90 'TLS.method': string;
91 'TLS.ciphers': string;
92 'TLS.serverName': string;
93 'TLS.verifyServer': string;
94 'TLS.verifyClient': string;
95 'TLS.requireClientCertificate': string;
96 'TLS.negotiationTimeoutSec': string;
97
98 // DHT specific parameters
99 'DHT.port': string;
100 'DHT.PublicInCalls': string;
101
102 // Volatile parameters
103 'Account.registrationStatus': string;
104 'Account.registrationCode': string;
105 'Account.registrationDescription': string;
106 'Transport.statusCode': string;
107 'Transport.statusDescription': string;
108}
109
110/**
111 * Volatile properties
112 *
113 * See `jami-daemon/src/jami/account_const.h`
114 */
115export interface VolatileDetails {
116 'Account.active': string;
117 'Account.deviceAnnounced': string;
118 'Account.registeredName': string;
119}
120
121/**
122 * See `ConfProperties` in `jami-daemon/src/jami/account_const.h
123 */
124export interface AccountConfig {
125 id?: string;
126 type?: string;
127 alias?: string;
128 displayName?: string;
129 enable?: boolean;
130 mailbox?: string;
131 dtmfType?: string;
132 autoAnswer?: boolean;
133 sendReadReceipt?: string;
134 rendezVous?: boolean;
135 activeCallLimit?: string;
136 hostname?: string;
137 username?: string;
138 bindAddress?: string;
139 routeset?: string;
140 password?: string;
141 realm?: string;
142 localInterface?: string;
143 publishedSameAsLocal?: boolean;
144 localPort?: string;
145 publishedPort?: string;
146 publishedAddress?: string;
147 useragent?: string;
148 upnpEnabled?: boolean;
149 hasCustomUserAgent?: string;
150 allowCertFromHistory?: string;
151 allowCertFromContact?: string;
152 allowCertFromTrusted?: string;
153 archivePassword?: string;
154 archiveHasPassword?: string;
155 archivePath?: string;
156 archivePIN?: string;
157 deviceID?: string;
158 deviceName?: string;
159 proxyEnabled?: boolean;
160 proxyServer?: string;
161 proxyPushToken?: string;
162 keepAliveEnabled?: boolean;
163 peerDiscovery?: string;
164 accountDiscovery?: string;
165 accountPublish?: string;
166 managerUri?: string;
167 managerUsername?: string;
168 bootstrapListUrl?: string;
169 dhtProxyListUrl?: string;
170 defaultModerators?: string;
171 localModeratorsEnabled?: boolean;
172 allModeratorsEnabled?: boolean;
173 allowIPAutoRewrite?: string;
174
175 // Audio
176 audioPortMax?: string;
177 audioPortMin?: string;
178
179 // Video
180 videoEnabled?: boolean;
181 videoPortMax?: boolean;
182 videoPortMin?: string;
183
184 // Ringtone
185 ringtonePath?: string;
186 ringtoneEnabled?: boolean;
187}