test case:
Create a new ring group with one extension.
Immediately dial the ring group number.
expected result:
Phone rings. No errors in log.
actual result:
Call terminates and log has "0" as ring_group_uuid and a sql error.
Note: editing and re-saving the ring group works around the problem
The Problem:
Line 162: non-existent variable...being checked is returned as false = 0
Line 278: Xml gets generated with bogus zero...
Line 298: Generate a new uuid...but too late. We already generated the xml dial plan which will be invalid until we edit and resave this ring group.
fix:
Generate uuid before generating xml
* fix orphan v_ring_group_users after deleting ring group
steps to test:
create a ring group with one extension and one user. This will add one user to v_ring_group_users. Delete the ring group.
expected result:
ring group and all it's components are deleted
actual result
v_ring_group_user entry for this ring group is not deleted.
This fix: deletes v_ring_group_user when ring group is deleted.
* Update ring_group_delete.php
* Update ring_group_delete.php
Remove the hidden spaces
created new class to look after generating the list of ringbacks
available
adjusted MOH class so legacy method is still possible (just not recommend) and utilizes optgroups as well
converted ring_groups and ivr_menus to use new method
added translations
implemented list_recordings in switch_recordings class
Cause all the .php files containing lines ending with \r\n to instead end with \n.
DYI with:
find fusionpbx -type f -name '*.php' -exec dos2unix '{}' \;
So, please find in this set numerous small changes which eliminate numerous php warning messages.
Also, a small bug fix in an sql statistics routine, naming a count(*) field as count, so displaying correct detail.
If any of the proposed changes are omitted, the relevant page will experience php warnings.
There are no doubt fusionpbx pages I've yet to visit that still generate warnings, this set is nearly certainly not comprehensive.
If a installation is missing the .project.ROOT previously it would just use the last search path as the project root (wrong) this will cause a Exception should it be unable to find it