Come risolvere l’errore SQLSTATE[22001] in FreePBX

Cerca

Durante l’installazione del sound language italiano in FreePBX 16 su Asterisk 19, mi sono imbattuto nel seguente errore:

SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column ‘filename’ at row 1
File:/var/www/html/admin/modules/soundlang/Soundlang.class.php:1124

Questo è un bug noto e qui censito: https://issues.freepbx.org/browse/FREEPBX-20981

Non essendo ancora stato risolto, si può applicare una patch seguendo i passaggi illustrati qui di seguito.

Come risolvere l'errore "Data too long for column 'filename' at row 1"

La risoluzione dell’errore si raggiunge incrementando la lunghezza massima consentita del campo filename della tabella soundlang_prompts appartenente al database asterisk.

Come prima cosa accediamo a mysql.

				
					sudo mysql
				
			

Lanciando una query per verificare il nome del database

				
					MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| asterisk           |
| asteriskcdrdb      |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
				
			

Selezioniamo il database <code>asterisk</code>

				
					MariaDB [(none)]> USE asterisk;
Database changed
				
			

Visualizziamo le tabelle contenute nel database

				
					MariaDB [asterisk]> SHOW TABLES;
+-----------------------------------------+
| Tables_in_asterisk                      |
+-----------------------------------------+
| admin                                   |
| ampusers                                |
| announcement                            |
| arimanager                              |
| callrecording                           |
| callrecording_module                    |
| certman_cas                             |
| certman_certs                           |
| certman_csrs                            |
| certman_mapping                         |
| cidlookup                               |
| cidlookup_incoming                      |
| contactmanager_entry_emails             |
| contactmanager_entry_images             |
| contactmanager_entry_numbers            |
| contactmanager_entry_speeddials         |
| contactmanager_entry_userman_images     |
| contactmanager_entry_websites           |
| contactmanager_entry_xmpps              |
| contactmanager_general_favorites        |
| contactmanager_group_entries            |
| contactmanager_groups                   |
| contactmanager_user_favorites           |
| cron_jobs                               |
| cronmanager                             |
| custom_extensions                       |
| dahdi                                   |
| dahdichandids                           |
| daynight                                |
| devices                                 |
| emergencydevices                        |
| featurecodes                            |
| findmefollow                            |
| freepbx_log                             |
| freepbx_settings                        |
| globals                                 |
| iax                                     |
| incoming                                |
| indications_zonelist                    |
| ivr_details                             |
| ivr_entries                             |
| kvblobstore                             |
| kvstore_Dashboard                       |
| kvstore_FreePBX                         |
| kvstore_FreePBX_Framework               |
| kvstore_FreePBX_Hooks                   |
| kvstore_FreePBX_Media                   |
| kvstore_FreePBX_modules_Backup          |
| kvstore_FreePBX_modules_Calendar        |
| kvstore_FreePBX_modules_Conferences     |
| kvstore_FreePBX_modules_Contactmanager  |
| kvstore_FreePBX_modules_Core            |
| kvstore_FreePBX_modules_Customappsreg   |
| kvstore_FreePBX_modules_Filestore       |
| kvstore_FreePBX_modules_Printextensions |
| kvstore_FreePBX_modules_Userman         |
| kvstore_FreePBX_modules_Voicemail       |
| kvstore_OOBE                            |
| kvstore_Sipsettings                     |
| logfile_logfiles                        |
| logfile_settings                        |
| manager                                 |
| meetme                                  |
| module_xml                              |
| modules                                 |
| music                                   |
| notifications                           |
| outbound_route_email                    |
| outbound_route_patterns                 |
| outbound_route_sequence                 |
| outbound_route_trunks                   |
| outbound_routes                         |
| parkplus                                |
| pjsip                                   |
| queues_config                           |
| queues_details                          |
| recordings                              |
| ringgroups                              |
| setcid                                  |
| sip                                     |
| sipsettings                             |
| soundlang_customlangs                   |
| soundlang_packages                      |
| soundlang_prompts                       |
| soundlang_settings                      |
| sysadmin_fail2ban                       |
| sysadmin_options                        |
| sysadmin_update_log                     |
| timeconditions                          |
| timegroups_details                      |
| timegroups_groups                       |
| trunk_dialpatterns                      |
| trunks                                  |
| ucp_sessions                            |
| userman_directories                     |
| userman_groups                          |
| userman_groups_settings                 |
| userman_template_settings               |
| userman_ucp_templates                   |
| userman_users                           |
| userman_users_settings                  |
| users                                   |
| voicemail_admin                         |
+-----------------------------------------+
				
			
Verifichiamo la struttura della tabella soundlang_prompts
				
					MariaDB [asterisk]> DESCRIBE soundlang_prompts;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| type     | varchar(20) | NO   |     | NULL    |       |
| module   | varchar(80) | NO   |     | NULL    |       |
| language | varchar(20) | NO   |     | NULL    |       |
| format   | varchar(20) | NO   |     | NULL    |       |
| filename | varchar(80) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
				
			
Modifichiamo la lunghezza massima del campo filename impostandolo a 255
				
					MariaDB [asterisk]> ALTER TABLE soundlang_prompts MODIFY filename VARCHAR(255);
Query OK, 0 rows affected (0.019 sec)
Records: 0  Duplicates: 0  Warnings: 0
				
			
Interroghiamo nuovamente la struttura della tabella soundlang_prompts verificando che il campo è ora un VARCHAR(255)
				
					MariaDB [asterisk]> DESCRIBE soundlang_prompts;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| type     | varchar(20)  | NO   |     | NULL    |       |
| module   | varchar(80)  | NO   |     | NULL    |       |
| language | varchar(20)  | NO   |     | NULL    |       |
| format   | varchar(20)  | NO   |     | NULL    |       |
| filename | varchar(255) | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
				
			

Ora lanciando di nuovo l’installazione della lingua italiana dal menu Admin -> Sound Languages il processo verrà eseguito completandosi con successo.

3 risposte

  1. Buongiorno, ho usato questo accorgimento qualche mese fa ma in occasione, mi pare, dell’ultimo aggiornamento del modulo soundlang (16.0.9), l’errore di mysql 1406 ritorna e blocca interamente freepbx. Avete suggerimenti?

  2. Credo di essere riuscito a sistemare la situazione modificando il file /var/www/html/admin/modules/soundlang/module.xml alla riga 68 che contiene lo statement “” sostituendo il valore “80” con “255”.

Rispondi a Carlo Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Most Recent

Come installare Composer su Ubuntu

Composer è il gestore delle dipendenze per PHP. Per installarlo su Ubuntu seguiamo questi semplici passi illustrati qui sotto. Installazione di Composer Per prima cosa

Come realizzare un client NTP in Python

In questo post vediamo come realizzare, utilizzando poche righe di codice, uno script Python che agisca da client NTP. Soluzione 1 In questa prima soluzione

Come avviare UEFI dopo reboot su Linux

L’accesso a UEFI al boot del computer richiede la pressione di un tasto che varia per ogni produttore di hardware. I tasti che più comunemente

Partners