Built motion from commit 5e31ea4.|0.0.32
[motion.git] / server / api / user / user.ami.js
index 7ace567..d26deb4 100644 (file)
@@ -1 +1,75 @@
-var _0xf004=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x6E\x61\x6D\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x22\x25\x73\x22\x20\x3C\x25\x73\x3E","\x66\x6F\x72\x6D\x61\x74","\x73\x61\x76\x65","\x63\x68\x61\x6E\x67\x65\x64","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x65\x78\x74\x65\x6E","\x5F\x70\x72\x65\x76\x69\x6F\x75\x73\x44\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x61\x70\x70\x64\x61\x74\x61","\x53\x49\x50\x2F","\x66\x6F\x72\x45\x61\x63\x68","\x74\x68\x65\x6E","\x67\x65\x74\x55\x73\x65\x72\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x44\x69\x61\x6C","\x69\x64","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65"];_0xf004[0];var fs=require(_0xf004[1]);var util=require(_0xf004[2]);var path=require(_0xf004[3]);var config=require(_0xf004[4]);var User=require(_0xf004[6])[_0xf004[5]];var VoiceExtension=require(_0xf004[6])[_0xf004[7]];exports[_0xf004[8]]=function(_0x5f07x7){User[_0xf004[9]](function(_0x5f07x8){createCallerID(_0x5f07x8);createExtension(_0x5f07x8);});User[_0xf004[10]](function(_0x5f07x8){updateExtension(_0x5f07x8);createCallerID(_0x5f07x8);});};function createCallerID(_0x5f07x8){if(_0x5f07x8[_0xf004[11]]&&_0x5f07x8[_0xf004[12]]){_0x5f07x8[_0xf004[13]]=util[_0xf004[15]](_0xf004[14],_0x5f07x8[_0xf004[11]],_0x5f07x8[_0xf004[12]]);_0x5f07x8[_0xf004[16]]();};return ;}function updateExtension(_0x5f07x8){if(_0x5f07x8[_0xf004[17]](_0xf004[11])){_0x5f07x8[_0xf004[26]]()[_0xf004[25]](function(_0x5f07xc){_0x5f07xc[_0xf004[24]](function(_0x5f07xd){_0x5f07xd[_0xf004[20]]=(_0x5f07xd[_0xf004[20]]===_0x5f07x8[_0xf004[21]][_0xf004[12]])?_0x5f07x8[_0xf004[12]]:_0x5f07x8[_0xf004[11]];_0x5f07xd[_0xf004[22]]=_0xf004[23]+_0x5f07x8[_0xf004[11]];_0x5f07xd[_0xf004[16]]();})})[_0xf004[19]](function(_0x5f07xb){console[_0xf004[18]](_0x5f07xb)})}}function createExtension(_0x5f07x8){if(_0x5f07x8[_0xf004[12]]){var _0x5f07xf=[{context:_0xf004[27],exten:_0x5f07x8[_0xf004[12]],priority:1,app:_0xf004[28],appdata:_0xf004[23]+_0x5f07x8[_0xf004[11]],UserId:_0x5f07x8[_0xf004[29]],type:_0xf004[12]},{context:_0xf004[27],exten:_0x5f07x8[_0xf004[11]],priority:1,app:_0xf004[28],appdata:_0xf004[23]+_0x5f07x8[_0xf004[11]],UserId:_0x5f07x8[_0xf004[29]],type:_0xf004[12]}];return VoiceExtension[_0xf004[30]](_0x5f07xf)[_0xf004[19]](function(_0x5f07xb){console[_0xf004[18]](_0x5f07xb)});}}
\ No newline at end of file
+'use strict';
+
+var fs = require('fs');
+var util = require('util');
+var path = require('path');
+var config = require('../../config/environment');
+var User = require('../../models').User;
+var VoiceExtension = require('../../models').VoiceExtension;
+
+exports.register = function (ami) {
+  User.afterCreate(function (doc) {
+    createCallerID(doc);
+    createExtension(doc);
+  })
+  User.afterUpdate(function (doc) {
+    updateExtension(doc);
+    createCallerID(doc);
+  })
+}
+
+
+function createCallerID(doc) {
+  if (doc.name && doc.internal) {
+    doc.callerid = util.format('"%s" <%s>', doc.name, doc.internal);
+    doc.save();
+  }
+
+  return;
+}
+
+function updateExtension(doc) {
+  if (doc.changed('name')) {
+    doc
+      .getUserExtensions()
+      .then(function (userExtensions) {
+        userExtensions.forEach(function (elem) {
+          elem.exten = (elem.exten === doc._previousDataValues.internal) ? doc.internal : doc.name;
+          elem.appdata = 'SIP/' + doc.name;
+          elem.save();
+        })
+      })
+      .catch(function (err) {
+        console.log(err);
+      });
+  }
+}
+
+
+function createExtension(doc) {
+  if (doc.internal) {
+    var userDials = [{
+      context: 'from-sip',
+      exten: doc.internal,
+      priority: 1,
+      app: 'Dial',
+      appdata: 'SIP/' + doc.name,
+      UserId: doc.id,
+      type: 'internal'
+    }, {
+      context: 'from-sip',
+      exten: doc.name,
+      priority: 1,
+      app: 'Dial',
+      appdata: 'SIP/' + doc.name,
+      UserId: doc.id,
+      type: 'internal'
+    }];
+
+    return VoiceExtension
+      .bulkCreate(userDials)
+      .catch(function (err) {
+        console.log(err);
+      });
+  }
+}