UbuntuLiveChatSupport

Revision 41 as of 2006-04-27 23:57:36

Clear message

Summary

The [:UbuntuLiveChatSupport: UbuntuLiveChatSupport] aims to provide an interface to communicate to other ubuntu users with the same language & location, as well as to connect to the official ubuntu channel in Freenode.org. It also aims to get live chat support from ubuntu users right into the desktop menu, via "System > Help > Live Chat Support".

Rationale

People who don't speak english and want local support in their language will face a challenge to gain help in existing documentations, specially when there are just a few documentations for their language. But if they speak to someone that can understand their language, they can talk to an experienced user to provide them with answers. It might as well be positive, because there might be a good chance that they will collaborate on translation of documentations and software for their language, as well as contributing to the Ubuntu work.

Another problem with the current way of getting help in Ubuntu requires the user to read and browse documentations, but what most users really want is getting the right answers to the questions straight. Browsing and reading documentations sometimes require one to research on a particular problem. But to get the right answer from an experience user is the most easiest way.

Scope

This will use Gaim as an IRC client, but will not alter the main Gaim configurations. It will add the IRC channels defined in InternetRelayChat in Gaim buddy list, namely, Support Channels, and Team Collaboration Channels. Localization channels defined in this page is added automatically.

Localization

The user's location & language will be the basis of the default channel that will be automatically joined.

#ubuntu-<locale code> is the default channel, wherein <locale code> is based on their country. However, #ubuntu will also be added to the auto-join list.

Here are the list of the channels and their descriptions

Locale Code

Country

Channel Definition

AD

(Andorra)

Catalan Speaking Ubuntu Channel

AE

(United Arab Emirates)

Arabic Speaking Ubuntu Channel

AL

(Albania)

Albanian Speaking Ubuntu Channel

AM

(Armenia)

Armenian Speaking Ubuntu Channel

AR

(Argentina)

Spanish Speaking Ubuntu Channel

AT

(Austria)

German Speaking Ubuntu Channel

AU

(Australia)

English Speaking Ubuntu Channel

AZ

(Azerbaijan)

Azeri Speaking Ubuntu Channel

BA

(Bosnia)

Bosnian Speaking Ubuntu Channel

BD

(Bangladesh)

Bengali/Bangla Speaking Ubuntu Channel

BE

(Belgium)

German/French/Dutch/Walloon Speaking Ubuntu Channel

BG

(Bulgaria)

Bulgarian Speaking Ubuntu Channel

BH

(Bahrain)

Arabic Speaking Ubuntu Channel

BO

(Bolivia)

Spanish Speaking Ubuntu Channel

BR

(Brazil)

Portuguese Speaking Ubuntu Channel

BT

(Bhutan)

Bhutanese Speaking Ubuntu Channel

BW

(Botswana)

English Speaking Ubuntu Channel

BY

(Belarus)

Belarusian Speaking Ubuntu Channel

CA

(Canada)

English/French/Inupiaq/Inuktitut Speaking Ubuntu Channel

CH

(Switzerland)

German/French/Italian Speaking Ubuntu Channel

CL

(Chile)

Spanish Speaking Ubuntu Channel

CN

(China)

Chinese Speaking Ubuntu Channel

CO

(Colombia)

Spanish Speaking Ubuntu Channel

CR

(Costa Rica)

Spanish Speaking Ubuntu Channel

CS

(Serbia and Montenegro)

Serbian Speaking Ubuntu Channel (Jekavian Dialects)

CY

(Cyprus)

Greek/Turkish Speaking Ubuntu Channel

CZ

(Czech)

Czech Speaking Ubuntu Channel

DE

(Germany)

Sater Frisian/Lowlands Saxon/North Frisian/Upper Sorbian/German Speaking Ubuntu Channel

DJ

(Djibouti)

Afar/Somali Speaking Ubuntu Channel (Cadu/Laaqo Dialects)

DK

(Denmark)

Danish/English Speaking Ubuntu Channel

DO

(Dominican Republic)

Spanish Speaking Ubuntu Channel

DZ

(Algeria)

Arabic Speaking Ubuntu Channel

EC

(Ecuador)

Spanish Speaking Ubuntu Channel

EE

(Estonia)

