Decentralize WebRTC VoIP records using Blockchain
This is the age of peer to peer networks, which have a definite upper hand on performance and security than the traditional centralised ones. However, the advent of ad-hoc, p2p or mesh-based system has brought one challenge to light. That is, maintaining call history, privacy and accountability.
This has become even more difficult in OTT( Over the top Provider) based call applications since they operate without a central authority or call monitoring application server. To address the problem of tracking calls and media streams, not in terms of data that was shared, but to log the call session attributes such as source, destination, timestamp, network and media characteristics etc and to guarantee the security of call record from alteration as well as to authenticate the callers and receivers, a blockchain-based decentralised implementation on the WebRTC and SIP communication landscape is proposed
What it does
To track call details histories such as caller source, callee destination, timestamp, network stats, mos, media characteristics and to guarantee the security of CDR (call data records ) from alteration, a blockchain-based decentralised implementation on the WebRTC and SIP communication landscape is proposed.
What are we doing ?
De-centralize call records using Blockchain and Smart contracts
- Batch together call transactional CDRs
- Deploy VoIP transaction on Blockchain network
- Update Call state in smart contract
Why are we doing this ?
Existing methods of CDR ( Call Detail Records ) management are subjected to mismanagement, ransomware attacks, data breaches and provide no transparency or authentication.
- WebRTC browser API
- JSSIP - SIP protocol over Websockets
- Web3.js - Ethereum JSON-RPC API
- Metamask - Browser Extension
- Kamailio SIP server
- RSK smart contract
Step 1 : Create Smart contract on RSK via remix
Metamask is web wallet which facilitates transactions using your account. Using chrome extension it was plugin into webrtc compatible browser like Chrome , Mozilla , Opera Using Remix and Metamask to create and deploy a simple smart contract on RSK’s Testnet
1.1 : Configure RSK Testnet in Metamask as new RPC network
1.2 : Obtain Testnet R-BTC at faucet.testnet.rsk.co.
- After transaction is complete , see 0.05 R-BTC in metamask
1.3: Import the sol file containing the VoIP CDR contract
1.4 : Compile the contract on
1.5 : Deploy and Run using Inject Web3
Step 2 : Make a WebRTC Call via SIP Server
2.1. Making a JSSIP WebRTC call
2.2. Call signalled via kamailio SIP Server
Step 3 : Call Transaction is updated on Smart Contract by WebRTC client
Step 4 : Can be monitored on RSK Explorer
Challenges I ran into
Solved SIP Server integrations to update and read from a blockchain.
Accomplishments that I'm proud of
If a call is broadcasted to every node in the network, verified and a copy is maintained by peers, the call records are as secure as a monetary transaction made over a bitcoins. This is because they are added to ledger encrypted with digital security code, with the assurance of being unalterable and permanent.
What I learned
I learned about decentralised Call -Data-Records integrated with peer to peer opensource VoIP platforms
What's next for Blockchain and Peer to Peer VOIP communication over WebRTC
Integrable SDK for WebRTC endpoint and API for SIP Servers to integrate blockchain operations form endpoints and SIP servers used in Voice over IP and WebRTC Communication as a platform