SlideShare a Scribd company logo
Decentralised Communication with
Matrix
matthew@matrix.org
http://www.matrix.org
The problem:
Users are locked into proprietary
communication apps.
They have no control over their
data or their privacy.
Worse still, each app is a closed
silo – forcing users to install
redundant apps and fragmenting
their comms.
I want to communicate with the
apps and services I trust.
6
Not be forced into specific services
chosen by my contacts.
7
If email gives me that flexibility,
why not VoIP and IM?
8
Enter Matrix
9
Open
Decentralised
Persistent
Eventually Consistent
Cryptographically Secure
Messaging Database
with JSON-over-HTTP API.
10
Matrix is for:
Group Chat (and 1:1)
WebRTC Signalling
Bridging Comms Silos
Internet of Things Data
…and anything else which needs to
pubsub persistent data to the world.
11
Matrix was built to liberate your
scrollback.
12
1st law of Matrix:
Conversation history and Group
comms are the 1st class citizens.
13
2nd law of Matrix:
No single party own your
conversations – they are shared
over all participants.
14
3rd law of Matrix:
All conversations may be
end-to-end encrypted.
15
Matrix is:
• Non-profit Open Source Project
• De-facto Open Standard HTTP APIs:
– Client <-> Server
– Server <-> Server
– Application Services <-> Server
• Apache-Licensed Open Source Reference Impls
– Server (Python/Twisted)
– Client SDKs (iOS, Android, JS, Angular, Python, Perl)
– Clients (Web, iOS, Android)
– Application Services (IRC, SIP, XMPP, Lync bridges)
• A whole ecosystem of 3rd party servers, clients & services
16
What does it look like?
17
Demo time!
http://matrix.org/blog/try-matrix-now
18
The Matrix Ecosystem
The Matrix Specification (Client/Server API)
client-sideserver-side
Other Servers and
Services
Synapse
(Reference Matrix
Server)
Matrix Application
Services
Other Clients
Matrix iOS
Console
MatrixKit (iOS)
matrix-ios-sdk
Matrix
Web
Console
matrix-
angular-
sdk
matrix-js-sdk
Android Console
matrix-android-
sdk
matrix-
react-
sdk
Matrix Architecture
Clients
Home
Servers
Identity
Servers
Application
Servers
Functional Responsibility
• Clients: Talks simple HTTP APIs to homeservers to push and
pull messages and metadata. May be as thin or thick a
client as desired.
• Homeservers: Stores all the data for a user - the history of
the rooms in which they participate; their public profile
data.
• Application Services: Optional; delivers application layer
logic on top of Matrix (Gateways, Conferencing, Archiving,
Search etc). Can actively intercept messages if required.
• Identity Servers: Trusted clique of servers (think DNS root
servers): maps 3rd party IDs to matrix IDs.
21
How does it work?
22
http://matrix.org/#about
The client-server API
To send a message:
curl -XPOST -d '{"msgtype":"m.text", "body":"hello"}'
"https://alice.com:8448/_matrix/client/api/v1/rooms/ROOM_
ID/send/m.room.message?access_token=ACCESS_TOKEN"
{
"event_id": "YUwRidLecu"
}
23
The client-server API
To set up a WebRTC call:
curl -XPOST –d '{
"version": 0, 
"call_id": "12345”, 
"offer": {
"type" : "offer”,
"sdp" : "v=0rno=- 658458 2 IN IP4 127.0.0.1…"
}
}'
"https://alice.com:8448/_matrix/client/api/v1/rooms/ROOM_
ID/send/m.call.invite?access_token=ACCESS_TOKEN"
{ "event_id": "ZruiCZBu” } 24
The client-server API
To persist some MIDI:
curl -XPOST –d '{
"note": "71",
"velocity": 68,
"state": "on",
"channel": 1,
"midi_ts": 374023441
}'
"https://alice.com:8448/_matrix/client/api/v1/rooms/ROOM_
ID/send/org.matrix.midi?access_token=ACCESS_TOKEN"
{ "event_id": “ORzcZn2” }
25
The server-server API
curl –XPOST –H ‘Authorization: X-Matrix origin=matrix.org,key=”898be4…”,sig=“j7JXfIcPFDWl1pdJz…”’ –d ‘{
"ts": 1413414391521,
"origin": "matrix.org",
"destination": "alice.com",
"prev_ids": ["e1da392e61898be4d2009b9fecce5325"],
"pdus": [{
"age": 314,
"content": {
"body": "hello world",
"msgtype": "m.text"
},
"context": "!fkILCTRBTHhftNYgkP:matrix.org",
"depth": 26,
"hashes": {
"sha256": "MqVORjmjauxBDBzSyN2+Yu+KJxw0oxrrJyuPW8NpELs"
},
"is_state": false,
"origin": "matrix.org",
"pdu_id": "rKQFuZQawa",
"pdu_type": "m.room.message",
"prev_pdus": [
["PaBNREEuZj", "matrix.org"]
],
"signatures": {
"matrix.org": {
"ed25519:auto": "jZXTwAH/7EZbjHFhIFg8Xj6HGoSI+j7JXfIcPFDWl1pdJz+JJPMHTDIZRha75oJ7lg7UM+CnhNAayHWZsUY3Ag"
}
},
"origin_server_ts": 1413414391521,
"user_id": "@matthew:matrix.org"
}]
}’ https://alice.com:8448/_matrix/federation/v1/send/916d630ea616342b42e98a3be0b74113 26
Application Services (AS)
• Extensible custom application logic
• They have privileged access to the server (granted by
the admin).
• They can subscribe to wide ranges of server traffic
(e.g. events which match a range of rooms, or a range
of users)
• They can masquerade as 'virtual users'.
• They can lazy-create 'virtual rooms'
• They can receive traffic by push.
27
Uses for AS API
• Gateways to other comms platforms
e.g.: all of Freenode is available at #freenode_#foo:matrix.org
• Data manipulation
– Filtering
– Translation
– Indexing
– Mining
– Visualisation
– Orchestration
• Application Logic (e.g. bots, IVR services)
• …
28
A trivial application service
import json, requests # we will use this later
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route("/transactions/<transaction>", methods=["PUT"])
def on_receive_events(transaction):
events = request.get_json()["events"]
for event in events:
print "User: %s Room: %s" % (event["user_id"], event["room_id"])
print "Event Type: %s" % event["type"]
print "Content: %s" % event["content"]
return jsonify({})
if __name__ == "__main__":
app.run()
29
Matrix Bridging with ASes
Existing App
Application
Service
3rd party
Server
3rd party
Clients
matrix-react-sdk
• All new web client SDK!
• Sensible separation of:
– HTTP API wrapper
– Matrix client state machine
– UI business logic
– UI look & feel (skin)
• Either customise per-component
• …or fork your own skin.
31
End to End Encryption with Olm
• Apache License C++11 implementation of an
Axolotl-style ratchet, exposing a C API.
• Axolotl is Open Whisper System's better-than-
OTR cryptographic ratchet, as used by
TextSecure, Pond, WhatsApp etc.
• Supports encrypted asynchronous group
communication.
• 130KB x86-64 .so, or 208KB of asm.js
32
33
Olm C API
Account
• Keys
Session
• Initial Key Exchange
Ratchet
• Encrypt
• Decrypt
Crypto
• Curve25519
• AES
• SHA256
Group chat
• Adds a 3rd type of ratchet, used to encrypt
group messages.
• Establish 'normal' 1:1 ratchets between all
participants in order to exchange the initial
secret for the group ratchet.
• All receivers share the same group ratchet
state to decrypt the room.
34
Flexible privacy with Olm
• Users can configure rooms to have:
– No ratchet (i.e. no crypto)
– Full PFS ratchet
– Selective ratchet
• Deliberately re-use ratchet keys to support paginating
partial eras of history.
• Up to participants to trigger the ratchet (e.g. when a
member joins or leaves the room)
– Per-message type ratchets
35
Current Progress
• Funded: May 2014
• Launched alpha: Sept 2014
• Entered beta: Dec 2014
• Stable v0.9 Beta: May 2015
• Crypto & React SDK, Jul 2015
• Aug 2015: Approaching 1.0...?
36
What's next?
• Rolling out E2E encryption
• Multi-way VoIP
• Lots more Application Services
• Landing V2 APIs
• Use 3rd party IDs by default
• Yet more performance work
• Spec polishing
• New server implementations!
37
We need help!!
38
• We need people to try running their own
servers and join the federation.
• We need people to run gateways to their
existing services
• We need feedback on the APIs.
• Consider native Matrix support for new apps
• Follow @matrixdotorg and spread the word!
39
Thank you!
matthew@matrix.org
http://matrix.org
@matrixdotorg
40

More Related Content

What's hot

SIP (Session Initiation Protocol)
SIP (Session Initiation Protocol)SIP (Session Initiation Protocol)
SIP (Session Initiation Protocol)
KHNOG
 
Indroduction to SIP
Indroduction to SIPIndroduction to SIP
Indroduction to SIP
Chien Cheng Wu
 
Introduction to SIP(Session Initiation Protocol)
Introduction to SIP(Session Initiation Protocol)Introduction to SIP(Session Initiation Protocol)
Introduction to SIP(Session Initiation Protocol)
William Lee
 
SIP (Session Initiation Protocol) - Study Notes
SIP (Session Initiation Protocol) - Study NotesSIP (Session Initiation Protocol) - Study Notes
SIP (Session Initiation Protocol) - Study Notes
OxfordCambridge
 
Sip
SipSip
BlackHat Hacking - Hacking VoIP.
BlackHat Hacking - Hacking VoIP.BlackHat Hacking - Hacking VoIP.
BlackHat Hacking - Hacking VoIP.
Sumutiu Marius
 
SIP security in IP telephony
SIP security in IP telephonySIP security in IP telephony
SIP security in IP telephony
PaloSanto Solutions
 
session initiation protocol - SIP
session initiation protocol - SIPsession initiation protocol - SIP
session initiation protocol - SIPMahmoud Abudaqa
 
VoIP security: Implementation and Protocol Problems
VoIP security: Implementation and Protocol ProblemsVoIP security: Implementation and Protocol Problems
VoIP security: Implementation and Protocol Problems
seanhn
 
CCNA v6.0 ITN - Chapter 08
CCNA v6.0 ITN - Chapter 08CCNA v6.0 ITN - Chapter 08
CCNA v6.0 ITN - Chapter 08
Irsandi Hasan
 
Chapter 10 wireless hacking [compatibility mode]
Chapter 10 wireless hacking [compatibility mode]Chapter 10 wireless hacking [compatibility mode]
Chapter 10 wireless hacking [compatibility mode]
Setia Juli Irzal Ismail
 
Telephony Service Development on Asterisk Platform
Telephony Service Development on Asterisk PlatformTelephony Service Development on Asterisk Platform
Telephony Service Development on Asterisk Platform
Hamid Fadishei
 
Introduction into SIP protocol
Introduction into SIP protocolIntroduction into SIP protocol
Introduction into SIP protocol
Michal Hrncirik
 
02 asterisk - the future of telecommunications
02   asterisk - the future of telecommunications02   asterisk - the future of telecommunications
02 asterisk - the future of telecommunications
Tran Thanh
 
CCNA Security 09- ios firewall fundamentals
CCNA Security 09- ios firewall fundamentalsCCNA Security 09- ios firewall fundamentals
CCNA Security 09- ios firewall fundamentals
Ahmed Habib
 
Apple’s facetime protocol
Apple’s facetime protocolApple’s facetime protocol
Apple’s facetime protocolIMTC
 
How to hack a telecommunication company and stay alive. Sergey Gordeychik
How to hack a telecommunication company and stay alive. Sergey GordeychikHow to hack a telecommunication company and stay alive. Sergey Gordeychik
How to hack a telecommunication company and stay alive. Sergey GordeychikPositive Hack Days
 
CCNA (R & S) Module 01 - Introduction to Networks - Chapter 9
CCNA (R & S) Module 01 - Introduction to Networks - Chapter 9CCNA (R & S) Module 01 - Introduction to Networks - Chapter 9
CCNA (R & S) Module 01 - Introduction to Networks - Chapter 9
Waqas Ahmed Nawaz
 
Apple Facetime Protocol
Apple Facetime ProtocolApple Facetime Protocol
Apple Facetime Protocol
kshitijmehta23
 
CCNA v6.0 ITN - Chapter 09
CCNA v6.0 ITN - Chapter 09CCNA v6.0 ITN - Chapter 09
CCNA v6.0 ITN - Chapter 09
Irsandi Hasan
 

What's hot (20)

SIP (Session Initiation Protocol)
SIP (Session Initiation Protocol)SIP (Session Initiation Protocol)
SIP (Session Initiation Protocol)
 
Indroduction to SIP
Indroduction to SIPIndroduction to SIP
Indroduction to SIP
 
Introduction to SIP(Session Initiation Protocol)
Introduction to SIP(Session Initiation Protocol)Introduction to SIP(Session Initiation Protocol)
Introduction to SIP(Session Initiation Protocol)
 
SIP (Session Initiation Protocol) - Study Notes
SIP (Session Initiation Protocol) - Study NotesSIP (Session Initiation Protocol) - Study Notes
SIP (Session Initiation Protocol) - Study Notes
 
Sip
SipSip
Sip
 
BlackHat Hacking - Hacking VoIP.
BlackHat Hacking - Hacking VoIP.BlackHat Hacking - Hacking VoIP.
BlackHat Hacking - Hacking VoIP.
 
SIP security in IP telephony
SIP security in IP telephonySIP security in IP telephony
SIP security in IP telephony
 
session initiation protocol - SIP
session initiation protocol - SIPsession initiation protocol - SIP
session initiation protocol - SIP
 
VoIP security: Implementation and Protocol Problems
VoIP security: Implementation and Protocol ProblemsVoIP security: Implementation and Protocol Problems
VoIP security: Implementation and Protocol Problems
 
CCNA v6.0 ITN - Chapter 08
CCNA v6.0 ITN - Chapter 08CCNA v6.0 ITN - Chapter 08
CCNA v6.0 ITN - Chapter 08
 
Chapter 10 wireless hacking [compatibility mode]
Chapter 10 wireless hacking [compatibility mode]Chapter 10 wireless hacking [compatibility mode]
Chapter 10 wireless hacking [compatibility mode]
 
Telephony Service Development on Asterisk Platform
Telephony Service Development on Asterisk PlatformTelephony Service Development on Asterisk Platform
Telephony Service Development on Asterisk Platform
 
Introduction into SIP protocol
Introduction into SIP protocolIntroduction into SIP protocol
Introduction into SIP protocol
 
02 asterisk - the future of telecommunications
02   asterisk - the future of telecommunications02   asterisk - the future of telecommunications
02 asterisk - the future of telecommunications
 
CCNA Security 09- ios firewall fundamentals
CCNA Security 09- ios firewall fundamentalsCCNA Security 09- ios firewall fundamentals
CCNA Security 09- ios firewall fundamentals
 
Apple’s facetime protocol
Apple’s facetime protocolApple’s facetime protocol
Apple’s facetime protocol
 
How to hack a telecommunication company and stay alive. Sergey Gordeychik
How to hack a telecommunication company and stay alive. Sergey GordeychikHow to hack a telecommunication company and stay alive. Sergey Gordeychik
How to hack a telecommunication company and stay alive. Sergey Gordeychik
 
CCNA (R & S) Module 01 - Introduction to Networks - Chapter 9
CCNA (R & S) Module 01 - Introduction to Networks - Chapter 9CCNA (R & S) Module 01 - Introduction to Networks - Chapter 9
CCNA (R & S) Module 01 - Introduction to Networks - Chapter 9
 
