KI-AGENT: Telekom Telefonie an Asterisk anbinden

This commit is contained in:
2026-05-21 16:04:48 +02:00
parent 9e7b5bc0b9
commit ee6c2d7420
8 changed files with 312 additions and 0 deletions

View File

@@ -43,6 +43,32 @@ const testAccounts = () => [
},
]
const externalTelephonyConfig = () => {
const provider = process.env.TELEPHONY_EXTERNAL_PROVIDER || (
envFlag(process.env.TELEPHONY_TELEKOM_ENABLED, false) ? "telekom" : ""
)
const enabled = envFlag(
process.env.TELEPHONY_EXTERNAL_ENABLED,
envFlag(process.env.TELEPHONY_TELEKOM_ENABLED, false)
)
return {
enabled,
provider: provider || null,
inboundExtension: process.env.TELEPHONY_EXTERNAL_INBOUND_EXTENSION
|| process.env.TELEPHONY_TELEKOM_INBOUND_EXTENSION
|| "1001",
outboundPrefix: process.env.TELEPHONY_TELEKOM_OUTBOUND_PREFIX || "0",
registrar: provider === "telekom" || envFlag(process.env.TELEPHONY_TELEKOM_ENABLED, false)
? (process.env.TELEPHONY_TELEKOM_REGISTRAR || "tel.t-online.de")
: null,
sipUserConfigured: Boolean(process.env.TELEPHONY_TELEKOM_SIP_USER),
authUserConfigured: Boolean(process.env.TELEPHONY_TELEKOM_AUTH_USER),
passwordConfigured: Boolean(process.env.TELEPHONY_TELEKOM_PASSWORD),
callerIdConfigured: Boolean(process.env.TELEPHONY_TELEKOM_CALLER_ID),
}
}
const fetchWithTimeout = async (url: string, timeoutMs = 2500) => {
const controller = new AbortController()
const timeout = setTimeout(() => controller.abort(), timeoutMs)
@@ -89,6 +115,7 @@ export default async function telephonyRoutes(server: FastifyInstance) {
sipWebSocketUrl: publicAsteriskWsUrl(),
echoExtension: process.env.TELEPHONY_ECHO_EXTENSION || "600",
testAccounts: testAccounts(),
external: externalTelephonyConfig(),
}))
server.get("/telephony/status", async () => {