Example #1
0
 def reader(self):
     print "listener starting"
     while not self.stop:
         try:
             data = self.asterisk.msconn.recv(1024)
         except socket.error, err:
             print "\nManager Receive Error %d: %s\nExiting." % (
                 err.args[0], err.args[1])
             if not data: break
         lines = data.split("\r\n")
         if self.debug:
             for line in lines:
                 if line:
                     Log.debug("ASTERISK: %s" % line)
         if lines[0].startswith('Event:'):
             self.asterisk.extradict = {}
             disc, astevent = lines[0].split(':')
             #print 'New event: ' + astevent
             for line in lines[1:len(lines)]:
                 if line == '':
                     break
                 elif line.rfind(':'):
                     akey = line[0:line.find(':')]
                     aval = line[line.find(':') + 2:]
                     # akey,aval = line.split(':')
                     akey.lstrip().rstrip()
                     aval.lstrip().rstrip()
                     self.asterisk.extradict[akey] = aval
                 else:
                     print "Error" + line
             aval = None  # @todo: f.ex. CallerIDNum for Newchannel etc..
             if self.asterisk.extradict.has_key('Uniqueid'):
                 aval = self.asterisk.extradict['Uniqueid']
             self.cleanextra(self.asterisk.extradict)
             self.service.onEvent(astevent, aval, self.asterisk.extradict)
Example #2
0
 def onCommand(self, command, args):
     if command == 'play':
         self.reader.xmms2base.play()
     elif command == 'stop':
         self.reader.xmms2base.stop()
     elif command == 'pause':
         self.reader.xmms2base.pause()
     elif command == 'clear':
         self.reader.xmms2base.clear()
     elif command == 'next':
         self.reader.xmms2base.next()
     elif command == 'prev':
         self.reader.xmms2base.prev()
     elif command == 'get_current_id':
         curid = self.reader.xmms2base.get_current_id()
         print curid
         self.onEvent('current_id', curid, [])
     elif command == 'play_next':
         if len(args) != 1:
             raise Exception("Need 1 args")
         self.reader.xmms2base.play_next(args[0])
     else:
         Log.info("No such command: %s" % command)
         return False
     # setCustomCharacter
     return True
Example #3
0
 def onCommand(self, command, args):
     if command == 'play':
         self.reader.xmms2base.play()
     elif command == 'stop':
         self.reader.xmms2base.stop()
     elif command == 'pause':
         self.reader.xmms2base.pause()
     elif command == 'clear':
         self.reader.xmms2base.clear()
     elif command == 'next':
         self.reader.xmms2base.next()
     elif command == 'prev':
         self.reader.xmms2base.prev()
     elif command == 'get_current_id':
         curid = self.reader.xmms2base.get_current_id()
         print curid
         self.onEvent('current_id',curid,[])
     elif command == 'play_next':
         if len(args) != 1:
             raise Exception("Need 1 args")
         self.reader.xmms2base.play_next(args[0])
     else:
         Log.info("No such command: %s" % command)
         return False
     # setCustomCharacter
     return True
Example #4
0
 def reader(self):
     print "listener starting"
     while not self.stop:
         try:
             data = self.asterisk.msconn.recv(1024)
         except socket.error, err:
             print "\nManager Receive Error %d: %s\nExiting." % (err.args[0], err.args[1])
             if not data:
                 break
         lines = data.split("\r\n")
         if self.debug:
             for line in lines:
                 if line:
                     Log.debug("ASTERISK: %s" % line)
         if lines[0].startswith("Event:"):
             self.asterisk.extradict = {}
             disc, astevent = lines[0].split(":")
             # print 'New event: ' + astevent
             for line in lines[1 : len(lines)]:
                 if line == "":
                     break
                 elif line.rfind(":"):
                     akey = line[0 : line.find(":")]
                     aval = line[line.find(":") + 2 :]
                     # akey,aval = line.split(':')
                     akey.lstrip().rstrip()
                     aval.lstrip().rstrip()
                     self.asterisk.extradict[akey] = aval
                 else:
                     print "Error" + line
             aval = None  # @todo: f.ex. CallerIDNum for Newchannel etc..
             if self.asterisk.extradict.has_key("Uniqueid"):
                 aval = self.asterisk.extradict["Uniqueid"]
             self.cleanextra(self.asterisk.extradict)
             self.service.onEvent(astevent, aval, self.asterisk.extradict)