private void SetHangUpComplete(string CallSid, string call_uuid, string reason, Event ev, string hangup_url) { long answer_seconds_since_epoch = long.Parse(ev.GetHeader("Caller-Channel-Answered-Time")); long hangup_seconds_since_epoch = long.Parse(ev.GetHeader("Caller-Channel-Hangup-Time")); string called_num = ev.GetHeader("Caller-Destination-Number"); string caller_num = ev.GetHeader("Caller-Caller-ID-Number"); string direction = ev.GetHeader("variable_agbara_call_direction"); //get call details Call call = callSrvc.GetCallDetail(CallSid); call.Status = CallStatus.completed; call.CallerId = caller_num; call.CallTo = called_num; call.DateUpdated = DateTime.Now; call.StartTime = EpochTimeConverter.ConvertFromEpochTime(answer_seconds_since_epoch); call.EndTime = EpochTimeConverter.ConvertFromEpochTime(hangup_seconds_since_epoch); call.Duration = EpochTimeConverter.GetEpochTimeDifferent(hangup_seconds_since_epoch, answer_seconds_since_epoch); call.Direction = direction; try { CallRequest.Remove(CallSid); CallElapsedTime.Remove(CallSid); } catch (Exception ex) { } try { callSrvc.UpdateCallLog(call); } catch (Exception ex) { } }