Messaging and Communication - iPhone Hacks

by Damien Stolarz, Adam Stolarz, David Jurick
iPhone Hacks book cover

This excerpt is from iPhone Hacks. With iPhone Hacks, you can make your iPhone do all you'd expect of a smartphone -- and more. Learn tips and techniques to unleash little-known features, find and create innovative applications for both the iPhone and iPod touch.

buy button

Chapter 3. Messaging and Communication

Over the last several decades, computers, phones, and Internet platforms have provided us with dozens of different modes for text-based multimedia communication: email, chat, text messaging, instant messaging, and multimedia messaging.

The iPhone and iPod touch support email exceptionally well, providing high-fidelity support for many common email attachments. The addition of near-instant "push" email support to the iPhone—for free—has enhanced real-time communication.

This chapter introduces the iPhone email system and various clever ways to use it. It also covers the other must-have communication tools—SMS, IRC, and IM—and ways to get the most out of these protocols. Finally, it presents several workarounds to solve the iPhone's remaining deficiencies in these areas.

Get the Most from iPhone Email

You can use a free Yahoo! push email account as extra "cloud" storage for your iPhone.

Sure, the iPhone is a "computer in the palm of your hand." But it lacks a few key features that desktops have. The iPhone has a tiny keyboard, making it difficult to enter long URLs. Frustratingly, the iPhone still lacks (as of this writing) copy-and-paste functionality, making the manipulation of URLs—a key part of Internet power surfing—a difficult task. And the iPhone has resisted the urge to provide system-wide filesystem access, preferring to keep data (pictures, videos, podcasts, and notes) in their own application "silos."

Fortunately, the iPhone does have a feature that can be leveraged into a makeshift copy-and-paste and filesystem—email. Many of the built-in iPhone applications have an integrated "email this" feature that allows URLs and picture attachments to be emailed. And because the iPhone can connect to the many free mail servers, saving files and URLs is easier than it seems.

iPhone Email Support

The iPhone's email application is probably the easiest to set up of any phone-based email. It has flexible support for IMAP, POP, Exchange, and AOL. One of the ways that iPhone email excels is in its ability to preview HTML email, display most common attachments (.pdf, .doc files, and .xls files), as well as to follow the links in emails.

One of the main complaints about early versions of the iPhone was its lack of "push" email—the iPhone "pulled" email on a schedule and the shortest interval that you could set for updates was every 5 minutes. That was resolved with firmware Version 2, putting the iPhone on an even playing field with the ubiquitous BlackBerry. You can get push email from an Exchange server, from Apple's MobileMe service, or even from a free Yahoo! email account (Figure 3.1, “Yahoo! push email”). iPhone (and iPod touch) email is easy to set up even without being connected to a computer.

Figure 3.1. Yahoo! push email

Yahoo! push email

Email as a Clipboard and Hard Drive

Although there was a time, long ago, when large email attachments were a burden, for most of the free email services, those times are past. Yahoo! and Google both provide free IMAP accounts with tremendous storage (Google calls their plan "Infinity+1," as they are continually increasing the amount of storage available to each user). Therefore, it's quite easy to set up an additional email account that's only for private use for your own personal storage.

Anything that the iPhone can play can be attached to an email. Most graphic image formats, MP3 and AAC music, MP4 videos, Microsoft Office (Word, PowerPoint, and Excel files), and PDF files can be viewed. As mentioned, Yahoo!'s email even supports push on the iPhone, so it's an ideal candidate for this use, as there will be almost no delay between sending yourself a file or link—from your desktop—and having it show up on the phone.

Setting Up

The first step is to create a free account at Yahoo! (Figure 3.2, “Yahoo! Email signup—you know the drill.”).

Figure 3.2. Yahoo! Email signup—you know the drill.

Yahoo! Email signup—you know the drill.

Go to Settings→Mail→Accounts→Add Account and choose Yahoo! Mail (Figure 3.3, “So many mail options!”). Fill out the required information in the new window (Figure 3.4, “Yahoo! free push email storage”). Once you're done, just hit the Save button at the top right. Your iPhone will then connect with Yahoo! to verify the information. Once it finishes verifying, your additional account(s) will be saved and visible in the Accounts section of the Mail screen. If you click Advanced, you can verify that push mail is enabled.

Figure 3.3. So many mail options!

So many mail options!

Figure 3.4. Yahoo! free push email storage

Yahoo! free push email storage

