Monitoring an ExtensionΒΆ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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()