|When first starting Virca, this is what you'll see, a screen with a list of profiles (here just the Default one), and a list of actions to perform. This screen contains three commands: Exit, Globals and Ok. This emulator shows Exit and Menu, and when selecting Menu, you get a choice of Globals and Ok. This is implementation specific. Your particular phone may choose to map the commands to seperate buttons, or use a system similar to this one. I willalways refer to the commands by name.|
|By selecting the Globals command in from the options screen, you can set two options that will apply to all profiles: Real Name and Username. Real Name is the name that shows up on your whois and should be your actual name, such as "Vidar Holen". The Username should be whatever you usually use for a username, such as "vholen". Defaults will be created if you don't fill these in, so feel free not to bother.|
|Let's create a new profile. From the Options screen choose the 'Create New' action.|
|A 'New Profile' dialog will let you enter the name of your new profile. I usually use the network's name, in this case Freenode. Hit Ok when you're done.|
|You will now find yourself in the profile setup. All the fields are filled in with defaults. The Host field is the server to connect to, and must be in the form "server:port". For freenode, we'll go with the default "irc.freenode.net:6667". The Nick field is the nickname, obviously.|
|The Channels field is a comma-separated list of channels to join when you enter. In this profile we wish to join #virca and #bubbles, so we enter "#virca,#bubbles". The Password field is the server password to use. Private servers and BNCs will use this for authentication. Leave it blank for public servers. The Font Size is so obvious it's not depicted. You have a selection of Small/Medium/Large. Small is recommended to fit as much text as possible.|
|The Color Scheme will let you choose what colors Virca will use. Your device will probably either block light to create black, or emit light to create white. Therefore, choosing the right color scheme could extend battery life (black on white and white on black respectivly). Grayscale phones can use the Grayscale optimized mode to rely on brightness rather than hue for signaling.|
|You can choose a Codepage to map foreign character sets to extended ascii. Note that UTF8 and similar will not require codepages. Currently there is support for CP1251 (Cyrillic) and KOI8-R (Russian). Mail me to suggest other codepages. Most users will probably choose None here.|
Connection Mode has been removed in 1.1.1|
The Connection mode chooses what protocol to use for connecting. Some phones do not support tcp/ip connections ("socket://host:port") which are what irc servers require. Trying 'socket' on these devices will give you a ConnectionNotFoundException. To work around this, I've attempted to create a program that allows phones to connect using http and relay it to an irc server. The result was the HTTP Bouncer as mentioned below. It is very buggy and not expected to work. I've received reports that Sony-Ericsson T610 can handle it as well as Siemens C55 which ironically doesn't need it. The Http option will use one connection to trickle incoming data, and then connect once per message to send. The Http-swap option will do the same, only break and reestablish the first connection so there is never more than one connection in use at any time. The latter is only needed if the phone starts complaining about too many connections. All in all, try 'socket' first. If it works, great! If it doesn't...well...don't get your hopes up.
Some phones have broken socket implementations; a blocking read call will also block write calls. The main symptom for this is that messages you type don't show up in the channel until 20-30 seconds later. If this happens, and it's not just lag, choose Quick poll. If the program reacts a little slow, try Slow poll.
If you have this problem but Poll mode doesn't work, you could alleviate the problem by either joining a busy channel (0.5-2 lines per second or so), since the phone will only be able to send data once it receives something.
The Poll modes will use |
|Ok then, that was all the options. Hit OK to go back to the options screen. Select the new profile from the profile list and Use from the action list. Hit OK.|
|It might take a long time to connect (1-2 min). When it finally finishes, this is something along the lines of what you'll see. At the top there is a long bar divided into subrectangles (two in this case). Each subrectangle represents a window (a channel or user). I will refer to the bar simply as "the bar", and each subrectangle as "a tab". The current window's tab is marked by a smaller black rectangle, as seen on the top left. The second tab is green; this means that there has been channel movement since last you looked. A blue one means that someone has said something. (light gray and dark gray for Grayscale optimized) The middle area contains text. You can scroll in it using the Up and Down keys on phone (same as in games, perhaps 2 and 8 or Selection up and down). When you scroll, a tiny black rectangle will appear on the right, rising towards the top of the screen as you scroll further back in time (not depicted). There are six pages of backbuffer. Now let's check the other window.|
|Press Right (or Left, and it will wrap around), and the display will change to show #bubbles, which was the other channel we entered into the profile. Notice how the right most rectangle of the top bar now is marked as active, while the other is blank.|
|When a tab turns blue (dark gray), it means people have spoken in another window. If it turns green (light gray), it means people have joined/quit or similar. Press Left.|
|Sure enough, koala_man (yours truly) has spoken. Let's reply. Hit the Input command.|
|Enter whatever you want to say in the Text field...|
|The Mode selection thing was removed in 1.1.14 in favor of commands. Hit "Say" to say it.|
|Your lines are prefixed by a > sign. Notice how wrapped lines always start slightly indented (it'd be fairly easy to spoof replies without it).|
|The other command is Emote, which works like /me in most clients. Enter "feels great." and hit Emote.|
|...and "* panda_man feels great." appears. Yay. Using emotes for anything other than actual emoting is concidered stupid.|
|Using the Menu command will land you on this screen, the Virca Menu. There are four selections, Favorites, Clear, Close Window, and Quit.|
|Select Favorites, and you'll be in the favorites screen. Here you can add long commonly used commands that you'd like to avoid typing every time. They are shared between all profiles. Use the Add command to add a new favorite.|
|Enter your line in the text box, then hit Ok.|
|It will now appear on the favorites screen and you can check it. It will be interpretted as if you'd typed it in the Input screen with the Say mode, ie /raw and such works fine. To send it, use the Send command.|
|And now you can say this as often as you want without typing it again every time.|
|Psst, here's a secret tip! (and it really is secret, since no one ever bothers to read the manual) If you prefix the message with a semicolon, it will be sent when you connect! You can use it to identify with NickServ for example. Do keep in mind that it will apply to all profiles. It's just a hack and I'd sooner remove it than extend it.|
|So you just had an incriminating conversation? You can select Clear from the menu to clear the current window, or hit the *-key on your phone.|
|The current window, including backbuffer, will be wiped clean.|
|Nothing interesting is going on in #bubbles. Let's leave. Make sure #bubbles is the active window, and select Close window from the menu. You can also hit the #-key on your phone.|
|Notice how the bar now contains a single tab. Closing all windows will have undefined results (crash!).|
|/msg||/m||Send a message to a person. /msg koala_man hey|
|/raw||Send a raw command to the irc server. /raw nickserv help. Also, use /raw list instead of /list|
|/nick||/n||Change nickname. To make it permanent, edit your profile instead. /nick rollingbone|
|/join||/j||Join a channel. /join #virca|
|/me||Same as selecting Emote. /me likes waffles.|
|/close, /part||/c, /p||Close the window and leave the channel|
|/query||/q||Open a window to another person, without actually saying anything. /query koala_man|
|/ping||Ping the user, to test the latency. /ping koala_man|
|/ctcp||Send a CTCP message. Virca only interprets ping and version replies, the rest are printed. /ctcp koala_man version|
|/where||/w||Show the name of the current channel/person. /where|
|/topic||/t||Sets topic. /topic Hell is other people|
|/mode||Sets mode. /mode +o koala_man|
|/kick||Kick user. /kick koala_man Get out!|
|/names||Show who's on the channel. /names|
|/whois||Show information about a nick. /whois koala_man|
|/server||Change server. This should be done from the profile selection, as it can be a bit unstable. /server irc.freenode.net:6667|
|/data||Print number of bytes received and sent (to keep track of costs).|
|/date, /time||Show the current time (as provided by the device)|
|javax.microedition.io.ConnectionNotFoundException : The requested protocol does not exist socket://etc||Your phone does not support sockets. You could try a firmware upgrade, but other than that, it's incurable. Sorry.|
Reported from various Nokia models.
|java.io.IOException: Domain name is not valid: java.lang.Exception: Error talking to DNS server UDP write error||Something's wrong with your DNS setup. Go to "Java Info" on the phone's menu and set DNS IP in the submenu (to for example "212.045.188.043"). You can also work around it using IPs instead of hostnames (such as "188.8.131.52:6667" instead of irc.freenode.net)|
Reported from Motorola T720.
|java.io.IOException : Error occured whilst opening connection||See below|
Reported from Nokia 6800.
|java.io.IOException:Close Indication on open0||See below|
Reported from Motorola T720.
|java.io.IOException||This is usually caused by wrong connection settings. Try following the provider's instruction more carefully.|
The usual problem is that the provider uses two different connection profiles, one for WAP and one for everything else. These typically have Access Point Names (APN) of "wap.provider.com" or just "wap", and "internet.provider.com" or just "internet". You want to use the latter with Virca. Exactly how you configure this is up to the phone, so check the manual.
|java.lang.Exception: Connection EOF@[number]||The connection was lost, and there were 'number' bytes in the buffer. This might be caused by a gateway sending WML responses on timeouts and such. Try another server and/or another port.|
Reported from Siemens S55.
|java.lang.IOException: -33||-33 is Symbian for Timed Out. This can occur if your timeouts are set too low in the phone's network configuration, you use the wrong host or port, or if your subscription only allows WAP. Try another host and port, or check your subscription details (or try port 80 ;).|
Reported from Siemens S55.
|905 attribute mismatch||Your phone chokes on the Midlet-Permissions line (can't blame it, since it's not midp1.0). Try this version: jad, jar. Source is the same, only the jad/manifest is different.|
Reported from the BlackBerry.