summaryrefslogtreecommitdiff
path: root/docs/manual/smsd/overview.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/manual/smsd/overview.rst')
-rw-r--r--docs/manual/smsd/overview.rst51
1 files changed, 51 insertions, 0 deletions
diff --git a/docs/manual/smsd/overview.rst b/docs/manual/smsd/overview.rst
new file mode 100644
index 0000000..df3121a
--- /dev/null
+++ b/docs/manual/smsd/overview.rst
@@ -0,0 +1,51 @@
+Overview
+========
+
+Gammu SMS Daemon is a program that periodically scans GSM modem for received
+messages, stores them in defined storage and also sends messages enqueued in
+this storage.
+
+Overall schema
+--------------
+
+The interactions of SMS Daemon and related components can be seen on following
+picture.
+
+.. graphviz::
+
+ digraph smsdinteractions {
+ "gammu-smsd-inject" [shape=box];
+ "gammu-smsd" [shape=box];
+ "Run on receive" [shape=box, style=dotted];
+ "GSM modem" [shape=box, style=dashed];
+ "gammu-smsd-monitor" [shape=box];
+ "Service\nstorage" [shape=doublecircle];
+ "Kalkun" [shape=box, style=dotted];
+ "gammu-smsd" -> "GSM modem" [label="Outgoing"];
+ "GSM modem" -> "gammu-smsd" [label="Incoming"];
+ "gammu-smsd" -> "Service\nstorage" [label="Save"];
+ "Service\nstorage" -> "gammu-smsd" [label="Read"];
+ "gammu-smsd" -> "Run on receive" [label="Execute"];
+ "Service\nstorage" -> "Run on receive" [label="Read"];
+ "Kalkun" -> "Service\nstorage" [label="Inject"];
+ "Service\nstorage" -> "Kalkun" [label="Read"];
+ "gammu-smsd-inject" -> "Service\nstorage" [label="Inject"];
+ "gammu-smsd" -> "gammu-smsd-monitor" [label="Monitor"];
+ }
+
+SMSD operation
+--------------
+
+The SMSD operation consist of several steps.
+
+1. Process command line options.
+2. Configure backend service.
+3. Main loop is executed until it is signalled to be terminated.
+ 1. Try to connect to phone if not connected.
+ 2. Check for security code if configured (configured by ``CheckSecurity``).
+ 3. Check for received messages (frequency configured by ``ReceiveFrequency``).
+ 4. Check for reset of the phone if configured (frequency configured by ``ResetFrequency``).
+ 5. Check for messages to send (frequency configured by ``CommTimeout``).
+ 6. Check phone status (frequency configured by ``StatusFrequency``).
+ 7. Sleep for defined time (``LoopSleep``).
+4. Backend service is freed.