Homemade applications
The following code enables controller.py to be used in a homemade application.
from controller import libjamiCtrl
class MyController(libjamiCtrl):
#
# Signal handling
#
def onIncomingCall_cb(self, callId):
app.onIncomingCall(callId)
def onCallHangup_cb(self, callId):
app.onCallHangup(callId)
def onCallConnecting_cb(self, callId):
app.onCallConnecting(callId)
def onCallRinging_cb(self, callId):
app.onCallRinging(callId)
def onCallHold_cb(self):
app.onCallHold()
def onCallInactive_cb(self):
app.onCallInactive()
def onCallCurrent_cb(self):
app.onCallCurrent()
def onCallBusy_cb(self):
app.onCallBusy()
def onCallFailure_cb(self):
app.onCallFailure()
def onCallOver_cb(self):
app.onCallOver()
class MainApp(App):
@mainthread
def onIncomingCall(self, callId):
self.feedback.text += "\nCall from %s" % str(ctrl.activeCalls[callId]['To'])
@mainthread
def onCallStateChanged(self, account, callId, state, code):
self.feedback.text += "\n(%s) %s…" % (callId, state)
@mainthread
def onCallHangup(self, callId):
self.feedback.text += "\nEnd call"
@mainthread
def onCallConnecting(self, callId):
self.feedback.text += "\nConnecting…"
@mainthread
def onCallRinging(self, callId):
self.feedback.text += "\nRinging %s…" % str(ctrl.activeCalls[callId]['To'])
@mainthread
def onCallHold(self):
self.feedback.text += "\nCall on hold…"
@mainthread
def onCallInactive(self):
self.feedback.text += "\nDring! Dring!"
@mainthread
def onCallCurrent(self):
self.feedback.text += "\nCurrent call…"
@mainthread
def onCallBusy(self):
self.feedback.text += "\nBusy"
@mainthread
def onCallFailure(self):
self.feedback.text += "\nCall failed"
@mainthread
def onCallOver(self):
self.feedback.text += "\nCall ended"
if __name__ == "__main__":
ctrl = MyController("demo", False)
app = MainApp()
ctrl.start()
app.run()