from jaspion import Jaspion
from jaspion.utils import filtrate
# Freeswitch data to connection
freeswitch = {"host": "127.0.0.1", "password": "ClueCon", "port": 8021}
# Instance of Jaspion
app = Jaspion(**freeswitch)
# Handler to 'pre_register' event and filter to extension 1000.
@app.handle("sofia::pre_register")
@filtrate("from-user", "1000")
def pre_register(event):
domain = event["from-host"]
username = event["from-user"]
date = event["Event-Date-Local"]
print("[{}] {}@{} - Tried to register.".format(date, username, domain))
# Handler to 'register_attempt' event and filter to extension 1000.
@app.handle("sofia::register")
@filtrate("from-user", "1000")
def register(event):
domain = event["from-host"]
username = event["from-user"]
date = event["Event-Date-Local"]
print("[{}] {}@{} - Register.".format(date, username, domain))
# Handler to 'register_attempt' event and filter to extension 1000.
@app.handle("sofia::register_attempt")
@filtrate("from-user", "1000")
def register_attempt(event):
domain = event["from-host"]
username = event["from-user"]
date = event["Event-Date-Local"]
print("[{}] {}@{} - Operation terminated.".format(date, username, domain))
# Handler to 'register_failure' event and filter to extension 1000.
@app.handle("sofia::register_failure")
@filtrate("from-user", "1000")
def register_failure(event):
domain = event["from-host"]
username = event["from-user"]
date = event["Event-Date-Local"]
print("[{}] {}@{} - Failed to register.".format(date, username, domain))
# Handler to 'unregister' and 'expire' event and filter to extension 1000.
@app.handle("sofia::unregister")
@app.handle("sofia::expire")
@filtrate("from-user", "1000")
def unregister(event):
domain = event["from-host"]
username = event["from-user"]
date = event["Event-Date-Local"]
print("[{}] {}@{} - Unregistred.".format(date, username, domain))
if __name__ == "__main__":
# Start Jaspion
app.run()