starpy.utilapplication
index
/home/mcfletch/pylive/starpy/utilapplication.py

Class providing utility applications with common support code

 
Modules
       
basicproperty.basic
basicproperty.common
twisted.internet.defer
starpy.fastagi
logging
starpy.manager
os
basicproperty.propertied
basicproperty.weak

 
Classes
       
Propertied(object)
AGISpecifier
AMISpecifier
UtilApplication

 
class AGISpecifier(Propertied)
    Specifier of where we send the user to connect to our AGI
 
 
Method resolution order:
AGISpecifier
Propertied
object

Methods defined here:
run(self, mainFunction)
Start up the AGI server with the given mainFunction

Data and other attributes defined here:
context = <StringLocaleProperty 'context'>
Asterisk context to which to connect incoming calls
interface = <StringLocaleProperty 'interface'>
IP interface on which to listen (local only by default)
port = <IntegerProperty 'port'>
IP port on which to listen

Methods inherited from Propertied:
__init__(self, *arguments, **namedarguments)
Propertied object initialisation, allows passing in initial values for properties by name
__str__(self)
Get a friendly representation of the object
clone(self, **newValues)
Clone this object, with optional new property values
 
This method calls the __init__ method of your class with
the current property values of your class.  Providing newValues
(a dictionary) overrides property settings with new values.
getCloneProperties(self)
Get properties dictionary (key:value) for use in cloning of the instance
 
By default you get getProperties()' values, with an
attempt made to use the property's name, then the property's
direct "__get__" method.
toString(self, indentation='', alreadyDone=None, indentString=' ')
Get a nicely formatted representation of this object
 
This version assumes that getProperties returns
the list of properties which should be presented,
it recursively calls it's children with greater
indents to get their representations.
 
indentation -- current string indentation level
alreadyDone -- set of object ids which are already finished
 
XXX Needs a far better API, likely a stand-alone class
        without the automatic inheritance problems here :(

Class methods inherited from Propertied:
getProperties(cls) from type
Get the BasicProperty properties for a particular object's class

Data and other attributes inherited from Propertied:
__dict__ = <dictproxy object>
dictionary for instance variables (if defined)
__weakref__ = <attribute '__weakref__' of 'Propertied' objects>
list of weak references to the object (if defined)

 
class AMISpecifier(Propertied)
    Manager interface setup/specifier
 
 
Method resolution order:
AMISpecifier
Propertied
object

Methods defined here:
login(self)
Login to the specified manager via the AMI

Data and other attributes defined here:
password = <StringLocaleProperty 'secret'>
Login secret for the manager interface
port = <IntegerProperty 'port'>
Server IP port to which to connect
secret = <StringLocaleProperty 'secret'>
Login secret for the manager interface
server = <StringLocaleProperty 'server'>
Server IP address to which to connect
username = <StringLocaleProperty 'username'>
Login username for the manager interface

Methods inherited from Propertied:
__init__(self, *arguments, **namedarguments)
Propertied object initialisation, allows passing in initial values for properties by name
__str__(self)
Get a friendly representation of the object
clone(self, **newValues)
Clone this object, with optional new property values
 
This method calls the __init__ method of your class with
the current property values of your class.  Providing newValues
(a dictionary) overrides property settings with new values.
getCloneProperties(self)
Get properties dictionary (key:value) for use in cloning of the instance
 
By default you get getProperties()' values, with an
attempt made to use the property's name, then the property's
direct "__get__" method.
toString(self, indentation='', alreadyDone=None, indentString=' ')
Get a nicely formatted representation of this object
 
This version assumes that getProperties returns
the list of properties which should be presented,
it recursively calls it's children with greater
indents to get their representations.
 
indentation -- current string indentation level
alreadyDone -- set of object ids which are already finished
 
XXX Needs a far better API, likely a stand-alone class
        without the automatic inheritance problems here :(

Class methods inherited from Propertied:
getProperties(cls) from type
Get the BasicProperty properties for a particular object's class

Data and other attributes inherited from Propertied:
__dict__ = <dictproxy object>
dictionary for instance variables (if defined)
__weakref__ = <attribute '__weakref__' of 'Propertied' objects>
list of weak references to the object (if defined)

 
class UtilApplication(Propertied)
    Utility class providing simple application-level operations
 
FastAGI entry points are waitForCallOn and handleCallsFor, which allow
for one-shot and permanant handling of calls for an extension 
(respectively), and agiSpecifier, which is loaded from configuration file 
(as specified in self.configFiles).
 
 
Method resolution order:
UtilApplication
Propertied
object

Methods defined here:
__init__(self)
Initialise the application from options in configFile
dispatchIncomingCall(self, agi)
Handle an incoming call (dispatch to the appropriate registered handler)
handleCallsFor(self, extension, callback)
Register permanant handler for given extension
 
extension -- string extension for which to wait 
callback -- callback function to be called for each incoming channel
        to the given extension.
 
returns None
waitForCallOn(self, extension, timeout=15)
Wait for an AGI call on extension given
 
extension -- string extension for which to wait 
timeout -- duration in seconds to wait before defer.TimeoutError is 
        returned to the deferred.
 
returns deferred returning connected FastAGIProtocol or an error

Data and other attributes defined here:
agiSpecifier = <BasicProperty 'agiSpecifier'>
FastAGI server specifier for the application see AGISpecifier
amiSpecifier = <BasicProperty 'amiSpecifier'>
AMI connection specifier for the application see AMISpecifier
configFiles = ('starpy.conf', '~/.starpy.conf')
extensionHandlers = <DictionaryProperty 'extensionHandlers'>
Set of permanant callbacks waiting for incoming extensions
extensionWaiters = <DictionaryProperty 'extensionWaiters'>
Set of deferreds waiting for incoming extensions

Methods inherited from Propertied:
__str__(self)
Get a friendly representation of the object
clone(self, **newValues)
Clone this object, with optional new property values
 
This method calls the __init__ method of your class with
the current property values of your class.  Providing newValues
(a dictionary) overrides property settings with new values.
getCloneProperties(self)
Get properties dictionary (key:value) for use in cloning of the instance
 
By default you get getProperties()' values, with an
attempt made to use the property's name, then the property's
direct "__get__" method.
toString(self, indentation='', alreadyDone=None, indentString=' ')
Get a nicely formatted representation of this object
 
This version assumes that getProperties returns
the list of properties which should be presented,
it recursively calls it's children with greater
indents to get their representations.
 
indentation -- current string indentation level
alreadyDone -- set of object ids which are already finished
 
XXX Needs a far better API, likely a stand-alone class
        without the automatic inheritance problems here :(

Class methods inherited from Propertied:
getProperties(cls) from type
Get the BasicProperty properties for a particular object's class

Data and other attributes inherited from Propertied:
__dict__ = <dictproxy object>
dictionary for instance variables (if defined)
__weakref__ = <attribute '__weakref__' of 'Propertied' objects>
list of weak references to the object (if defined)

 
Data
        reactor = <twisted.internet.selectreactor.SelectReactor instance>