impl. a incoming call detector SIP/VoIP with pjsip
Budget: $2 – $20 USD
Your task is to make a self running prototype (in Java), which detects incoming SIP/VoIP calls. On incoming call pjsip app opens a browser with a (caller-)URL. This has to be done in pjsip (see https://github.com/pjsip/pjproject/blob/master/pjsip-apps/src/swig/java/sample.java and https://github.com/pjsip/pjproject/blob/master/pjsip-apps/src/swig/java/sample2.java and https://docs.pjsip.org/en/latest/pjsua2/using/call.html)
So the app has to work standalone on a desktop (windows, linux, macOS) and have to communicate with a SIP provider only. e.g https://www.sipgate.com/ (we will share you a fully working sip account after award)
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 pjsip
The SIP environment:
- your SIP app with pjsip, connected to the sipgate-account
- 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, no hook take off)
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
The listener shall be configurable, means
- what URL to call
- which phone numbers to ignore (regex)
- which phone numbers to track (regEx)
Your task is to modify jitsi to be able to access details of incoming calls as a listener.
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 pjsip to listen on incoming calls, see sample
and to run event command to open browser with the caller-url
MS2:
provide a standalone app, which is listening to specific URLs, and firing a pjsip dial number of the given phone number
(execute a command (cmd/bash) to dial a number via pjsip)
MS3:
make pjsip headless / invisible/trayed
So no UI is shown to a user for background operations of pjsip
MS4:
package pjsip app in a custom installer
which asks the user on first starting in a very simplistic UI, about the required SIP account details
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.
So the app has to work standalone on a desktop (windows, linux, macOS) and have to communicate with a SIP provider only. e.g https://www.sipgate.com/ (we will share you a fully working sip account after award)
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 pjsip
The SIP environment:
- your SIP app with pjsip, connected to the sipgate-account
- 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, no hook take off)
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
The listener shall be configurable, means
- what URL to call
- which phone numbers to ignore (regex)
- which phone numbers to track (regEx)
Your task is to modify jitsi to be able to access details of incoming calls as a listener.
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 pjsip to listen on incoming calls, see sample
and to run event command to open browser with the caller-url
MS2:
provide a standalone app, which is listening to specific URLs, and firing a pjsip dial number of the given phone number
(execute a command (cmd/bash) to dial a number via pjsip)
MS3:
make pjsip headless / invisible/trayed
So no UI is shown to a user for background operations of pjsip
MS4:
package pjsip app in a custom installer
which asks the user on first starting in a very simplistic UI, about the required SIP account details
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.