Development

Development.IdeasList History

Show minor edits - Show changes to output

February 13, 2018, at 01:25 PM by liviu -
Added line 2:
This page has been visited {$PageCount} times.
January 23, 2018, at 03:55 PM by razvancrainea -
Deleted lines 17-47:
[[#opensipsctl]]
!!!Console / Control tool for OpenSIPS management

'''Tags:''' New Feature, console, provisioning, management

'''Skills:''' Shell, Python, SQL, ncurses

'''Description:''' OpenSIPS currently offers two external provisioning tools, the "opensipsctl" and "osipsconsole". These tools need to be replaced with a new and more powerful tool that has to address the existing problems/limitations: use a high-level programming language (such as Python) to overcome the lack of libraries (Shell language is now used); use a generic SQL interface to support multiple DB types (mysql, postgres, sqlite, oracle and more); use a JSON-RPC connection with OpenSIPS (versus the existing text-oriented one); give the end-user a console-like experience, with help, history, tab-completion, etc.

'''Result:''' New console-oriented provisioning tool for OpenSIPS, for DB and management operations.

'''Rating:''' medium

'''Mentors:''' Bogdan Iancu (bogdan_vs on IRC), Răzvan Crainea (razvanc on IRC)


[[#testing]]
!!! SIP System Testing Platform

'''Tags:''' SIP, RFC 3261, scripting, testing, infrastructure, automation

'''Skills:''' C/Python/bash, UDP/IP, TCP/IP, SIP, VoIP, sipp, opensips

'''Description:''' Design and implement an open-source, extensible testing platform for RFC 3261 SIP proxy servers. The goals of the platform are: greatly simplify the process of defining complex SIP signaling testing scenarios; validate input/output SIP message structure and sequencing (RFC behavior, as well as OpenSIPS-specific signaling features); provide statistics and reporting with regards to each SIP message (send/recv timestamps, processing time).

'''Result:''' A new industry-shaping project that can help validate any SIP signaling server implementation.

'''Rating:''' hard

'''Mentors:''' Liviu Chircu (liviuc on IRC)
Added lines 116-147:


[[#opensipsctl]]
!!!Console / Control tool for OpenSIPS management

'''Tags:''' New Feature, console, provisioning, management

'''Skills:''' Shell, Python, SQL, ncurses

'''Description:''' OpenSIPS currently offers two external provisioning tools, the "opensipsctl" and "osipsconsole". These tools need to be replaced with a new and more powerful tool that has to address the existing problems/limitations: use a high-level programming language (such as Python) to overcome the lack of libraries (Shell language is now used); use a generic SQL interface to support multiple DB types (mysql, postgres, sqlite, oracle and more); use a JSON-RPC connection with OpenSIPS (versus the existing text-oriented one); give the end-user a console-like experience, with help, history, tab-completion, etc.

'''Result:''' New console-oriented provisioning tool for OpenSIPS, for DB and management operations.

'''Rating:''' medium

'''Mentors:''' Bogdan Iancu (bogdan_vs on IRC), Răzvan Crainea (razvanc on IRC)


[[#testing]]
!!! SIP System Testing Platform

'''Tags:''' SIP, RFC 3261, scripting, testing, infrastructure, automation

'''Skills:''' C/Python/bash, UDP/IP, TCP/IP, SIP, VoIP, sipp, opensips

'''Description:''' Design and implement an open-source, extensible testing platform for RFC 3261 SIP proxy servers. The goals of the platform are: greatly simplify the process of defining complex SIP signaling testing scenarios; validate input/output SIP message structure and sequencing (RFC behavior, as well as OpenSIPS-specific signaling features); provide statistics and reporting with regards to each SIP message (send/recv timestamps, processing time).

'''Result:''' A new industry-shaping project that can help validate any SIP signaling server implementation.

'''Rating:''' hard

'''Mentors:''' Liviu Chircu (liviuc on IRC)
January 23, 2018, at 02:03 PM by 172.16.36.1 -
Changed lines 19-20 from:
!!!Console / Control tools for OpenSIPS management
to:
!!!Console / Control tool for OpenSIPS management
Changed lines 108-113 from:
'''Description:'''

The first part of the project consists of implementing support for [[https://community.polycom.com/polycom/attachments/polycom/VoIP/2234/1/DeviceFeatureKeySynchronizationFD.pdf| Broadsoft's "Device Feature Key Synchronization" (DFKS) draft]] in OpenSIPS. The DFKS specification presents a series of SIP Presence message exchanges between the end-user device (phone) and the application server (OpenSIPS, in this case) with the sole purpose of keeping both entities synchronized with regards to the current user status (DND, forward calls always / on busy / on no-answer).

\\
to:
'''Description:''' The first part of the project consists of implementing support for [[https://community.polycom.com/polycom/attachments/polycom/VoIP/2234/1/DeviceFeatureKeySynchronizationFD.pdf| Broadsoft's "Device Feature Key Synchronization" (DFKS) draft]] in OpenSIPS. The DFKS specification presents a series of SIP Presence message exchanges between the end-user device (phone) and the application server (OpenSIPS, in this case) with the sole purpose of keeping both entities synchronized with regards to the current user status (DND, forward calls always / on busy / on no-answer).\\
January 23, 2018, at 01:44 PM by liviu -
Changed line 116 from:
''Result:''' A set of modules that publish and handle new presence extensions.
to:
'''Result:''' A set of modules that publish and handle new presence extensions.
January 22, 2018, at 07:31 PM by razvancrainea -
Added lines 18-48:
[[#opensipsctl]]
!!!Console / Control tools for OpenSIPS management

'''Tags:''' New Feature, console, provisioning, management

'''Skills:''' Shell, Python, SQL, ncurses

'''Description:''' OpenSIPS currently offers two external provisioning tools, the "opensipsctl" and "osipsconsole". These tools need to be replaced with a new and more powerful tool that has to address the existing problems/limitations: use a high-level programming language (such as Python) to overcome the lack of libraries (Shell language is now used); use a generic SQL interface to support multiple DB types (mysql, postgres, sqlite, oracle and more); use a JSON-RPC connection with OpenSIPS (versus the existing text-oriented one); give the end-user a console-like experience, with help, history, tab-completion, etc.

'''Result:''' New console-oriented provisioning tool for OpenSIPS, for DB and management operations.

'''Rating:''' medium

'''Mentors:''' Bogdan Iancu (bogdan_vs on IRC), Răzvan Crainea (razvanc on IRC)


[[#testing]]
!!! SIP System Testing Platform

'''Tags:''' SIP, RFC 3261, scripting, testing, infrastructure, automation

'''Skills:''' C/Python/bash, UDP/IP, TCP/IP, SIP, VoIP, sipp, opensips

'''Description:''' Design and implement an open-source, extensible testing platform for RFC 3261 SIP proxy servers. The goals of the platform are: greatly simplify the process of defining complex SIP signaling testing scenarios; validate input/output SIP message structure and sequencing (RFC behavior, as well as OpenSIPS-specific signaling features); provide statistics and reporting with regards to each SIP message (send/recv timestamps, processing time).

'''Result:''' A new industry-shaping project that can help validate any SIP signaling server implementation.

'''Rating:''' hard

'''Mentors:''' Liviu Chircu (liviuc on IRC)
Changed lines 56-61 from:
'''Description:''' This project aims to provide OpenSIPS the ability to do authentication and accounting for VoIP calls using [[https://en.wikipedia.org/wiki/Diameter_(protocol) | Diameter]], a network protocol (very similar to Radius) used to do AAA (Authentication, Authorization and Accounting) using a Diameter server. In order to do that, one needs to develop a new module in OpenSIPS that acts on one side as a Diameter client that communicates with the Diameter server (most likely you will use a library for this), and on the other side implements the OpenSIPS internal AAA API. Moreover, the new module will also need to be integrated with the current accounting interface, to be able to generate CDRs (Call Description Records) to a Diameter server.

'''Result:''' A new OpenSIPS module that is able to communicate with a
Diameter server to do AAA(Authentication, Authorization and Accounting) for
calls.
to:
'''Description:''' This project aims to provide OpenSIPS the ability to do authentication and accounting for VoIP calls using [[https://en.wikipedia.org/wiki/Diameter_(protocol) | Diameter]], a network protocol (very similar to Radius) used to do AAA (Authentication, Authorization and Accounting) using a Diameter server. In order to do that, one needs to develop a new module in OpenSIPS that acts on one side as a Diameter client that communicates with the Diameter server (most likely you will use a library for this), and on the other side implements the OpenSIPS internal AAA API. Moreover, the new module will also need to be integrated with the current accounting interface, to be able to generate CDRs (Call Detail Records) to a Diameter server.

'''Result:''' A new OpenSIPS module that is able to communicate with a Diameter server to do AAA(Authentication, Authorization and Accounting) for calls.
Changed lines 62-63 from:
'''Mentors:''' Răzvan Crainea (razvanc on IRC)
to:
'''Mentors:''' Răzvan Crainea (razvanc on IRC), Bogdan Iancu (bogdan_vs on IRC)
Changed lines 67-74 from:
'''Tags:''' New Feature

'''Skills:''' C/C++ programming, network communication protocols, Operating System IPC (inter-process-communication)

'''Description:''' The Short Message Peer-to-Peer (SMPP) protocol is used in telecommunications to interface transfer data (such as mobile SMSes) between different Message Centers entities. This project aims to add in OpenSIPS a SMPP stack that is able to receive SMPP packets (PDUs) and convert them to SIP MESSAGEs that are then forwarded to SIP clients, and back - convert SIP MESSAGEs to SMPP packets that are sent further to SMSc (SMS centers). This gateway will be 'packed' as a new transport protocol module for OpenSIPS, that, besides the protocol conversion, will provide means to provision different SMSc connections using a database back-end.

'''Result:''' A new OpenSIPS module that is able to receive SMPP traffic and convert it to SIP and back.
to:
'''Tags:''' SMPP, SIP, gateway

'''Skills:''' C/C++ programming, network communication protocols, Operating Systems IPC

'''Description:''' The Short Message Peer-to-Peer (SMPP) protocol is used in telecommunications to interface transfer data (such as mobile SMSes) between different Message Center entities. This project aims to add in OpenSIPS an SMPP stack that is able to receive SMPP packets (PDUs) and convert them to SIP MESSAGEs that are then forwarded to SIP clients, and back - convert SIP MESSAGEs to SMPP packets that are sent further to SMSc (SMS centers). This gateway will be 'packed' as a new transport protocol module for OpenSIPS, that, besides the protocol conversion, will provide means to provision different SMSc connections using a database back-end.

'''Result:''' A new OpenSIPS module that is able to act as a SIP-SMPP gateway.
Changed lines 82-85 from:
'''Tags:''' New Feature

'''Skills:''' C/C++ programming, network communication protocols, Operating System IPC (inter-process-communication)
to:
'''Tags:''' RabbitMQ, protocols, AMQP, message queuing

'''Skills:''' C/C++ programming, network communication protocols, Operating Systems IPC
Changed line 91 from:
RabbitMQ server. This project aims to build a new RabbitMQ consumer in
to:
RabbitMQ server. This project aims to build a RabbitMQ consumer in
Changed lines 93-96 from:
them as events in the OpenSIPS script.

'''Result:''' A new OpenSIPS module that receives RabbitMQ messages and exposes them to the OpenSIPS script writer.
to:
them as OpenSIPS events in the configuration script.

'''Result:''' A new OpenSIPS module that receives RabbitMQ messages and exposes them to the OpenSIPS script.
Deleted lines 100-118:
[[#testing]]
!!! SIP System Testing Platform

'''Tags:''' SIP, RFC 3261, scripting, testing, infrastructure, automation

'''Skills:''' C/Python/bash, UDP/IP, TCP/IP, SIP, VoIP, sipp, opensips

'''Description:''' Design and implement an open-source, extensible testing platform for RFC 3261 SIP proxy servers. The goals of the platform are:
* greatly simplify the process of defining complex SIP signaling testing scenarios
* validate input/output SIP message structure and sequencing (RFC behavior, as well as OpenSIPS-specific signaling features)
* provide statistics and reporting with regards to each SIP message (send/recv timestamps, processing time)

'''Result:''' A new industry-shaping project that can help validate any SIP signaling server implementation.

'''Rating:''' hard

'''Mentors:''' Liviu Chircu (liviuc on IRC)

Changed lines 116-117 from:
'''Result:''' Extended Presence server capabilities for OpenSIPS, increasing its desirability over commercial solutions.
to:
''Result:''' A set of modules that publish and handle new presence extensions.
Changed lines 126-127 from:
'''Tags:''' extension, tracing, capture, HEP, correlation, big data,
to:
'''Tags:''' extension, tracing, capture, HEP, correlation, big data
Changed lines 130-131 from:
'''Description:''' OpenSIPS implements a complex support for tracing and capturing various internal data to an external data analyzer system - SIPCapture. Data can be SIP (the actual SIP packets) or non-SIP (REST queries, script logs, network layer and more) and all these data types are correlated/linked by IDs - see https://blog.opensips.org/2017/03/22/capturing-beyond-sip/. The required work consists in extending the existing OpenSIPS's capturing capabilities by adding new types of data and new correlations. We are looking to be able to trace the SQL and noSQL queries involved in the processing of a SIP message (and to correlate them with the message), to trace interactions with external media servers like RTPProxy or RTPEngine, to trace statistics from network/TCP level or to provide extra call correlation for the SIP back-2-back module (to be able to link all calls belonging to the the same B2B instance)
to:
'''Description:''' OpenSIPS implements a complex support for tracing and capturing various internal data to an external data analyzer system - SIPCapture. Data can be SIP (the actual SIP packets) or non-SIP (HTTP queries, script logs, network layer and more) and all these data types are correlated/linked by IDs - see https://blog.opensips.org/2017/03/22/capturing-beyond-sip/. The required work consists in extending the existing OpenSIPS's capturing capabilities by adding new types of data and new correlations. We are looking to be able to trace the SQL and noSQL queries involved in the processing of a SIP message (and to correlate them with the message), to trace interactions with external media servers like RTPProxy or RTPEngine, to trace statistics from network/TCP level or to provide extra call correlation for the SIP back-2-back module (to be able to link all calls belonging to the the same B2B instance).
Deleted lines 137-152:

[[#opensipsctl]]
!!!Console / Control tools for OpenSIPS management

'''Tags:''' New Feature, console, provisioning, management

'''Skills:''' Shell, Python, SQL, ncurses

'''Description:''' OpenSIPS currently offers two external provisioning tools, the "opensipsctl" and "osipsconsole". These tools need to be replace with a news and more powerful tool that has to address the existing problems/limitations : use a high-level programing language as Python to overcome the lack of libraries (Shell language is now used); use a generic SQL interface to support multiple DB types (mysql, postgres, sqlite, oracle and more); use a JSONRPC connection with OpenSIPS (versus the existing text oriented one); give the end-user a console-like experience, with help, history, tab-completion.

'''Result:''' New console oriented provisioning tool for OpenSIPS, for DB and Management operations.

'''Rating:''' medium

'''Mentors:''' Bogdan Iancu (bogdan_vs on IRC), Răzvan Crainea (razvanc on IRC)
Changed lines 141-142 from:
'''Tags:''' New Feature, tracing, data, backend
to:
'''Tags:''' tracing, data, backend
Changed line 145 from:
'''Description:''' The data traced by OpenSIPS is now transported to the capturing node (Homer) via the HEP protocol. We are looking for the ability to support multiple backends for moving the traced data, like RabbitMQ or REST. The work will start with re-factoring the existing tracing and capturing modules in order to define a new API in front of the existing HEP transport protocol. The second step will consists of adding (on top of this new API) new transport backends.
to:
'''Description:''' The data traced by OpenSIPS is now transported to the capturing node (Homer) via the HEP protocol. We are looking for the ability to support multiple transporting backends for the traced data, like AMQP or HTTP. The work will start with refactoring the existing tracing and capturing modules in order to define a new API in front of the existing HEP transport protocol. The second step will consist of adding new transport backends on top of this new API.
January 22, 2018, at 06:26 PM by razvancrainea -
Added lines 21-37:
'''Tags:''' Diameter, Radius, AAA, protocols

'''Skills:''' C/C++ programming, network communication protocols

'''Description:''' This project aims to provide OpenSIPS the ability to do authentication and accounting for VoIP calls using [[https://en.wikipedia.org/wiki/Diameter_(protocol) | Diameter]], a network protocol (very similar to Radius) used to do AAA (Authentication, Authorization and Accounting) using a Diameter server. In order to do that, one needs to develop a new module in OpenSIPS that acts on one side as a Diameter client that communicates with the Diameter server (most likely you will use a library for this), and on the other side implements the OpenSIPS internal AAA API. Moreover, the new module will also need to be integrated with the current accounting interface, to be able to generate CDRs (Call Description Records) to a Diameter server.

'''Result:''' A new OpenSIPS module that is able to communicate with a
Diameter server to do AAA(Authentication, Authorization and Accounting) for
calls.

'''Rating:''' medium-hard

'''Mentors:''' Răzvan Crainea (razvanc on IRC)

[[#smpp]]
!!! SMPP to SIP bridge/gateway
Changed lines 40-47 from:
'''Skills:''' C/C++ programming, networking protocols

'''Description:'''

'''Result:''' A new OpenSIPS module that is able to communicate with a Diameter server to do AAA(Authentication, Authorization and Accounting).

'''Extra:''' Integrate the new diameter module with the OpenSIPS accounting interface.
to:
'''Skills:''' C/C++ programming, network communication protocols, Operating System IPC (inter-process-communication)

'''Description:''' The Short Message Peer-to-Peer (SMPP) protocol is used in telecommunications to interface transfer data (such as mobile SMSes) between different Message Centers entities. This project aims to add in OpenSIPS a SMPP stack that is able to receive SMPP packets (PDUs) and convert them to SIP MESSAGEs that are then forwarded to SIP clients, and back - convert SIP MESSAGEs to SMPP packets that are sent further to SMSc (SMS centers). This gateway will be 'packed' as a new transport protocol module for OpenSIPS, that, besides the protocol conversion, will provide means to provision different SMSc connections using a database back-end.

'''Result:''' A new OpenSIPS module that is able to receive SMPP traffic and convert it to SIP and back.
Changed lines 48-49 from:
'''Mentors:'''
to:
'''Mentors:''' Răzvan Crainea (razvanc on IRC)

[[#rabbitmq]]
!!! RabbitMQ consumer

'''Tags:''' New Feature

'''Skills:''' C/C++ programming, network communication protocols, Operating System IPC (inter-process-communication)

'''Description:''' RabbitMQ is a message broker used to transfer data in a
reliable way using complex routing mechanisms. It is built on top of the AMQP
protocol and acts as a server that collects messages from publishers and
dispatches them to consumers. OpenSIPS already has support to publish data to
a RabbitMQ message broker, but it cannot yet act as a consumer - fetch data from a
RabbitMQ server. This project aims to build a new RabbitMQ consumer in
OpenSIPS that is able to receive messages from a RabbitMQ broker and expose
them as events in the OpenSIPS script.

'''Result:''' A new OpenSIPS module that receives RabbitMQ messages and exposes them to the OpenSIPS script writer.

'''Rating:''' medium-hard

'''Mentors:''' Răzvan Crainea (razvanc on IRC)
Changed lines 88-91 from:
'''Mentors:''' Liviu Chircu


[[#opensipsctl]]
to:
'''Mentors:''' Liviu Chircu (liviuc on IRC)


[[#presence]]
Changed lines 110-112 from:
'''Mentors:''' Liviu Chircu

to:
'''Mentors:''' Liviu Chircu (liviuc on IRC)

Changed lines 118-119 from:
'''Skills: '''C programming, networking protocols
to:
'''Skills:''' C/C++ programming, network communication protocols
Changed lines 126-128 from:
'''Mentors:''' Bogdan Iancu

to:
'''Mentors:''' Bogdan Iancu (bogdan_vs on IRC)

Changed lines 142-143 from:
'''Mentors:''' Bogdan Iancu
to:
'''Mentors:''' Bogdan Iancu (bogdan_vs on IRC), Răzvan Crainea (razvanc on IRC)
Changed lines 147-150 from:
'''Tags:''' New Feature, tracing, data, backend,

'''Skills:''' C programming, networking protocols
to:
'''Tags:''' New Feature, tracing, data, backend

'''Skills:''' C/C++ programming, network communication protocols
Changed lines 157-159 from:
'''Mentors:''' Bogdan Iancu

to:
'''Mentors:''' Bogdan Iancu (bogdan_vs on IRC)
January 22, 2018, at 05:29 PM by liviu -
Changed line 63 from:
The first part of the project consists of implementing support for Broadsoft's "Device Feature Key Synchronization" (DFKS) draft in OpenSIPS. The DFKS specification presents a series of SIP Presence message exchanges between the end-user device (phone) and the Presence server (OpenSIPS, in this case) with the sole purpose of keeping both entities synchronized with regards to the current user status (DND, forward calls always / on busy / on no-answer).
to:
The first part of the project consists of implementing support for [[https://community.polycom.com/polycom/attachments/polycom/VoIP/2234/1/DeviceFeatureKeySynchronizationFD.pdf| Broadsoft's "Device Feature Key Synchronization" (DFKS) draft]] in OpenSIPS. The DFKS specification presents a series of SIP Presence message exchanges between the end-user device (phone) and the application server (OpenSIPS, in this case) with the sole purpose of keeping both entities synchronized with regards to the current user status (DND, forward calls always / on busy / on no-answer).
January 22, 2018, at 05:28 PM by liviu -
Deleted lines 61-62:

\\
January 22, 2018, at 05:27 PM by liviu -
Changed lines 36-41 from:
!!! Unit testing platform

'''Tags:'''

'''Skills:'''
to:
!!! SIP System Testing Platform

'''Tags:''' SIP, RFC 3261, scripting, testing, infrastructure, automation

'''Skills:''' C/Python/bash, UDP/IP, TCP/IP, SIP, VoIP, sipp, opensips

'''Description:''' Design and implement an open-source, extensible testing platform for RFC 3261 SIP proxy servers. The goals of the platform are:
* greatly simplify the process of defining complex SIP signaling testing scenarios
* validate input/output SIP message structure and sequencing (RFC behavior, as well as OpenSIPS-specific signaling features)
* provide statistics and reporting with regards to each SIP message (send/recv timestamps, processing time)

'''Result:''' A new industry-shaping project that can help validate any SIP signaling server implementation.

'''Rating:''' hard

'''Mentors:''' Liviu Chircu


[[#opensipsctl]]
!!! Presence server extensions: Device Feature Key Synchronization, Call Completion

'''Tags:''' SIP, SIP Presence, XML, RFC 3265, user status, RFC 6910

'''Skills:''' C, SIP, SIP Presence, OpenSIPS scripting, UDP/IP, XML
Changed lines 63-83 from:
'''Result:'''

'''Rating:'''

'''Mentors:'''


[[#opensipsctl]]
!!! Enhanced opensipsctl & osipsconsole

'''Tags:'''

'''Skills:'''

'''Description:'''

'''Result:'''

'''Rating:'''

'''Mentors:'''
to:
\\

The first part of the project consists of implementing support for Broadsoft's "Device Feature Key Synchronization" (DFKS) draft in OpenSIPS. The DFKS specification presents a series of SIP Presence message exchanges between the end-user device (phone) and the Presence server (OpenSIPS, in this case) with the sole purpose of keeping both entities synchronized with regards to the current user status (DND, forward calls always / on busy / on no-answer).

\\

The second part of the project involves adding support for the Presence call completion draft (RFC 6910), allowing the caller of a failed call to be notified when the callee becomes available to receive a call.

'''Result:''' Extended Presence server capabilities for OpenSIPS, increasing its desirability over commercial solutions.

'''Rating:''' medium-hard

'''Mentors:''' Liviu Chircu
January 22, 2018, at 04:56 PM by 172.16.36.1 -
Changed lines 66-79 from:
[[#opensips-cp-ng]]
!!! OpenSIPS Control Panel NG

'''Tags:''' Web application

'''Skills:''' Web application

'''Description:'''

'''Result:'''

'''Rating:'''

'''Mentors:'''
to:

[[#datatracing]]
!!!Data tracing & capturing extension in OpenSIPS

'''Tags:''' extension, tracing, capture, HEP, correlation, big data,

'''Skills: '''C programming, networking protocols

'''Description:''' OpenSIPS implements a complex support for tracing and capturing various internal data to an external data analyzer system - SIPCapture. Data can be SIP (the actual SIP packets) or non-SIP (REST queries, script logs, network layer and more) and all these data types are correlated/linked by IDs - see https://blog.opensips.org/2017/03/22/capturing-beyond-sip/. The required work consists in extending the existing OpenSIPS's capturing capabilities by adding new types of data and new correlations. We are looking to be able to trace the SQL and noSQL queries involved in the processing of a SIP message (and to correlate them with the message), to trace interactions with external media servers like RTPProxy or RTPEngine, to trace statistics from network/TCP level or to provide extra call correlation for the SIP back-2-back module (to be able to link all calls belonging to the the same B2B instance)

'''Result:''' New tracing capabilities (based on the internal API) for existing modules and OpenSIPS core.

'''Rating:''' medium

'''Mentors:''' Bogdan Iancu


[[#opensipsctl]]
!!!Console / Control tools for OpenSIPS management

'''Tags:''' New Feature, console, provisioning, management

'''Skills:''' Shell, Python, SQL, ncurses

'''Description:''' OpenSIPS currently offers two external provisioning tools, the "opensipsctl" and "osipsconsole". These tools need to be replace with a news and more powerful tool that has to address the existing problems/limitations : use a high-level programing language as Python to overcome the lack of libraries (Shell language is now used); use a generic SQL interface to support multiple DB types (mysql, postgres, sqlite, oracle and more); use a JSONRPC connection with OpenSIPS (versus the existing text oriented one); give the end-user a console-like experience, with help, history, tab-completion.

'''Result:''' New console oriented provisioning tool for OpenSIPS, for DB and Management operations.

'''Rating:''' medium

'''Mentors:''' Bogdan Iancu

[[#backendtracing]]
!!! New transport backends for traced data

'''Tags:''' New Feature, tracing, data, backend,

'''Skills:''' C programming, networking protocols

'''Description:''' The data traced by OpenSIPS is now transported to the capturing node (Homer) via the HEP protocol. We are looking for the ability to support multiple backends for moving the traced data, like RabbitMQ or REST. The work will start with re-factoring the existing tracing and capturing modules in order to define a new API in front of the existing HEP transport protocol. The second step will consists of adding (on top of this new API) new transport backends.

'''Result:''' New OpenSIPS module to allow the transport of traced data via new communication protocols/models.

'''Rating:''' medium

'''Mentors:''' Bogdan Iancu

January 19, 2018, at 11:33 AM by razvancrainea -
Changed lines 21-22 from:
'''Skills:'''
to:
'''Tags:''' New Feature

'''Skills:''' C/C++ programming, networking protocols
Changed lines 27-30 from:
'''Result:'''

'''Rating:'''
to:
'''Result:''' A new OpenSIPS module that is able to communicate with a Diameter server to do AAA(Authentication, Authorization and Accounting).

'''Extra:''' Integrate the new diameter module with the OpenSIPS accounting interface.

'''Rating:''' medium-hard
Added lines 38-39:
'''Tags:'''
Changed lines 50-52 from:
[[#opensips-cp-ng]]
!!! OpenSIPS Control Panel NG
to:

[[#opensipsctl]]
!!! Enhanced opensipsctl & osipsconsole

'''Tags:'''
Changed lines 66-70 from:
[[#opensipsctl]]
!!! Enhanced opensipsctl & osipsconsole

'''Skills:'''
to:
[[#opensips-cp-ng]]
!!! OpenSIPS Control Panel NG

'''Tags:''' Web application

'''Skills:''' Web application
Deleted lines 80-92:
[[#gnutls]]
!!! GnuTLS Transport Support

'''Skills:'''

'''Description:'''

'''Result:'''

'''Rating:'''

'''Mentors:'''
Changed lines 109-111 from:
'''After''' you have gone through all the details above, you can start your application here:
to:
Submit your application.

'''After''' you have gone through all the details above, you can send your application for a review using this
Added line 113:
* Submit your application on GSoC website.
January 18, 2018, at 06:44 PM by razvancrainea -
Added line 22:
Added line 24:
Added line 26:
Added line 28:
Added line 35:
Added line 37:
Added line 39:
Added line 41:
Added line 48:
Added line 50:
Added line 52:
Added line 54:
Added line 61:
Added line 63:
Added line 65:
Added line 67:
Added line 74:
Added line 76:
Added line 78:
Added line 80:
January 18, 2018, at 06:43 PM by razvancrainea -
Added line 18:
[[#diameter]]
Added lines 21-27:
'''Skills:'''
'''Description:'''
'''Result:'''
'''Rating:'''
'''Mentors:'''

[[#testing]]
Added lines 30-36:
'''Skills:'''
'''Description:'''
'''Result:'''
'''Rating:'''
'''Mentors:'''

[[#opensips-cp-ng]]
Added lines 39-45:
'''Skills:'''
'''Description:'''
'''Result:'''
'''Rating:'''
'''Mentors:'''

[[#opensipsctl]]
Added lines 48-54:
'''Skills:'''
'''Description:'''
'''Result:'''
'''Rating:'''
'''Mentors:'''

[[#gnutls]]
Added lines 56-61:

'''Skills:'''
'''Description:'''
'''Result:'''
'''Rating:'''
'''Mentors:'''
January 18, 2018, at 05:39 PM by razvancrainea -
Changed line 47 from:
** create a SIP account on [[voip.opensips.org]] VoIP service.
to:
** create a SIP account on [[http://voip.opensips.org | voip.opensips.org]] VoIP service.
January 18, 2018, at 05:37 PM by razvancrainea -
Changed lines 46-47 from:
** do some reading on ''VoIP'', ''SIP'', ''SIP call flows''
to:
** do some reading on ''OpenSIPS'', ''VoIP'', ''SIP'', ''SIP call flows''
** create a SIP account on [[voip.opensips.org]] VoIP service.
Changed line 56 from:
After and only after you have gone through all the details on this page, you can start your application here:
to:
'''After''' you have gone through all the details above, you can start your application here:
January 18, 2018, at 05:24 PM by razvancrainea -
Added line 43:
Get yourself comfortable with what OpenSIPS is and what it does.
January 18, 2018, at 05:23 PM by razvancrainea -
Changed line 57 from:
Good luck!
to:
'''Good luck!'''
January 18, 2018, at 05:22 PM by razvancrainea -
Changed line 41 from:
!!!Student Proposal Guide
to:
!!!Prerequisites
January 18, 2018, at 05:07 PM by razvancrainea -
Changed line 43 from:
* first and foremost, register an opensips.org wiki account. You can now start editing!
to:
Changed lines 50-54 from:

* you understand the aim of the project, you have some minimal overview on the project codebase and some ideas are starting to take shape! That's great! Congrats!
* create ''your own'' www.opensips.org/Development/GSoC-Proposal-'''Name'''-'''Surname''' page (access your link, hit '''Create New Page''') starting from [[ http://www.opensips.org/Development/GSoC-Proposal-Template | this template ]] ('''Edit''' button on bottom of the page -> copy-paste), and make it as complete as possible
* if you're stuck on something, you don't know what to do next, or have any sort of other problems, do not hesitate to ask questions in the chat
to:
* you understand the goal of the project, you have some minimal overview on the project codebase and some ideas are starting to take shape! That's great! Congrats!
Changed lines 54-57 from:
Peter Perfect - http://www.opensips.org/Development/GSoC-Proposal-Peter-Perfect
to:
After and only after you have gone through all the details on this page, you can start your application here:
* [[https://docs.google.com/forms/d/e/1FAIpQLSck2aqLpiWO1a8BSTaucjPRwexwQgyjGan3N-AxITXK9-GwIQ/viewform| Application Form]]

Good luck!
January 16, 2018, at 03:54 PM by razvancrainea -
Changed lines 17-18 from:
!! GSoC 2018
to:
Added lines 27-29:

[[#gsoc2018]]
!! GSoC 2018
January 16, 2018, at 03:53 PM by razvancrainea -
Changed line 9 from:
to:
----
Changed line 16 from:
to:
----
Changed line 40 from:
----
to:
January 16, 2018, at 03:52 PM by razvancrainea -
Added lines 1-55:
!!!!!Development -> Ideas List

(:toc-float Table of Content:)

----

[[#intro]]
!! Introduction

This page contains ideas of projects that can be implemented. It has been created for the [[https://summerofcode.withgoogle.com/|GSoC 2018]] program, but we encourage you to maintain this page throughout the entire year.

This page is globally editable (create a wiki account and start hacking), and you are free to add '''your own''' project ideas. They will be actively analyzed by the OpenSIPS core team, and all the projects accepted will be promoted on our mailing list.

[[#projects]]
!! Projects List

!! GSoC 2018

!!! Diameter Support

!!! Unit testing platform

!!! OpenSIPS Control Panel NG

!!! Enhanced opensipsctl & osipsconsole

!!! GnuTLS Transport Support

!!!Important Notice
----
* Remember the deadline for student applications: '''March 27 16:00 UTC'''
* Get in touch with us on '''IRC'''. You can reach us in channel ''#opensips'' on the Freenode IRC network (irc.freenode.net). Talk to one of these guys: '''bogdan_vs''', '''razvanc''' or '''liviuc'''. You can also find us on Slack ([[https://opensips.slack.com/]]).
* You should also enroll yourself in the '''Users''' and '''Devel''' mailing lists. More info in the [[ http://www.opensips.org/Support/Contact | Contact page ]].
* Communication is important. Students which actively communicate with us are more likely to be selected for a given project (there are exceptions that prove the rule, of course). For the quick and witty developers among you, here is a list of interesting things you could do while learning (pun intended):
** You could jump in the [[ http://www.opensips.org/Documentation/Development-Tutorials | developer courses ]] and learn more about our codebase
** You could skim over our [[ https://github.com/OpenSIPS/opensips/issues| tracker ]] and try to handle some of the tasks. The easy ones have been tagged with ''help wanted'' and ''good first issue'' tags.


!!!Student Proposal Guide
----
* first and foremost, register an opensips.org wiki account. You can now start editing!
* read and learn about OpenSIPS as much as you can. Here are some quick, basic (and fun) things you could do:
** do some reading on ''VoIP'', ''SIP'', ''SIP call flows''
** understand what ''OpenSIPS'' is, install a ''softphone'' on your favorite Linux distribution, register it to ''opensips.org'', and call ''razvan@opensips.org'' :D
** now that you've acquainted yourself with the proxy as a '''user''', [[ http://www.opensips.org/Downloads/Downloads | download the source ]] code and start digging and learning as a '''developer'''
** now is a good time to read the [[ http://www.opensips.org/Development/IdeasList#projects | project proposals ]], and pick the one which suits you best
** if you don't understand anything, ''it's perfectly normal!'' go back to bullet 1 or talk to us on IRC/Slack

* you understand the aim of the project, you have some minimal overview on the project codebase and some ideas are starting to take shape! That's great! Congrats!
* create ''your own'' www.opensips.org/Development/GSoC-Proposal-'''Name'''-'''Surname''' page (access your link, hit '''Create New Page''') starting from [[ http://www.opensips.org/Development/GSoC-Proposal-Template | this template ]] ('''Edit''' button on bottom of the page -> copy-paste), and make it as complete as possible
* if you're stuck on something, you don't know what to do next, or have any sort of other problems, do not hesitate to ask questions in the chat

!!!Student Application

Peter Perfect - http://www.opensips.org/Development/GSoC-Proposal-Peter-Perfect

Page last modified on February 13, 2018, at 01:25 PM