`
`(12) Ulllted States Patent
`Chu
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`US 8,036,366 B2
`Oct. 11, 2011
`
`(54) INTELLIGENT FORMATTING OF VOIP
`TELEPHONE NUMBERS
`
`(75) Inventor: L‘m'chan Ch“, Redmond’ WA (Us)
`_
`_
`_
`(73) Ass1gnee: MICI‘OSOft COI‘p0ratl0ll, Redmond, WA
`(Us)
`
`*
`
`'
`
`.
`
`~
`
`~
`
`~
`
`-
`
`2/2006 Fowler
`6,999,458 B2
`4/2006 Khello et al.
`7,027,582 B2
`2/2008 Nasielski ................. .. 455/435.1
`7,336,949 B2 *
`2002/0136387 A1* 9/2002 Choi et al.
`.. 379/220.01
`2004/0243596 A1* 12/2004 Lillqvist et al. ............. .. 707/100
`2005/0182781 A1
`8/2005 Bouvet
`2005/0243806 A1 * 11/2005 Sakano et a1. .............. .. 370/352
`2006/0046785 A1
`3/2006 Cagney
`2006/0094353 A1* 5/2006 Nielsen et al. ................ .. 455/17
`2007/0064919 A1* 3/2007 Chen et al.
`.. 379/355.05
`
`(
`
`)
`
`patent 15 extended or adjusted under 35
`
`>l<
`
`‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ “
`
`U30 154(1)) by 1406 days-
`
`OTHER PUBLICATIONS
`
`(21) Appl_ No; 11/462,540
`
`(22) Filed;
`
`Aug 4, 2006
`
`Prior Publication Data
`
`McTaggart, Telephone Numbers, Domain Names, and Enumbers,
`IEEE Communications Magazine, Sep. 2002.
`Park, “Address Translation Method for InterWorking Between Public
`and Private ATM Networks”, Electronics and Telecommunications
`Research Institute, Jan. 19, 1998.
`
`US 2008/0043718 A1
`
`Feb. 21, 2008
`
`* Cited by examiner
`
`(51) Int. Cl.
`(200601)
`H04M 7/00
`(52) US. Cl. ............. .. 379/220.01; 379/219; 379/355.01
`(58) Field of Classi?cation Search ........... .. 379/22001,
`'
`'
`379/219, 355.01, 355.05
`See appl1cat1on ?le for complete search hlstory.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5,467,381 A 11/1995 Peltonen et a1‘
`5,961,608 A 10/ 1999 Onosaka et al.
`6,108,540 A
`8/2000 SOIlti et al.
`6,594,257 B1
`7/2003 Doshi et al.
`6,751,481 B2 *
`6/2004 Chen et al. .................. .. 455/564
`6,868,416 B2
`3/2005 Choi et al.
`
`Primary Examiner * William Deane, Jr.
`(74) Attorney, Agent, or Firm *Vierra Magen Marcus &
`DeNirO LLP
`
`(57)
`
`ABSTRACT
`
`A system and method are disclosed for intelligent formatting
`of VOIP telephone numbers. The intelligent VoIP formatting
`system includes a presentation and user interface layer, an
`E. 1 64 formatting engine, a location routine, and a database of
`telephone number data Which are used to deconstruct input
`telephone numbers and reconstruct them as E.164 compliant
`telephone numbers_
`
`16 Claims, 11 Drawing Sheets
`
`I, - - - - - — - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - — — — - \\
`
`I .
`:
`
`l
`|
`
`10h
`Presentat|0n and Input Layer (UI)
`
`I
`
`l
`l
`'
`l
`i
`:
`,
`.
`.
`:
`.
`l .
`l
`l
`
`I
`
`.
`l
`I
`l
`\
`
`102 \
`
`194 \
`E.164 Call
`.
`.
`Locatlon
`.
`.
`. —> E.164 Formattlng Englne <— lnformatlon
`Routme
`Database
`
`‘106
`
`\
`
`W8 \
`
`l
`
`.
`
`.
`
`Slgnallng & Vo|ce Englne
`
`.
`
`.
`
`1
`:
`
`|
`|
`
`|
`|
`'
`|
`g
`I
`:
`I
`I
`1
`:
`:
`|
`|
`
`:
`l
`|
`I
`
`PETITIONER APPLE INC. EX. 1007-1
`
`
`
`US. Patent
`
`Oct. 11,2011
`
`Sheet 1 0111
`
`US 8,036,366 B2
`
`:'
`i
`:
`I
`'
`i
`:
`5
`i
`I i
`a
`
`I
`
`I
`\
`l l l l l l l l l l l l l l l l l l l l l I l l l l I l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l \
`
`i00\
`Presentation and Input Layer (UI)
`
`\
`m l
`194
`E.164 Call
`\
`Locagn
`Routine —> E.164 Formatting Engine <— Information
`Database
`
`“is \ l
`Signaling & Voice Engine
`
`E
`i
`I
`:
`,
`i
`:
`i
`i
`é
`,=
`
`l
`
`PETITIONER APPLE INC. EX. 1007-2
`
`
`
`US. Patent
`
`Oct. 11,2011
`
`Sheet 2 of 11
`
`US 8,036,366 B2
`
`K110
`Launch Application
`
`Fig. 2
`
`/ 1 M
`
`Launch Origin Setup UI
`
`112
`
`Set Up
`New Call Origin
`Location?
`
`r118
`Set New Call
`Origen Location
`
`Enter Telephone Number <—
`
`Yes
`
`Try Call Again?
`
`No
`
`l
`
`/122
`
`Initiate Call Session
`
`1
`
`r124
`
`E.164 Formatting
`
`Yes
`
`f ‘iSQ
`
`Pass Information
`
`V
`
`[132
`
`End Call Session
`
`PETITIONER APPLE INC. EX. 1007-3
`
`
`
`US. Patent
`
`0a. 11, 2011
`
`Sheet 3 0f 11
`
`US 8,036,366 B2
`
`11 II 1111':
`
`VVVVVV VVVVV A
`
`'
`
`~
`
`144 ’
`
`0 i
`y
`
`,
`\148
`
`PETITIONER APPLE INC. EX. 1007-4
`
`
`
`US. Patent
`
`0a. 11, 2011
`
`Sheet 4 0f 11
`
`US 8,036,366 B2
`
`Fig. 4
`
`John Smith
`
`Home: ‘
`
`.
`
`WW2:
`
`‘I Mc-biie:
`
`Cunnected
`\\ Wigwam-J mammal m4
`
`
`
`1 inner: ........
`
`58f;
`
`‘
`
`vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
`
`142
`
`PETITIONER APPLE INC. EX. 1007-5
`
`
`
`US. Patent
`
`0a. 11, 2011
`
`Sheet 5 0f 11
`
`US 8,036,366 B2
`
`ith
`
`142
`
`Set CaH Origin Location 7
`
`PETITIONER APPLE INC. EX. 1007-6
`
`
`
`US. Patent
`
`0a. 11, 2011
`
`Sheet 6 6f 11
`
`US 8,036,366 B2
`
`Fig. 6
`
`Retrieve Formatting ‘
`Data For Origin
`‘
`\154
`
`Retrieve Origin 1
`Designation
`‘
`\ r52
`
`Phone Number
`Received
`\ 15o
`
`K156
`
`Parse Entered
`Telephone Number ‘
`
`158
`Yes
`
`E.164 Format?
`
`IDD Pre?x?
`
`Remove IDD Pre?x
`
`>
`
`Concatenate
`E.164 Prefix and
`Number
`
`r @68
`
`Remove NDD Pre?x
`
`[we
`Concatenate
`> E.164 Pre?x, Country
`Code and Number
`
`>
`
`r ‘W4
`Concatenate
`E.164 Pre?x, Country
`Code and Number
`
`r W8
`
`Send Number As Is
`
`Number
`Fits Customize
`ormatting Rule’?
`
`No
`
`‘t84
`/
`Treat as Local Call
`
`182
`f
`Format Number Per Rule
`
`186 /
`Concatenate E.164
`Prefix, Country Code,
`Area Code and Number
`
`'
`
`199
`" f
`Place Call
`
`>
`
`PETITIONER APPLE INC. EX. 1007-7
`
`
`
`US. Patent
`
`Oct. 11, 2011
`
`Sheet 7 of 11
`
`US 8,036,366 B2
`
`Fig. 7
`r192
`Enter Call
`Origin Name
`
`l [1%
`
`Enter Call Origin
`Geographic
`information
`1 figs
`
`Set Area Code For
`Call Origin
`
`i ,198
`
`Set Special Dialing
`Instructions
`
`l {200
`
`Save and Store
`Pro?le
`
`PETITIONER APPLE INC. EX. 1007-8
`
`
`
`US. Patent
`
`Oct. 11, 2011
`
`Sheet 8 0f 11
`
`US 8,036,366 B2
`
`Fig. 8
`
`220
`
`224
`
`PETITIONER APPLE INC. EX. 1007-9
`
`
`
`US. Patent
`
`0a. 11, 2011
`
`Sheet 9 0f 11
`
`US 8,036,366 B2
`
`Fig. 9
`
`PETITIONER APPLE INC. EX. 1007-10
`
`
`
`US. Patent
`
`0a. 11, 2011
`
`Sheet 10 0f 11
`
`US 8,036,366 B2
`
`PETITIONER APPLE INC. EX. 1007-11
`
`
`
`U.S. Patent
`
`Oct. 11,2011
`
`11f011LI.6ehS
`
`US 8,036,366 B2
`
`§_co_>_
`
`.mE__n_
`
`e9_$qm
`
`mmm
`
`am
`
`m2<_8o._
`
`eoemm
`
`Eaeoo
`
`8:.%_>>
`
`r.fozaoz
`
`5350
`
`_m$_a_$n_
`
`8mtmE_
`
`82>
`
`8mtBc_
`
`3%
`
`m:_wm89n_
`
`E5
`
`¢_nm>oE¢m_
`
`
`
`boEm_>_._o>-:oz
`
`momtmE_
`
`¢_gm>oEmm-:oz
`
`
`
`aoEm_2._o>-:oz
`
`
`
`mE9men_co__8__&<
`
`
`
`Esmoi.650
`
`$_:uos_
`
`Egmoi
`
`98
`
`ESm9n_
`
`E8
`
`$_:co_>_
`
`PETITIONER APPLE INC. EX. 1007-12
`
`
`
`US 8,036,366 B2
`
`1
`INTELLIGENT FORMATTING OF VOIP
`TELEPHONE NUMBERS
`
`BACKGROUND
`
`IP telephony, also known as voice over IP or VoIP, has
`become a key driver in the evolution of voice communica
`tions. VoIP technology is useful not only for phones, but also
`as a broad application platform enabling voice interactions on
`devices such as PCs, mobile handhelds and many other
`devices Where voice communication is an important feature.
`Several VoIP service providers, such as Skype® and Von
`age®, noW provide VoIP communications services globally.
`In order to technically accommodate the groWing number
`of telephone users around the World, and increased interest in
`Internet telephony, the International Telecommunications
`Union (ITU) has adopted a number of protocols to facilitate
`communications. One such protocol is E. 164, Which provides
`a uniform means for identifying any telephone number in the
`World to any telephony user in the World. This protocol oper
`ates for standard public sWitched telephone netWorks
`(PSTNs). Additionally, a standard referred to as Electronic
`Numbering, or ENUM, has been adopted Which uses the
`domain name system (DNS) to map E.l64 formatted tele
`phone numbers to Web addresses or uniform resource loca
`tors, thereby effectively enabling the E164 protocol to be
`used for IP telephony.
`The international E.l64 protocol has a standard format for
`telephone numbers. An E.l64 formatted number has at most
`15 digits, and contains an E.l64 pre?x (Which is typically a
`“+” sign), a country code, and a subscriber telephone number.
`In North America, the subscriber telephone number may for
`example consist of an area code and a seven digit telephone
`number.
`When making telephone calls via a traditional PSTN, a
`subscriber is able to enter abbreviated numbers for local and
`national telephone calls. For example, for a local call in the
`United States, a user may simply enter the seven digit tele
`phone number Without an E.l64 pre?x, the country code or
`the area code. Local and national calls are possible With
`PSTN systems because the ?xed-line phones from Which
`such calls are made are hardWired directly to the local PSTN
`center.
`By contrast, there is no such concept of local, long distance
`or national calls When making a call via Internet telephony.
`VoIP calls use the Internet, Which is World-Wide and not tied
`to any single location. While a VoIP call may be made
`betWeen tWo local points, that call may be routed through
`servers located across the globe. Consequently, existing glo
`bal VoIP service providers require users to enter fully format
`ted E. l 64 telephone numbers. Even When making a local call,
`Within for example the United States, instead of simply enter
`ing the seven digit telephone number, the VoIP subscriber
`must enter “+,” then the country code, then the area code, then
`the telephone number. This is time consuming and bother
`some, especially When subscribers are used to the concept of
`abbreviated telephone numbers for local and national calls
`With traditional PSTN systems.
`
`SUMMARY
`
`Embodiments of the present system in general relate to a
`system and method for intelligent formatting of VoIP tele
`phone calls. The intelligent VoIP formatting system includes
`a presentation and user interface layer, an E.l64 formatting
`engine, a location routine, a database of telephone number
`data and, optionally, a signaling and voice engine. According
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`to the present system, a user is able to enter telephone num
`bers for VoIP telephone calls as they Would according to a
`traditional telephone numbering plan for land-line telephone
`calls.
`Upon launching the application program according to the
`present system, the user may be presented With the presenta
`tion and user interface layer, Which may include a variety of
`graphical objects alloWing the user to initiate and terminate
`VoIP telephone calls. The user interface layer may provide the
`user the ability to set up and store one or more call origin
`location pro?les Which identify geographic location informa
`tion as Well as the country and/ or area code (if applicable) for
`the one or more locations from Which the user may regularly
`place VoIP telephone calls, e. g., home, o?ice, satellite o?ice,
`etc.
`Once the user enters a telephone number via the user inter
`face layer and initiates a telephone call, the telephone number
`is put into in E.l64 format via the E164 formatting engine.
`The E. l 64 formatting engine receives the entered phone num
`ber and retrieves the call origin location. The E.l64 format
`ting engine is further in communication With the database of
`stored E. l 64 telephone call formatting information for a vari
`ety of countries or geographic regions. For each country or
`region, the database may store information including country
`code, international direct dialing pre?x, national direct dial
`ing pre?x, minimum local length of a telephone number in
`that area and/or the national length of a telephone number in
`that area.
`The formatting engine then parses the input telephone
`number into its constituent segments. The segments may be
`one or more of the E164 pre?x (“+”), a country code, a direct
`dialing pre?x (international and/or national), an area code
`and/or a local telephone number. The formatting engine may
`then check Whether the entered telephone number is already
`fully formatted in the E164 format. If so, the formatting
`engine may alloW the call to be placed using the input tele
`phone number as is.
`If the formatting engine does not detect a valid E.l64
`telephone number, the engine next determines Whether the
`entered telephone number begins With an international or
`national direct dialing pre?x. If so, the formatting engine
`removes the intemational/national direct dialing pre?x. If the
`input number Was an international telephone number, the
`formatting engine concatenates the E164 pre?x (“+”) With
`the number that folloWed the international direct dialing pre
`?x. If the input number Was a national telephone number, the
`formatting engine concatenates the E164 pre?x and the call
`destination country code With the number that folloWs the
`national direct dialing pre?x. The country code may be
`obtained from the call origin location pro?le designated by
`the user. In embodiments, the formatting engine only checks
`the direct dialing pre?xes against direct dialing pre?xes for
`the designated call origin location. HoWever, in an alternative
`embodiment, the formatting engine may check the direct
`dialing pre?xes for all countries and/or regions in the data
`base.
`If the E164 formatting engine does not detect a direct
`dialing pre?x, the engine may next determine Whether the
`entered telephone number is equal in length to the national
`length of the country set as the call origin location. If so, the
`formatting engine interprets this as a call someWhere Within
`the country of the designated call origin location. Accord
`ingly, the formatting engine concatenates the E164 pre?x,
`the country code for the country of the designated call origin
`location and the entered telephone number to form a fully
`formatted E.l64 telephone number. The call is then placed
`using that number.
`
`PETITIONER APPLE INC. EX. 1007-13
`
`
`
`US 8,036,366 B2
`
`3
`In many countries, certain shortened telephone numbers
`are designated for special purposes, such as for example
`numbers Which may be frequently called (e.g., 411) or num
`bers Which are used in cases of emergency (e.g., 911).
`Accordingly, the formatting engine may detect Whether the
`number length of the entered telephone number is less than
`the minimum length of local phone number for the country or
`area designated by the call origin location. If so, the format
`ting engine places the call using the input telephone number
`as 1s.
`If none of the above forms of the input number are detected,
`the formatting engine may lastly treat the entered telephone
`number as a local call. Thus, the formatting engine concat
`enates the E164 pre?x, the country code for the call origin
`location, the area code for the call origin location (if any) and
`the entered number to form a fully formatted E. 1 64 telephone
`number. The call is then placed using that number.
`In accordance With a further aspect of the present system,
`the location routine may be used to set up and store multiple
`call origin location pro?les representing different locations
`from Which a user may place VoIP calls. The user may be
`presented With a call origin location setup user interface in
`Which the user is given the option to enter an arbitrary and/or
`descriptive name for the call origin location, geographic
`information for that call origin location, and a country and/or
`area code for the geographic location.
`The call origin location pro?les may be stored locally
`Within memory of the user’s computing system environment
`running the application program according to the present
`system. Alternatively, the location pro?les Which the user has
`generated may be maintained on a central server Within the
`VoIP service provider or elseWhere. In such an embodiment,
`When a pro?le is generated, it may also be versioned to
`include a change time stamp Which is the time When the call
`origin location pro?le is created or last changed. Such a
`system alloWs a user to access his or her stored pro?les from
`different computing devices at different locations, and to keep
`those pro?les up to date and synchronized.
`
`20
`
`25
`
`30
`
`35
`
`DESCRIPTION OF THE DRAWINGS
`
`40
`
`FIG. 1 is a block diagram of the softWare components of the
`present system.
`FIG. 2 is a ?owchart of the overall operation of the present
`system for conducting VoIP telephone calls using intelli
`gently formatted VoIP telephone numbers.
`FIG. 3 is an illustration of a presentation and user interface
`layer according to the present system ready to initiate a tele
`phone call session.
`FIG. 4 is an illustration of a presentation and user interface
`layer according to the present system during a telephone call
`session.
`FIG. 5 is an illustration of a presentation and user interface
`layer according to the present system upon terminating a
`telephone call session.
`FIG. 6 is a ?oWchart of the operation of the E164 format
`ting engine according to an embodiment of the present sys
`tem.
`FIG. 7 is a ?owchart of a location routine for setting up call
`origin location pro?les.
`FIG. 8 is a graphical user interface for setting up call origin
`location pro?les.
`FIG. 9 is a further illustration of a graphical user interface
`for setting up call origin location pro?les.
`FIG. 10 is a block diagram of a complete VoIP netWork for
`supporting VoIP communications according to the present
`system.
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`FIG. 11 is a block diagram of hardWare components on
`Which embodiments of the present system are capable of
`operation.
`
`DETAILED DESCRIPTION
`
`Embodiments for the present system Will noW be described
`With reference to FIGS. 1-11, Which generally relate to a
`system and method for intelligent formatting of VoIP tele
`phone calls. The present system may be embodied as an
`application program running on any of a variety of computing
`system environments including for example a desktop per
`sonal computer, a laptop, a handheld computer, a personal
`digital assistant (PDA), a cellular telephone, multiprocessor
`systems, microprocessor-based systems, programmable con
`sumer electronics, minicomputers, distributed computing
`environments that include any of the above systems or
`devices, and the like. The application program of the present
`system may be included as part of, or operate in conjunction
`With, a softphone application program running on the com
`puting system environment for enabling VoIP calling. The
`application program according to the present system may
`alternatively run on a central server, for example of a VoIP
`service provider. In such an embodiment, the application
`program may be accessed and doWnloaded or used on the
`above described devices via a broWser interface. The appli
`cation program according to the present system may be coded
`in a variety of coding languages, including for example C++
`and/or Java based languages.
`As shoWn in FIG. 1, the intelligent VoIP formatting system
`includes a presentation and user interface layer 100, an E. 1 64
`formatting engine 102, a location routine 104, a database 106
`of telephone number data and a signaling and voice engine
`108. In embodiments, the signaling and voice engine 108 may
`not form part of the intelligent VoIP formatting system. Each
`of these components of the present system is explained in
`greater detail hereinafter.
`Referring noW to FIG. 2, the presentation and user interface
`layer 100 presents a graphical user interface enabling a user to
`interact With the present system and to initiate and terminate
`VoIP telephone call sessions. In a step 110, a user may launch
`the application program according to the present system. For
`example, Where a computing system environment is running
`a Windows@ operating system from Microsoft Corporation,
`the application program according to the present system may
`be launched from an icon appearing on the display of the
`computing environment.
`Upon launching the application program in step 110, the
`user may be presented With the presentation and user interface
`layer 100, an example of Which is shoWn in FIG. 3. As Will be
`appreciated by those of skill in the art, user interface 100 may
`include a variety of graphical objects alloWing the user to
`initiate and terminate VoIP telephone calls. For example, user
`interface 100 may include a telephone number entry box 140,
`graphical keypad 142, call initiation/termination button 144,
`as Well as one or more additional content WindoWs 146.
`Although not critical to the present system, content WindoWs
`146 may be used to display various pieces of information,
`such as a call history of prior calls made by the user, tips for
`using VoIP features and/orVoIP service provider information.
`Additional or alternative graphical objects may be presented
`on interface 100 in alternative embodiments.
`In accordance With an aspect of the present system, user
`interface 100 provides the user the ability to set up and store
`a call origin location pro?le. The setup of a call origin location
`pro?le is explained in greater detail hereinafter. HoWever, in
`general a call origin location pro?le contains geographic
`
`PETITIONER APPLE INC. EX. 1007-14
`
`
`
`US 8,036,366 B2
`
`6
`5
`in the art, telephone number entry box 140 may be populated
`location information as Well as the country and/or area code
`(if applicable) regarding an origin of a VoIP telephone call.
`by manually typing in a telephone number. Alternatively, a
`The call origin location is set by the user (or a default location
`user may access a contact from a database of his or her stored
`is used) When making a VoIP telephone call and Will typically
`personal contacts, and have that contact’s telephone number
`be the location from Where the user is placing the call. HoW
`automatically inserted into telephone number entry box 140.
`ever, it is understood that the present system may still operate
`A user may click a phone number hyperlink on a Web page,
`to format and complete certain VolP telephone calls even
`and have the phone number automatically inserted into tele
`Where a user erroneously sets the Wrong call origin location
`phone number entry box 140. The user may then initiate the
`(i.e., a location that is not the actual location from Where the
`telephone call in step 122 by selecting the call initiation/
`10 termination button 144. The application program then for
`user 15 placmg the can)’
`.
`h
`t
`d t 1 h
`b
`d.
`t th E 1 6 4
`A user may commonly place VolP calls from different
`mats t 6.611 ere 6 ep one lmm er a.CCOr “lg 0 e '
`.
`locations, for example from theirhome andtheir o?iceAuser
`protocol in step 124 as explained here1nafter1n greater detail
`-
`-
`-
`_
`may also travel to one or more destinations from Wh1chVolP
`Wlth respect to FIG‘ 6'
`calls are frequently made. Accordingly, the present system
`If’_1na_Step 126’ the telephone call does not go thrcfugh’ the
`further provides the ability to set up and store multiple call 15
`user 15 glven the Opnon ln Step 128? try to can agam' Ifthe
`origin location pro?les. As explained hereinafter, the call
`user elects not to try agaln, the aPPheanen Program may end
`origin location pro?les may be stored locally on a user’s
`Conversely, ifthe user elects in Step 128 to try again or enter
`computing device, or remotely on a server accessible by the
`a new telephone number, the application Program returns to
`user’s computing device via a netWork such as the lntemet.
`When making a VQIP call, a user may Select and set a call 20 step 120. If the call does g0 through in step 126, the user 15
`origin location from a list of previously de?ned call origin
`connected, and information is passed to and/or from the user
`locations shoWn on a dropdoWn menu 148. If a user selects
`in step 130. A system for routing and connecting VoIP calls is
`dropdoWn menu 148, the user may also be provided With the
`explained in greater detail hereinafter With respect to FIG. 10.
`option to set up a neW call origin location pro?le (step 112,
`Once the user is connected, user interface 100 may indicate
`FIG. 2). If a user opts to set up a neW call origin location 25 the connection, and provide information regarding the tele
`pro?le, the application program of the present system pre-
`phone call, as shoWn in FIG. 4. Upon completion of the call,
`sents the user With a call origin pro?le setup user interface in
`a user may end the call session in step 132 by selecting the call
`step 114 as explained in greater detail hereinafter. It is under-
`initiation/termination button 144. The call is then discon
`stood that the option to set up a neW call origin location pro?le
`nected as shoWn in FIG. 5.
`may be located on interface 100 separate from the dropdoWn 30
`In accordance With a further aspect of the present system,
`menu 148.
`once the user enters a telephone number and initiates a tele
`After a user has set up one or more call origin locations,
`phone call, the telephone number is formatted in E.l64 for
`selecting dropdoWn menu 148 Will display the call origin
`mat in step 124. Formatting of the entered telephone number
`locations. In step 116, a user is given the option to change the
`in step 124 is performed by the E164 formatting engine 102.
`call origin location, for example by selecting a different call 35 The operation of formatting engine 102 is explained in greater
`origin location from those listed on the dropdoWn menu 148.
`detail With respect to the ?owchart of FIG. 6.
`If a user selects a neW call origin location step 116, the neW
`E.l64 formatting engine 102 receives the entered phone
`call origin location is set in step 118 and used for a VoIP call.
`number in step 150. Formatting engine 102 then retrieves the
`One of the call origin locations may be designated as a default
`call origin location indicated in dropdoWn menu 148. The
`location and used unless another location is selected.
`40 E164 formatting engine 102 is further in communication
`After a call origin location is set (or if no change in call
`With database 106, Which stores E.l64 telephone call format
`origin locationis made), auser may enteratelephone number
`ting information. An example of the information stored in
`in step 120 in telephone number entry box 140. As is knoWn
`database 106 is shoWn in the folloWing Table 1.
`
`TABLE 1
`
`Country
`Code IDD Pre?x Set
`
`NDD Min Local National
`Pre?x
`Length
`Length
`
`011
`l
`44 00
`33
`00, 40, 50, 70, 90
`49 00
`34 00
`41
`00
`43 00
`353 00
`31
`00
`32 00
`46 00
`39 00
`45 00
`47 00
`358 00, 990, 994, 999
`55
`0014, 0015, 0021, 0023, 0031
`351
`00
`30 00
`54 00
`51
`00
`56 00
`82
`001, 002
`
`l
`0
`0
`0
`NA
`0
`0
`0
`0
`0
`0
`NA
`NA
`NA
`0
`0
`NA
`NA
`0
`0
`0
`0
`
`7
`4
`6
`4
`6
`7
`4
`5
`7
`6
`7
`7
`7
`5
`4
`7
`6
`7
`6
`6
`6
`4
`
`10
`NA
`NA
`NA
`9
`NA
`NA
`NA
`NA
`NA
`NA
`10
`8
`8
`NA
`NA
`9
`10
`NA
`NA
`NA
`NA
`
`Country/Region
`
`United States
`United Kingdom
`France
`Germany
`Spain
`Switzerland
`Austria
`Ireland
`Netherlands
`Belgium
`SWeden
`Italy
`Denmark
`NorWay
`Finland
`Brazil
`Portugal
`Greece
`Argentina
`Peru
`Chile
`South Korea
`
`PETITIONER APPLE INC. EX. 1007-15
`
`
`
`7
`TABLE l-continued
`
`US 8,036,366 B2
`
`8
`
`Country/Region
`
`Country
`Code IDD Pre?x Set
`
`NDD Min Local National
`Pre?x
`Length
`Length
`
`Australia
`Japan
`Taiwan
`Hungary
`Czech
`Poland
`India
`China
`
`001 1
`61
`O01, 010, 0061, 0041
`81
`886 002
`36 00
`420 00
`48 0O
`91
`0O
`86 0O
`
`O
`O
`O
`06
`NA
`0
`0
`0
`
`8
`6
`5
`6
`7
`4
`7
`7
`
`NA
`NA
`NA
`NA
`9
`NA
`NA
`NA
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`As shown, database 106 may include country codes, inter
`national direct dialing (IDD) pre?x sets, national direct dial
`ing (NDD) pre?xes, minimum local lengths, and national
`lengths for telephone calls for each of a plurality of countries.
`It is understood that database 106 may include the above
`mentioned information for more or less countries than are
`shown in Table 1. In a further embodiment, it is understood
`that the database 106 may include the above-mentioned coun
`try code, IDD pre?x, etc., for a plurality of cities and/or
`geographic regions instead of, or in addition to, storing such
`information on a per country basis. Moreover, it is understood
`that, for each geographic location in database 106, there may
`be more or less telephone data than shown in Table 1.
`As shown, database 106 may include the country codes for
`a variety of countries. A country code is the national pre?x
`that is used to dial into a country from another country. For
`instance, the country code for the United States is 1. When
`calling to the United States from outside the United States, a
`l is included to indicate the call is to be routed to the United
`States.
`The IDD pre?x is a pre?x that is used by telephone carriers
`to dial out of a country to another country. For instance, the
`IDD for the United States is 011, and when making a direct
`international call from within the United States, a caller must
`dial the 011 pre?x to indicate that the call is an international
`call. When making a traditional PSTN direct international
`telephone call, a user would dial the IDD pre?x for the host
`country and the country code for the destination country.
`However, the IDD pre?x is not used in the E164 standard.
`Some countries have multiple IDDs, with each used by a
`different carrier or for a different purpose.
`The NDD pre?x is the pre?x to make a domestic long
`distance call. Normally, an NDD pre?x is followed by an area
`code. For instance, the NDD pre?x in the United States is l,
`and in the United Kingdom is 0. Some countries, such as
`Spain, do not have an NDD pre?x. The NDD pre?x is not used
`in the E. l 64 standard.
`Database 106 may also store Min Local Length, which is
`the minimum length of a local phone number in a given
`country or region. For instance, in the United States, the
`minimum local length of a telephone number is seven digits.
`In Germany, the minimum local length is four digits.
`National Length is the length of the national dialing tele
`phone number without the NDD pre?x. For example, in the
`United States, the national length of a telephone number is ten
`digits. This parameter is relevant to countries that do not have
`NDD pre?xes. It is also relevant to some regions in the United
`States where two areas have different area codes, but calls
`between these areas are still considered local calls and do not
`include the NDD pre?x. For instance, in the Seattle area,
`PSTN calls from the 425 area code to the 206 area code (and
`visa-versa) are treated as local calls, and calls between these
`areas do not include the NDD pre?x.
`
`In embodiments, the information in database 106 may be
`updated periodically. For example, the information associ
`ated with each country in database 106 may be versioned to
`include a date when the information was added or last
`updated. The signaling and voice engine 108 placing the
`telephone call may query a server, such as for example a
`con?guration server, located within the VoIP service provider
`or elsewhere which includes the most up-to-date version of
`the information for each country included within database
`106. If the signaling and voice engine 108 determines that
`database 106 already has the up-to-date version of the data for
`each country, the con?guration server may notify the signal
`ing and voice engine 108 that there is no newer version of the
`data. If there is a newer version, the con?guration server may
`send a new set of parameters to the computing system envi
`ronment for storage in database 106. This will allow any
`update of data to be quickly distributed to all computing
`environments running an application program according to
`the present system.
`In an alternative embodiment, instead of being stored
`locally on a user’s computing system environment, an up-to
`date database of country codes, IPP pre?x sets, NPP pre?x
`sets, etc. may be maintained on a database in a central server
`within the VoIP service provider or elsewhere. In such
`embodiments, the signaling and voice engine 108 may access
`the central database to obtain call information prior to the
`E164 formatting engine 102 formatting a telephone number
`as explained hereinafter.
`In step 154, E.l64 formatting engine 102 receives call
`formatting data from database 106 for the call origin location
`designated in the user interface 100. As explained in greater
`detail hereinafter, the call origin location is signi?cant in that
`the telephone call is treated as originating within the country
`and area code set in the call origin location. Thus, for
`example, where a particular United States city is designated
`as the call origin location, and a seven digit telephone number
`is entered in number entry box 140, the E164 formatting
`engine 102 will treat that as a local call within the designated
`city as explained hereinafter.
`In step 156, the formatt