CHANGELOG
---------

Version 0.9.9.2 - 131205
- MAJOR: new install will use MySQL InnoDB
- MAJOR: replace term 'slid' with 'smslog_id' on all places
- MAJOR: smslog_id is now from tblSMSOutgoing_queue_dst and immediately returns
         after sending SMS
- MAJOR: add a simple "homemade" template engine to seperate logic and view
- MAJOR: re-write default themes, added 2 new themes, use bootstrap 3 heavily
- MAJOR: rename function names interceptsendsms(), interceptincomingsms(),
         interceptsmstoinbox() and getsmsoutgoing()
- add $app and $route as global variables just like $inc, $op, $page and $nav
- add 2 new options in main configuration: allow custom SMS sender ID and allow
  custom SMS footer
- add Twitter bootstrap files to themes/common/jscss/, preparations
- add registry service for developers, they don't need to create database for
  plugin's configurations when they need to
- add new plugin pluginmanager to manage plugins (enumanc)
- add new plugin report (enumanc)
- add new plugin SMS Sync for SMSSync app http://smssync.ushahidi.com/
- add new gateway Infobip (enumanc)
- add new plugin tools gatewaymanager to replace Gateway menus
- add new daemon dlrssmsd and recvsmsd to increase performance
- add new option "Try to disable SMS footer on master" on uplink gateway
- add SMS schedule, accessible from Send SMS page
- add message scheduling to webservices ta=pv and ta=bc
- add simple instant messaging service, send to @username will push message to
  username's inbox
- update Send SMS page, make over to use grid system and remove table
- update to immediately cancel send SMS after fail with not enough credit
- update all plugin gateway to use recvsms() instead of setsmsincomingaction()
- update all plugin gateway to use dlr() instead of setsmsdeliverystatus()
- update all plugin themes to use new template engine
- update themes to load jquery.js
- update Send SMS page for better user experience
- update to allow override page_welcome.php by placing a replacement in
  plugin/themes/<active themes>/
- update default gateway on 1st installation to "dev"
- update default daemon files locations from /usr/local/bin/ to
  /usr/local/bin/_playsms/
- update rename term "sendsmstopv" to "send_sms"
- sendmail() and plainoldsendmail make over. sendmail() now receives array as
  parameters, this will allow more parameters such as attachments, cc and bcc,
  SMTP connection details and others
- update icons
- update Send SMS page to use prefix # for sending to group and @ for sending
  IM to another playSMS user
- update function.php to load only active plugins, including themes, lang and
  gateway. this fixes icons as well
- update interceptsendsms() to sendsms_intercept()
- update interceptincomingsms() to recvsms_intercept()
- update interceptsmstoinbox() to recvsms_inbox_add_intercept()
- update insertsmstoinbox() to recvsms_inbox_add()
- update getsmsoutgoing() to sendsms_get_sms()
- update to make sure date/time are in GMT+0 including when saving to storage
- update default themes is 'default', default lang is 'en_US', just in case if
  selected themes was themes 'play' which has been removed recently
- remove lib init1 and init2, include them in function.php
- remove lib/fn_csv.php and lib/fn_download.php, move them to lib/fn_core.php
- remove lib/fn_gateway.php and lib/fn_lang.php, move them to lib/fn_core.php
- remove route handler on plugins as this is now handled by core
- remove option "denycustomsender" from config.php and other places
- remove auto route replies to inbox, the routing for non @username replies to
  inbox has some disadvantages with current logic so I decided to comment it
- remove themes play, themes play moved to repo playSMS-extra-plugin
- fix catchall feature on inboxgroup
- fix location to hint.png
- fix fail to finalize queue creation
- fix icons for reply, resend and forward link
- fix datetime on SMS to use $datetime_now instead of supplied by Kannel
- fix webservices for GET_CONTACT and GET_CONTACT_GROUP
- fix wrong column $p_status while checking webservices returns, uplink gateway
- fix sms_board and sms_poll, both should use $_REQUEST to get parameters
- fix always use default rate when rate set with value zero, simplerate
- fix #78 add $from, $footer and $nofooter param to webservices
- fix #109 sms sender ID and sms footer can be changed from Send SMS page
- fix #113 add https://github.com/Eonasdan/bootstrap-datetimepicker and
  moment js (momentjs.com) and then add datetimepicker in Send SMS page
- fix #116 addslashes, not stripslashes, before feeding to sendsms()
- fix #118 regression bug giving back-tick quotes to keyword on dba_search()
  and dba_count()
- fix #123 unable to delete message template, wrong form scope

