Abstract:
Embodiments are directed to broadcast roaming, i.e., providing service/content to a terminal from a visited service provider. An embodiment is directed to sending a roaming rule request to a service provider, receiving a roaming rule response from the service provider, acquiring service guide fragments from the service provider and processing the service guide fragments in accordance with the received roaming rule response, sending to a selected service provider a service provisioning request for a purchase item, receiving from the selected service provider a service provisioning response regarding the purchase item, and accessing service and/or content related to the purchase item, wherein the service and/or content is provided by the visited service provider. Embodiments are directed to exchanging between a visiting service provider and a home service provider of the terminal a roaming authorization request regarding a purchase item and a roaming authorization response regarding the purchase item.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application claims the benefit of U.S. Provisional Application No. 60/855,735, which was filed Nov. 1, 2006, and which is incorporated herein by reference. 
    
    
     FIELD 
     Embodiments relate to mobile broadcasting and specifically roaming associated with mobile broadcast services and user mobility. 
     BACKGROUND 
     Broadcast roaming refers to the ability of a user to receive broadcast services from a Mobile Broadcast Service Provider different from the Home Mobile Broadcast Service Provider with which the user has a contractual relationship. 
     The current state of the art—OMA BCAST TS Services and OMA BCAST TS Service Guide—defines a method to signal existence of service providers, such as BCAST Subscription Managers (BSMs), which may be responsible for service provisioning such as subscription and payment related functions, the provision of information used for BCAST Service reception, and BCAST device management. The signaling may involve methods of signaling through Service Guide Announcement Sessions and Service Guide Delivery Descriptors (SGDDs) within. 
     However, the current state of the art specification does not disclose solutions to the following problems:
         1) How does a terminal know when it is roaming?   2) Which BSM can a terminal roam to (i.e. which BSM can a terminal select so that the BSM will serve the terminal)?   3) If multiple BSMs are available to serve the terminal, which BSM is the best to use?       

     For example, see OMA BCAST 1.0 TS Services [Mobile Broadcast Services; Draft Version 1.0 (19 Apr. 2006); OMA-TS-BCAST_Services-V1 — 0-20060419-D] and OMA BCAST 1.0 TS Service Guide [Service Guide for Mobile Broadcast Services; Draft Version 1.0 (24 Mar. 2006); OMA-TS-BCAST_ServiceGuide-V1 — 0 — 0-20060324-D]. The following table contains a partial list and description of elements defined by Amendments to the OMA BCAST 1.0 Service Guide, and specifically, the Service Guide Delivery Descriptor. 
     
       
         
               
               
               
               
               
               
             
           
               
                   
               
               
                 Name 
                 Type 
                 Category 
                 Cardinality 
                 Description 
                 Data Type 
               
               
                   
               
             
             
               
                 . . . 
                   
                   
                   
                   
                   
               
               
                 BSMSelector 
                 E3 
                 NO/ 
                 0 . . . N 
                 This is a BSM code that 
               
               
                   
                   
                 TM 
                   
                 allows a terminal to 
               
               
                   
                   
                   
                   
                 determine whether the 
               
               
                   
                   
                   
                   
                 SGDU&#39;s in this SGDD 
               
               
                   
                   
                   
                   
                 DescriptorEntry - among 
               
               
                   
                   
                   
                   
                 the SGDU&#39;s that are 
               
               
                   
                   
                   
                   
                 announced in various 
               
               
                   
                   
                   
                   
                 Descriptor Entries in 
               
               
                   
                   
                   
                   
                 various SGDD&#39;s - is 
               
               
                   
                   
                   
                   
                 associated with the 
               
               
                   
                   
                   
                   
                 terminal&#39;s affiliated BSM. 
               
               
                   
                   
                   
                   
                 In case the terminal is 
               
               
                   
                   
                   
                   
                 equipped with one or more 
               
               
                   
                   
                   
                   
                 BSMFilterCodes, the 
               
               
                   
                   
                   
                   
                 BSMSelector acts as an 
               
               
                   
                   
                   
                   
                 access filter for the 
               
               
                   
                   
                   
                   
                 SGDU&#39;s of the 
               
               
                   
                   
                   
                   
                 DescriptorEntry and the 
               
               
                   
                   
                   
                   
                 following applies: 
               
               
                   
                   
                   
                   
                 Usage in home 
               
               
                   
                   
                   
                   
                 network: 
               
               
                   
                   
                   
                   
                 The terminal 
               
               
                   
                   
                   
                   
                 SHALL only use 
               
               
                   
                   
                   
                   
                 those SGDU&#39;s in 
               
               
                   
                   
                   
                   
                 the DescriptorEntry 
               
               
                   
                   
                   
                   
                 that have a 
               
               
                   
                   
                   
                   
                 matching 
               
               
                   
                   
                   
                   
                 BSMFilterCode. 
               
               
                   
                   
                   
                   
                 If the terminal has 
               
               
                   
                   
                   
                   
                 multiple matching 
               
               
                   
                   
                   
                   
                 BSMFilterCodes, 
               
               
                   
                   
                   
                   
                 the terminal MAY 
               
               
                   
                   
                   
                   
                 select one of the 
               
               
                   
                   
                   
                   
                 BSMSelectors with 
               
               
                   
                   
                   
                   
                 a matching 
               
               
                   
                   
                   
                   
                 BSMFilterCode and 
               
               
                   
                   
                   
                   
                 SHALL then only 
               
               
                   
                   
                   
                   
                 use the SGDU&#39;s of 
               
               
                   
                   
                   
                   
                 DescriptorEntries 
               
               
                   
                   
                   
                   
                 with the selected 
               
               
                   
                   
                   
                   
                 BSMSelector, until 
               
               
                   
                   
                   
                   
                 it selects another 
               
               
                   
                   
                   
                   
                 BSMSelector. 
               
               
                   
                   
                   
                   
                 If the BSMSelector 
               
               
                   
                   
                   
                   
                 is not present the 
               
               
                   
                   
                   
                   
                 terminal SHALL 
               
               
                   
                   
                   
                   
                 NOT use any of the 
               
               
                   
                   
                   
                   
                 SGDU&#39;s in the 
               
               
                   
                   
                   
                   
                 DescriptorEntry. 
               
               
                   
                   
                   
                   
                 Usage in roaming 
               
               
                   
                   
                   
                   
                 network: 
               
               
                   
                   
                   
                   
                 If the terminal has a 
               
               
                   
                   
                   
                   
                 matching 
               
               
                   
                   
                   
                   
                 BSMFilterCode in 
               
               
                   
                   
                   
                   
                 any of the SGDD&#39;s 
               
               
                   
                   
                   
                   
                 in this network, then 
               
               
                   
                   
                   
                   
                 the terminal SHALL 
               
               
                   
                   
                   
                   
                 only use those 
               
               
                   
                   
                   
                   
                 SGDU&#39;s in the 
               
               
                   
                   
                   
                   
                 DescriptorEntry. 
               
               
                   
                   
                   
                   
                 If the terminal has 
               
               
                   
                   
                   
                   
                 multiple matching 
               
               
                   
                   
                   
                   
                 BSMFilterCodes, 
               
               
                   
                   
                   
                   
                 the terminal MAY 
               
               
                   
                   
                   
                   
                 select one of the 
               
               
                   
                   
                   
                   
                 BSMSelectors with 
               
               
                   
                   
                   
                   
                 a matching 
               
               
                   
                   
                   
                   
                 BSMFilterCode and 
               
               
                   
                   
                   
                   
                 SHALL then only 
               
               
                   
                   
                   
                   
                 use the SGDU&#39;s of 
               
               
                   
                   
                   
                   
                 DescriptorEntries 
               
               
                   
                   
                   
                   
                 with the selected 
               
               
                   
                   
                   
                   
                 BSMSelector, until 
               
               
                   
                   
                   
                   
                 it selects another 
               
               
                   
                   
                   
                   
                 BSMSelector. 
               
               
                   
                   
                   
                   
                 If the terminal or 
               
               
                   
                   
                   
                   
                 smartcard does not 
               
               
                   
                   
                   
                   
                 have a matching 
               
               
                   
                   
                   
                   
                 BSMFilterCode in 
               
               
                   
                   
                   
                   
                 any of the SGDD&#39;s 
               
               
                   
                   
                   
                   
                 in this network, the 
               
               
                   
                   
                   
                   
                 terminal MAY 
               
               
                   
                   
                   
                   
                 select any 
               
               
                   
                   
                   
                   
                 BSMSelector and 
               
               
                   
                   
                   
                   
                 SHALL only use 
               
               
                   
                   
                   
                   
                 the SGDU&#39;s of 
               
               
                   
                   
                   
                   
                 DescriptorEntries 
               
               
                   
                   
                   
                   
                 with the selected 
               
               
                   
                   
                   
                   
                 BSMSelector, until 
               
               
                   
                   
                   
                   
                 it selects another 
               
               
                   
                   
                   
                   
                 BSMSelector. 
               
               
                   
                   
                   
                   
                 If the BSMSelector 
               
               
                   
                   
                   
                   
                 is not present, the 
               
               
                   
                   
                   
                   
                 terminal can use all 
               
               
                   
                   
                   
                   
                 SGDU&#39;s in the 
               
               
                   
                   
                   
                   
                 DescriptorEntry. 
               
               
                   
                   
                   
                   
                 In case the terminal is not 
               
               
                   
                   
                   
                   
                 equipped with a 
               
               
                   
                   
                   
                   
                 BSMFilterCode, the 
               
               
                   
                   
                   
                   
                 following applies: 
               
               
                   
                   
                   
                   
                 Usage in home 
               
               
                   
                   
                   
                   
                 network: 
               
               
                   
                   
                   
                   
                 The terminal MAY 
               
               
                   
                   
                   
                   
                 select any 
               
               
                   
                   
                   
                   
                 BSMSelector that 
               
               
                   
                   
                   
                   
                 does not contain a 
               
               
                   
                   
                   
                   
                 BSMFilterCode, 
               
               
                   
                   
                   
                   
                 and SHALL then 
               
               
                   
                   
                   
                   
                 only use the 
               
               
                   
                   
                   
                   
                 SGDU&#39;s of 
               
               
                   
                   
                   
                   
                 DescriptorEntries 
               
               
                   
                   
                   
                   
                 with the selected 
               
               
                   
                   
                   
                   
                 BSMSelector, until 
               
               
                   
                   
                   
                   
                 it selects another 
               
               
                   
                   
                   
                   
                 BSMSelector. 
               
               
                   
                   
                   
                   
                 Furthermore, the 
               
               
                   
                   
                   
                   
                 terminal SHALL 
               
               
                   
                   
                   
                   
                 NOT use the 
               
               
                   
                   
                   
                   
                 SGDU&#39;s of 
               
               
                   
                   
                   
                   
                 DescriptorEntries 
               
               
                   
                   
                   
                   
                 that have a 
               
               
                   
                   
                   
                   
                 BSMSelector with a 
               
               
                   
                   
                   
                   
                 BSMFilterCode. 
               
               
                   
                   
                   
                   
                 If the BSMSelector 
               
               
                   
                   
                   
                   
                 is not present in any 
               
               
                   
                   
                   
                   
                 of the SGDD&#39;s the 
               
               
                   
                   
                   
                   
                 terminal can use all 
               
               
                   
                   
                   
                   
                 SGDU&#39;s in the 
               
               
                   
                   
                   
                   
                 DescriptorEntry. 
               
               
                   
                   
                   
                   
                 Usage in roaming 
               
               
                   
                   
                   
                   
                 network: 
               
               
                   
                   
                   
                   
                 The terminal MAY 
               
               
                   
                   
                   
                   
                 select any 
               
               
                   
                   
                   
                   
                 BSMSelector and 
               
               
                   
                   
                   
                   
                 SHALL then only 
               
               
                   
                   
                   
                   
                 use the SGDU&#39;s of 
               
               
                   
                   
                   
                   
                 DescriptorEntries 
               
               
                   
                   
                   
                   
                 with the selected 
               
               
                   
                   
                   
                   
                 BSMSelector, until 
               
               
                   
                   
                   
                   
                 it selects another 
               
               
                   
                   
                   
                   
                 BSMSelector. 
               
               
                   
                   
                   
                   
                 If the BSMSelector 
               
               
                   
                   
                   
                   
                 is not present in any 
               
               
                   
                   
                   
                   
                 of the SGDD&#39;s the 
               
               
                   
                   
                   
                   
                 terminal can use all 
               
               
                   
                   
                   
                   
                 SGDU&#39;s in the 
               
               
                   
                   
                   
                   
                 DescriptorEntry. 
               
               
                   
                   
                   
                   
                 BSMSelector contains the 
               
               
                   
                   
                   
                   
                 following attribute: 
               
               
                   
                   
                   
                   
                 id 
               
               
                   
                   
                   
                   
                 BSMSelector contains the 
               
               
                   
                   
                   
                   
                 following elements: 
               
               
                   
                   
                   
                   
                 BSMFilterCode 
               
               
                   
                   
                   
                   
                 name 
               
               
                 id 
                 A 
                 NM/TM 
                 1 
                 Identifier of the 
                 AnyURI 
               
               
                   
                   
                   
                   
                 BSMSelector, unique 
               
               
                   
                   
                   
                   
                 within the network 
               
               
                 BSMFilterCode 
                 E4 
                 NO/TM 
                 0 . . . 1 
                 The code that specifies this 
                 String 
               
               
                   
                   
                   
                   
                 BSMSelector. 
               
               
                   
                   
                   
                   
                 Contains the following 
               
               
                   
                   
                   
                   
                 attribute: 
               
               
                   
                   
                   
                   
                 type 
               
               
                 type 
                 A 
                 NM/ 
                 1 
                 The type of 
                 unsignedByte 
               
               
                   
                   
                 TM 
                   
                 BSMFilterCode. 
               
               
                   
                   
                   
                   
                 1 - BSMCode (Smart Card 
               
               
                   
                   
                   
                   
                 Code) 
               
               
                   
                   
                   
                   
                 This is used if the 
               
               
                   
                   
                   
                   
                 determination is made 
               
               
                   
                   
                   
                   
                 based on the country and 
               
               
                   
                   
                   
                   
                 operator code in the 
               
               
                   
                   
                   
                   
                 (U)SIM/(R-)UIM/CSIM 
               
               
                   
                   
                   
                   
                 2 - BSMCode (Non Smart 
               
               
                   
                   
                   
                   
                 Card Code): 
               
               
                   
                   
                   
                   
                 This is used if the 
               
               
                   
                   
                   
                   
                 determination is made 
               
               
                   
                   
                   
                   
                 based on the country and 
               
               
                   
                   
                   
                   
                 operator code in the 
               
               
                   
                   
                   
                   
                 terminal 
               
               
                   
                   
                   
                   
                 Other values are reserved. 
               
               
                 name 
                 E4 
                 NM/TM 
                 1 . . . N 
                 Provides a user readable 
                 String 
               
               
                   
                   
                   
                   
                 name for the BSMSelector, 
               
               
                   
                   
                   
                   
                 possibly in multiple 
               
               
                   
                   
                   
                   
                 languages. 
               
               
                   
                   
                   
                   
                 The language is expressed 
               
               
                   
                   
                   
                   
                 using built-in XML 
               
               
                   
                   
                   
                   
                 attribute xml:lang with this 
               
               
                   
                   
                   
                   
                 element . . . 
               
               
                   
                   
                   
                   
                 This attribute can be used 
               
               
                   
                   
                   
                   
                 to provide information to 
               
               
                   
                   
                   
                   
                 the user so he can select the 
               
               
                   
                   
                   
                   
                 BSMSelector the terminal 
               
               
                   
                   
                   
                   
                 has to use. 
               
               
                   
               
             
          
         
       
     
     BRIEF SUMMARY 
     The following presents a simplified summary in order to provide a basic understanding of some aspects of the invention. The summary is not an extensive overview of the invention. It is neither intended to identify key or critical elements of the invention nor to delineate the scope of the invention. The following summary merely presents some concepts of the invention in a simplified form as a prelude to the more detailed description below. 
     Embodiments are directed to broadcast roaming, i.e., providing service/content to a terminal from a visited service provider. An embodiment is directed to sending a roaming rule request to a service provider, receiving a roaming rule response from the service provider, acquiring service guide fragments from the service provider and processing the service guide fragments in accordance with the received roaming rule response, sending to a selected service provider a service provisioning request for a purchase item, receiving from the selected service provider a service provisioning response regarding the purchase item, and accessing service and/or content related to the purchase item, wherein the service and/or content is provided by the visited service provider. Embodiments are directed to exchanging between a visiting service provider and a home service provider of the terminal a roaming authorization request regarding a purchase item and a roaming authorization response regarding the purchase item. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Other objects and features will become apparent from the following detailed description considered in conjunction with the accompanying drawings. It is to be understood, however, that the drawings are designed solely for purposes of illustration and not as a definition of the limits of the invention, for which reference should be made to the appended claims only. It should be further understood that the drawings are merely intended to conceptually illustrate the structures and procedures described herein. 
         FIG. 1  is a block diagram illustrating a computing device, in accordance with aspects of the present invention; 
         FIG. 2  is a component diagram illustrating a terminal provisioning system, in accordance with aspects of the present invention; 
         FIG. 3  is a block diagram showing an illustrative protocol stack used for message exchange, in accordance with aspects of the present invention; 
         FIG. 4  is a diagram illustrating a broadcast roaming technique, in accordance with certain aspects of the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     In the following description of the various embodiments, reference is made to the accompanying drawings, which form a part hereof, and in which is shown by way of illustration various embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural and functional modifications may be made without departing from the scope and spirit of the present invention. 
     An aspect of the invention relates to signaling the query address for each broadcast subscription management (BSM) declared in the BSM. This can be done by adding an element “RoamingQueryAddress” to the SGDD under the element “BSMSelector”. Another aspect of the invention relates to determining whether a terminal is roaming. Yet another aspect of the invention specifies the content of a roaming query message and respective answer message. Still another aspect of the invention discloses a method to determine which of the declared BSM(s) is/are best suited to serve a terminal while it is roaming. 
     Various abbreviations used herein are provided below. 
     BDS—Broadcast Distribution System 
     A system containing the ability to transmit the same IP flow to multiple Terminal devices simultaneously. A Broadcast Distribution System typically uses techniques that achieve efficient use of radio resources. 
     BDS SD—Broadcast Distribution System Service Distribution 
     Responsible for the coordination and delivery of broadcast services to the BDS for delivery to the terminal, including file and streaming distribution, and Service Guide distribution. 
     BSDA and BSD/A—BCAST Service Distribution and AdaptationResponsible for the aggregation and delivery of BCAST Services, and performs the adaptation of the BCAST Enabler to underlying Broadcast Distribution Systems. 
     BSA—BCAST Service Application 
     Represents the service application of the BCAST Service, such as streaming audio/video or movie download. 
     IN—Interaction Network 
     A system containing the ability to transmit, for example IP flow, SMS, MMS, through Interaction Channel to a Terminal device and transmitting user&#39;s responses through Interaction Channel to a BCAST Service Application. A system containing the ability to transmit IP flow through Interaction Channel to a Terminal device. 
     BSM—BCAST Subscription Management 
     Responsible for service provisioning such as subscription and payment related functions, the provision of information used for BCAST Service reception, and BCAST device management. 
     SGDD Service Guide Delivery Descriptor 
     SGDU Service Guide Delivery Unit 
       FIG. 1  illustrates a block diagram of a generic terminal device  101  that may be used according to an illustrative embodiment of the invention. Device  101  may have a processor  103  for controlling overall operation of the terminal device and its associated components, including RAM  105 , ROM  107 , input/output module  109 , and memory  115 . 
     I/O  109  may include a microphone, keypad, touch screen, and/or stylus through which a user of device  101  may provide input, and may also include one or more of a speaker for providing audio output and a video display device for providing textual, audiovisual and/or graphical output. 
     Memory  115  may store software used by device  101 , such as an operating system  117 , application programs  119 , and associated data  121 . For example, one application program  121  used by device  101  according to an illustrative embodiment of the invention may include computer executable instructions for invoking user functionality related to communication, such as email, short message service (SMS), and voice input and speech recognition applications. 
     Device  101  may also be a mobile terminal including various other components, such as a battery, speaker, and antennas (not shown). I/O  109  may include a user interface including such physical components as a voice interface, one or more arrow keys, joy-stick, data glove, mouse, roller ball, touch screen, or the like. In this example, the memory  115  of mobile device  101  may be implemented with any combination of read only memory modules or random access memory modules, optionally including both volatile and nonvolatile memory and optionally being detachable. Software may be stored within memory  115  and/or storage to provide instructions to processor  103  for enabling mobile terminal  101  to perform various functions. Alternatively, some or all of mobile terminal  101  computer executable instructions may be embodied in hardware or firmware (not shown). 
     Additionally, a mobile terminal  101  may be configured to send and receive transmissions through various device components, such as an FM/AM radio receiver, wireless local area network (WLAN) transceiver, and telecommunications transceiver (not shown). In one aspect of the invention, mobile terminal  101  may receive radio data stream (RDS) messages. Mobile terminal  101  may be equipped with other receivers/transceivers, e.g., one or more of a Digital Audio Broadcasting (DAB) receiver, a Digital Video Broadcasting (DVB) receiver, a Digital Radio Mondiale (DRM) receiver, a Forward Link Only (FLO) receiver, a Digital Multimedia Broadcasting (DMB) receiver, etc. Hardware may be combined to provide a single receiver that receives and interprets multiple formats and transmission standards, as desired. That is, each receiver in a mobile terminal  101  may share parts or subassemblies with one or more other receivers in the mobile terminal device, or each receiver may be an independent subassembly. 
     The invention is described through three separate solutions. Any combination of these solutions is also possible. One common starting assumption is a situation where a terminal acquires Service Guide Delivery Descriptors (SGDDs). The SGDDs are enhanced according to an aspect of this invention so that the subelement BSMSelector of the SGDD contains subelement RoamingQueryAddress. A fully modified BSMSelector according to this invention is presented in the end of this section. 
     Solution 1—Request/Reply Solution Addressing the Case of Terminal Not Having “home” BSM. 
     Addressing problem (1): Since the terminal does not have any “home” BSM, i.e. no BSMFilterCodes, there is no way of telling when the terminal is roaming merely by receiving the SGDDs. In that case, it can be assumed that the terminal is always roaming. However, the following statement in the prior art is flawed: “If the terminal or smartcard does not have a matching BSMFilterCode in any of the SGDD&#39;s in this network, the terminal MAY select any BSMSelector and might only use the SGDU&#39;s of DescriptorEntries with the selected BSMSelector, until it selects another BSMSelector.” 
     In a realistic operational setting this rarely is true, since it ignores the roaming agreements between operators (i.e. BSMs). Thus, problems (2) and (3) remain. 
     Addressing problem (2) and (3):
         1. A terminal acquires SGDDs (either receiving over broadcast Service Guide Announcement Channel or by retrieving those otherwise).   2. From the acquired SGDDs the terminal compiles a set of pairs of {BSMFilterCode, RoamingQueryAddress}.   3. For each BSMFilterCode, the terminal sends RoamingQueryRequest to the RoamingQueryAddress associated with the BSMFilterCode. One way to do this is to send all the requests simultaneously (i.e. without waiting for responses). Another way is to send the responses in priority order, one by one, first request then response, then next request, etc. Such priority order may be according to prior experience (e.g., the terminal sends requests to such BSMFilterCodes first that have been responding positively before.). Further, irrespective which way to send requests, the terminal sets a time-out timer for the requests.   4. After receiving RoamingQueryAnswers from BSMs, or, upon timeout of request message timer set in step 3, the terminal starts to analyze the received answers.   5. The terminal analyzes the received RoamingQueryAnswers especially comparing the Rule elements in the answers (A) among the answers; or (B) against the set of services, content, programs the terminal is currently receiving; or (C) against the list of service, content or programs that are in the “favorites” list of the terminal; or (D) against a specific time period terminal wishes to access services; or (E) against some other criteria such as selecting BSMs that offer the most fragments, cheapest service or where the fragment/cost ratio is best. Any combination of (A) to (E) is also naturally possible. For items (B) and (C), the comparison can be based on FragmentIDs or GlobalServiceID since these identifiers are the common element in the Rules and in the Service Guides, i.e. a Rule that is defined in terms of FragmentID can be mapped to Service Guide.   6. Based on analysis, a terminal determines which BSM(s) it will use while roaming.   7. After selection, based on Rules, the terminal may refresh the Service Guide view as displayed to the user. The terminal may filter out/gray elements that are not available and may show the selected BSM id in the screen or in the menu. Alternately the terminal can list the available successfully resolved BSMs under a pull down menu where the key is either BSMid or any of the criteria (A)-(E) listed in step 5.       

     The following provides more detailed information related to some of the concepts introduced above. 
     RoamingQueryRequest is a message logically containing the following information: 
     Optional terminal ID 
     Optional home “BSM” identification (one, some or all of terminals BSMFilterCodes and their types such aif they are smart card codes or not) 
     Optional list of Service Guide fragment ids or GlobalServiceIds, or GlobalContentIds that terminal wants to access on while roaming. 
     RoamingQueryResponse is a message logically containing the following information: 
     Answering BSMid as BSMFilterCode 
     Optional response code for faster terminal processing:
         ALL ALLOWED—meaning: no restrictions while roaming   NOT ALLOWED—meaning: roaming not possible   ALLOWED WITH RULES—meaning: see the rules of the payload       

     Optional Rules is a combination of one or several of the following:
         ALLOW FRAGMENT ID&lt;list of fragment ids&gt;   ALLOW GLOBAL SERVICE ID&lt;list of global service ids&gt;   ALLOW GLOBAL CONTENT ID&lt;list of global content ids&gt;   DENY FRAGMENT ID&lt;list of fragment ids&gt;   DENY GLOBAL SERVICE ID&lt;list of global service ids&gt;   DENY GLOBAL CONTENT ID&lt;list of global content ids&gt;   ALLOW TIME PERIOD&lt;start time UTC&gt;&lt;end time UTC&gt;   DENY TIME PERIOD&lt;start time UTC&gt;&lt;end time UTC&gt;   COST INFORMATION for any of the above rules       

     RoamingQueryRequest and RoamingQueryResponse can be instatiated as binary structure, XML or any other known message type. The protocol to convey RoamingQueryRequest and RoamingQueryResponse can be any data network protocol—for example UDP, TCP, HTPP, SOAP. 
     Solution 2—Request/Reply solution addressing the case of the terminal having a “home” BSM. This solution is almost identical to the Solution 1. The only difference in the start conditions is that the terminal has a “home” BSM(s), i.e. it has one or more BSMFilterCodes. 
     Addressing problem (1): Since the terminal has one or more “home” BSMs, i.e. no BSMFilterCodes, there is a way of telling when the terminal is roaming just by receiving the SGDDs. The terminal simply compares its BSMFilterCodes to the ones present in the SGDDs. If any of the terminal&#39;s BSMFilterCodes are present in SGDD, the terminal is not roaming. Otherwise the terminal is roaming. For the roaming case, problems (2) and (3) may still remain. Those problems can be solved in an identical manner to Solution 1. 
     Solution 3—Device Management/Terminal Provisioning Based Solution. In this solution the terminal is provisioned—using a terminal provisioning function such as OMA Device Management—with roaming related information such as terminal&#39;s own BSMFilterCodes and other BSMFilterCodes together with associated Rules and possibly RoamingQueryAddresses to each BSMFilterCode. One or more, or even all entries of type {BSMFilterCode, Rule, RoamingQueryAddress} can be instantiated within a single Management Object. 
     Referring now to  FIG. 2 , a diagram is shown illustrating such a solution, in which roaming information is instantiated as OMA DM Management Objects and the Management Objects are delivered and provisioned to a terminal with OMA DM methods. This means that on the terminal, the Management Objects carrying the roaming information are “installed” into the management tree of the terminal. A roaming function, service guide function or any other function within the terminal can then access the roaming information using the methods defined for accessing the management object tree.  FIG. 2  illustrates an end-to-end view of such a technique. 
     Below is a modified Service Guide Delivery Descriptor illustrated partially according to certain aspects of this invention. 
     
       
         
               
               
               
               
               
               
             
           
               
                   
               
               
                 Name 
                 Type 
                 Category 
                 Cardinality 
                 Description 
                 Data Type 
               
               
                   
               
             
             
               
                 . . . 
                   
                   
                   
                   
                   
               
               
                 BSMSelector 
                 E3 
                 NO/ 
                 0 . . . N 
                 This is a BSM code that 
               
               
                   
                   
                 TM 
                   
                 allows a terminal to determine 
               
               
                   
                   
                   
                   
                 whether the SGDU&#39;s in this 
               
               
                   
                   
                   
                   
                 SGDD DescriptorEntry - 
               
               
                   
                   
                   
                   
                 among the SGDU&#39;s that are 
               
               
                   
                   
                   
                   
                 announced in various 
               
               
                   
                   
                   
                   
                 DescriptorEntries in various 
               
               
                   
                   
                   
                   
                 SGDD&#39;s - is associated with 
               
               
                   
                   
                   
                   
                 the terminal&#39;s affiliated BSM, 
               
               
                   
                   
                   
                   
                 In case the terminal is 
               
               
                   
                   
                   
                   
                 equipped with one or more 
               
               
                   
                   
                   
                   
                 BSMFilterCodes, the 
               
               
                   
                   
                   
                   
                 BSMSelector acts as an access 
               
               
                   
                   
                   
                   
                 filter for the SGDU&#39;s of the 
               
               
                   
                   
                   
                   
                 DescriptorEntry and the 
               
               
                   
                   
                   
                   
                 following applies: 
               
               
                   
                   
                   
                   
                 Usage in home 
               
               
                   
                   
                   
                   
                 network: 
               
               
                   
                   
                   
                   
                 The terminal might 
               
               
                   
                   
                   
                   
                 only use those 
               
               
                   
                   
                   
                   
                 SGDU&#39;s in the 
               
               
                   
                   
                   
                   
                 DescriptorEntry that 
               
               
                   
                   
                   
                   
                 have a matching 
               
               
                   
                   
                   
                   
                 BSMFilterCode. 
               
               
                   
                   
                   
                   
                 If the terminal has 
               
               
                   
                   
                   
                   
                 multiple matching 
               
               
                   
                   
                   
                   
                 BSMFilterCodes, the 
               
               
                   
                   
                   
                   
                 terminal MAY select 
               
               
                   
                   
                   
                   
                 one of the 
               
               
                   
                   
                   
                   
                 BSMSelectors with a 
               
               
                   
                   
                   
                   
                 matching 
               
               
                   
                   
                   
                   
                 BSMFilterCode and 
               
               
                   
                   
                   
                   
                 might then only use 
               
               
                   
                   
                   
                   
                 the SGDU&#39;s of 
               
               
                   
                   
                   
                   
                 DescriptorEntries with 
               
               
                   
                   
                   
                   
                 the selected 
               
               
                   
                   
                   
                   
                 BSMSelector, until it 
               
               
                   
                   
                   
                   
                 selects another 
               
               
                   
                   
                   
                   
                 BSMSelector. 
               
               
                   
                   
                   
                   
                 If the BSMSelector is 
               
               
                   
                   
                   
                   
                 not present the 
               
               
                   
                   
                   
                   
                 terminal might not use 
               
               
                   
                   
                   
                   
                 any of the SGDU&#39;s in 
               
               
                   
                   
                   
                   
                 the DescriptorEntry. 
               
               
                   
                   
                   
                   
                 Usage in roaming 
               
               
                   
                   
                   
                   
                 network: 
               
               
                   
                   
                   
                   
                 If the terminal has a 
               
               
                   
                   
                   
                   
                 matching 
               
               
                   
                   
                   
                   
                 BSMFilterCode in any 
               
               
                   
                   
                   
                   
                 of the SGDD&#39;s in this 
               
               
                   
                   
                   
                   
                 network, then the 
               
               
                   
                   
                   
                   
                 terminal might only 
               
               
                   
                   
                   
                   
                 use those SGDU&#39;s in 
               
               
                   
                   
                   
                   
                 the DescriptorEntry. 
               
               
                   
                   
                   
                   
                 If the terminal has 
               
               
                   
                   
                   
                   
                 multiple matching 
               
               
                   
                   
                   
                   
                 BSMFilterCodes, the 
               
               
                   
                   
                   
                   
                 terminal may select 
               
               
                   
                   
                   
                   
                 one of the 
               
               
                   
                   
                   
                   
                 BSMSelectors with a 
               
               
                   
                   
                   
                   
                 matching 
               
               
                   
                   
                   
                   
                 BSMFilterCode and 
               
               
                   
                   
                   
                   
                 might then only use 
               
               
                   
                   
                   
                   
                 the SGDU&#39;s of 
               
               
                   
                   
                   
                   
                 DescriptorEntries with 
               
               
                   
                   
                   
                   
                 the selected 
               
               
                   
                   
                   
                   
                 BSMSelector, until it 
               
               
                   
                   
                   
                   
                 selects another 
               
               
                   
                   
                   
                   
                 BSMSelector. 
               
               
                   
                   
                   
                   
                 If the terminal or 
               
               
                   
                   
                   
                   
                 smartcard does not 
               
               
                   
                   
                   
                   
                 have a matching 
               
               
                   
                   
                   
                   
                 BSMFilterCode in any 
               
               
                   
                   
                   
                   
                 of the SGDD&#39;s in this 
               
               
                   
                   
                   
                   
                 network, the terminal 
               
               
                   
                   
                   
                   
                 may select any 
               
               
                   
                   
                   
                   
                 BSMSelector and 
               
               
                   
                   
                   
                   
                 might only use the 
               
               
                   
                   
                   
                   
                 SGDU&#39;s of 
               
               
                   
                   
                   
                   
                 DescriptorEntries with 
               
               
                   
                   
                   
                   
                 the selected 
               
               
                   
                   
                   
                   
                 BSMSelector, until it 
               
               
                   
                   
                   
                   
                 selects another 
               
               
                   
                   
                   
                   
                 BSMSelector. 
               
               
                   
                   
                   
                   
                 If the BSMSelector is 
               
               
                   
                   
                   
                   
                 not present, the 
               
               
                   
                   
                   
                   
                 terminal can use all 
               
               
                   
                   
                   
                   
                 SGDU&#39;s in the 
               
               
                   
                   
                   
                   
                 DescriptorEntry. 
               
               
                   
                   
                   
                   
                 In case the terminal is not 
               
               
                   
                   
                   
                   
                 equipped with a 
               
               
                   
                   
                   
                   
                 BSMFilterCode, the following 
               
               
                   
                   
                   
                   
                 applies: 
               
               
                   
                   
                   
                   
                 Usage in home 
               
               
                   
                   
                   
                   
                 network: 
               
               
                   
                   
                   
                   
                 The terminal may 
               
               
                   
                   
                   
                   
                 select any 
               
               
                   
                   
                   
                   
                 BSMSelector that does 
               
               
                   
                   
                   
                   
                 not contain a 
               
               
                   
                   
                   
                   
                 BSMFilterCode, and 
               
               
                   
                   
                   
                   
                 might then only use 
               
               
                   
                   
                   
                   
                 the SGDU&#39;s of 
               
               
                   
                   
                   
                   
                 DescriptorEntries with 
               
               
                   
                   
                   
                   
                 the selected 
               
               
                   
                   
                   
                   
                 BSMSelector, until it 
               
               
                   
                   
                   
                   
                 selects another 
               
               
                   
                   
                   
                   
                 BSMSelector. 
               
               
                   
                   
                   
                   
                 Furthermore, the 
               
               
                   
                   
                   
                   
                 terminal might not use 
               
               
                   
                   
                   
                   
                 the SGDU&#39;s of 
               
               
                   
                   
                   
                   
                 DescriptorEntries that 
               
               
                   
                   
                   
                   
                 have a BSMSelector 
               
               
                   
                   
                   
                   
                 with a 
               
               
                   
                   
                   
                   
                 BSMFilterCode. 
               
               
                   
                   
                   
                   
                 If the BSMSelector is 
               
               
                   
                   
                   
                   
                 not present in any of 
               
               
                   
                   
                   
                   
                 the SGDD&#39;s the 
               
               
                   
                   
                   
                   
                 terminal can use all 
               
               
                   
                   
                   
                   
                 SGDU&#39;s in the 
               
               
                   
                   
                   
                   
                 DescriptorEntry. 
               
               
                   
                   
                   
                   
                 Usage in roaming 
               
               
                   
                   
                   
                   
                 network: 
               
               
                   
                   
                   
                   
                 The terminal may 
               
               
                   
                   
                   
                   
                 select any 
               
               
                   
                   
                   
                   
                 BSMSelector and 
               
               
                   
                   
                   
                   
                 might then only use 
               
               
                   
                   
                   
                   
                 the SGDU&#39;s of 
               
               
                   
                   
                   
                   
                 DescriptorEntries with 
               
               
                   
                   
                   
                   
                 the selected 
               
               
                   
                   
                   
                   
                 BSMSelector, until it 
               
               
                   
                   
                   
                   
                 selects another 
               
               
                   
                   
                   
                   
                 BSMSelector. 
               
               
                   
                   
                   
                   
                 If the BSMSelector is 
               
               
                   
                   
                   
                   
                 not present in any of 
               
               
                   
                   
                   
                   
                 the SGDD&#39;s the 
               
               
                   
                   
                   
                   
                 terminal can use all 
               
               
                   
                   
                   
                   
                 SGDU&#39;s in the 
               
               
                   
                   
                   
                   
                 DescriptorEntry. 
               
               
                   
                   
                   
                   
                 BSMSelector contains the 
               
               
                   
                   
                   
                   
                 following attributes: 
               
               
                   
                   
                   
                   
                 id 
               
               
                   
                   
                   
                   
                 RoamingQueryAddress 
               
               
                   
                   
                   
                   
                 BSMSelector contains the 
               
               
                   
                   
                   
                   
                 following elements: 
               
               
                   
                   
                   
                   
                 BSMFilterCode 
               
               
                   
                   
                   
                   
                 name 
               
               
                 id 
                 A 
                 NM/TM 
                 1 
                 Identifier of the BSMSelector, 
                 AnyURI 
               
               
                   
                   
                   
                   
                 unique within the network 
               
               
                 BSMFilterCode 
                 E4 
                 NO/TM 
                 0 . . . 1 
                 The code that specifies this 
                 String 
               
               
                   
                   
                   
                   
                 BSMSelector. 
               
               
                   
                   
                   
                   
                 Contains the following 
               
               
                   
                   
                   
                   
                 attribute: 
               
               
                   
                   
                   
                   
                 type 
               
               
                 type 
                 A 
                 NM/ 
                 1 
                 The type of BSMFilterCode. 
                 unsignedByte 
               
               
                   
                   
                 TM 
                   
                 1 - BSMCode (Smart Card 
               
               
                   
                   
                   
                   
                 Code) 
               
               
                   
                   
                   
                   
                 This is used if the 
               
               
                   
                   
                   
                   
                 determination is made based 
               
               
                   
                   
                   
                   
                 on the country and operator 
               
               
                   
                   
                   
                   
                 code in the (U)SIM/(R-) 
               
               
                   
                   
                   
                   
                 UIM/CSIM 
               
               
                   
                   
                   
                   
                 2 - BSMCode (Non Smart 
               
               
                   
                   
                   
                   
                 Card Code): 
               
               
                   
                   
                   
                   
                 This is used if the 
               
               
                   
                   
                   
                   
                 determination is made based 
               
               
                   
                   
                   
                   
                 on the country and operator 
               
               
                   
                   
                   
                   
                 code in the terminal 
               
               
                   
                   
                   
                   
                 Other values are reserved. 
               
               
                 Name 
                 E4 
                 NM/TM 
                 1 . . . N 
                 Provides a user readable name 
                 String 
               
               
                   
                   
                   
                   
                 for the BSMSelector, possibly 
               
               
                   
                   
                   
                   
                 in multiple languages. 
               
               
                   
                   
                   
                   
                 The language is expressed 
               
               
                   
                   
                   
                   
                 using built-in XML attribute 
               
               
                   
                   
                   
                   
                 xml:lang with this element . . . 
               
               
                   
                   
                   
                   
                 This attribute can be used to 
               
               
                   
                   
                   
                   
                 provide information to the 
               
               
                   
                   
                   
                   
                 user so he can select the 
               
               
                   
                   
                   
                   
                 BSMSelector the terminal has 
               
               
                   
                   
                   
                   
                 to use. 
               
               
                 RoamingQueryAddress 
                 A 
                 NM/TM 
                 1 . . . N 
                 Address to which the terminal 
                 anyURI 
               
               
                   
                   
                   
                   
                 MAY send the 
               
               
                   
                   
                   
                   
                 RoamingQueryRequest 
               
               
                   
               
             
          
         
       
     
     Broadcast Roaming allows a user to receive Broadcast Services from a Broadcast Service Provider different from his Home Broadcast Service Provider. The following main scenario can be provided for Broadcast Roaming. At any point of time the user may want to access the Broadcast Services from a Visited Mobile Service Provider. There are many possible reasons for this. For example, the user may not be able to access the services provided by the Home Mobile Broadcast Service Provider. In this case, Broadcast Roaming allows the user to receive Broadcast Services from another Broadcast Service Provider independent of the underlying Broadcast Distribution System. 
     The Mobile Broadcast Services (BCAST) 1.0 Enabler enables Broadcast Roaming through the use of a Service Guide, through roaming signaling between Terminal and Visited Mobile Broadcast Service Provider, through roaming signaling between Visited Mobile Broadcast Service Provider and Home Mobile Broadcast Service Provider and through the Terminal Provisioning function. The following gives an overview of the components: 
     Service Guide Delivery Descriptors (SGDD) within the Service Guide declare the existence of and availability of Service Guide fragments. The SGDD allows one to declare which fragments are associated with which Mobile Broadcast Service Provider (through use of BSMFilterCodes). Related to this signaling, there are also filtering rules in the Service Guide specification that the terminals are expected to comply with. Further, SGDD enables a method to convey points of contact which the visiting terminals can contact in case Broadcast Roaming is needed. This aspect of Broadcast Roaming is normatively specified within the specification of SGDD in [BCAST10-ServiceGuide]. 
     Terminal Provisioning enables the Home Broadcast Service Provider to maintain terminal-resident elements used by the roaming function. These elements include the list of Service Providers (their BSMFilterCodes) affiliated with the terminal as well as entry details of default roaming contact point—the server that terminal can send roaming requests in the case terminal does not find any other entry points within the Service Guide signaling. Finally, these elements include parameters that can be used to control terminal behavior: an element that controls whether roaming requests should always be sent to a Home BSM and an element that determines terminal behavior for fragments that are not associated with any BSMSelector. [These aspects of Broadcast Roaming are normatively specified within OMA-TS-BCAST_Services-V1 — 0-20060419-D, Appendix E (Management Object)]. 
     Roaming request and response messages between a terminal and BSM associated with Home and/or Visited Mobile Broadcast Service Provider allow terminals to request and Broadcast Service Providers to provide the rules related to roaming. Further, these messages allow a terminal to request access to purchase items while roaming. [This aspect of Broadcast Roaming is normatively specified within OMA-TS-BCAST_Services-V1 — 0-20060419-D (section 5.8.1)]. The contact points for the request messages are signaled within the SGDDs—that aspect of Broadcast Roaming is normatively specified within the specification of SGDD in [OMA-TS-BCAST_ServiceGuide-V1 — 0 — 0-20060324-D] 
     The roaming messages between Home and Visited Mobile Broadcast Service Providers allow the either the Home or Visited Mobile Broadcast Service Provider to initiate the roaming as a reaction to initial user roaming request. [This aspect of Broadcast Roaming is normatively specified within OMA-TS-BCAST_Services-V1 — 0-20060419-D (section 5.8.2)]. 
     The informative walk-through of Broadcast Roaming is described below. 
     Roaming messages between Terminal and BSM 
     The terminal uses a RoamingRuleRequest to request the RoamingRules associated with BSMSelector (identified by the id of the selector). As a response, the Terminal receives RoamingRuleResponse that carry the RoamingRules. 
     RoamingRuleRequest 
     
       
         
               
               
               
               
               
               
             
               
               
               
               
               
               
             
           
               
                   
               
               
                 Name 
                 Type 
                 Category 
                 Cardinality 
                 Description 
                 Data Type 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                 RoamingRuleRequest 
                 E 
                   
                   
                   
                   
               
               
                 UserID 
                 E1 
                 M 
                 1 
                 A unique ID that 
                 String 
               
               
                   
                   
                   
                   
                 may be used to 
               
               
                   
                   
                   
                   
                 identify the terminal 
               
               
                   
                   
                   
                   
                 in both the Home 
               
               
                   
                   
                   
                   
                 Service Provider 
               
               
                   
                   
                   
                   
                 and Visited Service 
               
               
                   
                   
                   
                   
                 Provider BCAST 
               
               
                   
                   
                   
                   
                 service area. An 
               
               
                   
                   
                   
                   
                 example is the 
               
               
                   
                   
                   
                   
                 3GPP IMSI 
               
               
                   
                   
                   
                   
                 (International 
               
               
                   
                   
                   
                   
                 Mobile Subscriber 
               
               
                   
                   
                   
                   
                 Identity). 
               
               
                 HomeBSMFilterCode 
                 E1 
                 M 
                 1 
                 The code that 
                 String 
               
               
                   
                   
                   
                   
                 specifies the Home 
               
               
                   
                   
                   
                   
                 BSM. 
               
               
                   
                   
                   
                   
                 Contains the 
               
               
                   
                   
                   
                   
                 following attribute: 
               
               
                   
                   
                   
                   
                 type 
               
               
                 type 
                 A 
                 M 
                 1 
                 The type of 
                 unsignedByte 
               
               
                   
                   
                   
                   
                 BSMFilterCode. 
               
               
                   
                   
                   
                   
                 1 - BSMCode 
               
               
                   
                   
                   
                   
                 (Smart Card Code) 
               
               
                   
                   
                   
                   
                 This is used if the 
               
               
                   
                   
                   
                   
                 determination is 
               
               
                   
                   
                   
                   
                 made based on the 
               
               
                   
                   
                   
                   
                 country and 
               
               
                   
                   
                   
                   
                 operator code in the 
               
               
                   
                   
                   
                   
                 (U)SIM/(R-) 
               
               
                   
                   
                   
                   
                 UIM/CSIM 
               
               
                   
                   
                   
                   
                 2 - BSMCode (Non 
               
               
                   
                   
                   
                   
                 Smart Card Code): 
               
               
                   
                   
                   
                   
                 This is used if the 
               
               
                   
                   
                   
                   
                 determination is 
               
               
                   
                   
                   
                   
                 made based on the 
               
               
                   
                   
                   
                   
                 country and 
               
               
                   
                   
                   
                   
                 operator code in the 
               
               
                   
                   
                   
                   
                 terminal 
               
               
                   
                   
                   
                   
                 Other values are 
               
               
                   
                   
                   
                   
                 reserved. 
               
               
                 BSMSelectorId 
                 E1 
                 M 
                 1 . . . N 
                 The identifier of 
                 anyURI 
               
               
                   
                   
                   
                   
                 BSMSelector 
               
               
                   
                   
                   
                   
                 terminal is 
               
               
                   
                   
                   
                   
                 requesting 
               
               
                   
                   
                   
                   
                 RoamingRules for. 
               
               
                   
               
             
          
         
       
     
     RoamingRuleResponse 
     
       
         
               
               
               
               
               
               
             
           
               
                   
               
               
                   
                   
                   
                   
                   
                 Data 
               
               
                 Name 
                 Type 
                 Category 
                 Cardinality 
                 Description 
                 Type 
               
               
                   
               
             
             
               
                 RoamingRuleResponse 
                 E 
                   
                   
                   
                   
               
               
                 ResponseEntry 
                 E1 
                 M 
                 1 . . . N 
                 Entry containing response 
               
               
                   
                   
                   
                   
                 to each requested 
               
               
                   
                   
                   
                   
                 BSMSelectorId 
               
               
                 BSMSelectorId 
                 E2 
                 M 
                 1 
                 The identifier of 
                 anyURI 
               
               
                   
                   
                   
                   
                 BSMSelector for which 
               
               
                   
                   
                   
                   
                 terminal requested 
               
               
                   
                   
                   
                   
                 RoamingRules for and 
               
               
                   
                   
                   
                   
                 which this ResponseEntry 
               
               
                   
                   
                   
                   
                 is about. 
               
               
                 RoamingRule 
                 E2 
                 M 
                 1 . . . N 
                 Entry specifying the 
                 See 
               
               
                   
                   
                   
                   
                 RoamingRule associated 
                 Section 
               
               
                   
                   
                   
                   
                 with BSMSelector. 
                 5.8.2.3 
               
               
                 Exclusive 
                 E2 
                 O 
                 0 . . . N 
                 Indicates whether the rules 
                 Boolean 
               
               
                   
                   
                   
                   
                 are exclusive. If “TRUE”, 
               
               
                   
                   
                   
                   
                 the rules are exclusive and 
               
               
                   
                   
                   
                   
                 terminal that accesses 
               
               
                   
                   
                   
                   
                 fragments covered by 
               
               
                   
                   
                   
                   
                 these rules (i.e. associated 
               
               
                   
                   
                   
                   
                 with the BSMSelectorId) 
               
               
                   
                   
                   
                   
                 might not access 
               
               
                   
                   
                   
                   
                 fragments associated with 
               
               
                   
                   
                   
                   
                 any other BSMSelectorId. 
               
               
                   
               
             
          
         
       
     
     5.8.1.3 Definition of Element RoamingRule 
     
       
         
               
               
               
               
               
               
             
           
               
                   
               
               
                   
                   
                   
                   
                   
                 Data 
               
               
                 Name 
                 Type 
                 Category 
                 Cardinality 
                 Description 
                 Type 
               
               
                   
               
             
             
               
                 RoamingRule 
                 E 
                 M 
                 1 
                   
                   
               
               
                 TimeFrame 
                 E1 
                 O 
                 0 . . . N 
                 Rule that defines the time frame(s) 
               
               
                   
                   
                   
                   
                 this RoamingRule is applies to. 
               
               
                 StartTime 
                 E2 
                 O 
                 0 . . . 1 
                 Start of the time frame. If not 
                 int 
               
               
                   
                   
                   
                   
                 given, the time frame is assumed to 
                 (32 bit) 
               
               
                   
                   
                   
                   
                 have started at some time in the 
                 expressed 
               
               
                   
                   
                   
                   
                 past 
                 as 
               
               
                   
                   
                   
                   
                   
                 NTP 
               
               
                   
                   
                   
                   
                   
                 time 
               
               
                 EndTime 
                 E2 
                 O 
                 0 . . . 1 
                 End of the time frame. If not given, 
                 int 
               
               
                   
                   
                   
                   
                 the time frame is assumed to end at 
                 (32 bit) 
               
               
                   
                   
                   
                   
                 some time in the future. 
                 expressed 
               
               
                   
                   
                   
                   
                   
                 as 
               
               
                   
                   
                   
                   
                   
                 NTP 
               
               
                   
                   
                   
                   
                   
                 time 
               
               
                 Allow 
                 E1 
                 O 
                 0 . . . N 
                 Rule that allows the Terminal to 
               
               
                 PurchaseItemId 
                   
                   
                   
                 use the listed PurchaseItems. 
               
               
                 PurchaseItemId 
                 E2 
                 M 
                 1 . . . N 
                 PurchaseItemID that is allowed to 
                 anyURI 
               
               
                   
                   
                   
                   
                 be interpreted, rendered and 
               
               
                   
                   
                   
                   
                 accessed. 
               
               
                 Allow 
                 E1 
                 O 
                 0 . . . N 
                 Rule that allows the Terminal to 
               
               
                 Service 
                   
                   
                   
                 use the fragments corresponding to 
               
               
                   
                   
                   
                   
                 listed GlobalServiceIDs. 
               
               
                 GlobalServiceID 
                 E2 
                 M 
                 1 . . . N 
                 Fragments associated with this 
                 anyURI 
               
               
                   
                   
                   
                   
                 GlobalServiceID are allowed to be 
               
               
                   
                   
                   
                   
                 interpreted, rendered and accessed. 
               
               
                 Allow 
                 E1 
                 O 
                 0 . . . N 
                 Rule that allows the Terminal to 
               
               
                 Content 
                   
                   
                   
                 use the fragments corresponding to 
               
               
                   
                   
                   
                   
                 listed ContentIDs. 
               
               
                 GlobalContentID 
                 E2 
                 M 
                 1 . . . N 
                 Fragments associated with this 
                 anyURI 
               
               
                   
                   
                   
                   
                 GlobalContentID are allowed to be 
               
               
                   
                   
                   
                   
                 interpreted, rendered and accessed. 
               
               
                 Deny 
                 E1 
                 O 
                 0 . . . N 
                 Rule that denies the Terminal to use 
               
               
                 PurchaseItemId 
                   
                   
                   
                 the listed PurchaseItems. 
               
               
                 PurchaseItemId 
                 E2 
                 M 
                 1 . . . N 
                 PurchaseItemID that is denied to be 
                 anyURI 
               
               
                   
                   
                   
                   
                 interpreted, rendered and accessed . . . 
               
               
                 Deny 
                 E1 
                 O 
                 0 . . . N 
                 Rule that denies the Terminal to use 
               
               
                 Service 
                   
                   
                   
                 the fragments corresponding to 
               
               
                   
                   
                   
                   
                 listed GlobalServiceIDs. 
               
               
                 GlobalServiceID 
                 E2 
                 M 
                 1 . . . N 
                 Fragments associated with this 
                 anyURI 
               
               
                   
                   
                   
                   
                 GlobalServiceID are denied to be 
               
               
                   
                   
                   
                   
                 interpreted, rendered and accessed. 
               
               
                 Deny 
                 E1 
                 O 
                 0 . . . N 
                 Rule that denies the Terminal to use 
               
               
                 Content 
                   
                   
                   
                 the fragments corresponding to 
               
               
                   
                   
                   
                   
                 listed ContentIDs. 
               
               
                 GlobalContentID 
                 E2 
                 M 
                 1 . . . N 
                 Fragments associated with this 
                 anyURI 
               
               
                   
                   
                   
                   
                 GlobalContentID are denied to be 
               
               
                   
                   
                   
                   
                 interpreted, rendered and accessed. 
               
               
                   
               
             
          
         
       
     
     Roaming messages between Home BSM and Visited BSM 
     In case the user selects to purchase or subscribe to a PurchaseItem that is associated with a BSM that is not one of the Home BSMs associated with the terminal, the terminal sends a normal Service Provisioning message. The receiving system determines from the requested PurchaseItemId and included UserID whether the request is about roaming. Two cases for this exist: either the Terminal sends the Service Provisioing message to its Home BSM or to the Visited BSM. 
     In the former case, the Home BSM detects that one of its terminals is requesting a PurchaseItem served by another BSM. If the Home BSM wants to allow terminal to access the PurchaseItem, the Home BSM goes ahead and sends RoamingAuthorizationRequest to the Visited BSM. The Visited BSM answers with RoamingAuthorizationResponse. 
     In the latter case, the Visited BSM detects that a terminal that is not one of the terminals affiliated with this BSM is requesting a PurchaseItem served by this BSM. The Visited BSM consequently sends RoamingAuthorizationRequest to the Home BSM of the Terminal. The Home BSM answers with RoamingAuthorizationResponse. 
     Protocol stack for message exchanges between BSMs 
     Referring now to  FIG. 3 , an illustrative protocol stack is shown that may be used for message exchange between BSMs. In this example, HTTP over TCP/IP may be used for the delivery of the roaming procedure authorization messages. IPsec may be used in conjunction with TCP/IP to provide secure delivery of the authorization messages. 
     RoamingAuthorizationRequest 
     
       
         
               
               
               
               
               
               
             
           
               
                   
               
               
                   
                   
                   
                   
                   
                 Data 
               
               
                 Name 
                 Type 
                 Category 
                 Cardinality 
                 Description 
                 Type 
               
               
                   
               
             
             
               
                 RoamingAuthorizationRequest 
                 E 
                   
                   
                   
                   
               
               
                 UserID 
                 E1 
                 M 
                 1 
                 A unique ID that may be used to 
                 String 
               
               
                   
                   
                   
                   
                 identify the terminal in both the 
               
               
                   
                   
                   
                   
                 Home Service Provider and Visited 
               
               
                   
                   
                   
                   
                 Service Provider BCAST service 
               
               
                   
                   
                   
                   
                 area. An example is the 3GPP IMSI 
               
               
                   
                   
                   
                   
                 (International Mobile Subscriber 
               
               
                   
                   
                   
                   
                 Identity). 
               
               
                 HomeBSMFilterCode 
                 E1 
                 M 
                 1 
                 The code that specifies the Home 
                 String 
               
               
                   
                   
                   
                   
                 BSM. 
               
               
                   
                   
                   
                   
                 Contains the following attribute: 
               
               
                   
                   
                   
                   
                 type 
               
               
                 type 
                 A 
                 M 
                 1 
                 The type of BSMFilterCode. 
                 unsignedByte 
               
               
                   
                   
                   
                   
                 1 - BSMCode (Smart Card Code) 
                   
               
               
                   
                   
                   
                   
                 This is used if the determination is 
               
               
                   
                   
                   
                   
                 made based on the country and 
               
               
                   
                   
                   
                   
                 operator code in the (U)SIM/(R-) 
               
               
                   
                   
                   
                   
                 UIM/CSIM 
               
               
                   
                   
                   
                   
                 2 - BSMCode (Non Smart Card 
               
               
                   
                   
                   
                   
                 Code): 
               
               
                   
                   
                   
                   
                 This is used if the determination is 
               
               
                   
                   
                   
                   
                 made based on the country and 
               
               
                   
                   
                   
                   
                 operator code in the terminal 
               
               
                   
                   
                   
                   
                 Other values are reserved. 
               
               
                 VisitedBSMFilterCode 
                 E1 
                 M 
                 1 
                 The code that specifies the Visited 
                 String 
               
               
                   
                   
                   
                   
                 BSM. 
               
               
                   
                   
                   
                   
                 Contains the following attribute: 
               
               
                   
                   
                   
                   
                 type 
               
               
                 type 
                 A 
                 M 
                 1 
                 The type of BSMFilterCode. 
                 unsignedByte 
               
               
                   
                   
                   
                   
                 1 - BSMCode (Smart Card Code) 
                   
               
               
                   
                   
                   
                   
                 This is used if the determination is 
               
               
                   
                   
                   
                   
                 made based on the country and 
               
               
                   
                   
                   
                   
                 operator code in the (U)SIM/(R-) 
               
               
                   
                   
                   
                   
                 UIM/CSIM 
               
               
                   
                   
                   
                   
                 2 - BSMCode (Non Smart Card 
               
               
                   
                   
                   
                   
                 Code): 
               
               
                   
                   
                   
                   
                 This is used if the determination is 
               
               
                   
                   
                   
                   
                 made based on the country and 
               
               
                   
                   
                   
                   
                 operator code in the terminal 
               
               
                   
                   
                   
                   
                 Other values are reserved. 
               
               
                 TerminalSubscriptionType 
                 E1 
                 M 
                 1 
                 A field that may indicate the 
                 anyURI 
               
               
                   
                   
                   
                   
                 subscription scope of the terminal in 
               
               
                   
                   
                   
                   
                 terms of roaming. The Home Service 
               
               
                   
                   
                   
                   
                 Provider and the Visited Service 
               
               
                   
                   
                   
                   
                 Provider have a common 
               
               
                   
                   
                   
                   
                 understanding of the field according 
               
               
                   
                   
                   
                   
                 to roaming agreements between 
               
               
                   
                   
                   
                   
                 them. 
               
               
                   
                   
                   
                   
                 This element is not further specified 
               
               
                   
                   
                   
                   
                 in this specification. 
               
               
                 PurchaseItemID 
                 E1 
                 M 
                 1 . . . N 
                 Set of PurchaseItems which are 
                 anyURI 
               
               
                   
                   
                   
                   
                 associated with the VisitedBSM and 
               
               
                   
                   
                   
                   
                 which the terminal wants to 
               
               
                   
                   
                   
                   
                 subscribe to/purchase. 
               
               
                   
               
             
          
         
       
     
     RoamingAuthorizationResponse 
     
       
         
               
               
               
               
               
               
             
           
               
                   
               
               
                   
                   
                   
                   
                   
                 Data 
               
               
                 Name 
                 Type 
                 Category 
                 Cardinality 
                 Description 
                 Type 
               
               
                   
               
             
             
               
                 RoamingAuthorizationResponse 
                 E 
                   
                   
                   
                   
               
               
                 UserID 
                 E1 
                 M 
                 1 
                 A unique ID that may be used to 
                 String 
               
               
                   
                   
                   
                   
                 identify the terminal in both the 
               
               
                   
                   
                   
                   
                 Home Service Provider and Visited 
               
               
                   
                   
                   
                   
                 Service Provider BCAST service 
               
               
                   
                   
                   
                   
                 area. An example is the 3GPP IMSI 
               
               
                   
                   
                   
                   
                 (International Mobile Subscriber 
               
               
                   
                   
                   
                   
                 Identity). 
               
               
                 HomeBSMFilterCode 
                 E1 
                 M 
                 1 
                 The code that specifies the Home 
                 String 
               
               
                   
                   
                   
                   
                 BSM. 
               
               
                   
                   
                   
                   
                 Contains the following attribute: 
               
               
                   
                   
                   
                   
                 type 
               
               
                 type 
                 A 
                 M 
                 1 
                 The type of BSMFilterCode. 
                 unsignedByte 
               
               
                   
                   
                   
                   
                 1 - BSMCode (Smart Card Code) 
                   
               
               
                   
                   
                   
                   
                 This is used if the determination is 
               
               
                   
                   
                   
                   
                 made based on the country and 
               
               
                   
                   
                   
                   
                 operator code in the (U)SIM/(R-) 
               
               
                   
                   
                   
                   
                 UIM/CSIM 
               
               
                   
                   
                   
                   
                 2 - BSMCode (Non Smart Card 
               
               
                   
                   
                   
                   
                 Code): 
               
               
                   
                   
                   
                   
                 This is used if the determination is 
               
               
                   
                   
                   
                   
                 made based on the country and 
               
               
                   
                   
                   
                   
                 operator code in the terminal 
               
               
                   
                   
                   
                   
                 Other values are reserved. 
               
               
                 VisitedBSMFilterCode 
                 E1 
                 M 
                 1 
                 The code that specifies the Visited 
                 String 
               
               
                   
                   
                   
                   
                 BSM. 
               
               
                   
                   
                   
                   
                 Contains the following attribute: 
               
               
                   
                   
                   
                   
                 type 
               
               
                 type 
                 A 
                 M 
                 1 
                 The type of BSMFilterCode. 
                 unsignedByte 
               
               
                   
                   
                   
                   
                 1 - BSMCode (Smart Card Code) 
                   
               
               
                   
                   
                   
                   
                 This is used if the determination is 
               
               
                   
                   
                   
                   
                 made based on the country and 
               
               
                   
                   
                   
                   
                 operator code in the (U)SIM/(R-) 
               
               
                   
                   
                   
                   
                 UIM/CSIM 
               
               
                   
                   
                   
                   
                 2 - BSMCode (Non Smart Card 
               
               
                   
                   
                   
                   
                 Code): 
               
               
                   
                   
                   
                   
                 This is used if the determination is 
               
               
                   
                   
                   
                   
                 made based on the country and 
               
               
                   
                   
                   
                   
                 operator code in the terminal 
               
               
                   
                   
                   
                   
                 Other values are reserved. 
               
               
                 PurchaseItemID 
                 E1 
                 M 
                 1 . . . N 
                 Set of PurchaseItems which are 
                 anyURI 
               
               
                   
                   
                   
                   
                 associated with the VisitedBSM and 
               
               
                   
                   
                   
                   
                 which the terminal wants to 
               
               
                   
                   
                   
                   
                 subscribe to/purchase. 
               
               
                 RoamingAuthorisationStatus 
                 E2 
                 M 
                 1 
                 A field that may indicate whether the 
                 UnsignedByte 
               
               
                   
                   
                   
                   
                 roaming terminal has been 
                   
               
               
                   
                   
                   
                   
                 authorised for requested 
               
               
                   
                   
                   
                   
                 PurchaseItem or not. 
               
               
                   
                   
                   
                   
                 Note: The codes in table 1 are be 
               
               
                   
                   
                   
                   
                 used 
               
               
                   
               
             
          
         
       
     
     Referring now to  FIG. 4 , an illustrative walk-through of a broadcast roaming technique is shown, the steps of which are described below in greater detail. Specifically, this example illustrates how broadcast roaming may achieved through the use of core functionalities of BCAST 1.0. This informative explanation of broadcast roaming is presented as a walk-through mainly from the terminal point of view.
         1. The terminal scans or otherwise detects an available Broadcast Distribution Systems (BDS).   2. The terminal attempts to perform a service discovery bootstrap to locate an entry point to BCAST Service Guide on all or any of the detected BDSes. Upon successful completion of a bootstrap procedure, the terminal acquires the entry point to BCAST Service Guide over the respective bearer. Consequently, the terminal acquires SGDDs either by receiving or by retrieving those.   3. In case the terminal fails to perform a bootstrap and to locate the entry point to BCAST Service Guide over all the detected BDSes, the terminal attempts to retrieve SGDDs using the entry point as provisioned in the Terminal (defined by Management Object “&lt;X&gt;/SGServerAddress”).   4. Once the terminal acquires SGDDs, the terminal looks for BSMSelector elements and BSMFilterCodes within those elements in the SGDD. Together with that information and the terminal&#39;s affiliated BSM(s) which are represented within the Terminal as Management Objects with identifier ‘&lt;X&gt;/BSMFilterCode’, the Terminal categorizes all the fragments declared in the SGDD into three categories:
           i. Fragments that are associated with a BSMFilterCode (within BSMSelector), which match at least one of the BSMFilterCodes associated with the terminal. The terminal can use, interpret and render the information contained in these fragments without restrictions.   ii. Fragments that are associated with a BSMFilterCode (within BSMSelector), which does not match with any of the BSMFilterCodes associated with the terminal. The terminal can render, interpret and handle the fragments according to RoamingRules associated with this BSMSelector. BSMSelector and the associated RoamingRules are identified by the attribute “Id” present within the BSMSelector as well as in RoamingRules.   iii. Fragments that are not associated with any BSMFilterCode (no BSMSelector).
               In case a terminal has no Management Objects with identifier ‘&lt;X&gt;/BSMFilterCode’ present, the terminal can use, interpret and render the information contained in these fragments without restrictions.   In case the terminal has at least one Management Object with identifier ‘&lt;X&gt;/BSMFilterCode’ present, the terminal will determine behavior according to Management Objects with identifier ‘&lt;X&gt;/IgnoreUnIdentifiedBSM’.   If the Management Objects with identifier ‘&lt;X&gt;/IgnoreUnIdentifiedBSM’ is set with value “TRUE” the terminal cannot use, interpret and render the information contained in these fragments at all.   If the Management Objects with identifier ‘&lt;X&gt;/IgnoreUnIdentifiedBSM’ is set with value “FALSE” the terminal can use, interpret and render the information contained in these fragments without restrictions.   If the Management Objects with identifier ‘&lt;X&gt;/IgnoreUnIdentifiedBSM’ is not present, the terminal assumes that the value of such Management Object is “FALSE”.   
               
           5. If the terminal needs to render, interpret and handle the fragments in category (ii.) above, it acquires the RoamingRules related to the BSMSelector in question. There are three ways to achieve this.
           a. The terminal fetches the RoamingRules from the Visited BSM. For that, the BSMSelector contains attribute “RoamingRuleRequestAddress” to which the terminal can address the RoamingRuleRequest. As a response of to the RoamingRuleRequest the terminal will receive RoamingRuleResponse which contains the RoamingRules associated with the BSMSelector.   b. The terminal fetches the RoamingRules from the Home BSM. This happens if the BSMSelector does not have “RoamingRuleRequestAddress” present, OR, if the terminal has Management Object “&lt;X&gt;/ForceHomeRoamingRuleRequestAddress” present and set to “TRUE”. In these cases the terminal sends the RoamingRuleRequest to “&lt;X&gt;/HomeRoamingRuleRequestAddress”. As a response of to the RoamingRuleRequest the terminal will receive RoamingRuleResponse which contains the RoamingRules associated with the BSMSelector.   c. The RoamingRules were originally provided as a part of BSMSelector (not illustrated in  FIG. 4 ).   
           6. The terminal acquires Service Guide fragments. It interprets handles and renders the fragments according to RoamingRules. Consequently the terminal uses the Service Guide fragments to perform subscriptions to services and content, and to access services and content described by the Service Guide.   7. In case the user selects to purchase or subscribe to a PurchaseItem that is associated with a BSM that is not one of the Home BSMs associated with the terminal, the terminal sends a normal Service Provisioning message. The receiving system determines from the requested PurchaseItemId and included UserID whether the request is about roaming. Two cases for this exist: either the terminal sends the Service Provisioing message to its Home BSM or to the Visited BSM.
           a. In the former case, the Home BSM detects that one of its terminals is requesting a PurchaseItem served by another BSM. If the Home BSM wants to allow the terminal to access the PurchaseItem, the Home BSM goes ahead and requests RoamingAuthorization from the Visited BSM.   b. In the latter case, the Visited BSM detects that a terminal that is not one of the terminals affiliated with this BSM is requesting PurchaseItem served by this BSM. The Visited BSM consequently requests RoamingAuthorization from the Home BSM of the terminal. Upon successful RoamingAuthorization, the terminal is granted the right to purchase and/or subscribe to the PurchaseItem it requested.   
           8. The terminal accesses service and/or content related to PurchaseItem, provided by Visited Service Provider.       

     While illustrative systems and methods as described herein embodying various aspects of the present invention are shown, it will be understood by those skilled in the art, that the invention is not limited to these embodiments. Any of the steps described herein may be implemented as computer-executable instructions embodied in a computer-readable medium, such as a computer disk or memory. 
     Modifications may be made by those skilled in the art, particularly in light of the foregoing teachings. For example, each of the elements of the aforementioned embodiments may be utilized alone or in combination or subcombination with elements of the other embodiments. It will also be appreciated and understood that modifications may be made without departing from the true spirit and scope of the present invention. The description is thus to be regarded as illustrative instead of restrictive on the present invention. 
     One or more aspects of the invention may be embodied in computer-executable instructions, such as in one or more program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types when executed by a processor in a computer or other device. The computer executable instructions may be stored on a computer readable medium such as a hard disk, optical disk, removable storage media, solid state memory, RAM, etc. As will be appreciated by one of skill in the art, the functionality of the program modules may be combined or distributed as desired in various embodiments. In addition, the functionality may be embodied in whole or in part in firmware or hardware equivalents such as integrated circuits, field programmable gate arrays (FPGA), application specific integrated circuits (ASIC), and the like. 
     Embodiments include any novel feature or combination of features disclosed herein either explicitly or any generalization thereof. While embodiments have been described with respect to specific examples including presently preferred modes of carrying out the invention, those skilled in the art will appreciate that there are numerous variations and permutations of the above described systems and techniques. Thus, the spirit and scope of the invention should be construed broadly as set forth in the appended claims.