Business directory assistance via STB

A set-top box (STB) obtains a listing of businesses responsive to a request for a business directory search from a customer. The STB receives, from a customer, a selection of a business from the listing of businesses to call. The STB performs one of: initiating, at the STB, a Voice over Internet Protocol (VoIP) call to a phone number associated with the business and connecting the VoIP call to a mobile device, or other VoIP device, associated with the customer via a VoIP network, or initiating, at the STB, establishment of a call between a phone number associated with the business and a mobile device associated with the customer via a telephone network. The STB sends data associated with the request for the business directory search to a billing server for billing the customer for the request for the business directory search received at the STB.

BACKGROUND

Set-Top Boxes (STBs) are used for selecting among channels on a network, such as, for example, a cable network (e.g., an optical fiber network), to enable content transmitted on those channels to be displayed on display devices (e.g., televisions) connected to the STBs. The STB user may use a remote device to switch channels on the STB, or to provide input for controlling other functions on the STB. The remote device may be used, for example, for controlling the STB's digital video recorder (DVR), for accessing a digital television programming guide, for interacting with a user interface of the STB, or for turning on or off specific settings on the STBs (e.g., turning on closed captioning, setting display width, etc.). The STB's DVR may also include functionality for scheduling the recurring recording of a series of television programming.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Exemplary embodiments described herein enable a customer to initiate business directory assistance requests from a set-top box. The business directory search results returned to the customer's set-top box, based on the assistance requests, may include digital coupons that further include one or more offers, specials or deals for products and/or services. The set-top box may send the digital coupons to a separate mobile device (e.g., a mobile telephone, device installed in an automobile) associated with the customer, or may send links associated with the digital coupons to the separate mobile device. The customer may use the digital coupons received at the customer's mobile device for purchasing products or services. The customer may also request the future, pro-active delivery of the coupons. This delivery can be customized for receipt by medium (mobile device, automobile installed device, set-top box and television, desktop, tablet computer and/or other connected devices). Additional customization of the delivery of the coupons may be done by proximity (e.g., distance to a particular business, distance from a particular business) or context (e.g., received a coupon for a movie theater and subsequent coupon for dinner at XYZ restaurant). The customer may also receive a notification of coupon expiration.

In other embodiments described herein, a customer may also initiate business directory assistance requests from the set-top box and, when the business directory search results are returned, the customer may use “click-to-dial” functionality from the returned business directory search results to initiate, from the set-top box, a phone call to one of the businesses in the search results. In one implementation, the set-top box may initiate a VoIP call between the business's telephone number and either the customer's mobile device, or another VoIP device associated with the customer (e.g., VoIP phone) via an Internet Protocol network. In a further implementation, the set-top box may initiate a telephone call between the business's telephone number and either the customer's mobile device, or another telephone associated with the customer (e.g., a landline telephone) via a telephone network (e.g., a Public Switched Telephone Network or a cellular network).

FIGS. 1A-1Cdepict an overview of an exemplary embodiment in which a set-top box (STB) user may search for and obtain relevant business listings via the user's STB, and a coupon associated with a business of the relevant business listings may be provided to the user at a mobile device of the user that is different than the STB. InFIG. 1A, an exemplary network environment100may include a STB105, a television (TV)110, a network130, a business directory search server135, a coupon server145, and a mobile device150. As shown inFIG. 1A, a customer120may be associated with STB105and mobile device150.

STB105may receive content, from content service provider(s) (not shown), over network(s)130for presentation to customer120via TV110. STB105may, for example, receive the content via one or more channels (e.g., Quadrature Amplitude Module (QAM) channels) over network(s)130. The content may include, for example, TV video programs.

Business directory search server135may include a network device that receives business directory assistance requests from customer120via STB105, searches a database of business listings (not shown) using a search engine140, and provides results that includes a listing of business that are relevant to search parameters contained in the business directory assistance requests. Search engine140may search the database of business listings using the search parameters (e.g., business keyword and/or geographic location) contained in the business directory assistance requests received from customer120via STB105.

Coupon server145may include a network device that provides coupons related to products and/or services offered by businesses searched by search server135. The coupons may offer various specials, discounts, and/or deals associated with the products and/or services offered by the businesses. Mobile device150may include a portable computing device having wired or wireless connectivity, such as, for example, a desktop, laptop, palmtop or tablet computer; a cellular telephone (e.g., a “smart” phone); or a personal digital assistant (PDA). In some implementations, mobile device150may be a device installed in an automobile.

