Class Ng911CadIfServer
Class that provides a EIDO conveyance interface between the PSAP CHFE and one or more CAD systems. See NENA-STA-024.1a-2023.
Inherited Members
Namespace: Ng911CadIfLib
Assembly: Ng911CadIfLib.dll
Syntax
public class Ng911CadIfServer
Constructors
| Edit this page View SourceNg911CadIfServer(X509Certificate2, IPEndPoint, string, string, I3LogEventClientMgr, CadIfLoggingSettings, MutualAuthenticationDelegate, EidoRetrievalCallbackDelegate)
Constructor
Declaration
public Ng911CadIfServer(X509Certificate2 ServerCert, IPEndPoint ServerEndPoint, string WsPath, string HttpsEidoPath, I3LogEventClientMgr LoggingInterface, CadIfLoggingSettings LoggingSettings, MutualAuthenticationDelegate MutualAuthCallback, EidoRetrievalCallbackDelegate RetrievalCallback)
Parameters
Type | Name | Description |
---|---|---|
X509Certificate2 | ServerCert | X.509 certificate to use for the HTTPS/WSS web socket listener. The certificate must contain a private key. Required |
IPEndPoint | ServerEndPoint | Specifies the IP address and port number that the Ng911CadIfServer will listen on. The IP address may be IPAddress.Any, IPAddress.IPv6Any, an IPv4 address or an IPv6 address. Required. |
string | WsPath | Specifies the path that clients will use to connect to the Ng911CadIfServer's Web Socket server. Required. For example: /IncidentData/Ent |
string | HttpsEidoPath | Specifies the path that clients will use to access the EIDO Retrieval service. Required.For example: /incidents/eidos. |
I3LogEventClientMgr | LoggingInterface | Specifies the I3LogEventClientMgr object to use for sending NG9-1-1 log events. If this parameter is null then the Ng911CadIfServer object will not send NG9-1-1 log events. If non-null, then the I3LogEventClientMgr object must be configured and running. |
CadIfLoggingSettings | LoggingSettings | Configuration settings for logging I3V3 NG9-1-1 log events. This parameter is required if the LoggingInterface parameter is not null. |
MutualAuthenticationDelegate | MutualAuthCallback | Callback delegate that allows the caller to perform custom authentication of the WebSocket client. |
EidoRetrievalCallbackDelegate | RetrievalCallback | Specifies a callback for a function that the Ng911CadIfServer object will call to retrieve an EIDO from the application (PSAP CHFE) when a functional element (i.e. another PSAP system) attempts to retrieve an EIDO using the EIDO Retrieval Service interface of the Ng911CadIfServer object. |
Methods
| Edit this page View SourceSendEido(EidoType)
Sends a single EIDO document to all subscribers. This method queues the EIDO for transmission and returns immediately. This method should be called when a new EIDO is created or an existing EIDO is updated.
Declaration
public void SendEido(EidoType Eido)
Parameters
Type | Name | Description |
---|---|---|
EidoType | Eido | EIDO to send |
SendEidosToSubscriber(string, List<EidoType>)
Sends a list of all EIDOs for active incidents to send to a specific subscriber. This method queues the EIDOs and returns immediately.
Declaration
public void SendEidosToSubscriber(string strSubscriptionId, List<EidoType> Eidos)
Parameters
Type | Name | Description |
---|---|---|
string | strSubscriptionId | Subscription ID of the subscriber. |
List<EidoType> | Eidos | List of EIDOs to send. |
Shutdown()
Performs a graceful shutdown by terminating all subscriptions and stopping the Web Socket listener.
WARNING: This method attempts to shut down the WebApplication object synchronously. Under certain conditions this can cause this method to block indefinitely. Use the ShutdownAsync() method instead and await its completion instead of using this method.
Declaration
public void Shutdown()
ShutdownAsync()
Performs a graceful shutdown by terminating all subscriptions and stopping the Web Socket listener. Shuts down the WebApplication asynchronously.
Declaration
public Task ShutdownAsync()
Returns
Type | Description |
---|---|
Task | Returns an awaitable Task object. |
Start()
Causes the Ng911CadIfServer object to start its HTTPS server listening for Web Socket requests and HTTPS EIDO Retrieval Service requests.
Declaration
public void Start()
Events
| Edit this page View SourceEidoRequestReceived
The Ng911CadIfServer class fires this event when it receives an HTTPS GET request for an EIDO. This event is for testing only. The application is not expected to handle this event.
Declaration
public event EidoRequestReceivedDelegate EidoRequestReceived
Event Type
Type | Description |
---|---|
EidoRequestReceivedDelegate | This delegate receives the remote endpoint of the client, the request path and the client's X.509 certificate (if provided). |
EidoResponseSent
The Ng911CadIfServer class fires this event when it sends a response to an HTTPS GET request for an EIDO. This event is for testing only. The application is not expected to handle this event.
Declaration
public event EidoResponseSentDelegate EidoResponseSent
Event Type
Type | Description |
---|---|
EidoResponseSentDelegate | This delegate receives the remote endpoint of the client that the EIDO was sent to, the HTTP response code that was sent to the client and the EidoType object that was sent to the client. |
NewSubscription
Fired when a new subscription request is accepted.
Declaration
public event NewSubscriptionDelegate NewSubscription
Event Type
Type | Description |
---|---|
NewSubscriptionDelegate | This delegate receives information about the subscriber including its remote endpoint and information from the subscriber's X.509 certificate. |
SubscriptionEnded
Fired when a subscription expires, the subscriber unsubscribes or if the Web Socket connection was terminated abnormally.
Declaration
public event SubscriptionEndedDelegate SubscriptionEnded
Event Type
Type | Description |
---|---|
SubscriptionEndedDelegate | This delegate receives information about the subscriber including the reason that the subscription, its remote endpoint and information from the subscriber's X.509 certificate. |
WssConnectionAccepted
The Ng911CadIfServer class fires this event when it accepts a Web Socket connection. This event is for testing only. The application is not expected to handle this event.
Declaration
public event WssConnectionAcceptedDelegate WssConnectionAccepted
Event Type
Type | Description |
---|---|
WssConnectionAcceptedDelegate | This delegate receives information about the client including its remote endpoint, the Web Socket sub-protocol and the client's X.509 certificate if available. |
WssConnectionEnded
The Ng911CadIfServer class fires this event when a Web Socket connection has ended. This event is for testing only. The application is not expected to handle this event.
Declaration
public event WssConectionEndedDelegate WssConnectionEnded
Event Type
Type | Description |
---|---|
WssConectionEndedDelegate | This delegate receives the remote endpoint of the client. |
WssMessageReceived
The Ng911CadIfServer class fires this event when it receives an EIDO conveyance protocol message. This event is for testing only. The application is not expected to handle this event.
Declaration
public event WssMessageReceivedDelegate WssMessageReceived
Event Type
Type | Description |
---|---|
WssMessageReceivedDelegate | This delegate receives the remote endpoint of the client that sent the message to the Ng911CadIfServer object and a string containing the JSON message. |
WssMessageSent
The Ng911CadIfServer class fires this event when it sends an EIDO conveyance protocol message. This event is for testing only. The application is not expected to handle this event.
Declaration
public event WssMessageSentDelegate WssMessageSent
Event Type
Type | Description |
---|---|
WssMessageSentDelegate | This delegate receives the remote endpoint of the client that the message was sent to and a string containing the JSON message. |