Version 1.0.40  Calling Cards
 
 What is ContactsEx
 Key Features
 Contact Us
 Open Issues


User Guide

 Installing and Running
 The Tab Concept
  - Names Tab
  - #s & Emails Tab
  - Address Tab
  - Notes Tab
  - Sundry Tab
  - Picture Tab
  - Groups Tab
  - Data Tab
  - Airtime Tab
  - Log Tab
 Backup and Recovery
 Long Distance Dialing
 Calling Cards
 Search Functions
 Group Functions
 Number Formats
 Synchronization
 Auto Updates

 Changing Item Order
 Settings Dialog
  - General Tab
  - Card Tab
  - Billing Tab
  - Picture ID Tab
  - Sync Tab
  - Formats Tab
  - Area Tab
  - Auto Answer Tabs
Back in the late 1990s Nokia released a ground-breaking models called the 6190 in North America and the 6110 in the rest of the world. It radically changed the feature set that Nokia phones had traditionally included up to that point and it introduced a function called Calling Cards. The purpose of the feature was to allow users to easily make calls through a 3rd-party operator such as a long distance provider or callback service.

Typically the feature worked with any dial-up service that required the entering of a phone number via touchtones after you’d established a connection to a local access port. Like most people, I used this wonderful feature extensively to make long distance calls at rates much cheaper than my cellular provider charged.

Over the years Nokia dropped the Calling Card feature from their phones and it is now unusual to find it anywhere. In part, this is because long distance has become far less of a concern for most cell phone users, but the issue hasn’t gone away completely and the removal of the feature has remained a mystery to many phone users.

It was the lack of this feature on my N95 that drove me to write a solution in the first place. The program I created grew to become a contacts manager as a result of the amount of support code needed for the Calling Cards. In its current form the program has grown well beyond this simple concept, but Calling Cards remain the core reason for the existence of ContactsEx.

Dial Strings

Many services that you might use Calling Cards with are so simple that all they require is that you dial the phone number you want immediately after you’ve called into their local access port. In cases such as this there is no dial string to speak of. However, some services don’t auto-validate users and they require the entering of a password and/or user identification prior to granting access. To accommodate the varying needs of such services, a dial string is provided to format the data that the Calling Card will inevitably send to the service.

ContactsEx has a Default Dial String, which is used for all Calling Cards that don’t provide a Custom Dial String. The default string is all that most people will need, because they will likely use the feature to contact only one type of service (regardless of how many different access numbers they require). The Default Dial String is assigned in the Settings dialog on its first tab.

The format of the dial string is simple. Characters 0 through 9, as well as asterisks and pound symbols, are sent as touchtones. The “p” symbol inserts a 1/2 second pause, while the “+” symbol denotes the spot where the destination phone number is inserted (which in turn will be transmitted as touchtones).

When a single "+" symbol is used, the number is inserted without its country code if the number is in your home country. However, you can force the country code to be used at all times by used "++" instead.

The dial string for a service that only requires the sending of the destination number (and nothing else) would be a single plus sign (which as you might already have noted is the way ContactsEx sets it up out of the box). Or if the country code was necessary, then a double plus sign.

But what about calling services that force you to listen to an ad before you're allowed to dial the number? These too can be accommodated by the Calling Card feature. To tell the program not to dial the destination number automatically you need only put a "w" anywhere in the Dial String where you want the phone to wait for you to tell it when it continue.

When this sort of Calling Card is used you'll have to press the left softkey to signal the program to dial the destination number. You do that when directed to by the calling service that you've used.

You will learn where to define a Custom Dial String in the section below.

Dialing String Example

Before we can begin writing a Dial String we need to analyze the service we are using and understand what it is expecting us to do. The best way to do that is to manually use the dialing service and write down each key we're required to press.

At some point in this string of characters will be the phone number of the destination we are trying to reach. Write down the string of characters again, but this time substitute a single "+" symbol for the destination number. If we were required to include the country code in this number (even if it was in the same country as we are in now) then instead insert "++". Anywhere that you had to wait for an unknown amount of time, insert a "w" symbol. Anywhere you had to wait for KNOWN period time, insert a "p" symbol for each 1/2 second of delay.

Okay, now let's make up an imaginary dialing service. To use this service I contact their local access port and as soon as the connection is made they prompt me to enter my user identification followed by #. For the sake argument we'll say my user ID is 12345. Now they want me to wait for 1 second and then type in my password followed by "#". For the sake of argument we'll say my password is 987. I'm asked to press # again, but then I have to wait for an advertisement to run that I don't know the precise length of. I therefore need to WAIT an unspecified amount of time before I can begin the final step, which is to dial the number I'm trying to contact, which for the sake of argument is 519-555-4321.

So, I write down each of the keys I had to press, along with any pauses that might have been necessary:

12345# [1-second pause] 987# [Unknown wait time] 5195554321

We replace [1-second pause] with pp (one p per half-second), we replaced [Unknown wait time] with a w symbol, and we replace 5195554321 with a + symbol, thus we get:

12345#pp987#w+

This was a deliberately convoluted example to show you how simple it really is to define a Dial String, even for a ridiculously complex dialing service.

Assigning Contacts as Calling Cards

The next step is to create contacts that will act as the Calling Cards. For a contact to quality as a Calling Card it must contain no more than 1 phone number. Any contacts with 2 or more numbers in them cannot be assigned as Calling Cards. It is recommended that you create an empty contact first, and then assign it as a Calling Card. You can then add a phone number to it. This is because the options presented when adding numbers are different for a Calling Card than for a standard contact.

