User message delivery to calling party device

In one embodiment, a call setup message for a call from a calling party device to a called party device is received. At least one calling party parameter for the calling party device is determined. A user message is selected based on the at least one calling party parameter. Delivery of the user message to the calling party device is initiated in parallel with a call setup for the call from the calling party device to the called party device.

TECHNICAL FIELD

The invention relates generally to message communications and more particularly to message communications to calling party devices.

BACKGROUND

Existing ringback services enable wireless or wireline service subscribers to pre-select audio and multimedia content to be played to communication devices by which calls are initiated to the service subscribers. The pre-selected audio and multimedia content replaces a traditional ringing sound heard by a calling party before the called party answers. As such, the ringback service enables the called party to customize audio and multimedia content that a calling party hears or sees during call setup between the calling party device and the called party device.

SUMMARY

The invention in one implementation encompasses a method. A call setup message for a call from a calling party device to a called party device is received. At least one calling party parameter for the calling party device is determined. A user message is selected based on the at least one calling party parameter. Delivery of the user message to the calling party device is initiated in parallel with a call setup for the call from the calling party device to the called party device.

Another implementation of the invention encompasses an apparatus. The apparatus comprises a network component of a communication network that receives an incoming call that is redirected by a mobile switching center in parallel with a call setup of the incoming call. The incoming call is for a called party device and from a calling party device. The network component determines at least one calling party parameter for the calling party device. The network component selects a user message based on the at least one calling party parameter. The network component initiates delivery of the user message to the calling party device in parallel with the call setup of the incoming call by the mobile switching center.

A further implementation of the invention encompasses an apparatus. The apparatus comprises a calling party network and a called party network. The calling party network comprises a network component and a serving mobile switching center. The serving mobile switching center redirects an incoming call to the network component in parallel with a call setup of the incoming call. The incoming call is for a called party device and from a calling party device. The network component determines at least one calling party parameter for the calling party device. The network component selects a user message based on the at least one calling party parameter. The network component initiates delivery of the user message to the calling party device in parallel with a call setup of the incoming call by the serving mobile switching center.

DETAILED DESCRIPTION

Turning toFIG. 1, an apparatus100in one embodiment comprises a communication network101with a calling party device102that places an incoming call to a called party device104. The calling party device102and the called party device104in one example comprise mobile phones, personal digital assistants (PDAs), computers, or other like communication devices. The apparatus100comprises a calling party network105and a called party network106. The calling party device102is a member of the calling party network105and the called party device104is a member of the called party network106. For example, the calling party network105provides communication service to the calling party device102and the called party network106provides communication service to the called party device104. The calling party network105and the called party network106may comprise a General Packet Radio Service (GPRS) network, a Global System for Mobile (GSM) network, a Third Generation (3G) wireless network (e.g., a Wideband Code Division Multiple Access (WCDMA) network, a Universal Mobile Telecommunications System (UMTS) network, a CDMA2000 network, Internet Protocol Multimedia Subsystem (IMS) network, and the like), a Fourth Generation (4G) wireless network, a WIFI (802.11 a/b/e/g/n/p), WiMAX (802.1116 d) or WiBro (802.1116 e) wireless network, and like wireless networks as known in the art. The calling party network105and called party network106need not be of the same type, but need to interwork to set up communication between the two end devices. The calling party network105and the called party network106in one example are the same network.

The calling party network105and the called party network106in one example comprise pre-IMS (internet protocol multimedia subsystem) networks with separate channels for audio and data. For example, the networks are circuit switched for audio (e.g., voice) communication with the calling party device102and packet switched for data communication with the calling party device102. In the embodiment ofFIG. 1, the called party network106comprises a Home Location Register (HLR)110, a Gateway Mobile Switching Center with Visitor Location Register (G-MSC/VLR)112, a Serving Mobile Switching Center with Visitor Location Register (S-MSC/VLR)114, a network component116, and a content server118.

