vonage的服务端程序,独立运行
parent
01b8c2770e
commit
acb135f5f1
@ -0,0 +1,28 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCbwVZh35hHmN0G
|
||||||
|
FxzvwhPWHTn+V/8jxHWkXvUnQwigE4PW0upWs1qyh8OtqiYJFPWXqQVtgzW7BnkA
|
||||||
|
FlNTJNJ0UqtI9DME2rokXfi1xM2iMGPVQTLQTCATcwFq++VGjkv5BiO6yaTLeZmi
|
||||||
|
jAFanQzHrFO5EjWwMix19rNFHikQ+ZzuxkhO72Na2zH7DMaHgHpjiv5P+6IwwSLl
|
||||||
|
Tf90iA5cdzHZOT/Yg/vbkOzNp1OJ9+MTi6OQifKw7oaZSgPG13wknYYvKe2GQyEA
|
||||||
|
GFMtrzhbb/n9G8iWqP1ka3lLTLfP+MRZuxdcTbpCD3mFOIvjmv4Tp8CW3ZIq8+ri
|
||||||
|
ZXfR+RLzAgMBAAECggEAQhb1EP2f741xB7MJ/8Axy5JGN+Ld667injb+vkSm5cmy
|
||||||
|
ERcZAWYET6nlAY0nq4XduhcpqvDYfT3/XOacP7Tpqhsj/AZGmcI35tOLA5H5EV+I
|
||||||
|
FQafyZvrpmUPznYJMPmTShztT0Zdq0szQjI3Jtxp/lXkhqyv5E496GYgZm0oTr96
|
||||||
|
QCAefZgpbSvWCgqe2KBG4UhaeymYNwvtK4edsWs1c/l9E46CqUfm5Svw074T7kk4
|
||||||
|
ysG112oelCxqPpyyldFnfaYSwtDoKbC9ouVjWebMyLFztxMsTexlm93UxWoAC2hA
|
||||||
|
dkfqZ7fEZua74XRDbLY8nVeBTTy8mgXWwfRMChj/cQKBgQDSp+2jCCZ6pkozBINE
|
||||||
|
ZpFP8Oxfnt0qe6XdmP5X6w+63KmP6hs/Ee4q7naUSFY2p+BifoYVvpNwUmI98cbX
|
||||||
|
p4MSD+T1zu77sSM4hSmDAJrX/YLS+ABcAK+lzZlygJGLts8LqjfvH0r992zynuE1
|
||||||
|
eIuDp4x7SNnlZh3J7LBKBlPocQKBgQC9SCLjtCvprGmHVtLs/fu0PpYPhwZTk/Ik
|
||||||
|
RvgZt2hwJ77bU8qODNWQlgbOc0GDEHzbjLMZ5jwIGqoR6pKdAQUJ+e+f8tTUTdBV
|
||||||
|
qiBTDEX1DzECZPRcQihjX/DDdCXeOiUKnfjGCxFJ73DXLpZMGnK/A51ianlKNq9y
|
||||||
|
qv4od17DowKBgDRDvc3pQ8LCZz5pLDhYSk1PNRY0UCMuMmTchJ5Dj8+I1/kA2Gm5
|
||||||
|
hSHZsEnx+JHu7NkDEzlp4yLHDeDYj8EJqpdcoi3qfZisxlRLlZUPHVvhZgf5x/0L
|
||||||
|
nojAjgW+qF3FqXD3dpE5bl28eadoi++8TMEJXO1pkcY8o79pngN/tmnBAoGBAJ5R
|
||||||
|
V91dNd2deCbbWFEhnwaD0r/qEECX3lC5i4r2/UPR+rE4xJNL6NWmpsrHXGRjxgtd
|
||||||
|
A/EFwfCFXPrfWQI5eB2AEA2Y7qsk6ry8L41HFryCmFuIVVtVerKj7J2O6J2XxKO8
|
||||||
|
vffoCe3teFSDgvLkrFVYkKtgo1KPqvAeVbdDIOBBAoGAHlVrBW654zCTFQ1Ovxfn
|
||||||
|
IWr6xQVs7wJxwB39FM/tyaRgqND6YZwqzSB4Y5GX89K4iPgAKl9w2pLEJtkKb1Pb
|
||||||
|
ohkpZfQxuFHA2JA5gLLlOo/Dd0rGUxPNM7dgfNpirDpDEKscE+x0bYLz0rXG2ILb
|
||||||
|
/X6emIC7Xm9WJa9f2+3KRn0=
|
||||||
|
-----END PRIVATE KEY-----
|
@ -0,0 +1,86 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
const express = require("express");
|
||||||
|
const fs = require("fs");
|
||||||
|
const { tokenGenerate } = require("@vonage/jwt");
|
||||||
|
const privateKey = fs.readFileSync("gh-private.key");
|
||||||
|
const aclPaths = {
|
||||||
|
paths: {
|
||||||
|
"/*/rtc/**": {},
|
||||||
|
"/*/users/**": {},
|
||||||
|
"/*/conversations/**": {},
|
||||||
|
"/*/sessions/**": {},
|
||||||
|
"/*/devices/**": {},
|
||||||
|
"/*/image/**": {},
|
||||||
|
"/*/media/**": {},
|
||||||
|
"/*/knocking/**": {},
|
||||||
|
"/*/legs/**": {},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const app = express();
|
||||||
|
app.use(express.json());
|
||||||
|
|
||||||
|
const vonageNumber = "12052553394"; //用于通话的号码,今后根据前端提交来做号码切换
|
||||||
|
|
||||||
|
//设置跨域访问
|
||||||
|
app.all('*', function(req, res, next) {
|
||||||
|
res.header("Access-Control-Allow-Origin", "*");
|
||||||
|
res.header("Access-Control-Allow-Headers", "*");
|
||||||
|
res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
|
||||||
|
res.header("Content-Type", "application/json;charset=utf-8");
|
||||||
|
next();
|
||||||
|
});
|
||||||
|
|
||||||
|
app.get("/voice/answer", (req, res) => {
|
||||||
|
console.log("NCCO request:");
|
||||||
|
console.log(` - callee: ${req.query.to}`);
|
||||||
|
console.log("---");
|
||||||
|
res.json([
|
||||||
|
{
|
||||||
|
action: "talk",
|
||||||
|
text: "Please wait while we connect you.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
action: "connect",
|
||||||
|
from: vonageNumber,
|
||||||
|
endpoint: [{ type: "phone", number: req.query.to }],
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
|
||||||
|
app.get("/jwt", (req, res) => {
|
||||||
|
console.log("jwt Generate:");
|
||||||
|
const exp_time = new Date(Date.now() + 3 * 24 * 3600 * 1000);
|
||||||
|
const token=tokenGenerate("39f32a2a-e343-4ca0-9d92-5946573af5ea", privateKey, {
|
||||||
|
exp: Math.round(exp_time.getTime()/1000),
|
||||||
|
sub: "hainatravel",
|
||||||
|
acl: aclPaths,
|
||||||
|
})
|
||||||
|
console.log(Math.round(exp_time.getTime()/1000));
|
||||||
|
console.log(token);
|
||||||
|
console.log("---");
|
||||||
|
res.json({
|
||||||
|
token: token,
|
||||||
|
status: 200,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
app.all("/voice/event", (req, res) => {
|
||||||
|
console.log("EVENT:");
|
||||||
|
console.dir(req.body);
|
||||||
|
console.log("---");
|
||||||
|
res.sendStatus(200);
|
||||||
|
});
|
||||||
|
|
||||||
|
app.all("/voice/fallback", (req, res) => {
|
||||||
|
console.log("fallback:");
|
||||||
|
console.dir(req.body);
|
||||||
|
console.dir(res);
|
||||||
|
console.log("---");
|
||||||
|
res.sendStatus(200);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
app.listen(3009);
|
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"dependencies": {
|
||||||
|
"@vonage/jwt": "^1.10.0",
|
||||||
|
"express": "^4.19.2"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"start": "node index.js",
|
||||||
|
"dev": "nodemon index.js"
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue