Following Code for shutting down UA and Root is not working, because nua_r_shutdown event never comes through the event handler.
nua_shutdown(m_nua);
// <-- Here: endless waiting for nua_r_shutdown
su_root_break(getRoot());
nua_destroy(m_nua); // <-- This would fail, since shutdown was not completed
Cheers
Do you use the glib mainloop integration?
There is a problem in either nua_shutdown or nua_destroy where the event loop is iterated inside the function (which is a pretty daft idea), and glib event source processing does not allow this by default.