diff --git a/apps/conference/Conference.cpp b/apps/conference/Conference.cpp index d5ffc044..03f59bf1 100644 --- a/apps/conference/Conference.cpp +++ b/apps/conference/Conference.cpp @@ -296,6 +296,9 @@ ConferenceDialog::ConferenceDialog(const string& conf_id, ConferenceDialog::~ConferenceDialog() { DBG("ConferenceDialog::~ConferenceDialog()\n"); + + // clean playlist items + play_list.close(false); } void ConferenceDialog::onStart() diff --git a/apps/examples/pinauthconference/PinAuthConference.cpp b/apps/examples/pinauthconference/PinAuthConference.cpp index 8d60ae8b..a31ee9cb 100644 --- a/apps/examples/pinauthconference/PinAuthConference.cpp +++ b/apps/examples/pinauthconference/PinAuthConference.cpp @@ -106,6 +106,7 @@ PinAuthConferenceDialog::PinAuthConferenceDialog(AmPromptCollection& prompts) PinAuthConferenceDialog::~PinAuthConferenceDialog() { + play_list.close(false); prompts.cleanup((long)this); } @@ -125,7 +126,7 @@ void PinAuthConferenceDialog::connectConference(const string& room) { channel.reset(AmConferenceStatus::getChannel(conf_id,getLocalTag())); // clear the playlist - play_list.close(); + play_list.close(false); // add the channel to our playlist play_list.addToPlaylist(new AmPlaylistItem(channel.get(), diff --git a/apps/examples/simple_conference/SimpleConference.cpp b/apps/examples/simple_conference/SimpleConference.cpp index ee53fd1f..c58b8ff0 100644 --- a/apps/examples/simple_conference/SimpleConference.cpp +++ b/apps/examples/simple_conference/SimpleConference.cpp @@ -65,6 +65,8 @@ SimpleConferenceDialog::SimpleConferenceDialog() SimpleConferenceDialog::~SimpleConferenceDialog() { + // clean playlist items + play_list.close(false); } void SimpleConferenceDialog::onSessionStart(const AmSipRequest& req) diff --git a/apps/examples/tutorial/myjukebox/MyJukebox.cpp b/apps/examples/tutorial/myjukebox/MyJukebox.cpp index ebf6e0f9..f5de5953 100644 --- a/apps/examples/tutorial/myjukebox/MyJukebox.cpp +++ b/apps/examples/tutorial/myjukebox/MyJukebox.cpp @@ -43,6 +43,8 @@ MyJukeboxDialog::MyJukeboxDialog() MyJukeboxDialog::~MyJukeboxDialog() { + // clean playlist items + playlist.close(false); } void MyJukeboxDialog::onSessionStart(const AmSipRequest& req) diff --git a/apps/ivr/Ivr.cpp b/apps/ivr/Ivr.cpp index c32c2b02..5c6d6253 100644 --- a/apps/ivr/Ivr.cpp +++ b/apps/ivr/Ivr.cpp @@ -583,6 +583,8 @@ IvrDialog::~IvrDialog() { DBG("----------- IvrDialog::~IvrDialog() ------------- \n"); + playlist.close(false); + PYLOCK; Py_XDECREF(py_mod); Py_XDECREF(py_dlg); diff --git a/apps/py_sems/PySemsDialog.cpp b/apps/py_sems/PySemsDialog.cpp index f2d7e7bb..6b4db91d 100644 --- a/apps/py_sems/PySemsDialog.cpp +++ b/apps/py_sems/PySemsDialog.cpp @@ -38,6 +38,7 @@ PySemsDialog::PySemsDialog(AmDynInvoke* user_timer) PySemsDialog::~PySemsDialog() { + playlist.close(false); } diff --git a/apps/voicemail/AnswerMachine.cpp b/apps/voicemail/AnswerMachine.cpp index de4caa1d..f878b80d 100644 --- a/apps/voicemail/AnswerMachine.cpp +++ b/apps/voicemail/AnswerMachine.cpp @@ -520,6 +520,7 @@ AnswerMachineDialog::AnswerMachineDialog(const string& email, AnswerMachineDialog::~AnswerMachineDialog() { + playlist.close(false); } void AnswerMachineDialog::process(AmEvent* event) diff --git a/apps/webconference/WebConference.cpp b/apps/webconference/WebConference.cpp index 0b0745b7..c3f11222 100644 --- a/apps/webconference/WebConference.cpp +++ b/apps/webconference/WebConference.cpp @@ -414,6 +414,7 @@ WebConferenceDialog::WebConferenceDialog(AmPromptCollection& prompts, WebConferenceDialog::~WebConferenceDialog() { prompts.cleanup((long)this); + play_list.close(false); if (InConference == state) { factory->updateStatus(conf_id, getLocalTag(),