5 Oct 2000

A lot has been happening over the last few months and SMS Client
hasnt been on my mind a lot.

What's NEW, as far as I can remember you now have a working UK lycos_web 
driver. Its an interface to the Web Server running on lycos.co.uk ( you 
dont need to dial, just have to have an internet connection. )
The web interfaces change quite frequently, dont expect it
to work forever or as reliably as the straight connection interfacs.
Just use a number, its not even provider specific, which should
make a lot of people happy.

  --------------------------------------------------------------------

7 May 2000

Hundreds of little fixes and rewrites 
including:

	Working cellnet_web driver fix thanks 
	Terry Froy <tez@spilsby.net>

	A1 Austrian Mobilkom service and 
	Makefiles for building on DEC Alpha OSF1 thanks 
	Thomas Leitner <tom@radar.tu-graz.ac.at> 

	Work on libcommon a replacement for common.o

	NEW printf() and friends to enjoy the pleasures of asprintf()
	on non platforms without gnu libc.

	Host of changes parse.a -> libparser.a
	will rework makesfiles and try to improve reuse on 
	libraries. Remove calls to functions in libparser.a 
	and introduce libparser_api.a

	Lots and lots of other stuff

  --------------------------------------------------------------------

19 Mar 2000

Thanks to Shevek <shevek@anarres.org> for the working Europolitan
driver. I reformatted it a little and hope I haven't screwed it up.

Added the eirpage service file, thanks to Stephen Farrell 
<sfarrell@cbl.ie> as I dont know what the protocol is I'm guessing
at TAP please correct me if I'm wrong.

  --------------------------------------------------------------------

8 Mar 2000

Added fixes for both the Vodafone and TIM drivers.

  --------------------------------------------------------------------

15 Feb 2000

Fixed TAP driver to include german umlauts, thanks
Michael Holzt <kju@flummi.de> I'm a little unsure if 
the checksum code also need fixing since I cant test it
this end. Can you have a look Michael.

  --------------------------------------------------------------------

26 Jan 2000

Started work on UCP over TCP/IP will build a UCP library
and hopefully consolidate UCP drivers.

Adding support for op51 which might make some people
happy.

Added new MOBISTAR driver thanks to <yves.seynaeve@eyc.be>
Will integrate youre scripts and ideas about target installations.

  --------------------------------------------------------------------

22 Jan 2000

Tom Barron <tbarron@mindspring.com> added some code for draining
data that may be present after a modem init. I made some changes
and added it to this version.

  --------------------------------------------------------------------

15 Jan 2000

Ross Golder <rossigee@bigfoot.com> added some files to 
help with RPM based systems. I haven't tried it out since I run
Debian here but any feedback would be welcome. Take a look in 
'contrib/RPM'

Fix to FreeBSD Makefile. It Looks like some 'carriage returns'
crept in when I copied it from outlook express folder in windoze.

Added Michael Holzt <kju@flummi.de> to README for his work
on the debian package.

  --------------------------------------------------------------------

6 Jan 2000

Added support for HP-UX 11.00 in the configure and make scripts
only a successful build report nonone has told me it works yet.

Removed sms_strlen, sms_strcat and sms_strcpy will be updating
the 'common' directory so that it contains my own printf and sprintf
routines.

Fixed Vodafone login check, they changed their banner again!
Thanks Peter Greinig <pjg@invatek.demon.co.uk>

Fixed Pageone thanks for the info A. James Lewis 
<jlewis@it.newsint.co.uk> and updated their new number.

  --------------------------------------------------------------------

29 Nov 1999

Fixed vodafone driver so it find the expected NEW vodafone
welcome banner, this may not work in australia, someone let me know.

Solaris users, see 6 Nov fix.

  --------------------------------------------------------------------

7 Nov 1999

Updated 'vodacom' service file so that it uses 8N1 instead of 7E1
Thanks Alf.

