Summary information and/or updates to the documentation can be found on this page.
Pull Mode is a file transfer mechanism of theplayer, mainly used for updating the player content in particular scenarios, such as:
To use Pull Mode with the player, you need to set up acontent server andconfigure the player accordingly fromControl Center. Foradvanced uses, you must configure the player to load an iCalendar file (.ics) written using thesyntax described below.
Pull Mode main feature issmart content update, yet it can also be used to upload certain files from the player onto a remote server, or asRPC bridge.
This feature offers many options for automatic update of the content from remoteweb servers, at predefined intervals (hourly, daily etc.), according to a custom schedule, or on demand.
When activated, the player will do the following:
-deletelast option.This feature offers the possibility to transfer files, mainlylogs (seeScheduled Upload), from the player onto a specifiedcontent server.
To use Pull Mode with the player, you need to set up acontent server and configure the player accordingly fromControl Center. Foradvanced uses, a iCalendar (ics) file using aspecial syntax must be written and configured on the player.
In most cases, the server location would be protected and you'll need to configure the credentials to be used by the player to access that location.
On these player models, the manual settings have been grouped underContent >Scheduled Download, allowing for content retrival from a server with a click of a button or in a scheduled manner (daily or hourly).Seehow to configure Scheduled Download on the player.
The advanced Pull Mode functionality, driven by an iCalendar (.ics) file, can be enabled fromControl Center >Advanced Applications > Pull Mode - two options are available:
Pull Mode can be enabled fromHMP Control Center >Content Settings > Pull Mode tab, by selecting one of the three available options:
Pull Mode's implies using a public or private content server to host the content to be downloaded by the player viaHTTP protocol. Any standardweb server can be used, with or without support forWebDAV protocol. Most popular ones, like Apache or Microsoft IIS, support WebDAV, though usually it must be manually enabled; there are also some public WebDAV servers that can be used, for instancebox ormyDrive. Otherwise, some extra steps might be required forcontent servers without WebDAV support.
Web Distributed Authoring and Versioning (WebDAV) is an extension of theHypertext Transfer Protocol (HTTP) that allows clients to perform remote content authoring operations: create, change, move, and delete. The most important features of the WebDAV protocol include the maintenance of properties (such as the creation / modification date), namespace management, collections (creation, removal, and listing of various resources), and overwrite protection.
Theplayer uses WebDAV's PROPFIND requests to retrieve first the collection structure (also known as directory hierarchy) of the remote server location and then the properties (such as the creation / modification date) of each file, so that only new or modified files are downloaded.
Most popularweb servers, like Apache or Microsoft IIS, support WebDAV, though usually it must be manually enabled; there are also some public WebDAV servers that can be used. Here are some examples of web servers that can be used for Pull Mode:
| Web server | Notes |
|---|---|
| Apache | Apache HTTP Server is a free and open-source cross-platform web server, developed and maintained by an open community of developers under the auspices of the Apache Software Foundation. For details on how to enable mod_dav module on Apache HTTP Server Version 2.2, see the officialApache Module mod_dav page. |
| Microsoft IIS | Internet Information Services (IIS) is included with all Professional versions of Windows, so it can be used for testing, usually without further installation. However, by default, IIS is heavily locked down with regard to WebDAV.
See also:
|
| Box | Box (formerly Box.net), based in Redwood City, California, is a cloud content management and file sharing service for businesses. The company uses a freemium business model to provide cloud storage and file hosting for personal accounts and businesses. To use this WebDAV-enabled public server with Pull Mode, check out this tutorial:Use box.com as content server. Note that as of October 25, 2019,Box has ended WebDAV support. |
| MyDrive | MyDrive is a free and secure online storage service, based in Switzerland. It offers 512 MB space as a freemium service. To use this WebDAV-enabled, public server with Pull Mode, check out this tutorial:Use myDrive as content server. |
| NAS devices | Network-attached storage (NAS) is a file-level computer data storage server connected to a computer network, providing data access to a group of clients. NAS systems are networked appliances which contain one or more storage drives, often arranged into logical, redundant storage containers or RAID. SpinetiX does not recommend specific NAS servers, but mid-range manufacturers such as Synology, QNAP, and Netgear have performance NAS appliances which support WebDAV and are of a much more practical form factor than rack servers. They usually avoid unnecessary license costs. Two tutorials are available:Use Synology NAS as content server andUse QNAP NAS as content server. |
Content servers without WebDAV support can be used with Pull Mode, yet an additional step might be required to allow the player to get the list of files present on that location. Standard HTTP commands don't allow listing the content of a plain HTTP web server location for security reasons - the solution is to use anXML repository descriptor file andconfigure the player to point to this XML file instead of the root of the repository.
When using thePublish Location feature ofElementi M /X such an XML file (named "spx-listing.xml") is automatically generated within the root of the repository. Otherwise, either use a script that generates it (seesample PHP scripts below) or create it manually, following the instructions detailed on the "XML repository descriptor file" page.
For accurate control over the Pull Mode's actions to be performed by the player, create aniCalendar file (.ics) according to theAPI specification andconfigure it on the player. The ics file can be directly uploaded on the player from Control Center or it can be uploaded on a remote web server from which the player is instructed to retrieved it.
This ics file can be created usingElementi, Outlook, Google Calendar or manually within a text editor. It can be used to:
add_pull_action RPC command should be used to trigger a pull action dynamically, as it is more flexible than the method below.In some rare scenarios, you may want to configure Pull mode to checks for updates very regularly (e.g. 5 mins). In a normal setup, this would consume many network resources and put unnecessary load on theplayer. To avoid this:
Applies toHMP200,HMP130,HMP100.
WhenFusion mode is enabled on the device, you can still use Pull mode (firmware 2.2.3 or later is required), thus allowing a mix of Fusion and externally managed content, however that content cannot be directly accessed from Fusion like any other media. Instead you need to reference such files within acustom skin, acustom slide template, anhypermedia project or any combination of these.
The default destination for a Download operation is no longer the root folder, but a sub-folder named "publish". In casean ics file is used to control the Pull Mode, then make sure to specify the destination folder like this:-dest publish.
Also check theRPC server-side application samples for remote managing of the player.
SpinetiX is providing an automatic generation of XML description listing the content of a files folder (written in PHP) in order to make it easier for you to develop your own HTTP basedPull Mode server.
SpinetiX is providing a server side application for managing and testing the Pull Mode functionality of the players. Its purpose is to serve as an example and guide implementation for a simplePull Mode server based on an SQLite database.
This section details the syntax to use within theiCalendar file (.ics) used for advanced uses of Pull Mode.
Each action of Pull mode is described by an event (item, meeting) within the ICS file, and this event must have a certain format.
The following iCalendar fields are used to define the action:
SUMMARY (also referred to as:Title orSubject) - specifies the action to be performed, as one of the following:publish → to download aproject (or just some files) from a server to theplayer,upload → to upload different files from the player to a server,rpc → to enable sendingRPC statuses to a remote server (RPC Concentrator),inline-rpc → to trigger anRPC command.See more details onInline RPC.URL (also referred to as:URI,Location,Where) → specifies the URI of the action.DTSTART andDTEND (also referred to as:From & To,Start Time & End time) → specifies the starting and ending date and time for the event (or for the first event of a series if the recurring rule is used).RRULE → specifies the recurrence rule applying to this event.DESCRIPTION → specifies additional options for the upload or rpc actions.UID, VTIMEZONE, PRIORITY etc., can also be used within the ics file.The duration of an event represents the time period betweenDTSTART andDTEND, during which the player will try to execute the specified action (with other words, it's the validity period of the action, not the duration of the action itself, which can take far less or even more than the duration of the event).
DTEND is reached; at that point the action is discarded even if the action has not been executed.DTEND has not been reached).TheRRULE property defines a repeating pattern for recurring events. It is used in computing the recurrence set of instances for that event, generated by considering the initialDTSTART property along with theRRULE,RDATE, andEXDATE properties contained within the recurring component. This property should not be specified more than once.
Here is an example of an event with a duration of 5m 30s, that is repeating every 15 minutes:
DTSTART:20150101T000000 DTEND:20150101T000530RRULE:FREQ=MINUTELY;INTERVAL=15;WKST=SU
When using recurrence rules, make sure that the following limits are respected:
DTSTART:20150101T000000 DTEND:20150101T015959RRULE:FREQ=HOURLY;INTERVAL=2;WKST=SU
The "publish" action controls when the content of the device should be updated from a remote server. At the end of a successful publish-action, the content of the device is an exact copy of the content on the server and the mainindex.svg file is reloaded.
The following iCalendar fields are used to define the "publish" action:
SUMMARY:publishURL:server_locationDESCRIPTION:parameters\n), from the following:-deletelast-destfolderfolder path entered as destination must beURI encoded and must not start by "/" or "\" – if the specified folder does not exist on the player, it will be created.-norecurs-dest option is modified, and no other sub-folders are created or deleted.-statusintervaln_seconds(since 3.0.3 release)-statusnrfilesn_files(since 3.0.3 release)-statussizen_bytes(since 3.1.0 release)-feedbackuri [fulllisting]fulllisting is present, the content of theXML repository descriptor file. The data is sent as form-encoded key-value pairs; for instance, a PHP script would check the$_POST variable:print_r($_POST,true);/* result:Array( [starttime] => Thu, 01 Jan 1970 00:29:14 GMT [uploadedfiles] => 92 [nberrors] => 0 [statustype] => final)*/
-statusinterval,-statusnrfiles, or-statussize options are used together, apull_statusnotification is sent when all the conditions are reached.-dest publish, otherwise the publishing won't be executed.To instruct the player to check for updates/download a project from SpinetiX server, everyday starting at 6 AM (and up to 7 AM), the ICS file would look like this:
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Spinetix.com/NONSGML Spinetix Control Center//EN BEGIN:VEVENT UID:14d64d53-a926-4a71-848d-c78452b195fe DTSTART:20190101T060000 DTEND:20190101T070000RRULE:FREQ=DAILY;WKST=SUSUMMARY:publishURL: http://demo.spinetix.com/project/default/publish.xmlDESCRIPTION:-deletelastEND:VEVENT END:VCALENDARThe upload action can be used to upload different files (logs,snapshot images,report files) from the player to a remote server (usually a WebDAV enabled server, though a standard HTTP server can be used as well). This action doesn't affect in any way the content on the player.
The upload action uses the following fields:
SUMMARY:uploadURL:<server_location>DESCRIPTION:[<options>\n]<file>[ <destination_name>]<file>-accounting : to upload theaccounting log files.-alllogs : to upload all thelogs, both current (plain text) and past (archived).-content : to upload anXML repository descriptor file containing the list of files present on theplayer content server.-currentlogs : to upload the current logs (plain text).-log <name> : to upload a specific log file, being any of the regularlogs (e.g.,-log accounting.log,-log uploader.log etc.), but also the player'sinfo status file (-log info) or the system log (-log syslog).Added in 3.0.0 release.-logs : to upload the archived logs from the previous days; a check is done to make sure all past logs are uploaded. Note that at most 7 days of logs are kept onto the player.-pastlogs : to upload the past logs (archived); no checks are done to find out whether any of the logs have already been uploaded on the server.-report : to upload a standardreport file of the player.-snapshot : to upload the playersnapshot.<destination_name>%D : modification date of the uploaded file%H : modification time of the uploaded file%d : date of the upload%h : time of the upload%n : name of the source file%s : serial number of the player%x : extension of the source file%n-%s-%d-%h.%x.<options>-buffer true : to force the buffering of files sent to the server to ensure that the Content-Length header is valid (necessary for any upload to Amazon S3 or mydrive.ch for instance).Added in 3.0.6 release.-data <key> <value> : to specify akey=value pair to be added to the POST request. This option can be specified multiple times in case more key/value pairs need to be added. Note: using-data reset will remove all the key / value pairs previously set.Added in 3.0.6 release.-format <destination_name_syntax> : to specify a global file naming format, using the syntax specified above, for files specified using URIs; this doesn't apply to shortcuts.-header <name> <value> : to specify additional HTTP headers to be added to the PUT / POST request. This option can be used multiple times in case more headers need to be added. Note: using-header reset will remove all the headers previously set.Added in 3.0.6 release.-method post : to set the upload method asPOST (make sense in the case of a regular HTTP server), instead of the defaultPUT method.BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Spinetix.com/NONSGML Spinetix Control Center//EN BEGIN:VEVENT UID:14d64d53-a926-4a71-848d-c78234b195fg DTSTART:20190101T000000 DTEND:20190101T013000RRULE:FREQ=HOURLY;INTERVAL=2;WKST=SUSUMMARY:uploadURL: http://webdav.spinetix.com/logs/ DESCRIPTION:-buffer true\n-currentlogs\n-snapshot %s-%n.jpgEND:VEVENT END:VCALENDARThis command instructs the player to upload every two hours the player's current log files and snapshot (using a custom name format) onto a server. The option-buffer true applies to all uploads.
The RPC action allow configuring anRPC Concentrator through theICS file controlling the Pull Mode.This feature was added infirmware 3.0.0.
The following iCalendar fields are used to define the RPC action:
SUMMARY:rpcURL:RPC_Concentrator_uriDESCRIPTION:parameters\n), such as:-pollingn_seconds-notification-infon_seconds flags_object-restartedflags_object{ "all": true }.get_info command in theRPC API technical documentation.The Inline-RPC action allow usingRPC commands inside theICS file controlling the Pull Mode.This feature was added infirmware 3.0.0.
The following iCalendar fields are used to define the inline RPC command:
SUMMARY:inline-rpcDTSTART:datetime andDTEND:datetimeRRULEDESCRIPTIONFor instance, to trigger a restart of the player each night at 1 AM, add an event like this:
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Spinetix.com/NONSGML Spinetix Control Center//EN BEGIN:VEVENT UID:14d64d53-a926-4a71-848d-c78452b345fe DTSTART:20220801T010000 DTEND:20220801T013000SUMMARY:inline-rpcDESCRIPTION: {"method":"restart","params":[],"id":1}RRULE:FREQ=DAILY;WKST=SU END:VEVENT END:VCALENDAR
404: File Not Found errors: Ensure that the not-found file is added as a valid MIME type for the WebDAV server you are using.The extended logging of Pull Mode actions should only be enabled when asked by SpinetiX Support.
ForHMP400/W,HMP350,HMP300, andiBX players, follow these steps:
<?xml version="1.0"?><configurationversion="2.0"><pullmode-logs-level>trace</pullmode-logs-level></configuration>
trace" with "info"; apply it onto the player to set the log level back to normal.ForHMP200,HMP130, andHMP100 devices, follow this procedure: