From 309020346d1d02532ba6479eb38c5b46fcbe1422 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 30 Mar 2019 23:48:14 +0000 Subject: [PATCH 01/15] Initial commit of an active Dashboard --- dashboard.js | 31 +++++++++++ gui/dsiprouter.py | 2 + gui/modules/api/api_routes.py | 48 ++++++++++++++++ gui/static/css/dashboard.css | 10 ++++ gui/static/js/dashboard.js | 15 +++++ gui/templates/dashboard.html | 100 +++++++++++++++++++++++----------- 6 files changed, 175 insertions(+), 31 deletions(-) create mode 100644 dashboard.js create mode 100644 gui/modules/api/api_routes.py create mode 100644 gui/static/css/dashboard.css create mode 100644 gui/static/js/dashboard.js diff --git a/dashboard.js b/dashboard.js new file mode 100644 index 00000000..f94c6093 --- /dev/null +++ b/dashboard.js @@ -0,0 +1,31 @@ +function getKamailioStats(elmnt) { + //elmnt.style.backgroundColor = "red"; + //elmnt.style.borderColor = "red" + var msg_bar = $(".message-bar"); + var reload_button = $('#reloadkam'); + + + $.ajax({ + type: "GET", + url: "/v1/kamailio/stats", + dataType: "json", + success: function(msg) { + if (msg.status === 1) { + msg_bar.addClass("alert alert-success"); + msg_bar.html("Success! Kamailio was reloaded successfully!"); + reload_button.removeClass('btn-warning'); + reload_button.addClass('btn-primary'); + } + else { + msg_bar.addClass("alert alert-danger"); + msg_bar.html("Failed! Kamailio was NOT reloaded successfully!"); + } + + msg_bar.show(); + msg_bar.slideUp(3000, "linear"); + //elmnt.style.backgroundColor = "#337ab7"; + //elmnt.style.borderColor = "#2e6da4"; + } + }); +} + diff --git a/gui/dsiprouter.py b/gui/dsiprouter.py index 7c363e4b..2047554a 100755 --- a/gui/dsiprouter.py +++ b/gui/dsiprouter.py @@ -14,11 +14,13 @@ UAC, GatewayGroups, Domain, DomainAttrs, dSIPDomainMapping, dSIPMultiDomainMapping, Dispatcher from modules import flowroute from modules.domain.domain_routes import domains +from modules.api.api_routes import api import settings # global variables app = Flask(__name__, static_folder="./static", static_url_path="/static") app.register_blueprint(domains) +app.register_blueprint(api) db = loadSession() numbers_api = flowroute.Numbers() reload_required = False diff --git a/gui/modules/api/api_routes.py b/gui/modules/api/api_routes.py new file mode 100644 index 00000000..2da74b6e --- /dev/null +++ b/gui/modules/api/api_routes.py @@ -0,0 +1,48 @@ +from flask import Blueprint, session, render_template,jsonify +from flask import Flask, render_template, request, redirect, abort, flash, session, url_for, send_from_directory +from sqlalchemy import case, func, exc as sql_exceptions +from werkzeug import exceptions as http_exceptions +from database import loadSession, Domain, DomainAttrs, dSIPDomainMapping, dSIPMultiDomainMapping, Dispatcher, Gateways +from shared import * +import settings + +db = loadSession() +api = Blueprint('api', __name__) + +@api.route("/api/v1/kamailio/stats", methods=['GET']) +def getKamailioStats(): + try: + if (settings.DEBUG): + debugEndpoint() + + #if not session.get('logged_in'): + # return render_template('index.html', version=settings.VERSION) + + payload = {"jsonrpc": "2.0", "method": "tm.stats","id": 1} + #r = requests.get('https://www.google.com',data=payload) + r = requests.get('http://127.0.0.1:5060/api/kamailio',json=payload) + #print(r.text) + + return r.text + + except sql_exceptions.SQLAlchemyError as ex: + debugException(ex, log_ex=False, print_ex=True, showstack=False) + error = "db" + db.rollback() + db.flush() + return showError(type=error) + except http_exceptions.HTTPException as ex: + debugException(ex, log_ex=False, print_ex=True, showstack=False) + error = "http" + db.rollback() + db.flush() + return showError(type=error) + except Exception as ex: + debugException(ex, log_ex=False, print_ex=True, showstack=False) + error = "server" + db.rollback() + db.flush() + return showError(type=error) + finally: + db.close() + diff --git a/gui/static/css/dashboard.css b/gui/static/css/dashboard.css new file mode 100644 index 00000000..49b5ef7d --- /dev/null +++ b/gui/static/css/dashboard.css @@ -0,0 +1,10 @@ +.dashboard-metric { + font-size: 80px; + text-align: center; +} + +.dashboard-metric-label { + font-size: 35px; + text-align: center; + color: #ddd; +} diff --git a/gui/static/js/dashboard.js b/gui/static/js/dashboard.js new file mode 100644 index 00000000..8fbb1617 --- /dev/null +++ b/gui/static/js/dashboard.js @@ -0,0 +1,15 @@ +function getKamailioStats(elmnt) { + + + $.ajax({ + type: "GET", + url: "/api/v1/kamailio/stats", + dataType: "json", + success: function(msg) { + document.getElementById("dashboard_current_calls").innerHTML=msg.result.current; + document.getElementById("dashboard_calls_inqueue").innerHTML=msg.result.waiting; + document.getElementById("dashboard_total_calls_processed").innerHTML=msg.result.total; + }}); +} + +getKamailioStats(); diff --git a/gui/templates/dashboard.html b/gui/templates/dashboard.html index 092b9f98..b14a4dc0 100644 --- a/gui/templates/dashboard.html +++ b/gui/templates/dashboard.html @@ -4,6 +4,8 @@ {% block custom_css %} {{ link_tag('main') }} + {{ link_tag('dashboard') }} + {% endblock %} {% block body %} @@ -13,38 +15,74 @@

Kamailio reload: {{ reloadstatus }}

{% endif %} - -
-

Welcome to dSIPRouter v{{ version }}

-
- Our goal is to make it easier to configure and manage Kamailio for one or more use cases. For the first release we - are focused on the SIP Trunking use case. - This use case consist of using Kamailio to provide SIP Trunking services. There are four main components: - carriers, PBX(s) and endpoints, inbound DID routing and global outbound routing. - -

Carriers

- When you install dSIPRouter we installed a set of carriers. If you use one of the provided carriers then you just - have to provision your IP address and enter in a tech prefix - to start using the carrier. Otherwise, you will need to add the carrier. - -

PBX(s) and Endpoints

- You can define the IP address of the PBX(s) that you want to provide SIP Trunking services for. You can also - specify the number of digits to strip off an inbound DID and the prefix that you want to - add to an inbound DID. The IP address of the PBX(s) will automatically be added to the access control list of the - switch. If you want to simulate a PBX, you can add your IP address as a PBX and then use a softphone to place a - call. Note, disable registration when you setup the extension of the softphone. - -

Inbound DID Mapping

- This is where you define a mapping between a DID and PBX. At this time, the mapping is one-to-one. This means that - one DID can only be mapped to one PBX. In future releases we will support this. - -

Global Outbound Routing

- Calls sent to dSIPRouter will be routed out the Global Outbound Routes (GOR). The GOR contains a list of carriers - sepreated by commas. Calls are routed out the carriers based on the order in the list. The next carrier is used if - the previous one fails. -
-
+

Dashboard

+
+
+
Current Calls
+
+
+
+
Calls In Queue
+
+
+
+
Total Calls Processed
+
+
+
+
+
+
+
Documentation
+
+ +
+
+
+
+
+
Training
+ +
+
+
+
+
Support
+
+ +
+
+
+
{% endblock %} {% block custom_js %} + {{ script_tag('dashboard') }} {% endblock %} From ed9162b21b4851a8443c2fc9e4f86f24da57f536 Mon Sep 17 00:00:00 2001 From: Mack Hendricks Date: Sun, 31 Mar 2019 10:54:02 -0400 Subject: [PATCH 02/15] Updated Debian Install Docs Modified the docs to reflect the new install options --- docs/debian_install.rst | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/docs/debian_install.rst b/docs/debian_install.rst index e347ce85..11209bb0 100644 --- a/docs/debian_install.rst +++ b/docs/debian_install.rst @@ -16,12 +16,12 @@ Install (Don't Proxy audio (RTP) traffic) cd /opt git clone https://github.com/dOpensource/dsiprouter.git cd dsiprouter - ./dsiprouter.sh install + ./dsiprouter.sh install -kam -dsip | One Line Version: :: - apt-get update;apt-get install -y git curl;cd /opt;git clone https://github.com/dOpensource/dsiprouter.git;cd dsiprouter;./dsiprouter.sh install + apt-get update;apt-get install -y git curl;cd /opt;git clone https://github.com/dOpensource/dsiprouter.git;cd dsiprouter;./dsiprouter.sh install -kam -dsip Once the install is complete, dSIPRouter will automatically start MySQL, Kamailio and the UI. @@ -39,7 +39,7 @@ If you need to proxy RTP traffic then add the -rtpengine parameter. The command cd /opt git clone https://github.com/dOpensource/dsiprouter.git cd dsiprouter - ./dsiprouter.sh install -rtpengine + ./dsiprouter.sh install -all | @@ -47,11 +47,9 @@ If you need to proxy RTP traffic then add the -rtpengine parameter. The command One Line Version: :: - apt-get update;apt-get install -y git curl;cd /opt;git clone https://github.com/dOpensource/dsiprouter.git;cd dsiprouter;./dsiprouter.sh install -rtpengine + apt-get update;apt-get install -y git curl;cd /opt;git clone https://github.com/dOpensource/dsiprouter.git;cd dsiprouter;./dsiprouter.sh install -all -Once the install is complete, dSIPRouter will automatically start MySQL, Kamailio and the UI. But, you will need to reboot the physical server or virtual machine for the RTP Engine to start. This is a known `issue `_ . - Install (Proxy audio (RTP) traffic with PBX and dSIPRouter behind NAT) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -64,7 +62,7 @@ If you have a requirement where the PBX's and dSIPRouter are behind NAT then use cd /opt git clone https://github.com/dOpensource/dsiprouter.git cd dsiprouter - ./dsiprouter.sh install -rtpengine -servernat + ./dsiprouter.sh install -all -servernat | @@ -73,7 +71,6 @@ One Line Version: :: - apt-get update;apt-get install -y git curl;cd /opt;git clone https://github.com/dOpensource/dsiprouter.git;cd dsiprouter;./dsiprouter.sh install -rtpengine -servernat + apt-get update;apt-get install -y git curl;cd /opt;git clone https://github.com/dOpensource/dsiprouter.git;cd dsiprouter;./dsiprouter.sh install -all -servernat -Once the install is complete, dSIPRouter will automatically start MySQL, Kamailio and the UI. But, you will need to reboot the physical server or virtual machine for the RTP Engine to start. This is a known `issue `_ . From 8667c490c5f269cc10e1574e24ba940c7016630e Mon Sep 17 00:00:00 2001 From: Mack Hendricks Date: Sun, 31 Mar 2019 10:55:37 -0400 Subject: [PATCH 03/15] Update debian_install.rst --- docs/debian_install.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/debian_install.rst b/docs/debian_install.rst index 11209bb0..a05cbbfa 100644 --- a/docs/debian_install.rst +++ b/docs/debian_install.rst @@ -29,7 +29,7 @@ Once the install is complete, dSIPRouter will automatically start MySQL, Kamaili Install (Proxy audio (RTP) traffic) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -If you need to proxy RTP traffic then add the -rtpengine parameter. The command to install dSIPRouter and the RTPEngine would be: +If you need to proxy RTP traffic then use -all install option. The command to install dSIPRouter and the RTPEngine would be: :: From 5929359151b00d7eda040110ab236d2a529137b8 Mon Sep 17 00:00:00 2001 From: Mack Hendricks Date: Mon, 1 Apr 2019 05:31:37 -0400 Subject: [PATCH 04/15] Update centos-install.rst --- docs/centos-install.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/centos-install.rst b/docs/centos-install.rst index 2e3c0417..4bf31426 100644 --- a/docs/centos-install.rst +++ b/docs/centos-install.rst @@ -17,12 +17,12 @@ Install (Don't Proxy audio (RTP) traffic) cd /opt git clone https://github.com/dOpensource/dsiprouter.git cd dsiprouter - ./dsiprouter.sh install + ./dsiprouter.sh install -kam -dsip | One Line Version: :: - yum install -y git curl;cd /opt;git clone https://github.com/dOpensource/dsiprouter.git;cd dsiprouter;./dsiprouter.sh install + yum install -y git curl;cd /opt;git clone https://github.com/dOpensource/dsiprouter.git;cd dsiprouter;./dsiprouter.sh install -kam -dsip Once the install is complete, dSIPRouter will automatically start MariaDB, Kamailio and the UI. From e3cf3de293dbf4361f384539ef9248b495464953 Mon Sep 17 00:00:00 2001 From: Mack Hendricks Date: Mon, 1 Apr 2019 05:49:43 -0400 Subject: [PATCH 05/15] Update installing.rst --- docs/installing.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/installing.rst b/docs/installing.rst index bd141675..0063b4d2 100644 --- a/docs/installing.rst +++ b/docs/installing.rst @@ -38,7 +38,13 @@ OS Support - **Debian Stretch (tested on 9.6)** - **CentOS 7** + Kamailio will be automatically installed along with dSIPRouter. Must be installed on a fresh install of Debian Stretch or CentOS 7. You will not be prompted for any information. It will take anywhere from 4-9 minutes to install - depending on the processing power of the machine. You can secure the Kamailio database after the installation. Links to the installation documentation are below: - :ref:`debian9-install` - :ref:`centos7-install` + +Amazon AMI's +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +We now provide Amazon AMI's (pre-built images) which allows you to get up and going even faster. You can find a list of the images `here _`). The images are a nominal fee, which goes toward supporting the project. From 9da93ccdb5043c45a03ea9efab26d69dda6df426 Mon Sep 17 00:00:00 2001 From: Mack Hendricks Date: Mon, 1 Apr 2019 05:52:35 -0400 Subject: [PATCH 06/15] Update installing.rst --- docs/installing.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/installing.rst b/docs/installing.rst index 0063b4d2..1c31aab4 100644 --- a/docs/installing.rst +++ b/docs/installing.rst @@ -47,4 +47,4 @@ Kamailio will be automatically installed along with dSIPRouter. Must be install Amazon AMI's ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -We now provide Amazon AMI's (pre-built images) which allows you to get up and going even faster. You can find a list of the images `here _`). The images are a nominal fee, which goes toward supporting the project. +We now provide Amazon AMI's (pre-built images) which allows you to get up and going even faster. You can find a list of the images `here `. The images are a nominal fee, which goes toward supporting the project. From c855821012ed71159c14759768f173a0fa754495 Mon Sep 17 00:00:00 2001 From: Mack Hendricks Date: Mon, 1 Apr 2019 05:55:36 -0400 Subject: [PATCH 07/15] Update installing.rst --- docs/installing.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/installing.rst b/docs/installing.rst index 1c31aab4..c7508338 100644 --- a/docs/installing.rst +++ b/docs/installing.rst @@ -47,4 +47,4 @@ Kamailio will be automatically installed along with dSIPRouter. Must be install Amazon AMI's ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -We now provide Amazon AMI's (pre-built images) which allows you to get up and going even faster. You can find a list of the images `here `. The images are a nominal fee, which goes toward supporting the project. +We now provide Amazon AMI's (pre-built images) which allows you to get up and going even faster. You can find a list of the images `here `_. The images are a nominal fee, which goes toward supporting the project. From c6640ff2ecf78225565be2778b9447bad0415571 Mon Sep 17 00:00:00 2001 From: Mack Hendricks Date: Mon, 1 Apr 2019 06:25:09 -0400 Subject: [PATCH 08/15] Update command_line_options.rst --- docs/command_line_options.rst | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/docs/command_line_options.rst b/docs/command_line_options.rst index cace88d6..9af78e1f 100644 --- a/docs/command_line_options.rst +++ b/docs/command_line_options.rst @@ -6,12 +6,17 @@ Execute "./dsiprouter.sh" followed by one of the listed options for the dsiprout =================================== ====================================================================================================== Option What does it do? -install [-rtpengine] installs dSIPRouter and the RTPEngine if you need to proxy RTP traffic. -install [-rtpengine] [-servernat] installs dSIPRouter and the RTPEngine if you need to proxy RTP traffic thats behind a NAT -start Starts dSIPRouter +install [-debug|-exip |--external-ip=|-servernat|-all|--all|-kam|--kamailio|-dsip|--dsiprouter|-rtp|--rtpengine] installs dSIPRouter and the RTPEngine if you need to proxy RTP traffic. +uninstall [-debug|-all|--all|-kam|--kamailio|-dsip|--dsiprouter|-rtp|--rtpengine] Uninstalls dSIPRouter +start [-debug] Starts dSIPRouter stop Stops dSIPRouter from running -restart Restarts DSIPRouter after a stop -uninstall Uninstalls dSIPRouter +restart [-debug] Restarts dSIPRouter after a stop +configurekam Reconfigures the Kamailio configuration file based on dSIPRouter Settings +sslenable Enables SSL Support +enableservernat Enable Server NAT +disableservernet Disable Server NAT +resetpassword Resets dSIPRouter admin account and displays the password +help|-h|--help Will display the list of command line options =================================== ====================================================================================================== Refer to ::ref:`Installing dSIPRouter` to get the complete one line version of the command. From 6204fdb79d99d8a6ec90185d14fffb2ec624693b Mon Sep 17 00:00:00 2001 From: Mack Hendricks Date: Mon, 1 Apr 2019 06:35:20 -0400 Subject: [PATCH 09/15] Update command_line_options.rst --- docs/command_line_options.rst | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/command_line_options.rst b/docs/command_line_options.rst index 9af78e1f..53435c50 100644 --- a/docs/command_line_options.rst +++ b/docs/command_line_options.rst @@ -4,20 +4,20 @@ Command Line Options Execute "./dsiprouter.sh" followed by one of the listed options for the dsiprouter command lines. **NOTE** You must be in the directory where dSIPRouter was installed, which is /opt/dsiprouter to execute these commands. -=================================== ====================================================================================================== -Option What does it do? -install [-debug|-exip |--external-ip=|-servernat|-all|--all|-kam|--kamailio|-dsip|--dsiprouter|-rtp|--rtpengine] installs dSIPRouter and the RTPEngine if you need to proxy RTP traffic. -uninstall [-debug|-all|--all|-kam|--kamailio|-dsip|--dsiprouter|-rtp|--rtpengine] Uninstalls dSIPRouter -start [-debug] Starts dSIPRouter -stop Stops dSIPRouter from running -restart [-debug] Restarts dSIPRouter after a stop -configurekam Reconfigures the Kamailio configuration file based on dSIPRouter Settings -sslenable Enables SSL Support -enableservernat Enable Server NAT -disableservernet Disable Server NAT -resetpassword Resets dSIPRouter admin account and displays the password -help|-h|--help Will display the list of command line options -=================================== ====================================================================================================== +=================================== ====================================================================== +Option What does it do? +=================================== ====================================================================== +install Installs dSIPRouter and the RTPEngine if you need to proxy RTP traffic. +uninstall Uninstall dSIPRouter +start Starts dSIPRouter +stop Stops dSIPRouter from running +restart Restarts dSIPRouter after a stop +configurekam Reconfigures the Kamailio configuration file based on dSIPRouter Settings +sslenable Enables SSL Support +enableservernat Enable Server NAT +disableservernet Disable Server NAT +resetpassword Resets dSIPRouter admin account and displays the password +=================================== ====================================================================== Refer to ::ref:`Installing dSIPRouter` to get the complete one line version of the command. From f79dc044b38d7cb50bedc6c8ab5860d0c6c361eb Mon Sep 17 00:00:00 2001 From: Mack Hendricks Date: Mon, 1 Apr 2019 06:38:38 -0400 Subject: [PATCH 10/15] Update command_line_options.rst --- docs/command_line_options.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/command_line_options.rst b/docs/command_line_options.rst index 53435c50..d0b37120 100644 --- a/docs/command_line_options.rst +++ b/docs/command_line_options.rst @@ -17,9 +17,10 @@ sslenable Enables SSL Support enableservernat Enable Server NAT disableservernet Disable Server NAT resetpassword Resets dSIPRouter admin account and displays the password +help|-h|--help List all of the options =================================== ====================================================================== -Refer to ::ref:`Installing dSIPRouter` to get the complete one line version of the command. +Refer to ::ref:`Installing dSIPRouter ` to get the complete one line version of the command. To start dSIPRouter: From fa1964b57de7a486694a979d393625c4224ae34c Mon Sep 17 00:00:00 2001 From: Mack Hendricks Date: Mon, 1 Apr 2019 06:40:42 -0400 Subject: [PATCH 11/15] Update command_line_options.rst --- docs/command_line_options.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/command_line_options.rst b/docs/command_line_options.rst index d0b37120..1b11efc1 100644 --- a/docs/command_line_options.rst +++ b/docs/command_line_options.rst @@ -20,7 +20,7 @@ resetpassword Resets dSIPRouter admin account and displa help|-h|--help List all of the options =================================== ====================================================================== -Refer to ::ref:`Installing dSIPRouter ` to get the complete one line version of the command. +Refer to :ref:`Installing dSIPRouter ` to get the complete one line version of the command. To start dSIPRouter: From 75d76e36326e649ff354d6848dd07b34f8456dd9 Mon Sep 17 00:00:00 2001 From: Mack Hendricks Date: Mon, 1 Apr 2019 06:42:59 -0400 Subject: [PATCH 12/15] Update command_line_options.rst --- docs/command_line_options.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/command_line_options.rst b/docs/command_line_options.rst index 1b11efc1..d66d0df6 100644 --- a/docs/command_line_options.rst +++ b/docs/command_line_options.rst @@ -20,7 +20,8 @@ resetpassword Resets dSIPRouter admin account and displa help|-h|--help List all of the options =================================== ====================================================================== -Refer to :ref:`Installing dSIPRouter ` to get the complete one line version of the command. +Refer to :ref:`installing.rst` to get the complete one line version of the command. + To start dSIPRouter: From 8ebf5fba21f99bf904f38569e3bda3306ae8fa9e Mon Sep 17 00:00:00 2001 From: Mack Hendricks Date: Mon, 1 Apr 2019 06:45:31 -0400 Subject: [PATCH 13/15] Update installing.rst --- docs/installing.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/installing.rst b/docs/installing.rst index c7508338..9af9b218 100644 --- a/docs/installing.rst +++ b/docs/installing.rst @@ -1,3 +1,5 @@ +.. installing_dsiprouter: + Installing dSIPRouter ===================== From a35858ff9118b1e851b49132eea9581d532537da Mon Sep 17 00:00:00 2001 From: Mack Hendricks Date: Mon, 1 Apr 2019 06:45:55 -0400 Subject: [PATCH 14/15] Update command_line_options.rst --- docs/command_line_options.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/command_line_options.rst b/docs/command_line_options.rst index d66d0df6..873a962e 100644 --- a/docs/command_line_options.rst +++ b/docs/command_line_options.rst @@ -20,7 +20,7 @@ resetpassword Resets dSIPRouter admin account and displa help|-h|--help List all of the options =================================== ====================================================================== -Refer to :ref:`installing.rst` to get the complete one line version of the command. +Refer to :ref:`installing_dsiprouter` to get the complete one line version of the command. To start dSIPRouter: From c394864619651a0fd186f0d12d520a25a669e3bb Mon Sep 17 00:00:00 2001 From: Mack Hendricks Date: Mon, 1 Apr 2019 06:47:40 -0400 Subject: [PATCH 15/15] Update installing.rst --- docs/installing.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/installing.rst b/docs/installing.rst index 9af9b218..4f8f4c19 100644 --- a/docs/installing.rst +++ b/docs/installing.rst @@ -1,4 +1,5 @@ -.. installing_dsiprouter: +.. _installing_dsiprouter: + Installing dSIPRouter =====================