Network(s)130may include one or more networks of various types including, for example, a cable network (e.g., an optical cable network), a satellite network, a telecommunications network (e.g., a Public Switched Telephone Network (PSTN) or Public Land Mobile Network (PLMN)), an Advanced Television Systems Committee (ATSC) standards network, a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), an intranet, and/or the Internet. Network(s)130may, in some implementations, include one or more QAM channels (or other types of modulated or broadcast channels) for delivering content and Electronic Program Guide (EPG) data to STB105.

The configuration of network components of network environment100illustrated inFIG. 1Ais for illustrative purposes only. Other configurations may be implemented. Network environment100may include additional, fewer and/or different components than those depicted inFIG. 1A. For example, a single customer120, STB105and mobile device150are shown inFIG. 1A. Multiple customers120, STBs105and mobile devices150, however, may connect to network(s)130and may send business directory assistance requests to search server135.

As depicted inFIG. 1A(and inFIGS. 1B, 1C and 10, all discussed below), circled numbers in any figure depict a sequence of activity depicted by that figure. A customer120, as shown inFIG. 1A, may, via a business directory user interface115presented at TV110from STB105(shown sequentially with a “1” inFIG. 1A), initiate activity by causing a business directory assistance request155(shown with a “2”) to be sent from STB105to search engine140at server135. Request155may include search parameters associated with the businesses that customer120wishes to search. The parameters may include, for example, a business location (e.g., a city, a specific geographic location etc.) and/or a business name or business keyword (e.g., a business type). Upon receipt of request155, search engine140may search, using existing search algorithms, a corpus of businesses and may return business listing results160that are relevant to the parameters contained in request155. Server135may send business listing results160(shown with a “3”) to STB105for presentation to customer120as a business listing165(shown with a “4”) via TV110.

Customer120may subsequently select, via interaction with STB105, a specific business from business listing165and, as further shown inFIG. 1B, STB105may present information170associated with the selected business via TV110to customer120. The information may include the business's address, phone number, email address, webpage(s), and one or more coupons associated with the selected business. The one or more coupons may include discounts, specials, or deals that the business is offering to customer120and which customer120may use to purchase product and/or services from the business.

Upon selection of a coupon from the presented information170, STB105may, as shown inFIG. 1B, retrieve (shown with a “6”) coupon data from coupon server145and may send (shown with a “7”) the coupon data to mobile device150via network130as a coupon175(shown with a “8”) comprising text only (e.g., a text message), or may send a coupon180(shown with a “9”) that comprises text, graphics, and/or images. Coupon180may further include a bar code that, when displayed at mobile device150, may be read by a bar code scanner.

Alternatively, upon selection of a coupon from the presented information170, STB105may, as depicted inFIG. 1C, send (shown with a “11”) a message to mobile device150that includes a coupon link. The coupon link may include, for example, a Uniform Resource Locator (URL) associated with storage of the coupon at coupon server145. Upon receipt of the coupon link, mobile device150may use the coupon link to retrieve (shown with a “12”) coupon180from coupon server145for presentation (shown with a “13”) at mobile device150to customer120.

FIG. 2depicts exemplary components of STB105. STB105may include a tuner200, a demodulator210, a demultiplexer220, a decoder230, a processing unit240, a modem250, and a DVR unit260. Tuner200may select and tune to specific broadcast television information by tuning to one of many different input channels. Each channel may be digitally modulated using, for example, QAM, though other types of modulation may be used. Demodulator210may demodulate the information in the channel selected by tuner200to produce a transport stream (e.g., MPEG-2 or MPEG-4 transport stream) containing the audio, video and/or other information related to a selected TV program.

Demultiplexer220may select and decrypt compressed audio and video from the transport stream for the particular TV program that the customer120or device user wishes to watch. Decoder230may decode and decompress the decrypted audio and video information for the selected TV program. Processing unit240may include, for example, a microprocessor that controls the operations performed by tuner200, demodulator210, demultiplexer220, decoder230, modem250and DVR unit260based on user input (e.g., input received from customer120via a remote control device, not shown). Processing unit240may execute instructions to perform the exemplary processes ofFIGS. 4A & 4BandFIGS. 11A & 11B. Modem250may send and receive interactive data (e.g., EPG data) that may be processed by processing unit240. DVR unit260may digitally record, and store, audio and video content associated with the particular TV program decoded by decoder230.

