mirror of
https://github.com/jambonz/jambonz-api-server.git
synced 2026-01-25 02:08:24 +00:00
changes from more testing
This commit is contained in:
@@ -310,7 +310,7 @@ Account.fields = [
|
||||
type: 'string',
|
||||
},
|
||||
{
|
||||
name: 'subspace_sip_teleport_entry_points',
|
||||
name: 'subspace_sip_teleport_destinations',
|
||||
type: 'string',
|
||||
},
|
||||
];
|
||||
|
||||
@@ -378,8 +378,11 @@ router.post('/:sid/SubspaceTeleport', async(req, res) => {
|
||||
const results = await Account.retrieve(req.params.sid, service_provider_sid);
|
||||
if (results.length === 0) return res.status(404).end();
|
||||
const {subspace_client_id, subspace_client_secret, sip_realm} = results[0];
|
||||
const {subspaceDestinationIpIOrUrl} = req.body;
|
||||
logger.info({body: req.body}, 'SubspaceTeleport - create teleport');
|
||||
const destination = subspaceDestinationIpIOrUrl || sip_realm;
|
||||
|
||||
const teleport = await enableSubspace({subspace_client_id, subspace_client_secret, sip_realm});
|
||||
const teleport = await enableSubspace({subspace_client_id, subspace_client_secret, destination});
|
||||
await Account.update(req.params.sid, {
|
||||
subspace_sip_teleport_id: teleport.id,
|
||||
subspace_sip_teleport_entry_points: JSON.stringify(teleport.teleport_entry_points)//hacky
|
||||
@@ -403,7 +406,7 @@ router.delete('/:sid/SubspaceTeleport', async(req, res) => {
|
||||
await disableSubspace({subspace_client_id, subspace_client_secret, subspace_sip_teleport_id});
|
||||
await Account.update(req.params.sid, {
|
||||
subspace_sip_teleport_id: null,
|
||||
subspace_sip_teleport_entry_points: null
|
||||
subspace_sip_teleport_destinations: null
|
||||
});
|
||||
return res.status(204);
|
||||
}
|
||||
|
||||
@@ -10,6 +10,8 @@ values (?, ?)`;
|
||||
const replaceOldSubscriptionSql = `UPDATE account_subscriptions
|
||||
SET effective_end_date = CURRENT_TIMESTAMP, change_reason = ?
|
||||
WHERE account_subscription_sid = ?`;
|
||||
const request = require('request');
|
||||
require('request-debug')(request);
|
||||
|
||||
const setupFreeTrial = async(logger, account_sid, isReturningUser) => {
|
||||
const sid = uuid();
|
||||
@@ -225,28 +227,34 @@ const checkLimits = async(req, res, next) => {
|
||||
next();
|
||||
};
|
||||
|
||||
const getSubspaceJWT = async(id, secret) => {
|
||||
const getToken = bent('https://id.subspace.com/oauth/token', 'POST', 'json', 200);
|
||||
|
||||
const jwt = await getToken(
|
||||
{
|
||||
client_id: id,
|
||||
client_secret: secret,
|
||||
audience: 'https://api.subspace.com/',
|
||||
grant_type: 'client_credentials',
|
||||
}
|
||||
);
|
||||
return jwt.access_token;
|
||||
const getSubspaceJWT = (id, secret) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
request('https://id.subspace.com/oauth/token', {
|
||||
method: 'POST',
|
||||
json: true,
|
||||
body: {
|
||||
client_id: id,
|
||||
client_secret: secret,
|
||||
audience: 'https://api.subspace.com/',
|
||||
grant_type: 'client_credentials',
|
||||
}
|
||||
}, (err, msg, body) => {
|
||||
if (err) return reject(err);
|
||||
resolve(body.access_token)
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
const enableSubspace = async(opts) => {
|
||||
const accessToken = await getSubspaceJWT(opts.subspace_client_id, opts.subspace_client_secret);
|
||||
|
||||
const {subspace_client_id, subspace_client_secret, destination} = opts;
|
||||
const accessToken = await getSubspaceJWT(subspace_client_id, subspace_client_secret);
|
||||
console.log(`got jwt ${accessToken}`);
|
||||
/*
|
||||
const getTeleport = bent('https://api.subspace.com/v1/sip-teleports', 'POST', 'json', 200);
|
||||
|
||||
const teleport = await getTeleport(
|
||||
{
|
||||
destination: opts.sip_realm,
|
||||
destination,
|
||||
name: 'Jambonz'
|
||||
},
|
||||
{
|
||||
@@ -256,6 +264,25 @@ const enableSubspace = async(opts) => {
|
||||
);
|
||||
|
||||
return teleport;
|
||||
*/
|
||||
return new Promise((resolve, reject) => {
|
||||
request('https://api.subspace.com/v1/sip-teleports', {
|
||||
method: 'POST',
|
||||
json: true,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: `Bearer ${accessToken}`
|
||||
},
|
||||
body: {
|
||||
destination: destination || 'sip:1.1.1.1',
|
||||
name: 'Jambonz'
|
||||
}
|
||||
}, (err, msg, body) => {
|
||||
if (err) return reject(err);
|
||||
resolve(body);
|
||||
});
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
const disableSubspace = async(opts) => {
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
"dependencies": {
|
||||
"@google-cloud/speech": "^4.2.0",
|
||||
"@google-cloud/text-to-speech": "^3.1.3",
|
||||
"microsoft-cognitiveservices-speech-sdk": "^1.19.0",
|
||||
"@jambonz/db-helpers": "^0.6.12",
|
||||
"@jambonz/realtimedb-helpers": "^0.4.3",
|
||||
"@jambonz/time-series": "^0.1.5",
|
||||
@@ -33,10 +32,12 @@
|
||||
"form-urlencoded": "^6.0.4",
|
||||
"jsonwebtoken": "^8.5.1",
|
||||
"mailgun.js": "^3.3.0",
|
||||
"microsoft-cognitiveservices-speech-sdk": "^1.19.0",
|
||||
"mysql2": "^2.2.5",
|
||||
"passport": "^0.5.0",
|
||||
"passport-http-bearer": "^1.0.1",
|
||||
"pino": "^5.17.0",
|
||||
"request-debug": "^0.2.0",
|
||||
"short-uuid": "^4.1.0",
|
||||
"stripe": "^8.138.0",
|
||||
"swagger-ui-express": "^4.1.6",
|
||||
|
||||
Reference in New Issue
Block a user