Singpolyma

Archive of "Jabber"

Archive for the "Jabber" Category

Awesome Voicemail for Android

Posted on

Most phone carriers these days have pretty poor voicemail capabilities. You have to call in to “check” your voicemail, your voicemail box can fill up, and voicemails just play in order without any good way to see what you want.

There have been some advancements in so-called “visual voicemail”, but they are not available to all of us. In this post I will show you how to set up an amazing voicemail for your Android-powered device that only requires your carrier support call forwarding (a pretty standard feature, these days). You will be able to get your voicemails instantly (or, if you don’t have cell data, whenever you have wifi), see immediately who they are from and keep them sorted by the sender, and also read a text approximation of the content so that you don’t always have to listen to it!

All services and technologies referenced in this post are Free Software or Open standards.

You’ll need a Jabber (also called XMPP) account

If you already know you have one, and know what your Jabber ID is, you can skip to the Movim login below. For everyone else, I suggest you register with Movim. Do this part from your computer (not from your phone or tablet). If you click that link, you’ll see a screen like this:

Register with Movim

Fill it in. Your Jabber ID will be whatever username you choose, plus “@movim.eu”. Don’t forget your Jabber ID or password! Push “Create” and you’ll see a page like this:

After Registering with Movim

Click the link that I have circled in red to be taken to the Movim login page, which looks like this:

Movim Login

Enter your full Jabber ID (username you selected followed by “@movim.eu”) and password. Congratulations, you are a part of the Jabber network!

Leave the logged-in Movim tab open while you do the next part.

Get a phone number with the voicemail service

The way this voicemail is going to work, you’re going to set call forwarding to another number. So you’ll get a number with the voicemail service that is in your local area so that the forwarding is a “local call”. The numbers cost $2.99 USD/month right now, but the first 30 days is free so you can try it without risk or handing over your credit card or anything like that.

Head to cheogram.com and you’ll see something like this:

Cheogram

If one of the displayed phone numbers is in your local area, you can click that. Otherwise click the “…” and you can search by area code for a local number. Write down the number you select, you will need it later. Once you have selected a number, you will see a screen like this:

JMP Register: fill out JID

Fill in your Jabber ID as shown and click “Submit” to continue. The registration process will send you a verification code as a message. So head back to your logged-in Movim tab.

Movim Chats Screen

If necessary, click the icon I’ve circled in red to go to the “Chats” screen. Then, select the conversation I’ve circled in blue to get your verification code. It will look like this:

Movim chat showing JMP verification code

That part I’ve circled in red is your verification code. Cut-and-paste that back into the registration process in the other tab, like so:

Entering the verification code for JMP registration

Press submit, and scroll all the way to the bottom of the next page. Here you will fill out and verify your real phone number (the one people use to call your cell phone already). We will use this later to record your voicemail greeting. The filled in page should look like this:

Set JMP forwarding number

When you press “Submit” you will receive a phone call at the phone number you entered. A voice will read you a verification code, which you must type into the form that will look like this:

JMP verification code from phone call

Press submit, and you’re done this part!

Set up the voicemail

Head back to your logged-in Movim tab:

Back in Movim, Cheogram wants to talk

If necessary, click the icon I’ve circled in red to go to your “Contacts” screen, then click the green checkmark I’ve circled in blue to allow cheogram.com to talk to you.

Click the cheogram contact

Then, click your newly-added Cheogram contact, which I have circled in red.

Select the "configure calls" action

Now we want to configure the call behaviour of your new number to always go to voicemail. So select the “Configure Calls” action, which I have circled above in red.

Set it to go to voicemail after 0 seconds

We want it to go to voicemail right away, so set it to 0 seconds and press “Submit”.

Message showing configuration has been saved

You should see a message indicating the configuration has been saved, as above. You can just click “Close” on this message.

Select the "record voicemail greeting" action

Your voicemail is working now, but the greeting on the mailbox will be a robot voice. Probably you want to record a greeting in your own voice, so click the “Record Voicemail Greeting” action, which I’ve circled in red above. You will receive a call on your phone, and a message will tell you to say your desired greeting at the beep. When you are done with your greeting, hang up, and it will be set automatically.

You can just close this one

Once you’ve recorded a greeting, just press “Close” to get rid of the notice on your screen. If you want to change your greeting at any time, just select the action again.

Setting up call forwarding

Of course, you need to actually set up your phone so that your carrier will forward calls you don’t answer to the voicemail service. Every Android version is slightly different, but I’ll walk you through a generic process and it should be fairly similar on your device.

Go to Android call settings

Go to your dialler app, tap the three-dots menu in the top right, and select “Settings”. This may also be under “Call Settings” in your global device settings menu.

Android dialler settings screen

If necessary, tap “Calls” to go into call settings.

Tap "Call forwarding"

Tap “Call forwarding” to go to forwarding-specific settings.

Call forwarding settings

There are often various call forwarding settings available, set everything (except for “Always forward”, you don’t want that) to the phone number you selected from the voicemail service, which you wrote down earlier.

Getting Voicemails on the Go

Your voicemail is all set up and working now! But, probably you want to be notified of new voicemails on your cell phone, and not through the Movim web interface on your computer. So you’ll need a Jabber app for your phone. I suggest getting Conversations which you can get for a couple bucks from Google Play, Amazon Apps, or F-Droid.

Conversations first launch screen

When you first start Conversations, it may ask if you want to create a new account. You already have an account, so choose “Use my own provider” which I have circled in red.

Convensations Login

You will then see a login screen, very similar to the Movim login screen. Enter your full Jabber ID (remember: your username plus “@movim.eu”) and password, then tap “Next”.

That’s it! You’re all set up to receive your amazing new voicemails directly to your Android phone!

