-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathphonePatch.py
More file actions
100 lines (97 loc) · 2.57 KB
/
phonePatch.py
File metadata and controls
100 lines (97 loc) · 2.57 KB
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
"""
Caleb Begly
phonePatch
Created for CS370 Independent Project
"""
import subprocess
import time
def phoneListener(char):
print "Recieved Character: "+char
if(phoneListener.state == 0):
print "State 0"
if(char == "*"):
phoneListener.state = 1
elif(phoneListener.state == 1):
print "State 1"
if(char == "1"):
phoneListener.state = 2
else:
phoneListener.state = 0
elif(phoneListener.state == 2):
print "State 2"
if(char == "1"):
phoneListener.state = 3
else:
phoneListener.state = 0
elif(phoneListener.state == 3):
print "State 3"
if(char == "#"):
phoneListener.numberBuffer = "" #Reset the buffer
phoneListener.state = 4
else:
phoneListener.state = 0
elif(phoneListener.state == 4): # Read in the number and store it
print "State 4"
if(char == "#"): #Done entering
#Call Number
print "Calling "+phoneListener.numberBuffer
phoneListener.connection = subprocess.Popen(['/bin/bash', '-c', '/usr/bin/linphonec -c /home/pi/.linphonerc -s '+phoneListener.numberBuffer])
phoneListener.state = 5
else:
phoneListener.numberBuffer += char #add to buffer
elif(phoneListener.state == 5):
print "State 5"
if(char == "*"):
phoneListener.state = 6
elif(phoneListener.state == 6):
print "State 6"
if(char == "2"):
phoneListener.state = 7
else:
phoneListener.state = 5
elif(phoneListener.state == 7):
print "State 7"
if(char == "2"):
phoneListener.state = 8
else:
phoneListener.state = 5
elif(phoneListener.state == 8):
print "State 8"
if(char == "#"): #End the phone call
phoneListener.connection.terminate()
phoneListener.state = 0
else:
phoneListener.state = 5
#Init
phoneListener.state = 0
phoneListener.numberBuffer = ""
phoneListener.connection = None
"""
#Tests
phoneListener("*")
phoneListener("1")
phoneListener("1")
phoneListener("#")
phoneListener("1")
phoneListener("7")
phoneListener("2")
phoneListener("0")
phoneListener("3")
phoneListener("4")
phoneListener("0")
phoneListener("7")
phoneListener("7")
phoneListener("6")
phoneListener("5")
phoneListener("#")
phoneListener("#")
phoneListener("#")
time.sleep(5)
phoneListener("*")
phoneListener("2")
phoneListener("2")
phoneListener("#")
phoneListener("#")
phoneListener("#")
phoneListener("#")
"""