You can send any reasonably sized files—including multimegabyte MP3s and movies—to this email "hard drive" (Figure 3.5, “Sending files to the private email account”).

Figure 3.5. Sending files to the private email account

Sending files to the private email account

Once these notes-to-self get pushed to your iPhone, you can access any of the documents for view or playback by clicking their icons in the message (Figures Figure 3.6, “Email storage” and Figure 3.7, “Viewing an attachment”).

Figure 3.6. Email storage

Email storage

Figure 3.7. Viewing an attachment

Viewing an attachment

If you ever need a hard copy, you can quickly and easily forward them to someone who has a printer. You can even create "folders"—a very filesystem-esque concept—via the Yahoo! Webmail page or the iPhone and organize your various "files" (attachments) just like you might on your hard drive. The great thing is that these will be cached (downloaded) onto your iPhone, be web-accessible, so if you should need to restore your iPhone, you won't lose any of them.

Another useful trick is to bookmark links on websites. Many websites have a "recommend this" or "email this link" feature for articles. You can use this private iPhone email address for those kinds of messages, so they don't clutter up your normal inbox.

Note

While we're on the subject of free "push" services, it's important to note that Google offers free Calendar and Contact syncing. Check out www.google.com/mobile/apple/sync.html.

Copy and Paste

As mentioned before, the closest the iPhone comes to copy-and-paste is the inclusion of an "email this" in many iPhone applications, allowing one to send web URLs, notes, pictures (Figures Figure 3.8, “"Copying" a URL to the "clipboard"” and Figure 3.9, “"Copying" a photo to the "clipboard"”), and on jailbroken phones, movies, and any other file accessible on the phone.

Figure 3.8. "Copying" a URL to the "clipboard"

"Copying" a URL to the "clipboard"

Figure 3.9. "Copying" a photo to the "clipboard"

"Copying" a photo to the "clipboard"

If your phone is jailbroken, installing MobileFinder (found in Cydia the section called “Install Third-Party Apps” and shown in Figure 3.10, “MobileFinder Icon”) will allow you to attach any file in the entire filesystem to an email. This is very convenient for backups and for sending movies, audio files, or other content that is on the iPhone and needs to be backed up, shared, or saved in the inbox for convenient access. Using MobileFinder the section called “Manipulate Your iPhone's Filesystem”, navigate to the file you want, as in Figure 3.11, “Backing up the Address Book via email with MobileFinder”, then click the "E-Mail" button on the bottom left. This will launch your default email account with the selected file attached.

Figure 3.10. MobileFinder Icon

MobileFinder Icon

Figure 3.11. Backing up the Address Book via email with MobileFinder

Backing up the Address Book via email with MobileFinder

Unleash the Full Power of Texting

Go beyond Apple's barebones SMS application.

The Mobile SMS application that comes on the iPhone is functional, but it lacks many of the text messaging features that people have grown used to on other phones. An initial lack of multiple-recipient texting was remedied in firmware Version 1.1.3, but some serious limitations remained. Multimedia Messaging Service (MMS), also known as picture messaging, provided by every mobile carrier and supported by most camera phones, is completely missing from the iPhone.

There are other reasons the built-in SMS just doesn't cut it. Many people want to send canned messages from a message template—"I'm going to be late, please have the call without me"—without having to type it all. And even though the iPod touch, not being a phone, doesn't have any built-in texting support, people want to send messages with it as well.

Luckily, there are some useful tricks and third-party applications to help you get around the SMS and MMS limitations. Many of these solutions use built-in features of the iPhone or are App Store apps and thus don't require jailbreaking.

Send Multiple Text Messages via Email

Prior to firmware 1.1.3, sending a SMS to multiple recipients was impossible. Even if your iPhone has 1.1.3 or later, the SMS that you send to multiple recipients still diminishes your plan's monthly allowance of text messages. Sending text messages via email conserves your valuable text message allotment and allows iPhone owners to use email groups to still send SMS to multiple recipients.

The only requirements for accomplishing this are that you know what cellular service provider each of your recipients uses, and that you are connected to the Internet with either Wi-Fi, 3G, or EDGE. No jailbreak is required! As long as you know this information, the rest of this process is a piece of cake.

