| View inbox, read, reply, forward, delete, send new etc | |
| Chat | Select random chat partners. Chat via Ferngate using nicknames. Block unwanted chat partners. Create, join or leave chat groups. |
| Calendar | Set meetings, reminders, birthdays, daily reminders |
| ToDo | Add todo items, view todo list, delete completed items |
| Information | View text files containing weather, news, specials etc. |
| Events | Definine repeating events for checking email, viewing todo list etc |
| Instant Message | Send instant messages to internet users, Recieve replies to instant messages. |
| Contacts | Store people in a contact list with any associated fields. Search on any field. |
Ferngate is a high performance multi-threaded server application. It provides a variety of services via SMS. The user interacts with Ferngate by sending it short text messages. Ferngate responds with short text messages containing the requested information or confirming the requested action has been performed. Ferngate is best demonstrated by some simple examples:
| SMS Command |
Ferngate Action
|
| list | Lists email in your inbox |
| read 3 | Shows you contents of 3rd email in your inbox |
| del 2 4 | Delete message 2 and 4 |
| send john@a.b.com Hi there john should be with you at 7 | Sends an email to John |
| chat new | Finds you a new chat partner |
Ferngate interacts with an SMSC via SMPP, or it can be used in small systems using a GSM Modem. It provides services by sending and receiving SMS messages from portable phones. It connects to standard POP and SMTP servers to provide Email services. It also contains an SMTP server, so Emails can be directed to it. The users interact with Ferngate by sending it commands in the form of SMS messages. Ferngate maintains user profile and state information on each user. The users are identified by the phone number from which their SMS messages comes. There is therefore no need for authentication or login.
After an initial registration users can, for example, list the messages in their Email inbox by simply sending Ferngate an SMS text message containing the command list, or just the letter L. All commands can be abbreviated to the first letter. The following sections provide more details on each of the main ferngate facilities.
Email Facilities:
Ferngate provides complete Email facilities. Initial registration for users
is simply a matter of sending a SMS message to Ferngate containing:
user username password pophost
From then on, the user can check their inbox by sending the command list which will respond with something like:
3/7
7 Mr Smith Home Finance
6 bob@hotmail Please phone me
5 Cindy Jones The latest in home
4 john@whatsit. Help request
3 Peter Leskowit Why do we nee
2 George Jones Buy Shares Now
..
The first line tells you that there are three new messages and a total of seven messages in the inbox. The messages are listed with newest ones first.
If there are more Emails in the inbox than will fit within in one message, the user can request the next page by sending the command more. There are commands for forward, reply, delete, etc, and these can be used in combination. For example, with the above list the user might respond with the message
Del 75 3 forward 6 john read 2
in order to delete the first three messages, forward the 2nd one to a colleague and read the last one to see what shares George is suggesting we buy. Support for IMAP hosts, and facilities for transferring messages to other folders on the IMAP host will be added.
When we read the message from George it may well not all fit in one SMS message. If what we get finishes with this implies that there is more to the message and we can use the command more to obtain the next part of it. In order to reduce the size of Email messages, multiple lines included from previous messages are reduced to >..
So a message containing
>What colour is the wallpaper
>in the bedroom going to be
>do you think
blue would be best
will be reduced to
>
blue would be best
If there is only one message in your inbox, a list page is not produced and the message itself is shown.
In order to send a message, the send command is used as in
Send george We need to get some new wallpaper for the front bedroom
Or
Send jack@list .com please remove me from your mailing list
If the Email address you provide in the send command does not contain an @, Ferngate will first look for the name in your contact list and obtain the Email address from that. If it is not found in the contact list, it will just add @pophost from your user setting.
Diary and Scheduler Facilities:
The event facilities include normal calendar functions like making diary entries for meetings or reminders in addition to repeating events and command functions. For example, you may set up an event to send you a list of messages in your inbox at 8:30am weekdays so that you can process your inbox on the train each morning. Similarly, you may request it to list your todos each morning.
To set up an event, send a message containing the following fields:
Event event_type repeater date_time notification_offset message
Some examples follow:
Event reminder weekdaily 3pm 10 mins Pick up your daughter from school
Event meeting 1530 3/4/2001 Parcom merger meeting
Event list daily 900
Event todo weekdaily 230
Event reminder yearly 5pm 13/3/2001 Your wifes birthday tomorrow dont forget the flowers
Random Aliased Chat:
In providing chat facilities, care needs to be given to three areas.
1. Anonymity must be preserved while providing a simple mechanism to remember who you are talking to.
2. It must be possible for users to decide when and if they want to participate in random chat.
3. It must be possible to effectively block individuals who you no longer wish to converse with.
These are handled by Ferngate by allowing users to chat to others using nicknames. You can enable or disable both chatting and new chatting and turn reception from a particular user off and on.
| Command | Function | Ferngate Response | George response |
| Chat new Would you like to chat with me | Select a new chat partner | Chat sent to George | Yes ok where are you |
| Chat George Im in New Zealand | Send a chat message to George | ||
| Ignore George | Stop George talking to us | Ignoring George | |
| Write chat off | Turn chat functions off | Var chat set to off | |
| Write chat on | Enable chatting | Var chat set to on | |
| Write chat_new off | Dont accept new chat partners | Var chat_new set to off |
Ferngate also allows users to create, join or leave chat groups:
| Command | Function |
| create jazzclub | creates a chat group called jazzclub |
| join jazzclub | Subscribes you to the chat group called jazzclub |
| chat jazzclub practice at john's in 10 minutes | Sends the SMS message: 'practice at john's in 10 minutes' to all members of the jazzclub chat group |
| view jazzclub | Displays current members of the jazzclub chat group |
| leave jazzclub | Unsubscribes you to the jazzclub chat group |
Todo List
Ferngate will keep a list of todo items for you. You can add items to the list with the command:
Todo theitemtext
For example:
Todo write the report on the new merger or
Todo get a present for Karen
You can then list current todo items with the command Todo, which will return something like:
1. write the report on the new merger
2 get a present for Karen
You can then remove items with:
delete 1
You can also request a todo list each working day with:
Event todo daily 900
Internet News
You can post news items with the post command:
Post rec.humor Funny Joke. an Englishman an Irishman and a Kiwi were traveling together .
The first sentence is used as the subject, in this case Funny Joke
You can then read a news group with:
News rec.humor
which will list new postings to that group. You can then read a particular item with:
Read n
n being the number of the item you wish to read.
Bulletins
The config file contains a setting for the bulletin directory.
You can place a file in here called bulletin.txt or a series of files.
So, for example, you might have files:
Specials.txt products.txt and help.txt
Users can then use the commands:
View specials
View help
View products
If the contents of the file will not fit in one message, it will end with and Ferngate will respond to the command more with the remainder of the file
Commands:
| Abbreviation | Command | Function | Example |
| A | Answer | Reply to an Email you are reading | Answer I take your point Jim please refer this to George for comment |
| B | Babble | Send a DBabble instant message to a PC user | Babble George can you talk to Jim about the new accounting system |
| C | Chat | Chat to an existing friend or select a new random chat partner | Chat new Hi want to chat
Im in New Zealand
Chat George Thanks for the reply, Ive never been further away than Australia |
| Cr | Create | Create a chat group | Create jazzclub |
| D | Delete | Delete an Email, event, todo item or contact | Delete 1 4 7 |
| E | Event | Setup an event such as a reminder, meeting, auto-check for new mail, etc. | Event meeting 1230 13/4/2002
Event reminder daily 1530 10 Pick up Sam in ten minutes Event list daily 830 Event todo weekdaily 0900 |
| F | Forward | Forward an Email message you have just read with an added note | Forward george@cellcom George can you deal with this please |
| G | Get | Get the information you have stored on a particular contact or a list of contacts | Get
Get pete |
| H | Help | Obtain list of all commands or help on a specific command. | Help
Help event |
| I | Ignore | Ignore a random chat partner. This stops them sending you text messages. | Ignore mrcool |
| J | Join | Join a chat group | Join jazzclub |
| K | Keep | Keep or update details on a particular contact | Keep george age=45 company=Netwin hobby=motocars |
| Le | Leave | Leave a chat group you no longer wish to subscribe to | Leave jazzclub |
| L | List | List Emails in your inbox. Server
set with registration command:
User username password pophost |
List |
| M | More | Show more of an Email message, help screen, news item, Email inbox list or other list | More |
| N | News | View a news group | News rec.humor |
| P | Post | Post to a news group | Post rec.humor windows joke. In a world without walls who needs windows and gates |
| Q | Query | Search for contacts matching your search query | Query city=washington
Query smith |
| R | Read | Read a particular Email message or news item | Read 3 |
| S | Send | Send an Email message. | Send george
Send jack@cell.com |
| T | Todo | Add an item to your todo list | Todo write letter to george re
tax
Todo get a present for Mum Todo |
| U | User | Setup the Email pop account to use | User john secret our.pop.host |
| V | View | View your Ferngate settings or the system bulletins | View
View bulletin View b 1 |
| W | Write | Write or update your Ferngate setting | Write nick=MrCool
Write reply_send=email reply_babble=sms |
| X | Xfer | Transfer Email message to another folder | Xfer pending
Xfer 3 pending |
Command Details
Command:
Answer
Function: Reply to an Email message
Abbreviation: a
Syntax: a[nswer] <message>
Example: ans I agree with your first two points but not the third
Description: This enables you to reply to an email
message you have just read. This is very similar to the send command but no
to_address is required as this is taken from the message you have just read.
Command: Babble
Function: Send an instant message to a DBabble user on
a PC. See http://netwinsite.com/dbabble Abbreviation: b
Syntax: b[abble] <user> <message>
Example: babble fred Im nearly there, should be with you in about 5 mins.
Description: This command enables you to send an instant message
to a PC user, provided they are using Netwins DBabble instant message system.
See http://netwinsite.com/dbabble for details. The client for DBabble can be either a web browser or a
free windows GUI. Ferngate sends messages to DBabble by Emailing them to dbabble_user@domain. The DBabble server includes an SMTP server which can receive these
messages. If DBabble and a normal Email server are running on the same machine,
DBabble can be set to receive Emails on a different port and the Email server
can be set to forward dbabble_xxx to this port.
Command: Chat
Function:
Abbreviation: c
Syntax: c[hat] <nickname>
Example: chat new
Chat george
Description: This provides a safe SMS chat method. Chat messages always go through
Ferngate and use aliases or nicknames. You can select a new random chat partner
with:
chat new
Chat to someone whose phone number you know with:
chat 021666666 hi there jim
Chat to someone you know using a nickname like:
keep jim phone=021666666
chat jim hi there j
Command: Create
Function: Create a chat group
Abbreviation: cr
Syntax: cr[eate] <name>
Example: create jazzclub
Description: Used to create a new chat group which Ferngate users can
then join. Chat messages sent to this name are sent to all members of the chat
group.
Command: Delete
Function: Delete Email messages, todo items or calendar events.
Abbreviation: d
Syntax: d[elete] <number>
Example: d 3
Description: Used to delete Emails, events or todo items.
After a list command you can do del n to delete nth Email
Command: Forward
Function: Forward an Email you have recieved to another Email address.
Abbreviation: f
Syntax: f[orward] <number> <address>
Example: forward 15 roger@abc.com
Description: This enables you to forward email messages you recieve to
other people.
Command: Get
Function: Get contact details on someone in your list of contacts
Abbreviation: g
Syntax: g[et] <name>
Example: get fred
Description: This enables you to retrieve the information you have stored
about a particular contact. See the keep command for how to store this
information.
Command: Help
Function: Provides list of Ferngate commands available.
Abbreviation: h
Syntax: h[elp] <command>
Example: help babble
Description: This provides brief help on the commands ferngate will accept.
To get help with a particular command use the syntax above. The command help
by itself will show all commands, starting from the user command.
Command: Ignore
Function: Ignore any chat messages from the specified user
Abbreviation: i
Syntax: i[gnore] <nickname>
Example: ignore jim
Description: This enables you to stop a specific person from sending
chat messages to you. If you want to stop ignoring someone use the command:
chat <name> hi again
Command: Join
Function: Join a chat group that has been created by someone.
Abbreviation: j
Syntax: j[oin] <chatgroupname>
Example: join jazzclub
Description: This allows you to join a chat group. If you join the chat
group called jazzclub, you will recieve any messages sent to jazzgroup, as will
all other members of the group.
(nb. messages are sent to chat groups in the form: chat <chatgroupname>)
Command: Keep
Function: Store or update information on specified person in your contact
list.
Abbreviation: k
Syntax: k[eep] <name> field=value field=value...
Example: keep ralph hair=brown eyes=blue daughters=ria,avon,brook,leith
Description: Using this command you can store absolutely any information
whatsoever. So long as you keep to the above format, feild and value can say
anything you want.
The abbreviated command
keep ralph 021463645
is also allowed as a short form of
keep ralph phone=021463645
Command: Leave
Function: Leave a chat group that you were previously subscribed to.
Abbreviation: le
Syntax: le[ave] <chatgroupname>
Example: leave jazzclub
Description: If you join a chat group, and then decide that you no longer
wish to recieve messages from that chat group, you can leave the group with
this command. Messages to the chat group in question will no longer be sent
to your phone.
Command: List
Function: Lists the Email messages in your Inbox.
Abbreviation: l
Syntax: l[ist]
Example: list
Description: Shows your Inbox, starting with the most recent Email messages
at the top. To see less recent Emails, use the more command.
Command: More
Function: Show the next section of whatever is being displayed
Abbreviation: m
Syntax: m[ore]
Example: more
Description: Many of the things ferngate sends will not fit in a single
SMS message. Whenever it runs out of space it finishes the message with .. and
will then respond to the more command with the next chunk of what
it was trying to tell you.
Command: News (NOT AVAILABLE in version 1)
Function: Display recent posts to an internet news group
Abbreviation: n
Syntax: n[ews] <newsgroup>
Example: news rec.humour
Description: This enables +++
Command: Post (NOT AVAILABLE in version 1)
Function: Post message to an internet news group
Abbreviation: p
Syntax: p[ost] <newsgroup> <message>
Example: Post rec.humor windows joke. In a world without walls who needs
windows and gates.
Description: This enables +++
Command: News Move (NOT AVAILABLE in version 1)
Function: Display recent posts to an internet news group
Abbreviation: nm
Syntax: a[nswer] <message>
Example: ans yesseriy
Description: This enables
Command: Query
Function: Query Ferngate for matching contacts
Abbreviation: q
Syntax: q[uery] <feild/value>
Examples: query blue
query age=43
Description: This enables you to find matching contacts. You can either
search all fields, or just the specified field. So if you use the command: query
blue
it will find any contact containing the word blue.
But if you use the command: query eyes=blue
it will only show those with blue eyes.
Command: Read
Function: Read specified Email message
Abbreviation: r
Syntax: r[ead] <number>
Example: read 27
Description: This enables you to read an email message. The number 27
in the example refers to the fact that it is message 27 in your Inbox (all messages
in your Inbox are numbered). If the email is longer than will fit in one text
message it will finish with .. and you can read the next section by using the
more command.
Command: Send
Function: Send an Email message to specified user
Abbreviation: s
Syntax: s[end] <address> <message>
Example: send bob@hotmail.com hi bob we will come for dinner after all.
Description: If you only specify a name for the recipient rather than
an Email address, it will first look for a contact of this name and use the
Email field from that. Failing that, it will just add the @host from your Email
address to the name you supplied.
Command: Todo
Function: Add an item to your todo list or view current todo list
Abbreviation: t
Syntax: t[odo] <item>
Example: todo buy mum a birthday present
Description: This enables you to add items to a todo list. To view your
current todo list simply use the command todo by itself.
Command: user
Function: Setup the Email account to check for Email from.
Abbreviation: u
Syntax: u[ser] <your username> <your password> <your pophost>
Example: user bob qwerty netwin.co.nz
Description: This tells Ferngate which Email account to check for mail,
etc. You only have to use this command once, the first time you use Ferngate
(if you change Email accounts you will have to re-do it for your new Email account).
Having specified your Email account in this way there is no need to login each
time you use your Email via Ferngate.
Command: View
Function:
1. Display current values for a user setting.
2. Display a bulletin or other information file.
3. View events list
4. View Ferngate version information
Abbreviation: v
Syntax: view <setting>
Example: view nickname
Description:
| Command: | Function |
| view | displays list of user preferences (nickname, etc) |
| view nickname | displays nickname only |
| view version | displays current version number |
| view bulletin | displays contents of bulletin.txt |
| view specials | displays contents of specials.txt |
Command: Write
Function: Store a user setting.
Abbreviation: w
Syntax: w[rite] <feild>=<value>
Example: write nickname=mrcool
Description: This enables you to change any of your user preferences.
The feilds available to be changed by this command are:
reply_send
reply_babble
nickname
chat
chat_new
signature
You may view the current settings with the view command.
Command: Xfer (NOT AVAILABLE in version 1)
Function: Transfer a message to another folder.
Abbreviation: x
Syntax: x[fer] <number> <foldername>
Example: xfer 14 personal
Description: This enables you to transfer messages between folders. The
number identifes which message you want to transfer (all messages in your Inbox
are numbered) and the foldername is the name of the folder you want it moved
to.
Configuration Settings:
The configuration settings are stored in ferngate.ini this is a text file that you can edit with any standard text editor. Lines starting with a # symbol are comments.
{"recv_smtp_port", "1025", FALSE, INI_NO_FALLBACK},
{"reply_sms_server","127.0.0.1",FALSE, I_HOST},
|
Setting |
Default |
Example |
Explanation |
| chat_new_tries | 1000 | chat_new_tries 10 | When processing a chat new command, Ferngate will randomly select another user, if this person is blocking you or does not have chat enabled it will try another random user. This determines how many times it will pick a random user before giving up. |
| dbabble_server | host | dbabble_server our.dbabble.com | |
| debug | false | debug true | Controls the amount of information recorded in ferngate.log |
| fernphone_port | 9001 | fernphone_port 1234 | Ferngate will accept connections from the fernphone phone simulator on this port. |
| host | tcp_hostname | cant be set from config file. | Is automatically set to the tcp hostname of computer Ferngate is running on. This then provides a default setting for dbabble_server, smtp_server etc. |
| lowercase_pass | true | lowercase_user false | If true then passwords are changed to lowercase before being used. Note some phones only allow uppercase chareacters to be sent. |
| lowercase_user | true | lowercase_user false | If true then usernames are changed to lowercase before being used. |
| sms_prefix | FG: | Ferngate normally prefixes every sms text message it sends with this string so that users can easily recognize ferngate messages. | |
| sms_server | host | sms_server sms.outsite.com | Ferngate links to an smsc or a gsm modem to send and recieve sms text messages. The link is made via either smslink or gsmlink. It connects to these link servers via TCP/IP sms_server is the address of the smslink or gsmlink server. |
| sms_port | 9000 | Port 1234 | TCP/IP port used for connection to smslink or gsmlink for sending and receiving sms text messages |
| smtp_port | 25 | 1025 | Port to use when connecting to smtp server. |
| smtp_server | host | smtp_server smtp.oursite.com | Internet address for smtp server Ferngate should use when sending email messages. |
| viewarea | /ferngate/view | view_area /usr/fernview | Users can view the contents of .txt files in this area by using the command view filename for example if there are files called weather.txt and specials.txt users can use the commands view weather and view specials |
| workarea | /ferngate | workarea /var/spool/ferngate | Workarea for ferngate user files. User information, cached messages etc are stored in hashed directories under this one. |