Patent Publication Number: US-2003227916-A1

Title: System and method for the multicast distribution of multimedia messaging service messages

Description:
FIELD OF INVENTION  
       [0001] This invention relates to systems and methods for data distribution.  
       BACKGROUND INFORMATION  
       [0002] In recent years, there has been an increase in the use of wired and wireless networks to distribute data and/or provide services to devices such as wireless terminals, personal computers, and PDAs. One emerging network service is MMS (Multimedia Messaging Service). MMS, for example, allows users to send and receive messages including various types of content such as video, audio, and text.  
       [0003] There has been a good deal of interest in MMS, and the 3rd Generation Partnership Project (3GPP) has drafted specifications concerning this technology. Accordingly, there may be increased interest in technologies that may facilitate the use of network services such as MMS.  
       SUMMARY OF THE INVENTION  
       [0004] According to embodiments of the present invention, there are provided systems and methods that employ multicast delivery techniques in the distribution of MMS (Multimedia Messaging Service) messages.  
       [0005] Also provided are systems and methods for receiving such messages.  
     
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
     [0006]FIG. 1 shows an exemplary network arrangement according to embodiments of the present invention.  
     [0007]FIG. 2 a  is a flow chart showing steps involved in a first exemplary delivery method according to embodiments of the present invention.  
     [0008]FIG. 2 b  is a flow chart showing steps involved in a second exemplary delivery method according to embodiments of the present invention.  
     [0009]FIG. 2 c  is a flow chart showing steps involved in a third exemplary delivery method according to embodiments of the present invention.  
     [0010]FIG. 3 is a flow chart showing steps involved in messaging service selection and data reception according to embodiments of the present invention.  
     [0011]FIG. 4 is a flow chart showing steps involved in reception of a notification according to embodiments of the present invention.  
     [0012]FIG. 5 is a flow chart showing steps involved in reception of a MMS message according to embodiments of the present invention.  
     [0013]FIG. 6 shows an exemplary general purpose computer employable in various embodiments of the present invention.  
     [0014]FIG. 7 shows a functional block diagram of an exemplary terminal employable in various embodiments of the present invention.  
    
    
     DETAILED DESCRIPTION OF THE INVENTION  
     [0015] General Operation  
     [0016] According to embodiments of the present invention, there are provided systems and methods for distributing MMS (multimedia messaging service) messages via multicast. More specifically, a messaging address, email address, MIN (Mobile Identification Number), MDN (Mobile Directory Number), unicast IP address, or the like may be associated with a multicast address such as an IP multicast address. Through this association, a MMS message addressed to such a messaging address, MIN, or the like could be delivered, in a multicast fashion, to all terminals that have adopted the corresponding multicast address and/or joined the corresponding multicast group. In certain embodiments, a messaging address, MIN, or the like so associated with a multicast address could be referred to as a “services address”.  
     [0017] In certain embodiments, services addresses may be associated with messaging services. For example, the messaging address “sports@nokia.com” could be associated with a messaging service providing MMS messages comprising sports news, videos, images, and the like. The service provider offering the service could direct the messages to the services address “sports@nokia.com”. The terminals of users interested in receiving the messages could be configured to subscribe to the messaging service by adopting the multicast address and/or joining the multicast group corresponding to the messaging address “sports@nokia.com”. It is noted that, “Service provider”, as used herein, may refer to an individual, company, computer or the like.  
     [0018] Embodiments of the invention provide one or more relay devices, each capable of acting as the initial recipient of messages directed towards one or more services addresses. In such embodiments, a services address could be the messaging address, MIN (Mobile Identification Number), MDN (Mobile Directory Number), unicast IP address, or the like assigned to and/or associated with a particular relay unit.  
     [0019] Upon receipt of a message, a relay device could dispatch the message via multicast, perhaps using multicast addressing, to the terminals subscribed to the messaging service corresponding to the services address to which the message was directed. More specifically, upon receipt of the message, the relay device could first act to determine the multicast address associated with the services address to which the message was directed. Next, the relay unit could perform multicast delivery of the message in accordance with the determined multicast address. The multicast delivery could be performed, for instance, using a unidirectional or bidirectional delivery method.  
     [0020] Embodiments of the present invention may be employed in number of different types of networks. For instance, embodiments may be employed in wired networks, wireless networks, and/or networks having both wired and wireless portions. Furthermore, embodiments may be employed in unidirectional networks, bidirectional networks, and/or networks having both unidirectional and bidirectional portions. Accordingly, embodiments of the present invention are applicable to, for example, the Internet and wireless networks employing DVB-T (terrestrial digital video broadcast), DVB-S (satellite digital video broadcast), DVB-C (cable digital video broadcast), DAB (digital audio broadcast), 802.11b, GPRS (general packet radio service), UMTS (universal mobile telecommunications service), DRM (digital radio mondiale) and/or Bluetooth.  
     [0021] It is specifically noted that more than one services address could be assigned to and/or associated with a particular relay unit. Thus, in the case where services addresses were in the form “service@domain”, a particular relay unit could handle all services addresses associated with a particular domain. For example, a particular relay unit handling the domain “nokiadatacasting.com” might receive and process messages bearing service addresses in the form of “service@nokiadatacasting.com”, including perhaps “sports@nokiadatacasting.com”, “weather@nokiadatacasting.com”, and “movies@nokiadatacasting.com”. Alternately, a particular relay unit might handle services associated with different domains.  
     [0022] Network Arrangement  
     [0023] Shown in FIG. 1 is an exemplary network arrangement according to embodiments of the present invention.  
     [0024] MMSC (MMS center)  103  may act to store MMS messages, and to deliver them to their corresponding recipients when those recipients and willing and/or able to receive the messages. The MMSC may receive both MMS messages intended for single recipients and MMS messages intended for multicast delivery to perhaps a multitude of recipients and/or addressed to a multitude of multicast MMS services.  
     [0025] A service provider device  101  may act to dispatch one or messages directed to one or more services addresses. Each such message may be received, stored, and forwarded by MMSC  103  to the relay unit  105  associated with the services address to which the message is directed. Upon receipt of the message, the relay unit may, as alluded to above, act to determine the multicast address associated with the services address.  
     [0026] The relay unit may make this determination, for example, by consulting database  107 . Database  107  could be, as is illustrated in FIG. 1, a centralized database that is accessible by a multitude of relay units. Such a database could correlate services addresses with multicast addresses. In alternate embodiments, each relay unit could have its own database  107  correlating services addresses with multicast addresses.  
     [0027] Once a relay unit has determined the multicast address corresponding to a services address, it could consult a database in order to determine the multicast delivery method that should be employed to deliver the message or messages being processed. Such multicast delivery methods will be described in more detail below. Next, the relay unit could perform multicast delivery in accordance with the determination. Consequently, the message or messages being processed could be received by one or more terminals  109  that receive transmissions directed to the multicast address associated with the message or messages. For example, a terminal  109  might act to learn which transmissions to listen to, perhaps in response to a user dynamically selecting multicast MMS services via an interface associated with the terminal.  
     [0028] The database consulted to determine delivery method could be the same database consulted to determine multicast addresses or could be a separate database. In certain embodiments, a message could include a specification of the multicast delivery method that should be employed in its delivery. In such embodiments, consultation of a database to learn multicast delivery method might be unnecessary. Databases could be maintained by a system administrator or the like. “System administrator”, as used herein, may refer to an individual, company, computer or the like. The choice of multicast address and/or distribution method for a particular services address could be made, for example, by a system administrator and/or the content provider that would make use of the services address for MMS message distribution.  
     [0029] Various aspects of the invention will now be described in greater detail.  
     [0030] Service Provision  
     [0031] A service provider wishing to distribute MMS messages in accordance with the present invention might first request that one or more services addresses be established.. In certain embodiments, this request might be directed towards a system administrator or the like. In the request, the service provider might specify a number of messaging addresses, email addresses, MINs, MDNs, unicast IP addresses, or the like that were desired to function as services addresses. In response, one or more multicast addresses could be associated with each messaging address or the like so submitted. The multicast addresses could be, for example, multicast IP addresses.  
     [0032] In certain embodiments, a service provider&#39;s request might not include a messaging address or the like. In such embodiments, a system administrator or the like might respond to the request by first choosing and/or establishing one or more messaging addresses or the like, and then associating with each messaging address or the like so chosen and/or established a multicast address. It is noted that instead of a messaging address or the like being established and associated with a multicast address, a multicast address could play the role of a messaging address or the like. In such embodiments, senders and/or receivers might not need to perform resolutions between multicast addresses and messaging addresses or the like.  
     [0033] It certain cases, a service&#39;s providers request not including a messaging address or the like might include some indication as to the name and/or types of desired services addresses. For example, a service provider “hypotheticalinfocenter.com” might specify that two services addresses are desired, that the services addresses should be messaging address-type services addresses, and that the desired names are “sports” and “news”. In response, the system administrator or the like receiving the request might establish the messaging addressees “sports@hpyotheticalinfocenter.com” and “news@hypotheticalinfocenter.com”, and associate them with multicast addresses. In the case where a system administrator is unable to secure the name and/or type requested by a service provider, the system administrator could inform the service provider of this fact and request that alternate types and/or names be submitted. It is noted that in certain embodiments a service provider request not including a messaging address or the like might also fail to include a suggested name and/or type. In such cases, the system administrator could respond by choosing a name and/or type, by requesting that the service provider suggest a name and/or type, or by offering to the service provider a number of available service addresses or the like and asking that one be chosen  
     [0034] After making necessary multicast address associations, a system administrator or the like could take steps to have one or more relay devices informed of the associations. The system administrator could achieve this, for example, by sending out a message to the one or more relay devices. In certain cases, the system administrator might submit the message to a process that periodically informed relay devices of associations between messaging addresses or the like and multicast addresses.  
     [0035] The system administrator of the like might additionally take steps to inform the requesting service provider of the established multicast associations or allocations. In the case where responding to the service provider&#39;s request required the choosing and/or establishment of a messaging address, the message could further specify the name and/or type of the messaging address so established.  
     [0036] When the requesting service provider wished to distribute a particular MMS message in accordance with the present invention, the service provider could direct the message to the appropriate services address. This could result in the message arriving at the relay device responsible for handling the messaging service associated with the address. For example, the service provider “hypotheticalinfocenter.com” might choose to distribute, via the messaging service associated with the services address “sports@hypotheticalinfocenter.com”, a film clip including voice commentary, of a home run hit in a regional baseball game.  
     [0037] As will be described in greater detail below, a number of methods may be available for the delivery of MMS messages. Accordingly, a service provider directing a MMS message to a services address might include with the message an indication of how the message should be distributed. In certain embodiments, instead of including such indications with messages, a service provider might specify that all messages relating to a particular messaging service should be distributed in a certain way. The service provider might indicate this, for example, to a system administrator who would in turn inform the appropriate relay devices.  
     [0038] Relay Device Operations  
     [0039] As noted above, a relay device receiving a MMS message addressed to a service address may take steps to determine the multicast address corresponding to the service address and the delivery method that should be employed. In accordance with the present invention, a number of methods may be available for the delivery of MMS messages. Three such delivery methods will now be described.  
     [0040] As illustrated in FIG. 2 a , according to a first delivery method, the relay device could first send, via multicast to the determined multicast address, a notification that a MMS message was available (step  201 ). In certain embodiments the notification could include an indication that the MMS message would follow automatically, the indication perhaps additionally specifying the time at which the message would follow. The notification could also include an indication of the content of the message. For example, the indication might specify the size of the message, the type of message (e.g., video), and/or a synopsis of the message. The indication might also include a URL (universal resource locator) or other specification of the location from which the message itself may be requested.  
     [0041] Along with or a period of time “t” after transmission of the notification, the relay device could transmit, via multicast to the determined multicast address, the MMS message itself (steps  203 ,  205 ). In embodiments where the message is sent out after the notification (e.g., executing step  203  with t&gt;0), the notification could include an indication of the time at which the message itself would be sent. As this delivery method does not require return responses from recipient terminals, it may be useful in environments where terminals lack return communications channels to relay devices and/or other entities, and in situations where return channels are available but there are cost, speed, and/or other advantages to avoiding their use. A return communications channel could employ, for example, GPRS or UMTS.  
     [0042] As illustrated in FIG. 2 b , according to a second delivery method, the relay device may send, via multicast to the determined multicast address, a notification that a MMS message was available (step  207 ). The notification could include an indication that the MMS message would not necessarily follow automatically. Like the above-described notification, the notification could include an indication of the content of the message and a specification of the location from which the message itself may be requested.  
     [0043] Further according to this second delivery method, the relay device could watch for instances of terminals requesting reception of the message (step  209 ). The relay device could do this, for example, by monitoring for HTTP (hypertext transfer protocol) or WSP (wireless session protocol) GET requests directed to the location specified in the notification. Upon noting a predetermined number of such requests (step  211 ), the relay device could transmit, via multicast to the determined multicast address, the MMS message itself (step  213 ). In some embodiments, the relay device might first transmit the message to a second device which would be responsible for multicasting the message.  
     [0044] In certain embodiments, the relay device might send out the message more than once. More specifically, if subsequent to a particular multicast transmission of the message the relay device received more than a predetermined threshold number of additional requests for the message, the relay device might retransmit the message.  
     [0045] As illustrated in FIG. 2 c , according to a third delivery method, the relay device could send, via multicast, a notification that a MMS message was available (step  215 ). The notification could include an indication that the MMS message would not follow automatically. Like the above-described notifications, the notification could include an indication and/or of the content of the message and a specification of the location from which the message itself could be requested.  
     [0046] In the case where the specified retrieval location was not under the control of the relay device, the relay device could transmit the message to the server or the like associated with the location and instruct the server or the like to fulfill requests for the message in a unicast manner. As a specific example, the server or the like could be instructed to, upon receipt of an HTTP or WSP GET request for a MMS message or the like, to respond by sending to the requester an HTTP or WSP “200 OK” message, the message including the requested message or the like.  
     [0047] In the case where the specified location from which the message itself could be requested was under the control of the relay device, the relay device might send out the message via unicast to each terminal that requested it (steps  217 - 221 ).  
     [0048] It is noted that, in certain embodiments, a MMS message may be addressed to more than one service address. In the case where a relay device receives a MMS message addressed to more than one services address it bears responsibility for, it could determine for each service address the corresponding multicast address and multicast delivery mode. Accordingly, multiple copies of a message to be multicast could be sent, each perhaps dispatched via a different transport mechanism.  
     [0049] The exemplary delivery methods described with reference to FIGS. 2 a - 2   c  each performed the dispatching of a notification that an MMS message was available. However, it is noted that, in certain embodiments, no delivery and/or receipt of notifications may be necessary. For instance, a terminal could receive an MMS message and store that message in its cache. In response to the reception, the terminal could generate a “local notification” corresponding to the message. The notification could be associated with a pointer or the like pointing to the cache. The terminal could make this notification available to, for instance, the user of the terminal and/or certain software running on the terminal. The MMS message could then be retrieved from and/or deleted from the cache as appropriate.  
     [0050] It is noted that a number of multicast transmission techniques could be employed in the procedures described above. For example, IP multicast or another network-layer multicast technique could be used. Thus MMS messages, notifications, and the like might be transmitted via IP multicast in a DVB system supporting encapsulation of IP packets within DVB packets.  
     [0051] It is further noted that, according to embodiments of the invention, a notification could be dispatched after dispatching the corresponding message. Additionally, it is noted that a notification and corresponding MMS message, as described in various embodiments and illustrative examples herein, could be delivered as two distinct messages (e.g., two separate messages corresponding two separate transmissions). Alternately, a notification and corresponding MMS message might be delivered as a single message containing two logical messages.  
     [0052] Terminal Operations  
     [0053] As shown in FIG. 3, a user wishing to receive MMS messages in accordance with the present invention may first select messaging services that she wishes her terminal to subscribe to and/or services addresses that she wishes her terminal to be associated with (step  301 ). The user may do this, for example, using her terminal. For instance, the user&#39;s terminal might display a menu from which she could select from available messaging services and/or services addresses. The terminal could be aware of available messaging services and/or services addresses, for example, by contacting a central server and/or by receiving periodically-transmitted messages from a central server indicating available messaging services and/or services addresses. The periodically-transmitted messages could be transmitted, for instance, via broadcast, multicast, or unicast. It is further noted that the periodically-transmitted messages could be, for example, push-type messages.  
     [0054] For each selected messaging service and/or services address, the terminal could record the selection in a log (step  303 ) and determine the corresponding multicast address (step  305 ). This could be accomplished in a number of ways. For example, indications of multicast addresses could be included in the above-noted periodically-transmitted messages, or could be included in responses resulting from the above-noted central server queries. Alternately, separate periodically-transmitted messages indicating multicast addresses could be received and/or separate server queries could be made.  
     [0055] Having identified the multicast addresses, the terminal could take steps to receive transmissions directed to these addresses (step  307 ). The terminal could do this, for example, by adopting these addresses and/or joining the corresponding multicast groups. In the case where IP multicast is employed in a DVB transmission environment, the terminal could perform necessary IP-DVB address translation and tuning operations. It is noted that no multicast join command or the like might be transmitted by a terminal over a network, for example, in cases where the terminal lacks and/or does not use a return communications channel.  
     [0056] As noted above, a relay device may dispatch to a multicast address a notification corresponding to a MMS message. As shown in FIG. 4 a terminal, upon receipt of a notification addressed to an adopted multicast address, may determine if the notification corresponded to a messaging service and/or services address that the terminal had associated itself with (steps  401 ,  403 ). The terminal might achieve this, for example, by searching the above-noted log for the messaging service and/or services address associated with the received notification. In certain embodiments, the terminal could know of the messaging service and/or services address associated with a received item by way of an indication included with the received notification. Such an indication may be included, for example, in one or more of the headers of the packets comprising the notification.  
     [0057] In the case where the notification was determined to not be associated with a messaging service and/or services address selected by the terminal&#39;s user, the terminal could take steps to filter out the notification (step  405 ). Such functionality may be useful for embodiments where a multicast address is shared by two or more messaging services and/or services addresses.  
     [0058] In the case where the notification was fully received at the terminal before the decision to filter out was made, the terminal might delete the notification from the store or stores into which it was initially received and/or placed. On the other hand, if only a portion of the notification was received (e.g., only certain packets thereof), the terminal could act to delete any portions stored and to not save further incoming portions.  
     [0059] In the case where it has determined not to filter out a received notification, the terminal could take steps to see if its user wished to receive the MMS message associated with the notification (step  407 ). The terminal could do this, for example, by presenting to its user a GUI (graphical user interface) dialog box posing the question and including buttons for “yes” and “no”.  
     [0060] In the case where the user answered “no”, the terminal could make a notation of this choice in a log (step  409 ). The terminal could additionally act to see if the message was in the terminal&#39;s cache. If it was, the terminal might act to delete the item from the cache (step  411 ). In the case where the user answered “yes”, the terminal could make a notation of this choice in a log (step  413 ) and formulate an HTTP or WSP GET directed to the location specified in the notification (step  415 ). In certain embodiments of the invention, the GET request might be first directed to the terminal&#39;s cache. If the item was found to be in the cache, the terminal could tell its user that the message was available, and might additionally ask the user if she wished to view it at that time. Alternately, the terminal might automatically display the message instead without querying the user.  
     [0061] It is noted that, in the case where a message was in the cache, the GET request might not be transmitted by the terminal over a network to which it was connected. It is further noted that the GET request might not be dispatched outside of the terminal in the case where the notification had specified that the message would follow automatically, and/or in the case where the terminal lacked a return communications channel. A terminal may lack a return communications channel, for example, if the terminal lacked the necessary hardware, if the necessary network infrastructure was unavailable, and/or if its user or another entity had determined that the return channel should not be used. Such a determination might be made, for example, based on monetary cost. Conditions under which a message corresponding to a notification might, at the time a user decided whether or not she wished to receive the message, already be in a terminal&#39;s cache will be described in greater detail below.  
     [0062] As illustrated in FIG. 5, upon receipt of a MMS message addressed to an adopted multicast address (step  501 ), a terminal may act, in a manner analogous to that described above with reference to a received notification, to filter out the received message if it was found to not correspond to a messaging service and/or services address that the terminal has associated itself with (steps  503 ,  505 ). In a manner also analogous to that described above with reference to a received notification, the terminal could know of the messaging service and/or services address associated with a received MMS message by way of an indication included with the received item. Like above, such functionality may be useful for embodiments where a multicast address is shared by two or more messaging services and/or services addresses.  
     [0063] In the case where the message is determined to be associated with a messaging service and/or services address selected by the terminal&#39;s user, the terminal could take steps to determine if its user had identified the message as one that she did not wish to receive (steps  503 ,  507 ). This terminal could achieve this, for example, by consulting the above-noted log.  
     [0064] In the case where the item was found to not be identified by the user as unwanted, the item could be copied to the terminal&#39;s cache from the store or stores into which it was initially received and/or placed (step  509 ). If the item was found, in addition to not being specified as unwanted, to be identified by the user as desired, the user might additionally be notified of item&#39;s arrival. Under such circumstances, the terminal might perform the further operation of presenting the message, perhaps querying the user before presentation.  
     [0065] In the case where the item was found to be identified by the user as unwanted, the terminal could take steps to filter out the item (step  511 ). In the case where the message had been fully received at the terminal at the time that the terminal recognized it as one unwanted by the user, the terminal might delete the message from the store or stores into which it was initially received and/or placed. On the other hand, if only a portion of the notification was received (e.g., only certain packets thereof), the terminal could act to delete any portions stored and to not save further incoming portions.  
     [0066] It is noted that the operations discussed with reference to FIG. 4 need not be performed prior to the operations discussed with reference to FIG. 5. Indeed, the operations discussed with reference to FIG. 4 could be performed before, at the same time, or after the operations discussed with reference to FIG. 5.  
     [0067] As alluded to above, the message corresponding to a notification may arrive at a terminal at the same time as, prior to, or after, the arrival of the notification. For at least this reason, a terminal may perform the operations discussed with reference to FIG. 4 at the same time as the operations discussed with reference to FIG. 5.  
     [0068] As an example of a scenario wherein the operations discussed with reference to FIG. 4 might not be performed before those discussed with reference to FIG. 5, it is noted that, as indicated above, a notification may be generated locally by a terminal in response to a received message.  
     [0069] As indicated above, an MMS message may be placed in a terminal&#39;s cache in the case where its user has neither identified the message as unwanted or as desired. Such a situation may occur, for example, if a MMS message arrived at a point in time where the terminal&#39;s user had not answered the terminal&#39;s query as to whether the message was unwanted or desired. As further indicated above, if the user subsequently indicated that the message was unwanted, the terminal might act to delete the message from the cache. It is noted that in certain embodiments a terminal might further delete such an MMS message from its cache if a predetermined amount of time passed wherein the user had neither identified the message as unwanted or as desired.  
     [0070] Hardware and Software  
     [0071] Certain devices employed in accordance with the present invention may be implemented using computers. For example, the above-noted service provider devices, MMSC, relay devices, and terminals may be implemented using network-capable computers. Furthermore, certain procedures and the like described herein may be executed by or with the help of computers. The phrases “computer”, “general purpose computer”, and the like, as used herein, refer but are not limited to a processor card smart card, a media device, a personal computer, an engineering workstation, a PC, a Macintosh, a PDA, a wired or wireless terminal, a server, a network access point, or the like, perhaps running an operating system such as OS X, Linux, Darwin, Windows CE, Windows XP, Palm OS, Symbian OS, or the like, perhaps with support for Java or .Net.  
     [0072] The phrases “general purpose computer”, “computer”, and the like also refer, but are not limited to, one or more processors operatively connected to one or more memory or storage units, wherein the memory or storage may contain data, algorithms, and/or program code, and the processor or processors may execute the program code and/or manipulate the program code, data, and/or algorithms. Accordingly, exemplary computer  6000  as shown in FIG. 6 includes system bus  6050  which operatively connects two processors  6051  and  6052 , random access memory (RAM)  6053 , read-only memory (ROM)  6055 , input output (I/O) interfaces  6057  and  6058 , storage interface  6059 , and display interface  6061 . Storage interface  6059  in turn connects to mass storage  6063 . Each of I/O interfaces  6057  and  6058  may be an Ethernet, IEEE 1394, IEEE 802.11b, Bluetooth, DVB-T, DVB-S, DAB, GPRS, UMTS, or other interface known in the art. Mass storage  6063  may be a hard drive, optical drive, or the like. Processors  6057  and  6058  may each be a commonly known processor such as an IBM or Motorola PowerPC, an AMD Athlon, an AMD Hammer, an Intel StrongARM, or an Intel Pentium. Computer  6000  as shown in this example also includes an LCD display unit  6001 , a keyboard  6002  and a mouse  6003 . In alternate embodiments, keyboard  6002  and/or mouse  6003  might be replaced with a touch screen, pen, or keypad interface. Computer  6000  may additionally include or be attached to card readers, DVD drives, or floppy disk drives whereby media containing program code may be inserted for the purpose of loading the code onto the computer.  
     [0073] In accordance with the present invention, a computer may run one or more software modules designed to perform one or more of the above-described operations, the modules being programmed using a language such as Java, Objective C, C, C#, or C++ according to methods known in the art.  
     [0074] Shown in FIG. 7 is a functional block diagram of an exemplary terminal employable in various embodiments of the present invention. The terminal of FIG. 7 has been discussed in the foregoing. In the following, corresponding reference signs have been applied to corresponding parts. Terminal  7000  of FIG. 7 may be used in any/all of the embodiments described herein. The terminal  7000  comprises a processing unit CPU  703 , a multi-carrier signal terminal part  705  and a user interface ( 701 ,  702 ). The multi-carrier signal terminal part  705  and the user interface ( 701 ,  702 ) are coupled with the processing unit CPU  703 . The user interface ( 701 ,  702 ) comprises a display and a keyboard to enable a user to use the terminal  7000 . In addition, the user interface ( 701 ,  702 ) comprises a microphone and a speaker for receiving and producing audio signals. The user interface ( 701 ,  702 ) may also comprise voice recognition (not shown).  
     [0075] The processing unit CPU  703  comprises a microprocessor (not shown), memory  704  and possibly software. The software can be stored in the memory  704 . The microprocessor controls, on the basis of the software, the operation of the terminal  7000 , such as the receiving of the data stream, the tolerance of the impulse burst noise in the data reception, displaying output in the user interface and the reading of inputs received from the user interface. The operations are described above. The hardware contains circuitry for detecting the signal, circuitry for demodulation, circuitry for detecting the impulse, circuitry for blanking those samples of the symbol where significant amount of impulse noise is present, circuitry for calculating estimates, and circuitry for performing the corrections of the corrupted data.  
     [0076] Still referring to FIG. 7, alternatively, middleware or software implementation can be applied. The terminal  7000  can be a hand-held device which the user can comfortably carry. Advantageously, the terminal  7000  can be a cellular mobile phone which comprises the multi-carrier signal terminal part  705  for receiving the broadcast transmission stream. Therefore, the terminal  7000  may possibly interact with the service providers.  
     [0077] Ramifications and Scope  
     [0078] Although the description above contains many specifics, these are merely provided to illustrate the invention and should not be construed as limitations of the invention&#39;s scope. Thus it will be apparent to those skilled in the art that various modifications and variations can be made in the system and processes of the present invention without departing from the spirit or scope of the invention.