Come risolvere l’errore SQLSTATE[22001] in FreePBX

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.

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 aggiungere e rimuovere utenti su Debian

Debian, così come tutte le altre distribuzioni Linux, è un sistema operativo multiutente. Ogni utente può avere differenti livelli di permission e specifici settaggi per

Partners