diff --git a/asterisk/manager.py b/asterisk/manager.py index 00b5206..3231a3d 100644 --- a/asterisk/manager.py +++ b/asterisk/manager.py @@ -319,6 +319,7 @@ class Manager(object): status = True wait_for_marker = True lines.append(line) + # line not ending in \r\n or without ':' isn't a # valid header and starts multiline response if not line.endswith('\r\n') or ':' not in line: @@ -612,6 +613,7 @@ class Manager(object): def playdtmf(self, channel, digit): """Plays a dtmf digit on the specified channel""" + cdict = {'Action': 'PlayDTMF'} cdict['Channel'] = channel cdict['Digit'] = digit @@ -626,14 +628,12 @@ class Manager(object): cdict['Channel'] = channel cdict['Timeout'] = timeout response = self.send_action(cdict) - return response def mailbox_count(self, mailbox): cdict = {'Action': 'MailboxCount'} cdict['Mailbox'] = mailbox response = self.send_action(cdict) - return response def sippeers(self): diff --git a/examples/show_channels.py b/examples/show_channels.py new file mode 100644 index 0000000..c769d6d --- /dev/null +++ b/examples/show_channels.py @@ -0,0 +1,36 @@ +""" +Example to get list of active channels +""" +import asterisk.manager +import sys + +manager = asterisk.manager.Manager() + +try: + # connect to the manager + try: + manager.connect('localhost') + manager.login('user', 'secret') + + # get a status report + response = manager.status() + print response + + response = manager.command('core show channels concise') + print response.data + + manager.logoff() + except asterisk.manager.ManagerSocketException, (errno, reason): + print "Error connecting to the manager: %s" % reason + sys.exit(1) + except asterisk.manager.ManagerAuthException, reason: + print "Error logging in to the manager: %s" % reason + sys.exit(1) + except asterisk.manager.ManagerException, reason: + print "Error: %s" % reason + sys.exit(1) + +finally: + # remember to clean up + manager.close() +