summaryrefslogtreecommitdiffstats
path: root/clients
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2004-01-08 23:42:08 +0000
committerLennart Poettering <lennart@poettering.net>2004-01-08 23:42:08 +0000
commit7b3475368a1950d2adc638bdc4d0bbda4b3d1e18 (patch)
treed1fc1d203654943e09491f7f094bf78cf30801c8 /clients
parent5565b244c983bfbfd8b88077eda690fd630e3f1f (diff)
made ivamd a real daemon
git-svn-id: file:///home/lennart/svn/public/ivam2/trunk@20 dbf6933d-3bce-0310-9bcc-ed052ba35b35
Diffstat (limited to 'clients')
-rwxr-xr-xclients/ivam-autobox22
-rwxr-xr-xclients/ivam-voicebox11
-rw-r--r--clients/ivamApi.py2
-rw-r--r--clients/ivamPipeConnector.py4
-rw-r--r--clients/ivamVoiceBox.py5
5 files changed, 30 insertions, 14 deletions
diff --git a/clients/ivam-autobox b/clients/ivam-autobox
index bb7fcfc..8b11f8e 100755
--- a/clients/ivam-autobox
+++ b/clients/ivam-autobox
@@ -4,14 +4,15 @@ import sys, os, getopt
from ivamCore import log
import ivamCore, ivamVoiceBox
+from optparse import OptionParser
def usage():
- log("%s [--record-time=SECS] [--pin=PIN] [--pin-file=PINFILE] [--debug] [DIRECTORY]" % sys.argv[0])
+ log("%s [--record-time=SECS] [--pin=PIN] [--pin-file=PINFILE] [--default-record-time=SECS] [--default-pin=PIN] [--default-pin-file=PINFILE] [--debug] [DIRECTORY]" % sys.argv[0])
def parseArgs(vb, argv):
try:
- opts, args = getopt.getopt(argv[1:], "ht:p:P:de:", ["help", "record-time=", "pin=", "pin-file=", "debug", "message-program"])
+ opts, args = getopt.getopt(argv[1:], "dh", ["help", "record-time=", "pin=", "pin-file=", "default-record-time=", "default-pin=", "default-pin-file=", "debug"])
except getopt.GetoptError:
usage()
sys.exit(1)
@@ -27,13 +28,13 @@ def parseArgs(vb, argv):
usage()
sys.exit()
- elif o in ("-t", "--record-time"):
+ elif o in ("--default-record-time"):
recordTime = int(a)
- elif o in ("-p", "--pin"):
+ elif o in ("--default-pin"):
pin = a
- elif o in ("-P", "--pin-file"):
+ elif o in ("--default-pin-file"):
pin = getContents(a)
dname = "msn-" + os.getenv("RINGMSN")
@@ -48,6 +49,17 @@ def parseArgs(vb, argv):
vb.setDirectory(dname)
+ for o, a in opts:
+ if o in ("--record-time"):
+ vb.recordTime = int(a)
+
+ elif o in ("--pin"):
+ vb.setPin(a)
+
+ elif o in ("--pin-file"):
+ vb.setPin(getContents(a))
+
+
def main():
vb = ivamVoiceBox.VoiceBox()
parseArgs(vb, sys.argv)
diff --git a/clients/ivam-voicebox b/clients/ivam-voicebox
index fbf6afa..1ec19d5 100755
--- a/clients/ivam-voicebox
+++ b/clients/ivam-voicebox
@@ -11,7 +11,7 @@ def usage():
def parseArgs(vb, argv):
try:
- opts, args = getopt.getopt(argv[1:], "ht:p:P:de:", ["help", "record-time=", "pin=", "pin-file=", "debug", "message-program"])
+ opts, args = getopt.getopt(argv[1:], "hd", ["help", "record-time=", "pin=", "pin-file=", "debug", "message-program="])
except getopt.GetoptError:
usage()
sys.exit(1)
@@ -32,19 +32,18 @@ def parseArgs(vb, argv):
usage()
sys.exit()
- elif o in ("-t", "--record-time"):
+ elif o in ("--record-time"):
vb.recordTime = int(a)
- elif o in ("-p", "--pin"):
+ elif o in ("--pin"):
vb.setPin(a)
- elif o in ("-P", "--pin-file"):
+ elif o in ("--pin-file"):
vb.setPin(getContents(a))
- elif o in ("-e", "--message-program"):
+ elif o in ("--message-program"):
vb.messageProgram = a
-
def main():
vb = ivamVoiceBox.VoiceBox()
parseArgs(vb, sys.argv)
diff --git a/clients/ivamApi.py b/clients/ivamApi.py
index 8cab6f9..97534ff 100644
--- a/clients/ivamApi.py
+++ b/clients/ivamApi.py
@@ -10,7 +10,7 @@ class Processor:
def onDtmfEvent(self, c, event):
pass
- def onClipFinish(self, c, fname):
+ def onClipFinish(self, c, fname, length):
pass
def onTimeout(self, c):
diff --git a/clients/ivamPipeConnector.py b/clients/ivamPipeConnector.py
index af302b8..bbaf9ed 100644
--- a/clients/ivamPipeConnector.py
+++ b/clients/ivamPipeConnector.py
@@ -92,6 +92,7 @@ class PipeConnector(ivamApi.Connector):
self.recordName = fname
self.recording = True
+ self.recordLength = 0
def stopRecording(self):
@@ -102,7 +103,7 @@ class PipeConnector(ivamApi.Connector):
self.recordFile.close()
self.recording = False
- self.processor.onRecordFinish(self, self.recordName)
+ self.processor.onRecordFinish(self, self.recordName, self.recordLength)
def setTimeout(self, t):
@@ -198,6 +199,7 @@ class PipeConnector(ivamApi.Connector):
self.quit = 1
elif self.recording:
self.recordFile.write(buf)
+ self.recordLength += len(buf)
def writeStdout(self):
diff --git a/clients/ivamVoiceBox.py b/clients/ivamVoiceBox.py
index 252ce98..9dc84f9 100644
--- a/clients/ivamVoiceBox.py
+++ b/clients/ivamVoiceBox.py
@@ -216,7 +216,7 @@ class VoiceBox(ivamApi.Processor):
self.currentState = self.STATE_FINISH
c.hangup()
- def onRecordFinish(self, c, fname):
+ def onRecordFinish(self, c, fname, length):
if ivamCore.DEBUG:
ivamCore.log("onRecordFinish(%s)" % fname)
@@ -224,6 +224,9 @@ class VoiceBox(ivamApi.Processor):
ivamCore.log("Sucessfully recorded new message '%s' from %s for MSN %s." % (fname, self.callerNumber, self.ringNumber))
os.environ["SPOOLDIR"] = self.directory
+ os.environ["LENGTH"] = `c.recordLength`
+ os.environ["SEC_LENGTH"] = "%0.1f" % (c.recordLength/8000.0)
+
ivamCore.log("Starting new message notification program.")
r=os.spawnvp(os.P_WAIT, self.messageProgram, (self.messageProgram, fname))
ivamCore.log("Program finished (return value is %i)." % r)