I noticed that skytel provides an snpp service, can someone using 
skytel verify that my snpp driver works with this.

  --------------------------------------------------------------------

6 Nov 1999

Updated 'src/comms/modem.c' so that DTR is toggled correctly on Solaris.
It appears that the POSIX method doesn't seem to work.

  --------------------------------------------------------------------

21 Oct 1999 2.0.8u

Added ia5 conversion for 'ucp' driver, you should get reasonable
character conversions now, thanks to Alexander Grapenthin 
<a.grapenthin@sicomtec.de>. The fix was for 2.0.7 but I fitted into
this release, as I cannot test this can someone please get back
to me and let me know if this works or has broken something.

This should make a lot of europeans happy.

I would like to change the drivers so they have an extra function
for converting messages based on different character sets and even
further some regular expression replacement facilities too.

  --------------------------------------------------------------------

15 Oct 1999 2.0.8t

Added new service 'netcom', thanks to Bjorn Rogeberg.

Fixed 'lock.c' so that it now uses stat() instead of access()
to determine whether a file or directory exists, since their
behaviour differs when used with setuid binaries.

Needs testing.

  --------------------------------------------------------------------

9 Oct 1999 2.0.8t

Added service file for telia, thanks to both
Jonas Borgström <jonas_b@bitsmart.com> and
Fredrik Björk <Fredrik.Bjork.List@varbergenergi.se> 
for the information on this one.

Updated the UCP driver, thanks to Chuck Hurd for a rewrite.
This is untested with D2 and Swisscom and Telia, can someone
get back to me with some feedback.

  --------------------------------------------------------------------

6 Oct 1999 2.0.8s

Added service file for digifone.

Added a new option 'MDM_pause_after_connect' Simply
uncomment it from the 'sms_modem' file and it'll cause
sms_client to sleep for 3 seconds after receiving the
connect string.

  --------------------------------------------------------------------

26 Sep 1999 2.0.8r

Think I've solved the problem with modem resetting.
'modem.c' c_flags needed 'CLOCAL"

Fixed some error messages, now always bails out with EMALLOC
on any malloc() failures.

  --------------------------------------------------------------------

11 Sep 1999 2.0.8q

Added New service files for 'skytel1' and 'skytel2'
Thanks for submitting those Kal.

Updated 'src/terminal/Makefile' it didn't include 'common.o'
anywhere in the link lines for the final binaries. No one spotted
this so I assum no one's using the terminal stuff yet.

  --------------------------------------------------------------------

20 Aug 1999

Added fix to 'nextel_web' driver, this should now indicate
when message have been successfull dispatched and when they
cannot be sent for some other reason.

  --------------------------------------------------------------------

18 Aug 1999

Removed many references to sprintf() now call sms_snprintf()
which uses snprintf() if an implementation is available.
Still a few left.

Should go through source and check for strlen(), strcpy() and
strcat() and do likewise.

Working in the GS API making it a lot simpler to use. 
Must go through and fix as many places as possible that know
about the internal parseer structure just to use the API
functions.

  --------------------------------------------------------------------

17 Aug 1999

Improve environment expansion so that it is possible to 
include variable in '"' double quoted strings, the syntax
is ${ENVVAR} 

  --------------------------------------------------------------------

16 Aug 1999 2.0.8p

Backfitted guard code from 2.0.7s-8 into SMS Client which ensure that 
the process is killed after a predefined timeout, 'SMS_service_timeout'
this is default to 5 minutes. If a call remains connected for 
longer than this time the process is forcibly killed. This is ONLY
a last ditch method as the client should timeout on ALL read/writes
that are made. If your 'sms.log' file contains a message of the form 
"Forcibly Terminated Process" then I would be interested in hearing
from you.

This was quite an involved fix to 'src/client/sms_client.c' but
it gave it a little facelift that I think it was beginning to
need.

Remember to update ALL web based interface so that they return
useful error results.

