diff --git a/CallsViewModel.cpp b/CallsViewModel.cpp index 41dd4af1ab3375ada25267de45f83c797e51fd21..af9f832f1bed13a64d19609f1f62e41d8f77cc86 100644 --- a/CallsViewModel.cpp +++ b/CallsViewModel.cpp @@ -45,6 +45,7 @@ CallsViewModel::CallsViewModel() delete call; call->stateChange("", code); callStatusUpdated(call); // used ? + RingD::instance->hangUpCall(call); return; } call->stateChange(state, code); diff --git a/RingD.cpp b/RingD.cpp index fdf734723aa53ca946bfdb39a97e584387bdca6d..d2a2929e1d528c00a445233544be82d13d399c69 100644 --- a/RingD.cpp +++ b/RingD.cpp @@ -160,6 +160,12 @@ RingClientUWP::RingD::cancelOutGoingCall(Call^ call) tasksList_.push(ref new RingD::Task(Request::CancelOutGoingCall, call)); } +void +RingClientUWP::RingD::hangUpCall(Call^ call) +{ + tasksList_.push(ref new RingD::Task(Request::HangUpCall, call)); +} + void RingClientUWP::RingD::startDaemon() { @@ -355,6 +361,7 @@ RingD::dequeueTasks() } break; case Request::CancelOutGoingCall: + case Request::HangUpCall: { auto callId = task->_call->callId; auto callId2 = Utils::toString(callId); diff --git a/RingD.h b/RingD.h index 6305151f3b31dc1a4607eec9268e4340b257ce6d..0bcfbdb8d5e0ade899e0b9f9d24b292c7c81e05d 100644 --- a/RingD.h +++ b/RingD.h @@ -63,6 +63,7 @@ internal: void acceptIncommingCall(Call^ call); void placeCall(Contact^ contact); void cancelOutGoingCall(Call^ call); + void hangUpCall(Call^ call); /* TODO : move members */ bool hasConfig; @@ -82,7 +83,8 @@ private: AddSIPAccount, RefuseIncommingCall, AcceptIncommingCall, - CancelOutGoingCall + CancelOutGoingCall, + HangUpCall }; ref class Task {