import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
const DTMF_PATTERN = /^[0-9*#wWpP,]+$/;
export function normalizeDialInNumber(value: unknown): string | undefined { const normalized = normalizeOptionalString(value); if (!normalized) { return undefined;
} const compact = normalized.replace(/[()\s.-]/g, ""); if (!/^\+?[0-9]{5,20}$/.test(compact)) { thrownew Error("dialInNumber must be a phone number");
} return compact;
}
export function normalizeDtmfSequence(value: unknown): string | undefined { const normalized = normalizeOptionalString(value); if (!normalized) { return undefined;
} const compact = normalized.replace(/\s+/g, ""); if (!DTMF_PATTERN.test(compact)) { thrownew Error("dtmfSequence may only contain digits, *, #, comma, w, p");
} return compact;
}
export function buildMeetDtmfSequence(params: {
pin?: string;
dtmfSequence?: string;
}): string | undefined { const explicit = normalizeDtmfSequence(params.dtmfSequence); if (explicit) { return explicit;
} const pin = normalizeOptionalString(params.pin); if (!pin) { return undefined;
} const compactPin = pin.replace(/\s+/g, ""); if (!/^[0-9]+#?$/.test(compactPin)) { thrownew Error("pin may only contain digits and an optional trailing #");
} return compactPin.endsWith("#") ? compactPin : `${compactPin}#`;
}
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.14Bemerkung:
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-06-05)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.