Looks like I missed the edit in 'sms/sms_modem' from 14-Aug-1999
I've readded the 'MDM_lock_platform = "SOLARIS"' option.

Added Solaris hardware flow control option, 'c_cflag |= CRTSCTS' to 
'src/comms/modem.c' I have no way of testing this.

Added simple environment variable substitution to the parse. You
can now have statements such as 'home = $HOME' in config files.

  --------------------------------------------------------------------

15 Aug 1999

Updated FAQ.

Updated 'src/comms/url.c' so that it doesn't core dump
is pasted an empty url.

Added NEW 'pagenet_web' and 'nextel_web' services. Again, any
feedback appreciated. The pagenet service will require a valid
terminal and I don't have any info on these yet.

  --------------------------------------------------------------------

14 Aug 1999

Added NEW att_web service. Again, as with the proximus_web driver it
hasn't been tested and I'd appreciate feedback.

Added comment to 'sms/sms_modem' concerning solaris. If
we want to have solaris compatible lockfiles we MUST
set a flag in this file.

Changed number for 'DETEMOBIL' to '0171 2521002' thanks
norbert.wegener@sbs.de. Can someone verify that this is
correct.

Adding web based services is pretty simple, all I need is
beta testers, web page addresses and a little time to write
the drivers. The simplest way to do this is to build the 'snoop'
tool found in 'src/terminal' just cd 'src/terminal' and 'make'.
run it on your machine pointing it a http_proxy server.

	./snoop 4040 proxyserver 8080

Where 8080 is the port your proxy listens on, set your browser
to user a proxy and point it at 'localhost 4040' now all data
is being past through 'snoop' which logs activity in 'logs/snoop.log'
on sending a successful message you should have enough info to 
build your own driver or to send to myself who'll try to build
one for you ;)

Added NEW proximus_web service. This is currently untested and
I need some betas testers. There are some fields that I'm unsure
about on the web page so I left blank, this probably won't work
without a little tweaking.

Added driver update to 'tim.c' the Italian TIM service should
now work again, thanks to adrieder@sbox.tu-graz.ac.at

Split 'src/driver/driver.c' into two files

	driver.c
	driver_comms.c

There was no real need to have comms specific in 'driver.c'

starting to abstract transport by moving 'server, server_port' into
'device' this will be replaced by a 'pointer to driver' for which
data can be extracted. Through calls to an interface, ie. 'get_info'

  --------------------------------------------------------------------

11 Aug 1999

Added two NEW services 'cellnet_web' and 'orange_web'
these both connect to web servers and pass data as though it
were submitted via a browser.

These require that you're connect to the internet to 
work. They will work through a proxy gateway but you must
set and environment variable HTTP_PROXY=http://yourproxy:8080/ to 
be able to use it.

You MUST obtain user account from these service before they
can be used. I'll post the method for obtaining the cellnet info
when I get a chance.

The mechanism for handling different transport mediums need
implementing as the above drivers look a little like a cludge,
having properties to do with modems in them!

I will eventually abstract the transport mechanism 
completely so we switch between different mechanisms more
easily, honest.

  --------------------------------------------------------------------

6 Aug 1999 2.0.8n

Fix for 'proximus' driver. Added check for 'connected\r\n'
preamble from 'proximus' service centre before sending
any messages. It looks like this 'FEATURE' was added to
proximus recently.

Various edits in 'src/parser' to extend variables so that
numbers as well as quoted strings can be assigned to them.
The numbers MUST fit into a long, so it useful for things
like flags, buad etc but NOT for telephone numbers. Use
quoted strings for these.

Updated service files so that value are only quoted
for telephone numbers.

Couple of small additions to the FAQ.

Removed the '.sh' extenstion from the 'configure' script.

Added version string to all drivers. 
Should help when having to identify problems.

  --------------------------------------------------------------------

1 Aug 1999 2.0.8m
Added new BT Message Master service, thanks to David Ockwell-Jenner.

Make sure we get the version string correct the last one
2.0.8k was appearing as 2.0.8j.

