diff --git a/roles/pbx/tasks/freepbx.yml b/roles/pbx/tasks/freepbx.yml index 330f60bba..d56b24407 100644 --- a/roles/pbx/tasks/freepbx.yml +++ b/roles/pbx/tasks/freepbx.yml @@ -37,6 +37,11 @@ src: "roles/pbx/templates/71-freepbx-framework.patch" dest: "{{ freepbx_src_dir }}/amp_conf/htdocs/admin/libraries/BMO/Framework.class.php" +- name: FreePBX - Patch FreePBX source - wants [] not {} + patch: + src: "roles/pbx/templates/pbx.patch" + dest: "{{ freepbx_src_dir }}/amp_conf/htdocs/admin/libraries/Composer/vendor/neitanod/forceutf8/src/ForceUTF8/Encoding.php" + - name: FreePBX - Disable & Stop asterisk service systemd: daemon_reload: yes diff --git a/roles/pbx/templates/pbx.patch b/roles/pbx/templates/pbx.patch new file mode 100644 index 000000000..9ab748378 --- /dev/null +++ b/roles/pbx/templates/pbx.patch @@ -0,0 +1,18 @@ +--- /opt/iiab/freepbx/amp_conf/htdocs/admin/libraries/Composer/vendor/neitanod/forceutf8/src/ForceUTF8/Encoding.php.orig 2020-08-24 08:52:41.291376894 +0000 ++++ /opt/iiab/freepbx/amp_conf/htdocs/admin/libraries/Composer/vendor/neitanod/forceutf8/src/ForceUTF8/Encoding.php 2020-08-24 08:55:36.429818838 +0000 +@@ -193,11 +193,11 @@ + + $buf = ""; + for($i = 0; $i < $max; $i++){ +- $c1 = $text{$i}; ++ $c1 = $text[$i]; + if($c1>="\xc0"){ //Should be converted to UTF8, if it's not UTF8 already +- $c2 = $i+1 >= $max? "\x00" : $text{$i+1}; +- $c3 = $i+2 >= $max? "\x00" : $text{$i+2}; +- $c4 = $i+3 >= $max? "\x00" : $text{$i+3}; ++ $c2 = $i+1 >= $max? "\x00" : $text[$i+1]; ++ $c3 = $i+2 >= $max? "\x00" : $text[$i+2]; ++ $c4 = $i+3 >= $max? "\x00" : $text[$i+3]; + if($c1 >= "\xc0" & $c1 <= "\xdf"){ //looks like 2 bytes UTF8 + if($c2 >= "\x80" && $c2 <= "\xbf"){ //yeah, almost sure it's UTF8 already + $buf .= $c1 . $c2;