The configuration of components of STB105inFIG. 4is for illustrative purposes only. Other configurations may be implemented. STB105may include additional, fewer and/or different components than those depicted inFIG. 2. For example, STB105may include a memory device (not shown) for storing instructions for execution by processing unit240.

FIG. 3is a diagram of exemplary components of a network device300. Each of mobile device150, search server135and coupon server145may be configured identical to, or similar to, network device300shown inFIG. 3. Network device300may include a bus310, a processing unit320, a main memory330, a read only memory (ROM)340, a storage device350, an input device(s)360, an output device(s)370, and a communication interface380. Bus310may include a path that permits communication among the elements of network device300.

Processing unit320may include one or more processors or microprocessors, or processing logic, which interprets and executes instructions. Main memory330may include a random access memory (RAM) or another type of dynamic storage device that stores information and instructions for execution by processing unit320. ROM340may include a ROM device or another type of static storage device that stores static information and instructions for use by processing unit320. Storage device350may include a magnetic and/or optical recording medium. Main memory330, ROM340, and storage device350may each be referred to herein as a “tangible non-transient computer-readable medium.”

Input device360may include one or more mechanisms that permit customer120to input information to network device300, such as, for example, a keypad or a keyboard, a display with a touch sensitive panel, voice recognition and/or biometric mechanisms, etc. Output device370may include one or more mechanisms that output information to customer120, including a display, a speaker, etc. Communication interface380may include any type of transceiver that enables network device300to communicate with other devices and/or systems. For example, communication interface380may include wired or wireless transceivers for communicating via network(s)130.

The configuration of components of network device300inFIG. 3is for illustrative purposes only. Other configurations may be implemented. Network device300may include additional, fewer and/or different components than those depicted inFIG. 3.

FIGS. 4A and 4Bare flow diagrams that illustrate an exemplary process for performing a business directory search via a STB to obtain relevant business listings, or a set of business coupons, for a requesting customer, and for providing a coupon associated with customer-selected businesses, or from the set of business coupons, to a mobile device of the customer. The exemplary process ofFIGS. 4A and 4Bmay be implemented by STB105. The exemplary process ofFIGS. 4A and 4Bis described below with respect toFIGS. 5-9.

The exemplary process may include STB105receiving a directory assistance request (block400) and, upon receipt of the request, STB105executes a business directory assistance search application (app) and presents a user interface via TV110(block405).FIG. 5depicts a user interface screen500that may be provided by STB105via TV110. As shown, user interface screen500includes a menu510that permits customer120to select a business/coupon search520that enables the customer120to perform a business search or a business coupon search.

STB105determines whether a business search or a coupon search has been selected by customer120(block410). Subsequent to the selection of business search520from user interface screen500, STB105may present, via TV110, a user interface screen600that permits customer120to select either a business search605or a coupon search610. If a coupon search is selected (COUPON—block410), then the exemplary process continues at block445below. If a business search is selected (BUSINESS—block410), then the app at STB105receives a name or keyword of a business and a location to search from customer120(block415). Referring to the user interface screen600ofFIG. 6, customer120may select, in a name/keyword field615, a name or keyword associated with a business which customer120wishes to search. The name may include all, or a portion of, a specific business name, and the keyword may include any word, or portion of a word, that may be associated with a specific business or a type of business. Additionally, customer120may select, in a location field620, a geographic location which the customer wishes to search. The geographic location may include a specific city, or a current location associated with STB105or mobile device150. Other types of search parameters, not shown inFIG. 6, may be selected from user interface screen600. Such parameters may include, for example, a distance parameter (to identify businesses within a specified distance from STB105or mobile device105), a price parameter (e.g., to identify businesses having low or high prices), or product and/or service parameters (e.g., that identify one or more products or services being searched by customer120).

The app at STB105sends the name or keyword of the business and the location to search engine140at server135(block420). Upon receipt of the business name/keyword and/or the location in block415, customer120may select the “find” button625in user interface screen600to cause the name/keyword of the business and the location to be sent (block420) to search engine140at search server135. STB105receives business search results and presents the search results as a set of business listings (block425).FIG. 7depicts a set700of business listings received from search engine140and presented to customer120. As shown inFIG. 7, customer120may select a listing710from the set700of business listings to obtain further information regarding listing710, and to obtain any coupons offered by the business of listing710.

