This option works well for channel recording only.
See next section for recording of entire conversation
Use cases:
- Get user input
- Better control for privacy purposes
// This will load the SDK and reuse your Fonos credentials | |
const Fonos = require("@fonos/sdk"); | |
const callManager = new Fonos.CallManager(); | |
// Few notes: | |
// 1. Update the from to look exactly as the Number you added | |
// 2. Use an active phone or mobile | |
// 3. Replace the webhook with the one from your Ngrok | |
callManager.call({ | |
from: "9842753574", |
const { VoiceServer } = require("@fonos/voice"); | |
const voiceServer = new VoiceServer(); | |
voiceServer.listen((req, res) => { | |
console.log(req); | |
res.play("sound:hello-world"); | |
}); |
const Fonos = require("@fonos/sdk"); | |
const callManager = new Fonos.CallManager(); | |
// 🚀 Let's get started | |
// Use fonos funcs:deploy to send to the cloud functions | |
module.exports = async(request, response) => { | |
await callManager.call({ | |
from: "9842753589", | |
to: "17853178070", | |
webhook: "https://5a2d2ea5d84d.ngrok.io" |
const Fonos = require("@fonos/sdk"); | |
const callManager = new Fonos.CallManager(); | |
callManager.call({ | |
from: "9842753574", | |
to: "17853178070", | |
webhook: "https://5a2d2ea5d84d.ngrok.io" | |
}) | |
.then(console.log) | |
.catch(console.error); |
This will get you routable containers with IPs on your existing subnets, advertising to Consul. They will also be scalable and placed across a cluster of Swarm hosts. It's assumed that you are already running Consul, so if not, there are a ton of tutorials out there. It's also assumed you know how to install Docker and various Linux kernels.
Bonus: We add an autoscaling API called Orbiter (https://gianarb.it/blog/orbiter-the-swarm-autoscaler-moves).
So you have an existing environment. You use Consul for service discovery. Life is good. Containers are now a thing and you want to work them in without having to worry about overlay networking or reverse proxies. You also don't want to add extra latency (as some naysayers could use it as fuel to kill your hopes and dreams). Lastly, you don't have a lot of time to invest in a complex orchestration tool, such a
# Getting Started | |
Make sure Docker is installed! | |
Get your Minio endpoint url, accesskey, and secretkey ready! | |
## Install Docker Plugin | |
```bash | |
docker plugin install rexray/s3fs \ |
The following scenarios must work with verb dial | |
1. Agent's call is sent to ingress application. Call is transfer to another Agent ✔️ | |
2. Agent's call is sent to ingress application. Call is then transfer to landline number via SP | |
The call gets transfer if the From header is setup correctly (using endpoint/from_domain: ...) but call setup is not | |
completed due to NAT issues | |
3. Call is received by ingress application and then transfer to softphone |
// jvm-npm needs this variable | |
const System = Java.type('java.lang.System') | |
load('./node_modules/jvm-npm/src/main/javascript/jvm-npm.js') | |
require('./app.js') |
... | |
public void jsLaunch() { | |
Context polyglot = Context | |
.newBuilder() | |
.allowExperimentalOptions(true) | |
.allowIO(true) | |
.allowAllAccess(true).build(); | |
polyglot.eval("js", "const System = Java.type('java.lang.System');" |