Inbound Call Center Software Build
Budget / SalaryHourly project
TypeFreelance project
LocationRemote
Posted1 hour ago
# TelesalesOS — Telnyx Telephony/ACD Contact Center Developer
Our stack is Next.js, React, TypeScript, Supabase/Postgres/Auth/Realtime, Vercel and GitHub.
We need an experienced programmable-voice/contact-center developer to build the Telnyx-powered telephony portion. This is not a simple click-to-call integration. We need a production-grade browser softphone, inbound ACD, queues, routing rules, supervisor monitoring, recordings, CRM screen pops, compliance controls and searchable call logs.
## Required experience
Applicants should have real experience with several of the following:
* Telnyx Voice API/Call Control
* Telnyx JavaScript or React WebRTC SDK
* SIP and WebRTC
* Browser softphones
* ACD/contact-center development
* Call queues and routing
* Telnyx conferences
* Monitor, whisper and barge
* Call recording
* Node.js/TypeScript
* PostgreSQL/Supabase
* Realtime agent presence
* Event-driven webhooks
* AWS S3/Object Lock
* Multi-tenant SaaS security
Basic Twilio/Telnyx API experience is insufficient. You must understand call legs, call sessions, SIP/WebRTC registration, webhook retries, duplicate and out-of-order events, atomic agent reservation and production call failures.
## Existing platform
* Next.js/React/TypeScript
* Tailwind and shadcn/ui
* Supabase Postgres
* Supabase Authentication
* Supabase Realtime
* Vercel
* GitHub
* Telnyx
* Stripe
* Planned AWS S3 recording archive
The existing repository must remain the source of truth. Work will be submitted through branches and reviewed pull requests.
# Required functionality
## 1. Multi-tenant telephony
Every number, agent, queue, campaign, call, recording, routing rule and usage record belongs to an organization.
Roles:
* Super Admin
* Agency Admin
* Sales Manager
* Retention Manager
* Agent
* QA/Compliance Reviewer
Supabase Row Level Security and server-side authorization are required. Client-side filtering is not sufficient. No agency may access another agency’s calls, recordings or users.
## 2. Browser softphone
Build an embedded Telnyx WebRTC phone with:
* Secure short-lived authentication tokens
* Inbound and outbound calls
* Answer/reject/hang up
* Mute/unmute
* Hold/resume
* Dial pad/DTMF
* Warm and cold transfers
* Conference participant
* Call timer and connection status
* Audio-device selection
* Incoming-call notification
* Reconnection/error handling
* Notes, dispositions and wrap-up timer
* Automatic CRM association
Never expose Telnyx API keys, permanent SIP credentials or Supabase service-role keys in the browser.
## 3. Agent presence
Track:
* Offline
* Available
* Reserved
* Ringing
* On Call
* On Hold
* After-Call Work
* Break
* Training
* Do Not Disturb
Presence needs heartbeat/expiration behavior when browsers close or internet connections fail. Agent reservation must be atomic so two calls cannot select the same agent.
The developer should recommend whether managed Redis is needed alongside Supabase for presence, locks and low-latency routing.
## 4. Inbound ACD and queues
Initial required queues:
1. Sales
2. Retention
Admins must be able to create more queues without code changes.
Queue settings should include:
* Assigned numbers, teams and agents
* Agent skills and priorities
* Product and language
* State-license requirements
* Ring and maximum wait times
* Wrap-up time
* Business hours and holidays
* Overflow queue/number
* Voicemail
* Callback option
* Recording settings
* Service-level targets
Routing strategies:
* Longest idle
* Round robin
* Weighted
* Priority based
* Skill based
* State-license based
* Language based
* Product based
* Assigned agent/lead owner
* Last agent
* Campaign based
* Overflow and fallback
The routing decision and reason must be stored for auditing.
## 5. Campaigns and outbound calls
Campaigns require:
* Name and organization
* Inbound/outbound type
* Queue
* Agents
* Caller ID/number pool
* Product and lead source
* State restrictions
* Business hours
* Routing rules
* Consent requirements
* Script
* Dispositions
* Active/paused status
Initial outbound modes:
* Manual dialing
* CRM click-to-call
* Preview dialing
* Agent-requested next lead
* Manager-assigned lists
Do not build an unattended predictive/autodialing system without separate written approval.
## 6. CRM screen pops
An inbound call must automatically open the matching CRM lead/contact using the caller number, dialed number, campaign, lead owner, source and recent activity.
Display:
* Prospect information
* Product interest
* Lead source/vendor
* Assigned agent
* Notes and prior calls
* Appointments
* DNC status
* TrustedForm evidence
* Jornaya evidence
* Dynamic script
If no match exists, the agent can create a lead while remaining on the call. Outbound calls must automatically link to the correct lead, agent and campaign.
## 7. Configurable routing rules
Admins must configure routing without code changes using:
* Queue/campaign
* Called number
* Lead source/vendor
* State and agent licensing
* Product/language
* Time zone/business hours
* Agent skills/priority
* Lead ownership
* Previous agent
* Contact-attempt count
* Consent and DNC status
* Sales versus retention purpose
Support rule priority, conditions, actions, fallbacks, effective dates, versions, test mode and audit logs.
## 8. Live-call supervisor dashboard
Authorized Super Admins, Admins and Managers need a Live Calls screen showing:
* Agent and prospect
* Queue and campaign
* Call direction/status
* Start time/duration
* Hold and recording status
* CRM record
* Connection health
Controls:
* Monitor: supervisor hears the call but neither party hears the supervisor
* Whisper: agent hears the supervisor but prospect does not
* Barge: both parties hear the supervisor
* Change modes or leave
Use Telnyx conference supervisor functionality where appropriate. Every supervisor action must be authorized and logged with supervisor, agent, call, mode, timestamp and result.
## 9. Recording and seven-year retention
Support automatic inbound/outbound recording, dual-channel audio where practical, recording announcements, jurisdiction settings, recording status and failure alerts.
Telnyx is the recording origin, not the permanent archive.
After the Telnyx recording-saved webhook, recordings must be archived in TelesalesOS-controlled AWS storage using:
* S3 Object Lock
* Versioning
* Encryption
* Restricted IAM
* Seven-year retention
* Legal holds
* Integrity hashes
* Audit logs
* Secure expiring playback URLs
* Lifecycle and disaster-recovery procedures
Ordinary agents and managers cannot delete recordings.
## 10. Searchable call logs
Search by:
* Date/time range
* Agent/team
* Prospect/telephone number
* Direction
* Queue/campaign
* Lead source/vendor
* Disposition/status
* Recording availability
* TrustedForm/Jornaya status
* Supervisor participation
Store internal and Telnyx identifiers, call legs/session, organization, lead, numbers, timestamps, ring/talk/hold/wrap-up duration, hang-up cause, disposition, notes, recording references, routing decision, consent evidence and usage cost.
Store timestamps in UTC and display them in the user’s selected time zone.
## 11. TrustedForm, Jornaya and consent evidence
CRM leads must store:
* TrustedForm certificate URL/ID
* Jornaya LeadID
* Consent timestamp
* Consent language/version
* Source URL
* Vendor
* Lead timestamp
* Consent scope
* Covered telephone number
* Validation status/history
TelesalesOS must receive these fields through API lead ingestion, display them in the CRM/calling screen, preserve their relationship to each call and pass permitted tokens to approved systems.
Configurable rules may flag or block dialing when required evidence is missing. Do not claim that a token automatically makes a call compliant.
## 12. DNC controls
Before calling, check:
* Contact DNC
* Organization DNC
* Platform suppression
* Campaign suppression
* Calling hours
* Consent requirements
DNC status must prevent future automated contact. Store the source, reason and timestamp. Ordinary users cannot bypass it. Unauthorized overrides must be rejected and logged.
The architecture should support future SMS STOP handling.
## 13. Usage and billing ledger
Track each call’s organization, agent, duration, Telnyx cost, TelesalesOS charge, recording/transcription costs and billing classification.
Business rules:
* Agents receiving free company leads do not personally pay telco charges.
* Other agents may pay their own usage.
Create an auditable ledger that can later connect to Stripe. Use integer minor units or precise decimal fields, never floating-point money calculations.
## 14. Webhooks and reliability
Telnyx webhooks must be:
* Signature verified
* Idempotent
* Quickly acknowledged
* Processed asynchronously where appropriate
* Safe against duplicates/out-of-order delivery
* Retried with backoff
* Sent to a failure/dead-letter process
* Correlated to call sessions/legs
* Reconciled when local and Telnyx states disagree
Implement structured logs, correlation IDs, health checks, error monitoring and alerts for webhook delays, dropped calls, WebRTC failures and recording failures.
## 15. Backend infrastructure
Vercel can host the Next.js interface and ordinary APIs.
Persistent WebSockets, realtime media streams and long-running call processes require an appropriate persistent service. Propose AWS ECS/Fargate, App Runner, Fly.io, Render, Cloud Run or another justified option.
Preferred backend language: TypeScript/Node.js.
Future AI call coaching will use live Telnyx media streaming, transcription and OpenAI. It is not part of the initial milestone, but the architecture must support it later.
Our stack is Next.js, React, TypeScript, Supabase/Postgres/Auth/Realtime, Vercel and GitHub.
We need an experienced programmable-voice/contact-center developer to build the Telnyx-powered telephony portion. This is not a simple click-to-call integration. We need a production-grade browser softphone, inbound ACD, queues, routing rules, supervisor monitoring, recordings, CRM screen pops, compliance controls and searchable call logs.
## Required experience
Applicants should have real experience with several of the following:
* Telnyx Voice API/Call Control
* Telnyx JavaScript or React WebRTC SDK
* SIP and WebRTC
* Browser softphones
* ACD/contact-center development
* Call queues and routing
* Telnyx conferences
* Monitor, whisper and barge
* Call recording
* Node.js/TypeScript
* PostgreSQL/Supabase
* Realtime agent presence
* Event-driven webhooks
* AWS S3/Object Lock
* Multi-tenant SaaS security
Basic Twilio/Telnyx API experience is insufficient. You must understand call legs, call sessions, SIP/WebRTC registration, webhook retries, duplicate and out-of-order events, atomic agent reservation and production call failures.
## Existing platform
* Next.js/React/TypeScript
* Tailwind and shadcn/ui
* Supabase Postgres
* Supabase Authentication
* Supabase Realtime
* Vercel
* GitHub
* Telnyx
* Stripe
* Planned AWS S3 recording archive
The existing repository must remain the source of truth. Work will be submitted through branches and reviewed pull requests.
# Required functionality
## 1. Multi-tenant telephony
Every number, agent, queue, campaign, call, recording, routing rule and usage record belongs to an organization.
Roles:
* Super Admin
* Agency Admin
* Sales Manager
* Retention Manager
* Agent
* QA/Compliance Reviewer
Supabase Row Level Security and server-side authorization are required. Client-side filtering is not sufficient. No agency may access another agency’s calls, recordings or users.
## 2. Browser softphone
Build an embedded Telnyx WebRTC phone with:
* Secure short-lived authentication tokens
* Inbound and outbound calls
* Answer/reject/hang up
* Mute/unmute
* Hold/resume
* Dial pad/DTMF
* Warm and cold transfers
* Conference participant
* Call timer and connection status
* Audio-device selection
* Incoming-call notification
* Reconnection/error handling
* Notes, dispositions and wrap-up timer
* Automatic CRM association
Never expose Telnyx API keys, permanent SIP credentials or Supabase service-role keys in the browser.
## 3. Agent presence
Track:
* Offline
* Available
* Reserved
* Ringing
* On Call
* On Hold
* After-Call Work
* Break
* Training
* Do Not Disturb
Presence needs heartbeat/expiration behavior when browsers close or internet connections fail. Agent reservation must be atomic so two calls cannot select the same agent.
The developer should recommend whether managed Redis is needed alongside Supabase for presence, locks and low-latency routing.
## 4. Inbound ACD and queues
Initial required queues:
1. Sales
2. Retention
Admins must be able to create more queues without code changes.
Queue settings should include:
* Assigned numbers, teams and agents
* Agent skills and priorities
* Product and language
* State-license requirements
* Ring and maximum wait times
* Wrap-up time
* Business hours and holidays
* Overflow queue/number
* Voicemail
* Callback option
* Recording settings
* Service-level targets
Routing strategies:
* Longest idle
* Round robin
* Weighted
* Priority based
* Skill based
* State-license based
* Language based
* Product based
* Assigned agent/lead owner
* Last agent
* Campaign based
* Overflow and fallback
The routing decision and reason must be stored for auditing.
## 5. Campaigns and outbound calls
Campaigns require:
* Name and organization
* Inbound/outbound type
* Queue
* Agents
* Caller ID/number pool
* Product and lead source
* State restrictions
* Business hours
* Routing rules
* Consent requirements
* Script
* Dispositions
* Active/paused status
Initial outbound modes:
* Manual dialing
* CRM click-to-call
* Preview dialing
* Agent-requested next lead
* Manager-assigned lists
Do not build an unattended predictive/autodialing system without separate written approval.
## 6. CRM screen pops
An inbound call must automatically open the matching CRM lead/contact using the caller number, dialed number, campaign, lead owner, source and recent activity.
Display:
* Prospect information
* Product interest
* Lead source/vendor
* Assigned agent
* Notes and prior calls
* Appointments
* DNC status
* TrustedForm evidence
* Jornaya evidence
* Dynamic script
If no match exists, the agent can create a lead while remaining on the call. Outbound calls must automatically link to the correct lead, agent and campaign.
## 7. Configurable routing rules
Admins must configure routing without code changes using:
* Queue/campaign
* Called number
* Lead source/vendor
* State and agent licensing
* Product/language
* Time zone/business hours
* Agent skills/priority
* Lead ownership
* Previous agent
* Contact-attempt count
* Consent and DNC status
* Sales versus retention purpose
Support rule priority, conditions, actions, fallbacks, effective dates, versions, test mode and audit logs.
## 8. Live-call supervisor dashboard
Authorized Super Admins, Admins and Managers need a Live Calls screen showing:
* Agent and prospect
* Queue and campaign
* Call direction/status
* Start time/duration
* Hold and recording status
* CRM record
* Connection health
Controls:
* Monitor: supervisor hears the call but neither party hears the supervisor
* Whisper: agent hears the supervisor but prospect does not
* Barge: both parties hear the supervisor
* Change modes or leave
Use Telnyx conference supervisor functionality where appropriate. Every supervisor action must be authorized and logged with supervisor, agent, call, mode, timestamp and result.
## 9. Recording and seven-year retention
Support automatic inbound/outbound recording, dual-channel audio where practical, recording announcements, jurisdiction settings, recording status and failure alerts.
Telnyx is the recording origin, not the permanent archive.
After the Telnyx recording-saved webhook, recordings must be archived in TelesalesOS-controlled AWS storage using:
* S3 Object Lock
* Versioning
* Encryption
* Restricted IAM
* Seven-year retention
* Legal holds
* Integrity hashes
* Audit logs
* Secure expiring playback URLs
* Lifecycle and disaster-recovery procedures
Ordinary agents and managers cannot delete recordings.
## 10. Searchable call logs
Search by:
* Date/time range
* Agent/team
* Prospect/telephone number
* Direction
* Queue/campaign
* Lead source/vendor
* Disposition/status
* Recording availability
* TrustedForm/Jornaya status
* Supervisor participation
Store internal and Telnyx identifiers, call legs/session, organization, lead, numbers, timestamps, ring/talk/hold/wrap-up duration, hang-up cause, disposition, notes, recording references, routing decision, consent evidence and usage cost.
Store timestamps in UTC and display them in the user’s selected time zone.
## 11. TrustedForm, Jornaya and consent evidence
CRM leads must store:
* TrustedForm certificate URL/ID
* Jornaya LeadID
* Consent timestamp
* Consent language/version
* Source URL
* Vendor
* Lead timestamp
* Consent scope
* Covered telephone number
* Validation status/history
TelesalesOS must receive these fields through API lead ingestion, display them in the CRM/calling screen, preserve their relationship to each call and pass permitted tokens to approved systems.
Configurable rules may flag or block dialing when required evidence is missing. Do not claim that a token automatically makes a call compliant.
## 12. DNC controls
Before calling, check:
* Contact DNC
* Organization DNC
* Platform suppression
* Campaign suppression
* Calling hours
* Consent requirements
DNC status must prevent future automated contact. Store the source, reason and timestamp. Ordinary users cannot bypass it. Unauthorized overrides must be rejected and logged.
The architecture should support future SMS STOP handling.
## 13. Usage and billing ledger
Track each call’s organization, agent, duration, Telnyx cost, TelesalesOS charge, recording/transcription costs and billing classification.
Business rules:
* Agents receiving free company leads do not personally pay telco charges.
* Other agents may pay their own usage.
Create an auditable ledger that can later connect to Stripe. Use integer minor units or precise decimal fields, never floating-point money calculations.
## 14. Webhooks and reliability
Telnyx webhooks must be:
* Signature verified
* Idempotent
* Quickly acknowledged
* Processed asynchronously where appropriate
* Safe against duplicates/out-of-order delivery
* Retried with backoff
* Sent to a failure/dead-letter process
* Correlated to call sessions/legs
* Reconciled when local and Telnyx states disagree
Implement structured logs, correlation IDs, health checks, error monitoring and alerts for webhook delays, dropped calls, WebRTC failures and recording failures.
## 15. Backend infrastructure
Vercel can host the Next.js interface and ordinary APIs.
Persistent WebSockets, realtime media streams and long-running call processes require an appropriate persistent service. Propose AWS ECS/Fargate, App Runner, Fly.io, Render, Cloud Run or another justified option.
Preferred backend language: TypeScript/Node.js.
Future AI call coaching will use live Telnyx media streaming, transcription and OpenAI. It is not part of the initial milestone, but the architecture must support it later.
Apply on Freelancer →
Project sourced from Freelancer.com. Applications happen directly on the original platform — we never collect your data.