现代联络中心的精髓是在多个频道(语音,网络聊天,视频,电子邮件,社交媒体等)上为客户提供服务,允许他们在跨渠道中无缝移动,最重要的是维护对话的上下文。
Twilio联络中心演示是用于建造现代联络中心的参考体系结构。该演示的重点是展示如何构建基于Twilio平台的联络中心以及所需的各种后端和前端组件。

注意:我们从UX的角度完成了基本工作,还有很多机会可以改善它。它是为了演示目的而设计的,尚未单独检查安全性。
此应用程序提供为IS。 Twilio不正式支持它。
客户填写在线呼叫请求 - >提交给服务器的表单 - >在创建任务的任务 - >找到可用的和匹配的代理 - >代理接受预订并拨出客户(PSTN) - >将客户连接到代理(WEBRTC)

客户调用Twilio电话号码 - > Twilio请求Webhook->服务器生成IVR->呼叫者选择IVR选项 - > TaskRouter上创建的任务 - >找到可用的代理 - > Agent Accests -contects-> connect convents -worters-将客户连接到代理(WEBRTC)

客户填写在线Web聊天请求表格 - >提交给服务器的表单 - >“创建任务”上的任务 - >查找可用和匹配代理 - >代理接受预订 - >开始客户和代理之间的聊天

客户填写视频通话请求表格 - >提交给服务器的表单 - > TaskRouter上的任务和创建的视频室 - >查找可用和匹配代理 - >代理接受预订 - >代理商加入视频室

实时显示操作联络中心指标(例如:平均呼叫手柄时间,代理生产率,呼叫指标,TaskRouter统计信息等)。请查看以下仓库:https://github.com/ameerbadri/twilio-taskrouter-realtime-dashboard
如果您以前从未使用过Twilio,请欢迎!您需要注册一个Twilio帐户。
我们建议您在Twilio中创建一个单独的项目,并使用该项目安装此应用程序。
注意:建议您有一个升级的Twilio帐户以充分体验此演示。
在开始安装之前,您需要从Twilio帐户门户收集以下变量。
TWILIO_ACCOUNT_SIDTWILIO_AUTH_TOKENTWILIO_WORKSPACE_SID有关帐户SID和Auth令牌,请单击此处:https://www.twilio.com/console
购买电话号码或使用现有电话(该应用程序将稍后为您配置该号码)
创建一个新的Twilio TaskRouter工作区,然后选择自定义模板。
有关Twilio API密钥SID和Twilio API密钥秘密,请单击此处:https://www.twilio.com/console/dev-tools/api-keys
TWILIO_API_KEY_SIDTWILIO_API_KEY_SECRET对于Web聊天,您需要设置Twilio可编程聊天环境变量:
TWILIO_CHAT_SERVICE_SID代理UI不支持同时处理多个任务,因此所有任务均在同一任务通道上以一个同时任务的容量进行路由。有关更多详细信息,请检查TaskRouter多任务处理
您可以将此项目用Heroku上的所有驱动器部署,Terraform是一种开源基础架构作为代码软件工具。
为Heroku创建API密钥,请查看Heroku平台API指南以获取帮助。
将Heroku API密钥和您的电子邮件地址添加到terraform.tfvars 。
初始化Terraform配置文件并运行
terraform init
如果您尚未安装Terraform,请关注Terraform入门。
将截面配置变量中列出的Twilio变量添加到terraform.tfvars变量文件中。
在基础架构中设置您的heroku应用程序名称文件file terraform_heroku.tf
创建执行计划
terraform plan
通过执行在Heroku上安装项目
terraform apply
安装完成后,请打开https://<your-application-name>.herokuapp.com/setup并配置应用程序。演示概述将在https://<your-application-name>.herokuapp.com上访问。
这将为您安装应用程序和Heroku(要求登录)的所有依赖项。作为安装的一部分,Heroku应用程序将引导您完成环境变量的配置。请单击以下按钮部署应用程序。
安装完成后,请打开https://<your-application-name>.herokuapp.com/setup并配置应用程序。演示概述将在https://<your-application-name>.herokuapp.com上访问。
下载并安装Google Cloud SDK。
创建一个新项目
gcloud projects create <your-project-id> --set-as-default
使用您的项目初始化应用程序引擎应用程序,然后选择其区域:
gcloud app create --project=<your-project-id>
将截面配置变量中列出的twilio变量添加到app.yaml变量文件中。
通过运行以下命令将应用程序部署在应用引擎上。
gcloud app deploy
查看您的应用程序运行
gcloud app browse
安装完成后,请打开https://<your-project-id>.appspot.com/setup并配置应用程序。演示概述将在https://<your-project-id>.appspot.com上访问。
叉和克隆存储库。然后,安装依赖项
npm install
如果要从文件加载环境变量,请安装Dotenv软件包以处理本地环境变量。
npm install dotenv
在根目录中创建一个名为“ .env”的文件,然后将以下内容添加到app.js的顶部
require('dotenv').config()
为了运行演示,您需要在配置变量中设置环境变量列表](#configuration-variables)
启动应用程序
npm start
在使用演示之前,请打开http://<your-application-name>/setup并配置应用程序。演示概述将在http://<your-application-name>上访问。请注意,如果未设置process.env.port,则在端口5000上运行应用程序。
如果您在本地运行演示,请记住,Twilio需要一个可公开访问的Webhooks地址,并且设置过程将其注册为Twilio。因此,您需要运行诸如NGrok之类的东西,而不仅仅是击中http:// localhost:5000/。当您从Ngrok获得新地址时,您还需要重新运行设置过程,以在Twilio中注册更新的地址。
NGROK设置
系统宽安装
从Ngrok下载并安装
使用NPM npm install ngrok -g
运行NGrok(如果相应地在.env更新中定义端口)
./ngrok http 5000
只需安装项目
安装NGrok软件包
npm install ngrok --dev
将以下内容添加到app.js的顶部
const ngrok = require('ngrok')
const ngrokUrl = async function () {
const url = await ngrok.connect((process.env.PORT || 5000))
console.log('ngrok url ->', url)
}
在app.js中调用app.listen中的ngrokurl以记录服务器上的ngrok url
ngrokUrl()
注意:在Google Chrome上,需要安全的HTTPS连接才能通过WEBRTC进行电话。使用支持HTTPS(例如NGrok)的隧道,该隧道可以将流量转发到您的网络服务器。
欢迎捐款并普遍接受。对于不琐碎的修正案,最好提交一个问题,解释PR之前提出的更改。这使维护者可以提供指导并避免您从事重复的工作。
您的更改必须遵守通用的项目代码样式。
# please run this before "git commit"
npm run lint
# try automatic fix
./node_modules/.bin/eslint controllers --fix
./node_modules/.bin/eslint public --fix
为了使其他贡献者和审稿人的生活更轻松
git rebase -i HEAD^^^^^^
# then squash or fixup your shards
# and force push into your fork
git push origin [YOUR BRANCH] -f
您可以在Twitter上关注我 - @mdamm_de
麻省理工学院