First, write down the 10-digit cellphone numbers of the contacts that you would like to send the SMS message to. Next, open your email account and compose a new email. In the To field, type in the 10-digit phone number followed by an "@" sign and the domain address associated with that person's cellular service provider. The domain addresses and character limits of major U.S. cellular service providers are listed here:

  • Older AT&T Wireless: xxxxxxxxxx@mmode.com (110- and 160-character limits for TDMA subscribers and mMode/Next Generation network users, respectively)

  • Cingular: xxxxxxxxxx@mobile.mycingular.net (160-character limit)

  • Newer AT&T Wireless: xxxxxxxxxx@txt.att.net

  • T-Mobile: xxxxxxxxxx@tmomail.net (140-character limit)

  • Verizon: xxxxxxxxxx@vtext.com (160-character limit)

  • Sprint PCS: xxxxxxxxxx@messaging.sprintpcs.com (160-character limit)

Say, for example, that you wanted to send messages to the recipients whose numbers are (619) 123-4567, an AT&T Wireless subscriber, and (818) 123-4567, a Verizon subscriber. You would write them as and , pressing the blue plus sign button to add additional recipients. Characters written in the subject and message fields of the email will be included in the text messages as "(subject)message". Figure 3.12, “Entering multiple numbers into a new email to send as SMS” shows the completed message.

Figure 3.12. Entering multiple numbers into a new email to send as SMS

Entering multiple numbers into a new email to send as SMS

Because you are sending the SMS messages via email, it won't be billed as a text message, and it won't count against your monthly allowance of text messages. However, it will still count as an incoming SMS message for the recipient, which could count against their monthly text message allowance and/or incur a charge, depending on their service provider.

In addition to multiple SMS recipients, this email technique will work for a single recipient. By sending SMS text messages to one or more recipients using your email, you'll be saving money, as these won't be billed as normal outgoing SMS text messages.

A similar approach is taken by several of the App Store SMS messaging applications, such as Maildash by PureBlend Software (Figure 3.13, “Using Maildash”) and Quicksend from Absolute Apps. These applications use SMS gateways to forward emails to SMS clients.

Figure 3.13. Using Maildash

Using Maildash

Send SMS Through Your Instant Messenger

A second way to get text messages out of your iPhone or iPod touch is through instant messaging. Both Yahoo! and AIM use SMS gateways that allow you to text directly from an IM client. To send text messages via IM, just add a "buddy" using the recipient's phone number with a plus before it, as shown in Figure 3.14, “Adding a mobile number in Mac AIM”. You'll get responses to this SMS in your IM chat.

Figure 3.14. Adding a mobile number in Mac AIM

Adding a mobile number in Mac AIM

Although AIM can text only domestically, Yahoo! has some worldwide texting capability. You can see a list of supported locations here: http://messenger.yahoo.com/features/sms.

There's an App Store app called beejive (Figure 3.15, “Sending SMS with beejive”) that also sends SMS through AIM or Yahoo! messaging, and integrates with your iPhone address book so you don't have to manually add the recipient phone numbers.

Figure 3.15. Sending SMS with beejive

Sending SMS with beejive

Sending MMS Messages

Here is a way for you to send and receive MMS without any jailbreaking whatsoever. As with SMS, to send a picture message, you must first know what cellular service provider the recipient uses. Once you know this information, use one of following MMS email addresses, replacing xxxxxxxxxx with the recipient's 10-digit mobile number:

  • AT&T Wireless: xxxxxxxxxx@mms.att.net

  • Cingular: xxxxxxxxxx@mms.mycingular.net

  • Sprint PCS: xxxxxxxxxx@messaging.sprintpcs.com

  • T-Mobile: xxxxxxxxxx@tmomail.net

  • Verizon: xxxxxxxxxx@vzwpix.com

Once you have the recipient's information ready, open the picture from your iPhone's Camera Roll, and click the icon at the bottom left to pull up a menu (Figure 3.16, “The email Photo button”). Select Email Photo, and you'll be brought to the email composition screen with your picture attached to the email. On the first line, enter the recipient's cell number followed by the appropriate MMS email address as shown in Figure 3.17, “Sending an MMS message to a recipient using Verizon Wireless”. If you want to send it to more than one person, just add an additional email address in the To field. Then press Send, and the recipient will receive the picture as a normal MMS message.

Warning

Although sending this MMS via email is free for you, the recipient will still be charged by their service provider for an incoming MMS message.

Warning

If the recipient has an iPhone that does not support MMS, you will have to send the picture to their regular email address instead of the previously described MMS email addresses.

Note

Once you know this process will work, you can add a "phone-email" to your contacts' email listings in your Address Book. You could also do this in advance on your computer's address book and sync it over to your iPhone.

