├── .eslintignore ├── .eslintrc.json ├── public ├── favicon.ico ├── index.html └── assets │ └── js │ └── uikit-icons.js ├── .editorconfig ├── .babelrc ├── app.json ├── .github └── workflows │ └── metrics.yml ├── app.js ├── components ├── end-call.vue ├── ot-subscriber.vue ├── home.vue ├── ot-publisher.vue ├── self-view.vue ├── caller.vue └── agent.vue ├── .gitignore ├── LICENSE ├── cert.pem ├── key.pem ├── webpack.config.js ├── CONTRIBUTING.md ├── package.json ├── CODE_OF_CONDUCT.md ├── README.md └── server.js /.eslintignore: -------------------------------------------------------------------------------- 1 | vendor/ 2 | dist/ 3 | uikit* 4 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "standard", 3 | "env": { 4 | "es6": true 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opentok/opentok-video-call-center/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ 4 | "@babel/preset-env", 5 | { 6 | "modules": false 7 | } 8 | ], 9 | ], 10 | "plugins": [ 11 | "@babel/plugin-syntax-dynamic-import", 12 | "@babel/plugin-syntax-import-meta", 13 | "@babel/plugin-proposal-class-properties", 14 | "@babel/plugin-proposal-json-strings" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "addons": [], 4 | "buildpacks": [], 5 | "env": { 6 | "OPENTOK_API_KEY": { 7 | "description": "API key from OpenTok", 8 | "required": true 9 | }, 10 | "OPENTOK_API_SECRET": { 11 | "description": "API secret from OpeTok", 12 | "required": true 13 | } 14 | }, 15 | "formation": {}, 16 | "name": "opentok-call-center-demo", 17 | "scripts": {} 18 | } 19 | -------------------------------------------------------------------------------- /.github/workflows/metrics.yml: -------------------------------------------------------------------------------- 1 | name: Aggregit 2 | 3 | on: 4 | schedule: 5 | - cron: "0 0 * * *" 6 | 7 | jobs: 8 | recordMetrics: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: michaeljolley/aggregit@v1 12 | with: 13 | githubToken: ${{ secrets.GITHUB_TOKEN }} 14 | project_id: ${{ secrets.project_id }} 15 | private_key: ${{ secrets.private_key }} 16 | client_email: ${{ secrets.client_email }} 17 | firebaseDbUrl: ${{ secrets.firebaseDbUrl }} 18 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |This demo showcases a simulation of call center where callers queue up to talk to available agents.
7 |