`criteria parameter to FIG. 20 processing for joining a variety of EFR data types for comparison
`processing.
`
`If block 10574 determines the user selected to configure a LBS configuration change event for
`automated AD presentation processing, then block 10580 preferably maintains a Boolean
`variable for LBS configuration events. When an LBS configuration change is made as detected
`in confiquration processing
`(e.q. by a user at the MS), FIG. 20 processing
`is invoked,
`preferabl
`with keyword information describing the specific change made passedin the criteria parameter
`
`(forcompare to EFR information). CLOG information may or may not be populated for further
`intent),
`the Boolean variable is automatically
`populated, and also whenreceivin MADRs at
`block 4470 from a remote system in accordance with privileges. If block 10574 determines the
`user did not select to configure an event for LBS configuration changes, processing continues to
`block 10578.
`
`If block 10578 determines the user selected to configure a LBX configuration change event for
`automated AD presentation processing, then block 10580 preferably maintains a Boolean
`variable for LBX configuration events. When an LBX configuration change is made as detected
`in configuration processing
`(e.g. by a user at the MS), FIG. 20 processing
`is invoked,
`preferabl
`with keyword information describing the specific change made passedin the criteria parameter
`for com are to EFR information).CLOC information ma or may not be populated for further
`
`intent),
`the Boolean variable is automatically
`populated, and also whenreceivin MADRs at
`block 4470 from a remote system in accordance with privileges. If block 10578 determines the
`user did not select to configure an event for LBX configuration changes, then processing
`continues to block 10582.
`
`
`
`Programming interface necessarybleckIf block 692210582 determines the custort launch isteuse afApplication
`6930-invekesthe
`aching
`the-applicationandprece
`‘nauser selected to
`
`exit FIG. 24 processing, block 10584 terminates the uuserinterlace and FIG. 24 processing
`
`
`terminates at block 10586, otherwise block 10582 continues to block 6938.10588.
`
`Block 10588 handles other user actions, including other event types for being configured before
`continuing back to block 10504.
`
`FIGS. 25A and 25B depict a flowchart for describing a preferred embodimentof a procedurefor
`presenting MADR information. MADR presentation processing begins at block 10600, continues
`to block 10602 where parameters passed are determined, and a current system date/time
`stamp is accessed. Thereafter, block 10604 checks for expiration criteria in field 9850 f and if
`specified, compares the expiration date/time with the current date/time. If
`block 10604 determines the MADR is expired, block 10606 expires it
`(one embodiments
`inactivates field 9850 / and another embodiment deletes the MADR entirely) and processing
`returns to the invoker at block 10634, otherwise block 10608 accesses user preferences
`maintained outside of MADR objects such as those made by the user with FIG. 24. Thereafter,
`block 10610 reconciles the MS (observer's) user's configured preferences with MADR
`(originator's) intent field 9850 f.
`
`EXHIBIT 1013 - PAGE 0301
`
`APPLE
`
`
`
`Reconciliation includes setting MS configuration changes to make based onthe originator's
`intent with the observer's preferences for any
`presentation characteristics (e.g. appearance
`specifications, volume adjustment specifications, full screen presentation, dedicated area
`resentation,
`pop-up/window, title-bar area, mix/preempt, etc),
`preferably
`using
`privileges to
`govern what can and cannot be set with authority. Thereafter, if block 10612 determines FIG.
`25A wasinvoked for an active phonecall line (channel information in parameter passed),
`processing continues to block 10614. If block 10614 determines the MADR cannot be presented
`appropriately for the active call line audio or video channel information (e.g. using
`type
`field 9850 b), then block 10616 deactivates the MADR field 9850 / and the invoker is returned to
`at block 10634. An alternate embodimentof block 10616 includes error notification processing.
`If block 10614 determines the MADR to be presentedis suitable for the active phonecall line,
`then block 10618 sets this FIG. 25A invocation's subsequent processing logic for making use of
`the active call line channel information, block 10620 saves current MS configurations
`determined for changeat block 10610, block 10622 accesses available and suitable
`presentation interfaces at the MS, block 10624 determines which interface is a bestfit for the
`MADR to be presented, and block 10626 checksif a suitable presentation interface was found.
`AMS should provide a variety of content presentation applications suitable for presenting
`MADR information. Some of these applications are prepackaged with the MS, or post-factory
`installed to the MS. For example, a video presentation application maybeinstalled, or an audio
`application may beinstalled. A video presentation API maybe installed, or an audio AP| may be
`installed. When arrived to from block 10618, there is preferably a phone API available for
`presenting audio information on the active audio channel, and there is preferably a video API for
`presenting video information on the active video call channel, preferably using FIG.
`22 architectures. AMS user mayalsoinstall APIs or applications for certain presentation
`content types. Block 10622 accesses known useful applications/interfaces depending on type
`field 9850 b and any active channel information, and block 10624 selects a bestfit if there is
`more than one suitable application or interface, perhaps using a user's precedence
`configuration for which application to select. Thereafter, if block 10626 determines a suitable
`application or interface (e.g. API) was found,
`processing continues to block 10628.
`
`Block 10628 optimizes parameters to the application or interface based on MADR field settings
`and block 10610 reconciliations, makes any remaining MS configuration changesthat are not
`supported with parameters to the application or interface, and block 10630 invokes the
`application or interface with the parameters for presenting the MADR messagefield 9850 c.
`Block 10628 will invoke FIG. 26 for resolving any application information specifications, for
`example to build the message for presentation, and block 10630 will not invoke the application
`orinterface if FIG. 26 returns for skipping the presentation. Thereafter, block 10632 restores
`configurations (if any were modified at block 10628) saved at block 10620, and the FIG.
`25A invoker is returned to at block 10634. If block 10626 determines a suitable application or
`interface was notidentified for presenting the MADR at the MS, then block 10636 makes
`configuration changes(if any) determined at block 10610, block 10638 presents
`field 9850 c with FIG. 25B custom processing, and processing continues to block 10632.
`Custom processing should be a last resort of presentation. The MS is preferably configured with
`suitable presentation applications or interfaces which can be determined at
`blocks 10622/10624. Suitable application or interfaces not already factory provided in the MS
`are preferably a “plug-in” and useinstallation. Blocks 10622/10624 may determine that the
`
`EXHIBIT 1013 - PAGE 0302
`
`APPLE
`
`
`
`message type field 9850 b cannot be handled, and that an attempt at presenting MADR
`information with custom processing should be made.
`
`Referring back to block
`
`
`
`
` 0612thatthe“Operand”performthe1 rmined indicateste
`_ if itis dete
`ft
`ayes
`.
`
`
`
`
`
`
`
`
`
`25A was not invoked for an active call (i.e. offline), then block 10640 accesses the
`observer's) user's
`prompt configuration data (e.g. configured by FIG. 24), and
`
`MS
`
`block 10642 reconciles the MS (observer's) user's configured prompt preferences with an
`
`MADR (originator's) intent field 9850 f prompt configurations. Reconciliation includes settin
`prompt processing based ontheoriginator's intent with the observer's preferences, preferably
`using privileges to govern what can and cannot be set with authority. Thereafter, reconciled
`prompt processing begins at block 10644 for checking to see if a prompt should be provided at
`all for the presentation.
`
`
`
`EXHIBIT 1013 - PAGE 0303
`
`APPLE
`
`
`
`
`
`If block 10644 determines a promptis to be provided, block 10646 provides the prompt and
`configured options to the user and block 10648interfaces with the user for a response. When a
`user response is made, processing continues to block 10650. Some embodiments present
`description field 9850 /, sender information, recipient information, MADR type information,
`and/or any other useful data about the presentation. Applications, event, CLOC or any other
`useful information may also be presentedin the prompt, and may be enabled/disabled for
`example for software debug purposes. A preferred embodiment presentation prompt presented
`at block 10646 may provide any of the following options, depending on reconciliation at
`block 10642.
`
`lO[lo|lolole
`
`lOIlo
`
`Continue with presentation (e.g. Monitor for continue user action):
`Cancel presentation (e.g. Monitor for cancel user action):
`Re-schedule this presentation at a future time on the MS user's calendar;
`Re-schedule in convenient time units this presentation for processing in a period
`of time (e.g. delay for retrying
`presentation in 1 hour, 5 minutes or 200 seconds):
`Re-schedule this presentation for a specified future date/time; or
`Save presentation reference to history information for optional access at a later
`time:
`
`EXHIBIT 1013 - PAGE 0304
`
`APPLE
`
`
`
`If block 10650 determines the user did not select to continue with the presentation, then
`block 10652 determinesif the user qualified the cancellation for any of the options provided. If
`block 10652 determines the user selected to qualify
`canceling the presentation,
`then
`block 10654 processesqualifications and the invokeris returned to at block 10634.
`Block 10654 processes qualifications preferably as described here:
`
`IOIle
`
`lo
`
`Re-schedule this presentation at a future time on the MS user's calendar;
`Block 10652 creates a calendar entry containing MADR handle field 9850 a for
`the user's specified date/time information. The calendar entry becomesin effect. a
`schedule processing alert which executes at that time. The processing alert uses
`the MADR handle to access the MADR,sets FIG. 25A invocation parameters,
`and invokes FIG. 25A processing at thattime.
`Re-schedule in convenient time units this presentation for processing in a period
`of time (e.g. delay for retrying
`presentation in 1 hour, 5 minutes or 200 seconds
`<OR> Re-schedule this presentation for a specified future date/time; An
`asynchronousthreadis started for sleeping the specified period of time and then
`invoking at that time FIG. 25A parameters including the MADR.The thread
`terminates after invoking FIG. 25A for the re-processing of the MADR.
`Save presentation reference to history information for optional access at a later
`time: The MADR, or handle field 9850 a,
`is saved to history
`(e.g. LBX histo
`that the MS user can later selectit for presentation, perhaps with saved
`
`
`parameters,atthattime.
`
`re)
`
` If block 694410652 determines the userthenBleck6946-legsdlidnotnotselected cancelprocessing,te
`
`
`
`
`
`
`
` creturriththe utright cancelled itib, thenavewine cancellation (uee.gtoge he E
`
`
`
`processing ¢continues to block6048 for geting the nxt(or fetSB4Btarts sstem-prameterblock
`
`
`
`
`
`MS2MS-110634.Referring b:back to block«10850. if itis determined the user selected to continue
`
`with the presentation, processing continues to block 10656. Referring back to block 10644, ifit
`is determined that no prompt was to be provided, processing continues to block 10656. If
`block 10656 determinesthat delivery criteria field 9850 h is null, then processing continues for
`MSlocal presentation at block 10620. Block 10620 and subsequent Processing 'sis as areaely
`
`described above
`
`EXHIBIT 1013 - PAGE 0305
`
`APPLE
`
`
`
`copyofthesearchresultfromFIG.69AtethesystemofFIG,J5Borecessing-except there is no active
`
`
`
`line (channel) information to be associated with the presentation.
`
`If block 10656 determinesdelivery criteria is specified, then processing continues to
`block 10658. If block 10658 determines the MADR is to be sent using a well known transport
`layer interface (e.g. SMTP),
`then block 10660 prepares parameters (e.g. appearance
`information) for sending the MADR information, block 10662 invokes the transport interface and
`processing continues to block 10634. In effect, the MADR is presented by sending it to the
`delivery criteria which may be a single recipient, group of recipients, or wildcard specification of
`recipients. If block 10658 determinesdelivery criteria is not destined for a well knowntransport
`layer interface, the MADR is delivered to the remote MS(s)
`by
`preparing
`send parametersat
`block 10664 and invoking send processing of FIG. 13A at block 10666 before continuing to
`block 10634. Depending on settings in the application distribution for outbound processing, FIG.
`13A may need to be invoked for a plurality of recipient MSs, therefore an iterative loop 10668is
`appropriately incorporated around blocks 10644 and 10666 for handling multiple recipients, and
`for handling attempts for a prioritized retry. An alternate embodiment may handle multiple
`recipients in send processing invoked at block 10666 depending on a transport interface used.
`Parameters are prepared at block 10664 so a MADR is delivered in its entirety for processing at
`the receiving MS(s). Other transport mechanisms may
`beutilized. Preferably,
`a CLOC
`parameter is passed wheneverpossible, including via block 10666, whereby whereaboutsis
`accessed at block 10664.
`
`FIG. 25B depicts a flowchart for describing block 10638 custom presentation processing to do
`the best possible presentation in absence of a suitable application or interface.
`Block 10638 processing begins at block 10638-1, and continues to block 10638-3. If
`block 10638-3 determines field 9850 c is an executable, block 10638-5 determines compatibility
`for being executed by the MS. Thereafter, if block 10638-7 determines the executable is
`compatible for the MS (e.g. 32 bit Intel executable for 32 bit Intel architecture), block 10638-
`9 spawns the executable processfor execution at the MS and block 10638 processing
`terminates at block 10638-39, otherwise block 10638-11 deactivates MADR field 9850 / and
`processing continues to block 10638-39. Some embodiments will provide an error notification at
`block 10638-11. If block 10638-3 determinesfield 9850 c is not for an executable, processing
`continues to block 10638-13.
`
`If block 10638-13 determines field 9850 c is for audio only, block 10638-15 prepares peripheral
`
`
`
`
`
`
`
`
`
`outputinterfaceparametersusingblockreconciliationsandfirstinvokingtheFIG.10610
`26 procedure for resolving any specified application information. LRDR information may be used
`to skip
`presentation processing
`(e.g. no presenting at MS whereabouts described by a LRDR
`therefore a skip return is checked for at block 10638-17. After resolving any application
`information, block 10638-15 finalizes the message and block 10638-17 invokes the peripheral
`BIOSinterface for presenting the audio if no skip was to be processed. Block 10638-15 is
`capable of many format transformations in order to get the audio to a proper format to the
`interface invoked at block 10638-17. Active call line (channel) audio play was preferably
`handled with an API in FIG. 25A, and active call information preferably need not be used at
`block 10638-17, however block 10638-17 can interface for audio output using architecture
`of FIG. 22. Processing leaves block 10638-17 for block 10638-39. If block 10638-13 determines
`field 9850 c is not for audio only, processing continues to block 10638-19.
`
`EXHIBIT 1013 - PAGE 0306
`
`APPLE
`
`
`
`If block 10638-19 determines field 9850 c is for video, block 10638-21 prepares display interface
`parameters using block 10610 reconciliations and first invoking the FIG. 26 procedure for
`resolving any specified application information. LRDR information may be used to skip
`resentation processing
`(e.g. no presenting at MS whereabouts described by a LRDR
`therefore a skip return is checked for at block 10638-23. After resolving any application
`information, block 10638-21 finalizes the message and block 10638-23 invokes the video
`display interface for presenting the video if no skip was to be processed. In one embodiment,
`the MS display bufferis written to for display to the MS. Block 10638-21 is capable of many
`format transformations in order to get the video to a proper format. Depending on FIG.
`26 processing and block 10610 reconciliations, MS whereabouts information may be encoded
`as a ghosting
`image over the video of message field 9850 c. Active call line (channel) video pla
`was preferably handled with an API in FIG. 25A, and active call information preferably need not
`be used at block 10638-23, however block 10638-23 can interface for video output using
`architecture of FIG. 22. Processing leaves block 10638-23 for block 10638-39. If block 10638-
`19 determinesfield 9850 c is not for video, processing continues to block 10638-25.
`
`If block 10638-25 determines field 9850 c is for text, block 10638-27 prepares textual display
`parameters using block 10610 reconciliations andfirst invoking the FIG. 26 procedure for
`resolving any specified application information. LRDR information may be used to skip
`resentation processing
`(e.g. no presenting at MS whereabouts described bya LRDR
`therefore a skip return is checked for at block 10638-29. After resolving any application
`information, block 10638-27 finalizes the message and block 10638-29 presents text to the
`appropriate user interface object if no skip was to be processed. Block 10638-27 is capable of
`manyformat transformations in order to get the final form text. Active call line audio play was
`preferably handled with an API in FIG. 25A, and active call information preferably need not be
`used at block 10638-29, for example to annunciate the text during an active call, however
`block 10638-29 can interface for audio output using architecture of FIG. 22. Processing leaves
`block 10638-29 for block 10638-39. lf block 10638-25 determines field 9850 cis not for text
`
`processing continues to block 10638-31.
`
`EXHIBIT 1013 - PAGE 0307
`
`APPLE
`
`
`
`
`
`EXHIBIT 1013 - PAGE 0308
`
`APPLE
`
`
`
`
`
`EXHIBIT 1013 - PAGE 0309
`
`APPLE
`
`
`
`
`
`EXHIBIT 1013 - PAGE 0310
`
`APPLE
`
`
`
`
`
`EXHIBIT 1013 - PAGE 0311
`
`APPLE
`
`
`
`
`
`EXHIBIT 1013 - PAGE 0312
`
`APPLE
`
`
`
`
`
`EXHIBIT 1013 - PAGE 0313
`
`APPLE
`
`
`
`
`
`EXHIBIT 1013 - PAGE 0314
`
`APPLE
`
`
`
`
`
`EXHIBIT 1013 - PAGE 0315
`
`APPLE
`
`
`
`
`
`EXHIBIT 1013 - PAGE 0316
`
`APPLE
`
`
`
`
`
`EXHIBIT 1013 - PAGE 0317
`
`APPLE
`
`
`
`
`
`EXHIBIT 1013 - PAGE 0318
`
`APPLE
`
`
`
`
`
`EXHIBIT 1013 - PAGE 0319
`
`APPLE
`
`
`
`
`
`EXHIBIT 1013 - PAGE 0320
`
`APPLE
`
`