Overview
Telephony integration enables:- Click-to-Call: Initiate calls directly from customer or ticket records
- Automatic Ticket Creation: Create tickets automatically from incoming calls
- Call Logging: Track call history and duration
- Ticket Linking: Associate calls with existing tickets
- Supported Providers: Twilio and Exotel integration
Supported Telephony Providers
Frappe Helpdesk integrates with:- Twilio: Popular cloud communications platform
- Exotel: Cloud telephony solution for businesses
desk/src/stores/telephony.ts
Prerequisites
Before setting up telephony:Get Provider Credentials
Sign up with Twilio or Exotel and obtain:
- Account SID
- Auth Token
- Phone number
The telephony integration requires the separate Frappe Telephony app (see
helpdesk/patches/add_telephony_app.py).Telephony Store Integration
The telephony functionality is managed through a Pinia store that tracks:Call Integration Status
Check if telephony is enabled:telephony.ts:41-54
Making Calls
Click-to-Call from Tickets
Call is Initiated
The system:
- Uses configured telephony provider
- Links call to the ticket
- Starts call recording (if enabled)
Making Calls Programmatically
Call Method Configuration
Set up the call method handler:telephony.ts:29-37
Linking Calls to Documents
Link to Ticket
Associate calls with specific tickets:Link to Customer
Link calls to customer records:Call Handling
Incoming Calls
When a call comes in:- Caller Identification: System looks up phone number
- Customer Match: Finds existing customer record
- Ticket Creation: Creates new ticket if configured
- Agent Notification: Alerts available agents
- Call Routing: Routes to appropriate agent
Call Recording
If call recording is enabled:- Calls are automatically recorded
- Recordings are stored with the call log
- Playback available from ticket or customer record
- Compliance with local recording laws required
Call Notes
Agents can add notes during or after calls:- During Call: Real-time note taking
- After Call: Wrap-up notes and disposition
- Ticket Update: Notes are added to ticket communication
Call Area Component
The UI includes a call area component for managing calls:- Call Status: Active, ringing, completed
- Timer: Call duration tracking
- Controls: Mute, hold, transfer, hang up
- Notes: Quick note-taking interface
desk/src/components/CallArea.vue
Configuration
Telephony Settings
Configure in Frappe Telephony Settings:- Provider: Select Twilio or Exotel
- Credentials: Enter API keys and tokens
- Phone Numbers: Configure your telephony numbers
- Call Recording: Enable/disable recording
- IVR Settings: Set up interactive voice response
Helpdesk Integration
In Frappe Helpdesk:- Enable Call Support: Activate telephony features
- Default Calling Medium: Set preferred provider
- Auto-Create Tickets: Configure automatic ticket creation
- Call Disposition: Set up call outcome categories
Checking Integration Status
Verify telephony is working:Best Practices
Call Handling
- Train Agents: Ensure team knows how to use telephony features
- Call Scripts: Provide templates for common scenarios
- Quick Notes: Encourage note-taking during calls
- Follow Up: Create follow-up tasks for complex calls
- Customer Verification: Always verify caller identity
Integration
- Test Thoroughly: Verify calls work before going live
- Monitor Quality: Track call quality metrics
- Recording Compliance: Ensure legal compliance for recordings
- Backup Plan: Have fallback for telephony outages
- Regular Testing: Periodically test integration
Performance
- Network Quality: Ensure stable internet connection
- Headset Quality: Use quality headsets for best experience
- Browser Compatibility: Test on supported browsers
- Load Testing: Verify system handles expected call volume
Troubleshooting
Calls Not Working
Issue: Unable to make or receive calls Solutions:- Verify Telephony app is installed
- Check provider credentials are correct
- Ensure phone numbers are configured
- Check browser permissions for microphone
- Verify firewall allows WebRTC traffic
Integration Not Detected
Issue:isCallingEnabled is false
Solutions:
- Check Telephony app is installed and enabled
- Verify provider is configured
- Call
fetchCallIntegrationStatus()to refresh - Check API endpoint is accessible
- Review server logs for errors
Call Quality Issues
Issue: Poor audio quality or dropped calls Solutions:- Check internet connection speed and stability
- Use wired connection instead of WiFi
- Close bandwidth-heavy applications
- Test with different browser
- Contact provider for network diagnostics
Calls Not Linking to Tickets
Issue: Calls don’t appear on ticket records Solutions:- Verify
setLinkDoc()is called beforemakeCall() - Check doctype and docname are correct
- Review call log creation
- Check permissions for call log creation
Limitations
- Requires separate Frappe Telephony app installation
- Limited to Twilio and Exotel providers
- Browser must support WebRTC for browser-based calling
- Recording storage depends on provider limits