diff --git a/apps/examples/serviceline/ServiceLine.cpp b/apps/examples/serviceline/ServiceLine.cpp index efa2a449..a8c9b9e8 100644 --- a/apps/examples/serviceline/ServiceLine.cpp +++ b/apps/examples/serviceline/ServiceLine.cpp @@ -119,6 +119,7 @@ AmSession* ServiceLineFactory::onInvite(const AmSipRequest& req) ServiceLineCallerDialog::ServiceLineCallerDialog(const string& filename) : filename(filename), playlist(this), + started(false), AmB2ABCallerSession() { } @@ -126,7 +127,12 @@ ServiceLineCallerDialog::ServiceLineCallerDialog(const string& filename) void ServiceLineCallerDialog::onSessionStart(const AmSipRequest& req) { - AmB2ABCallerSession::onSessionStart(req); + if (started) { + // reinvite + AmB2ABCallerSession::onSessionStart(req); + return; + } + started = true; if(wav_file.open(filename,AmAudioFile::Read)) throw string("AnnouncementDialog::onSessionStart: Cannot open file\n"); diff --git a/apps/examples/serviceline/ServiceLine.h b/apps/examples/serviceline/ServiceLine.h index 39dad2aa..1b596804 100644 --- a/apps/examples/serviceline/ServiceLine.h +++ b/apps/examples/serviceline/ServiceLine.h @@ -69,6 +69,8 @@ class ServiceLineCallerDialog: public AmB2ABCallerSession string callee_addr; string callee_uri; + + bool started; public: ServiceLineCallerDialog(const string& filename);