To assign a contact as a Calling Card, scroll down to that contact in the Names Tab and press the Options softkey. From the menu choose the Assign as Card option. To show you that the contact has been changed to a Calling Card, the icon next to it will become a globe.

Now move to the #’s & Emails Tab and press the Options softkey there. From the menu choose Add New Number and type in one of the access numbers for the service you plan to use. If you require a Custom Dial String for this particular Calling Card, enter it in the second editbox on the screen, or leave that field blank to use the Default Dial String. A Custom Dial String uses the same format as we discussed above.

Once you’re finished entering the required data, press the Done softkey and that’s it. Repeat this process as required for all other access numbers.

National vs International Calling Cards

ContactsEx gives you the option of configuring the program to provide a single all-inclusive Calling Card, or to have two distinct cards known as the National Calling Card and the International Calling Card. You'd choose to have just a single Calling Card if you use the same service to make all of your long distance calls and the dial strings for calls within your own country, and those to all other countries, are the same.

However, the above rarely applies and even when you can use the same service to make both national (in-country) calls and international (out-of-country) calls, the dial string is often different. By making it possible to create and assign different calling cards for these two different types of calls, it removes the burden of having to decide in advance which Calling Card to use before making a call.

ContactsEx examines the number you are dialing and if detects that it has the same country code as your own, then it will make long distance calls through the National Calling Card. If the number you are dialing is in a different country, it will make long distance calls through the International Calling Card.

Choosing an Active Calling Card

Now that you have a series of contacts assigned as Calling Cards, the next step is to pick one (or two, as the case may be) to be the Active Calling Card(s), which will be used whenever the service is required. You can of course change the active card(s) at any time, which is the idea behind having multiple cards.

There are two ways to assign the Active Calling Card(s). The first is to do so directly from the Names Tab. If you type the # key the contacts will narrow to include only those which are designated as Calling Cards. Note that for phones that use the # key as a shift, you can press # and the SELECT button. You can then continue to type other keys to narrow the search further. Once you've narrowed the options as needed, scroll your way down to the desired card and press the Options softkey. From the menu choose Use as Calling Card option (if you have configured for just one card), or choose Use as Nat Calling Card or Use as Int'l Calling Card options as required.

The second approach is to assign it in the Settings dialog. To get there, press Options from the Name Tab and choose Settings. Click the right cursor key to move to the Cards Tab. Choose the card you want to change and then press the SELECT button. From the provided list, select the card to assign, and then press the SELECT button again to save the changes.

To denote which card or cards have been selected as active you'll see one of those following icons beside their names:

D in a green square denotes the one-and-only Calling Card.
N in a green square denotes the National Calling Card.
I in a green square denotes the International Calling Card.

Using a Calling Card

Just having an Active Calling Card doesn’t mean that your calls will automatically go through it. In order to make calls through a Calling Card you must tell the program you want to. Fortunately this is extremely simple and the method was borrowed from the original Nokia feature. Instead of pressing and releasing the TALK key as you usually do to make a call, you instead press-and-hold the TALK for approximately half a second. As soon as the call begins you can release the TALK button.

If you have configured your program to use just one Calling Card, then all calls made in this way will go through the current Active card (the one with a D icon next to it). If you have configured your program to have a national and an international calling card, then the one used will be determined by the country code of the outgoing number. Those to within your own country use the National card, while those outside your country will use the International card.

The above assumes however that you will only use the Calling Card from time to time, as you most likely would from your hometown. However, what if you are out-of-town and virtually all of your calls will be long distance? In that case you can reverse the behavior of the TALK key by selecting an option in the Settings dialog.

The option in question is labeled Long Press of TALK and the options are Long Distance Call or Local Call. Normally this options is set to Long Distance Call, but if you’d rather your phone dialed through the Calling Card with a normal press of TALK (and local calls only if you press-and-hold TALK) then you can change the setting while you are out-of-town.

As noted above, most calling services merely present a dial tone once you connect, and so you can allow the Calling Card feature to automatically send the destination number as touchtones. However, when a w is placed at the beginning of the Dial String the destination number isn't sent automatically. Instead you must press the left softkey when you want the touchtones sent. This is necessary with calling services that open with a varying-length ad you must listen to first.

Note that while this may be obvious to some, it isn’t necessary self-evident to all, but the Calling Card feature ONLY works if you make the calls from within ContactsEx. It will not work if you make the calls outside of the program. This isn’t a hardship, since ContactsEx is intended to replace all of the phone’s native call management features and you should get in the habit of using it for all calling.

Calling Cards and the Calls Log

The call log database in your phone dutifully records each number your phone has dialed, which in the case of Calling Card calls will be the access port and not the destination number to which the call was placed. When the ContactsEx program reads the log database however, it recognizes these strings and processes them accordingly. Subsequently when you look at your call log inside of ContactsEx it will correctly show Calling Card calls as having been made to the destination number and not the access port. If you look at your call log in the native viewer, you'd only see a call made to the access port.

Making Standard Long Distance Calls

If you want to be able to make standard long distance calls (those with just a your country code are appended to the beginning of the destination phone number) you can turn off the Active Calling Card using the Settings dialog. On the list of available Calling Cards you'll find the one at the top is your country code (like +1 or +44 for example). Choose that and now when you press-and-hold the TALK button (or just press the TALK button if you've reversed the functionality of the TALK key) calls will be dialed directly with your country code appended.