Your question is really, how to limit such things with FreePBX. While you are free to ask here, knowledge is limited and thus the FreePBX forum is probably a better place for such a question - https://community.freepbx.org/
I’m very sorry if I misunderstood your point, but to limit the duration of regular calls, I used the ‘L’ option in the Dial application, which is already supported. You can set the maximum allowed call duration.