Skip to content

Endpoints

To use the Omikrons functions a Secure Websocket connection must be established. Where to connect is provided by the Omega Server. All entries are split into Iota & Client. As the Omikron connects the Iota and Client by passing messages from one to the other all Communication from Iota to Client has to contain a receiver_id The Omikron will add a sender_id to Messages from Client to the Iota.

The receiver_id and sender_id of the Omikron server are 22222222-2222-2222-2222-222222222222.

Any message to the Omikron will be ignored until Identification.

{
"id": "<uuid>",
"type": "identification",
"log": {
"message": "Iota identifying",
"log_level": 0
},
"data": {
"iota_id": "<uuid>",
"user_ids": "<uuid>,<uuid>,<uuid>,<uuid>,<uuid>,"
}
}
{
"id": "<uuid>",
"type": "identification_response",
"log": {
"message": "Iota identified",
"log_level": 0
},
"data": {
"accepted_profiles": "<uuid>,<uuid>,<uuid>,<uuid>,",
"denid_profiles": "<uuid>"
}
}

{
"id": "<uuid>",
"type": "identification",
"log": {
"message": "Client identifying",
"log_level": 0
},
"data": {
"iota_id": "<iota-id>",
"user_id": "<user-id>",
"private_key_hash": "<hex-sha265>"
}
}
{
"id": "<uuid>",
"type": "identification_response",
"log": {
"message": "Client identified",
"log_level": 0
},
"data": {
"acceppted": boolean
}
}

Ping comes from the Client or Iota and the Omikron returns a Pong. The Ping should contain the last ping, the Pong contains the last ping of the opposite.

{
"id": "<uuid>",
"type": "ping",
"log": {
"message": "Ping from Iota",
"log_level": -1
},
"data": {
"last_ping": long
}
}
{
"id": "<uuid>",
"type": "pong",
"log": {
"message": "Pong to Iota",
"log_level": -1
},
"data": {
"user_ping": {
"<user-id>": long,
"<user-id>": long
}
}
}
{
"id": "<uuid>",
"type": "ping",
"log": {
"message": "Ping from Client",
"log_level": -1
},
"data": {
"last_ping": long
}
}
{
"id": "<uuid>",
"type": "pong",
"log": {
"message": "Pong to Iota",
"log_level": -1
},
"data": {
"last_ping": long
}
}
{
"id": "<uuid>",
"type": "identification",
"log": {
"message": "Client identifying",
"log_level": 0
},
"data": {
"call_id": "<call-id>",
"user_id": "<user-id>",
"private_key_hash": "<hex-sha265>"
}
}
{
"id": "<uuid>",
"type": "identification_response",
"log": {
"message": "Client identified",
"log_level": 0
},
"data": {
"acceppted": boolean,
"user_ids"{
"<user_id>": call_state,
"<user_id>": call_state
}
}
}

A call state can be

active, streaming, muted, deafed;
{
"id": "<uuid>",
"type": "client_connected",
"log": {
"message": "",
"log_level": 0
},
"data":{
"user_id": "<user_id>",
"call_state": call_state,
"user_state": user_state
}
}
{
"id": "<uuid>",
"type": "client_changed",
"log": {
"message": "",
"log_level": 0
},
"data":{
"call_state": call_state, // if a value is missing
"user_state": user_state // it is not changed
}
}
{
"id": "<uuid>",
"type": "client_changed",
"log": {
"message": "",
"log_level": 0
},
"data":{
"user_id": "<user_id>",
"call_state": call_state, // if a value is missing
"user_state": user_state // it is not changed
}
}