Service name

Tekelija-ECall

Description

This service allows processing of external eCall messages and retreiving MSD data on demand. eCall service implements following functionalities:

  • listen for external eCall messages

    component listening for ext. messages is implemented as a WCF server. Third party uses methods ot that server to pass eCall data messages.

  • resend & callback client

    callback & resend MSD data operations can be triggered on demand. Module passes those requests to remote WCF endpoint, thus the client is also WCF client.

  • resend & callback marshalling

    depending on the source of received MSD data client should connect to different remote endpoints.

Configuration

ECall config

{
  "ECall": {
    "clientUri": null,
    "provider": null,
    "database": null,
    "connectionString": null,
    "receivers": [
      {
        "name": null,
        "uri": null
      }
    ]
  }
}

Params

Setting Default value Notes
clientUri string, null default remote endpoint for resendMSD & callback if no separate receivers are configured
provider string, null if there are more than one instance of eCall receiver quark, this settings differentiates between them. “provider” value is stored in eCall quark db
database string, null database - “mssql”, “sqlite” or “mysql”
connectionString string, null database connection string, see connection string section below
receivers struct, null array of remote endpoints if there is eCall marshalling involved. See below for details

receivers is an array of objects containing configuration for each separate receiver:

{
  "name":"received descriptive name",
  "uri":"http://...."
}
Setting Description
name name of the receiver. should be substring of value found in callId field of the eCall message from last @ character to the end (ie: if callId is asd21312312313@13.13.13.13, name should be 13.13.13.13
uri full remote endpoint receiver uri

Example

In the example below we have defined two receivers:

  1. for received ecall having callId field ending with @123.33.13.11, remote endpoint will be http://193.77.24.79:8080/ecall4allCommand/RecallResendReceiver/RecallResendReceiver
  2. for received ecall having callId field ending with @123.33.13.22, remote endpoint will be http://193.77.11.79:1090/ecall4allCommand/RecallResendReceiver/RecallResendReceiver
{
  "ECall": {
    "clientUri": "http://193.77.24.79:8080/ecall4allCommand/RecallResendReceiver/RecallResendReceiver",
    "provider": "default",
    "receivers": [
      {
        "name": "123.33.13.11",
        "uri": "http://193.77.24.79:8080/ecall4allCommand/RecallResendReceiver/RecallResendReceiver"
      },
      {
        "name": "123.33.13.22",
        "uri": "http://193.77.11.79:1090/ecall4allCommand/RecallResendReceiver/RecallResendReceiver"
      }
    ],
    "database": "sqlite"
  }
}

Message bus config

{
  "MessageBus": {
    "Url": null,
    "Endpoint": null
  }
}

Params

Setting Description Notes
url string, null rabbitmq url (rabbitmq://host:port) or null (use loopback message bus)
endpoint string, null rabbitmq endpoint to listen at

Example

{
  "MessageBus": {
    "Url": "rabbitmq://localhost",
    "Endpoint": "ecall-tekelija"
  }
}

Connection string

  1. Database: "mssql" - mssql connection string, ie. Server=.\sqlexpress;initial catalog=tekelija-ecall.demo;Integrated Security=SSPI;
  2. Database: "sqlite" - sqlite connection string, ie. DataSource=<path>/app.db;Cache=Shared
  3. Database: "mysql" - mysql connection string, ie. Server=localhost;Database=tekelija-ecall.demo;Uid=<user>;Pwd=<pass>;

Authorization config

{
  "AuthServer": {
    "Issuer": "https://authenticatomatic.urszr.si:22000",
    "ClientId": null,
    "ClientSecret": null,
    "Audience": null
  }
}
Name Type Default Description
Issuer string null OAuth server url
ClientId string null Authorization app id
ClientSecret string null Authorization app secret
Audience string[] null Array of audiences (scope resources) to be used in token validation