Version 0.9.9.1 - 130902
- add new webservices type of action IX to get SMS on user's inbox
- add logger_print() at the begining and the end of webservices
- add DBHOST and DBPORT on install script
- add common place to put common js files, themes/common/jscss
- add sendsms_host option in kannel gateway module (lucastx)
- add option to load/parse .html and .md files on page_welcome
- add hints with tooltip
- add new option CSS URL to decorate sms_board
- add new gateway Twilio twilio.com
- add new language de_DE Deutsch (andre)
- add lib/version.php contains version number
- add automatically set Unicode if non-latin chars typed and vice versa
  (dvoryanchikov)
- update kannel gateway related to account and dcs (dvoryanchikov)
- update log level to 3 for clickatell getsmsstatus
- update lang, more new translations on pt_BR (gschanuel)
- upgrade themes default, re-design
- upgrade all plugins to match new themes stuffs
- upgrade action icons, use common icons for all themes but can be overriden
- remove unused js and css files on themes default
- remove dTree js and css files
- remove themes 'work2'
- remove themes 'km2'
- remove column 'status' on inbox, incoming and outgoing tables
- fix #90 webservices list all incoming SMS on ta=in regardless of uid
- fix #89 forward sms_subscribe should check sms_sender (ibsoman)
- fix #88 addslashes on sms_subscribe message (ibsoman)
- fix #87 correcting mistake and addslashes before sms_autoreply reply (ibsoman)
- fix search categories in user_mgmnt
- fix plugin loader, wrongly use counter variable

Version 0.9.9 - 130625
- update sendsmsd daemon to enable parallel multi queue processing
- update config.php to include options for sendsmsd queue number and queue
  length limit
- update http method to POST in SMS custom (endymuhardin)
- update uplink gateway to use webservices username and token
- update deprecated commands eregi, ereg and ereg_replace with preg_match and
  preg_replace
- update Send SMS page to split between send to numbers and to groups
- update webservices to require username when validating requests
- add $core_config['webservices_username'] option in config.php, default is TRUE
- add core_get_timezone() and core_get_datetime()
- add new webservices type of action get_contact to get contact lists
- add new webservices ta=get_contact_group to search group contacts by name or
  code
- add new webservices ta=get_contact to search contacts by name, mobile or email
- add $phonebook_row_limit and set it to 20k entries per upload
- add sms_count on create queue and push to queue
- add a unique process ID for log
- add bash script to send sms via the webservices interface (aseques)
- add core_sanitize_sender() and fix sendsms_get_sender()
- add core_sanitize_alphanumeric() core_sanitize_alpha() core_sanitize_numeric()
- add automatically create directory "$sms_command_bin/$uid" for SMS command
- add a language full backup script
- add type of action IN (ta=in) to retrieves incoming SMS from playSMS
  webservices
- add set_time_limit(600) in various places such as import contacts and send
  from file
- replace mktime() as random generator for md5() on several lines with uniqid()
- remove git conflict messages from ca_ES po files
- remove link to http://www.unicode.org from send as unicode message option
- remove unfinished plugin from this repo and move them to new repo
  playSMS-extra-plugin
- fix sendsend flagging a queue too quick and partial
- fix the method to import from CSV file
- fix core_display_text() not to word-wrap text, instead the wrapping is done
  through CSS
- fix #85 wrong sender ID priority
- fix #84 SMS subscribe reply message not working due to missing addslashes()
- fix #83 SMS quiz not working due to wrong $c_uid value
- fix #81 a bug causing a queue partially processed
- fix #77 execute SMS command script in correct directory
- fix #75 new options to define unknown format and already member reply in SMS
  subscribe
- fix #72 add option to check option to send message as unicode by default
- fix #71 wrong formula to calculate max. length per SMS for unicode messages

Version 0.9.8 - 130517
- MAJOR: webservice now using hash token instead of username password (aseques)
- MAJOR: change the login method to use PHP session
- MAJOR: change the way to show $error_string, now using PHP session
- MAJOR: fix security holes with additional User ID validation
- MAJOR: combine Send SMS and Send broadcast SMS
- MAJOR: several rename to core files and functions
- MAJOR: $arr_menu rename to $menu_config, its global just like $core_config
- remove option for multilogin, it will always be multi-login since using
  session
- remove old page_welcome pages, now in inc/user/page_welcome.php and
  configurable
- add JSON output to webservices with param format=json
- add XML output to webservices with param format=xml
- add installer script for playSMS on Ubuntu
- add new type of action get_token to get webservices token from supplied
  username