Apple Facetime Protocol
Apple Facetime ProtocolApple Facetime Protocol
Apple Facetime Protocol
 
CCNA v6.0 ITN - Chapter 09
CCNA v6.0 ITN - Chapter 09CCNA v6.0 ITN - Chapter 09
CCNA v6.0 ITN - Chapter 09
 

Viewers also liked

Phone Apps... para el teléfono de escritorio
Phone Apps... para el teléfono de escritorioPhone Apps... para el teléfono de escritorio
Phone Apps... para el teléfono de escritorio
PaloSanto Solutions
 
VoIP2Day + ElastixWorld - Cierre
VoIP2Day + ElastixWorld - CierreVoIP2Day + ElastixWorld - Cierre
VoIP2Day + ElastixWorld - Cierre
PaloSanto Solutions
 
10-4-1 : The Open Communication Revolution agenda
10-4-1 : The Open Communication Revolution agenda10-4-1 : The Open Communication Revolution agenda
10-4-1 : The Open Communication Revolution agenda
PaloSanto Solutions
 
Asterisk hoy y mañana
Asterisk hoy y mañanaAsterisk hoy y mañana
Asterisk hoy y mañana
PaloSanto Solutions
 
Making asterisk feel like home outside north america
Making asterisk feel like home outside north americaMaking asterisk feel like home outside north america
Making asterisk feel like home outside north america
PaloSanto Solutions
 
