The One Ring

The One Ring
So you might be using Dialcentral and be thinking "the chat system is horrible and I want to use my system's contacts. Why can't it be integrated with my phone software like Skype?

You are in luck. The One Ring is a way for you to integrate That One Number to Rule Them All.

The One Ring let's you setup an account with the system similar to Google Talk, SIP, or Skype. You can then use the same chat interface you use with GoogleTalk as you use to Text through GoogleVoice. You also can initiate callbacks using the dialpad.

Features
Basic features:
 * Support for GV Contacts w/ names
 * Can be disabled by setting the contact polling time to -1
 * Support for people not on your contact list.
 * Support for system contacts (Maemo 5 only)
 * Setting of presence: Available, Away (check for messages less often), and Do Not Disturb (disables in-bound phone calls)
 * Sending and receiving texts/voicemails
 * Receiving texts can be disabled by setting the polling time to -1
 * Initiating a google voice callback

Getting The One Ring
Getting The One Ring
 * Maemo 4.1: Available in extras through the Application Manager.
 * Maemo 5 or available in extras through the Application Manager.
 * Ubuntu

The One Ring has been tested on:
 * Ubuntu 10.04
 * Maemo 4.1
 * Maemo 5

Contribute

 * File a bug
 * View existing bug reports
 * talk.maemo.org thread
 * Garage Project (including code)
 * Learn about extras-testing and checkout the Package page (including voting)

The One Ring is available under the LGPL v2.1 license

When Reporting a bug
Please report an approximate percentage of how reproducible the issue is

Please include what device and/or version of OS/software you are using

Does what you are doing work in Dialcentral?

Try out the Debug Prompt.
 * Start a chat session with your account number
 * Type "help" for a list of available commands
 * Type "help COMMAND" for information on that command
 * Report back the result of various commands

Please include a log (will include sensitive information) when reporting issues. The log can be found at Code:

~/.telepathy-theonering/theonering.log

or be saved to a nicer location through the command prompt Code:

save_log ~/MyDocs/.documents

It would be really helpful if some dbus output was captured. To do that run the following command, reproduce the bug in The One Ring, and then stop logging by hitting Ctrl+c (Experienced DBUS people, is there a more specific command to filter for TOR only?) Code:

dbus-monitor --session > dbus.log

Note: DBus logs might include your password. I recommend grepping for and censoring it before sending it in.

Internal Behavior
Checking for new Texts, Voicemail, and Contacts:

I know of no official API for Google Voice nor any way to reuse a connection. People have gotten push notifications to work but that was through hacks requiring forwarding texts to an email address that supported push notifications.

The One Ring has a master state machine with a state per presence. There are than state machines per item (contact list, texts, voicemail).

The contact list refreshes on a set schedule (every X minutes)

The voiceamails refreshes on a set schedule (every X minutes) or every Y minutes for N times when you reject or miss a call.

When "Available" Texts refresh from every X seconds to every Y minutes, depending on how long its been since you've sent or last received a text. When "Away" texts refresh every Z minutes.

When configuring polling times, setting a value to "0" means "chose default" and "-1" means "never poll".

Sending a Text

On Maemo 5 there is an interface for texting and one for IM. The One Ring operates through the IM interface.

Callback Number:

To provide flexibility with how Telepathy clients implement account configuration and screen names, you can set your callback number one of two ways


 * In the account settings (usually under "Advanced")
 * Through your screenname (sometimes called Nickname)

If you do not configure it in your account settings, The One Ring will guess which callback number to use and set your screen name accordingly. The priority in how it guesses which callback number to use is


 * Area code is 747 (gizmo)
 * Phone name includes "gizmo"
 * Phone name includes "computer"
 * Phone name includes "sip"
 * anything else

Calls

When you make a call (whether through the dialpad or other means), a "phone call" will be started and immediately disconnect. This informed GV to start a call. Immediately after you should have the call connected.