static void s2_nua_callback(nua_event_t event, int status, char const *phrase, nua_t *nua, nua_magic_t *_t, nua_handle_t *nh, nua_hmagic_t *hmagic, sip_t const *sip, tagi_t tags[]) { struct event *e, **prev; if (event == nua_i_active || event == nua_i_terminated) return; e = calloc(1, sizeof *e); nua_save_event(nua, e->event); e->nh = nua_handle_ref(nh); e->data = nua_event_data(e->event); for (prev = &s2->events; *prev; prev = &(*prev)->next) ; *prev = e, e->prev = prev; }
nua_signal_data_t const *nua_signal_data(nua_saved_signal_t const saved[1]) { return nua_event_data(saved); }