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 img


  1. Batch together call transactional CDRs
  2. Deploy VoIP transaction on Blockchain network
  3. 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.


Web Phone

  • WebRTC browser API
  • JSSIP - SIP protocol over Websockets
  • Web3.js - Ethereum JSON-RPC API
  • Metamask - Browser Extension

VoIP Network

  • Kamailio SIP server

Blockchain Network

  • RSK smart contract

POC outline


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

Use url

1.2 : Obtain Testnet R-BTC at
- 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

Fig :

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

Built With

Share this project: