omnistream encoders / decoders - atlona · 2020. 7. 7. · atlona anals omnistream atoni atoni...

20
Atlona Manuals OmniStream AT-OMNI-512 AT-OMNI-521 AT-OMNI-121 AT-OMNI-122 AT-OMNI-111 AT-OMNI-112 Encoders / Decoders OmniStream JSON Application Programming Interface 1.2.12

Upload: others

Post on 18-Aug-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

Atlona Manuals OmniStream

AT-OMNI-512 AT-OMNI-521

AT-OMNI-121 AT-OMNI-122

AT-OMNI-111 AT-OMNI-112

Encoders / DecodersOmniStream

JSON Application Programming Interface1.2.12

Page 2: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

AT-OMNI-1XX / AT-OMNI-5XX 2

Version Information

Version Release Date Notes

1 Sep 2019 Initial release

Page 3: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

AT-OMNI-1XX / AT-OMNI-5XX 3

Table of Contents

Table of Contents 3

OmniStream JSON API 4WebSockets 4Authentication 4

User Roles 4Error Handling 5Messages 5

config_get 5config_set 6Short Description of Main Nodes 8Methods 10

Asynchronous Use 12FormalSpecification 12Examples 13

First Contact with a Device 14Getting Information on an HDMI Input Port 14Getting Information on an HDMI Output Port 14ConfiguringanEncoder 15ConfiguringaDecoder 16Getting Alarms 17Notifications 18Firmware Upgrades 19Rebooting OmniStream 19

Page 4: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

AT-OMNI-1XX / AT-OMNI-5XX 4

OmniStream JSON API

ThisdevicecanbeconfiguredandmonitoredusinganAPIdesignedaroundWebSocketsandJSON.

This document provides an introduction to how to use this protocol to interact with the device.

TheJSONAPIoffersastructuredwaytoretrieveandmanipulatetheconfigurationofOmniStreamdevices.Theconfigurationisorganizedintoanumberofdifferentconfigurationnodes,whichcanbeindividuallyretrievedusing‘config_get’callsandindividuallychangedusing‘config_set’calls.Foroperationswhichdonotfitneatlyintothisparadigm(thingslike‘rebootdevice’)theJSONAPIalsooffersthe‘method’call.

In order to identify the user and determine if he/she is allowed to perform the requested action every requestmustcontaintheusernameandpasswordoftheuser.Eachrequest,regardlessoftype,mustcontaina‘username’anda‘password’field.

TheAPIusesWebSocketsasatransportlayer.TheWebSocketlayerprovidesfull-duplex,reliablemessage-orientedcommunication.

EachrequestconsistsofaJSONobject,sentasaWebSocketmessage.Eachrequestwillgetasinglemessageanda JDON object as a reply.

The API makes no use of WebSocket subprotocols.

Thelifetimeoftheconnectionhasnomeaningwithintheprotocol.It’spossibletosendmultiplerequestswithinasingleconnection,ortosetupanewWebSocketconnectionforeachrequest.Forefficiencyreasonsit’srecommendedtokeeptheWebSocketconnectionopenandsendmultiplerequestsusingthesameconnection,butthisisnotmandatory.

See https://www.rfc-editor.org/rfc/rfc6455.txtfortheWebSocketspecification.

See http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdffortheJSONspecification.