- add new dba functions dba_search() dba_count() dba_update() dba_add() etc
- add language for themes play (aseques)
- add new error codes for webservice (aseques)
- add bat files to start and stop gammu, playsmsd, sendsmsd in MS Windows
- add config for playsmsd and sendsmsd in MS Windows, playsms.bat
- add lib/fn_init.php to hold init functions, small re-structure in init.php
- add lib/fn_country.php
- add lib/fn_gateway.php and gateway_get() to get current active gateway
- add instructions to enable fail2ban (aseques)
- add an option to autocomplete short numbers with international prefix
  (aseques)
- add new plugin tools bchash convert #<group code> to BC <group code>
- add inline @<username> and #<group code> handler
- add simple reply and forward feature on inbox and incoming SMS
- add IP validations with network masks for playSMS web services
- add new gateway module for Nexmo nexmo.com
- add new gateway module Dev for development or simulation
- add export output to PHP serialize, json, xml and image for sms_poll
- add export output to PHP serialize, json, xml, rss feeds, html for sms_board
- add hook for sendsms_get_template() and used by plugin msgtemplate
- add 'Export as CSV' feature
- add Search box
- add Home link to page_noaccess
- add new option to add international prefix to numbers of a defined lenght
  (aseques)
- add feature to check incoming message as a reply message in plugin tools pvat
- add core_display_data() to format data before display it on the web
- add language title to each language config.php file
- update keyword BC and # sign to handle feature SMS subscribe
- update language id_ID (hangsbreaker)
- update catalan language (aseques)
- update user's email and mobile is unique
- update directory structure in package
- update limit of maximum phonebook import per upload
- update terms in log to levels instead of words
- update list of Inbox, Incoming SMS and Outgoing SMS with export to csv
- update list of Inbox, Incoming SMS and Outgoing SMS with search box
- update UI on various pages
- update phonebook, replace tools/simplephonebook with tools/phonebook
- fix send sms page unable to send when using text input rather than combo box
- fix some logger_print, saving saved lines
- fix to show lists or process stuffs only when related user is exists
- fix to allow space and minus in destination number or mobile
- fix language tools, use --clear-fuzzy and several other fixes
- fix #23 flash not working, wrong variable $msg_type should be $sms_type
  (p-walker)
- fix bugs on various plugins

Version 0.9.7.1 - 120905
- MAJOR: fix security bug, non-admin can send SMS with other account from
  sendfromfile

Version 0.9.7 - 120903
- MAJOR: all outgoing SMS are to be sent to a queue in database first and then
         the queue will be processed either directly or through new daemon
         sendsmsd
- MAJOR: raw/unmodified SMS is now passed to plugins through hook
         setsmsincomingaction()
- MAJOR: webservice has been modified in service related to sending SMS, please
         read
- MAJOR: like lib/dba.php, lib/fn_auth.php now also loaded from init.php
- MAJOR: functions related to receiving SMS in fn_core.php are moved to
         fn_recvsms.php
- MAJOR: now assumed magic_quotes_gpc is set to Off, issues with quotes have
         been fixed
- MAJOR: inputs/strings are quoted when entering a function, requires
         stripslashes()
- remove unused functions in fn_user.php and add generic functions to get
  field's value
- remove unused fields from sql files dailysms,age,birthday,gender,marital,
  education
- remove backticks from many places
- add new daemon sendsmsd for processing outgoing SMS queue
- add new option 'Make return as reply' in SMS command and SMS custom (fhalley)
- add new option to automatically add prefix, remove zero, and add/remove plus
  sign
- add new table to hold DLR for gateway smstools
- add new plugin playsmslog to view /var/log/playsms/playsms.log from web
- add new plugin queuelog to view SMS queue
- add new fn user_getfieldbyuid() and user_getfieldbyusername()
- add new param count and charge to billing_post()
- add a text editor for kannel configuration file (kannel.conf) from admin menu
  (fhalley)
- add button to restart kannel from web (fhalley)
- add kannel DLR options in kannel gateway configuration (emmanuel)
- add more logger_print() in various location
- add logger_print() when unable to produce $queue_code
- add new contrib tools/language scripts to ease up translations based on
  docs/TRANSLATE
- add new language Brazilian Portuguese (pt_BR) (lucastx)
- add default language option in user preferences
- add handler for status report in gateway smstools, now we can get delivered
  status
- add function to backup smstools raw files
- update default loglevel is 2 (WARNING), not printing messages and passwords in
  log file
- update language French (fr_FR) (elinguiuriel)
- update datetime format to Y-m-d H:i:s
- update lib/dba.php and includes modified PEAR DB 1.7.14
- update sleep to 2 seconds in playsmsd and sendsmsd
- update and re-structure kannel geturl
- update sender ID priority: Default sender ID->Module sender ID->SMS sender ID
- update WEBSERVICE to show changes on successful actions returns related to
  queue
- update user_getdatabyuid() contains optional/additional data
- update all themes use to directly use default/jscss/common.js
- update lib/fn_themes.php to use hooks, so that themes can be more flexible
- update texts in logger_print() are with stripslashes()
- fix smstools3,gammu,gnokii should flag the sms failed if unable to write
  outgoing
- fix uplink handling responses
- fix uplink should log correct status
- fix uplink if no remote_slid but theres queue_code then set p_status=1 or Sent
- fix unable to send through msgtoolbox gateway (elinguiuriel)
- fix wrong log printing in kannel dlr
- fix no need to check smslog_id on webservices_pv() to handle when uplink use
  sendsmsd
- fix parameter 'type' is word 'text' or 'flash' not '1' or '2' in webservices
- fix the way playSMS activate selected language
- fix sql syntax "LIMIT count,offset" to "LIMIT count OFFSET offset" thx to
  f.hinlopen
- fix dba_insert_id() to work with pgsql thx to f.hinlopen
- fix NOW() in sql replace with $core_config['datetime']['now'] for compats
- fix dba_insert_id(), add case option for mysqli in mysql block
- fix inboxgroup and sendfromfile menu config in their config.php
- fix sendfromfile, typo 'has been set' should be 'has been sent'
- fix js and php side on sms char counter, calculate multi-part SMS and unicodes
- fix email shown on user pref and user mgmnt when detected email already exists
- fix #3555158 question mark issue on the web by setting bind_textdomain_codeset
  (lucastx)

Version 0.9.6 - 120328
- MAJOR: move SMS sender ID logic in sendsms() and hooks to sendsms_get_sender()
- MAJOR: all 'mobile' terms that related to sending SMS are replaced by 'sender'
- MAJOR: all old 'sender' terms that are related to sending SMS are replaced by
  'footer'
- add new language Catalan (ca_ES) (aseques)
- add new language Spanish (es_VE) (alfredo)
- add new function: sendsms_get_sender() to get effective SMS Sender ID
- add new options in preferences: sender and footer
- add new plugin: message template, replace word templates with phonebook
  related data
- add new plugin: send SMS by uploading a list in a CSV file
- add new plugin: inbox group
- add new theme 'play' (ajiwo)
- add new option for user to select active language (aseques)
- add new option for admin to select default language (aseques)
- add gpname2gpid() in simplephonebook/fn.php (emmanuel)
- add webservices type of action (ta=cr) to get user's credit
- remove address and country from required field on user management
- remove mobile field from required field on user preferences and management
- regression: remove addslashes in sendsms() and add stripslashes when fwd to
  email
- replace $sms_datetime in several plugins to $datetime_now
- replace term 'Receiver' with 'To'
- replace term 'Sender' with 'From'
- sendsms() is considered low level, use sendsms_pv() on plugins
- update FAQ, reformat and fix typos
- update Clickatell's doc (aseques)
- update Clickatell's API URL to HTTPS (aseques)
- fix .po .mo files, remove duplicated strings and add charset info (aseques)
- fix SMS footer display on user and all outgoing page
- fix gateway msgtoolbox, unable to properly save message ID on incoming SMS
- fix $sms_datetime for display on plugins using core_display_datetime()
- fix #3414232 sms_poll log table missing datetime field
- fix #3479182 spaces leading a message break keyword parsing (jeremymueller)

Version 0.9.5.3 - 110910
- MAJOR: fix security hole RFI http://www.exploit-db.com/exploits/17792/
- add new option to allow/disallow forwards to inbox, email and mobile for each
  users
- add new language zh_CN (fvancaen)
- add new plugin, feature, SMS survey, half-way, the reporting parts are not
  finished
- add new method interceptsendsms() to intercept sent SMS before handled by
  gateway
- add new field, in_receiver, in db table tblUserInbox and tblSMSIncoming
- add all intercepts in features plugins, now hook-able from features plugin
- add method to save receiver number, currently available only in kannel and
  clickatell
- add sender name in email forwarded to user from PV or sms board
- add multiple destinations capability when ta=pv on webservices
- sms survey temporarily disabled, not removed, waiting for reporting parts
- sms autosend temporarily disabled, not removed, waiting for major changes
- fix checkavailablekeyword() lib/fn_core.php to have hooks return TRUE if
  available
- fix autoreply unable to delete scenario
- fix sms_survey unable to send sms due to accessing user var  on playsmsd()
  (avudz)
- fix sms subscribe subscribing to disabled keyword should not happen
- fix sms autosend admin should have permission to edit all data
- fix typo phonebook_groupcode2id() in webservices_bc() lib/fn_webservices.php
- fix wrong group while sending broadcast sms to group when 'Or' field is filled
- fix sms subscribe, subscribing to disabled keyword should not happen
- fix #3109982 wrong autoreply result due to missing autoreply_id in db query
- fix #3216652 the bar graph image on the poll results page is broken
  (jeremymueller)

