= Blueprint for the Messaging Module = Current design is here: * http://wiki.sahana.lk/doku.php?id=dev:msg_archi User Guide: * http://wiki.sahana.lk/doku.php?id=doc:message:english What we need is: * Contacts List * Admin UI for: * Email Settings * SMS Settings * CAP alerts: http://talksahana.com/2009/03/04/firefox-browser-cap-alerting-plugin-sahana-idea-for-gsoc2009/ * SMS alerts * SMS login / data entry / reports * [wiki:BluePrintMessagingModuleJ2ME J2ME client] === Email === tools.py has mail settings: {{{ mail=MailS3() # These settings should be made configurable as part of the Messaging Module mail.settings.server='mail:25' mail.sender='sahana@sahanapy.org' }}} & a function: {{{ mail.send(to, subject='None', message='None') }}} Can use this to send emails with dynamic data inserted into templates (like HTML pages): * http://groups.google.com/group/web2py/browse_thread/thread/f6c903f9c67cfe2e smtplib is required for sending HTML mails (MIME encoded): * http://groups.google.com/group/web2py/browse_thread/thread/3d8ed693dd2f29bc * Simple app for sending mails from a form (using smtplib): http://mdp.cti.depaul.edu/appliances/default/show/10 There is a Cron job to check the contents of the !OutBox & send pending messages. On Success it moves the message to the 'Sent' table: * http://web2py.com/examples/default/cron === SMS === The SMS Daemon to handle Inbound messages is a separate Python script. It can distinguish between simple messages (added to the !InBox of the Messaging Module) & those which are encoded in Binary XML (the output of XForms from the J2ME client). Q: Do we use Cron to check !OutBox & signal the daemon to send Pending messages? (as for email) Toolkits we can base on: * RapidSMS (Python-based): http://rapidsms.org * !PySerial: http://pyserial.wiki.sourceforge.net/pySerial * Gammu: http://www.gammu.org (Python-gammu: http://www.gammu.org/wiki/index.php?title=Gammu:Python-gammu) * Gnokii: http://www.gnokii.org (!PyGnokii: http://mobilehacking.org/index.php/PyGnokii) * Kannel: http://kannel.org (!PyKannel: http://mobilehacking.org/index.php/PyKannel) * SMSTools: http://smstools3.kekekasvi.com Hardware compatibility databases: * http://wiki.gnokii.org/index.php/Config * http://cihar.com/gammu/phonedb/ ---- BluePrints