Categories
Knowledge Support Support exacqVision Server Categories Products

How to: Using EVAPI_Discover to Detect the Connectiodn to an exacqVision Server

Overview

The EVAPI_Discover function is used to test the connection between evAPI and an exacqVision server. When EVAPI_Discover is called, it initiates a Discover request to be sent to an exacqVision server. If the Discover request is received by the server, it sends a Discover response indicating the server was found.

<br>

Usage

It is possible to use the EVAPI_Discover function to detect the connection to an exacqVision server after a logged-in connection has been established with a server. Before a logged in-connection is established, the response from EVAPI_Connect and EVAPI_Login should be used to determine the server connection.

Before calling EVAPI_Discover, it is necessary to set an EVAPI_Callback function that handles the Discover response from the server. If no callback is defined or if ParamType Discover is not handled in the callback, the Discover response from the server is not seen.

The behavior of the EVAPI_Discover function is to queue a Discover request packet in an evAPI instance’s write buffer to be sent to the exacqVision server. If the write buffer has space for the Discover request packet, it return a 0 to indicate success. If the write buffer has filled up because evAPI has not been able to send any data or the write buffer is not being flushed, the function returns a 1 to indicate failure.

To send the Discover request, the EVAPI_Select function or the advanced network I/O should be used. If either of these methods returns an error, there is an issue with the network socket and the evAPI instance must be cleaned up and reinitailized before trying again. (Windows only:) If the EVAPI_CreateWindow function is used, it is not necessary to call EVAPI_Select or use the advanced network I/O function to perform network I/O; the network I/O is tied to the Windows message loop and is performed automatically.

<br>

Possible reasons for a socket error:

  • The connection between evAPI and the exacqVision server is closed.
  • The network cable between the client computer hosting the evAPI instance and the router is disconnected.

<br>

If there is no error on the socket and the Discover request packet is sent, it is then necessary to detect ParamType Discover in the EVAPI_Callback function. If the discover response packet is received by evAPI, ParamType Discover is passed to the callback function indicating that the server was found. If no discover response is received,  ParamType Discover is never passed to the callback.

The console sample shipped with the SDK contains an example of using the EVAPI_Discover function using the command line argument “discover-server”.

<br>

Example

Function evCallback(Parameters: ParamType param, int value, Payload* payload, size_t length )

Switch to handle ParamTypes

Case Discover

Disable or reset watchdog timer

End Case

End Switch

End Function evCallback

Function Main

Intialize evAPI (EVAPI_Init)

Connect to server (EVAPI_Connect)

Login to server (EVAPI_Login)

Set evAPI callback to evCallback (EVAPI_SetCallback)

Queue discover request (EVAPI_Discover)

Perform network I/O (EVAPI_Select)

If queue discover request succeeds and network I/O succeeds

Enable watchdog timer for discover paramtype in callback

Else if queue discover request fails or network I/O fails

Handle failed connection to server

End if

If the discover watchdog timer expires

Handle failed connection to server

End if End Function Main

<br>

How-to-Using-EVAPI_Discover-to-Detect-the-Connectiodn-to-an-exacqVision-Server.pdf
Categories
Knowledge Support Support exacqVision Server Categories Products

Email Notifications Not Sent from Linux-based exacqVision Server

If you install exacqVision Server software on a Linux-based system that does not have certain Perl modules installed, email notifications can fail. This does not apply to Linux-based exacqVision systems shipped by Exacq because the Perl modules are installed on the systems when they are manufactured.

If you do not receive expected email notifications, check the Linux system log for the following message from NotifyPI:

Can’t locate method “new” via package “IO::Socket::SSL” at sendEmail.pl line 1844

The following message should also appear on the Notifications page for the system in the exacqVision Client software:

This server does not support SSL or TLS connections

To install the necessary Perl modules, type the following commands in a Terminal window:

sudo apt-get install libio-socket-ssl-perl

sudo apt-get install libnet-ssleay-perl

Alternatively, you can install the modules using the Synaptic Package Manager.

<br>

Categories
Knowledge Support Support exacqVision Server Categories Products

Locating Server and Client Crash Dump Files

ExacqVision Server crash dumps can be found in the server log folder, typically C:\Program Files\exacqVision\Server\logs. The location of ExacqVision Client crash dump files varies based on the operating system. <br>