Version 0.9.5.2 - 101115
- MAJOR: all SMS date/time will be adjusted to GMT+0 in database
- MAJOR: themes structure changed, for example loginpage.php to page_login.php
- add method to modify parameters in interceptincomingsms() and
  interceptsmstoinbox()
- add new $app handler 'page' to access certain (custom) pages from themes
- add timezone settings
- add new tools pvat, replace keyword @<username> with PV <username>
- add new tools xlate, utilized google translate API to translate words
- add new form, registration form page, allow public to register an account
- add new form, forgot password form page, recover forgottent password
- add option in main configuration to disable/enable public registration
- add option in main configuration to disable/enable recover password
- add option in main configuration to fill default user credit for registration
- remove manual refresh, this menu may give unexpected results
- fix #3095609 XSS issue (security hole)
- fix #3095660 should be switch()
- fix #3097366 str_replace issue

Version 0.9.5.1 - 101020
- MAJOR: gateway uplink will work only with master installed with
  playSMS >= 0.9.5.1
- MAJOR: fix empty msg handled by gnokii/smstools due to single quote in $lc
  (kendokar)
- MAJOR: PHP PEAR DB re-included in the package, too complicated to install
  manual
- add new gateway module gammu, tested using backend FILES with Gammu version
  1.28.0
- add interceptincomingsms() lib/fn_core.php, setsmsincomingaction(), hookable
  for tools
- add interceptsmstoinbox() lib/fn_core.php, insertsmstoinbox(), hookable for
  tools
- add css class .error_string and .required, themes common.css
- add index.php?app=call to run hookable function 'call', replaced all direct
  access
- change websend2pv() to sendsms_pv(), websend2group() to sendsms_bc(),
  fn_sendsms.php
- change length of main table in themes default and work2 to 960 instead of 100%
- remove input.php and output.php and replace them with webservices,
  docs/WEBSERVICES
- remove send2group() and replace it with sendsms_bc(), lib/fn_sendsms.php
- fix autoreply, sendsms_pv() returns array
- fix simplerate_hook_cansend should print $username to logger_print instead
  $uid
- fix phonebook should be able to match numbers with entries from shared groups
- fix phonebook number matching got better
- fix short_open_tag issue, now all short tags including <?= replaced with <?php
- fix length of p_footer in db table tblSMSOutgoing should be 30, not 11
- fix condition when PHP gettext not available or disabled, declare _() in
  init.php
- fix display unsafe text with htmlspecialchars in inbox, incoming and outgoing
- fix long words in displayed SMS message on the web by splitting 25 chars per
  word max

Version 0.9.5 - 101010
- add multi-language support per plugin bases
- add support unicode in uplink
- add unicode message option in websend2group
- add unicode parameter in input.php
- add cfg_additional_param (varchar 250) in clickatell, kannel and uplink db
  config
- add check on php function mb_convert_encoding(), must be supported for unicode
  messages
- add additional URL parameter for clickatell, kannel and uplink
- add uplink to hook playsmsd(), it's possible master reports 'delivered', not
  just 'sent'
- add hook on sendmail, rate, phonebook
- add new core function billing and can be hooked
- add new tools, plainoldsendmail, to handle sendmail()
- add new tools, simplebilling, to handle billing related features
- add new tools, simplerate, to handle rate related features
- add new tools, simplephonebook, to handle phonebook related features
- add share/publish and unpublish group on simplephonebook
- add new language and translate it for core and plugins, fr_FR (emmanuel)
- add new language and translate it for core and plugins, id_ID
- add logger_print level 3 on all gateways, log send/receive sms activities
- add option to add additional URL param in gateway module clickatell, kannel
  and uplink
- add new theme 'km2' (emmanuel)
- add new theme 'work2' to demonstrate dropdown menu
- add show js for how many SMS and characters has been composed (adetunjiha)
- add logger_set_error_string() and logger_get_error_string() to handle long
  error_string
- add multi-language support using gettext (emmanuel)
- add SMS rate by prefix
- add SMS credit per user
- add playsms_web option in kannel gateway administration (emmanuel)
- add themes selection from web in main configuration (emmanuel)
- add gateway module selection from web in main configuration
- add limit 100 on getting delivery status via input.php (thapa)
- fix unicode support in clickatell
- fix regression unable to send SMS, credit field should be defaulted to 0
  (emmanuel)
- fix non-working unicode option in gateway module kannel
- fix single quote preventing correct array reading, $array['$c'] should be
  $array[$c]
