Ferngate Administrators Guide

Ferngate Provides these Services :

Introduction

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 todo’s 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 wife’s birthday tomorrow don’t 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 I’m 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 Don’t 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 – I’m in New Zealand

Chat George Thanks for the reply, I’ve 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: Event
Function: set up a one off or repeating reminder or function.
Abbreviation:
e
Syntax:
e[vent] <action> <count><repeater> <time> <date> <offset> <message>
Example:
event reminder 2hourly 1134 1/2/2002 –10 stretch your legs before they fall off.
Description:
This enables you to set reminders like:

event meeting 12/8/02 0800
or actions such as:

event list daily 0900
In this second example, Ferngate will show you your Inbox every day at 9am. Events can be either one offs (like the first example), or repetitive (like the second example). If the event is repetitive, you set the interval. For example, weekly, daily, weekdaily,hourly, etc.


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.