The called party network106is configured to provide a user message communication service to the calling party device102. The user message in one example comprises an advertisement message. The network component116and the content server118cooperate to provide audio, text, still images, animated images, video, hypertext markup language (HTML) content, and/or multimedia to the calling party device102in parallel with call setup for a call to the called party device104. The network component116and the content server118may share responsibility for providing the user message communication service. In one example, the network component116comprises an advertisement server that performs selection of the user message and the content server118provides storage and delivery of the user message to the calling party device102. In another example, the network component116and the content server118comprise a same component, for example, the network component116performs selection, storage, and delivery of the user message. Those skilled in the art will recognize that alternative implementations may be configured with one or more software and/or hardware modules performing the selection, storage, and delivery of the user message. In addition, the content delivered to the user may be trans-coded or transformed to meet the characteristics of the calling party device102and/or the characteristics of the calling party network105.

The calling party device102in one example comprises a user interface for presentation of the user message. For example, the calling party device102plays at least one of an audio tone, audio message, displays an image, or plays a video to a user of the calling party device102. In a further example, the calling party device102comprises a user interface for display and/or modification of at least one user-defined parameter of a user profile, as described herein. Examples of user interfaces for display or modification comprise interactive voice response, touch-tone, short message service, wireless application protocol (WAP), and world wide web (WWW) pages.

The network component116in one embodiment comprises a ringback tone server. For example, the called party network106and the network component116are configured to provide a ringback tone service for the called party device104. The network component116may provide a multimedia ringback service for the called party device104. For example, the network component116communicates a multimedia ringback tone to the calling party device102. Those skilled in the art will recognize that the ringback tone service is a called party service, whereas the user message communication service is a calling party service. For example, while a recipient of both services is the calling party, the ringback tone service uses the called party's information and subscription data to provide the service, while the user message communication service uses the calling party's information, subscription data, and/or location. Both services are provided by the called party's network to the calling party.

In one example, the user message communication service is an opt-in service, for example, when the user messages communicated to the calling party are advertisement messages for an advertisement service. In this example, a service provider of the calling party network105may offer an incentive for a user of the calling party device102to opt into the service, such as discount coupons, lower subscription rate, or other like benefits. In addition, the opt-in service need not be “yes”/“no” rather the user may be given the option to “hide” or “reveal” pieces of information about him(her)self to influence the choice of content to be played to the called party.

In the called party network106, the network component116may establish an audio channel with the calling party device102for playback of a tone or other audio messages. The network component116may also send a data content address or Uniform Resource Identifier (URI) such as a Uniform Resource Locator (URL), a Uniform Resource Name (URN), and the like, to the calling party device102for establishment of at least one data channel between the calling party device102and the content server118. The network component116and the content server118in one example employ at least one data channel to send an image, video (e.g., video stream or downloaded video), short message service (SMS) message, or other data message to the calling party device102. The video may also have an embedded audio channel or audio track.

The calling party network105in one example comprises a Gateway General Packet Radio Service Support Node (GGSN)108, a database (DB)120, a profile server122, and a location server124. The database120in one example comprises an authentication, authorization and accounting (AAA) RADIUS billing record database. The profile server122comprises a user profile for the user of the calling party device102. The location server124comprises or determines location information for the calling party device102. The location server124may use various methods and/or devices to determine the location of the calling party device102, for example, triangulation, global positioning system (GPS), mapping the directory number of the calling party device102to a location, or a reverse IP address lookup table. In one example, the profile server122and the location server124comprise a same component, for example, profile/location server201(FIG. 2). It is noted that, though not explicitly shown in the figures, the called party network106may also have similar elements that interwork with their peers in the calling party network105in obtaining the information needed by the network component116. Although the embodiments ofFIGS. 1,2, and3are described using a universal mobile telephone system (UMTS) network architecture (using network components such as GGSN), those skilled in the art will appreciate that alternate embodiments are possible with different network architectures, for example, with a code division multiple access (CDMA) network (where a packet data serving node, PDSN, would be the network element corresponding to GGSN) or IMS network.

At least one of the calling party device102, the network component116, the content server118, the profile server122, the location server124, and the profile/location server201in one example comprise an instance of a recordable data storage medium126, as described herein.