- fix logger, available logstate: 0=disabled, 1=info, 2=warning, 3=debug
- fix wrong path when using domain only to access playsms directory
- fix send message to destination with space, allow only a-z, A-Z, 0-9,
  and + char
- fix sender number is always PlaySMS, its coming from gateway template
- fix security in input.php, one can get data without proper auth (thapa)
- fix on all php files, close unterminated variables with single-quote
- fix on all php files, replace <? with <?php, except <?=
- fix wrong dlr_url when Kannel and playSMS is not on the same location
  (emmanuel)
- fix unable to save preferences from admin menu, manage user
- fix allow \r \n in SMS text, http://smstools3.kekekasvi.com/topic.php?id=328
- fix kannel gateway, bearerbox to accept hostname, not only IP (srosa)
- fix kannel gateway, missing bearerbox host and sendsms port, kannel fn.php
- fix dlr-url misformed, plugin/gateway/kannel/fn.php
- fix RFI LFI bug, http://www.securityfocus.com/bid/33138
- update file INSTALL, use PHP 5.x.x, enable multibyte string and short_open_tag
- update HTML password field, should use type=password instead of type=text
- update contrib/kannel/kannel.conf, an example of working kannel configuration
- update broadcast SMS, minimize on web form after send to group (emmanuel)
- change *_execgwcustomcmd() to *_playsmsd()
- change label "success" to "handled" and "fail" to "unhandled", status on
  incoming SMS
- change default gateway module to smstools
- change db table names for phonebook related functions to toolsSimplephonebook*
- change rawurlencode in uplink and clickatell by urlencode
- change sender number prio, now: global sender->gateway number->mobile number
- change kannel gateway, use fsockopen due to improper HTTP response from kannel
  (srosa)
- remove js PopupReplySMS() and phone_add option from inbox and incoming pages
- remove manually inserted plugins name in config.php, now load automatically

Version 0.9.4 - 080713
- on themes, add loginpage.php and rename welcome.php to default.php
- remove bin/kannel_incoming.sh
- kannel can only pass MOs to playSMS using geturl method, see
  contrib/kannel/kannel.conf
- remove PlaySMS Web URL and Kannel Incoming Path, kannel gateway, kannel.php
- change delivery mechanism, now using file_get_contents instead of fsockopen,
  kannel
- fix (again), mclass=0 for flash, mclass=1 for text to mobile, kannel gateway,
  fn.php
- fix delivering messages, anticipate responses from kannel latest version,
  kannel gateway
- fix admin auth for non multi session login
- fix user preferences unable to modify email
- change default login type to non multi session login

Version 0.9.3 - 080520
- NOTE: PHP PEAR and PEAR-DB are removed from playSMS package, install them
  manually
- fn_sendsms.php, websend2pv(), websend2group() returns array status, dest,
  smslog_id
- fix mobile2uid() in lib/fn_user.php returns wrong value, should be $uid
- fix locating base application path, previously failed to autodetect paths
  correctly
- fix admin editing user, previously sender id was not shown correctly
- fix sms_poll not handling keyword correctly, sms_poll_handle(),
  target_choice=poll_param
- fix playsmsd process, changes to config file and php sources not updated
- fix HTTP API, input.php, ta=pv returns "OK" followed by smslog_id
- fix (again) message type (mclass), keep sending as SIM message, in kannel,
  fn.php
- change logger behaviour
- add new plugin/feature, sms_quiz
- add new plugin/feature, sms_subscribe
- add new plugin/feature, sms_autosend (warsito)
- add new hookable function, lib/fn_sendsms.php, sendsms()
- add new hookable function, lib/fn_core.php, playsmsd(), executed during daemon
  tick
- remove target_keyword from gateways, now parsed from $message on
  setsmsincomingaction()

Version 0.9.2 - 080406
- fix uplink incoming path not to use gnokii incoming path
- fix links on plugin/themes/default/welcome.php should point to index.php
- fix problem when sending message on some php version (please confirm)
- add autodetection for paths, making playsms configuration simpler

Version 0.9.1 - 080308
- Add new gateway for sms server tools (compatible with smstools and smstools3)
- Add manual for sms server tools
- Add more UI control possibilities to themes
- Remove frames
- Fix issues with input.php, add xml output to delivery status retrieval

Version 0.9 - 080304
- Introduce hooks, some function are hookable, eg: setsmsincomingaction(),
  lib/fn_core.php
- Introduce themes, new look and feel (hanan)
- Introduce plugins, features, gateway and themes now part of plugins
- Plugins are dynamically loadable (no plugin management available at this time)
- Add all inbox, all incoming and outgoing sms, available from Administration
  menu