Innovative technology for universal communication designed to involve the (he...
Innovative technology for universal communication designed to involve the (he...Innovative technology for universal communication designed to involve the (he...
Innovative technology for universal communication designed to involve the (he...
PaloSanto Solutions
 
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
PaloSanto Solutions
 
The structure is fundamental: IP PBX, telephony cards and tools for high avai...
The structure is fundamental: IP PBX, telephony cards and tools for high avai...The structure is fundamental: IP PBX, telephony cards and tools for high avai...
The structure is fundamental: IP PBX, telephony cards and tools for high avai...
PaloSanto Solutions
 
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
PaloSanto Solutions
 

Viewers also liked (9)

Phone Apps... para el teléfono de escritorio
Phone Apps... para el teléfono de escritorioPhone Apps... para el teléfono de escritorio
Phone Apps... para el teléfono de escritorio
 
VoIP2Day + ElastixWorld - Cierre
VoIP2Day + ElastixWorld - CierreVoIP2Day + ElastixWorld - Cierre
VoIP2Day + ElastixWorld - Cierre
 
10-4-1 : The Open Communication Revolution agenda
10-4-1 : The Open Communication Revolution agenda10-4-1 : The Open Communication Revolution agenda
10-4-1 : The Open Communication Revolution agenda
 
Asterisk hoy y mañana
Asterisk hoy y mañanaAsterisk hoy y mañana
Asterisk hoy y mañana
 
Making asterisk feel like home outside north america
Making asterisk feel like home outside north americaMaking asterisk feel like home outside north america
Making asterisk feel like home outside north america
 
Innovative technology for universal communication designed to involve the (he...
Innovative technology for universal communication designed to involve the (he...Innovative technology for universal communication designed to involve the (he...
Innovative technology for universal communication designed to involve the (he...
 
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
 
The structure is fundamental: IP PBX, telephony cards and tools for high avai...
The structure is fundamental: IP PBX, telephony cards and tools for high avai...The structure is fundamental: IP PBX, telephony cards and tools for high avai...
The structure is fundamental: IP PBX, telephony cards and tools for high avai...
 
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
 

Similar to Building a new ecosystem for interoperable communications

Construyendo un nuevo ecosistema para comunicaciones interoperables
Construyendo un nuevo ecosistema para comunicaciones interoperablesConstruyendo un nuevo ecosistema para comunicaciones interoperables
Construyendo un nuevo ecosistema para comunicaciones interoperables
OpenDireito
 
The missing signalling layer for WebRTC
The missing signalling layer for WebRTCThe missing signalling layer for WebRTC
The missing signalling layer for WebRTC
WebRTCConferenceJapan
 
Matrix.org decentralised communication, Matthew Hodgson, TADSummit
Matrix.org decentralised communication, Matthew Hodgson, TADSummitMatrix.org decentralised communication, Matthew Hodgson, TADSummit
Matrix.org decentralised communication, Matthew Hodgson, TADSummit
Alan Quayle
 
Fiware: Connecting to robots
Fiware: Connecting to robotsFiware: Connecting to robots
Fiware: Connecting to robots
Jaime Martin Losa
 
Fiware - communicating with ROS robots using Fast RTPS
Fiware - communicating with ROS robots using Fast RTPSFiware - communicating with ROS robots using Fast RTPS
Fiware - communicating with ROS robots using Fast RTPS
Jaime Martin Losa
 
Linux Inter Process Communication
Linux Inter Process CommunicationLinux Inter Process Communication
Linux Inter Process Communication
Abhishek Sagar
 
Matrix, The Year To Date, Ben Parsons, TADSummit 2018
Matrix, The Year To Date, Ben Parsons, TADSummit 2018Matrix, The Year To Date, Ben Parsons, TADSummit 2018
Matrix, The Year To Date, Ben Parsons, TADSummit 2018
Alan Quayle
 
Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013
Benjamin Cabé
 
Next Video Build: XMTP Workshop Slides
Next Video Build: XMTP Workshop SlidesNext Video Build: XMTP Workshop Slides
Next Video Build: XMTP Workshop Slides
Neven6
 
Microservices Practitioner Summit Jan '15 - Don't Build a Distributed Monolit...
Microservices Practitioner Summit Jan '15 - Don't Build a Distributed Monolit...Microservices Practitioner Summit Jan '15 - Don't Build a Distributed Monolit...
Microservices Practitioner Summit Jan '15 - Don't Build a Distributed Monolit...
Ambassador Labs
 
Iso model
Iso modelIso model
Iso model
Aileen Ereño
 
Building an Open M2M community one step at a time
Building an Open M2M community one step at a timeBuilding an Open M2M community one step at a time
Building an Open M2M community one step at a time
Benjamin Cabé
 
Fast RTPS Workshop at FIWARE Summit 2018
Fast RTPS Workshop at FIWARE Summit 2018Fast RTPS Workshop at FIWARE Summit 2018
Fast RTPS Workshop at FIWARE Summit 2018
Jaime Martin Losa
 
Workshop on Network Security
Workshop on Network SecurityWorkshop on Network Security
Workshop on Network Security
UC San Diego
 
Mesh IoT Networks Explained
Mesh IoT Networks ExplainedMesh IoT Networks Explained
Mesh IoT Networks Explained
GlobalLogic Ukraine
 
Chat app case study - xmpp vs SIP
Chat app case study - xmpp vs SIPChat app case study - xmpp vs SIP
Chat app case study - xmpp vs SIP
Genora Infotech
 
Block chain technology
Block chain technologyBlock chain technology
Block chain technology
Ponthota Viswanath Reddy
 
Topic # 16 of outline Managing Network Services.pptx
Topic # 16 of outline Managing Network Services.pptxTopic # 16 of outline Managing Network Services.pptx
Topic # 16 of outline Managing Network Services.pptx
AyeCS11
 
Block chain technology
Block chain technology Block chain technology
Block chain technology
Ponthota Viswanath Reddy
 

Similar to Building a new ecosystem for interoperable communications (20)

Construyendo un nuevo ecosistema para comunicaciones interoperables
Construyendo un nuevo ecosistema para comunicaciones interoperablesConstruyendo un nuevo ecosistema para comunicaciones interoperables
Construyendo un nuevo ecosistema para comunicaciones interoperables
 
The missing signalling layer for WebRTC
The missing signalling layer for WebRTCThe missing signalling layer for WebRTC
The missing signalling layer for WebRTC
 
Matrix.org decentralised communication, Matthew Hodgson, TADSummit
Matrix.org decentralised communication, Matthew Hodgson, TADSummitMatrix.org decentralised communication, Matthew Hodgson, TADSummit
Matrix.org decentralised communication, Matthew Hodgson, TADSummit
 
Fiware: Connecting to robots
Fiware: Connecting to robotsFiware: Connecting to robots
Fiware: Connecting to robots
 
Fiware - communicating with ROS robots using Fast RTPS
Fiware - communicating with ROS robots using Fast RTPSFiware - communicating with ROS robots using Fast RTPS
Fiware - communicating with ROS robots using Fast RTPS
 
Linux Inter Process Communication
Linux Inter Process CommunicationLinux Inter Process Communication
Linux Inter Process Communication
 
Matrix, The Year To Date, Ben Parsons, TADSummit 2018
Matrix, The Year To Date, Ben Parsons, TADSummit 2018Matrix, The Year To Date, Ben Parsons, TADSummit 2018
Matrix, The Year To Date, Ben Parsons, TADSummit 2018
 
Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013
 
Next Video Build: XMTP Workshop Slides
Next Video Build: XMTP Workshop SlidesNext Video Build: XMTP Workshop Slides
Next Video Build: XMTP Workshop Slides
 
Microservices Practitioner Summit Jan '15 - Don't Build a Distributed Monolit...
Microservices Practitioner Summit Jan '15 - Don't Build a Distributed Monolit...Microservices Practitioner Summit Jan '15 - Don't Build a Distributed Monolit...
Microservices Practitioner Summit Jan '15 - Don't Build a Distributed Monolit...
 
Iso model
Iso modelIso model
Iso model
 
OWF12/Java Building an Open M2M community
OWF12/Java Building an Open M2M communityOWF12/Java Building an Open M2M community
OWF12/Java Building an Open M2M community
 
Building an Open M2M community one step at a time
Building an Open M2M community one step at a timeBuilding an Open M2M community one step at a time
Building an Open M2M community one step at a time
 
Fast RTPS Workshop at FIWARE Summit 2018
Fast RTPS Workshop at FIWARE Summit 2018Fast RTPS Workshop at FIWARE Summit 2018
Fast RTPS Workshop at FIWARE Summit 2018
 
Workshop on Network Security
Workshop on Network SecurityWorkshop on Network Security
Workshop on Network Security
 
Mesh IoT Networks Explained
Mesh IoT Networks ExplainedMesh IoT Networks Explained
Mesh IoT Networks Explained
 
Chat app case study - xmpp vs SIP
Chat app case study - xmpp vs SIPChat app case study - xmpp vs SIP
Chat app case study - xmpp vs SIP
 
Block chain technology
Block chain technologyBlock chain technology
Block chain technology
 
Topic # 16 of outline Managing Network Services.pptx
Topic # 16 of outline Managing Network Services.pptxTopic # 16 of outline Managing Network Services.pptx
Topic # 16 of outline Managing Network Services.pptx
 
Block chain technology
Block chain technology Block chain technology
Block chain technology
 

More from PaloSanto Solutions

Queuemetrics esencial, de la implementación a reportes avanzadas
Queuemetrics esencial, de la implementación a reportes avanzadasQueuemetrics esencial, de la implementación a reportes avanzadas
Queuemetrics esencial, de la implementación a reportes avanzadas
PaloSanto Solutions
 
La evolución de la telefonía IP a comunicaciones unificadas
La evolución de la telefonía IP a comunicaciones unificadasLa evolución de la telefonía IP a comunicaciones unificadas
La evolución de la telefonía IP a comunicaciones unificadas
PaloSanto Solutions
 
WebRTC … ¡vamos a discar!
WebRTC … ¡vamos a discar!WebRTC … ¡vamos a discar!
WebRTC … ¡vamos a discar!
PaloSanto Solutions
 
Integrando encuestas automáticas con iSurveyX
Integrando encuestas automáticas con iSurveyXIntegrando encuestas automáticas con iSurveyX
Integrando encuestas automáticas con iSurveyX
PaloSanto Solutions
 
Usando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTUsando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MT
PaloSanto Solutions
 
Todo lo lo que necesita saber para implementar FreePBX
Todo lo lo que necesita saber para implementar FreePBXTodo lo lo que necesita saber para implementar FreePBX
Todo lo lo que necesita saber para implementar FreePBX
PaloSanto Solutions
 
Gestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMSGestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMS
PaloSanto Solutions
 
Escalado y balanceo de carga de sistemas SIP
Escalado y balanceo de carga de sistemas SIPEscalado y balanceo de carga de sistemas SIP
Escalado y balanceo de carga de sistemas SIP
PaloSanto Solutions
 
Elastix unified communications server cookbook
Elastix unified communications server cookbookElastix unified communications server cookbook
Elastix unified communications server cookbook
PaloSanto Solutions
 
Seguridad en Asterisk: Un acercamiento detallado
Seguridad en Asterisk: Un acercamiento detalladoSeguridad en Asterisk: Un acercamiento detallado
Seguridad en Asterisk: Un acercamiento detallado
PaloSanto Solutions
 
Dynamic calls with Text To Speech
Dynamic calls with Text To SpeechDynamic calls with Text To Speech
Dynamic calls with Text To Speech
PaloSanto Solutions
 
Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)
PaloSanto Solutions
 
Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia
PaloSanto Solutions
 
Voicemail Avanzado
Voicemail AvanzadoVoicemail Avanzado
Voicemail Avanzado
PaloSanto Solutions
 
Módulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de ElastixMódulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de Elastix
PaloSanto Solutions
 
Porteros IP SURiX con sin Video - Aplicaciones - Casos de éxito - Configuración
Porteros IP SURiX con sin Video - Aplicaciones - Casos de éxito - ConfiguraciónPorteros IP SURiX con sin Video - Aplicaciones - Casos de éxito - Configuración
Porteros IP SURiX con sin Video - Aplicaciones - Casos de éxito - Configuración
PaloSanto Solutions
 
Plan de Marcado Distribuido con Dundi
Plan de Marcado Distribuido con DundiPlan de Marcado Distribuido con Dundi
Plan de Marcado Distribuido con Dundi
PaloSanto Solutions
 
iDialerX: Discador de llamadas automáticas por IVR - Casos prácticos
iDialerX: Discador de llamadas automáticas por IVR - Casos prácticosiDialerX: Discador de llamadas automáticas por IVR - Casos prácticos
iDialerX: Discador de llamadas automáticas por IVR - Casos prácticos
PaloSanto Solutions
 
Asterisk de las cosas
Asterisk de las cosasAsterisk de las cosas
Asterisk de las cosas
PaloSanto Solutions
 
OpenBTS - Building Real Mobile Networks, Big or Small
OpenBTS - Building Real Mobile Networks, Big or SmallOpenBTS - Building Real Mobile Networks, Big or Small
OpenBTS - Building Real Mobile Networks, Big or Small
PaloSanto Solutions
 

More from PaloSanto Solutions (20)

Queuemetrics esencial, de la implementación a reportes avanzadas
Queuemetrics esencial, de la implementación a reportes avanzadasQueuemetrics esencial, de la implementación a reportes avanzadas
Queuemetrics esencial, de la implementación a reportes avanzadas
 
La evolución de la telefonía IP a comunicaciones unificadas
La evolución de la telefonía IP a comunicaciones unificadasLa evolución de la telefonía IP a comunicaciones unificadas
La evolución de la telefonía IP a comunicaciones unificadas
 
WebRTC … ¡vamos a discar!
WebRTC … ¡vamos a discar!WebRTC … ¡vamos a discar!
WebRTC … ¡vamos a discar!
 
Integrando encuestas automáticas con iSurveyX
Integrando encuestas automáticas con iSurveyXIntegrando encuestas automáticas con iSurveyX
Integrando encuestas automáticas con iSurveyX
 
Usando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTUsando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MT
 
Todo lo lo que necesita saber para implementar FreePBX
Todo lo lo que necesita saber para implementar FreePBXTodo lo lo que necesita saber para implementar FreePBX
Todo lo lo que necesita saber para implementar FreePBX
 
Gestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMSGestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMS
 
Escalado y balanceo de carga de sistemas SIP
Escalado y balanceo de carga de sistemas SIPEscalado y balanceo de carga de sistemas SIP
Escalado y balanceo de carga de sistemas SIP
 
Elastix unified communications server cookbook
Elastix unified communications server cookbookElastix unified communications server cookbook
Elastix unified communications server cookbook
 
Seguridad en Asterisk: Un acercamiento detallado
Seguridad en Asterisk: Un acercamiento detalladoSeguridad en Asterisk: Un acercamiento detallado
Seguridad en Asterisk: Un acercamiento detallado
 
Dynamic calls with Text To Speech
Dynamic calls with Text To SpeechDynamic calls with Text To Speech
Dynamic calls with Text To Speech
 
Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)
 
Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia
 
Voicemail Avanzado
Voicemail AvanzadoVoicemail Avanzado
Voicemail Avanzado
 
Módulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de ElastixMódulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de Elastix
 
Porteros IP SURiX con sin Video - Aplicaciones - Casos de éxito - Configuración
Porteros IP SURiX con sin Video - Aplicaciones - Casos de éxito - ConfiguraciónPorteros IP SURiX con sin Video - Aplicaciones - Casos de éxito - Configuración
Porteros IP SURiX con sin Video - Aplicaciones - Casos de éxito - Configuración
 
Plan de Marcado Distribuido con Dundi
Plan de Marcado Distribuido con DundiPlan de Marcado Distribuido con Dundi
Plan de Marcado Distribuido con Dundi
 
iDialerX: Discador de llamadas automáticas por IVR - Casos prácticos
iDialerX: Discador de llamadas automáticas por IVR - Casos prácticosiDialerX: Discador de llamadas automáticas por IVR - Casos prácticos
iDialerX: Discador de llamadas automáticas por IVR - Casos prácticos
 
Asterisk de las cosas
Asterisk de las cosasAsterisk de las cosas
Asterisk de las cosas
 
OpenBTS - Building Real Mobile Networks, Big or Small
OpenBTS - Building Real Mobile Networks, Big or SmallOpenBTS - Building Real Mobile Networks, Big or Small
OpenBTS - Building Real Mobile Networks, Big or Small
 

Recently uploaded

State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 

Recently uploaded (20)

State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 

Building a new ecosystem for interoperable communications

  • 3. Users are locked into proprietary communication apps. They have no control over their data or their privacy.
  • 4. Worse still, each app is a closed silo – forcing users to install redundant apps and fragmenting their comms.
  • 5.
  • 6. I want to communicate with the apps and services I trust. 6
  • 7. Not be forced into specific services chosen by my contacts. 7
  • 8. If email gives me that flexibility, why not VoIP and IM? 8
  • 11. Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which needs to pubsub persistent data to the world. 11
  • 12. Matrix was built to liberate your scrollback. 12
  • 13. 1st law of Matrix: Conversation history and Group comms are the 1st class citizens. 13
  • 14. 2nd law of Matrix: No single party own your conversations – they are shared over all participants. 14
  • 15. 3rd law of Matrix: All conversations may be end-to-end encrypted. 15
  • 16. Matrix is: • Non-profit Open Source Project • De-facto Open Standard HTTP APIs: – Client <-> Server – Server <-> Server – Application Services <-> Server • Apache-Licensed Open Source Reference Impls – Server (Python/Twisted) – Client SDKs (iOS, Android, JS, Angular, Python, Perl) – Clients (Web, iOS, Android) – Application Services (IRC, SIP, XMPP, Lync bridges) • A whole ecosystem of 3rd party servers, clients & services 16
  • 17. What does it look like? 17
  • 19. The Matrix Ecosystem The Matrix Specification (Client/Server API) client-sideserver-side Other Servers and Services Synapse (Reference Matrix Server) Matrix Application Services Other Clients Matrix iOS Console MatrixKit (iOS) matrix-ios-sdk Matrix Web Console matrix- angular- sdk matrix-js-sdk Android Console matrix-android- sdk matrix- react- sdk
  • 21. Functional Responsibility • Clients: Talks simple HTTP APIs to homeservers to push and pull messages and metadata. May be as thin or thick a client as desired. • Homeservers: Stores all the data for a user - the history of the rooms in which they participate; their public profile data. • Application Services: Optional; delivers application layer logic on top of Matrix (Gateways, Conferencing, Archiving, Search etc). Can actively intercept messages if required. • Identity Servers: Trusted clique of servers (think DNS root servers): maps 3rd party IDs to matrix IDs. 21
  • 22. How does it work? 22 http://matrix.org/#about
  • 23. The client-server API To send a message: curl -XPOST -d '{"msgtype":"m.text", "body":"hello"}' "https://alice.com:8448/_matrix/client/api/v1/rooms/ROOM_ ID/send/m.room.message?access_token=ACCESS_TOKEN" { "event_id": "YUwRidLecu" } 23
  • 24. The client-server API To set up a WebRTC call: curl -XPOST –d '{ "version": 0, "call_id": "12345”, "offer": { "type" : "offer”, "sdp" : "v=0rno=- 658458 2 IN IP4 127.0.0.1…" } }' "https://alice.com:8448/_matrix/client/api/v1/rooms/ROOM_ ID/send/m.call.invite?access_token=ACCESS_TOKEN" { "event_id": "ZruiCZBu” } 24
  • 25. The client-server API To persist some MIDI: curl -XPOST –d '{ "note": "71", "velocity": 68, "state": "on", "channel": 1, "midi_ts": 374023441 }' "https://alice.com:8448/_matrix/client/api/v1/rooms/ROOM_ ID/send/org.matrix.midi?access_token=ACCESS_TOKEN" { "event_id": “ORzcZn2” } 25
  • 26. The server-server API curl –XPOST –H ‘Authorization: X-Matrix origin=matrix.org,key=”898be4…”,sig=“j7JXfIcPFDWl1pdJz…”’ –d ‘{ "ts": 1413414391521, "origin": "matrix.org", "destination": "alice.com", "prev_ids": ["e1da392e61898be4d2009b9fecce5325"], "pdus": [{ "age": 314, "content": { "body": "hello world", "msgtype": "m.text" }, "context": "!fkILCTRBTHhftNYgkP:matrix.org", "depth": 26, "hashes": { "sha256": "MqVORjmjauxBDBzSyN2+Yu+KJxw0oxrrJyuPW8NpELs" }, "is_state": false, "origin": "matrix.org", "pdu_id": "rKQFuZQawa", "pdu_type": "m.room.message", "prev_pdus": [ ["PaBNREEuZj", "matrix.org"] ], "signatures": { "matrix.org": { "ed25519:auto": "jZXTwAH/7EZbjHFhIFg8Xj6HGoSI+j7JXfIcPFDWl1pdJz+JJPMHTDIZRha75oJ7lg7UM+CnhNAayHWZsUY3Ag" } }, "origin_server_ts": 1413414391521, "user_id": "@matthew:matrix.org" }] }’ https://alice.com:8448/_matrix/federation/v1/send/916d630ea616342b42e98a3be0b74113 26
  • 27. Application Services (AS) • Extensible custom application logic • They have privileged access to the server (granted by the admin). • They can subscribe to wide ranges of server traffic (e.g. events which match a range of rooms, or a range of users) • They can masquerade as 'virtual users'. • They can lazy-create 'virtual rooms' • They can receive traffic by push. 27
  • 28. Uses for AS API • Gateways to other comms platforms e.g.: all of Freenode is available at #freenode_#foo:matrix.org • Data manipulation – Filtering – Translation – Indexing – Mining – Visualisation – Orchestration • Application Logic (e.g. bots, IVR services) • … 28
  • 29. A trivial application service import json, requests # we will use this later from flask import Flask, jsonify, request app = Flask(__name__) @app.route("/transactions/<transaction>", methods=["PUT"]) def on_receive_events(transaction): events = request.get_json()["events"] for event in events: print "User: %s Room: %s" % (event["user_id"], event["room_id"]) print "Event Type: %s" % event["type"] print "Content: %s" % event["content"] return jsonify({}) if __name__ == "__main__": app.run() 29
  • 30. Matrix Bridging with ASes Existing App Application Service 3rd party Server 3rd party Clients
  • 31. matrix-react-sdk • All new web client SDK! • Sensible separation of: – HTTP API wrapper – Matrix client state machine – UI business logic – UI look & feel (skin) • Either customise per-component • …or fork your own skin. 31
  • 32. End to End Encryption with Olm • Apache License C++11 implementation of an Axolotl-style ratchet, exposing a C API. • Axolotl is Open Whisper System's better-than- OTR cryptographic ratchet, as used by TextSecure, Pond, WhatsApp etc. • Supports encrypted asynchronous group communication. • 130KB x86-64 .so, or 208KB of asm.js 32
  • 33. 33 Olm C API Account • Keys Session • Initial Key Exchange Ratchet • Encrypt • Decrypt Crypto • Curve25519 • AES • SHA256
  • 34. Group chat • Adds a 3rd type of ratchet, used to encrypt group messages. • Establish 'normal' 1:1 ratchets between all participants in order to exchange the initial secret for the group ratchet. • All receivers share the same group ratchet state to decrypt the room. 34
  • 35. Flexible privacy with Olm • Users can configure rooms to have: – No ratchet (i.e. no crypto) – Full PFS ratchet – Selective ratchet • Deliberately re-use ratchet keys to support paginating partial eras of history. • Up to participants to trigger the ratchet (e.g. when a member joins or leaves the room) – Per-message type ratchets 35
  • 36. Current Progress • Funded: May 2014 • Launched alpha: Sept 2014 • Entered beta: Dec 2014 • Stable v0.9 Beta: May 2015 • Crypto & React SDK, Jul 2015 • Aug 2015: Approaching 1.0...? 36
  • 37. What's next? • Rolling out E2E encryption • Multi-way VoIP • Lots more Application Services • Landing V2 APIs • Use 3rd party IDs by default • Yet more performance work • Spec polishing • New server implementations! 37
  • 39. • We need people to try running their own servers and join the federation. • We need people to run gateways to their existing services • We need feedback on the APIs. • Consider native Matrix support for new apps • Follow @matrixdotorg and spread the word! 39