-Socket library to interface w/ freeswitch mod_event_socket from Twisted python applications.
+DESCRIPTION
+===========
+
+Socket library to interface w/ freeswitch mod_event_socket from Twisted python applications. Used by WikiPBX for all non-http communication w/ Freeswitch.
+
+Install
+=======
+
+See INSTALL
+
+Rebulding State Machines
+========================
+for each .sm file:
+
+java -jar /usr/src/smc/bin/Smc.jar -python -g THE.sm
+
+and loginrequest.sm -> loginrequest_sm.py with the state machine.
+
+TODO: create a Makefile to do this stuff
+TODO: use Miro Samek's HSM framework instead of SMC
+
+
nil
{
setRequestFinished();
- errbackDeferred("Protocol failure");
+ errbackDeferred("Protocol failure - was not expecting blank line");
}
ContentFinished
nil
{
setRequestFinished();
- errbackDeferred("Protocol failure");
+ errbackDeferred("Protocol failure - was not expecting content to be finished");
}
ContentLength
nil
{
setRequestFinished();
- errbackDeferred("Protocol failure");
+ errbackDeferred("Protocol failure - was not expecting content-length header");
}
ApiResponse
nil
{
setRequestFinished();
- errbackDeferred("Protocol failure");
+ errbackDeferred("Protocol failure - was not expecting api response");
}
ProcessLine(line)
nil
{
setRequestFinished();
- errbackDeferred("Protocol failure");
+ errbackDeferred("Protocol failure - was not expecting needing to process a line");
}
}
-
-# DO NOT MODIFY THIS CODE - AUTOMATICALLY GENERATED BY SMC
+# DO NOT EDIT.
+# generated by smc (http://smc.sourceforge.net/)
+# from file : apirequest.sm
import statemap
+
class ApiRequestState(statemap.State):
def Entry(self, fsm):
fsm.getDebugStream().write('TRANSITION : Default\n')
msg = "\n\tState: %s\n\tTransition: %s" % (
fsm.getState().getName(), fsm.getTransition())
- raise TransitionUndefinedException, msg
+ raise statemap.TransitionUndefinedException, msg
class MainMap_Default(ApiRequestState):
fsm.clearState()
try:
ctxt.setRequestFinished()
- ctxt.errbackDeferred("Protocol failure")
+ ctxt.errbackDeferred("Protocol failure - was not expecting blank line")
finally:
fsm.setState(endState)
fsm.clearState()
try:
ctxt.setRequestFinished()
- ctxt.errbackDeferred("Protocol failure")
+ ctxt.errbackDeferred("Protocol failure - was not expecting content to be finished")
finally:
fsm.setState(endState)
fsm.clearState()
try:
ctxt.setRequestFinished()
- ctxt.errbackDeferred("Protocol failure")
+ ctxt.errbackDeferred("Protocol failure - was not expecting content-length header")
finally:
fsm.setState(endState)
fsm.clearState()
try:
ctxt.setRequestFinished()
- ctxt.errbackDeferred("Protocol failure")
+ ctxt.errbackDeferred("Protocol failure - was not expecting api response")
finally:
fsm.setState(endState)
fsm.clearState()
try:
ctxt.setRequestFinished()
- ctxt.errbackDeferred("Protocol failure")
+ ctxt.errbackDeferred("Protocol failure - was not expecting needing to process a line")
finally:
fsm.setState(endState)
nil
{
setRequestFinished();
- errbackDeferred("Protocol failure");
+ errbackDeferred("Protocol failure - was not expecting blank line");
}
CommandReply
nil
{
setRequestFinished();
- errbackDeferred("Protocol failure");
+ errbackDeferred("Protocol failure - was not expecting command reply");
}
ReplyText
nil
{
setRequestFinished();
- errbackDeferred("Protocol failure");
+ errbackDeferred("Protocol failure - was not expecting reply text");
}
ProcessLine(line)
nil
{
setRequestFinished();
- errbackDeferred("Protocol failure");
+ errbackDeferred("Protocol failure - was not expecting line needing to be processed");
}
}
-
-# DO NOT MODIFY THIS CODE - AUTOMATICALLY GENERATED BY SMC
+# DO NOT EDIT.
+# generated by smc (http://smc.sourceforge.net/)
+# from file : bgapirequest.sm
import statemap
+
class BgApiRequestState(statemap.State):
def Entry(self, fsm):
fsm.getDebugStream().write('TRANSITION : Default\n')
msg = "\n\tState: %s\n\tTransition: %s" % (
fsm.getState().getName(), fsm.getTransition())
- raise TransitionUndefinedException, msg
+ raise statemap.TransitionUndefinedException, msg
class MainMap_Default(BgApiRequestState):
fsm.clearState()
try:
ctxt.setRequestFinished()
- ctxt.errbackDeferred("Protocol failure")
+ ctxt.errbackDeferred("Protocol failure - was not expecting blank line")
finally:
fsm.setState(endState)
fsm.clearState()
try:
ctxt.setRequestFinished()
- ctxt.errbackDeferred("Protocol failure")
+ ctxt.errbackDeferred("Protocol failure - was not expecting command reply")
finally:
fsm.setState(endState)
fsm.clearState()
try:
ctxt.setRequestFinished()
- ctxt.errbackDeferred("Protocol failure")
+ ctxt.errbackDeferred("Protocol failure - was not expecting reply text")
finally:
fsm.setState(endState)
fsm.clearState()
try:
ctxt.setRequestFinished()
- ctxt.errbackDeferred("Protocol failure")
+ ctxt.errbackDeferred("Protocol failure - was not expecting line needing to be processed")
finally:
fsm.setState(endState)
nil
{
setRequestFinished();
- errbackDeferred("Protocol failure");
+ errbackDeferred("Protocol failure - Was not expecting a blank line");
}
AuthRequest
nil
{
setRequestFinished();
- errbackDeferred("Protocol failure");
+ errbackDeferred("Protocol failure - Was not expecting auth request");
}
CommandReply
nil
{
setRequestFinished();
- errbackDeferred("Protocol failure");
+ errbackDeferred("Protocol failure - was not expecting a command reply");
}
ReplyText
nil
{
setRequestFinished();
- errbackDeferred("Protocol failure");
+ errbackDeferred("Protocol failure - was not expecting reply text");
}
ProcessLine(line)
nil
{
setRequestFinished();
- errbackDeferred("Protocol failure");
+ errbackDeferred("Protocol failure - was not expecting need to receive a line that needs to be processed");
}
}
-
-# DO NOT MODIFY THIS CODE - AUTOMATICALLY GENERATED BY SMC
+# DO NOT EDIT.
+# generated by smc (http://smc.sourceforge.net/)
+# from file : loginrequest.sm
import statemap
fsm.getDebugStream().write('TRANSITION : Default\n')
msg = "\n\tState: %s\n\tTransition: %s" % (
fsm.getState().getName(), fsm.getTransition())
- raise TransitionUndefinedException, msg
+ raise statemap.TransitionUndefinedException, msg
class MainMap_Default(LoginRequestState):
fsm.clearState()
try:
ctxt.setRequestFinished()
- ctxt.errbackDeferred("Protocol failure")
+ ctxt.errbackDeferred("Protocol failure - Was not expecting a blank line")
finally:
fsm.setState(endState)
fsm.clearState()
try:
ctxt.setRequestFinished()
- ctxt.errbackDeferred("Protocol failure")
+ ctxt.errbackDeferred("Protocol failure - Was not expecting auth request")
finally:
fsm.setState(endState)
fsm.clearState()
try:
ctxt.setRequestFinished()
- ctxt.errbackDeferred("Protocol failure")
+ ctxt.errbackDeferred("Protocol failure - was not expecting a command reply")
finally:
fsm.setState(endState)
fsm.clearState()
try:
ctxt.setRequestFinished()
- ctxt.errbackDeferred("Protocol failure")
+ ctxt.errbackDeferred("Protocol failure - was not expecting reply text")
finally:
fsm.setState(endState)
fsm.clearState()
try:
ctxt.setRequestFinished()
- ctxt.errbackDeferred("Protocol failure")
+ ctxt.errbackDeferred("Protocol failure - was not expecting need to receive a line that needs to be processed")
finally:
fsm.setState(endState)
self.deferred.callback(cbval)
def errbackDeferred(self, result):
- self.deferred.errback(result)
+ self.deferred.errback(Exception(str(result)))
def process(self, line):
"""