Estonian Speaking Ubuntu Channel

EG

(Egypt)

Arabic Speaking Ubuntu Channel

ER

(Eritrea)

Afar/Blin/Ge'ez/Tigrigna/Tigre Speaking Ubuntu Channel (Cadu/Laaqo/Saaho Dialects)

ES

(Spain)

Aragonese/Asturian/Catalan/Basque/Galician/Spanish Speaking Ubuntu Channel

ET

(Ethiopia)

Afar/Amharic/Ge'ez/Oromo/Sidama/Somali/Tigrigna/Walaita Speaking Ubuntu Channel (Cadu/Carra Dialects)

FI

(Finland)

Finnish/Swedish Speaking Ubuntu Channel

FO

(Faroe Islands)

Faroese Speaking Ubuntu Channel

FR

(France)

Breton/Catalan/Basque/Occitan/French Speaking Ubuntu Channel

GB

(Great Britain)

Cornish/Welsh/Scots Gaelic/Manx Gaelic/English Speaking Ubuntu Channel

GE

(Georgia)

Georgian Speaking Ubuntu Channel

GL

(Greenland)

Greenlandic Speaking Ubuntu Channel

GR

(Greece)

Greek Speaking Ubuntu Channel

GT

(Guatemala)

Spanish Speaking Ubuntu Channel

HK

(Hong Kong)

English/Chinese Speaking Ubuntu Channel

HN

(Honduras)

Spanish Speaking Ubuntu Channel

HR

(Croatia)

Croatian Speaking Ubuntu Channel

HU

(Hungary)

Hungarian Speaking Ubuntu Channel

ID

(Indonesia)

Indonesian Speaking Ubuntu Channel

IE

(Ireland)

English/Irish/Gaelic Speaking Ubuntu Channel

IL

(Israel)

Hebrew Speaking Ubuntu Channel

IN

(India)

Arabic/Bengali/Gurajati/Hindi/Kannada/Malayalam/Punjabi/Tamil/Telugu/Marathi/Sanskrit/English Speaking Ubuntu Channel

IQ

(Iraq)

Arabic Speaking Ubuntu Channel

IR

(Iran)

Persian Speaking Ubuntu Channel

IS

(Iceland)

Icelandic Speaking Ubuntu Channel

IT

(Italy)

Italian Speaking Ubuntu Channel

JO

(Jordan)

Arabic Speaking Ubuntu Channel

JP

(Japan)

Japanese Speaking Ubuntu Channel

KE

(Kenya)

Oromo/Somali Speaking Ubuntu Channel

KG

(Kyrgyzstan)

Kyrgyz Speaking Ubuntu Channel

KH

(Cambodia)

Khmer Speaking Ubuntu Channel

KR

(South Korea)

Korean Speaking Ubuntu Channel

KW

(Kuwait)

Arabic Speaking Ubuntu Channel

KZ

(Kazakhstan)

Kazakh Speaking Ubuntu Channel

LA

(Laos)

Lao Speaking Ubuntu Channel

LB

(Lebanon)

Arabic Speaking Ubuntu Channel

LK

(Sri Lanka)

Sinhala Speaking Ubuntu Channel

LT

(Lithuania)

Lithuanian Speaking Ubuntu Channel

LU

(Luxemburg)

German/French Speaking Ubuntu Channel

LV

(Latvia)

Latvian Speaking Ubuntu Channel

LY

(Libyan Arab Jamahiriya)

Arabic Speaking Ubuntu Channel

MA

(Morocco)

Arabic Speaking Ubuntu Channel

MG

(Madagascar)

Malagasy Speaking Ubuntu Channel

MK

(Macedonia)

Macedonian Speaking Ubuntu Channel

MN

(Mongolia)

Mongolian Speaking Ubuntu Channel

MT

(Malta)

Maltese Speaking Ubuntu Channel

MX

(Mexico)

Spanish Speaking Ubuntu Channel

MY

(Malaysia)

Malay Speaking Ubuntu Channel

NI

(Nicaragua)

Spanish Speaking Ubuntu Channel

NL

(Netherlands)

Westerlauwer Frisian/Limburgish/Dutch Speaking Ubuntu Channel

NO

(Norway)

