A signaling protocol used for initiating, maintaining and terminating real-time sessions that include voice, video and messaging applications.
The protocol was invented and designed by J. Rosenberg. And as mentioned in the RFC 3261
To refer more about the basic workflow of the protocol is mentioned in the RFC 3265
Communication between Client and Registerar to request for transferring media from one client to another
I also added a few extra functionalities such as Deregisteration of client that could improve the working of the protocol.
The project contains a Node(Client), a Registerar(Server). Multiple nodes can connect to the registerar and communicate with each other. The project uses a streaming algorithm that I studied about in my University in my Senior Year.