An illustrative description of operation of the apparatus100is presented, for explanatory purposes. Turning toFIG. 2, one example of a message flow200for the apparatus100is shown for a GPRS communication network. In STEP202, the calling party device102sets up a packet data protocol (PDP) context with the GGSN108to enable the calling party device to send or receive data at some subsequent time. The user of the calling party device102initiates (STEP204) a voice call (e.g., an incoming call) to the called party device104. The call gets routed per normal telecommunications network procedures to reach the G-MSC/VLR112associated with the called party device104. The G-MSC/VLR112queries (STEP206) the HLR110for call routing and service subscription information for the called party device104. The response from the HLR indicates to the G-MSC/VLR112that the incoming call needs to receive message service. Accordingly, the G-MSC/VLR112redirects the incoming call to the network component116by sending (STEP208) a call setup message or IAM to the network component116. For example, the call setup message or IAM contains the directory number of the calling party device102and the directory number of the called party device104. In one example, redirecting the incoming call to the network component116is a default behavior or default call routing provided by the HLR110.

The network component116comprises a lookup table that associates North American Numbering Plan numbers (i.e., NPA-NXX) with network service providers and corresponding addresses for at least one DB120of each service provider. The network component116employs the directory number of the calling party device102to perform the lookup of an identifier (e.g., the address or a service provider ID) for a service provider of the calling party device102. The network component116constructs a network access identifier (NAI) for the calling party device102, for example, using the directory number of the calling party device102, the service provider ID, or other parameters known in the art. The network component116queries (STEP210) at least one of the DB120for a data channel address of the calling party device102, for example, an internet protocol address.

The network component116in one example obtains (STEP212) the user profile for the user of the calling party device102from the profile/location server201. The network component116may also determine (STEP214) the location of the calling party device102. In STEP214, the network component116in one example sends a request for the location of the calling party device102with at least one location parameter. Examples of location parameters comprise a directory number of the calling party device102, a data channel address of the calling party device102, and a requested granularity of location information (e.g., street address, zip code, city, area code, state, etc.). Where the profile server122and the location server124comprise a same component such as the profile/location server201, the network component116in one example may send a single message to the profile/location server201to obtain both the user profile and the location of the calling party device102. In an alternative example, the network component116determines the location of the calling party device from the directory number of the calling party device or a data channel address of the calling party device. In this example, the network component116does not query the profile/location server201. For example, the network component116may determine an area or zip code for the calling party device102based on the directory number of the calling party device102.

The network component116selects the user message for communication to the calling party device102. The network component116in one example determines at least one calling party parameter and selects the user message based on the calling party parameter. Examples of calling party parameters comprise a data channel address of the calling party device102, the user profile for the user of the calling party device102, and the location of the calling party device102. In another example, the network component116may select the user message based solely on the calling party device102and other internally known parameters of the network component116, such as time of day or day of week, etc. The network component116may select the user message based on previously delivered user messages. For example, the network component116may throttle delivery of the user messages such that a limited number of user messages are sent in a predetermined time period (e.g., four user messages per day), a limited number of user messages are sent from a message category (e.g., three user messages for clothing sales), or a single user message is sent a limited number of times (e.g., a one-time user message for a sale item).

The user profile comprises data for selection of the user message, for example, opt-in status, demographic information, user preferences, personality type or characteristics, capabilities of the calling party device102, bandwidth available to the calling party device102, quality of service levels, commercial product interests, user message throttling levels, and other criteria as appreciated by those skilled in the art. For example, the network component116may determine the opt-in status or other data from the user profile for selection of the user message. The user profile may also comprise account settings for the calling party device102, such as billing information, account status, network resource permissions, and others, as will be understood by those skilled in the art. The user profile may comprise additional information to characterize the user, such as “Sports enthusiast”, “Comedy lover”, a list of favorite stores, sale items of interest, etc. The user profile may also comprise a status of the user (e.g., “at home”, “at the office”, “driving”, “out of town”, etc.). The user may activate a status to alter the user profile. The user profile in one example comprises a location parameter that identifies a user preference for a home location or current location for selection of the user message. For example, if the location parameter indicates a home location, the network component116selects user messages based on the user's home area even if the user is currently traveling outside of the home area.

The calling party device102can receive an audio channel for voice and audio communication. Examples of embodiments for the audio channel comprise a circuit-switched network, packet-switched network, voice over internet protocol (VoIP), and others, as will be appreciated by those skilled in the art. The calling party device102may also receive at least one data channel, for example, for packet-switched data, short message service (SMS), or other data communication. The network component116may select a user message that utilizes one or both channels. The user message may comprise a plurality of user messages to be delivered in parallel or in succession across the audio and/or data channels. Examples of user messages comprise: an audio message over the audio channel; an audio message over the audio channel and an image message over a data channel; a text message, an image message, and a video message provided in succession over at least one data channel, and others, as will be appreciated by those skilled in the art. If no data channel address is received in STEP210from any of the queried DB120within a time period, the network component116concludes that the calling party device cannot currently receive data messages and therefore selects only an audio message to be communicated to the calling party device102. The time period may be provisioned in the network component116. It could also be that the calling party device102, being currently used by the calling party, is not capable of data communication in which case again the network component116will be correct in selecting to communicate only an audio message to the calling party device102. In one example, the network component116maintains or obtains a list of device capabilities for the calling party device102and determines whether or not to query for the data channel address of the calling party device102based on the list, as will be appreciated by those skilled in the art.

The network component116sends (STEP216) a confirmation message (e.g., address complete message) to the G-MSC/VLR112to confirm an audio channel with the calling party device102. The network component116communicates (STEP218) an audio user message to the calling party device102over the audio channel. Where the user message will be sent over a data channel, the network component116sends (STEP220) a data content address or uniform resource locator (URL) to the calling party device102for establishment of a data channel. In one example, the data content address is sent using user datagram protocol (UDP). The data content address comprises an address for the user message. Where the user message comprises a plurality of user messages, the network component116may send (STEP220) at least one data content address or URL to the calling party device102for establishment of at least one data channel. For example, the network component116may send a first data content address for an image and a second data content address for a video to the calling party device102. The network component116may send the one or more data content addresses in a single message or in separate messages. For example, the network component116performs one instance of STEP220for each data content address. The calling party device102may establish a single data channel for all of the data messages or multiple data channels for the data messages, as will be appreciated by those skilled in the art.

Where the user message comprises for example an image, animated image, or HTML content, the calling party device102in one example requests (STEP222) the user message from the content server118, for example, using HTTP over a data channel. Where the user message comprises for example a video user message, the calling party device102requests (STEP224) the video user message from the network component116, for example, using real time streaming protocol (RTSP) or another streaming protocol over a data channel. The network component116in one example comprises a server side RTSP stack for exchanging RTSP messages (or other video stream parameters) with the calling party device102. The network component116and the calling party device102exchange the video stream parameters (e.g., RTSP DESCRIBE and SETUP messages) for initialization of a video stream, for example, a real time protocol (RTP) stream. The RTSP messages in one example comprise port numbers and video stream parameters for delivery of the video user message to the calling party device102. WhileFIG. 2depicts only one instance of STEPS220,222, and224, those skilled in the art will understand that multiple instances of STEP220may be performed by the network component116, with corresponding STEPS222and/or224in response by the calling party device102.

In the embodiment where the network component116is separate from the content server118and the user message comprises a video user message, the network component116in one example comprises a client side stack for exchanging RTSP messages with the content server118. The network component116requests (STEP225) the user message from the content server118but requests that the video user message be delivered to the calling party device102, for example, to the IP address and port number of the calling party device102. Upon setup of the video stream, the calling party device102may begin the video user message by sending a request to the network component116, for example, an RTSP PLAY message. The network component116receives and forwards the RTSP PLAY message to the content server118to initiate (STEP226) the data stream or video user message. In one example, the network component116controls a duration of the video stream. For example, the network component116forwards the RTSP play message with a RANGE parameter to force a playback of the video user message for a predetermined time interval prior to connecting the incoming call to the called party. The network component116has information about when the audio channel was initiated and also when the data channel was initiated. The network component116in one example establishes a mapping between the audio user message and the data user message. The network component116may use the mapping to turn off, stop, or disable the audio user message, for example, if the video user message comprises an audio track.