Norwegian/Nynorsk/Northern Saami Speaking Ubuntu Channel

NP

(Nepal)

Nepali Speaking Ubuntu Channel

NZ

(New Zealand)

English/Maori Speaking Ubuntu Channel

OM

(Oman)

Arabic Speaking Ubuntu Channel

PA

(Panama)

Spanish Speaking Ubuntu Channel

PE

(Peru)

Spanish Speaking Ubuntu Channel

PH

(Philippines)

English/Tagalog/Filipino Speaking Ubuntu Channel

PK

(Pakistan)

Urdu Speaking Ubuntu Channel

PL

(Poland)

Kashubian/Polish Speaking Ubuntu Channel

PR

(Puerto Rico)

Spanish Speaking Ubuntu Channel

PT

(Portugal)

Portuguese Speaking Ubuntu Channel

PY

(Paraguay)

Spanish Speaking Ubuntu Channel

QA

(Qatar)

Arabic Speaking Ubuntu Channel

RO

(Romania)

Romanian Speaking Ubuntu Channel

RU

(Russia)

Russian/Tatar Speaking Ubuntu Channel

RW

(Rwanda)

Kinyarwanda Speaking Ubuntu Channel

SA

(Saudi Arabia)

Arabic Speaking Ubuntu Channel

SD

(Sudan)

Arabic Speaking Ubuntu Channel

SE

(Sweden)

Swedish Speaking Ubuntu Channel

SG

(Singapore)

English/Chinese Speaking Ubuntu Channel

SI

(Slovenia)

Slovenian Speaking Ubuntu Channel

SK

(Slovak)

Slovak Speaking Ubuntu Channel

SN

(Senegal)

Wolof Speaking Ubuntu Channel

SO

(Somalia)

Somali Speaking Ubuntu Channel

SV

(El Salvador)

Spanish Speaking Ubuntu Channel

SY

(Syrian Arab Republic)

Arabic Speaking Ubuntu Channel

TH

(Thailand)

Thai Speaking Ubuntu Channel

TJ

(Tajikistan)

Tajik Speaking Ubuntu Channel

TN

(Tunisia)

Arabic Speaking Ubuntu Channel

TR

(Turkey)

Kurdish/Turkish Speaking Ubuntu Channel

TW

(Taiwan)

Chinese Speaking Ubuntu Channel

UA

(Ukraine)

Russian/Ukrainian Speaking Ubuntu Channel

UG

(Uganda)

Luganda Speaking Ubuntu Channel

US

(United States of America)

English Speaking Ubuntu Channel

UY

(Uruguay)

Spanish Speaking Ubuntu Channel

UZ

(Uzbekistan)

Uzbek Speaking Ubuntu Channel

VE

(Venezuela)

Spanish Speaking Ubuntu Channel

VN

(Vietnam)

Vietnamese Speaking Ubuntu Channel

XX

(Peace)

Esperanto Speaking Ubuntu Channel

YE

(Yemen)

Arabic Speaking Ubuntu Channel

YU

(Yugoslavia)

Serbian Speaking Ubuntu Channel

ZA

(South Africa)

English/Afrikaans/Southern Ndebele/Swati/Sotho/Northern Sotho/Tswana/Tsonga/Venda/Xhosa/Zulu Speaking Ubuntu Channel

ZW

(Zimbabwe)

English Speaking Ubuntu Channel

The format that will appear to the buddy list would be like this:

PH (Philippines) English/Tagalog/Filipino Speaking Ubuntu Channel

All of the above localized channels would be automatically added in gaim's buddy list, under Local Ubuntu Channels.

Default Channels

Gaim's buddy-list will include a group called "Auto-Join Default", and will have two subcategory, namely, "Official Ubuntu Help Channel" (#ubuntu), and localized ubuntu channel, which will appear according to the user's localization.

Design

Invocation and overall design

The software will be linked right into "System > Help > Live Chat Support" menu, and will have the stock people icon. It will have an intro screen, a freenode.org login screen, a register button. By registering to freenode.org, an information will be displayed about the advantages of registering their nick, and guides you to registration process. It automates the registration based on the information provided. It also includes nick availability option to check if the nick is available, or currently using it.

Registration System

