{"id":323,"date":"2009-01-11T15:54:09","date_gmt":"2009-01-11T22:54:09","guid":{"rendered":"http:\/\/www.bigroom.org\/wordpress\/?page_id=323"},"modified":"2009-06-15T19:45:13","modified_gmt":"2009-06-16T02:45:13","slug":"now-where-was-i-gps-asterisk-microblogging","status":"publish","type":"page","link":"https:\/\/www.bigroom.org\/wordpress\/?page_id=323","title":{"rendered":"Now Where Was I? (GPS + Asterisk + Microblogging)"},"content":{"rendered":"<p>(Watch this page for updates&#8230;The version you see now is the first time I&#8217;ve tried to organize my idea in print.)<\/p>\n<p>Notes on the development of a geomicroblogging system, written in PHP and intended to interface with Asterisk and Laconica (at the very least) in addition to having its own web-based interface.<\/p>\n<p>In summary: the core idea is to allow &#8220;geomicroblogging&#8221; participants to post location-based updates in real-time in a standard and reasonably precise manner.  In addition to the latitude, longitude, and timestamp, other forms of information may also be associated, such as audio recorded live on site.  In the <a href=\"http:\/\/omniblab.dogphilosophy.net\/where\" title=\"Now Where Was I? - with geotagged mp3\">original proof-of-concept<\/a> test, the updates where done through <a href=\"http:\/\/www.asterisk.org\">Asterisk<\/a> over an ordinary cellphone call, and consisted of keying in latitude and longitude from the keypad, plus an optional voice recording which was automatically converted to a <a href=\"http:\/\/www.bigroom.org\/wordpress\/?page_id=110\">geotagged<\/a> mp3 made available for download.<\/p>\n<p>Current Status: Planning stages<\/p>\n<p>Components:<\/p>\n<ul>\n<li>&#8220;Update Agents&#8221; &#8211; different methods for sending geomicroblogging posts to the system.  This could include (but is not limited to) some or all of:\n<ul>\n<li>An Asterisk application that allows for keying in latitude and longitude and recording a voice message<\/li>\n<li>An Asterisk application that accepts an overpriced SMS &#8220;text&#8221; containing location and a short text update<\/li>\n<li>A simple web form where latitude, longitude, and a short text update can be typed in<\/li>\n<li>An extension for Mozilla Firefox 3.1 and later, making use of the new geolocation feature<\/li>\n<li>A process that watches a <a href=\"http:\/\/www.gpsdrive.de\/features.shtml\">GPSDrive &#8220;Friends&#8221; server<\/a><\/li>\n<li>An Asterisk script that automatically dials a Telephone &#8220;Psychic Hotline&#8221; and asks where someone is&#8230;okay, maybe not.<\/ul>\n<\/li>\n<li>&#8220;Importers&#8221; &#8211; for accepting, parsing, and converting input from &#8220;Update Agents&#8221;.  Each importer script should handle a latitude\/longitude (and optional elevation) or a &#8220;location ID&#8221; (for adding to an already existing location update &#8211; i.e. for uploading pictures later to go with a voice update that was already done) and one type of media (text, audio, images, video).  Importers will also be responsible for <span class=\"moreinfo\" title=\"The geotag should be *embedded* in the file, not stored in a separate database somewhere\" onclick=\"alert(this.title);\"><b>directly<\/b> geotagging media files<\/span> as appropriate, so that they&#8217;ll retain their location information even if they&#8217;re downloaded from the site and redistributed.<\/li>\n<li>Storage &#8211; the core system that stores and tracks of the location updates from each participant and the media associated with each one (a webserver, a database, and the associated directory layout and database schema).  This may also include map images downloaded on the fly from WMS servers.<\/li>\n<li>&#8220;Exporters&#8221; &#8211; for finding and sending out updates.  This could include (but is not limited to) some or all of:\n<ul>\n<li>A web page, displaying the location and any associated media for each update (or links to it).  This might include embedded audio players, flash-based video, or some type of image slideshow as appropriate<\/li>\n<li>An RSS\/Atom feed<\/li>\n<li>A script that packages the information in one or more updates into a <a href=\"http:\/\/code.google.com\/apis\/kml\/documentation\/\">KML<\/a> file for viewing in applications like Google Maps, Google Earth, or <a href=\"http:\/\/edu.kde.org\/marble\/\">Marble<\/a><\/li>\n<li>A script that pushes updates to a <a href=\"http:\/\/laconi.ca\">Laconica<\/a> server (or, I suppose, Twitter.)<\/li>\n<li>An Asterisk application that sends out overpriced SMS messages for updates<\/li>\n<li>An XMPP agent that watches for updates and sends them via IM to subscribers<\/li>\n<li>An Asterisk application that fetches updates, reads out the location and possibly plays an associated audio file to a caller.<\/li>\n<li>A daemon that monitors the USGS Seismic Network for earthquakes, and when any of note occur, checks the system for anyone who updated from that area recently and sends them SMS messages saying &#8220;Whoa&#8230;did you feel that?&#8221;<\/li>\n<li>A script that automatically takes location updates and uses them to program an ICBM or fleet of killer robots&#8230;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>My goals for the initial version 0.1 &#8220;Point and Laugh&#8221; release are:<\/p>\n<ul>\n<li>Two import agents<\/li>\n<p>(A cleaned up version of the Asterisk application I developed for my <a href=\"http:\/\/omniblab.dogphilosophy.net\/where\" title=\"\">proof-of-concept<\/a> test, and a simple web form for input) [20090615: fixed the link&#8230;]<\/p>\n<li>Two importers<\/li>\n<p>(A &#8220;default&#8221; importer for location-only or location+plain text, and an importer for at least .wav audio to go with the Asterisk application.  Ideally, the latter will at least be able to generate mp3 and possibly Ogg Vorbis audio from the submitted audio, for use with either an embedded flash-based mp3 player or the shiny new &lt;audio&gt; tag in Opera, Firefox 3.1, and probably Safari if you have <a href=\"http:\/\/www.xiph.org\/quicktime\/\">XiphQT<\/a> installed&#8230;)<\/p>\n<li>Storage which handles tracking unique date, time, and location updates, providing each update with an ID# which can be used to fetch specific updates later.  It should also handle saving audio files to disk and tracking which files are associated with which updates.<\/li>\n<li>One exporter<\/li>\n<p>(A web page on the server which displays information for an update, or an index of updates if no update ID# is passed to it.  Update information displayed will include, at a minimum, the location linked to Google Maps or similar service and a download link and either a block of text or a download link for audio as appropriate.  Ideally, an embedded open-source flash-based player will be included for audio.)<\/ul>\n<\/p>\n<p>I think I can finish that much in a few leisurely weeks, unless I&#8217;m not the only one who thinks this is a neat idea and I end up being bombarded with requests for it.  Then I could probably crank it out in a few days&#8230;<\/p>\n<p>Comments regarding what a brilliant\/idiotic idea this is may be left below&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>(Watch this page for updates&#8230;The version you see now is the first time I&#8217;ve tried to organize my idea in print.) Notes on the development of a geomicroblogging system, written in PHP and intended to interface with Asterisk and Laconica (at the very least) in addition to having its own web-based interface. In summary: the &hellip; <a href=\"https:\/\/www.bigroom.org\/wordpress\/?page_id=323\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Now Where Was I? (GPS + Asterisk + Microblogging)<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-323","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.bigroom.org\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/323","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bigroom.org\/wordpress\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.bigroom.org\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.bigroom.org\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bigroom.org\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=323"}],"version-history":[{"count":6,"href":"https:\/\/www.bigroom.org\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/323\/revisions"}],"predecessor-version":[{"id":431,"href":"https:\/\/www.bigroom.org\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/323\/revisions\/431"}],"wp:attachment":[{"href":"https:\/\/www.bigroom.org\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}