The app at STB105receives a selection of a business listing from the search results, and presents the business listing along with an associated coupon(s) to customer120(block430). Once the listing710from the set700of business listings is selected, the app at STB105presents, as shown inFIG. 8, details800of the selected business listing710(including address information810), the telephone number820of listing710(e.g., as a “click-to-dial” button), one or more coupons830offered by the business of listing710, and a map840that depicts a geographic location of the business of listing710. If customer120further selects map840, detailed turn-by-turn directions900, and a more detailed map910may be provided by the app at STB105, as shown inFIG. 9. The resolution of map910may change as customer120interacts with controls of the user interface screen to zoom in or out of map910. Customer120may also select key landmarks along the route to be displayed on the map (e.g., banks, bridges, shopping, etc.).

The app at STB105receives customer selection of a coupon, and obtains the coupon, or a link to the coupon, from coupon server145(block435). STB105sends a message to the customer's mobile device150, where the message includes the selected coupon and/or a link to the selected coupon (block440). Referring toFIG. 1B, STB105obtains text, graphics or images, or text/graphics/images for the selected coupon (“6”) and then sends (“7”) the text, graphics or images, or text/graphics/images for the selected coupon to customer120's mobile device150for presentation (“8” or “9”) to customer120as coupon175or coupon180. Alternatively, referring toFIG. 1C, STB105obtains a link (e.g, a Uniform Resource Locator) to the coupon stored at coupon server145, and sends (“11”) the link to mobile device105. Upon receipt of the link to the coupon, mobile device105uses the link to retrieve (“12”) the coupon from coupon server145, and presents (“13”) the coupon180to customer120. Subsequent to block440, the exemplary process may return to block410awaiting another business directory search.

Returning to block410, when a coupon search is selected, the app at STB105receives a name or keyword of a coupon and a location to search (block445). Referring again to the user interface screen600ofFIG. 6, customer120may select, in a name/keyword field615, a name or keyword associated with a business which customer120wishes to search for coupon offers. The name may include all, or a portion of, a specific business name, and the keyword may include any word, or portion of a word, that may be associated with a specific business or a type of business. Additionally, customer120may select, in a location field620, a geographic location which customer wishes to search. The geographic location may include a specific city, or a current location associated with STB105or mobile device150. Other types of search parameters, not shown inFIG. 6, may be selected from user interface screen600. Such parameters may include, for example, a distance parameter (to identify businesses within a specified distance from STB105or mobile device105that are offering coupons), a price parameter (e.g., to identify businesses having low or high prices), or product and/or service parameters (e.g., that identify one or more products or services being searched by customer120).

The app at STB105sends the name or keyword of the coupon and the location to search engine140at server135(block450). Upon selection of the business name/keyword and/or the location in block445, customer120may select the “find” button625in user interface screen600to cause the name/keyword of the business and the location to be sent to search engine140at search server135for searching for offered coupons.

STB105receives coupon search results and presents the coupon search results to customer120via TV110(block455). STB105may, via TV110, present a user interface screen that depicts each of the coupons of the coupon search results. Each of the coupons of the coupon search results may be selectable, by customer120, from the user interface screen. The app at STB105receives customer selection of a coupon, and obtains the coupon or a link to the coupon from coupon server145(block460). STB105sends a message to the customer's mobile device150, where the message includes the selected coupon and/or a link to the selected coupon (block465). STB105receives input from customer120that selects one of the selectable coupons from the presented user interface screen of block455. Again referring toFIG. 1B, STB105obtains text, graphics or images, or text/graphics/images for the selected coupon (“6”) and then sends (“7”) the text, graphics or images, or text/graphics/images for the selected coupon via network130to customer120's mobile device150for presentation (“8” or “9”) to customer120as coupon175or coupon180, respectively. Alternatively, referring toFIG. 1C, STB105obtains a link (e.g, a Uniform Resource Locator) to the coupon stored at coupon server145, and sends (“11”) the link to mobile device150. Upon receipt of the link to the coupon, mobile device150uses the link to retrieve (“12”) the coupon from coupon server145, and presents (“13”) the coupon180to customer120. Customer120may subsequently cause the presented coupon180to be printed in hard copy form (e.g., via a printer networked with mobile device150). Subsequent to block465, the exemplary process may return to block410with another business directory search.

