summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
Diffstat (limited to 'client')
-rw-r--r--client/ivamApi.py3
-rw-r--r--client/ivamPipeConnector.py22
-rw-r--r--client/ivamVoiceBox.py1
3 files changed, 26 insertions, 0 deletions
diff --git a/client/ivamApi.py b/client/ivamApi.py
index 1413116..8cab6f9 100644
--- a/client/ivamApi.py
+++ b/client/ivamApi.py
@@ -44,3 +44,6 @@ class Connector:
def hangup(self, t):
pass
+
+ def flushOutput(self):
+ pass
diff --git a/client/ivamPipeConnector.py b/client/ivamPipeConnector.py
index 70fd93d..af302b8 100644
--- a/client/ivamPipeConnector.py
+++ b/client/ivamPipeConnector.py
@@ -34,6 +34,14 @@ class PipeConnector(ivamApi.Connector):
self.ringNumber = os.getenv("RINGMSN")
self.processor = processor
+ try:
+ s = os.fstat(128)
+ self.pipeHack = True
+ ivamCore.log("Found and enabled pipe hack.")
+ except OSError:
+ self.pipeHack = False
+ ivamCore.log("Pipe hack not detected.")
+
def openDtmf(self):
try:
@@ -223,3 +231,17 @@ class PipeConnector(ivamApi.Connector):
self.dtmfFifo = None
else:
self.processor.onDtmfEvent(self, d)
+
+ def flushOutput(self):
+
+ if not self.pipeHack:
+ return
+
+ try:
+ b = os.read(128, 4096)
+ if ivamCore.DEBUG:
+ ivamCore.log("Pipe hack succeeded")
+ except OSError:
+
+ if ivamCore.DEBUG:
+ ivamCore.log("Pipe hack failed")
diff --git a/client/ivamVoiceBox.py b/client/ivamVoiceBox.py
index 131e5c5..252ce98 100644
--- a/client/ivamVoiceBox.py
+++ b/client/ivamVoiceBox.py
@@ -199,6 +199,7 @@ class VoiceBox(ivamApi.Processor):
c.playClip(self.getClip("beep"))
else:
+ c.flushOutput()
c.stopPlayback2()
def onTimeout(self, c):