Looks like that orange hangup problem may have been at orange's
end. minicom did the same, they appear to have set their
timeouts ridiculously low, I couldn't type in my responses
fast enough from minicom! 

It shouldn't take much work to generate scripts usable via the
generic driver from this. Take a quick peek at 'sms/scripts/email'
and you'll see what I mean.

Tiny corrections to the FAQ.

  --------------------------------------------------------------------

23 Jul 1999 version 2.0.8k
Released previous version with an incomplete list of
drivers in the 'drivers' file. Oooops.

MDM_response routine confuses RINGING with RING.
Placed RINGING before RING in your response_list array as per
request from matt.
Updated README to include matt, cheers.

Re-ordered entries in this file so you don't have to scroll
right to the bottom.

Added message saying what locking mechanism was being used
in 'modem.c' remember that to use solaris style locking under 
solaris you MUST change the file '/etc/sms/modems' see the 
comments in that file.

SMS Client should now build with 'make's other than GNU now
that some 'ifeq' conditions have been removed. Solaris has been
tested, also the Makefile.config for solaris no longer defaults
to gcc. You can override this with:

	make MAKE=gmake CC=gcc

Added copyleft to file in 'src/terminal' and updated Makefile
so that you can build them. Still commented out in the main make.
These are to add a simple way of capturing protocol info and
generating driver file automagically.

Some of the way there, 'mdup' is a simple command line dialer
which logs client/server data. Though it need attention, 'orange'
hangs up after sending some data...

  --------------------------------------------------------------------

20 Jul 1999 Version 2.0.8j
Updated all makefiles so that make appears as $(MAKE)

Updated ./configure.sh to include the generation of 'Makefile.drivers'
This means that you don't need such a clever version of make as
a script is used to generate the list of drivers to build instead
of being done dynamically from withing the makefile.

Placed dependencies on file 'drivers' and 'Makefile.drivers'
such that any edits cause 'driver.a' to be subsequently rebuilt
with the correct drivers. Hey this actually works!!!

Change 'ar' to $(AR) and set value to 'ar -rc' for all
platforms except NEXT where it appears as 'ar rc'

Added RANLIB to Makefile.config for all platform except NEXT
we just 'echo' I'm unsure whether it's strictly necessary
to use ranlib and would welcome some feedback on this.

The script 'configure.sh' can be used to modify aspects of the 
build such as drivers to include and modem library to build/link
against.

Usage: ./configure.sh [-help] [-drivers] [-modemlib [smsmodem|libmodem]]

With no options the defaults 'ALL driver and smsmodem' are selected. 
After a build you can edit the file 'drivers' to remove unecessary
drivers and simply rebuild wih 'make' the makefiles should take care
of themselves. You can also specify a different modem library
after a build and simply use 'make'.

  --------------------------------------------------------------------

18 Jul 1999 Version 2.0.8i
Fixed a bug in 'lock.c' which was introduced by
last fix in 2.0.8h

The code that was reading the pid was setting it 
to -1 even when it was valid!

Also made some changes to the directory layout.
Moving 'logfile' and 'common' into their own
directories. This makes working on seperate projects
that use these files simpler.

Maybe I'll move 'error.h' too at somepoint.
Reminder, don't prefix any defines with 'E'
the 'bumper big boys book' on posix says this is a 
bad idea.

  --------------------------------------------------------------------

02 Jul 1999 Version 2.0.8h
Added new "nz" service for Telecom New Zealand.
Cheers Robbie for that one.

Fixed a bug in 'lock.c' which was never closing
a file in the function resource_lock_pid()!
Thanks Sergio. 

  --------------------------------------------------------------------

13 Jun 1999
Added new 'vodafone_tap' service for Mark
Good Luck

  --------------------------------------------------------------------

11 Jun 1999
Fix to 'gs_token.c' so that in compiles on the
Linux REDHAT distribution. Anyone want to tell me what the
problem was?

  --------------------------------------------------------------------

