The issue with the Hang Up function turned out to be caused by how Asterisk tags locally originated channels. Where a SIP call might be tagged as "SIP/1701-098f7ae0", the channel tag for a local call will look something like "Local/191@default-de5a;1". Where I'd originally thought the issue was caused by the "@" sign in the channel name, it turns out that the issue stems from the last two characters (the ";1"). While my solution for this probably isn't the proper fix, it should work for now.
The Record function turned out to be a bit more difficult than I'd previously thought. For now, you can record by clicking on the Record button, but you'll need to have access to the system to retrieve the resulting file. I'll build this out in a future revision (or you can create your own).
If you have features you'd like to see in it, want to complain about bugs/bad logic, or just want an explanation, email me or post your input as a comment on the wiki page.