mirror of
https://dev.azure.com/globalhealthx/EMR/_git/helix-engage-server
synced 2026-05-18 20:08:19 +00:00
feat(config): add Ozonetel admin credentials to TelephonyConfig
- adminUsername + adminPassword in ozonetel section - Masked in GET response, sentinel-stripped on update - Env seeds: OZONETEL_ADMIN_USERNAME, OZONETEL_ADMIN_PASSWORD - Used by supervisor barge/whisper/listen endpoints Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -46,6 +46,7 @@ export class TelephonyConfigService implements OnModuleInit {
|
|||||||
ozonetel: {
|
ozonetel: {
|
||||||
...c.ozonetel,
|
...c.ozonetel,
|
||||||
agentPassword: c.ozonetel.agentPassword ? '***masked***' : '',
|
agentPassword: c.ozonetel.agentPassword ? '***masked***' : '',
|
||||||
|
adminPassword: c.ozonetel.adminPassword ? '***masked***' : '',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -68,6 +69,9 @@ export class TelephonyConfigService implements OnModuleInit {
|
|||||||
if (merged.ozonetel.agentPassword === '***masked***') {
|
if (merged.ozonetel.agentPassword === '***masked***') {
|
||||||
merged.ozonetel.agentPassword = current.ozonetel.agentPassword;
|
merged.ozonetel.agentPassword = current.ozonetel.agentPassword;
|
||||||
}
|
}
|
||||||
|
if (merged.ozonetel.adminPassword === '***masked***') {
|
||||||
|
merged.ozonetel.adminPassword = current.ozonetel.adminPassword;
|
||||||
|
}
|
||||||
this.backup();
|
this.backup();
|
||||||
this.writeFile(merged);
|
this.writeFile(merged);
|
||||||
this.cached = merged;
|
this.cached = merged;
|
||||||
|
|||||||
@@ -22,6 +22,11 @@ export type TelephonyConfig = {
|
|||||||
sipId: string;
|
sipId: string;
|
||||||
// Default outbound campaign name on Ozonetel CloudAgent.
|
// Default outbound campaign name on Ozonetel CloudAgent.
|
||||||
campaignName: string;
|
campaignName: string;
|
||||||
|
// Ozonetel portal admin credentials — used by supervisor barge/whisper/listen.
|
||||||
|
// These are the login credentials for the Ozonetel admin dashboard
|
||||||
|
// (api.cloudagent.ozonetel.com/auth/login), NOT an agent ID.
|
||||||
|
adminUsername: string;
|
||||||
|
adminPassword: string;
|
||||||
};
|
};
|
||||||
// Ozonetel WebRTC gateway used by the staff portal softphone.
|
// Ozonetel WebRTC gateway used by the staff portal softphone.
|
||||||
sip: {
|
sip: {
|
||||||
@@ -46,6 +51,8 @@ export const DEFAULT_TELEPHONY_CONFIG: TelephonyConfig = {
|
|||||||
did: '',
|
did: '',
|
||||||
sipId: '',
|
sipId: '',
|
||||||
campaignName: '',
|
campaignName: '',
|
||||||
|
adminUsername: '',
|
||||||
|
adminPassword: '',
|
||||||
},
|
},
|
||||||
sip: {
|
sip: {
|
||||||
domain: 'blr-pub-rtc4.ozonetel.com',
|
domain: 'blr-pub-rtc4.ozonetel.com',
|
||||||
@@ -65,6 +72,8 @@ export const TELEPHONY_ENV_SEEDS: Array<{ env: string; path: string[] }> = [
|
|||||||
// OZONETEL_AGENT_ID removed — agentId is per-user on the Agent entity,
|
// OZONETEL_AGENT_ID removed — agentId is per-user on the Agent entity,
|
||||||
// not a sidecar-level config. All endpoints require agentId from caller.
|
// not a sidecar-level config. All endpoints require agentId from caller.
|
||||||
{ env: 'OZONETEL_AGENT_PASSWORD', path: ['ozonetel', 'agentPassword'] },
|
{ env: 'OZONETEL_AGENT_PASSWORD', path: ['ozonetel', 'agentPassword'] },
|
||||||
|
{ env: 'OZONETEL_ADMIN_USERNAME', path: ['ozonetel', 'adminUsername'] },
|
||||||
|
{ env: 'OZONETEL_ADMIN_PASSWORD', path: ['ozonetel', 'adminPassword'] },
|
||||||
{ env: 'OZONETEL_DID', path: ['ozonetel', 'did'] },
|
{ env: 'OZONETEL_DID', path: ['ozonetel', 'did'] },
|
||||||
{ env: 'OZONETEL_SIP_ID', path: ['ozonetel', 'sipId'] },
|
{ env: 'OZONETEL_SIP_ID', path: ['ozonetel', 'sipId'] },
|
||||||
{ env: 'OZONETEL_CAMPAIGN_NAME', path: ['ozonetel', 'campaignName'] },
|
{ env: 'OZONETEL_CAMPAIGN_NAME', path: ['ozonetel', 'campaignName'] },
|
||||||
|
|||||||
Reference in New Issue
Block a user