connect-rtc.js provides softphone support to AmazonConnect customers when they choose to directly integrate with AmazonConnect API and not using AmazonConnect web application. It implements Amazon Connect WebRTC signaling protocol and integrates with browser WebRTC APIs to provide a simple contact session interface which can be integrated with Amazon Connect StreamJS seemlessly.
In the gh-pages branch prebuilt ready to use files can be downloaded/linked directly.
- Install latest LTS version of NodeJS
- Install Grunt
git clone https://github.com/aws/connect-rtc-js.git
cd connect-rtc-js
npm install
- To build:
grunt
- Find build artifacts in out directory
- To run unit tests:
npm test
- To run demo page:
grunt demo
- Open the URL printed out by connect task, it looks like "Started connect web server on https://localhost:9943"
- Click demo folder
In a typical amazon-connect-streams integration, connect-rtc-js is not required on parent page. Softphone call handling is done by embedded CCP.
However the following steps could further customize softphone experience.
- Load connect-rtc-js along with amazon-connect-streams on parent page
- Following amazon-connect-streams instructions to initialize CCP
- Replace the softphone parameter (within the second parameter of connect.core.initCCP()) with
allowFramedSoftphone: false
This would stop embedded CCP from handling softphone call - Add this line after initCCP
connect.core.initSoftphoneManager({allowFramedSoftphone: true});
This would allow your page to handle softphone call with the connect-rtc-js loaded by your page. allowFramedSoftphone is necessary if your page also lives in a frame, otherwise you can remove that parameter. - Add this HTML element to your web page
<audio id="remote-audio" autoplay></audio>
amazon-connect-streams library will look for this element and inject it into connect-rtc-js so that connect-rtc-js can play downstream audio through this element. - Customize it (some ideas below)
- Customize audio device for
remote-audio
element - Look at all the documented APIs in RtcSession class, modify softphone.js as you need
- Revert step 4, add your own glue layer between amazon-connect-streams and connect-rtc-js (use softphone.js as a template)
- Customize audio device for