impl. a incoming call detector SIP/VoIP

Job ID: 36140340

Budget: $2 – $30 USD

Your task is to implement a prototype (in Java), which detects incoming SIP/VoIP calls. On incoming call the desktop app opens a browser with a (caller-)URL.
So the app has to work standalone on a desktop (windows, macOS, linux) and have to communicate with a SIP provider only. e.g https://www.sipgate.com/

The caller-URL contains some query parameters, like the callers number.
The app can run only one instance and is listening to incoming calls. On incoming call it triggers a browser open of the above caller URL.

use https://aebb.es/a5v7d or similar java library/framework

The environment:
- your SIP application to implement
- one or more SIP desk phones running on same SIP account
- one ore more softphones (laptop, smartphone, ...) running on same SIP account


1. your SIP application shall now detect incoming calls (rings)
2. if possible to detect which device has taken off hook (the call)
3. if possible how long the call was going with the different phone


We have some exiting code of a proof of concept, which does not work anymore. So you do not start from scratch.
But it is mandatory that you are a master of SIP+java to get to an success

The listener shall be configurable, means
- what URL to call
- which phone numbers to ignore
- which phone numbers to track (regEx)


Your task is to implement Java classes to be able to access details of incoming calls as a listener.
Implement JUnit test cases, which is showing how the implemented listener is required to be configured (regex, ignore numbers, URL) The Q-question is a formula, place result into the bid.

A good starting point for SIP starters may be:
https://aebb.es/gn2wn
https://aebb.es/ne-ug


You need to implement for:
- linux & windows (a basic java best practice and requirement, ensure system independent development)

What is NOT needed:
- a UI (not required, implement a JUnit test to call your functions)
- a service architecture (like spring or JEE)
- any persistence
- a voice/audio implementation for SIP (only incoming ringing required)

Milestones:

MS1:
very basic implementation of SIP
https://aebb.es/xnw2-

MS2:
the rest of the above named requirements

MS3:
with and without TLS / SRTP support
TLS / SRTP, shall be mandatory for later usage of this app


What are our requirements?
- your code passes checkstyle, pmd and spotbugs (we will share you a git repo with eclipse settings)
- JDK17
- maven
- 24/8 formula
- create a model class representing the input of your function
- create a service class implementing the logic
- create a unit test, which tests the service class
- we do NOT need a UI, we only need the model + service method to access the logic via JUnit
- if you need libs selenium or apache commons are fine. Other libs NEED prior clearance
- the runtime is JRE (no JavaEE nor Spring-container)
- delivery in our git

Outlook
- we want to have a prototype/POC to fiddle around with the possibilities on our environment
- after the prototype phase, we will have more tasks to implement to a full app, so preferably you/your team will get also this tasks
- if you do a good job on supporting our team, we are open to integrate you into regular work and we will share you more tasks about SIP implementations

What is our budget?
we do not disclose our budget nor planned hourly rate. Offer us your best bid.

Your bid?
Place your best hourly bid. We do not want to negotiate with you anymore after getting in touch with you.
So place your best bid to save time here

Communication:
Do not wait for our availability here. Just answer, just ask or just reply.