/* This will get bumped up before scheduling */
pj_timer_entry_init(&state->timer, 0, session, t38_automatic_reject_timer_cb);
- datastore->data = state;
-
return state;
}
struct t38_state *state;
struct ast_sip_session_media *session_media = NULL;
- if (status.code == 100) {
+ if (status.code / 100 <= 1) {
+ /* Ignore any non-final responses (1xx) */
return 0;
}
state = t38_state_get_or_alloc(session);
if (!session->channel || !state) {
- ast_log(LOG_WARNING, "Received response to T.38 re-invite on '%s' but state unavailable\n",
+ ast_log(LOG_WARNING, "Received %d response to T.38 re-invite on '%s' but state unavailable\n",
+ status.code,
session->channel ? ast_channel_name(session->channel) : "unknown channel");
return 0;
}
- if (status.code == 200) {
+ if (status.code / 100 == 2) {
+ /* Accept any 2xx response as successfully negotiated */
int index;
session_media = session->active_media_state->default_session[AST_MEDIA_TYPE_IMAGE];