Collecting debug information includes facilitating a communication session
for an endpoint operated by a user. One or more user-driven conditions
are monitored, where a user-driven condition results from an action by
the user. Data is gathered during the monitoring. Whether the
communication session is satisfactory or unsatisfactory is determined
from the one or more user-driven conditions. Monitoring is discontinued
if the communication session is satisfactory, and debug information is
generated from the gathered data if the communication session is
unsatisfactory.