- Remove public phonebook or shared phonebook
- Modify playSMS bin scripts
- Modify installation manual
- Fix bugs on incoming sms handler on all gateway
- Fix bugs on incoming sms handler on all features
- Lots of database changes, forget about upgrading from 0.8.1 (sorry..)

Version 0.8.1 - 060506
- Add all incoming sms without known keyword/code inserted to user 'admin' inbox
- Add new feature multi-session login
- Fix age calc procedure, move it to $apps_path[incs]/admin/commoncustomcmd.php
- Fix clickatell gateway module on callback.php (tested on two-way sms)
- Fix when logged in as normal user cant see created autoreply scenario
- Fix autoreply unable to reply requests
- Change playsmsd from bash shell script to php script

Version 0.8 - 041214
- Add new function, public phonebook for sharing phonebooks number
- Add new function, unicode message support for gateway module Clickatell
- Add new function, flash message support for gateway module Clickatell
- Add new function, message template for fast message compose
- Add new feature, SMS autoreply
- Add container file, where you can add custom command to run along with
  daemon.php
  $apps_path[incs]/admin/commoncustomcmd.php
- Add protection to geturl.php in gateway module Kannel
- Add geturl.php for gateway module Kannel, used for separating kannel box and
  playsms
- Add urldecode to fix urlencoded form of message received by gateway module
  Kannel
- Add function to send email using SMTP server, SMTP options in
  $apps_path/config.php
- Add callback.php for gateway module clickatell, callback.php used to receive
  sms
- Add prefix "playsms_" in every database tables (aimed for shared database)
- Add Sender ID to replace SMS message footer (tblUser, tblSMSOutgoing altered)
- Add delete link for SMSes in User Inbox
- Fix missing datetime in custom log date and command log date
- Fix dlrmask and dlrurl in gateway module Kannel fn.php, should be dlr-mask and
  dlr-url
- Fix dlr.php in gateway module Kannel, error setting status
- Fix contrib/kannel/kannel-geturl.conf, typos get-rul should be get-url in
  sms-service
- Fix error in bin/kannel_incoming and contrib/kannel/kannel.conf
- Fix bug config.php in gateway modules always check if you're an admin or not
  Gateway module uplink and template
- Fix howto include init.php by adding chdir in gateway module Kannel
- Fix playsmsd, add returns "REFRESHED" for better control
- Fix delivery status mixed-up in gateway module Uplink
- Fix SMS poll, same voter on a poll but different choice, function savepoll()
- Update "Mobile phone list" menu to "Phonebook", with enhanced phonebook
- Enhance phonebooks, add ability to export and import phonebook's entries
- Enhance send text SMS interface, now using selectbox.js (hanan)
- Enhance gateway module kannel, modify dlr.php
- Enhance gateway module Clickatell, add and modify callback.php
- Move common.css and common.js to inc/jscss/
- Move activation for gateway module menu to each gwmod manage page
- Remove function loginbox(), move all the code directly to index.php
- Remove transparent query string option in ws.php due to added Sender ID
- Rename error.php to goodbye.php
- User Inbox tweaked, match sender number with records in phonebook
- Config for gateway modules moved to database (table gwmod[Module]_config)
- Default font changed to Verdana (hehehe, just curious :p)
- Done changes on file FAQ and INSTALL

Version 0.7.1 - 040722
- Fix starter daemon in directory bin
- Includes security patch against SQL injection when magic_quotes_gpc "Off"
  (Thanks to Noam Rathaus, Beyond Security)

Version 0.7 - 040716
- Major changes (again :p), they are:
  1. Some field names in some tables changed (eg: featBoard, 'tag' replaced by
     'code')
  2. Field command_tag removed (from featCommand*)
  3. SMS Poll and SMS Command dont need any tag, use only code (eg: no 'POLL')
     WARNING: field command_tag on table featCommand removed!
  4. Normal user can manage their own SMS Board, SMS Custom and SMS Poll
     (can be use for SMS Board/Poll hosting and/or custom SMS applications)
- Remove config_playsms.php, move main configuration into database
  (tblConfig_main)
- Rename gateway module 'hybrid' to 'clickatell'
- Modify table tblSMSOutgoing, add field flag_deleted, from now on delivery
  status
  can be deleted (actualy hidden from delivery report page)
- Introduce new term on delivery status:
  "Failed" for fail to sent sms, "Pending" for sms in queue (in server or SMSC),
  "Sent" for sms delivered to SMSC and "Delivered" for sms delivered to phone,
  status Delivered only possible if you use gateway module Kannel or any gateway
  which can retrieve full delivery report
