GStreamer is an open-source multimedia framework.  Applications can use its API to access audio and video hardware on a variety of platforms.  Most of the GStreamer API is concerned with creating and running a pipeline.  The pipeline is composed of elements that all operate on data streams.  Once the pipeline is created and all the elements are connected, the application can start and stop the pipeline.  As it’s running, the pipeline will be gathering data from its source elements, processing that data, and sending the processed data to its sink elements.

SIP is a widely used protocol for establishing communication sessions.  SIP messages are exchanged between two endpoints to establish session parameters such as codec and network port numbers for each media stream.  SIP has messages to begin and end a V2oIP call, and messages to change the session parameters during a call.

Both SIP and GStreamer can be used together in a V2oIP application.  Generally, SIP will be used to establish the parameters for a call, and those parameters will be used to configure a GStreamer pipeline.  In a production application, there may be other layers, such as an IP-PBX layer, facilitating communication of those parameters from SIP to GStreamer.  After the GStreamer pipeline is configured, it will stream data between the audio and video hardware and the network.

SIP and GStreamer block diagram