A full featured Webphone using JsSIP.
- 4 Lines for Call
- Easy to use and powerful API of JsSIP library
- SIP over WebSocket
- Lightweight!
- Feature like Mute, Hold, Transfer and DND (Do not Call)
- Attractive UI
- JsSIP, the JavaScript SIP library
- React + Vite
- React Icons
- Tailwindcss
This project comes with Docker support, making it easy to deploy the Webphone in a containerized environment.
- Docker installed on your machine
- Pull the Docker image from Docker Hub:
docker pull aghasuhail96/webphone- Run the container:
docker run -p 80:80 aghasuhail96/webphone- Access the Webphone app at http://localhost:80.
const phone = new PhoneLib(SIP_USER, SIP_PASS, URL_WEBRTC, PORT_NO_WEBRTC)
//Connect to the SIP Server
phone.connect()
//On Incoming Call
phone.on('incoming', (data)=>{
console.log(data)
})
//On Outgoing Call
phone.on('outgoing', (data)=>{
console.log(data)
})
//On Line Change
phone.on('changeLine', (data)=>{
console.log(data)
})
//On Call Transfered
phone.on('transfer', (data)=>{
console.log(data)
})
//On Calls Rejected while DND is enable
phone.on('dndRejected', (data)=>{
console.log(data)
})
//On Line Hold
phone.on('hold', (data)=>{
console.log(data)
})
//On Line UnHold
phone.on('unhold', (data)=>{
console.log(data)
})
//On Line Muted
phone.on('mute', (data)=>{
console.log(data)
})
//On Line UnMuted
phone.on('unmute', (data)=>{
console.log(data)
})Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate.