Add smoother and more flexible hangup process