Resgrid Core: The Complete Open Source Computer Aided Dispatch System¶
Resgrid is a computer aided dispatch, management and logistics for first responders, disaster response, emergency management and companies.
Originally started as a hosted only solution in 2014, the Resgrid system as processed hundreds of thousands of calls, messages, statuses and staffing updates and much more. With over 4,000 departments signed up Resgrid is the only open source computer aided dispatch system able to run at scale.
Resgrid is written on the Microsoft .Net and .Net Core Frameworks utilizing Microsoft SQL Server as the primary data repository.
Features¶
- Personnel Management: Define personnel, contact information, details, certification, roles, status and availability for all personnel
- Unit Support: Support for apparatuses and groups of personnel working as a single unit (i.e. a USAR team) with AVL, accountability and logging
- Groups and Locations: Create groups and locations and assign personnel or units underneath for management of large or disperse organizations
- Computer Aided Dispatch: Create CallsIncidents and dispatch personnel, units, roles or groups to respond to those incidents both manual and automatic dispatches are supported
- Messaging: Built in message system to allow for targeted and dynamic communications to personnel
- Chat: Embedded P2P, Groups, Dispatch to Unit and Command chat system to enable very quick text based communications
- Duty Shift System: Create both Assigned Shifts and Signup Shifts to manage a static or dynamic workforce, switch swapping and trading support with attendance validation
- Learning Management: Design Trainings with text based materials, attach documents or presentations or link to external videos and assign questions to validate understanding of material
- Run Logs and Logging: Record actions of a call, training and meetings to keep tract of actions and events, hours, personnel and units involved
- Reporting** Generate reports for run logs, calls, training, meetings and more. Ability to use Reporting to create exports to integrate with 3rd party systems
- Calendar System: Create calendar entries and setup RSVP style events to keep personnel engaged and informed about activities and events
- Inventory Management: Track any kind of inventory both perishable (like medicine) and durable (like hand tools) equipped on apparatus, issued to personnel or stored at locations
- Document Storage: Upload and serve documents at a department or group level to members of your organization allowing a centralized place to serve documents from
- Notifications Service: Flexible notification system to alert of low personnel role or unit availability, staffing or status changes or any other system generated event
- Department Linking: Create powerful department links to allow for multiple independent organizations (i.e. mutual aid agreements or centralized dispatch center) to cooperate
- Mobile Apps: Apps available on Google Play and Apple App Store that can work with any standard installation. For Personnel, Units, Stations and Commanders.
- API: Included API with information about calls allow for easy extension and interaction without having to change code in the Resgrid Core codebase
Getting started¶
|
|
Documentation Contents¶
Overview¶
Installation Types¶
Resgrid is open source software, so you can download the Resgrid source from GitHub. We also provide a hosted version of Resgrid with a free plan and paid plan levels Resgrid.
Support¶
You can report a bug or request a feature for Resgrid by opening up an issue on Github GitHub Issues. If your a customer of the Hosted Version of Resgrid, please use the support system within the application there. If your having issues with your OnPrem installation of Resgrid you can engage Resgrid for professional support services.
Professional Support¶
We offer professional support for Resgrid, as well as remote consulting and engineering.
You can contact us at shawn@resgrid.com to learn more, or visit us at https://resgrid.com.
Installation¶
In this section we will go over all the steps needed to get Resgrid running on your own environment.
Important
Resgrid requires working RabbitMQ and SQL servers, more info in Prerequisites & Dependencies below and currently only runs on Microsoft Windows operating systems
Prerequisites & Dependencies¶
Resgrid requires Microsoft .Net Framework 4.7.2 and .Net Core 1.1. and running on a Windows environment, Windows Server is recommended but not required.
Note
Please ensure your Windows system is up to date with all Windows and Microsoft updates before installing the Resgrid System.
The following server dependencies need to be installed, configured and functional:
- .Net Framework .NET Framework 4.7.2 (Developer Pack)
- .Net Core .NET Core 1.1 (Runtime for your architecture x86 or x64)
- RabbitMQ Server, version 3.6.0 or newer
- Microsoft SQL Server, version 12.0 (SQL 2014) or newer
- Microsoft IIS version installed on Windows 8 or newer or Windows Server 2012 or newer
- Elastic ELK 6.6.0 or newer
- SMTP Server for sending email
Note
Any correctly configured SMTP server will work if it’s local or not. If you have an SMTP server provided by your ISP or provider that will also work. For non-server Windows installations (i.e. Windows Home or Professional) we recommended hMailServer.
RabbitMQ¶
To install RabbitMQ follow the Windows Installation guide. Ensure your firewall is configured to allow the ports listed in that guide through. It is also recommend you enable the management UI for RabbitMQ.
Note
RabbitMQ requires Erlang to be installed. You can download the Windows installer at their website.
Redis¶
Redis is an standalone, resilient in memory data store that Redis uses to cache data that is shared across multiple servers. Redis is an optional dependency but is highly recommended for production installations of Resgrid. Redis does not run well on Windows and thus needs to be installed a Unix or Linux based system. You can get Redis Server from their website. Version 4.0 or newer is recommended.
Important
Although Redis is optional, it’s recommended for production installations or multi server installations of Resgrid.
Elastic ELK¶
To install ELK from Elastic follow the Elasticsearch MSI Installer and the Kilbana Install Instructions. You don’t need Logstash as Resgrid can log directly to Elasticsearch. When installing Elasticsearch ensure it’s port is externally accessible.
Microsoft IIS¶
Installing Microsoft IIS (Webserver) will differ based on what version of Windows you are using; for example Windows 8 or Windows Server 2016. For you specific version of Windows
Section | Sub Section | Option |
---|---|---|
Web Management Tools | IIS Management Console | |
World Wide Web Services | Application Development Features | .Net Extensibility 3.5 |
World Wide Web Services | Application Development Features | .Net Extensibility 4.7 |
World Wide Web Services | Application Development Features | ASP.NET 3.5 |
World Wide Web Services | Application Development Features | ASP.NET 4.7 |
World Wide Web Services | Application Development Features | ISAPI Extensions |
World Wide Web Services | Application Development Features | ISAPI Filters |
World Wide Web Services | Application Development Features | WebSockets Protocol |
World Wide Web Services | Common HTTP Features | Default Document |
World Wide Web Services | Common HTTP Features | HTTP Errors |
World Wide Web Services | Common HTTP Features | HTTP Redirection |
World Wide Web Services | Common HTTP Features | Static Content |
World Wide Web Services | Performance Features | Dynamic Content Compression |
World Wide Web Services | Performance Features | Static Content Compression |
World Wide Web Services | Security | Basic Authentication |
World Wide Web Services | Security | IP Security |
Note
Depending on the requirements of your web server, environment and other factors your installed IIS options may be different. Resgrid requires at a minimum the .NET Extensibility and ASP.NET Options to run minimally.
Install Resgrid¶
Download the latest stable release from the Resgrid Core Github Releases page. Pre-release or Beta versions will also be available for download but should not be used in production systems. Instead should only be used for testing or evaluating new features or functionality.
Once you’ve download the release package extract the zip folder to your computer. It will reveal the directory structure in the table below.
Folder | Description |
---|---|
Api | Resgrid.Services API web application that will need to be exposed via IIS |
Config | Contains the ResgridConfig.json document to configure the Resgrid system |
Tools | Various tools, both UI and CLI to interact with Resgrid from the server |
Web | The primary Resgrid web application that will need to be exposed via IIS |
Workers | Backend workers to enable processing of async and scheduled tasks |
The default installation location for Resgrid is C:\Resgrid, with the Api, Config, Tools, Web and Workers folder underneath that. So the full path to the config file is C:\Resgrid\Config\ResgridConfig.json. You can install Resgrid wherever you want, but you will need to update each application’s config file (app.config, web.config or appsettings.json) with the correct path to the ResgridConfig.json file.
Create a new folder on your C:\ Drive called “Resgrid” and copy the above 5 folders, that you extracted from the zip downloaded from Github, into that directory.
Setup Hosts File¶
Run Notepad as Administrator, open up the hosts file in the following directory ‘C:\Windows\System32\drivers\etc’ and add the following lines at the bottom.
127.0.0.1 resgrid.local127.0.0.1 resgridapi.local127.0.0.1 rgdevserver
This will allow you to access locally on the box using the above domain names. If you have your own names you can use those in the IIS configuration below. If you already have the entries into your hosts file you do not need to add them again.
Note
If you are installing Resgrid components on multiple systems (i.e. web server boxes, api boxes, database server, etc) replace ‘127.0.0.1’ with the static IP address of the server where those components are installed.
Database Installation¶
You will need to install and configure Microsoft SQL Server you can find tutorials online an example of one is from tutorialpoint. You will need SQL Server and SQL Management Studio which can be downloaded from Microsoft.
Microsoft SQL Server¶
Important
Resgrid only supports SQL Server 2014 or newer and we recommend SQL 2016 SP1 or newer. A server collation of “SQL_Latin1_General_CP1_CI_AS” is also required.
For the most basic SQL Server installation you will need “Database Engine Services” and “Management Tools”. If Management Tools isn’t available for your SQL Install.