Figure 3.16. The email Photo button

The email Photo button

Figure 3.17. Sending an MMS message to a recipient using Verizon Wireless

Sending an MMS message to a recipient using Verizon Wireless

Receiving Multimedia Message Service (MMS) on the iPhone

Unfortunately, the iPhone does not support Multimedia Messaging Service (MMS). Some carriers implement an alternate method of receiving the message via the Web. In the U.S. market on AT&T, when you receive an MMS, you may get an email message such as the one in Figure 3.18, “The email”, telling you to log into a web page. Without copy-and-paste functionality, accessing this message is a pain, but it can be done.

Figure 3.18. The email

The email

Enter this data into the form they send you (Figure 3.19, “Retrieving an image”).

Figure 3.19. Retrieving an image

Retrieving an image

This allows the message to show up, as you can see in Figure 3.20, “The picture retrieved”.

Figure 3.20. The picture retrieved

The picture retrieved

Because of this inconvenience, it's best to have your would-be senders find an alternative way to send you multimedia messages. Some options are:

  1. Have the sender attach the media via email to any email address you can check on your iPhone. If you have a lot of friends who send you messages, you can set up a separate email account the section called “Get the Most from iPhone Email”. As long as the media is in an iPhone-compatible format (JPEG, PNG, TIFF, MP3, and so on), you'll be able to play it back or view it on the iPhone. And because this process is done completely by email, neither you nor the sender will incur any MMS charges from your service providers. If the sender is on an iPhone as well, the solution is obvious—have them email the picture.

  2. Alternatively, if the sender only knows your cell number, they can host the picture on a web page (if it's not already hosted), and send an SMS message containing a link to the web page. Depending on their phone, they may have a feature that allows them to send a link as a text message, or to copy and paste the URL from their phone's web browser into an email.

Note

the section called “Enable MMS Picture Messaging on Your iPhone” shows how to receive MMS natively—but requires jailbreaking.

Text Your iPhone with Your Desktop Instant Messenger

Texting is a fast way to get data to your iPhone.

Email is a great way to send messages to your phone see the section called “Get the Most from iPhone Email”, but often, tiny ephemeral to-dos or URL messages get lost in the morass of distracting email messages. And if you don't have push email configured just right, the message might not arrive right away. The sheer inconvenience of booting up an email program, typing in your iPhone email address, and waiting for it to send begs for another solution.

Fortunately, there's a way to get important notes onto the iPhone: text messaging. Using an IM-to-SMS gateway such as those provided by the AOL Instant Messaging (AIM) or Yahoo! Messenger desktop clients, you can very easily send URLs and short messages to your phone. This gives you prominent notification on your phone's screen, as well as an audible alert, so if the message is "don't forget to buy milk," you've got a good chance of noticing it before you get home.

Warning

Depending on the text message option attached to your cellular plan, you may pay extra to send or receive text messages.

Add Your Phone to Your Instant Messenger

First, create an account on either AIM or Yahoo!; for this example, we use an AIM user called "iphonehacks." The look of the screen varies by client (we're using a Mac here) but the approach is the same in most clients: add a user using the plus sign and the 10-digit number (Figure 3.21, “Cell phone numbers in AIM”).

Figure 3.21. Cell phone numbers in AIM

Cell phone numbers in AIM

Note to Self

Sending a note to yourself is quite fast due to the fast-delivery design of the text messaging system (that's part of what your text message plan is paying for). Typing phone numbers into the IM is probably the quickest way to get them from the desktop to the phone and not lose it, which is especially useful if someone is reading a number to you (Figure 3.22, “Sending a phone number”). The number will be converted to a text message through AOL's IM-to-SMS gateway, and sent to the iPhone. The iPhone recognizes it as a phone number, so you can click it and quickly dial it.

Figure 3.22. Sending a phone number

Sending a phone number

Now your small bits of information—shopping lists, to-do lists, and the like—won't get lost in your email inbox when sent via SMS.

Shrinking URLs for Text Messages

Let's say you needed to note down an address for the Apple Store (Figure 3.23, “Selecting a Google Maps URL”) and you wanted to send that map URL to your phone.

Figure 3.23. Selecting a Google Maps URL

Selecting a Google Maps URL

Because URLs can be very long, if you send them via SMS, they're going to be chopped into multiple text messages, may cost more to send, and won't be clickable when you receive them anyway (Figure 3.24, “A long URL broken into two messages”).

Figure 3.24. A long URL broken into two messages

A long URL broken into two messages

The trick is to go to http://tinyurl.com. There you will find a form where you can paste in the URL. TinyURL hosts a link to your URL that is much shorter —just a few characters (Figure 3.25, “TinyURL makes URLs tiny”).

Figure 3.25. TinyURL makes URLs tiny

TinyURL makes URLs tiny

These tiny URLs fit clickably into a single SMS (Figure 3.26, “Clickable tiny URL”).

Figure 3.26. Clickable tiny URL

Clickable tiny URL

It's worth noting that Google already provides another way to send the URL via its own SMS gateway, as shown in Figure 3.27, “Google offers send-to-phone”. A number of websites are incorporating features that allow you to send bits of information to your mobile via SMS, so look for them.

Figure 3.27. Google offers send-to-phone

Google offers send-to-phone

Enable MMS Picture Messaging on Your iPhone

A little change to your iPhone's messaging plan lets you send and receive MMS messages with SwirlyMMS on jailbroken phones.

The iPhone does so many things quite well, making it all the more frustrating when the iPhone fails to perform some normal task. Tethering, copy-and-paste, forwarding SMS…the list goes on. And sending and receiving MMS picture messages, just like on any normal phone, is another one of those frustrations.

Some people don't want to work around their phone's inability to receive MMS, as in the section called “Text Your iPhone with Your Desktop Instant Messenger”—they want it to "just work." The good thing is that the iPhone is very capable of it. It just takes some software—and a change to the texting plan—to make it work. Specifically, it requires:

  1. Changing your cellular plan to enable Multimedia Messaging (a.k.a. Picture Messaging)

  2. Jailbreaking the phone the section called “Open Your iPhone or iPod touch to Customization by Jailbreaking”

  3. Installing SwirlyMMS

Picture Messaging, WAP, and WAP Push

Wireless Application Protocol, or WAP, is a standard allowing phones to access the Internet. WAP is used extensively on most phones that have a "wireless Internet" feature. Because most phones have far less computing power than a desktop computer, this set of standards allowed web pages to be formatted for the small screen and to reduce the bandwidth necessary to deliver them.

Note

For the protocol-minded, WAP could be considered a sort of "TCP/IP" for phones, providing TCP-like streams through the Wireless Transaction Protocol (WTP), UDP-like data delivery through the Wireless Datagram Protocol (WDP), and a sort of "compressed HTTP" through the Wireless Session Protocol (WSP).

WAP Push is a network-to-phone push protocol that sends a WAP URL to the phone for it to then retrieve automatically without user intervention—sort of like texting a web address directly to the phone. The iPhone was promoted as the first phone with "real Internet" and, like many advanced smartphones, was able to use the Internet TCP/IP protocols directly. Subsequently, Apple developed a separate push architecture for MobileMe and Exchange on the iPhone.

As a result, most iPhone data plans do not have the "WAP Push" feature enabled by default. Before you can add support for MMS, you must add WAP Push to your plan, without removing access to the normal WAP gateway that the iPhone uses. Typically, you can call your provider and request that it be added to your plan if you don't already have it. If they offer to transfer you to "iPhone technical support," don't let them, because you're asking for a very un-iPhonic thing.

The technical changes that need to be made, once you get hold of your carrier's technical sales representative (see following section), are:

  1. Enable WAP Push.

  2. Preserve both the old and new WAP gateway (i.e., don't disable the iPhone features).

  3. Change the texting plan to a non-iPhone plan (i.e., a texting plan that supports Picture messaging).

  4. Leave the iPhone data plan intact (allows visual voicemail to work).

  5. Resend over-the-air activation messages, or OTAs, to the phone.

The forums at www.swirlyspace.com have lots of data on how to configure various worldwide GSM carriers to allow MMS.

Adding WAP Push to a U.S. AT&T Account

Although your carrier may vary, the majority of U.S. domestic iPhones are on AT&T, so this hack will show you how to get it working on AT&T.

  1. Call 888-892-9760. Navigate through the responses until you reach an operator. Validate your account credentials to their satisfaction.

  2. Ask to speak to a technical sales representative.

  3. Ask if you can please remove your iPhone text messaging plan, and add the normal text messaging plan with MMS features (WAP Push).

Sometimes, depending on the level of expertise of the tech support person, they may not understand the goal. One way to make it clear is to say that you want the ability to use the SIM card in both an iPhone and in another phone that supports Picture Messaging (MMS). That way, they will know that they need to keep the iPhone features working (iPhone data plan, visual voicemail, and access to the iPhone-specific WAP gateways that allow WAP traffic to go to the iPhone) as well as the new WAP gateways that will enable the WAP push. As an added bonus, you can now swap your SIM card into other phones, as long as they are unlocked or locked to AT&T's network.

Figures Figure 3.28, “Data plan before” and Figure 3.29, “Data plan after” show screenshots of an AT&T plan configured to allow MMS. The texting plan is "Messaging 200."

Figure 3.28. Data plan before

Data plan before

Figure 3.29. Data plan after

Data plan after

Using SwirlyMMS

SwirlyMMS (www.swirlyspace.com) can be installed with Cydia on a jailbroken the section called “Open Your iPhone or iPod touch to Customization by Jailbreaking” phone. This app allows you to send MMS pictures to phones capable of receiving them, and to receive MMS as well.

Launch SwirlyMMS, and you'll see a screen with a couple of buttons. Click the Settings button and enter your MMS information (Figure 3.30, “SwirlyMMS”). You will need to contact your cellular provider, or the SwirlyMMS forums, to determine the appropriate information. Settings for a number of popular providers can be found on www.swirlyspace.com.

Here are settings that worked for SwirlyMMS on the U.S. AT&T network:

MMSC: http://mmsc.cingular.com
Proxy:
APN: wap.cingular
Username: <blank>
Password: <blank>

Figure 3.30. SwirlyMMS

SwirlyMMS

Sending MMS

After you fill out the settings, click the Save button at the top left. Click the New MMS button at the bottom right, and you'll see a screen where you can compose the MMS message, as in Figure 3.31, “Composing a picture message”. You can give the message a title if you like. Click the Plus button to the right of the To box to select from your contacts or just type in a phone number. Next, click the Plus button to the right of the File: box to select a picture to send, or to take a new picture. Finally, press the Send button to send the message.

Figure 3.31. Composing a picture message

Composing a picture message

Receiving MMS

Receiving MMS is just as easy. Just like the other message-related applications, SwirlyMMS will tell you when a picture message has come in (Figure 3.32, “SwirlyMMS in the launch bar”). At that point, MMS works just like it would on other phones. When you receive a message and click on it, Swirly will fetch it and display it (Figure 3.33, “Receiving a picture message”). From there you can use the buttons on the bottom to save the image somewhere on your iPhone's filesystem (it's automatically copied to your photos as well), or forward it to another recipient.

Figure 3.32. SwirlyMMS in the launch bar

SwirlyMMS in the launch bar

Figure 3.33. Receiving a picture message

Receiving a picture message

Increase the Duration of Your iPhone's SMS Alert

Really feel the message.

This is a simple but useful hack. The iPhone is configured to vibrate for 0.4 seconds whenever you receive a new message, and there's nowhere in the Settings menu where you can change that. Such a short alert duration can make it easy to miss the announcement of a new SMS message. Luckily, there is a way to change this duration on jailbroken iPhones the section called “Open Your iPhone or iPod touch to Customization by Jailbreaking” so that it vibrates for longer (or shorter, if you prefer) when you receive a new SMS.

Most settings on an iPhone are stored in files called Property Lists or plists for short. You can find out how to edit plists in the section called “Edit Mac OS X Property Lists (plists)”.

You will need to access the /System/Library/Frameworks/Celestial.framework directory of your iPhone the section called “Manipulate Your iPhone's Filesystem”. Find the file called SystemSoundVibrationPatterns.plist in this directory (Figure 3.34, “Finding SystemSoundVibrationPatterns.plist”) and copy it to your computer.

Figure 3.34. Finding SystemSoundVibrationPatterns.plist

Finding SystemSoundVibrationPatterns.plist

Find the section of the file beginning with the line Default, as in Figure 3.35, “Original values of OnDuration and TotalDuration”. The numbers 0.4000… and 0.5000… that are wedged between the phrases are the values for OnDuration and TotalDuration, respectively. The value for OnDuration represents 0.4 second duration of your iPhone's default SMS vibration alert. To prolong the duration to 1.4 seconds, change OnDuration to 1.4, and TotalDuration to 1.5, as demonstrated in Figure 3.36, “New values of OnDuration and TotalDuration”. You can use a different duration if you prefer, but just make sure that TotalDuration is 0.1 greater than OnDuration.

Figure 3.35. Original values of OnDuration and TotalDuration

Original values of OnDuration and TotalDuration

Figure 3.36. New values of OnDuration and TotalDuration

New values of OnDuration and TotalDuration

Once you're done editing the file, save it and copy it back to the /System/Library/Frameworks/Celestial.framework directory of your iPhone. This will replace the original file with the altered file that you created. Finally, reboot your iPhone to apply the changes.

Use Instant Messaging on Your iPhone

Instant messaging is one of the iPhone feature set's most glaring omissions. These apps will let you fill the void.

Instant messaging is a very common and quick way for people to communicate. Many people "live" in their IM client. Most smartphones have third-party applications that enable you to use IM, and many if not most Internet-connected phones have added AOL Instant Messenger (AIM) support as a standard function. Every Macintosh computer comes with the AIM-compatible iChat program, so the lack of iChat on the iPhone was somewhat surprising. Thankfully, the iPhone developer community has produced a number of solutions for this IM dilemma.

Solutions to this problem fall into several major categories. App Store applications—such as AOL's own AIM client—work predictably: they have the annoying feature of logging you out when you quit them, due to the "no background app" policy for App Store apps. Web-based solutions have the worst integration with the phone and are a bit sluggish, but they work, and at least they stay connected when you quit them. Some jailbroken IM clients offered persistent connectivity but then decided to "go legit" and get into the App Store, losing this feature in the process. Finally, a couple of hacks based on push email and backgrounding have created somewhat of a solution.

Note

As of this writing, it is anticipated that Apple will be releasing a more comprehensive push architecture for application developers that will accommodate the needs of IM apps.

Web-based IM Applications

FlickIM

FlickIM (www.flickim.com) is a web-based AIM application (Figure 3.37, “FlickIM's main screen and an IM”) representative of a variety of web-based IM products. It remembers your login information and reconnects automatically when you navigate to it. It has corner message windows that pop up when you receive a message in a conversation you're not looking at, which you can tap to go right to that chat. It also has full support for landscape mode (of course the large widescreen keyboard prohibits reading the chat, but if you're more comfortable typing with the larger keys, you're good to go). Also you can configure it to notify you via email or SMS when you receive a new IM. Also, it has a variety of skins to match your personal preference. If all you use is AIM, you're good to go quickly with this client.

Figure 3.37. FlickIM's main screen and an IM

FlickIM's main screen and an IM

beejive's Jivetalk

Jivetalk is available both as an App Store application and a web application (http://iphone.beejive.com) (Figure 3.38, “beejive's Jivetalk web application”). It supports AIM, ICQ, MSN, Y!IM, Jabber, and Google Talk, and you can store multiple accounts for each protocol. By default, the keyboard closes every time you send a message. If you click the gear in the top-right on your buddy list, you can correct that and set other options. For a web app, it works quite well. The web app uses the same servers as their flagship App Store product.

Figure 3.38. beejive's Jivetalk web application

beejive's Jivetalk web application

App Store Apps

Although there were several excellent native IM applications on jailbroken phones, the siren song of App Store riches made everyone "go legit." As a result, there is little left in the Installer/Cydia world for free or shareware IMing.

As of this writing, MobileChat (Figure 3.39, “MobileChat”), IM+ Chat (Figure 3.40, “IM+ Chat”), and beejive's Jivetalk (Figure 3.41, “beejive's Jivetalk App Store application”) are the main options for multi-IM messaging. MobileChat is relatively inexpensive, but IM+ Chat is almost $10 and beejive is almost $15. However, they both operate services that act as an intermediary between you and the IM network, keeping you logged in, so they have real ongoing service costs to support the features of their application. IM+ has a free version with reduced features that you can try out. beejive can even email you or text message you when new messages come in, which can help notify you if you're doing something else on the device and close it to create a "background" experience.

Figure 3.39. MobileChat

MobileChat

Figure 3.40. IM+ Chat

IM+ Chat

Figure 3.41. beejive's Jivetalk App Store application

beejive's Jivetalk App Store application

Free Apps

The various instant messaging apps are categorized in the "social networking" section of the App Store, and the major social networks (Facebook, LinkedIn, etc.) tend to supply some sort of iPhone application. In addition, both AOL (Figure 3.42, “AOL's AIM application”) and Yahoo! (Figure 3.43, “Yahoo!'s IM application”) provide a free instant messaging application that works with their particular IM system.

Figure 3.42. AOL's AIM application

AOL's AIM application

Figure 3.43. Yahoo!'s IM application

Yahoo!'s IM application

Jailbreak Solutions

Instant messaging is supposed to be instant, not delayed until you run the IM app. And if your phone doesn't beep or buzz to let you know that you have a message, messaging isn't very effective, either.

If you have a jailbroken phone, you have a couple of additional options for using IM products in a way that works like it should.

Backgrounder the section called “Run Applications in the Background” can be used to let an IM client run in the background, so that you can go on to run other applications and remain logged in. It's easy to use—simply hold down the Home button slightly longer than normal, and you'll get a "Backgrounding Enabled" message (Figure 3.44, “AIM in the background”). If you have your ringer switch set to silent, AIM will vibrate the phone briefly whenever an IM comes in, and it will continue to be logged in in the background. You can run any other app—play video, take calls, and so on—and your instant messaging session will still work.

Figure 3.44. AIM in the background

AIM in the background

Connect to IRC on Your iPhone

Stay logged into IRC—no matter where you are.

The decades-old IRC protocol remains one of the most popular communication methods, especially for those "in the know" in the computing world. And it's a great way to get support for iPhone hacking the section called “Get Quality Support with iPhone Hacking”. This hack covers two ways to IRC on your iPhone or iPod touch.

Remote IRC to Your Mac

If you have a Mac, and you chat on IRC, chances are you've used Colloquy—a powerful and flexible OS X IRC client. And now, thanks to a new plug-in, you can monitor your Mac-based IRC connection from your iPhone/iPod touch's Safari browser. Here's how:

  1. The first step is getting Colloquy installed on your computer. The latest version can be found at www.colloquy.info/downloads.html.

  2. After Colloquy is installed, you will need to install the Web Interface plug-in, which can be downloaded from www.colloquy.info/downloads/colloquy-web-interface.zip. Put the plug-in into /Library/Application Support/Colloquy/PlugIns.

  3. Set the password that you have to type in when you fire up the connection on your iPhone. Fire up Terminal in your /Utilities folder, and type in the following:

    defaults write info.colloquy WebInterfacePassword yourpassword
  4. Start Colloquy, or restart it if it was already running.

  5. If your iPhone is connected to the same Wi-Fi network as your Mac, you can go to http://ipaddress:6667 (where ipaddress is the IP address of your Mac), type in the password you set earlier when prompted, and you're good to go. However, if you want to connect to it from EDGE or from a remote network, you'll need to make sure that port 6667 is properly forwarded to your Mac. This process is a bit different for each router. You can refer to your router's manual or use www.portforward.com to set this up. Once that's all straightened out, head to http://ipaddress:6667. If you don't know your IP off the top of your head, finding out is as simple as visiting www.whatismyip.com.

Now your iPhone will be controlling your Mac's Colloquy remotely. It will let you talk in whatever rooms you've currently joined on your Mac. (You won't be able to configure your connections using your iPhone.) You can scroll through your list of rooms or the messages in a room by scrolling with two fingers. If you tilt your iPhone to landscape view, you can read the IRC log in widescreen. You can't type this way however, as the keyboard would've eaten 80% of the screen, so they didn't bother adding it.

You'll see the same chat on both your iPhone and your Mac, so you can jump seamlessly from your iPhone to your Mac and back without losing track of the conversation. Also, if your connection dips out for a minute or more, the messages will be sent to your phone when your connection comes back on, so there are no messages lost in the void.

Any other details, updates, or answers to questions you might have can be found at www.colloquy.info/iphone.

IRC Out and About

If you want to IRC on the go—away from your home wireless network—you can do so by using one of the following apps.

Rooms

If you're looking for a commercial, easy-to-use GUI IRC client, Rooms (Figure 3.45, “Some of the screens of Rooms”) is available from the App Store.

Figure 3.45. Some of the screens of Rooms

Some of the screens of Rooms

iRCm

If you're just looking to get connected and know your way around IRC already, the quick, free way to get onto IRC is to install iRCm, which can be found in Cydia on a jailbroken phone (Figure 3.46, “iRCm”).

Figure 3.46. iRCm

iRCm

iRCm is very simple. Add servers with Add Server, type in the server information, tap back, tap server, and tap connect. It shows a bit of the behind-the-scenes connection log. The double-spaced chats might make it more readable, but in essence they function the same. iRCm also has support for IRC slash commands (e.g., /join and /raw, for those who know what they're doing).

If you enjoyed this excerpt, buy a copy of iPhone Hacks.