This SMS bugfix works out two issues:
* SMS permissions were not properly included. This causes SMS functionality to be inaccessible if the system implementor works out a Lua SMS implementation
* If voicemail transcription doesn't exist for the voicemail the send_sms.lua script crashes. Added a nil check to prevent this.
IBM Watson supports MP3 transcription and my testing shows it is very similar to WAV in terms of overall quality.
The benefit, of course is it greatly reduces the voicemail file size.
If MP3 is not set for the system then it will use WAV.
If other users prefer having the option of MP3 for the system but WAV for Watson transcription we could add a new variable for Watson transcription and add this new variable as a qualifier.
When we have MP3 enabled we want ALL voicemails to be MP3 EXCEPT the ones that need to be transcribed, which will be WAV.
When transcribe_enabled is set to true, ALL voicemails currently become WAV even when MP3 is set.
This change ensures that ALL voicemails remain MP3 except the extensions that have voicemail_transcription_enabled set to true.
Note: The reason this was not working is because setting transcribe_enabled to true also sets voicemail_transcription_enabled to false for ALL extensions BUT it is not written into the database. Therefore a SAVE is required for ALL voicemails to ensure this field is written to the database. Changing to ~=true gets around this problem.
The following PR is for voicemail transcription using IBM Watson.
https://cloud.ibm.com/catalog/services/speech-to-text
The following values need to be configured in Default Settings:
Category: Voicemail
Subcategory: watson_key
type: text
Value: [Your Watson api key ]
Category: Voicemail
Subcategory: json_enabled
type: boolean
Value: true
Category: Voicemail
Subcategory: transcibe_language
type: text
Value: en-US
Category: Voicemail
Subcategory: transcribe_provider
type: text
Value: watson
Category: Voicemail
Subcategory: watson_url
type: text
Value: https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?model=en-US_NarrowbandModel
Category: Voicemail
Subcategory: transcribe_enabled
type: boolean
Value: true
Reload Default Settings. I Flushed Cache and Reloaded XML just for good measure.
Also make sure transcription is set to TRUE in your voicemail box.
This patch adds BING (legacy) some extra fault tolerance support. For those who still use Bing, Bing sometimes fails
It adds another way, which I think it is easier and faster (Azure). Among the outstanding things it has; just configure the zone, and use Memcache to store the access token as per Azure documentation, it saves a query (faster). It also returns the most likely right transcription (digging in the JSON)
* Added a simple selfhosted voicemail transcription API client
* Minor logging cleanup
* Add some string escaping to handle transcription providers
* Add JSON handling (optional) to selfhosted API
If the message is too short then the result is nil.
Error occurs in this case: record_message.lua:97: attempt to index field 'results' (a nil value)
Added check if transcribe_json["results"] is nil.
* Fix MWI for Extensions that with 0
MWI was not turning off after messages were deleted for extensions that start with 0. This requires that real voicemail_id to be pulled from the database and not just taken from the destination number. To get around this we try to send mwi to the original vociemail_id (destination number) and voicemail_id_copy (from database). Index.lua is already doing something similar.
* Update listen_to_recording.lua
* Update menu_messages.lua
Search all profiles for the sofia_contact. For some reason on server it would automatically search all profiles, but on the other servers I had to add "*/".
* Update index.lua
Store password complexity settings as variables.
* Update macro.lua
Add macros for "password is below minimum length" and "password is not secure"
* Update change_password.lua
Adds the ability to check for password complexity and minimum length.
Also, fixes a bug where the password was changed if the caller hung up in the middle of changing their password.