SQL Server can be installed as a “Default Instance” or “Named Instance” the standard way Resgrid is configured out of the box is a locally installed Default Instance of SQL Server. If you are installing SQL Server on another server then the Resgrid applications or you are configuring SQL to be a Named Instance you will need to modify the ResgridConfig.json which is located in the Config directory of the Resgrid installation folder. Default location is C:\Resgrid\Config.

During the installation of SQL Server you will need to set the collation for the SQL server. Resgrid requires “SQL_Latin1_General_CP1_CI_AS”, but this can also be set at the Database level if this SQL Server is shared.

For Resgrid you will need to use the Mixed Mode Authentication setting, this allows SQL server to use it’s own internal account in addition to Windows or Domain accounts. Specify any password you wish in the “Enter password” and “Confirm password” boxes (they need to match) this will be your admin or system admin sql password. Also Add Current User to the SQL Server administrators list on this view.

Note
If your using a Named SQL server instance, i.e. any SQL instance that’s not the default instance and your are supplying the named instance name in the ResgridConfig.json file you will need to use double back slash’s in between the server and SQL instance name. For example if you have a named SQL instance SQL2014 on the locally installed SQL server you need to specify the DataSource as “(local)\SQL2014” with 2 backslashes “" in between the server and instance names.
Database Creation¶
Once you have Microsoft SQL and Microsoft SQL Management Studio installed; open up Microsoft SQL Management studio, connect to your SQL Server and create an empty database called Resgrid.


You will also need to create a ‘ResgridWorkers’ database as well with the same options as the Resgrid database.

Once the databases are created you will need to create a new SQL user for Resgrid to connect to the 2 databases on this SQL Server. You will be using the “SQL Server authentication” mode for this user.
Login Name: resgrid_appPassword: resgrid123

Uncheck “Enforce password expiration” and “User must change password at next login” options on this view. Once you have that setup, click the “User Mapping” page in the upper left hand corner of this window.

Check the checkbox next to “Resgrid” database and then select the “db_owner” database role for this user. Do the same for the “ResgridWorkers” database as well.
Warning
Once your system is setup and you’ve verified it working we highly creating a new SQL user with a custom Login name and password to secure your installation. Your SQL Server should also not be directly connected to the internet or have any SQL ports directly accessible over the Internet. Review Microsoft’s guidance for securing your SQL Server Securing SQL Server
SQL Server Network Configuration¶
Resgrid uses TCP/IP based connections to connect to the SQL Server database. By default most installations of SQL Server have TCP/IP disabled by default. To enable, you need to start up the “SQL Server Configuration Manager” application and enable the TCP/IP protocol for the SQL Server Network Configuration.

Note, you will need to restart the system, or at a minimum the SQL Server instance (MSSQLSERVER), for the above change to take effect. If the TCP/IP protocol is already enabled for your install SQL Server instance you can continue without making any changes.
Install or Update Resgrid Schema¶
Open up the Windows Command Prompt (cmd) and type:
cd C:\Resgrid\Tools\
your command prompt should now read “C:\Resgrid\Tools>”. You can now type the following command into the command prompt:
Resgrid.Console.exe dbupdate
That will start the Resgrid Database Update process and either Update or Install your Resgrid database. If everything worked correctly you should see close to the following output:
C:\Resgrid\Tools>Resgrid.Console.exe dbupdate Resgrid Console —————————————– Starting the Resgrid Database Update Process Please Wait… Completed updating the Resgrid Database!
C:\Resgrid\Tools>
This will be run when your upgrading your Resgrid installation as well. If you installed (unzipped and copied) Resgrid to another path other then C:\Resgrid ensure you are opening the command prompt to that directory instead of C:\Resgrid.
IIS Installation¶
Run the ‘Internet Information Services (IIS) Manager’ and expand the top server node and the Sites node in the tree view on the left hand side. If you don’t have 2 sites called ‘resgrid’ and ‘resgridapi’ you will need to add those sites. Right click the Sites folder and select “Add Website”
Option | Value |
---|---|
Site name | resgrid |
Physical path | C:\Resgrid\Web |
Binding Type | https (Select from the drop-down) |
Host name | resgrid.local |
SSL certificate | Select Any |

Option | Value |
---|---|
Site name | resgridapi |
Physical path | C:\Resgrid\Api |
Host name: | resgridapi.local |

Your IIS Server should look like this for the Websites and Application Pools views:


Important
If you don’t have a valid SSL certificate you can create a self-signed certificate by using these instructions. You cannot use a self-signed certificate for the resgridapi IIS website as self-signed certificated will be rejected by the applications. We HIGHLY recommend you get valid SSL Certificates from a trusted vender and have both the resgrid and resgridapi protected by those.
Note
If you are using a Self Signed or Development SSL certificate you will get a Certificate Warning using any modern web browser. If your url is pointing to localhost,127.0.0.1,resgrid.local or resgridapi.local it is safe to proceed to the website and bypass that certificate error. We do not recommend doing that on public websites.
DotNetCore Hosting Module¶
Once your IIS Server is setup and you’ve created the web applications you will need to install the .Net Core 1.1 Server Hosting bundle, this allows the Resgrid web application to run under IIS.
You can download the Hosting Bundle from the Microsoft Download Center
Initial Web Login¶
Once you have completed the steps above you will be able to log into the web applications user interface. Open up a web browser and navigate to https://resgrid.local, you will then be prompted by the login screen. Your default administrator credentials are admin/changeme1234. Once you log into the system it’s recommended that you change your admin password from the Edit Profile page by clicking on the Administrator name in the upper left hand corner.
Setup¶
This is the guide to getting your Department configured in the resgrid system. This setup guide is a high level overview of the settings to get your department up and running with Resgrid both the OnPrem and Hosted versions of the system.
Note
Only one person in your department or organization needs to sign up for a new Resgrid department, when you create an account from the Resgrid homepage this happens automatically. If this is an on-premises installation, use the default department information to log in.
Getting Started¶
Once you have your first user registered with Resgrid (or using the default OnPrem department) you can log into the system. The first page you will land on will be the dashboard page or home page. Here is a list of your personnel, groups and their statuses. You can also set your status and staffing level on the widgets on the right hand side. In the top of the screen you can click your name in the left hand side to view or update your profile. The 2 icons in the middle are your active calls and your inbox messages. The menus on the right are your Department Menu (it’s the name of your department) and is the primary location to configure your department, a help menu and a logout button.
Item | Visibility | Description |
---|---|---|
Department Settings | Admins Only | General Department settings like name, main address, time zone and resets. |
Stations & Groups | Admins Only | Create and Manage Groups and Membership in those Groups |
Call Import Settings | Admins Only | Call Email Import Settings and Call Auto Close (Prune) Settings |
Custom Statuses | Admins Only | Create Department Specific Personnel and Unit Statuses and Staffing Levels |
Text Messaging | Admins Only | Type of Inbound Text Messages allowed (Call or Command) |
Api Settings | Admins Only | Allocate a System level API Key and Key for Active Calls RSS Feed |
Types | Admins Only | Manage Department Wide Types (Call Types, Call Priorities, Unit Types, Certifications) |
Distribution Lists | Admins Only | Create and Manage Membership is custom defined email distribution lists |
Security & Permissions | Admins Only | Configure Permissions (i.e. who can create calls) for the department and view Audit Logs |
Subscription & Billing | Admins Only | Manage your departments subscription and billing information. (Hosted Version only) |
Orders | Everyone | Your Resource Order Requests and those from other departments (i.e. Mutual Aid) |
Links | Everyone | Links with other Departments in Resgrid (i.e. sister stations) |
Notifications | Everyone | Create and Manage your custom notifications (i.e. be notified if a unit goes out of service) |
Commands | Everyone | Create and manage Command definitions for call types (for the Commander app) |
BigBoard | Everyone | A configurable dashboard where you can see your departments info at a glace on a TVMonitor |
Note
Main administrative operations (both department and group) are only available to be performed via the website. The Mobile application (like Resgrid Responder) are intended for personnel specific functions, like setting ones own status or staffing level, or viewing call information.
Department Settings¶
After you log into the website, click your department menu, it’s the name of your Department in the upper right hand corner of the web application next to the Help menu. The menu will drop down and expose a list (detailed above), click on Department Settings.
Setting | Description |
---|---|
Department Name | The name of your department or how you want it displayed in Resgrid |
Time Zone | The primary time zone your department is in. If your department is in multiple time zones, this should be the time zone of your headquarters or main office. |
Use 24-Hour Time | Do you want time displayed in 24 hour format for your department? For example 8:00PM is 2000 in 24 hour format. |
Managing User | This is the ‘master’ admin for the Department and that user cannot be removed from the system. |
Disable Auto-Available | By default the Resgrid system will ignore personnel statuses (instead just showing “Standing By”) submitted after an hour when displaying their current status in a list. Checking this box will disable that feature. |
The Address section should be your home office, headquarters or main location. This will be used as the default center for most of the maps. Centers can also be adjusted in each map as well.
Personnel Staffing Reset will add a Staffing level (selected in ‘Reset Staffing Level To’) for every user in the Department at the specified time. For example if you want to ensure all personnel staffings are up to date every day at 0800, you can have the system set a default staffing, like Unavailable, at 0200 so you know if there is a different staffing it’s accurate as of that morning.
Personnel Status Reset will add a Status (selected in ‘Reset Status To’) for every user in the Department at the specified time. For example if you want to ensure all personnel statuses are up to date every day at 0800, you can have the system set a default status, like Standing By, at 0200 so you know if there is a different status it’s accurate as of that morning.
Force Department Update will clear out all of the in memory cached information for your department. This is a scheduled job and can take up to 15 minutes to process. Resgrid caches a lot of static data, like groups and group names, personnel names, etc that don’t change frequently and store them in memory for fast access. Forcing a Department Update will clear that cache and force it to be pulled from the Database. This will negatively impact your performance until all data is recached.
Warning
Forcing a Department Update to clear the cache should only be used it some data, i.e. a group name or personnel name, is not updated for EVERYONE, not just one computer or phone. That device may have cached the output or call itself. This operation will slow down the system for ALL USERS until the cache is rebuilt.
Creating Groups¶
After you log into the website, click your department menu, it’s the name of your Department in the upper right hand corner of the web application next to the Help menu. The menu will drop down and expose a list (detailed above), click on Stations and Groups.
Resgrid has 2 types of groups Station and Organizational. Station groups require a physical address and are the only group types allow to have Units under them. A Station group is intended to denote a physical location that personnel or units may be responding out of, or responding to (i.e. to pick up some equipment or staff). Organizational groups have no physical location and are intended to allow users to be grouped together. For example you can use Organizational groups like East or West denote which users are in those response areas.
Note
Users can only be in 1 group at a time, but a user can be a part of many roles. Ideally you would use Groups to define something static like Stations, Districts, Response Areas, etc and use Personnel Roles to define more dynamic information like if a person is a Paramedic or HAZMAT Technician.
On the Department Groups list you’ll see columns calls “Dispatch Email” and “Message Email”. These are unique email addresses for those groups. The “Dispatch Email” address will create a call for that specific group and dispatch all personnel and units under that group. The “Message Email” address will create a in-system message in Resgrid to all personnel in that group.
Organizational Groups¶
Organizational groups are intended to organize groups of users. This group type can only have personnel assigned to it.
Station Groups¶
Station groups can have personnel and units assigned to them and must have a physical address. This address could be a building or open staging area.
Add Group Page¶
Setting | Description |
---|---|
Group Type | The type of group you want to create Organizational or Station |
Group Name | The name of your group |
Parent Group | You can have a group under a group, if you want this newly created group to show up underneath another group select the parent group here |
Address | Optional. If you have selected a Station group you need to supply a physical address for this group. An example would be a Fire Station, Staging Area, Ambulance Bay, etc. |
Group Admins | These are the administrators for this group. Group Admins can modify personnel in the group, for example updating their profile |
Group Users | Personnel that are in the group |
Note
You do not have to add personnel here, you can leave both Group Admins and Group Users blank and add users to the groups when you add the users or edit their profiles. For very large groups the list of personnel in the group will be too big to maintain here and is best maintained at the personnel profile level.
Personnel Roles¶
After you log into the website, click the Personnel module from the left hand module list, it’s under your name, Home and Calls buttons. This will take you the Personnel Section, there is a blue button on the right hand side of the screen, below the top bar with “Help” and “Log out” named “Manage Roles”, this is where you can administer your Personnel Roles.
Personnel can be in any number of Roles; roles are used to define attributes of your personnel, for example it could be an MOS or Job Function like Firefighter, Paramedic, Officer, etc or could be ranks or roles within your organization like Manager, Supervisor or Coordinator. Roles allow you to filter personnel when making calls, sending messages, assigning trainings and the like. For example say you have a training for your EMT’s, you can have roles for your EMT’s, AEMT’s and Paramedics and assign the training just to them.
Once you create the role, you can click “Edit” in the roles list to assign personnel to that role. Additionally the recommended way to assign personnel to roles is via the personnel profile view (accessible by editing the person from the Personnel list, or clicking their name on the dashboard). When adding a person to the system you can assign roles at that time as well.
Adding Personnel¶
After you log into the website, click the Personnel module from the left hand module list, it’s under your name, Home and Calls buttons. This will take you the Personnel Section, from here you can add personnel in 2 ways, manually or via an invite.
Add a Single Person¶
Clicking the turquoise “Add Person” button on the Personnel list page will allow you to add one user one by one. This is the preferred way to add personnel into the system by Department or Group Admins as it allows you to specify all the information for the user at the time of entry.
Setting | Description |
---|---|
UserName | The Username that the user will use to log into the system with |
Password | The password that the user will use to log into the system |
Confirm Password | Ensure the password is correct |
ID | Optional, the Identification number for the person. This could be a badge or employee number. |
First Name | The users First Name |
Last Name | The Users Last Name |
Email Address | Email address for the user, this email address is used for communication and is the “Forgot Account” email address. |
Group | The Group (Station or Organization) that the user should be placed under |
Is Group Admin | Do you want this user to be a Group Admin for the group they are assigned |
Roles | Personnel Roles that are applicable for the user |
Mobile Number | The mobilecell phone number for the user |
Mobile Carrier | The mobile carrier for the users mobilecell phone. This is required as Resgrid will route text messages directly to the carrier for the cell phone. |
Call Options | How do you want this user to be communicated to for DispatchCalls |
Message Options | How do you want this user to be communicated to for Messages |
Notification Options | How do you want this user to be communicated to for Notifications |
Notify User | Do you want Resgrid to email the user with their account information |
Send Out Invites¶
On the Personnel list page you can click the green “Manage Invites” button to invite personnel by sending out an invite email to their email address. On this page you will see the email address you have sent invites too and when you sent that invite. Also on this list you can see if the user has completed the invite and resend the invite if the user has not completed it.
To send invites to email addresses you can enter them in, one or many at a time, in the “Email Addresses” textarea inside the “Send Invites” card. Email addresses in this textarea need to be comma “,” separated. For example “user1@yourcompany.local, user2@yourcompany.local, user3@yourcompany.local” without the double quotes. Once your list is populated you can click the blue “Send Invites” button.
Note
It’s recommended to send 20 invites or less at a single time to ensure the POST request length is not too large which could cause failures for browsers with a poor connection. If an email address supplied in the textarea doesn’t appear in the list there was an error processing that email address and an invite was NOT sent to that user.
Units Metadata¶
Adding Units¶
Configuration¶
Providers¶
Resgrid utilizes a number of providers, or 3rd party services, to perform essential functions, like sending push notifications. This section will detail all 3rd party
Important
All of the 3rd party services, for example for sending Text Messages (SMSMMS) require you to sign up and create an account with them.
Service Bus¶
Push Notifications¶
Outbound Text Messaging¶
Inbound Text Messaging¶
Telephone Voice Calling¶
System¶
Apps¶
Below you will find the high level documentations and information for the external Resgrid applications. We have a number of external applications that run the gambit from mobile applications to web apps to desktop apps.
Resgrid Relay¶
Resgrid Relay allows you to listen to an audio feed, i.e. from a scanner, and monitor for tones and record the audio and dispatch personnel via Resgrid.
Note
You can download releases for Resgrid Relay on it’s Github Releases page
Before you begin you will need the following:
- The tones frequency(s) you want to monitor in integernumber format i.e. 153
- A Windows 7 or newer computer with an Audio Line In connection or a usb audio sound card like StarTech.com 7.1 USB Sound Card
- A scanner like WS1065 with an Audio Line Out connection
Installing Resgrid Relay¶
Download the latest release from Githib releases page. This will be a zip file that you need to unzip the file on your computer How to Unzip Files on Windows and we recommend putting the resulting folder in C:\ResgridRelay.
From Windows Explorer run the
Using Notepad
Section | Sub Section | Option |
---|---|---|
Web Management Tools | IIS Management Console | |
World Wide Web Services | Application Development Features | .Net Extensibility 3.5 |
World Wide Web Services | Application Development Features | .Net Extensibility 4.7 |
World Wide Web Services | Application Development Features | ASP.NET 3.5 |
World Wide Web Services | Application Development Features | ASP.NET 4.7 |
World Wide Web Services | Application Development Features | ISAPI Extensions |
World Wide Web Services | Application Development Features | ISAPI Filters |
World Wide Web Services | Common HTTP Features | Default Document |
World Wide Web Services | Common HTTP Features | HTTP Errors |
World Wide Web Services | Common HTTP Features | HTTP Redirection |
World Wide Web Services | Common HTTP Features | Static Content |
World Wide Web Services | Performance Features | Dynamic Content Compression |
World Wide Web Services | Performance Features | Static Content Compression |
World Wide Web Services | Security | Basic Authentication |
World Wide Web Services | Security | IP Security |
Development¶
In this section we will go over all the steps needed to develop against the Resgrid solution.
Prerequisites & Dependencies¶
The following server dependencies need to be installed, configured and functional:
Note
Please ensure your Windows system is up to date with all Windows and Microsoft updates before installing the Resgrid System.
- .Net Framework .NET Framework 4.6.2 (Developer Pack)
- RabbitMQ Server, version 3.6.0 or newer
- Microsoft SQL Server, version 12.0 (SQL 2014) or newer
- Microsoft IIS version installed on Windows 8 or newer or Windows Server 2012 or newer
- Docker for Windows Desktop Docker for Windows Desktop
- Microsoft Visual Studio 2017 Community or Higher
- Google Chrome Chrome 71 or newer
- Elastic ELK 6.6.0 or newer
Note
If your not running a Professional (Pro) version of Windows you may not be able to install Docker for Windows Desktop. You will get an error opening up the ResgridCore solution with Visual Studio but your can just unlock the docker project under the Docker solution folder.
Getting the Code¶
You can download the Resgrid Core source from our GitHub page Resgrid Core Github.
Opening in Visual Studio¶
Open the ResgridCore.sln file in your version of Microsoft Visual Studio 2017. You will be prompted by a “Security Warning” dialog box, you can confirm for every project, but if you uncheck “Ask me for every project in this solution” you only need to be prompted once.
If you get an error opening the solution up Visual Studio this could be because you don’t have Docker installed (it can’t be installed on all versions of Windows) so you can expand the Docker folder in the Solution Explorer right click “docker-compose” and click “Unload Project”. This will allow you to open and compile the solution without any error. If you do have Docker installed on your computer, ensure that it’s running.
Open up the Web folder in the “Solution Explorer” and right click the “Resgrid.WebCore” project and select “Set as Startup Project”. This will mean that when you run or debug the solution a web browser will open up defaulting you to the Web project.
Restoring Dependencies¶
Once you have the solution open correctly you need to download all the dependencies for the project. Right click the “ResgridCore” solution and click “Restore Nuget Packages”, this will download all the .Net dependencies for the solution.
Next you need to restore the bower and npm dependencies for the Resgrid.WebCore project. Expand the Web folder in the “Solution Explorer” and expand the “Resgrid.WebCore” project, At the root of that project there are 2 files; bower.json and package.json that we will be working with. Right click “bower.json” and select “Restore Packages” this will download all the bower dependencies. Next right click “package.json” and select “Restore Packages”.
Solution¶
Folders¶
Folder | Description |
---|---|
Common | Contains common files that may be included in other projects, like the AssemblyInfo file |
Core | Central libraries utilized throughout the system |
Docker | Projects related to setting up and managing Docker |
Documentation | Notes and Documentation |
Providers | High level external integrations, like Geolocation or Text Messaging |
Repositories | Data Storage Repo |
Tests | Unit and Integration Tests |
Tools | Non-Web UI tools and applications |
Web | The main applications, the web application and the services (api) application |
Workers | Backend workers |
Projects¶
Project | Description |
---|---|
Resgrid.Config | Primary system configuration options controlling the entire system |
Resgrid.Framework | Shared helpers and common functions, like error logging that are used in every layer |
Resgrid.Model | Data model objects, event objects, interfaces for servicesproviders and system metadata, like enumerations. |
Resgrid.Services | Business logic layer services, both discrete and composite |
Resgrid.Providers.AddressVerification | External address verification providers |
Resgrid.Providers.Audio | External audio manipulation providers |
Resgrid.Providers.Bus | Azure Service Bus and System Eventing |
Resgrid.Providers.Bus.Rabbit | RabbitMQ bus provider |
Resgrid.Providers.Cache | Redis and Internal (In Memory) caching provider |
Resgrid.Providers.Claims | Rights and Claims system for the Web Application |
Resgrid.Providers.EmailProvider | External email providers (Postmark) |
Resgrid.Providers.Firebase | Firebase external provider used for the real-time database (Chatting) |
Resgrid.Providers.GeoProvider | Geolocation provider for getting Latitude and Longitude for Addresses and vice versa |
Resgrid.Providers.Marketing | External provider for working with an email marking system |
Resgrid.Providers.NumberProvider | Number, SMSMMS provider (Twilio and Nexemo) |
Resgrid.Providers.PdfProvider | External PDF integration provider |
Resgrid.Providers.AddressVerification | Address verification, testing if address are correct |
Resgrid.Repositories.DataRepository | Primary Data Store, SQL Server both Entity Framework and Dapper |
Resgrid.Tests | Unit Testing |
Resgrid.Console | CLI Application for interacting with the Resgrid system |
Resgrid.Web.Services | RESTful APIs (Services) |
Resgrid.WebCore | Primary Web Application (User InterfaceWebsite) that users will interact with |
Resgrid.Workers.Console | CLI Application that needs to be running at all times, contains back end workers for the Message Bus |
Resgrid.Workers.Framework | Logic for the async workers that the Workers.Console runsmonitors |