FIG. 10depicts an overview of an exemplary embodiment in which a customer initiates a business directory search via a STB, the customer initiates a call to a business contained in the business directory search results, and the directory assistance search and/or the subsequent customer call are then automatically billed to the customer's account by a billing server. InFIG. 10, an exemplary network environment1000includes similar network components to those depicted inFIGS. 1A-1C, with the addition of a called phone1010and a billing server1015. Called phone1010may include a telephone (e.g., landline or mobile) associated with a business that is to be called by customer120via STB105. Billing server1015may include a network device that receives data associated with a directory assistance request, and subsequent search by search engine140, and/or data associated with a call made by customer120to the business associated with called phone1010. The configuration of network components of network environment1000illustrated inFIG. 10is for illustrative purposes only. Other configurations may be implemented. Network environment1000may include additional, fewer and/or different components than those depicted inFIG. 10.

As depicted inFIG. 10, customer120may, via a business directory user interface1000presented at TV110from STB105(shown with a “1” inFIG. 10), cause a business directory assistance request (shown with a “2”) to be sent from STB105via network130to search engine140at server135. The directory assistance request may include parameters associated with the businesses that customer120wishes to search. The parameters may include, for example, a business location (e.g., a city, near a specific geographic location etc.) and a business keyword (e.g., a business type). Upon receipt of the request, search engine140may search a corpus of businesses and may return business listing results that are relevant to the parameters contained in the directory assistance request. Server135may send business listing results (shown with a “3”) to STB105for presentation to customer120as business listings1005(shown with a “4”) via STB105and TV110. Customer120may subsequently select a business from business listings1005, and STB105may present information associated with the selected business. The information may include the business's address, phone number, email address, webpage(s), and a call “button”1020associated with the selected business.

Selection of call button1020by customer120causes STB105to initiate a call (shown with a “5”) between mobile device150(or another telephone device associated with customer120) and called phone1010via network130. Subsequent to selection of call button1020, STB105, or STB105in conjunction with another network node, may send data (shown with a “6”) associated with the directory assistance request and the call to called phone1010to billing server1015. Billing server1015may, based on the received data, bill an account of customer120for the directory assistance request and/or the call.

FIGS. 11A and 11Bare flow diagrams that illustrate an exemplary process for executing a business directory search at a STB, initiating a call to a business included in results of the business directory search at the STB, and automatically billing the business directory search and/or the call to a customer's account. The exemplary process ofFIGS. 11A and 11Bmay be implemented by STB105. The description of the exemplary process ofFIGS. 11A and 11Brefers toFIG. 10, and the previously described examples ofFIGS. 5-9.

The exemplary process may include STB105receiving a directory assistance request (block1100) and, upon receipt of the request, STB105executes a directory assistance search application and presents a user interface via TV110(block1105). Referring again toFIG. 5, this figure depicts user interface screen500that may be provided by STB105via TV110. As shown, user interface screen500includes a menu510that permits customer120to select a business/coupon search520that enables the customer120to perform a business search or a business coupon search.

The application at STB105receives a name or keyword of a business and a location to search (block1110). Referring again to the user interface screen600ofFIG. 6, customer120may select, in a name/keyword field615, a name or keyword associated with a business which customer600wishes to search. The name may include all, or a portion of, a specific business name, and the keyword may include any word, or portion of a word, that may be associated with a specific business or a type of business. Additionally, customer120may select, in a location field620, a geographic location which customer wishes to search. The geographic location may include a specific city, or a current location associated with STB105or mobile device150. Other types of search parameters, not shown inFIG. 6, may be selected from user interface screen600. Such parameters may include, for example, a distance parameter (to identify businesses within a specified distance from STB105or mobile device105), a price parameter (e.g., to identify businesses having low or high prices), or product and/or service parameters (e.g., that identify one or more products or services being searched by customer120).

The application at STB105sends the name and/or keyword of the business and the location to search engine140at search server135(block1115). Upon receipt of the business name/keyword and/or the location in block1110, customer120may select the “find” button625in user interface screen600to cause the name/keyword of the business and the location to be sent (block1115) to search engine140at search server135. The application at STB105receives business search results and presents the business search results as business listings (block1120).FIG. 7depicts a set700of business listings received from search engine140and presented to customer120. As shown inFIG. 7, customer120may select a listing710from the set700of business listings to obtain further information regarding listing710.

The application at STB105receives a customer selection of a business to call (block1125). Customer120may select a business listing from the search results, and present the business listing. Once the listing710from the set700of business listings is selected, the app at STB105presents, as shown inFIG. 8, details800of the selected business listing710(including address information810), the telephone number820of listing710(e.g., as a “click-to-dial” button), one or more coupons830offered by the business of listing710, and a map840that depicts a geographic location of the business of listing710. If customer120further selects map840, detailed turn-by-turn directions900, and a more detailed map910may be provided by the app at STB105, as shown inFIG. 9. Customer120may select the business to call by selecting “click-to-dial” button820, which displays the business's telephone number, from the user interface screen.

In an exemplary embodiment in which the call to the business of the selected business listing is implemented as a VoIP call via an IP network, the application at STB105obtains the selected business listing's phone number and initiates a VoIP call to the phone number (block1130). The initiated VoIP call may be designated as originating from a VoIP telephone number associated with customer120(e.g., a Verizon FiOS Digital Voice telephone number). The application at STB105causes the VoIP call to be connected to customer120's mobile device150, or to another VoIP device (e.g., tablet computer, Personal Digital Assistant, etc.), via the IP network (block1135). The other VoIP device may, for example, be a telephone connected to the IP network (e.g., via a VoIP service). STB105may interact with an external VoIP network device (e.g. a VoIP call server) to cause the VoIP call to be connected between customer120's mobile device150, or another VoIP device, and called phone1010via the IP network. The called phone1010may reside in telephone network, and the call may bridge between the IP network and the telephone network. The exemplary process continues at block1150(FIG. 11B).

In an exemplary embodiment in which the call to the business of the selected business listing is implemented as a call via a telephone network (e.g., PSTN or cellular network), the application at STB105obtains the selected business listing's phone number (block1140). The application at STB105initiates establishment of the call between customer120's mobile device150and the phone number via the telephone network (block1145). STB105may interact with an external node in the telephone network to cause the call to be connected between customer120's mobile device, or other telephone network device (e.g., landline telephone), and called phone1010via the telephone network. The exemplary process continues at block1150. In some embodiments, customer120may select (e.g, via STB105, or via customer preferences or a customer profile) whether the STB app initiates the VoIP call via the VoIP network, (e.g., blocks1130and1135) or via the telephone network (e.g., blocks1140and1145).

Subsequent to blocks1135or1145, STB105, or another network node, may send data associated with the directory assistance request and the subsequent call to billing server1015(block1150). STB105, or a network node involved in establishing and/or monitoring the phone call, may send the data to billing server1015over network130. The data may include, for example, a unique identifier associated with customer120, the telephone number of called phone1010, a number of minutes of duration of the phone call, a time and date of the phone call, etc. Billing server1015bills customer120for the STB directory assistance request and/or call (block1155). A fee may be billed to an account associated with customer120for each call initiated from a directory assistance request.

The foregoing description of implementations provides illustration and description, but is not intended to be exhaustive or to limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention.FIGS. 4A and 4Bdescribe an exemplary process for conducting a business directory or coupon search at a set-top box, and subsequent provision of a selected coupon to another device (e.g., mobile device) based on selection at the STB. In other implementations, the business directory or coupon search may be performed at a non-STB device, and then delivered to a second device. For example, the business directory or coupon search may be performed on a desktop computer, and a selected coupon may be delivered to the customer's mobile device. As another example, the business directory or coupon search may be performed on a cellular phone (e.g., smart phone), and a selected coupon may be delivered to the customer's tablet computer. Exemplary embodiments herein describe processes for conducting business directory or coupon searches, for obtaining coupons, and for initiating calls from a business directory search. Additional embodiments may include processes for tracking and optimizing the features described herein by usage, device, business category, time of day, location, proximity, context, relevancy, amount of money spent, billing or duration of use. While a series of blocks have been described with regard toFIGS. 4A, 4B, 11A and 11B, the order of the blocks may be modified in other embodiments. Further, non-dependent blocks may be performed in parallel.