Mercurial > prosody-modules
annotate mod_voipms_carddav/README.md @ 6562:5da6fb562df9 default tip
mod_unified_push: Fix push error handling (fixes #2000)
Use the error object that send_iq() passes
as an argument to it's reject callback instead of attempting
and failing to do the parsing in the callback itself.
| author | kmq |
|---|---|
| date | Mon, 06 Jul 2026 14:23:57 +0200 |
| parents | f4eba826a308 |
| children |
| rev | line source |
|---|---|
|
6309
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
1 --- |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
2 labels: |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
3 - 'Stage-Alpha' |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
4 - 'Type-Web' |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
5 summary: Sync contacts from CardDAV in mod_voipms format. |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
6 rockspec: |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
7 build: |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
8 modules: |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
9 mod_voipms_carddav: mod_voipms_carddav.lua |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
10 ... |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
11 |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
12 Introduction |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
13 ============ |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
14 |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
15 This is a Prosody module to periodically sync virtual contacts via CardDAV to a roster. It handles the format for contacts produced by the mod_voipms module. It treats contacts with multiple numbers as distinct contacts with a type (e.g. cell, home, work). Further, for each DID, it will create a separate contact (and group) to denote the DID number it is associated with. |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
16 |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
17 Note: Unlike the mod_voip.ms module, which you may run on a VirtualHost like "sms.example.com", this module should be enabled on the host that users login to. This is because it hooks the 'roster-load' function to inject virtual contacts, and these events will not be seen on subdomains. When building contact JIDs for each contact, it will use the module.host by default. If you are using "sms.example.com" for the mod_voip.ms module, you should set 'voipms_carddav_domain' to match. |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
18 |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
19 Configuration |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
20 ============= |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
21 |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
22 | option | type | default | description |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
23 |-----------------------------------|--------|------------------------|------------| |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
24 | voipms\_carddav\_contact\_format | string | [%alias] %name (%type) | Format to display contacts ([Work] John Smith (cell)) |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
25 | voipms\_carddav\_domain | string | module.host | Domain part of JID |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
26 | voipms\_carddav\_jid\_map | table | table | nil | JID->DIDs/CardDAV |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
27 | voipms\_carddav\_sync\_interval | number | 86400 | Interval (in seconds) to sync CardDAV |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
28 ``` |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
29 VirtualHost "example.com" |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
30 modules_enabled = { |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
31 "voipms_carddav"; |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
32 } |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
33 voipms_carddav_contact_format = "[%alias] %name (%type)" |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
34 voipms_carddav_domain = "sms.example.com" |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
35 voipms_carddav_jid_map = { |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
36 ["john@example.com"] = { |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
37 dids = { |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
38 ["+10345678901"] = "Home", |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
39 ["+10473828482"] = "Work", |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
40 }, |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
41 carddav = { |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
42 username = "john", |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
43 password = "some_password", |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
44 url = "https://cloud.example.com/remote.php/dav/addressbooks/users/john/contacts/" |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
45 } |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
46 }, |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
47 ["jane@example.com"] = { |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
48 dids = { |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
49 ["+10484828493"] = "Personal", |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
50 ["+10483829293"] = "Professional", |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
51 }, |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
52 carddav = { |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
53 username = "john", |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
54 password = "some_password", |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
55 url = "https://cloud.example.com/remote.php/dav/addressbooks/users/john/contacts/" |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
56 } |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
57 } |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
58 } |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
59 voipms_carddav_sync_interval = 86400 |
|
f4eba826a308
mod_voipms_carddav: New module to sync contacts from CardDAV in mod_voipms format
Chaz Kettleson <chaz@pyr3x.com>
parents:
diff
changeset
|
60 ``` |