Windows Vista SP 1, Win 7, Win 8, Win 10, Win 11

  1. Click Start.
  2. Type %APPDATA%\edvrclient\logs and press Enter.
  3. Look for entries with a .DMP extension.

Windows XP

  1. Click Start and select Run.
  2. Type drwtsn32 and press Enter.
  3. Find the log file path (normally C:\Documents and Settings\All Users\Application Data\Microsoft\Dr Watson).
  4. Copy and paste the path into the Run window and click OK (not shown)

MacOS

  1. Select the Go menu.
  2. Select Go To Folder.
  3. Type /Users/“Username”/Library/Logs/DiagnosticReports/. (In versions 10.4 and 10.5, replace DiagnosticReports with CrashReporter.)
  4. Click Go.
Categories
Knowledge Support Support exacqVision Server Categories Products

How do I change the listening port number for exacqVision Server?

By default, the exacqVision Client communicates with exacqVision Servers on port 22609. If your network does not allow port 22609, or if you need to forward the port on multiple exacqVision systems, you can change the exacqVision Server’s listening port number. To do this, complete steps detailed on this page.

NOTE: The exacqVision Default Ports article states that 22610 is reserved for interprocess communication. This is true when using the default client to server port set to 22609. If this is changed to a port other than 22609, the reserved port becomes your chosen port number plus one.
Example: If you change 22609 to 2350, the reserved port becomes 2351.<br><br>

Windows 11, 10, 8, 7, Vista, XP

  1. Log into the system hosting the exacqVision Server application.<br><br>
  2. Exit all exacqVision software.<br><br>
  3. Highlight the exacqVision Server service listed, and Stop the ExacqVision Server service, in one of three ways:
    • Press the ‘Stop’ icon from the toolbar.
    • Click the ‘Stop’ link from the left-hand side.
    • Right-click the service name and select ‘Stop’.

      Note: Leave the Services window open, as you will need to restart the service later.<br><br>
  4. Open the Notepad application. Search for the application from the Windows Start menu, right-click and choose to ‘Run as Administrator’.
    <br><br>
  5. Use Notepad to Open the following file:
    C:\Program Files\exacqVision\Server\streampi.xml<br>
    If you are using a 32-bit installation, select Program Files (x86) instead of Program Files.<br>
    NOTE: In the Open file dialogue, you will likely need to change the file type field from ‘Text Documents (*.txt)’ to All Files (*.*)’ to see file types of other extensions.

    <br><br>
  6. In the streampi.xml file, scroll down until you find the line which states: <Port value="22609" />.

    Change the number to the port you want to use between the quotation marks (” “). Do NOT use port 22610 since this is reserved. The following example changes the port number to ‘11111’.
    <br><br>
  7. After changing the port number, open the File menu, select Save, and close the editor window.<br><br>
  8. Restart the exacqVision Server Service by clicking ‘Start’ button, link or from the right-click menu, in the Services window that you opened earlier. You should now be able to connect using the new port number.<br><br>
  9. In the exacqVision Client, make sure the port number on the ‘Add Systems’ page matches the new port number.
    NOTE: The exacqVision Web Service is also a client of the exacqVision Server. Therefore, if using the exacqVision Web Service you may also be required to change the connecting port in the exacqVision Web Service Configuration.<br><br>

