Voicemail Transcription version 5.3 - Step by Step

bradgarrison

Member
Feb 20, 2023
57
15
8
49

How to Enable Voicemail Transcription in FusionPBX 5.3​

  1. Log in to FusionPBX
    • Access the FusionPBX administrative interface.
  2. Check for the "Transcribe" Option
    • Navigate to Advanced > Default Settings.
    • Use the drop-down filter to select "Transcribe".
    • If the "Transcribe" option exists, skip to step 5. Otherwise, continue to step 3.
  3. Install the Transcribe and Speech Apps
    • SSH into your server and run the following commands:
    • Bash:
      cd /var/www/fusionpbx/app
      git clone https://github.com/fusionpbx/fusionpbx-app-transcribe.git transcribe
      git clone https://github.com/fusionpbx/fusionpbx-app-speech.git speech
      chown -R www-data:www-data /var/www/fusionpbx
      php /var/www/fusionpbx/core/upgrade/upgrade.php
  4. Reload the FusionPBX Interface
    • Navigate back to Advanced > Default Settings.
    • The "Transcribe" section should now be available.
  5. Configure Transcription Settings
    • In the "Transcribe"category, find and enable the following settings:
      • api_key: Enter your API key for the transcription service.
      • enabled: Set to True.
      • engine: Type your transcription provider (e.g., openai, google, azure, etc.).
      • api_url: Leave this blank
    • Click Reload to apply the changes.
  6. Enable Transcription for one Extension
    • Navigate to Accounts > Extensions.
    • Select the desired extension.
    • Set Transcription Enabled to True.
  7. Enable Transcription by Default for Everyone.
    • Navigate to Advanced > Default Settings.
    • Use the drop-down filter to select "Voicemail".
    • Find and enable the setting transcription_enabled_default.
  8. Test the Service
    • Leave a voicemail for that extension to verify the transcription works correctly.
 
Last edited:
  • Like
Reactions: vuthy09 and wouam31

bradgarrison

Member
Feb 20, 2023
57
15
8
49
Yes, this worked well for me. You might want to spin up a new virtual server and try the steps above, then, once you get it going, compare the two systems.
 

whut

Active Member
Dec 23, 2022
280
31
28
I would simply configure on the existing server and skip temp server.
 

mak_make

Member
Aug 27, 2018
62
0
6
42
Hi,

sorry for the late reply. I am out for couple of days. I am getting Jason Invalid in the transcription filed and I don't find any errors in the log file.
 

mak_make

Member
Aug 27, 2018
62
0
6
42
Hi,

I have tried to bulid it from the beginning and getting the same error. When I use the transcibe option in defualt settings. I am getting Jason invalid in the voicemail transciption part. but I see the trancibe.php is trying to get the values from voicemail settings, when I input the values there I can't even see a transciption.

can you let me know which option you have enabled in default settings so I can that way.

which service you are using for transciption Azure or anyother service?
 

whut

Active Member
Dec 23, 2022
280
31
28
There is your problem. Close approximation to someone named Bill Gates.

Azure requires API URL variable. You must create the variable and set the variable to the region that you set in azure.

I Believe the transcription application should include this field and should have a description about when to use it and when not to use it. Most of the other transcription services have the URL hard-coded in the PHP.

When you have "invalid JSON" error messages It usually means you are missing a variable, The variable is not enabled, or the variable value is incorrect.
 

mak_make

Member
Aug 27, 2018
62
0
6
42
@whut I have added the variable for region but its not working. Under transcribe api_url i have placed the region in my case which is centralus. but it not working.

In transcibe.php, I see the key and region variables are being fecthed from voicemail setting but, even I enter the in the voicemail settings its not working. I get no error. I only get Invalid Jason when I enable all the fields in transcribe and provide details like api_key, api_url as centralus (as I see the transcribe.php the api_url is being fechted from settings that what i see.)

even I tried hardcode the URL in the trancribe.php file but same jason invalid error.
 

whut

Active Member
Dec 23, 2022
280
31
28
In transcribe_azure.php we see that we also need the language variable. Add it and set the value to en-US.

1000006006.jpg
 

whut

Active Member
Dec 23, 2022
280
31
28
Leave api_url as centralus as you have the region set in ms azure.

From transcribe_azure.php:

PHP:
//build the setting object and get the recording path
$this->api_key = $settings->get('transcribe', 'api_key');
$this->api_url = $settings->get('transcribe', 'api_url');
$this->language = $sett
ings->get('transcribe', 'language');

Unfortunately, the default settings not including the required variables does not allow you to be successful without dissecting the PHP. A coding oversight.

I would prefer the language in the PHP to be wrapped in an IF statement that would set it to en-US if it has not been set in transcribe section of default settings.
 
Last edited:

bradgarrison

Member
Feb 20, 2023
57
15
8
49
@whut I'm using OpenAi for my engine, and it works great with just the basic settings in the directions I put together. I'm in the US as well. Do you know why Azure would need the language set to en-US in order to work? Also, setting the URL to WestUS doesn't make any sense.
 
Last edited:

whut

Active Member
Dec 23, 2022
280
31
28
@bradgarrison, in my experience with azure stt url must be in this format:

"https://<api_url>.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=<language>&format=detailed"

where
<api_url> = "centralus" (in mak_make's case, "westus" in mine)
<language> = "en-US" (in mak_make's case and in mine)

These variables are required for azure stt to work. If they do not exist then you receive "invalid json" error message.

Where you are using openai's stt the url being used to process the stt does not use/consume the language variable so it will be ignored if you have included it in your transcribe default settings.

I had to review the php https://github.com/fusionpbx/fusion...b/main/resources/classes/transcribe_azure.php in order to get azure to work.
 

bradgarrison

Member
Feb 20, 2023
57
15
8
49
It's clear that many of the issues people are running into could be avoided with better coding practices, testing, and a more intuitive interface. The fact that essential settings are not documented—and that users have to dig through PHP just to get basic functionality working—is beyond frustrating. Setting up voicemail transcription should not be this difficult, and I say this from experience.

If a certain transcription provider requires additional variables, then those variables should be required. If they aren’t needed, they should be greyed out or hidden to avoid confusion. This is basic UI/UX design, and it’s frustrating that these considerations aren’t being made.

I've contributed documentation and tried to help others, but hearing that contributions to the actual codebase are being rejected gives me pause. Several skilled developers have already moved on to their own forks because of this, which speaks volumes about the larger issue with how the project is managed.

At the end of the day, what’s really needed here is open, honest discussion—without ego or posturing—about the needs of today, the needs of tomorrow, and how to get there. If the goal is to build something sustainable and user-friendly, then the focus should be on collaboration, not gatekeeping. There’s a lot of potential here, but it’s being held back by avoidable issues.
 
  • Like
Reactions: pbxgeek