By registering, the user will have alot of advantages, user will have a nick that he/she can use over and over again. People will also know the user by reputation, and how the user communicates to other user. Registered users can also send private messages to other registered users.

Basic and Personal Information

Basic information are the required information by Freenode. All personal information is handled by NickServ including optional informations.

Optional information are non required information by Freenode. Users can personalize them.

Basic Information

  • Nick/Username
  • Password
  • E-Mail Address

Optional Information

  • Website/URL
  • Phone Number
  • GSM/SMS Cellular Phone Number

Need to include http://

example: http://www.example.com

International Phone Format

  • +xxx-(yyy)-zzz-zzzz

Where:

  • xxx = Country Code
  • yyy = Area or City Code
  • zzz-zzzz = Local Number

example: +1-(800)-123-4567

International GSM/SMS Phone Number Format

  • +8812345678

Where:

  • 88 = Country Code
  • 12345678 = Cellphone number without leading 0

Desktop Integration

Nautilus integration and Evolution mail integration is enabled by default. This would be easy to send files to a user in IRC.

Profile Handling

Preferences and Buddy List will be saved for a particular Nick. Every nick will create a seperate profile for the current session. The seperate profile will be configurable and be used over and over again.

Screenshots

attachment:ubuntu-live-chat-support-menu.0.3.14.png

The software aims to be launched via System > Help > Live Chat Support

Introduction Screen

attachment:ubuntu-live-chat-support-intro-0.3.14.png

The intro screen will tell the users about the process, and provide a brief introduction about the software.

Login screen

The login screen will ask about their freenode.org username and password. However, if they are not yet registered, they will be prompted to click the "Register" button.

Registered user handling

Login screen have a disabled button if no password is given, this ensures logging of registered nick. However, non-registered user can still login, by clicking the "Use unregistered login" checkbox.

attachment:ubuntu-live-chat-support-login-registered-0.3.14.png

It will also auto set the nick based on the user's account, for example, if Foo Roberts uses "fooroberts" as an account to login to his computer, then "fooroberts" will be set as a nick in Ubuntu Live Chat Support. If he don't use fooroberts as a nick in freenode, he can change it.

Non-Registered user handling

By clicking the "Use unregistered login" checkbox, a user's nick will have a "guest_" prefix. for example, foo would be guest_foo.

attachment:ubuntu-live-chat-support-login-unregistered-0.3.14.png

When the user click the checkbox, the password field would be disabled, and the "Connect" button would be enabled.

Registration

Intro screen about advantages on registering a nick.

The intro screen will tell the user about the advantages of registering their nick. The intro screen is targetted for Ubuntu users getting technical support in his/her computer in Freenode.

attachment:ubuntu-live-chat-support-register-intro-0.3.14.png

Checking nick's availability.

In the first step of registration, a user can check the nick's availability by clicking the "Check Availability" button. The nick entered here will be used for the final step of registration.

attachment:ubuntu-live-chat-support-register-check-0.3.14.png

Sending Registration

The nick that will be sent to freenode will be defined by the previous step. If a user's nick is taken, it will tell the user to choose another nick, and be able to check it's availability again, until a unavailable nick is found. This step will ask the user's basic information as well as the optional information. The password & confirm password should be identical to send the registration.

attachment:ubuntu-live-chat-support-register-send-0.3.14.png

Logging your registered nick

Once the registration is successful, the user will be redirected to the login menu, and the user's chosen nick will be set in the username field. The user can now enter a password to connect to the ubuntu support channels.

attachment:ubuntu-live-chat-support-register-login2-0.3.14.png

Buddy List and Chat Screen

New users, registered users and unregistered users will have 5 predefined groups in their gaim buddy list. These includes the localized ubuntu channels, the team support groups, support and help channels, and auto-join default channels.

attachment:ubuntu-live-chat-support-buddylist3-0.3.14.png

attachment:ubuntu-live-chat-support-buddylist2-0.3.14.png

attachment:ubuntu-live-chat-support-chat-0.3.14.png

The user will be automatically join to a particular #ubuntu-<locale code> channel, and the #ubuntu channel, Localized channels is based on your locale and country.

Old Screenshots

Old screenshots is available below.

See [:UbuntuLiveChatSupport/Versions/PreviousRelease: PreviousRelease]

