FreePBX Install & Call API
Publicada el 2026-07-16
Descripción de la oferta
Project Overview We are looking for an experienced FreePBX / Asterisk developer to install, configure, and develop a complete REST API for automating telephone bridge calls. We will provide: SSH access to a Linux server. SIP trunk credentials. Access to a remote server where call recordings will be stored. The final solution must be production-ready, stable, secure, and well documented. Phase 1 – Installation & Configuration The developer will: Install and configure FreePBX (preferred) or Asterisk if there is a clear technical advantage. Configure one or more SIP trunks. Our SIP provider allows multiple DDI (Caller IDs) on the same SIP trunk. The system must support multiple SIP trunks simultaneously. Configure automatic call recording. Secure and optimize the PBX for production use. Deliver a fully working and tested system. Phase 2 – REST API Development A REST API must be developed to control the PBX. Main Feature – Bridge Calls The API must allow creating a bridge call. Each request will include: Phone Number A Phone Number B SIP trunk to use Optional Caller ID (DDI) to display Expected Call Flow The PBX calls Number A. Wait until A answers. Once A answers, immediately call Number B. While B is ringing, A must hear the ringing tone. When B answers, both parties are connected. If either party hangs up, the call ends correctly. Call States The API must report all call states, including (but not limited to): Call created Calling A A answered A busy A rejected A did not answer Calling B B answered B busy B rejected B did not answer Bridge established Call in progress Call finished Call cancelled SIP trunk error System error The API should return clear status and error codes. Each bridge call must generate a unique Call ID that can later be used to query its status. Webhooks A webhook-based event system is preferred. The system should notify events such as: Call created Calling A A answered A hung up Calling B B answered B hung up Call connected Call finished Call duration End reason Errors Whitelist Management Only Phone Number A is required to belong to a whitelist. Phone Number B can be any destination number. The API must allow: Create whitelist number Update whitelist number Delete whitelist number Enable/disable whitelist number Get whitelist number List whitelist numbers Each whitelist entry must include at least: Phone number Name Reference Optional notes/comments Active / Inactive status Call Recordings Every call must be recorded. Recordings must automatically be uploaded to a remote server provided by us. Any reliable solution is acceptable, for example: FTP SFTP SCP Or another robust transfer method. The API must allow retrieving the call recording history for a whitelist phone number. By sending a whitelist phone number, the API should return: Recording list Date Time Duration Call status URL (or equivalent) to download or stream the recording Configuration The API should allow configuring values such as: Maximum time waiting for A to answer Maximum time waiting for B to answer Maximum call duration Retry configuration (optional) Other useful PBX settings Multi-Project Support The platform must support multiple independent projects. Each project must have its own completely isolated configuration, including: API Key Project name Webhook URL Whitelist Allowed IP addresses SIP trunks Allowed Caller IDs (DDIs) Call recordings Call history Configuration settings Logs The goal is to host multiple customers on the same server while keeping all data completely isolated. Security The API must include: API Key authentication. HTTPS support. IP whitelist protection for every API Key. Each project must be able to maintain its own list of allowed IP addresses. Permission validation on every request. Access logs. Activity logs. Error logs. Protection against unauthorized access. Additional API Features The API should also provide: Query current call status using the Call ID. Cancel a bridge call before it is connected. Retrieve complete call history with filters such as: Date range Number A Number B Project Status Duration Documentation The project must include complete documentation: Installation guide Configuration guide REST API documentation Webhook documentation OpenAPI / Swagger documentation (preferred) Postman collection or cURL examples Preferred Technologies Experience with the following will be highly valued: FreePBX Asterisk ARI AMI SIP Linux REST APIs Docker (optional but appreciated) Important We are looking for clean, well-structured, maintainable code that is easy to extend in the future. Suggestions for improving the architecture are welcome. Preferred Candidate We highly value developers with proven experience in FreePBX/Asterisk projects. Being able to communicate in Spanish is a strong advantage, as it will make communication faster and more efficient throughout the project.
Skills
Fuente original: freelancer