diff --git a/Dockerfile.asterisk-worker b/Dockerfile.asterisk-worker index a1ef3f4..8ba97bc 100644 --- a/Dockerfile.asterisk-worker +++ b/Dockerfile.asterisk-worker @@ -1,7 +1,7 @@ # Install dependencies only when needed FROM node:20-alpine3.19 AS deps WORKDIR /usr/src/app -COPY ./dist/apps/asterisk-worker/package.json .npmrc ./ +COPY ./dist/apps/asterisk-worker/package.json ./ RUN npm install -g pnpm@8.14.1 && pnpm install FROM node:20-alpine3.19 AS builder diff --git a/apps/asterisk-worker/src/workers/ivr.service.ts b/apps/asterisk-worker/src/workers/ivr.service.ts index 733dee1..f03ec53 100644 --- a/apps/asterisk-worker/src/workers/ivr.service.ts +++ b/apps/asterisk-worker/src/workers/ivr.service.ts @@ -23,6 +23,7 @@ export class IVRService implements OnModuleInit, OnModuleDestroy { private isConnected = false; private isShuttingDown = false; private reconnectTimer: NodeJS.Timeout | null = null; + private broadcastAddressPrefix: string | null; constructor( private readonly batchManager: BatchManager, @@ -40,13 +41,28 @@ export class IVRService implements OnModuleInit, OnModuleDestroy { audioPath: process.env.ASTERISK_AUDIO_PATH, callerId: process.env.ASTERISK_CALLER_ID, }; + this.broadcastAddressPrefix = process.env.BROADCAST_ADDRESS_PREFIX || null; this.logger.log('IVRService initialized', this.config); } callEndpoint = (broadcastAddress: string) => { + // Strip +977 prefix if present if (broadcastAddress.startsWith('+977')) { + this.logger.log(`Stripping '+977' prefix from broadcast address: ${broadcastAddress}`); broadcastAddress = broadcastAddress.slice(4); } + if (broadcastAddress.startsWith('977')) { + this.logger.log(`Stripping '977' prefix from broadcast address: ${broadcastAddress}`); + broadcastAddress = broadcastAddress.slice(3); + } + + // Apply broadcast address prefix if configured + if (this.broadcastAddressPrefix) { + this.logger.log(`Applying broadcast address prefix: ${this.broadcastAddressPrefix} to ${broadcastAddress}`); + broadcastAddress = `${this.broadcastAddressPrefix}${broadcastAddress}`; + } + + this.logger.log(`Constructed call endpoint for broadcast address: ${broadcastAddress}`); return `${this.config.trunk}/${broadcastAddress}`; };