--- /dev/null
+HandsFree Profile Audio Gateway diagram
+=======================================
+
+This diagram explains how oFono manages HFP AG.
+
+AT commands and unsolicited results are managed in their related atom (eg. ATA
+is managed in voicecall atom).
+The emulator atom is managing AT commands or unsolicited results that are not
+falling into a specific atom.
+
+1) HFP AG plugin registers a HFP AG server as soon as a voicecall atom exist.
+2) When a connection occurs on this server, HFP AG plugin creates and registers
+ an emulator atom.
+3) Emulator atom will start a GAtServer and registers non-atom-specific
+ AT commands to it.
+4) On emulator atom registration, voice call related atoms (voicecall, network
+ and sim) register AT callbacks they managed through emulator atom.
+
+
+*===========* *-----------------*
+| | Register | |
+| BlueZ |<---------------| HFP AG plugin |
+| | SDP record | |
+*===========* *-----------------*
+ |
+ | Start emulator on connection
+ |
+ V
+ *-----------------*
+ | |
+ *-------->| Emulator Atom |
+ | | |
+ | *-----------------*
+ | |
+ Register | | Register AT commands
+ AT | V
+ callbacks | *-----------------*
+ | | |
+ | | GAtServer |
+ | | |
+ | *-----------------*
+ |
+ *---------------------*-------------------*
+ | | |
+ *----------------* *--------------* *-------------*
+ | | | | | |
+ | Voicecall atom | | Network atom | | SIM atom |
+ | | | | | |
+ *----------------* *--------------* *-------------*