From 55b1cfd09be73c58cdea868aa666e0c0fe70817b Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Mon, 2 Jun 2025 07:58:25 +0200 Subject: [PATCH] #441 SMS sending --- .../manual-sources/chapter-configuration.xml | 86 ++++++++++++++++++ .../manual-sources/images/configGeneral12.png | Bin 0 -> 18833 bytes 2 files changed, 86 insertions(+) create mode 100644 lam/docs/manual-sources/images/configGeneral12.png diff --git a/lam/docs/manual-sources/chapter-configuration.xml b/lam/docs/manual-sources/chapter-configuration.xml index 1ea0e08c7..100dc3f03 100644 --- a/lam/docs/manual-sources/chapter-configuration.xml +++ b/lam/docs/manual-sources/chapter-configuration.xml @@ -296,6 +296,92 @@ +
+ SMS options (LAM Pro) + + You can send SMS messages to your users for password resets. To + activate this feature you need to have an account at one of the + supported SMS gateways. + + After all options are filled you can test your settings and check + if you get an SMS delivered to the entered mobile number. + + + + + + Common options + + + + Default country prefix: please enter your country prefix for + telephone numbers. It will be applied whenever no country prefix is + part of the user's telephone number. + + + + Mobile phone attributes: LAM will check these attributes to + find the user's mobile telephone number. The first number that is + found will be used. + + + + GatewayAPI + + + + Token: please enter your API token (not key/secret) + + + + SMSAPI + + + + Token: please enter your API token + + + + SMSBOX + + + + API key: please enter your API key (pub-...) + + + + Sweego + + + + API key: please enter your API key + + + + Twilio + + + + Account id: this is your account SID (e.g. AC...) + + + + Token: please enter your API token (not API SID/secret) + + + + From: this can be a mobile number (needs to be registered in + Twilio) or the ID of a messaging service (MG...). The messaging + service allows to define a textual sender name. + + +
+
WebAuthn/FIDO2 devices diff --git a/lam/docs/manual-sources/images/configGeneral12.png b/lam/docs/manual-sources/images/configGeneral12.png new file mode 100644 index 0000000000000000000000000000000000000000..918879f760986c66431a201f2b0440fbf65ffef0 GIT binary patch literal 18833 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