Fix call hangup

Call hangup is broken - as the end receiving the hang up doesn't get hung up.

This PR:
- Ensures we store the callid in the incoming call
- Adds the callid when sending a hangup as a result of the timeout
- Extends the functional tests to check for window closing in appropriate places