Asterisk manager

Application for managing Asterisk PBX calls and operations with those calls

Configuration

Module config

{
  "AsteriskManager": {
    "Database": null,
    "ConnectionString": null,
    "Podzir": null,
    "sagaRepository": null,
    "Jwt": {
      "Secret": null,
      "RefreshTokenTTL": null
    },
    "Frontend": {
      "Language": "sl"
    },
    "Dispatcher": {
      "outgoingEndpoint": null,
      "consoles": null
    }
  }
}
Name Type Default Description
Database string sqlite Database to use (sqlite, mysql, mssql)
ConnectionString string ‘datasource=./tekelija-asterisk-manager.db;cache=shared;’ Database connection string
Podzir PodzirConfig null Podzir database connection string
SagaRepository string null Saga repository settings: either mongodb url or string “inmemory”
Jwt JwtConfig null JWT key configuration
Frontend FrontendConfig null Frontend app configuration
Dispatcher DispatcherConfig null Dispatcher configuration

When SagaRepository is “inmemory” rabbitmq / mongodb are not used, all state machines are persisted to memory and local message bus is used.

JwtConfig

{
  "Secret": "somejwtlongerkey123somejwtlongerkey123",
  "RefreshTokenTTL": 2
}
Name Type Default Description
Secret string null JWT key secret
RefreshTokenTTL int 1 Refresh token expiration interval in days

FrontendConfig

{
  "Language": "sl"
}
Name Type Default Description
Language string en Default frontend app language

DispatcherConfig

{
  "Dispatcher": {
    "OutgoingEndpoint": null,
    "Consoles": null
  }
}
Name Type Default Description
OutgoingEndpoint string null Default outgoing endpoint
Consoles string[] null Array of dispatcher endpoints

Asterisk config

Configure Asterisk PBX rest api endpoint access

{
  "Asterisk": {
    "url": null,
    "port": 8089,
    "username": null,
    "password": null,
    "secure": false,
    "applicationName": null
  }
}
Name Type Default Description
Url string null rest api url
Port int 8089 rest api port
Username string null rest api username
Password string null rest api password
Secure bool false use tls endpoint
ApplicationName string null asterisk stasis application name

Message bus config

Configure access to rabbitmq message service bus.

{
  "MessageBus": {
    "Url": "rabbitmq://localhost",
    "Username": null,
    "Password": null,
    "Endpoint": "<endpoint-name>",
    "MessageRepositoryUri": null
  }
}

Parameters:

Name Type Default Description
Url string rabbitmq://localhost RabbitMQ url (rabbitmq://…)
Username string null RabbitMQ username
Password string null RabbitMQ user password
Endpoint string asterisk-mgr RabbitMQ endpoint
MessageRepositoryUri string host name Origin of the call, may have some sense for global call data collection setup