Messaging: What I Want

Posted on

I’ve blogged numerous times about XMPP, SMTP, and communications evolution on the web.  I’ve suggested what I want ultimately and snippets of how we might get there.  Here, I am going to outline just briefly what I consider “next steps”.  The big ones.  Get these done, and you will have made a *huge* stride in online messaging:

  1. Allow offline messages (type normal or chat) to be collected as “email”.  Gmail sort-of does this by presenting unseen offline messages in the web interface inbox.  I want IMAP access to these in the inbox and their archive.  Heck, store them in a Unix mailspool (have to store them somewhere anyway) and existing IMAP servers will just work for you!
  2. SMTP messages are type=normal.  If you store offline messages in a mailspool and run an SMTP server on that spool, you’re mostly done.  Might be good to offer real-time deliver of those messages to the user of XMPP as well though.

That’s it! Sure, more can be done, but if you get the first one done I will be your biggest fan.  Do both and you’re well on your way to an evolution in how we deal with email (both from a user and a protocol perspective).  Yes, I’ve tried to build this.  I want to do it as an ejabberd module, but ejabberd is barely documented.  I’ll try again sometime if no one else does – maybe with ejabberd, maybe with someone else.

Replacing SMTP with XMPP

Posted on

The idea is out: XMPP is a perfect replacement for SMTP.  SMTP (the current standard e-mail program) is outdated for a variety of reasons, such as the fact that it’s not SPAM resistant and that you can’t know for sure (easily) who sent a message.

XMPP (a.k.a. Jabber) solves a lot of this and is a fully extensible protocol that has already been adopted as a standard for IM.  The benefits are many, and there is only one major hurdle: every server on the Internet would have to change software!

Regular readers may be able to guess my (and others’) solution to that problem: backwards compatibility!  When using XMPP for primary email, one must provide a bridge back to the SMTP world.  There’s no real way around that for now.  Fortunately, it’s not too hard.  There are a few options:

  1. Write a client that supports both XMPP and SMTP (through POP3 or IMAP) and have an identical address on both networks (think @gmail.com).
  2. Modify (/write) an SMTP-based mail server to support XMPP.
  3. Modify (/write) an XMPP server to support SMTP.

I really believe option #3 is the way to go.

What else may be required for this to become a reality?  Well, some way of keeping the traditional email experience (at least somewhat) may be required for the masses.  This means things like an inbox (for non-chat messages) and tags for message history.  Gmail actually already has this for offline messages.  There was also some work in 2004 on an XMPP client that supported something like this.

Some say that the encoding of emails must be retained.  I think this is bunk because it defeats the purpose of changing protocols and killing the old standard.  Some thought does need to go into the handling of offline payloads (especially file transfers / email attachments).  I think data: URIs may work for this, but something better may be in the works.

All it takes is one person who decides to adopt this as their primary way of functioning.  They develop some software, and it spreads from there.  I’m sticking with GTalk servers for Jabber for now (although I have the power to run my own @singpolyma.net), just because it’s easier for people who already have that address (I hate having multiple addresses).  What I’m really waiting for / looking for is a decent client for this.  Gmail has IM built in and handles this model for offline messages well, but it is not really even possible to reply to emails via Jabber, et cetera.  GTalk interfaces (including Gmail) actually don’t support any XMPP message type except chat well just yet.  We’re getting closer to something that could work though.

My Status

Posted on

We need a unified and federated status system.  Something so simple, it should be easy to federate.

Why?  Because right now I set my ‘status’ (ie, what I’m doing, a small tidbit to share) on my Jabber account, my Twitter account, and my Facebook account.  If I were a member in more places I’d be doing it more.  There needs to be a way to set it in one place and then propagate it.

But wait!  We do have a standard, federated system for this!  Jabber/XMPP itself is a presence (that includes status) protocol.  How could this be made to work?  Rather easily.

Already anything I say to the Twitter bot from Jabber goes into my Twitter.  What SHOULD happen is that whenever I change my Jabber status THAT goes into my Twitter.   Facebook could easily create a similar bridge.

IM vs Telephone

Posted on

Why is it that while we all love IM systems (geeks especially loving our fair Jabber) we still use telephones? Is it that we like the voice aspect? Well, most IMs have that option. I don’t even like that option. So what is it then?

You don’t ‘turn on’ a telephone.

It’s just on. So if someone is home and you call them, you will reach them. No problem. With IM you have to wait for them to be online… what a pain.

Some systems have tried to overcome this with hardware, the Skype phone being a prime example. This works well as long as people can be made to understand that they must leave their computers on ALL the time for it to work. I can’t help wondering though, could this be similarly overcome directly from text-only IM software?

I think it can, but we will have to change the way many people think about IM. It seems that to many people, IM only works when a person is actively at their computer (which is mostly true at this point), so when someone is set to Away, etc, they do not initiate conversation, or even send a message. But what if the programs tried to ‘call’ a person the way a phone does when it rings? What if Jabber clients (or other IM programs) turned the volume up on your machine and played a really loud sound when someone initiated a chat while you were set to Away? They could then send an auto-message to the person telling them that the person they have started chatting with is away and it is trying to call them 1…2…3…4…up to a configurable number, then, please leave a message (easy to do in Jabber).

We would have to retrain ourselves to leave the computer on and signed in during all waking hours (or all hours period for Google Talk where offline messaging still doesn’t work). We would have to retrain ourselves to try talking to people set to away, we would have to be willing to ‘run to the computer’ when it ‘rang’ just as we do with our phone. We wouldn’t have the conveniance of cordless like we do for phones (not at first anyway), but we would save ourselves so much time and effort… and maybe finally kill ‘real’ telephony.