Asterisk/Freepbx Engineer

Remote Posted 1d First seen 14h
ATS Keyword Match See which key terms from this posting your resume already has. Free.
REQUIRED
  • You have administered a production Asterisk or FreePBX system with real inbound traffic. Not a lab, not a course, not a Twilio/Vapi integration on its own.
  • Shell access comfort: asterisk -rvvvvv, pjsip set logger on, reading the full log, querying the CDR database
  • You can write and debug dialplan by hand, not only through the GUI
  • Comfortable on Ubuntu: systemd, Nginx, log files, firewall
  • Node.js well enough to read, fix, and build backend services around the PBX
  • Git workflow: branch, commit with a clear message, pull request
  • You trace a problem to root cause before changing anything, and you can say which segment of the call path owns the fault
  • Strong written English - every fix needs a written explanation
PART ONE - PBX ISSUE BACKLOG
  • Working through an existing backlog of audited issues
  • Inbound call routing: DIDs, inbound routes, IVRs, queues, time conditions, failover destinations
  • Custom dialplan work where the FreePBX GUI cannot express the logic
  • SIP trunk configuration and carrier troubleshooting
  • Debugging call failures end to end - carrier SIP trace, Asterisk logs, AstDB, dialplan, database state, backend workers
  • Blocking, rate limiting, and spam-protection logic
  • CDR reporting and call-data queries
PART TWO - AFTER-HOURS VOICE AI AGENT
  • Time-condition routing so calls go to the AI outside business hours and on weekends, and to the normal destinations during the day
  • Getting call audio in and out of Asterisk to the AI service - AudioSocket, ARI externalMedia, or equivalent - with acceptable latency
  • Handling interruption and barge-in so the caller can speak over the agent
  • Warm transfer and escalation: the agent hands off to a human, a queue, or voicemail when it can't handle the call
  • A fallback path so that if the AI service is slow or down, the call still gets answered. Callers must never hit dead air.
  • Capturing what happened on the call - transcript, caller details, outcome - and pushing it somewhere useful
  • Tuning the agent based on real call recordings, not assumptions
TECHNICAL ENVIRONMENT
  • Asterisk / FreePBX on Ubuntu
  • chan_pjsip, SIP trunks (registration-based and IP-authenticated)
  • Custom dialplan in extensions_custom.conf, AGI hand-offs
  • Node.js backend services, PM2, Nginx
  • PostgreSQL / MySQL, Redis
  • Git / GitHub - issues, branches, pull requests
  • Several thousand DIDs under management
I run two production Asterisk/FreePBX servers handling live inbound calls for US businesses. Several thousand DIDs across both. This is real traffic - when the PBX is down, revenue stops.
There are two halves to this job.
FIRST: fix what's broken. I have already completed a full technical audit of both systems. The findings are written up as issues in a private GitHub repo. You pick them up, diagnose, fix, test, push, and document what changed.
SECOND: build the after-hours voice AI. I want an AI agent answering calls on nights and weekends - capturing the caller's details, handling common requests, and escalating or taking a message when it can't. You'll design and build that integration into the existing PBX.
This role is telephony only. You will not touch my websites, CRM, or other applications. Your entire focus is the two PBX servers, the voice AI layer, and the backend code around them.
  • You have already connected an AI voice agent to a real phone system - Vapi, Retell, ElevenLabs, Deepgram, OpenAI Realtime, or a custom STT/LLM/TTS pipeline
  • Real-time media streaming from Asterisk (AudioSocket, ARI externalMedia, EAGI)
  • Carrier-side troubleshooting (codec negotiation, NAT/RTP, session timers)
  • fail2ban and SIP security hardening
  • AI coding tools (Claude Code, Cursor) used with judgment on real code
  • Experience being the only telephony person in an organization