Add support for custom transcription prompts in voicemail processing (#7908)
This commit is contained in:
committed by
GitHub
parent
695b7d7410
commit
1b225840c4
@@ -170,6 +170,8 @@
|
||||
//$voicemail_mail_to = $row["voicemail_mail_to"];
|
||||
//$voicemail_sms_to = $row["voicemail_sms_to "];
|
||||
$voicemail_transcription_enabled = $row["voicemail_transcription_enabled"];
|
||||
$voicemail_transcription_prompt_enabled = $row["voicemail_transcription_prompt_enabled"] ?? false;
|
||||
$voicemail_transcription_prompt = $row["voicemail_transcription_prompt"] ?? '';
|
||||
//$voicemail_attach_file = $row["voicemail_attach_file"];
|
||||
$voicemail_file = $row["voicemail_file"];
|
||||
//$voicemail_local_after_email = $row["voicemail_local_after_email"];
|
||||
@@ -246,6 +248,25 @@
|
||||
|
||||
echo "transcribe message: ".$transcribe_message."\n";
|
||||
|
||||
$prompt_is_enabled = in_array($voicemail_transcription_prompt_enabled ?? false, [true, 'true', 't'], true);
|
||||
echo "prompt_enabled raw: ".var_export($voicemail_transcription_prompt_enabled ?? 'NOT SET', true)."\n";
|
||||
echo "prompt_is_enabled: ".($prompt_is_enabled ? 'true' : 'false')."\n";
|
||||
echo "prompt template length: ".strlen($voicemail_transcription_prompt ?? '')."\n";
|
||||
echo "transcribe_prompt class exists: ".(class_exists('transcribe_prompt') ? 'true' : 'false')."\n";
|
||||
if (!empty($transcribe_message)
|
||||
&& $prompt_is_enabled
|
||||
&& !empty($voicemail_transcription_prompt)
|
||||
&& class_exists('transcribe_prompt')
|
||||
) {
|
||||
$prompt_processor = new transcribe_prompt($settings);
|
||||
$prompt_result = $prompt_processor->process($transcribe_message, $voicemail_transcription_prompt);
|
||||
echo "prompt result length: ".strlen($prompt_result)."\n";
|
||||
if (!empty($prompt_result)) {
|
||||
$transcribe_message = $prompt_result;
|
||||
}
|
||||
echo "prompt processed message: ".$transcribe_message."\n";
|
||||
}
|
||||
|
||||
//prepare the email body
|
||||
$email_body = str_replace('${message_text}', $transcribe_message, $email_body);
|
||||
}
|
||||
|
||||
@@ -2914,6 +2914,114 @@ $text['description-voicemail_transcription_enabled']['zh-cn'] = "选择是否为
|
||||
$text['description-voicemail_transcription_enabled']['ja-jp'] = "この内線番号でボイスメールの文字起こしを有効にするかどうかを選択します";
|
||||
$text['description-voicemail_transcription_enabled']['ko-kr'] = "이 확장 프로그램에 음성 메일 녹음이 활성화되어 있는지 선택하십시오.";
|
||||
|
||||
$text['label-voicemail_transcription_prompt_enabled']['en-us'] = "Custom Prompt Processing";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['en-gb'] = "Custom Prompt Processing";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['ar-eg'] = "معالجة موجه مخصص";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['de-at'] = "Benutzerdefinierte Eingabeaufforderungsverarbeitung";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['de-ch'] = "Benutzerdefinierte Eingabeaufforderungsverarbeitung";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['de-de'] = "Benutzerdefinierte Eingabeaufforderungsverarbeitung";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['el-gr'] = "Επεξεργασία Προσαρμοσμένης Προτροπής";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['es-cl'] = "Procesamiento de Indicación Personalizada";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['es-mx'] = "Procesamiento de Indicación Personalizada";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['fr-ca'] = "Traitement d'Invite Personnalisée";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['fr-fr'] = "Traitement d'Invite Personnalisée";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['he-il'] = "עיבוד פקודה מותאמת אישית";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['it-it'] = "Elaborazione Prompt Personalizzato";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['ka-ge'] = "მორგებული მოთხოვნის დამუშავება";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['nl-nl'] = "Aangepaste Promptverwerking";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['pl-pl'] = "Przetwarzanie Niestandardowego Monitu";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['pt-br'] = "Processamento de Prompt Personalizado";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['pt-pt'] = "Processamento de Prompt Personalizado";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['ro-ro'] = "Procesarea Promptului Personalizat";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['ru-ru'] = "Обработка пользовательского запроса";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['sv-se'] = "Anpassad Promptbehandling";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['uk-ua'] = "Обробка користувацького запиту";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['tr-tr'] = "Özel İstem İşleme";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['zh-cn'] = "自定义提示处理";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['ja-jp'] = "カスタムプロンプト処理";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['ko-kr'] = "사용자 지정 프롬프트 처리";
|
||||
|
||||
$text['description-voicemail_transcription_prompt_enabled']['en-us'] = "When enabled, the transcription is sent to the configured AI provider with a custom prompt before being included in the voicemail email.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['en-gb'] = "When enabled, the transcription is sent to the configured AI provider with a custom prompt before being included in the voicemail email.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['ar-eg'] = "عند التمكين، يتم إرسال النص المكتوب إلى موفر الذكاء الاصطناعي المكوّن مع موجه مخصص قبل تضمينه في البريد الإلكتروني للبريد الصوتي.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['de-at'] = "Wenn aktiviert, wird die Transkription mit einer benutzerdefinierten Eingabeaufforderung an den konfigurierten KI-Anbieter gesendet, bevor sie in die Voicemail-E-Mail aufgenommen wird.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['de-ch'] = "Wenn aktiviert, wird die Transkription mit einer benutzerdefinierten Eingabeaufforderung an den konfigurierten KI-Anbieter gesendet, bevor sie in die Voicemail-E-Mail aufgenommen wird.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['de-de'] = "Wenn aktiviert, wird die Transkription mit einer benutzerdefinierten Eingabeaufforderung an den konfigurierten KI-Anbieter gesendet, bevor sie in die Voicemail-E-Mail aufgenommen wird.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['el-gr'] = "Όταν είναι ενεργοποιημένο, η μεταγραφή αποστέλλεται στον διαμορφωμένο πάροχο τεχνητής νοημοσύνης με μια προσαρμοσμένη προτροπή πριν συμπεριληφθεί στο email του τηλεφωνητή.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['es-cl'] = "Cuando está habilitado, la transcripción se envía al proveedor de IA configurado con una indicación personalizada antes de incluirse en el correo electrónico del buzón de voz.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['es-mx'] = "Cuando está habilitado, la transcripción se envía al proveedor de IA configurado con una indicación personalizada antes de incluirse en el correo electrónico del buzón de voz.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['fr-ca'] = "Lorsqu'activé, la transcription est envoyée au fournisseur d'IA configuré avec une invite personnalisée avant d'être incluse dans l'e-mail de messagerie vocale.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['fr-fr'] = "Lorsqu'activé, la transcription est envoyée au fournisseur d'IA configuré avec une invite personnalisée avant d'être incluse dans l'e-mail de messagerie vocale.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['he-il'] = "כאשר מופעל, התמלול נשלח לספק ה-AI המוגדר עם פקודה מותאמת אישית לפני הכללתו בדואר האלקטרוני של תא הקול.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['it-it'] = "Quando abilitato, la trascrizione viene inviata al provider AI configurato con un prompt personalizzato prima di essere inclusa nell'e-mail della segreteria telefonica.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['ka-ge'] = "ჩართვისას, ტრანსკრიფცია გაიგზავნება კონფიგურირებულ AI პროვაიდერთან მორგებული მოთხოვნით ვოისმეილის ელ-ფოსტაში ჩართვამდე.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['nl-nl'] = "Indien ingeschakeld, wordt de transcriptie met een aangepaste prompt naar de geconfigureerde AI-provider gestuurd voordat deze in de voicemail-e-mail wordt opgenomen.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['pl-pl'] = "Po włączeniu transkrypcja jest wysyłana do skonfigurowanego dostawcy AI z niestandardowym monitem przed dołączeniem do wiadomości e-mail poczty głosowej.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['pt-br'] = "Quando ativado, a transcrição é enviada ao provedor de IA configurado com um prompt personalizado antes de ser incluída no e-mail do correio de voz.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['pt-pt'] = "Quando ativado, a transcrição é enviada ao fornecedor de IA configurado com um prompt personalizado antes de ser incluída no e-mail da caixa de voz.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['ro-ro'] = "Când este activat, transcrierea este trimisă furnizorului de AI configurat cu un prompt personalizat înainte de a fi inclusă în e-mailul căsuței vocale.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['ru-ru'] = "При включении транскрипция отправляется настроенному AI-провайдеру с пользовательским запросом перед включением в электронное письмо голосовой почты.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['sv-se'] = "När aktiverat skickas transkriptionen till den konfigurerade AI-leverantören med en anpassad prompt innan den inkluderas i röstmeddelandets e-post.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['uk-ua'] = "При увімкненні транскрипцію надсилають до налаштованого AI-провайдера з користувацьким запитом перед включенням до електронного листа голосової пошти.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['tr-tr'] = "Etkinleştirildiğinde, transkript sesli posta e-postasına eklenmeden önce özel bir istemle yapılandırılmış AI sağlayıcısına gönderilir.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['zh-cn'] = "启用后,转录文本将连同自定义提示一起发送至已配置的AI提供商,然后再包含在语音邮件电子邮件中。";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['ja-jp'] = "有効にすると、文字起こしがボイスメールメールに含まれる前に、カスタムプロンプトと共に設定されたAIプロバイダーに送信されます。";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['ko-kr'] = "활성화하면 음성메일 이메일에 포함되기 전에 사용자 지정 프롬프트와 함께 구성된 AI 제공업체로 전사본이 전송됩니다.";
|
||||
|
||||
$text['label-voicemail_transcription_prompt']['en-us'] = "Transcription Prompt";
|
||||
$text['label-voicemail_transcription_prompt']['en-gb'] = "Transcription Prompt";
|
||||
$text['label-voicemail_transcription_prompt']['ar-eg'] = "موجه النسخ";
|
||||
$text['label-voicemail_transcription_prompt']['de-at'] = "Transkriptions-Eingabeaufforderung";
|
||||
$text['label-voicemail_transcription_prompt']['de-ch'] = "Transkriptions-Eingabeaufforderung";
|
||||
$text['label-voicemail_transcription_prompt']['de-de'] = "Transkriptions-Eingabeaufforderung";
|
||||
$text['label-voicemail_transcription_prompt']['el-gr'] = "Προτροπή Μεταγραφής";
|
||||
$text['label-voicemail_transcription_prompt']['es-cl'] = "Indicación de Transcripción";
|
||||
$text['label-voicemail_transcription_prompt']['es-mx'] = "Indicación de Transcripción";
|
||||
$text['label-voicemail_transcription_prompt']['fr-ca'] = "Invite de Transcription";
|
||||
$text['label-voicemail_transcription_prompt']['fr-fr'] = "Invite de Transcription";
|
||||
$text['label-voicemail_transcription_prompt']['he-il'] = "פקודת תמלול";
|
||||
$text['label-voicemail_transcription_prompt']['it-it'] = "Prompt di Trascrizione";
|
||||
$text['label-voicemail_transcription_prompt']['ka-ge'] = "ტრანსკრიფციის მოთხოვნა";
|
||||
$text['label-voicemail_transcription_prompt']['nl-nl'] = "Transcriptieprompt";
|
||||
$text['label-voicemail_transcription_prompt']['pl-pl'] = "Monit Transkrypcji";
|
||||
$text['label-voicemail_transcription_prompt']['pt-br'] = "Prompt de Transcrição";
|
||||
$text['label-voicemail_transcription_prompt']['pt-pt'] = "Prompt de Transcrição";
|
||||
$text['label-voicemail_transcription_prompt']['ro-ro'] = "Promptul de Transcriere";
|
||||
$text['label-voicemail_transcription_prompt']['ru-ru'] = "Запрос транскрипции";
|
||||
$text['label-voicemail_transcription_prompt']['sv-se'] = "Transkriptionsprompt";
|
||||
$text['label-voicemail_transcription_prompt']['uk-ua'] = "Запит транскрипції";
|
||||
$text['label-voicemail_transcription_prompt']['tr-tr'] = "Transkripsiyon İstemi";
|
||||
$text['label-voicemail_transcription_prompt']['zh-cn'] = "转录提示";
|
||||
$text['label-voicemail_transcription_prompt']['ja-jp'] = "文字起こしプロンプト";
|
||||
$text['label-voicemail_transcription_prompt']['ko-kr'] = "전사 프롬프트";
|
||||
|
||||
$text['description-voicemail_transcription_prompt']['en-us'] = "Enter the prompt template. Use \${transcription} as a placeholder for the raw transcription text. If omitted, the transcription is appended after the prompt.";
|
||||
$text['description-voicemail_transcription_prompt']['en-gb'] = "Enter the prompt template. Use \${transcription} as a placeholder for the raw transcription text. If omitted, the transcription is appended after the prompt.";
|
||||
$text['description-voicemail_transcription_prompt']['ar-eg'] = "أدخل قالب الموجه. استخدم \${transcription} كعنصر نائب لنص النسخ الخام. إذا تم حذفه، يُضاف النص بعد الموجه.";
|
||||
$text['description-voicemail_transcription_prompt']['de-at'] = "Geben Sie die Eingabeaufforderungsvorlage ein. Verwenden Sie \${transcription} als Platzhalter für den unbearbeiteten Transkriptionstext. Wenn weggelassen, wird die Transkription nach der Eingabeaufforderung angehängt.";
|
||||
$text['description-voicemail_transcription_prompt']['de-ch'] = "Geben Sie die Eingabeaufforderungsvorlage ein. Verwenden Sie \${transcription} als Platzhalter für den unbearbeiteten Transkriptionstext. Wenn weggelassen, wird die Transkription nach der Eingabeaufforderung angehängt.";
|
||||
$text['description-voicemail_transcription_prompt']['de-de'] = "Geben Sie die Eingabeaufforderungsvorlage ein. Verwenden Sie \${transcription} als Platzhalter für den unbearbeiteten Transkriptionstext. Wenn weggelassen, wird die Transkription nach der Eingabeaufforderung angehängt.";
|
||||
$text['description-voicemail_transcription_prompt']['el-gr'] = "Εισαγάγετε το πρότυπο προτροπής. Χρησιμοποιήστε το \${transcription} ως σύμβολο κράτησης θέσης για το ακατέργαστο κείμενο μεταγραφής. Αν παραλειφθεί, η μεταγραφή προστίθεται μετά την προτροπή.";
|
||||
$text['description-voicemail_transcription_prompt']['es-cl'] = "Ingrese la plantilla de indicación. Use \${transcription} como marcador de posición para el texto de transcripción sin procesar. Si se omite, la transcripción se agrega después de la indicación.";
|
||||
$text['description-voicemail_transcription_prompt']['es-mx'] = "Ingrese la plantilla de indicación. Use \${transcription} como marcador de posición para el texto de transcripción sin procesar. Si se omite, la transcripción se agrega después de la indicación.";
|
||||
$text['description-voicemail_transcription_prompt']['fr-ca'] = "Saisissez le modèle d'invite. Utilisez \${transcription} comme espace réservé pour le texte de transcription brut. S'il est omis, la transcription est ajoutée après l'invite.";
|
||||
$text['description-voicemail_transcription_prompt']['fr-fr'] = "Saisissez le modèle d'invite. Utilisez \${transcription} comme espace réservé pour le texte de transcription brut. S'il est omis, la transcription est ajoutée après l'invite.";
|
||||
$text['description-voicemail_transcription_prompt']['he-il'] = "הזן את תבנית הפקודה. השתמש ב-\${transcription} כמציין מיקום עבור טקסט התמלול הגולמי. אם הושמט, התמלול מצורף לאחר הפקודה.";
|
||||
$text['description-voicemail_transcription_prompt']['it-it'] = "Inserire il modello di prompt. Utilizzare \${transcription} come segnaposto per il testo di trascrizione grezzo. Se omesso, la trascrizione viene aggiunta dopo il prompt.";
|
||||
$text['description-voicemail_transcription_prompt']['ka-ge'] = "შეიყვანეთ მოთხოვნის შაბლონი. გამოიყენეთ \${transcription} როგორც ადგილმდებარეობის მარკერი ნედლი ტრანსკრიფციის ტექსტისთვის. გამოტოვების შემთხვევაში, ტრანსკრიფცია დაემატება მოთხოვნის შემდეგ.";
|
||||
$text['description-voicemail_transcription_prompt']['nl-nl'] = "Voer de promptsjabloon in. Gebruik \${transcription} als tijdelijke aanduiding voor de ruwe transcriptietekst. Indien weggelaten, wordt de transcriptie na de prompt toegevoegd.";
|
||||
$text['description-voicemail_transcription_prompt']['pl-pl'] = "Wprowadź szablon monitu. Użyj \${transcription} jako symbolu zastępczego dla surowego tekstu transkrypcji. Jeśli pominięto, transkrypcja jest dołączana po monicie.";
|
||||
$text['description-voicemail_transcription_prompt']['pt-br'] = "Insira o modelo de prompt. Use \${transcription} como marcador de posição para o texto de transcrição bruto. Se omitido, a transcrição é adicionada após o prompt.";
|
||||
$text['description-voicemail_transcription_prompt']['pt-pt'] = "Introduza o modelo de prompt. Use \${transcription} como marcador de posição para o texto de transcrição bruto. Se omitido, a transcrição é anexada após o prompt.";
|
||||
$text['description-voicemail_transcription_prompt']['ro-ro'] = "Introduceți șablonul de prompt. Utilizați \${transcription} ca marcator pentru textul brut de transcriere. Dacă este omis, transcrierea este adăugată după prompt.";
|
||||
$text['description-voicemail_transcription_prompt']['ru-ru'] = "Введите шаблон запроса. Используйте \${transcription} в качестве заполнителя для необработанного текста транскрипции. Если опущено, транскрипция добавляется после запроса.";
|
||||
$text['description-voicemail_transcription_prompt']['sv-se'] = "Ange promptmallen. Använd \${transcription} som platshållare för den råa transkriptionstexten. Om utelämnat läggs transkriptionen till efter prompten.";
|
||||
$text['description-voicemail_transcription_prompt']['uk-ua'] = "Введіть шаблон запиту. Використовуйте \${transcription} як заповнювач для необробленого тексту транскрипції. Якщо опущено, транскрипцію додають після запиту.";
|
||||
$text['description-voicemail_transcription_prompt']['tr-tr'] = "İstem şablonunu girin. Ham transkripsiyon metni için yer tutucu olarak \${transcription} kullanın. Atlanırsa, transkripsiyon istemden sonra eklenir.";
|
||||
$text['description-voicemail_transcription_prompt']['zh-cn'] = "输入提示模板。使用 \${transcription} 作为原始转录文本的占位符。如果省略,转录文本将附加在提示之后。";
|
||||
$text['description-voicemail_transcription_prompt']['ja-jp'] = "プロンプトテンプレートを入力してください。生の文字起こしテキストのプレースホルダーとして \${transcription} を使用してください。省略した場合、文字起こしはプロンプトの後に追加されます。";
|
||||
$text['description-voicemail_transcription_prompt']['ko-kr'] = "프롬프트 템플릿을 입력하세요. 원시 전사 텍스트의 자리 표시자로 \${transcription}을 사용하세요. 생략하면 전사본이 프롬프트 뒤에 추가됩니다.";
|
||||
|
||||
$text['description-voicemail_file']['en-us'] = "Select a listening option to include with the email notification.";
|
||||
$text['description-voicemail_file']['en-gb'] = "Select a listening option to include with the email notification.";
|
||||
$text['description-voicemail_file']['ar-eg'] = "اختاري خياراً للاستماع إلى الإخطار بالبريد الإلكتروني.";
|
||||
|
||||
@@ -187,6 +187,8 @@ if (!empty($_POST)) {
|
||||
$voicemail_enabled = $_POST["voicemail_enabled"];
|
||||
$voicemail_mail_to = $_POST["voicemail_mail_to"];
|
||||
$voicemail_transcription_enabled = $_POST["voicemail_transcription_enabled"];
|
||||
$voicemail_transcription_prompt_enabled = $_POST["voicemail_transcription_prompt_enabled"] ?? 'false';
|
||||
$voicemail_transcription_prompt = $_POST["voicemail_transcription_prompt"] ?? '';
|
||||
$voicemail_file = $_POST["voicemail_file"];
|
||||
$voicemail_local_after_email = $_POST["voicemail_local_after_email"];
|
||||
$user_context = $_POST["user_context"];
|
||||
@@ -814,6 +816,10 @@ if (!empty($_POST) && empty($_POST["persistformvar"])) {
|
||||
$array["voicemails"][$i]["voicemail_local_after_email"] = $voicemail_local_after_email;
|
||||
}
|
||||
$array["voicemails"][$i]["voicemail_transcription_enabled"] = $voicemail_transcription_enabled;
|
||||
if ($transcribe_enabled && permission_exists('voicemail_transcription_enabled')) {
|
||||
$array["voicemails"][$i]["voicemail_transcription_prompt_enabled"] = $voicemail_transcription_prompt_enabled;
|
||||
$array["voicemails"][$i]["voicemail_transcription_prompt"] = $voicemail_transcription_prompt;
|
||||
}
|
||||
$array["voicemails"][$i]["voicemail_tutorial"] = $voicemail_tutorial ?? null;
|
||||
$array["voicemails"][$i]["voicemail_enabled"] = $voicemail_enabled;
|
||||
$array["voicemails"][$i]["voicemail_description"] = $description;
|
||||
@@ -1000,6 +1006,8 @@ if (!empty($_GET) && (empty($_POST["persistformvar"]) || $_POST["persistformvar"
|
||||
$voicemail_password = str_replace("#", "", $row["voicemail_password"] ?? '');
|
||||
$voicemail_mail_to = str_replace(" ", "", $row["voicemail_mail_to"] ?? '');
|
||||
$voicemail_transcription_enabled = $row["voicemail_transcription_enabled"];
|
||||
$voicemail_transcription_prompt_enabled = $row["voicemail_transcription_prompt_enabled"] ?? false;
|
||||
$voicemail_transcription_prompt = $row["voicemail_transcription_prompt"] ?? '';
|
||||
$voicemail_tutorial = $row["voicemail_tutorial"];
|
||||
$voicemail_file = $row["voicemail_file"];
|
||||
$voicemail_local_after_email = $row["voicemail_local_after_email"];
|
||||
@@ -1172,6 +1180,12 @@ if (!isset($voicemail_enabled)) {
|
||||
if (!isset($voicemail_transcription_enabled)) {
|
||||
$voicemail_transcription_enabled = $settings->get('voicemail', 'transcription_enabled_default', false);
|
||||
}
|
||||
if (!isset($voicemail_transcription_prompt_enabled)) {
|
||||
$voicemail_transcription_prompt_enabled = false;
|
||||
}
|
||||
if (!isset($voicemail_transcription_prompt)) {
|
||||
$voicemail_transcription_prompt = '';
|
||||
}
|
||||
if (!isset($voicemail_tutorial)) {
|
||||
$voicemail_tutorial = false;
|
||||
}
|
||||
@@ -1900,6 +1914,32 @@ if (permission_exists('voicemail_edit') && is_dir(dirname(__DIR__, 2) . '/app/vo
|
||||
echo $text['description-voicemail_transcription_enabled'] . "\n";
|
||||
echo "</td>\n";
|
||||
echo "</tr>\n";
|
||||
|
||||
echo "<tr>\n";
|
||||
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
|
||||
echo " " . $text['label-voicemail_transcription_prompt_enabled'] . "\n";
|
||||
echo "</td>\n";
|
||||
echo "<td class='vtable' align='left'>\n";
|
||||
echo " <select class='formfld' name='voicemail_transcription_prompt_enabled' id='voicemail_transcription_prompt_enabled' onchange=\"document.getElementById('voicemail_transcription_prompt_row').style.display = (this.value === 'true') ? '' : 'none';\">\n";
|
||||
echo " <option value='false' " . (!in_array($voicemail_transcription_prompt_enabled, [true, 'true', 't'], true) ? "selected='selected'" : null) . ">" . $text['option-false'] . "</option>\n";
|
||||
echo " <option value='true' " . (in_array($voicemail_transcription_prompt_enabled, [true, 'true', 't'], true) ? "selected='selected'" : null) . ">" . $text['option-true'] . "</option>\n";
|
||||
echo " </select>\n";
|
||||
echo "<br />\n";
|
||||
echo $text['description-voicemail_transcription_prompt_enabled'] . "\n";
|
||||
echo "</td>\n";
|
||||
echo "</tr>\n";
|
||||
|
||||
$prompt_row_style = in_array($voicemail_transcription_prompt_enabled, [true, 'true', 't'], true) ? '' : 'display:none;';
|
||||
echo "<tr id='voicemail_transcription_prompt_row' style='" . $prompt_row_style . "'>\n";
|
||||
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
|
||||
echo " " . $text['label-voicemail_transcription_prompt'] . "\n";
|
||||
echo "</td>\n";
|
||||
echo "<td class='vtable' align='left'>\n";
|
||||
echo " <textarea class='formfld' name='voicemail_transcription_prompt' rows='4' style='width:100%;'>" . escape($voicemail_transcription_prompt) . "</textarea>\n";
|
||||
echo "<br />\n";
|
||||
echo $text['description-voicemail_transcription_prompt'] . "\n";
|
||||
echo "</td>\n";
|
||||
echo "</tr>\n";
|
||||
}
|
||||
|
||||
if (permission_exists('voicemail_file')) {
|
||||
@@ -1918,6 +1958,7 @@ if (permission_exists('voicemail_edit') && is_dir(dirname(__DIR__, 2) . '/app/vo
|
||||
echo "</td>\n";
|
||||
echo "</tr>\n";
|
||||
}
|
||||
}
|
||||
|
||||
if (permission_exists('voicemail_local_after_email')) {
|
||||
echo "<tr>\n";
|
||||
|
||||
@@ -474,6 +474,14 @@
|
||||
$apps[$x]['db'][$y]['fields'][$z]['type'] = "boolean";
|
||||
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "If voicemail transcription is enabled for this user";
|
||||
$z++;
|
||||
$apps[$x]['db'][$y]['fields'][$z]['name'] = "voicemail_transcription_prompt_enabled";
|
||||
$apps[$x]['db'][$y]['fields'][$z]['type'] = "boolean";
|
||||
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "If custom prompt post-processing of transcriptions is enabled";
|
||||
$z++;
|
||||
$apps[$x]['db'][$y]['fields'][$z]['name'] = "voicemail_transcription_prompt";
|
||||
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
|
||||
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Custom prompt template; use \${transcription} as placeholder for the raw STT text";
|
||||
$z++;
|
||||
$apps[$x]['db'][$y]['fields'][$z]['name'] = "voicemail_attach_file";
|
||||
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
|
||||
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Choose whether to attach the file to the email.";
|
||||
|
||||
@@ -1701,6 +1701,15 @@ $text['description-voicemail_transcription_enabled']['zh-cn'] = "选择是否为
|
||||
$text['description-voicemail_transcription_enabled']['ja-jp'] = "この内線番号に対してボイスメールの文字起こしを有効にするかどうかを選択します。";
|
||||
$text['description-voicemail_transcription_enabled']['ko-kr'] = "이 확장 프로그램에 음성 메일 전사가 활성화되어 있는지 선택하십시오.";
|
||||
|
||||
$text['label-voicemail_transcription_prompt_enabled']['en-us'] = "Custom Prompt Processing";
|
||||
$text['label-voicemail_transcription_prompt_enabled']['en-gb'] = "Custom Prompt Processing";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['en-us'] = "When enabled, the transcription is sent to the configured AI provider with a custom prompt before being included in the voicemail email.";
|
||||
$text['description-voicemail_transcription_prompt_enabled']['en-gb'] = "When enabled, the transcription is sent to the configured AI provider with a custom prompt before being included in the voicemail email.";
|
||||
$text['label-voicemail_transcription_prompt']['en-us'] = "Transcription Prompt";
|
||||
$text['label-voicemail_transcription_prompt']['en-gb'] = "Transcription Prompt";
|
||||
$text['description-voicemail_transcription_prompt']['en-us'] = "Enter the prompt template. Use \${transcription} as a placeholder for the raw transcription text. If omitted, the transcription is appended after the prompt.";
|
||||
$text['description-voicemail_transcription_prompt']['en-gb'] = "Enter the prompt template. Use \${transcription} as a placeholder for the raw transcription text. If omitted, the transcription is appended after the prompt.";
|
||||
|
||||
$text['description-voicemail_message']['en-us'] = "A list of recorded voice messages which shows when the message was created, caller ID information, length, file size and download or delete the message.";
|
||||
$text['description-voicemail_message']['en-gb'] = "A list of recorded voice messages which shows when the message was created, caller ID information, length, file size and download or delete the message.";
|
||||
$text['description-voicemail_message']['ar-eg'] = "قائمة بالرسائل الصوتية المسجلة التي تظهر وقت إنشاء الرسالة ومعلومات هوية المتصل وطولها وحجم الملف وتنزيل الرسالة أو حذفها.";
|
||||
|
||||
@@ -1183,6 +1183,23 @@ class voicemail {
|
||||
$transcribe->audio_filename = basename($voicemail_message_file);
|
||||
$message_transcription = $transcribe->transcribe('text');
|
||||
|
||||
if (!empty($message_transcription) && class_exists('transcribe_prompt')) {
|
||||
$sql = "select voicemail_transcription_prompt_enabled, voicemail_transcription_prompt "
|
||||
. "from v_voicemails where voicemail_uuid = :voicemail_uuid ";
|
||||
$parameters['voicemail_uuid'] = $this->voicemail_uuid;
|
||||
$vm_row = $this->database->select($sql, $parameters, 'row');
|
||||
unset($sql, $parameters);
|
||||
if (in_array($vm_row['voicemail_transcription_prompt_enabled'] ?? null, [true, 'true', 't'], true)
|
||||
&& !empty($vm_row['voicemail_transcription_prompt'])
|
||||
) {
|
||||
$prompt_processor = new transcribe_prompt($settings);
|
||||
$prompt_result = $prompt_processor->process($message_transcription, $vm_row['voicemail_transcription_prompt']);
|
||||
if (!empty($prompt_result)) {
|
||||
$message_transcription = $prompt_result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//build voicemail message data array
|
||||
if (!empty($message_transcription)) {
|
||||
$array['voicemail_messages'][0]['voicemail_message_uuid'] = $this->voicemail_message_uuid;
|
||||
|
||||
@@ -127,6 +127,8 @@
|
||||
$voicemail_mail_to = $_POST["voicemail_mail_to"];
|
||||
$voicemail_sms_to = $_POST["voicemail_sms_to"] ?? null;
|
||||
$voicemail_transcription_enabled = $_POST["voicemail_transcription_enabled"];
|
||||
$voicemail_transcription_prompt_enabled = $_POST["voicemail_transcription_prompt_enabled"] ?? 'false';
|
||||
$voicemail_transcription_prompt = $_POST["voicemail_transcription_prompt"] ?? '';
|
||||
$voicemail_file = $_POST["voicemail_file"];
|
||||
$voicemail_local_after_email = $_POST["voicemail_local_after_email"];
|
||||
$voicemail_destination = $_POST["voicemail_destination"];
|
||||
@@ -204,6 +206,10 @@
|
||||
$array['voicemails'][0]['voicemail_mail_to'] = $voicemail_mail_to;
|
||||
$array['voicemails'][0]['voicemail_sms_to'] = $voicemail_sms_to;
|
||||
$array['voicemails'][0]['voicemail_transcription_enabled'] = $voicemail_transcription_enabled;
|
||||
if ($transcribe_enabled && permission_exists('voicemail_transcription_enabled')) {
|
||||
$array['voicemails'][0]['voicemail_transcription_prompt_enabled'] = $voicemail_transcription_prompt_enabled;
|
||||
$array['voicemails'][0]['voicemail_transcription_prompt'] = $voicemail_transcription_prompt;
|
||||
}
|
||||
$array['voicemails'][0]['voicemail_tutorial'] = $voicemail_tutorial;
|
||||
if (permission_exists('voicemail_recording_instructions')) {
|
||||
$array['voicemails'][0]['voicemail_recording_instructions'] = $voicemail_recording_instructions;
|
||||
@@ -370,6 +376,10 @@
|
||||
$sql .= "voicemail_mail_to, ";
|
||||
$sql .= "voicemail_sms_to, ";
|
||||
$sql .= "voicemail_transcription_enabled, ";
|
||||
if ($transcribe_enabled && permission_exists('voicemail_transcription_enabled')) {
|
||||
$sql .= "voicemail_transcription_prompt_enabled, ";
|
||||
$sql .= "voicemail_transcription_prompt, ";
|
||||
}
|
||||
$sql .= "voicemail_tutorial, ";
|
||||
$sql .= "voicemail_recording_instructions, ";
|
||||
$sql .= "voicemail_recording_options, ";
|
||||
@@ -393,6 +403,8 @@
|
||||
$voicemail_mail_to = $row["voicemail_mail_to"];
|
||||
$voicemail_sms_to = $row["voicemail_sms_to"];
|
||||
$voicemail_transcription_enabled = $row["voicemail_transcription_enabled"];
|
||||
$voicemail_transcription_prompt_enabled = $row["voicemail_transcription_prompt_enabled"] ?? false;
|
||||
$voicemail_transcription_prompt = $row["voicemail_transcription_prompt"] ?? '';
|
||||
$voicemail_tutorial = $row["voicemail_tutorial"];
|
||||
$voicemail_recording_instructions = $row["voicemail_recording_instructions"];
|
||||
$voicemail_recording_options = $row["voicemail_recording_options"];
|
||||
@@ -419,6 +431,8 @@
|
||||
$voicemail_local_after_email = $voicemail_local_after_email ?? true;
|
||||
$voicemail_enabled = $voicemail_enabled ?? $settings->get('voicemail', 'enabled_default', true);
|
||||
$voicemail_transcription_enabled = $voicemail_transcription_enabled ?? $settings->get('voicemail', 'transcription_enabled_default', false);
|
||||
$voicemail_transcription_prompt_enabled = $voicemail_transcription_prompt_enabled ?? false;
|
||||
$voicemail_transcription_prompt = $voicemail_transcription_prompt ?? '';
|
||||
$voicemail_tutorial = $voicemail_tutorial ?? false;
|
||||
$voicemail_recording_instructions = $voicemail_recording_instructions ?? true;
|
||||
$voicemail_recording_options = $voicemail_recording_options ?? true;
|
||||
@@ -923,6 +937,32 @@
|
||||
echo $text['description-voicemail_transcription_enabled']."\n";
|
||||
echo "</td>\n";
|
||||
echo "</tr>\n";
|
||||
|
||||
echo "<tr>\n";
|
||||
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
|
||||
echo " ".$text['label-voicemail_transcription_prompt_enabled']."\n";
|
||||
echo "</td>\n";
|
||||
echo "<td class='vtable' align='left'>\n";
|
||||
echo " <select class='formfld' name='voicemail_transcription_prompt_enabled' id='voicemail_transcription_prompt_enabled' onchange=\"document.getElementById('voicemail_transcription_prompt_row').style.display = (this.value === 'true') ? '' : 'none';\">\n";
|
||||
echo " <option value='false' ".(!in_array($voicemail_transcription_prompt_enabled, [true, 'true', 't'], true) ? "selected='selected'" : null).">".$text['option-false']."</option>\n";
|
||||
echo " <option value='true' ".(in_array($voicemail_transcription_prompt_enabled, [true, 'true', 't'], true) ? "selected='selected'" : null).">".$text['option-true']."</option>\n";
|
||||
echo " </select>\n";
|
||||
echo "<br />\n";
|
||||
echo $text['description-voicemail_transcription_prompt_enabled']."\n";
|
||||
echo "</td>\n";
|
||||
echo "</tr>\n";
|
||||
|
||||
$prompt_row_style = in_array($voicemail_transcription_prompt_enabled, [true, 'true', 't'], true) ? '' : 'display:none;';
|
||||
echo "<tr id='voicemail_transcription_prompt_row' style='".$prompt_row_style."'>\n";
|
||||
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
|
||||
echo " ".$text['label-voicemail_transcription_prompt']."\n";
|
||||
echo "</td>\n";
|
||||
echo "<td class='vtable' align='left'>\n";
|
||||
echo " <textarea class='formfld' name='voicemail_transcription_prompt' rows='4' style='width:100%;'>".escape($voicemail_transcription_prompt)."</textarea>\n";
|
||||
echo "<br />\n";
|
||||
echo $text['description-voicemail_transcription_prompt']."\n";
|
||||
echo "</td>\n";
|
||||
echo "</tr>\n";
|
||||
}
|
||||
|
||||
if (permission_exists('voicemail_file')) {
|
||||
|
||||
Reference in New Issue
Block a user