3 var fs = require('fs');
4 var util = require('util');
5 var path = require('path');
6 var config = require('../../config/environment');
7 var Trunk = require('../../models').Trunk;
8 var VoiceExtension = require('../../models').VoiceExtension;
9 var _ = require('lodash');
11 exports.register = function(ami) {
12 Trunk.afterCreate(function(doc) {
13 console.log('create trunk hook');
14 trunksRewrite(doc, ami, false);
16 Trunk.afterUpdate(function(doc) {
17 console.log('update trunk hook');
18 trunksRewrite(doc, ami, false);
20 Trunk.afterDelete(function(doc) {
21 console.log('delete trunk hook');
22 trunksRewrite(doc, ami, true);
26 function trunksRewrite(doc, ami, deleteTrunk) {
29 var newTrunk = _.clone(doc.dataValues);
31 delete newTrunk.createdAt;
32 delete newTrunk.updatedAt;
33 trunksFile += util.format('[%s]\n', newTrunk.name);
34 if (newTrunk.otherFields) {
35 trunksFile += util.format('%s\n', newTrunk.otherFields);
36 delete newTrunk.otherFields;
38 for (var key in newTrunk) {
40 trunksFile += util.format('%s=%s\n', key, newTrunk[key]);
52 .then(function(trunks) {
53 var oldTrunks = _.pluck(trunks, 'dataValues');
54 oldTrunks.forEach(function(element) {
56 delete element.createdAt;
57 delete element.updatedAt;
58 trunksFile += util.format('[%s]\n', element.name);
59 if (element.otherFields) {
60 trunksFile += util.format('%s\n', element.otherFields);
61 delete element.otherFields;
63 for (var key in element) {
65 trunksFile += util.format('%s=%s\n', key, element[key]);
69 fs.writeFile(path.join(config.root, 'server/files/asterisk/sip_xcally_trunks.conf'), trunksFile, {
71 mode: parseInt('0777', 8)
74 console.log("Trunks file saved!");
78 }, function(err, res) {
87 .catch(function(err) {