Sign inSign up

jambonz/webhook-test-scaffold

By jambonz

Updated 5 days ago

Image
0

10K+

jambonz/webhook-test-scaffold repository overview

jambonz-feature-server CI

This application implements the core feature server of the jambones platform.

Note: If you are a developer looking to work on the code please read our how-to for that.

Configuration

Configuration is provided via environment variables:

variablemeaningrequired?
AWS_ACCESS_KEY_IDaws access key id, used for TTS/STT as well SNS notificationsno
AWS_REGIONaws regionno
AWS_SECRET_ACCESS_KEYaws secret access key, used per aboveno
AWS_SNS_TOPIC_ARNaws sns topic arn that scale-in lifecycle notifications will be published tono
DRACHTIO_HOSTip address of drachtio server (typically '127.0.0.1')yes
DRACHTIO_PORTlistening port of drachtio server for control connections (typically 9022)yes
DRACHTIO_SECRETshared secretyes
ENABLE_METRICSif 1, metrics will be generatedno
ENCRYPTION_SECRETsecret for credential encryption(JWT_SECRET is deprecated)yes
GOOGLE_APPLICATION_CREDENTIALSpath to gcp service key fileyes
HTTP_PORTtcp port to listen on for API requests from jambonz-api-serveryes
HTTP_IPIP Address for API requests from jambonz-api-serverno
JAMBONES_GATHER_EARLY_HINTS_MATCHif true and hints are provided, gather will opportunistically review interim transcripts if possible to reduce ASR latencyno
JAMBONES_FREESWITCHIP:port:secret for Freeswitch server (e.g. '127.0.0.1:8021:JambonzR0ck$'yes
JAMBONES_HOLD_UNHOLD_EVENTSif set, surface in-dialog hold/un-hold: emits a 'hold'/'unhold' event and, when sipRequestWithinDialogHook is configured, delivers it to the application. Disabled when unsetno
JAMBONES_LOGLEVELlog level for application, 'info' or 'debug'no
JAMBONES_MYSQL_HOSTmysql hostyes
JAMBONES_MYSQL_USERmysql usernameyes
JAMBONES_MYSQL_PASSWORDmysql passwordyes
JAMBONES_MYSQL_DATABASEmysql datayes
JAMBONES_MYSQL_CONNECTION_LIMITmysql connection limitno
JAMBONES_NETWORK_CIDRCIDR of private network that feature server is running in (e.g. '172.31.0.0/16')yes
JAMBONES_REDIS_HOSTredis hostyes
JAMBONES_REDIS_PORTredis portyes
JAMBONES_SBCSlist of IP addresses (on the internal network) of SBCs, comma-separatedyes
STATS_HOSTip address of metrics host (usually '127.0.0.1' since telegraf is installed locallyno
STATS_PORTlistening port for metrics hostno
STATS_PROTOCOL'tcp' or 'udp'no
STATS_TELEGRAFif 1, metrics will be generated in telegraf formatno
JAMBONZ_RECORD_WS_BASE_URLrecording websocket URL to send the recording audiono
JAMBONZ_RECORD_WS_USERNAMErecording websocket usernameno
JAMBONZ_RECORD_WS_PASSWORDrecording websocket passwordno
ANCHOR_MEDIA_ALWAYSkeep media on media serverno
JAMBONZ_DISABLE_DIAL_PAI_HEADERcontrol P-Asserted-Identity header on B-Legno
running under pm2

Typically, this application runs under pm2 using an ecosystem.config.js file similar to this:

module.exports = {
  apps : [
  {
    name: 'jambonz-feature-server',
    cwd: '/home/admin/apps/jambonz-feature-server',
    script: 'app.js',
    instance_var: 'INSTANCE_ID',
    out_file: '/home/admin/.pm2/logs/jambonz-feature-server.log',
    err_file: '/home/admin/.pm2/logs/jambonz-feature-server.log',
    exec_mode: 'fork',
    instances: 1,
    autorestart: true,
    watch: false,
    max_memory_restart: '1G',
    env: {
      NODE_ENV: 'production',
      GOOGLE_APPLICATION_CREDENTIALS: '/home/admin/credentials/gcp.json',
      AWS_ACCESS_KEY_ID: 'XXXXXXXXXXXX',
      AWS_SECRET_ACCESS_KEY: 'YYYYYYYYYYYYYYYYYYYYY',
      AWS_REGION: 'us-west-1',
      ENABLE_METRICS: 1,
      STATS_HOST: '127.0.0.1',
      STATS_PORT: 8125,
      STATS_PROTOCOL: 'tcp',
      STATS_TELEGRAF: 1,
      AWS_SNS_TOPIC_ARN: 'arn:aws:sns:us-west-1:xxxxxxxxxxx:terraform-20201107200347128600000002',
      JAMBONES_NETWORK_CIDR: '172.31.0.0/16',
      JAMBONES_MYSQL_HOST: 'aurora-cluster-jambonz.cluster-yyyyyyyyyyy.us-west-1.rds.amazonaws.com',
      JAMBONES_MYSQL_USER: 'admin',
      JAMBONES_MYSQL_PASSWORD: 'foobarbz',
      JAMBONES_MYSQL_DATABASE: 'jambones',
      JAMBONES_MYSQL_CONNECTION_LIMIT: 10,
      JAMBONES_REDIS_HOST: 'jambonz.zzzzzzz.0001.usw1.cache.amazonaws.com',
      JAMBONES_REDIS_PORT: 6379,
      JAMBONES_LOGLEVEL: 'debug',
      HTTP_PORT: 3000,
      DRACHTIO_HOST: '127.0.0.1',
      DRACHTIO_PORT: 9022,
      DRACHTIO_SECRET: 'sharedsecret',
      JAMBONES_SBCS: '172.31.32.10',
      JAMBONES_FREESWITCH: '127.0.0.1:8021:sharedsecret'
    }
  }]
};
Running the test suite

Please see this.

Tag summary

Content type

Image

Digest

sha256:649a1ed6a

Size

128.7 MB

Last updated

5 days ago

docker pull jambonz/webhook-test-scaffold