Code

The code is written in GTK+ 2.0, C and perl, with sh scripts as scripting backend.

Patch

attachment:09_help_submenu.patch

This patch for gnome-panel will enable the System > Help > Live Chat Support organization.

Source Package

attachment:ubuntu-live-support-0.3.14.tar.gz

Third release, version 0.3.14 contains alot of improvements over the older versions. It has, an automated registration system, better GUI improvements, and more...

attachment:ubuntu-live-chat-support-0.2.tar.gz

The second release, contains lot's of improvements, like seperate account by nick profile handling, localization. Pretty much works perfectly.

attachment:ubuntu-live-chat-support.tar.gz

This is the first release of the software, but it's quite stable.

Binary Package

attachment:ubuntu-live-support_0.3.14-5_i386.deb (stable),

  • Overhauled the Process ID handling, now it's killall free!
  • Change the desktop entry to Applications;GTK;Core;
  • Change the way parts of the software is called, now uses modular approach on all things.
  • Impliment xchat-style in gaim interface.

attachment:ubuntu-live-support_0.3.14-4_i386.deb, this solves the issues regarding nick registration. It now use a true nick checking capability, for online or offline nicks. Security imposed time by Freenode.net is added to nick registration to intimidate spammers and abusers.

  • Due to security imposed delays for freenode registration, because of abusive bots, delays are now used in nick registration.
  • Delay time can change dynamically, this release fixes by capturing the exact delay time and add 20 more seconds if the machine is busy and doing multitasking jobs. The constant 200 seconds is removed.

attachment:ubuntu-live-support_0.3.14-1_i386.deb

GNOME Panel Binary Package

attachment:gnome-panel_2.14.1-0ubuntu5_i386.deb

This is the prepatched version of the gnome-panel that enables the menu organization.

Installation

For compiling the source, you need build-essentials, gtk+2.0-dev, autotools-dev, perl, and perl standard modules.

For installing the binary, please see dpkg, apt informations for instructions on installing deb packages.


CategorySpec

Comments

glatzor: gaim seems to be quite uncomfortable for irc actions. I think that writing a small irc client around python-irc would be a cleaner solution.

GuillaumeDesmottes : Why not use xchat-gnome? He's very easy to use, have a clean interface and good GNOME integration. IMHO, gaim is really not a good tool for irc chat.

I don't think #ubuntu-<country code> is the right way to go for localisation. For example, #ubuntu-be is not a support channel; support for Dutch, French & German speaking people in Belgium is in #ubuntu-nl, #ubuntu-fr & #ubuntu-de respectively, while the Belgian channel is for the coordination of Ubuntu-related activities in Belgium. --JanClaeys

The same goes for Switzerland. The support channels should be organized by language, not nationality nor location. --TormodVolden

JeromeGotangco: We don't have a graphical IRC client on the default install with the exception of GAIM, hence the specification. There is also irssi, but that is terminal-driven. +1 with JanClaeys on the country code issue. We could still consider the country code, but perhaps for locoteam concerns rather than support? Some of the codes are not even active, so might as well trim it, for exaple, -kr doesn't exist for korea - its actually -ko Smile :)

[:joelbryan: joelbryan:] I talked to [:DennisKaarsemaker: Seveas] regarding the channel localization. He made a very good progress with the problems about the local ubuntu channels in freenode. For example, -mx doesn't exist because someone register it, so people just join #ubuntumexico instead, Seveas reclaim -mx and advised them to use #ubuntu-mx officially for ubuntu mexico.

I think the best way to do l10n would be to have a gettext "translateable" string that contains one or more channels to show (e.g. CSV-formatted or something similar). That way local teams can decide for themselves how to organize their channels... --JanClaeys

RunarIngebrigtsen: This is excellent. What about the OEM situation? When we roll out desktops and sell support it'd be nice to auto-add our own (paid) support channels like IRC, Jabber and SIP for both Gaim and Ekiga. It seems to me this would be the right tool for such.

I made another app, and is available in [:UbuntuCommercialSupport: UbuntuCommercialSupport] for paid support in Canonical Ltd. For auto-add OEM local support, I would like to know the channels that has those services. - [:joelbryan: joelbryan]