TherearetwoWebSocketchannelsavailableonthedevice,oneforsettingandgettingconfigurationitems(ws://<IP>/wsapp)andtheotheroneforgettingthenotifications(ws://<IP>/notifications),whereIPcorrespondsto the IP address of the device. It is also possible to communicate in TLS by using respectivelywss://<IP>/wsappfortheconfigurationupdatesandwss://<IP>/notificationsforreceivingthenotifications.

WebSockets

Authentication

Each user is assigned a role when it is created. This role determines what the user is allowed or not allowedtodo.Therearetworoles:‘administrator’and‘operator’.

The‘administrator’userisallowedtodoeverything.The‘operator’usercanquerythestatusofthedevice,butcannotmakechanges.Inotherwords:userswiththe‘administrator’rolecanmakeanychangeonthedevice(using‘config_get’,‘config_set’or‘method’calls).Userswiththe‘operator’rolecanonlyexecute‘config_get’calls.Any‘config_set’or‘method’callwillberejected.

User Roles

Page 5: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

AT-OMNI-1XX / AT-OMNI-5XX 5

OmniStream JSON API

Error Handling

Messages

Everyreplyfromthedevice,regardlessoftype,willincludean‘error’field.Ifthisissettotruetherequestfailed.Inthatcasean‘error_message’fieldwillalsobepresentanddetailsthereasonforthefailure.

Forexample,iftherequestdidnotcontainacorrectusername/passwordthereplymightlooklikethis:

The‘config_get’callisusedtoretrieveinformationfromthedevice.Ittakesonlyasingleparameter:thenameoftheconfigurationnodetoretrieve.

Therequestedinformationcanbefoundinthe‘config’field.Thestructureofthereplydependsontherequestednode.

Request:{ “config_get”: “hdmi_input”, “password”: “”, “username”: “admin”}

Reply:{ “error”: true, “error_message”: “Invalid username/password”}

Request:{ “config_get”: “auth”, “password”: “3243F6A8885”, “username”: “admin”}

Reply:{ “config”: [{ “passwordHash”: “$6$7r0hBdwSSfSdl0kZ$UjGmDw6kEgpR3zpQLJ.GOXfF5/”, “role”: “administrator”, “username”: “admin” }, { “passwordHash”: “$6$YvpiJ2NaW1fF6zKW$rEv0qlgOwiAhNyB.Bgzcf6DCa/”, “role”: “operator”, “username”: “operator” } ], “error”: false}

config_get

Page 6: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

AT-OMNI-1XX / AT-OMNI-5XX 6

OmniStream JSON API

Configurationchangesaremadethroughthe‘config_set’call.

The‘config_set’callhastwoimportantfields:‘name’givesthenameoftheconfigurationnodetochange,the‘config’fieldhastheconfiguration(asaJSONobjectorlist)toapply.

Thecontentofthe‘config’nodesharethesamestructureasthecontentofthe‘config’nodeinthereplytothe‘config_get’call,exceptthatitdoesnotincludetheread-onlyfields.

Notallfieldsmustbespecifiedintherequest.Omittedfieldsarenotmodified.Inotherwords,itispossibletomakea‘config_set’callwhichonlymodifiesasinglefieldbyonlyincludingthatfield.

Notethatsomefieldsaremandatoryintherequestsothatthedeviceisabletodeterminewhichconfigurationshouldbechanged.Forexample,the‘ip_input’nodeconsistsofalistofip_inputobjects.Eachobjectisidenti1edbyitsname,sothe‘name’fieldmustalwaysbepresent.Ifitweretobeomittedthedevicewouldbeunabletodeterminewhichip_inputobjecttomodify.

Theexample,onthenextpage,disablesasingleip_inputwithoutmodifyinganyofitsotherfields:

Request:{ “config_set”: { “config”: [{ “enabled”: true, “interface”: “eth1”, “multicast_address”: “230.0.0.1”, “name”: “ip_input0”, “port”: 5004 }, { “enabled”: true, “interface”: “eth1”, “multicast_address”: “230.0.0.2”, “name”: “ip_input1”, “port”: 5008 } ], “name”: “ip_input” }, “password”: “3243F6A8885”, “username”: “admin”}

Reply:{ “error”: false}

config_set

Page 7: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

AT-OMNI-1XX / AT-OMNI-5XX 7

OmniStream JSON API

Request:{ “config_set”: { “config”: [{ “enabled”: true, “name”: “ip_input0” }], “name”: “ip_input” }, “password”: “3243F6A8885”, “username”: “admin”}

Reply:{ “error”: false}

Request:{ “config_set”: { “config”: [{ “enabled”: true }], “name”: “ip_input” }, “password”: “3243F6A8885”, “username”: “admin”}

Reply:{ “error”: true, “error_message”: “IP Input not found”}

Ifthe‘name’fieldisomitted,thenanerrorisreturned.

Allchangesmadeareautomaticallysaved.There’snoneedtotakeanyfurtheractiontoensurethatthechanges will remain after a reboot. Note that there is a small delay between making the change and havingitsavedpersistently.Itisalwayssafetorestartthedeviceusingthe‘reboot’methodcall.Thispersistsanypendingconfigurationchangesbeforerestartingthedevice.

Page 8: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

AT-OMNI-1XX / AT-OMNI-5XX 8

OmniStream JSON API

Short Description of Main Nodes

The‘config_get’and‘config_set’callsareusedtorespectivelyretrieveandpushconfigurationparametersfrom/tothedevice.Theconfigurationnodesarefullydescribedinthe‘schema.json’file.Hereafteryoucan1ndatablewiththemainnodesavailable(referencelistisfoundin_schema.json).Themainnodesareusedtoconfigureorretrieveinformationofthedevice.

Nodes Short description Target

system_info General system information Both

audio_digital_input A list of audio digital input available on the system Both

hdmi_input ArraywithdescriptionofHDMIinputport(s);oneportperelement Encoder

video_generator A list of video generators available on this system Both

audio_generator A list of audio generators available on this system Both

edids Array with EDID of the displays Decoder

hdmi_output ArraywithdescriptionofHDMIoutputport(s);oneportperelement Decoder

vc2_encoder ArraywithdescriptionofVC-2encoder(s)Oneencoderperelement Encoder

j2k_encoder ArraywithdescriptionofJ2Kencoder(s);oneencoderperelement Encoder

sessions Arraywithdescriptionofsession,consistingofvideo,audioand/orauxstreams;onesessionperelement

Encoder

ip_input Describeanip_input,whichisasinglevideo,audioorauxinputstream Decoder

net Deprecated node Both

net2 Arraywithdescriptionofnetworkinterface(s);oneinterfaceperelement Both

serial_port Arrayofhardwareconfigurationofserialport(s);oneportperelement Both

serial Arrayofconfigurationofserialport(s);oneportperelement Both

encodercommands Arrayofconfigurationofcommand(s)Onecommandperelement Encoder

decodercommands Arrayofconfigurationofcommand(s)Onecommandperelement Decoder

logo_library Arrayofconfigurationofcommand(s)Onecommandperelement Both

logo_insertion Arrayofconfigurationoflogoinsertion(s) Both

text_insertion Arrayofconfigurationoftextinsertion(s) Both

alarms Arraywithalarm(s);onealarmentryperelement Both

users Arrayofde1nition(s)ofuser;oneuserperelement Both

packetdropper Arrayofconfigurationofpacketdropper(s);onedropperperelement Encoder

ptp ArrayofconfigurationofPTP Both

license Configurationoflicenses Both

Page 9: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

AT-OMNI-1XX / AT-OMNI-5XX 9

OmniStream JSON API

Besidesthedefinitionofmainnodes,theJSONschemaalsoincludesdefinitionofnodesinthemainnodes:

Nodes Short description

timezone Thetimezonesavailableonthesystem

audio_generator_format Configuration of format for audio generator

edid The EDID of the display device. Read-only

stream Configurationofnetworkstream(video,audiooraux)

sap ConfigurationofSAPannouncement

sap_stream The video stream information

sap_listener Received SAP sessions

command ConfigurationofserialorCECcommand

alarm Alarmentry,indicatingwhenanalarmwasraisedorcleared

video_status Status of video activity

audio_status Status of audio activity

scrambling Configurationofstreamscrambling

backup_ip_input Backupinputconfiguration

feature Information on licensed feature

Page 10: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

AT-OMNI-1XX / AT-OMNI-5XX 10

OmniStream JSON API

The‘method’callisgenerallyusedtomakechangesonthedevicewhichmaynotbepersistent.Forexample,it’susedtorebootthedevice,resetittoitsfactorydefaultsortorequestthelistofavailableconfignodesfor‘config_get’call.

The‘method’callincludesanobjectwhosenamedeterminestheactiontobeperformed.Thefieldsinsidethe object can be considered the arguments to the method call.

The‘method’JSONobjectmustcontainexactlyonesub-object.

Notethatsomecalls,like‘factory_reset’or‘reboot’rebootthedevice,sotheWebSocketconnectionisclosedby the device before a reply is sent.

Thetableonthenextpageliststheavailablemethods.Thereferencelistcanbefoundintheapi-schema.jsonfile,available on the Atlona web site.

Methods

Request: { “method”: { “introspect”: { “type”: “config_get” } }, “password”: “3243F6A8885”, “username”: “admin”}Reply: { “error”: false, “reply”: [ “alarms”, “audio”, “auth”, “commands”, “hdmi_input”, “net”, “packetdropper”, “serial”, “serial_port”, “sessions”, “systeminfo”, “encoder” ]}

Page 11: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

AT-OMNI-1XX / AT-OMNI-5XX 11

OmniStream JSON API

Method Short Descriptionreboot Reboot the deviceget_debug_info GenerateadebugfileandreturnanURLindicatingwhereitcanbefoundintrospect Enumeratetheavailableconfig_set/config_getnodesormethodcallsfactory_reset Reset the device to factory defaults and rebootexport_config Exportthecurrentconfigurationimport_config Importanewconfigurationimport_config_file Importanewconfigurationfromanuploadedfilelist_config Listtheavailableconfigurationstrigger_command Trigger a commandtrigger_serial Trigger a command on serial port Decoder onlytrigger_cec Trigger a CEC command on the speci1ed HDMI port Decoder onlybackup Trigger a change to backup or reversion to primaryidentify Causethedevicetoemitan“identify”notificationclear_alarms Clear all of the inactive alarmsadd_license Add a new license to the deviceupgrade GivethenameofthefilereturnedbythewebserverafteritwasPOSTedadd_logo Add a logo on top of the video streamdelete_logo Remove a logo previously uploaded on the deviceadd_command Add a new command to the devicedelete_command Delete a new command from the deviceadd_encodergroup_member Add a member to the encoder group of a sessionactivate_encodergroup Activate an encoder group of a sessiondelete_encodergroup_member Delete a member from the encoder group of a sessionadd_edid Add a new EDID on the devicedelete_edid Delete an EDID from the deviceset_ssl_certi1cate Add a SSL certi1cate to the device

Page 12: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

AT-OMNI-1XX / AT-OMNI-5XX 12

OmniStream JSON API

Asynchronous Use

Optionallyeachrequest,ofanytype,mayalsoincludean‘id’fieldwithanarbitrarystringasvalue.Thisstringisselectedbytheclient,andreturnedinthe‘id’fieldofthereply.Thisisusefulforasynchronousimplementationsas it allows them to match the reply with the request.

Thedevicedoesnotparseoralterthevalueofthe‘id’field.Itcanbesettoanyvalue.Ensuringitsuniquenessacross requests is the responsibility of the client.

Request: { “id”: “foo”, “config_set”: { “config”: [{ “enabled”: true, “name”: “ip_input0” }], “name”: “ip_input” }, “password”: “3243F6A8885”, “username”: “admin”}Reply: { “error”: false, “id”: “foo”}

FormalSpecification

TheformalspecificationoftheJSONstructurescanberetrievedfromthedevice.

TherearetwoJSONSchemafiles:

• http://<IP>/schema/api_schema.json• http://<IP>/schema/schema.json

Thefirstdefinesthestructureofthe‘config_set’,‘config_get’and‘method’callsandreferstothesecondforthestructureofconfigurationreturnedby‘config_get’orsetby‘config_set’requests.

See http://json-schema.org/formoreinformationaboutJSONschemadefinitions.

Page 13: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

AT-OMNI-1XX / AT-OMNI-5XX 13

OmniStream JSON API

Examples

ThedevicesuseWebSocketandJSONAPIfortheirconfiguration.Onthehostsidetherearealotofpossibilitiesforimplementingaclientthatcancommunicatewiththedevice.Forinstance,duringthedevelopmentweused Python as programming language (https://www.python.org/)foraproofofconcept.Thefollowingcodehas been tested with Python version 2.7.

Whenexecuted(andadeviceisconnectedonthenetworkwiththeexpectedIPaddress),theresultwouldbesimilarto the following:

Thefollowingsections,beginningonthenextpage,provideexamplesofJSONrequestthatforsettingorgettingparameters from a device.

import osimport sysimport simplejson # pip install simplejsonimport websocket # pip install websocket - client

BOARD_IP = “192.168.1.203”url = “ws://{}/wsapp/”.format(BOARD_IP)

ws = websocket.WebSocket()ws.connect(url)

request = {}request[“username”] = “admin”request[“password”] = “3243F6A8885”request[“config_get”] = “systeminfo”json_request = simplejson.dumps(request, sort_keys = True, indent = 4 * ‘ ‘)

ws.send(json_request)reply = ws.recv()

print “Reply:”, reply

{ “config”: { “datetime”: “1970-01-01T05:08:24.000UTC”, “description”: “”, “detailedfirmwareversion”: “SW: trunk.3568, FPGA: 1.0 (r3573)”, “firmwareversion”: “trunk”, “hostname”: “DUT-001”, “location”: “”, “model”: “decoder”, “ntpserver”: “”, “temperature”: 37.5, “type”: “Decoder”, “uptime”: 18504 }, “error”: false}

Page 14: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

AT-OMNI-1XX / AT-OMNI-5XX 14

OmniStream JSON API

First Contact with a Device

Getting Information on an HDMI Input Port

Getting Information on an HDMI Output Port

Toretrieveinfoonthesystem,theJSONrequestis:

ToretrieveinfoontheHDMIinputport(s)ofanencoder,theJSONrequestis:

ToretrieveinfoontheHDMIoutputport(s)ofadecoder,theJSONrequestis:

{ “config_get”: “system_info”, “password”: “3243F6A8885”, “username”: “admin”}

{ “config_get”: “hdmi_input”, “password”: “3243F6A8885”, “username”: “admin”}

{ “config_get”: “hdmi_output”, “password”: “3243F6A8885”, “username”: “admin”}

Page 15: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

AT-OMNI-1XX / AT-OMNI-5XX 15

OmniStream JSON API

ConfiguringanEncoder

{ “config_set”: { “name”: “vc2”, “config”: [{ “name”: “vc2_encoder1”, “bitrate”: 700, “input”: “hdmi_input1” }, { “name”: “vc2_encoder2”, “bitrate”: 700, “input”: “hdmi_input2” } ] }, “password”: “3243F6A8885”, “username”: “admin”}

{ “config_set”: { “name”: “sessions”, “config”: [{ “name”: “session1”, “interface”: “eth1”, “video”: { “encoder”: “vc2_encoder1”, “stream”: { “enabled”: true, “destination_address”: “226.0.1.10”, “destination_port”: 5004 } }, “audio”: { “encoder”: “hdmi_input1”, “stream”: { “enabled”: true, “destination_address”: “226.0.1.11”, “destination_port”: 5008 } }, “scrambling”: { “enabled”: true, “key”: “CAFE7070800800FFD00D0001BABADEDEBABE0007CAFECAFE”

1. Verify that the HDMI input ports have been enabled.

2. Configurethevideoencoder:

3. Configurethesession:

(continuedonnextpage)

Page 16: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

AT-OMNI-1XX / AT-OMNI-5XX 16

OmniStream JSON API

}, “sap”: { “enabled”: true, “name”: “Demo_1”, “description”: “Demo stream session”, “originator”: “Encoder1”, “frequency”: 10 } }] }, “password”: “3243F6A8885”, “username”: “admin”}

{ “config_set”: { “name”: “ip_input”, “config”: [{ “name”: “ip_input1”, “enabled”: true, “interface”: “eth1”, “port”: 5004, “multicast”: { “address”: “226.0.1.10” } }, { “name”: “ip_input2”, “enabled”: true, “interface”: “eth1”, “port”: 5008, “multicast”: { “address”: “226.0.1.11” } }, { “name”: “ip_input3”, “enabled”: false, “interface”: “eth1”, “port”: 5012, “multicast”: { “address”: “” } }, { “name”: “ip_input4”, “enabled”: true, “interface”: “eth2”,

ConfiguringaDecoder

1. ConfiguretheIPinputs:

(continuedonnextpage)

Page 17: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

AT-OMNI-1XX / AT-OMNI-5XX 17

OmniStream JSON API

“port”: 5004, “multicast”: { “address”: “226.0.2.10” } }, { “name”: “ip_input5”, “enabled”: true, “interface”: “eth2”, “port”: 5008, “multicast”: { “address”: “226.0.2.11” } }, { “name”: “ip_input6”, “enabled”: false, “interface”: “eth2”, “port”: 5012, “multicast”: { “address”: “” } } ] }, “password”: “3243F6A8885”, “username”: “admin”}

{ “config_get”: “hdmi_output”, “password”: “3243F6A8885”, “username”: “admin”}

2. ConfiguretheHDMIoutputs:

Getting Alarms

Toretrievealistofalarms,theJSONrequestis:

{ “config_get”: “alarms”, “password”: “3243F6A8885”, “username”: “admin”}

Page 18: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

AT-OMNI-1XX / AT-OMNI-5XX 18

OmniStream JSON API

Notifications

ItispossibletoobtainnotificationsfromthedevicethroughaWebSocketwhichislocatedatthefollowingaddress:ws://<IP>/notifications.Anotificationisemittedwhenasettingschangeorwhenaneventoccurs.ThreetypesofnotificationcanbeemittedontheWebSocket.Wegivealistandsomeexamplesbelow:

{ “alarm”: { “active”: true, “description”: “Input hdmi_input1 is HDCP encrypted, but this stream is not scrambled”, “name”: “HDCP encrypted input (video) on session1”, “timestamp”: “1970-01-01T18:49:59.000UTC” }}

{ “config_update”: { “name”: “session” }}

{ “config_update”: { “name”: “hdmi_input1” }}

{ “identify”: {}}

1. Alarmnotification:forinstanceduetoabadconfiguration,thefollowingalarmisemittedwhenonetriestostream an HDCP content when the scrambling is disabled:

2. Configurationupdatenotification:achangeinthesettingshappened.Forinstance,onedoaconfig_setofthesession parameters:

Another example might be when one of the HDMI sources is connected or disconnected from the encoder:

3. Identifynotification:arequestforthedevicetoidentifyitself:

Page 19: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

AT-OMNI-1XX / AT-OMNI-5XX 19

OmniStream JSON API

Firmware Upgrades

Rebooting OmniStream

Theupgradeofadeviceisperformedwitha.vpup2file.First,the.vpup2filehastobeuploadedonthedevice. ThisisdonewithanuploadrequestthroughHTTPtofollowingaddress:http://__device_IP_address__/upload. Inthereplyofthisrequestthelocalnameof.vpup2fileisprovided.InasecondstepaJSONrequestmustbesentover the WebSocket. The request should contain the local name returned by the http server:

TorebootOmniStream,theJSONrequestis:

{ “upgrade”: “__local_name_of_vpup_file__”, “password”: “3243F6A8885”, “username”: “admin”}

{ “method”: { “reboot”: {} }, “password”: “3243F6A8885”, “username”: “admin”}

Page 20: OmniStream Encoders / Decoders - Atlona · 2020. 7. 7. · Atlona anals OmniStream ATONI ATONI ATONI ATONI ATONI ATONI Encoders / Decoders OmniStream JSON Application Programming

© 2019 Atlona Inc. All rights reserved. “Atlona” and the Atlona logo are registered trademarks of Atlona Inc. All other brand names and trademarks or registered trademarks are the property of their respective owners. Pricing, specifications and availability subject to change without notice. Actual products, product images, and online product images may vary from images shown here.

Toll free US International

atlona.com • 877.536.3976 • 41.43.508.4321