Ubuntu 20.04, 18.04, 16.04, 14.04, 12.04, 10.04

  1. Log into the system hosting the exacqVision Server application.<br><br>
  2. Exit all exacqVision software.<br><br>
  3. Open a Terminal command prompt by pressing CTRL+ALT+T

    NOTE: Depending on system settings, your Terminal window may appear with different colors than pictured.<br><br>
  4. Stop the exacqVision Server by entering one of the following commands:
    • sudo service edvrserver stop
    • sudo /etc/init.d/edvrserver stop

      NOTE: The sudo command elevates your system privileges in order to edit this file. Your system may prompt you for an administrator password. Enter this password if prompted. Linux systems do not display any characters when entering passwords in the CLI.

      NOTE: On some systems you may see output that reads:
      sudo: unable to resolve host <hostname>
      Ignore this message if seen.<br><br>
  5. You may use your preferred Linux editing tool, but in our example we will be using ‘gedit’.

    Use gedit to open the streampi.xml file containing the settings for the exacqVision Server by entering:
    sudo gedit /usr/local/exacq/server/streampi.xml<br><br>
  6. Locate the line which states: <Port value:"22609" />

    Change the number to the port you want to use between the quotation marks (” “). Do NOT use port 22610 since this is reserved. The following example changes the port number to ‘11111’.
    <br><br>
  7. Click ‘Save’ to commit your changes and close the editor window. <br><br>
  8. Returning to the Terminal prompt, enter one of the following commands to restart the exacqVision Server:
    • sudo service edvrserver start
    • sudo /etc/init.d/edvrserver start<br><br>
  9. In the exacqVision Client, make sure the port number on the ‘Add Systems’ page matches the new port number.

    NOTE: The exacqVision Web Service is also a client of the exacqVision Server. Therefore, if using the exacqVision Web Service you may also be required to change the connecting port in the exacqVision Web Service Configuration.

<br>

Categories
Knowledge Support Support exacqVision Client Categories Products

Why do I see the 127.0.0.1 IP address in my Add Systems list?

Modern computer networks require each device on the network to have a unique IP address. These addresses are used so that computers know how to communicate with each other and so that network equipment knows where to route the traffic crossing its path.

When using the ExacqVision Desktop Client application from a client workstation to connect to your ExacqVision Server application on another machine, perhaps on the other side of your office, you will need to enter the server’s IP address so the two machines can communicate.

However, TCP/IP includes some “shortcuts” that make routing communication more efficient when two applications running on the same machine need to communicate. These “shortcuts” are called loopback addresses and tell the machine not to bother sending the message out onto the network only to have the network send it right back.

127.0.0.1 is an IP address that always refers to “this machine”; the local computer. An ExacqVision Client can always connect to a server running on the same computer using the 127.0.0.1 IP address, regardless of the actual IP address being used by the NIC in the computer. The same can be said for “localhost,” which may be used in place of the address 127.0.0.1 in many applications. Both “localhost” and the address 127.0.0.1 refer to “this machine.”

Do not delete 127.0.0.1 or ‘localhost’ from your systems list. Using 127.0.0.1 instead of the actual IP address of the NIC ensures the fastest and least troublesome connection to the ExacqVision Server running on the same computer.

<br>


The 127.0.0.1 loopback address is an IPv4 address. While IPv6 has been a growing protocol for several years, it is still primarily used by service providers and external routing. Within private networks such as offices and homes, the older IPv4 protocol is still standard.

In case you’re wondering, the loopback address in IPv6 can be written as:
0:0:0:0:0:0:0:1 or as ::1

At the time of this writing, ExacqVision Server does not support IPv6 addressing.
<br>

Categories
Knowledge Support Support exacqVision Server Categories Products

How can I find my server’s MAC address?

exacqVision licenses are generated based on the MAC address of the server. This document describes how to determine the MAC address of a computer.

Licensed exacqVision server

To find the MAC address of an existing, previously licensed exacqVision server, the simplest method is to run the exacqVision Desktop Client and click the Config button from the top-left toolbar.

You may choose one of the following:

Option 1 – Systems

From the left-hand navigation panel, click on the Systems node at the top of the tree. The Systems panel displays a list of all added systems. MAC addresses for each system may be found in the MAC Address column.

If you do not see the MAC Address column, right-click on the column headers and toggle this column on/off from the view. Depending on the screen size you may also scroll right and left in this panel.

Option 2 – Configure System

From the left-hand navigation panel, expand the name of the server and click on the Configure System node. Click on the System tab across the top of the page. The licensed MAC Address is displayed near the license key field.

<br>

Unlicensed server

On an unlicensed system the System tab on the Configure System page, shown in Option 2 of the Licensed exacqVision Server section above, will simply display the lowest value MAC address in the list of MAC’s found on the operating system.

If you have a brand new exacqVision Server that has no license applied yet but wish to contact Orders to add more camera licenses, which MAC should you provide? Many of our systems provide multiple network interfaces labeled Data. To avoid confusion and take advantage of any complimentary licensing** already assigned to your system we strongly recommend you stick to using the MAC for the interface labeled Management. You may also use the exacqVision License Retrieval tool to look up information for the most recently purchased license generated for your system by entering the system’s Serial Number.

For those installing exacqVision Server software on third-party machines, the interfaces do not have these labels and you may license any MAC you wish. Please review Which MAC address can I license? if you have questions about this.

Whether a Build-By-Exacq (BBE) system or third-party hardware, you can find the MAC Address for each network interface using multiple methods, seen below.

** Complimentary licensing may comprise of a given number of licenses included with the purchase of BBE hardware or licenses offered through the Illustra Advantage program.

Option 1 – exacqVision Client

  1. Open the exacqVision Client software.
  2. Navigate to the Configuration screen by clicking the cog wheel icon in the upper-left corner of the window.
  3. Expand the server node on the left-hand navigation tree and select Configure System nested beneath it.
  4. Select the Network tab from the top of the Configure System page.
  5. Each enabled network interface detected by the operating system is listed in the Interfaces panel. Selecting them displays the Status, IP Address, and MAC address for each.

Option 2a – PowerShell on Windows

While, running ipconfig within CMD does list MAC addresses, it does not list the interface labels. Using PowerShell is just as simple and provides a command to find label and its MAC.

  1. Open the Windows Start menu and type ‘PowerShell’, then select Windows PowerShell from the results.
  2. At the command prompt, enter the following command:
    Get-NetAdapter -Name *
  3. The results list the name of each interface, allowing you to find the Management interface, as well as the MAC in the MacAddress field, and status.

NOTE: We strongly recommend keeping licensing tied to the Management interface. Data interfaces are best to leave unlicensed to avoid confusion and be used for camera traffic or in some cases archiving/iSCSI use. Users of X-Series systems should avoid licensing MAC addresses used by iDRAC interfaces.

Option 2b – Terminal on Ubuntu Linux

  1. Open the Terminal program.
  2. At the prompt, type ifconfig and press Enter.
  3. Locate the entry for Mgmt_Port.
  4. The MAC address for this interface is found in the HWaddr field, as seen in the below example.

<br>

Categories
Knowledge Support Support exacqVision Server Categories Products

Can I use an iSCSI storage server with my exacqVision Server?

Yes. Exacq supports the use of an iSCSI initiator to connect to a storage server. This is available in both Windows and Linux.

<br>

Categories
Knowledge Support Support exacqVision Server Categories Products

Removing an Unwanted “Orphaned” Drive From the Storage Page

Title

Removing an Unwanted “Orphaned” Drive From the Storage Page

Description 

ExacqVision retains any drive which has ever been added to the NVR.  This can result in unwanted or “Orphaned” drives showing up on the Storage Page.  Removing these drives requires manual intervention. 

Product 

ExacqVision Server

Solution

Windows 

  1. Log into the operating system of the server as an administrator, you cannot perform these steps from a client workstation.
  2. Click the Windows key + R to open the run box 
  3. Type services.msc and press enter 
  4. Locate and right-click on exacqVision Server, select stop 
  5. Open Notepad as an administrator 
  6. Browse to and open C:\Program Files\exacqVision\Server\psfpi.xml
  7. Locate and delete the line containing the orphaned drive.
  8. Save and close psfpi.xml 
  9. Back in Services, right-click on exacqVision Server, select start
  10. Verify the drive is no longer present in the ExacqVision Client

Linux 

  1. Log into the operating system as an administrator
  2. Open a Terminal Window and stop the ExacqVision Server Service 
        sudo service edvrserver stop

Note: If prompted enter the admin operating systems password then press enter.  Linux will not give any feedback while entering the password. 

  1. Edit psfpi.xml using the following command 
        sudo nano /usr/local/exacq/server/psfpi.xml
  1. Using the arrow keys, move to the beginning of the line containing the orphaned drive 
  2. Press control+k to delete the line 
  3. Press control+o to save the file
  4. Press control+x to exit 
  5. Start the exacqVision Server Service 
        sudo service edvrserver start
  1. Verify the drive is no longer present in the exacqVision Client

Example

In the example below the drive labeled /mnt/edvr/2 is unwanted and will need to be manually removed. 
ExacqVision Client before and after orphaned drive removed

<br>