const char *to_user = switch_str_nil(switch_event_get_header(helper->event, "variable_sip_to_user"));
const char *from_user = switch_str_nil(switch_event_get_header(helper->event, "variable_sip_from_user"));
const char *disable_early = switch_str_nil(switch_event_get_header(helper->event, "variable_presence_disable_early"));
+ const char *answer_epoch = switch_str_nil(switch_event_get_header(helper->event, "variable_answer_epoch"));
+ int answered = 0;
char *clean_to_user = NULL;
char *clean_from_user = NULL;
int force_status = 0;
-
- char *call_info_state = switch_event_get_header(helper->event, "presence-call-info-state");
int term = 0;
+ if (answer_epoch) {
+ answered = atoi(answer_epoch);
+ }
+
+
if (user_agent && switch_stristr("snom", user_agent) && uuid) {
default_dialog = "full" ;
}
if ((sofia_test_pflag(profile, PFLAG_PRESENCE_DISABLE_EARLY) || switch_true(disable_early)) &&
- (!zstr(call_info_state) && (!strcasecmp(call_info_state, "alterting") || !strcasecmp(call_info_state, "progressing")))) {
+ ((!zstr(astate) && (!strcasecmp(astate, "early") || !strcasecmp(astate, "ringing") || (!strcasecmp(astate, "terminated") && !answered))))) {
+ switch_safe_free(stream.data);
goto end;
}