05 Jun 1999
Fixed problem where switching from 7E1 to 8N1
and back again doesn't screws up parity settings
for device.

Edits to 'expect.c' prints 'Received Character:'
and 'Received String:' message which is now less confusing.

Added version info so I can see which version is
being used when I get log dumps from people.

  --------------------------------------------------------------------

27 Apr 1999
Terminal 'c_cflags' were not being cleared
during initialisation. This meant that the flags used from
last setting were being used, this ocurred most notibly
by user switching from 8N1 to 7E1 and back between 
different services. Thanks to Gareth Abel for 
spotting this one. 

Added new options 'MDM_restore_terminal' to restore
the orginal terminal settings on close. and
'MDM_pause_before_dial' to wait after initialisation before
dialing, should fix some USR problems.

  --------------------------------------------------------------------

24 Apr 1999
'smsd' now generates a lockfile in the '/var/spool/sms/locks'
directory of the form 'smsd.pid' along with 'snppd' which now
does the same. This falles in line with the queue daemons which
also have  'SERVICE.pid' lockfiles.

Started working on 'init.d/smsd' an init script for
starting and stoping 'smsd' and associated queue
daemons. Now that 'smsd' generates lockfiles along with
the queue daemons it's easier to stop and start it.

Note that to stop 'smsd' you should send it a TERM signal
so that it can clean up after itself.

  --------------------------------------------------------------------

22 Apr 1999
Ammended expect.c to use sigaction() instead of 
signal() and rewrote expread() and expwrite(),
cheers chris.

Added SCO definitions of NAME_MAX and PATH_MAX to 
'expand.c' also changed SMS_open_local_smsrc() to
allocate filename on the fly as NAME_MAX and PATH_MAX
may be functions.

  --------------------------------------------------------------------

20 Apr 1999
Ammended modem.c so that we can now uses new config 
options 'MDM_dtr_hangup_sleep' and 'MDM_dtr_init_sleep'
Added call to toggle_DTR() prior to any initialisation.

  --------------------------------------------------------------------

11 Feb 1999
Ammended Makefile.config to include

	PREFIX   = 
	SPOOLDIR = 
	SMSUSER  =
	SMSGROUP =

  --------------------------------------------------------------------

08 Jan 1999
Changed ALL config files so that they use the NEW parser.
This is quite a major change and hence the jump to 2.0.8
Config files are now in lower case and their format
has changed considerably.

  --------------------------------------------------------------------

07 Jan 1999
Created new 'comms' directory, moving all comms
related functionality. Now builds to 'comms.a'

  --------------------------------------------------------------------

05 Jan 1999
Added 'RINGING' detection code in 'src/client/sms_modem.c'
New flags include 'MDM_max_rings'

Changed files 'src/driver/driver.c' 'src/driver/driver.h'
to further abstract driver code. The drivers are passed
pointers to functions which provide access to the list
of messages passed.

Changed file 'src/client/sms_client.c' to use the NEW
driver functionality by adding access_* functions.

The main reason for this change is the queueing daemon 
will use the driver but processes it's message lists
differently. Now the driver can handle either method,
it just calls the functions passed to it to deal with
getting first/next messages.

  --------------------------------------------------------------------

04 Jan 1999
Added new flags to 'src/client/sms_modem.c' 
To allow support for lockfilesof serial devices on Solaris 2.5.1
New flags include 'MDM_lock_platform' setting it to 'SOLARIS'
instead of 'TRADITIONAL' produces a dotted notation.

  --------------------------------------------------------------------

22 Dec 1998
Added telephone numbers to 'sms/services/SWISSCOM' file.
Changed 'src/drivers/ucp.c' so it responds to positive ACK correctly.

  --------------------------------------------------------------------

01 Dec 1998
Changed 'src/drivers/ucp.c' parse UCP response code added.

  --------------------------------------------------------------------