The G-MSC/VLR112sets up the incoming call to the called party device104by sending (STEP228) a call setup message or IAM to the S-MSC/VLR114. STEP228in one example occurs in parallel with STEP208. The S-MSC/VLR114responds (STEP230) with a confirmation message or address complete message. The S-MSC/VLR114sets up the incoming call and alerts (STEP232) the called party device104. When the called party answer (STEP234), the S-MSC/VLR114sends (STEP236) an answer message (ANM) to the G-MSC/VLR112. The G-MSC/VLR112sends (STEP238) a release message, for example, an ISUP REL message, to the network component116to release network resources employed for delivery of the user message. The network component116releases the network resources and sends (STEP240) an ISUP release complete message (RLC) to the G-MSC/VLR112. Where the user message comprises a video user message, the network component116signals (STEP242) the content server118to stop the video stream. For example, the network component116sends an RTSP PAUSE message and RTSP TEARDOWN message to the content server118through the client side RTSP stack. The G-MSC/VLR112connects (STEP244) the incoming call from the calling party device102with the called party device104, and voice communication between users of the calling party device102and the called party device104ensues.

Turning toFIG. 3, an apparatus300comprises one implementation of a communication network301. The communication network301comprises an alternative embodiment of the communication network101. The communication network301comprises the calling party device102, the called party device104, the calling party network105, and the called party network106. In this embodiment, the calling party network105comprises a serving mobile switching center302for the calling party device102, a home location register (HLR)304for the calling party device102, and a network component/content server306. The network component/content server306comprises a combination of the network component116and the content server118, but may also be separate components. The network component/content server306performs selection, storage, and delivery of the user message. The mobile switching center302in one example performs one or more of the steps of the G-MSC/VLR112, but in the calling party network105instead of the called party network106. The HLR304in one example employs an originating attempt detection point to cause the serving mobile switching center302to redirect the incoming call to the network component/content server306. For example, the HLR304employs the originating attempt detection point to trigger a download of the user profile from the profile server122. The user profile in this embodiment may comprise the opt-in status of the calling party device102and an address for the network component/content server306. The serving mobile switching center302redirects the call to the network component/content server306, as will be appreciated by those skilled in the art.

The apparatus100in one example comprises a plurality of components such as one or more of electronic components, hardware components, and computer software components. A number of such components can be combined or divided in the apparatus100. An example component of the apparatus100employs and/or comprises a set and/or series of computer instructions written in or implemented with any of a number of programming languages, as will be appreciated by those skilled in the art.

The apparatus100in one example employs one or more computer-readable signal-bearing media. The computer-readable signal-bearing media store software, firmware and/or assembly language for performing one or more portions of one or more implementations of the invention. Examples of a computer-readable signal-bearing medium for the apparatus100comprise the recordable data storage medium126of the calling party device102, the network component116, the content server118, the profile server122, the location server124, and the profile/location server201. The computer-readable signal-bearing medium for the apparatus100in one example comprise one or more of a magnetic, electrical, optical, biological, and atomic data storage medium. For example, the computer-readable signal-bearing medium comprise floppy disks, magnetic tapes, CD-ROMs, DVD-ROMs, hard disk drives, and electronic memory. In another example, the computer-readable signal-bearing medium comprises a modulated carrier signal transmitted over a network comprising or coupled with the apparatus100, for instance, one or more of a telephone network, a local area network (“LAN”), a wide area network (“WAN”), the Internet, and a wireless network.

The steps or operations described herein are just for example. There may be many variations to these steps or operations without departing from the spirit of the invention. For instance, the steps may be performed in a differing order, or steps may be added, deleted, or modified.