git clone
this repo to your development machine
Initial Firebase Setup
Create a Firebase account if you don't already have one
Create a new project in Firebase
Upgrade the project to the Blaze plan
Choose "Cloud Firestore" as your database
Make sure that Firestore Database rules are as follows:
service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write : if request.auth != null; } } }
Make sure that Firebase Storage rules are as follows:
service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { allow read, write: if request.auth != null; } } }
Head to Authentication > Sign-In Method, and enable the Email method
Create an account for yourself with a NON-TEMPORARY EMAIL
Initial VoIP Setup
Choose a SIP Trunk provider that allows masking (VoIP.ms is used in this documentation)
Purchase a DID number and some minutes
Take proper precautions to harden this account
Initial Admin Server Setup
Spin up a new cloud VM running Ubuntu 18.04
(You should be good with 4 GB Memory)
Get Asterisk 15 installed
(Here's a good starting point)
Get Node 8.x installed
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -sudo apt-get install -y nodejs
Get set up for headless browsing
sudo apt-get install -y xvfb x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic x11-apps clang libdbus-1-dev libgtk2.0-dev libnotify-dev libgconf2-dev libasound2-dev libcap-dev libcups2-dev libxtst-dev libxss1 libnss3-dev gcc-multilib g++-multilib
Get Tensorflow installed
(Follow this guide, install for Python 3, use the venv method)
Get https set up (yes, you'll need a domain name)
(Here's a good starting point)
git clone
the Dragnet repo onto this cloud VM
cp / mv
the contents of the repo's "admin" folder so that your file structure is as follows:
~/----asterisk/----endpoint/----osint/----tensorflow/
The repo files assume ~ is /root, although this is considered insecure and is only implied for the purposes of basic non-production PoC.
tensorflow/ should already have venv content in it- simply copy the contents of the repo's tensorflow folder into your already existing tensorflow folder on the VM.
Edit the contents of asterisk/sip.conf with your new SIP Trunk account info
cp asterisk/sip.conf asterisk/extensions.conf /etc/asterisk/.
Edit the contents of ~/ak/logUrl.txt
with your Firebase details
Edit the contents of endpoint/endpoint.js, replacing the following:
domain: the domain name you set up during set 6 (4.6) aboveauthPass: a strong password for use with Basic AuthauthUser: a username for use with Basic AuthstorageBucketUrl: the url of your Firebase storage bucket
mkdir /endpoint/ak && mkdir /osint/ak && touch /endpoint/ak/ServiceAccountKey.json
ServiceAccountKey.json (created above) should contain the contents downloaded from:
https://console.firebase.google.com/project/CHANGEME/settings/serviceaccounts/adminsdk
cp ~/endpoint/ak/ServiceAccountKey.json ~/osint/ak/.
npm install in ~/endpoint/
and ~/osint/
from ~
, start each of these in a seperate screen:
sudo asterisk && sudo asterisk -rvvvvv
then, in the asterisk console:
sip reload
dialplan reload
nodemon ./endpoint/endpoint.js
Final development machine setup
firebase deploy --only functions
from the functions directory on your development machine
If all went well, you can now npm run dev
from your development machine where you git cloned the project initially. Then log in and get started!
If anything is unclear or you have any questions or comments, please post an issue. Pull requests welcome, though not necessary. Thank you!