- Introduce new daemon shell script replacing crond (dont need cron anymore)
- Introduce new convention on tables name:
  gwmodModule[_subfunction] eg: gwmodUplink, gwmodUplink_log
- Add new gateway module 'uplink' for sending sms via another playSMS
- Add support for dlr-url in gateway module kannel
- Add new feature, SMS custom (read FAQ for detail information)
- Add $feat_command_path['bin'] in config.php, only script files located under 
  defined directory will be available for execution by SMS command (security)
- Add security enhencements (protection from remote file include and some SQL
  injections)
- Add new field in tblSMSIncoming and tblSMSOutgoing to save used gateway module
  (will be used in the next release for statistical purposes)
- Add javascript send sms windows popup (includes in $apps_path[base]/common.js)
- Add improvements on $apps_path[base]/ws.php especially on delivery status
  retrieval part
- Fix error when deleting choices and modify poll in feature SMS poll
- Fix error recording $command_exec to command_log_exec on table featCommand_log
- Fix lang (misstyped in Indonesian) on $apps_path[base]/inc/user/user_pref.php
- Done many changes on INSTALL (less requirements, and more informative)

Version 0.6 - 040626
- Introduce new convention on tables name:
  featXxxxx[_yyyyy] eg: featCommand, featCommand_log
- Major changes on tables name, sql file for database upgrade available
- Major changes on coding style and some structures (config.php, menu.php,
  menu_admin.php)
- Include's are stored on $apps_path[incs]
- Add paramater 'last' for specifying Last SMS log ID on ws.php (dlry status)
- Add js char counter on send sms form (based on Yoan Talagrand works) (yoan)
- Add new gateway module for Kannel (eugene)
- Fix delete poll's, mixed up between $poll, $poll_name and $poll_title
- Fix typos, "your usernama" should be "your username" and some other
- Fix $sms_sender and $mobile mixed up in lib/custom_function.php causing empty
  sender
- Fix error on hybrid gateway module, extra $ found at query string password
  on gw_send_sms() causing authentication failed (thx to frankster on the forum)
- Done changes on file README, INSTALL and FAQ

Version 0.5.1 - 040616
- Some tables name changed, tblConfig removed
- Some variables name changed
- Fix error calculating message length causing $sms_msg > 160 char
- Fix some register globals compatibility issue
- Add gateway module template
- Add stripslashes on some output variables
- Add and change some note on file INSTALL and FAQ

Version 0.5 - 040216
- Major changes on INSTALL and FAQ
- Major changes on library structures and codes
- Add gateway module plugin system, possibility to use any gateway other than
  gnokii, such as SMS Server Tools, internet SMS gateway www.clickatell.com
- Add hybrid gateway module, incoming use gnokii and outgoing use clickatell.com
- Add init.php, simplify content of config.php
- Fix delivery status, written $datetime_stamp, should be $p_datetime_stamp
- Remove NOW() from SQL query, increase database compatibility
- Remove $apps_path[smsd] due to use of gateway module

Version 0.4.1 - 040211
- Add more FAQs about SMS command
- Add notes to ws.php
- Add background operator (&) to smsd command in smsd_start shell script
- Fix some unsuitable datetiming for incoming SMS
- Minor enhancements

Version 0.4 - 040209
- INSTALL and FAQ changed
- Starting from this release there will be no raw directory
- Used of 2 frames instead of 4
- Major changes on output.php and custom_function.php about how to treat
  output to webpage for SMS boards and SMS polls
- line, bodybgcolor, oddbgcolor, evenbgcolor can be set via query string
  for output.php
- The term SMS board is introduced, replacing SMS tags
- PEAR DB reconfigured for playSMS (fix bugs related to database access)
- Add more reserved tags (maybe used on next release)
- Add SMS command

Version 0.3 - 040111
- Add delivery status (DS) retrieval in ws.php, output in CSV form
- Add pending status time limit in getsmsstatus() at custom_function.php
- Add SMS poll system

Version 0.2.1 - 040106
- Fatal error on how to use dba_insert_id() in custom_function.php
- Path and database access parameter now in array $apps_path and $db_param

Version 0.2 - 040104
- Libraries placed on different directory defined by $libs_path in config.php
- Multiple database engine supported (anything compatible to PEAR DB)
- Add very early stage of webservices function (not SOAP, please see ws.php)
- Clean some codes on custom_function.php

Version 0.1.2 - 031231
- Some important changes on INSTALL, add FAQ
- Add more reserved tags (maybe used on next release)
- Minor interface enhancements

Version 0.1.1 - 031217
- Natural language changed to English
- Add some reserved SMS tags on config.php
- Minor enhancements

Initial release - version 0.1 - 031216
- Change Log started

