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”.

Lascia un commento

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 il Docker engine su Ubuntu

L’installazione di Docker può essere fatta sia tramite snap che tramite apt. Certamente l’installazione via snap è il metodo più rapido e permette con un

Partners