Senior VoIP/Telephony Engineer — Live Inbound Call-Center Platform (Telnyx + Node)— Full Time
Worldwide
We run a live inbound call center and have built our own custom call-center platform on top of Telnyx. It's in production right now with 15 agents taking real calls daily. The core is built and working — we need a senior telephony engineer to take ownership, work out the remaining intermittent bugs, and get it fully across the finish line. Our stack: Telephony: Telnyx (SIP trunking, DIDs, call control API, recordings) Backend: Node.js / Express, single service, deployed on Render, Postgres database Softphone: Zoiper Pro on agent machines (we are open to replacing this — see below) Frontend: Custom admin panel + agent cockpit (browser-based), plus a partner/publisher reporting portal Agents: ~15 reps based in Pakistan. This is a primarily inbound operation — US customers call in to our Pakistan-based reps. Outbound is used only for manual dials and callbacks (occasionally Pakistan → US). Goal is to get 200+ reps on the system. What's already built and working: Full inbound call routing with center/team scoping and priority-based agent selection Agent cockpit: live call control, click-to-dial for manual/callbacks, disposition system, wrap-up handling Reps both close sales in-house and warm-transfer callers to external buyers/closers (three-way transfer) — both paths matter Live call monitoring + supervisor live-listen Call recording + transcript storage and playback, center-scoped Role-based access: admin, supervisor, QA, agent — each scoped and enforced at the API layer Break status tracking, hours reporting (online vs break vs unavailable), attendance alerting Sale disposition + supervisor sale-approval workflow with full audit trail Partner/publisher portal: publishers log in and see only their own calls, verdicts, payouts, and AI-sold stats (pay-per-call reporting with dedupe + duration rules) Scheduler, callback system, in-app alerting, CSV exports Session/state janitors, zombie-call cleanup, admin force-end tooling What we need help with — the remaining kinks (all intermittent, which is the hard part): Disposition / sale-submission forms occasionally don't pop up (cockpit ↔ server state drift) Callback feature works inconsistently Agents occasionally receive an inbound call while on a manual outbound call, or while offline Three-way transfer that disconnects mid-call sometimes gets stuck with no disposition, requiring agent logout/login to clear Break status flickering General hardening of the state-sync between the browser cockpit and the backend Most of these are timing / state-synchronization issues between the agent's browser and the server, driven by asynchronous Telnyx webhooks — not simple logic bugs. We need someone who understands SIP call state, webhook race conditions, and how to keep in-memory session state and database truth reconciled under real-world network conditions (our agents are on variable Pakistan connections, so latency and packet loss are real factors). Also on the table — audio quality & softphone: Call audio is sometimes noisy/low-quality for our Pakistan agents. We're on Zoiper Pro but open to a better solution, including a WebRTC browser-based softphone embedded directly in our cockpit to eliminate the separate app. Strong experience here — codec strategy (Opus/FEC/G.722), media routing, WebRTC vs native softphone on poor connections — is a big plus. The arrangement: Full-time to start — someone who can go deep, take ownership, and drive the remaining work to done. Part-time / retainer after — ongoing maintenance, new features, and being our on-call telephony expert once it's stable. We move fast, communicate directly, and make decisions quickly. You'd work closely with the owner. This is a real production system with real revenue running through it, so careful, verified changes matter more than speed-at-all-costs. To apply — answer both of the following. Applications that don't address these specifically will not be considered. Question 1 (one sentence): In a Telnyx (or FreeSWITCH) call-control setup, is webhook delivery guaranteed, ordered, and exactly-once? Question 2: Our call state lives in two places — in-memory session objects on our Node server, and rows in Postgres — both updated by asynchronous Telnyx webhooks that can arrive out of order, be delayed, or occasionally be lost entirely. Several of our intermittent bugs (calls stuck as "N/A" after a transfer disconnect, disposition screens not appearing, agents appearing busy when idle) come from these two sources of truth drifting apart. Walk us through: (1) how you'd architect the reconciliation so the server's live state is provably correct even when a webhook is dropped or arrives late; (2) when a three-way transfer's buyer leg disconnects, how you'd determine whether the customer is still on the line and keep that call dispositionable rather than orphaning it; and (3) how you'd detect and clean up "zombie" sessions without ever killing a call that's genuinely still connected. Tell us what you'd trust as the source of truth — the webhook stream, the Telnyx API, your DB, or your in-memory state — and why. Finally, briefly describe the most similar production system you've personally built or hardened (Telnyx, or FreeSWITCH/Asterisk) and its scale.
- More than 30 hrs/weekHourly
- 6+ monthsDuration
- ExpertExperience Level
- Remote Job
- Ongoing projectProject Type
Skills and Expertise
Activity on this job
- Proposals:20 to 50
- Last viewed by client:3 weeks ago
- Hires:1
- Interviewing:13
- Invites sent:0
- Unanswered invites:0
About the client
- United StatesNew York1:52 AM
- $71K total spent25 hires, 8 active
- 986 hours
- Individual client
Explore similar jobs on Upwork
How it works
Create your free profileHighlight your skills and experience, show your portfolio, and set your ideal pay rate.
Work the way you wantApply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
Get paid securelyFrom contract to payment, we help you work safely and get paid securely.
About Upwork
- 4.9/5(Average rating of clients by professionals)
- G2 2021#1 freelance platform
- 49,000+Signed contract every week
- $2.3BFreelancers earned on Upwork in 2020
Find the best freelance jobs
Growing your career is as easy as creating a free profile and finding work like this that fits your skills.
Trusted by