1
+ #! /bin/sh
2
+
3
+ export HOME=" /home/root"
4
+
5
+ mkdir -p /home/root > /dev/null 2>&1
6
+
7
+ DIR=$( dirname ${0} )
8
+
9
+ if [ -z " ${1} " ]; then
10
+ exit 0
11
+ fi
12
+
13
+ if [ -e /tmp/papctl-lock ]; then
14
+ exit 0
15
+ fi
16
+
17
+ case ${1} in
18
+ reset)
19
+ touch /tmp/papctl-lock
20
+
21
+ COUNT=" 0" ;
22
+
23
+ while [ ${COUNT} -lt 15 ]; do
24
+ ${DIR} /papctl " C ${COUNT} 0 0"
25
+
26
+ let COUNT=" ${COUNT} + 1"
27
+ done
28
+
29
+ if [ -e " /tmp/papctl-listen" ]; then
30
+ CUR_LISTEN=$( cat /tmp/papctl-listen)
31
+
32
+ /usr/bin/pactl unload-module ${CUR_LISTEN}
33
+ fi
34
+
35
+ if [ -e " /tmp/papctl-module" ]; then
36
+ CUR_MODULE=$( cat /tmp/papctl-module)
37
+
38
+ /usr/bin/pactl unload-module ${CUR_MODULE}
39
+ fi
40
+
41
+ sleep 2
42
+
43
+ rm -f /tmp/papctl-listen
44
+ rm -f /tmp/papctl-module
45
+ rm -f /tmp/papctl-server
46
+ rm -f /tmp/papctl-vsinks
47
+ ;;
48
+
49
+ connect)
50
+ if [ -z " ${2} " ]; then
51
+ exit 1
52
+ fi
53
+
54
+ touch /tmp/papctl-lock
55
+
56
+ SERVER=" ${2} " ; VSINKS=" ${3} "
57
+
58
+ CUR_SERVER=" " ; CUR_MODULE=" " ; CUR_VSINKS=" "
59
+
60
+ if [ -e " /tmp/papctl-server" ]; then
61
+ CUR_SERVER=$( cat /tmp/papctl-server)
62
+ fi
63
+
64
+ if [ -e " /tmp/papctl-module" ]; then
65
+ CUR_MODULE=$( cat /tmp/papctl-module)
66
+ fi
67
+
68
+ if [ -e " /tmp/papctl-vsinks" ]; then
69
+ CUR_VSINKS=$( cat /tmp/papctl-vsinks)
70
+ fi
71
+
72
+ if [ " ${SERVER} " != " ${CUR_SERVER} " ]; then
73
+ echo " ${SERVER} " > /tmp/papctl-server
74
+
75
+ if [ -e " /tmp/papctl-vsinks" ]; then
76
+ cat /tmp/papctl-vsinks | sed s/" ," /" \n" /g > /tmp/papctl-list
77
+
78
+ cat /tmp/papctl-list | while read SINK ; do
79
+ NO=" "
80
+
81
+ case ${SINK} in
82
+ palerts) NO=" 0" ;;
83
+ pnotifications) NO=" 1" ;;
84
+ pfeedback) NO=" 2" ;;
85
+ pringtones) NO=" 3" ;;
86
+ pmedia) NO=" 4" ;;
87
+ pflash) NO=" 5" ;;
88
+ pnavigation) NO=" 6" ;;
89
+ pvoicedial) NO=" 7" ;;
90
+ pvvm) NO=" 8" ;;
91
+ pvoip) NO=" 9" ;;
92
+ pdefaultapp) NO=" 10" ;;
93
+ peffects) NO=" 11" ;;
94
+ pDTMF) NO=" 12" ;;
95
+ pcalendar) NO=" 13" ;;
96
+ palarm) NO=" 14" ;;
97
+ esac
98
+
99
+ if [ ! -z " ${NO} " ]; then
100
+ ${DIR} /papctl " C ${NO} 0 0"
101
+ fi
102
+ done
103
+ fi
104
+
105
+ sleep 1
106
+
107
+ if [ -e " /tmp/papctl-module" ]; then
108
+ /usr/bin/pactl unload-module ${CUR_MODULE}
109
+
110
+ sleep 2
111
+ fi
112
+
113
+ /usr/bin/pactl load-module module-tunnel-sink server=${SERVER} sink_name=wifi > /tmp/papctl-module
114
+
115
+ if [ " ${?} " == " 0" ]; then
116
+ sleep 5
117
+
118
+ /usr/bin/pactl list | grep -q " wifi"
119
+
120
+ if [ " ${?} " == " 0" ]; then
121
+ echo ${VSINKS} > /tmp/papctl-vsinks
122
+
123
+ echo ${VSINKS} | sed s/" ," /" \n" /g > /tmp/papctl-list
124
+
125
+ cat /tmp/papctl-list | while read SINK ; do
126
+ NO=" "
127
+
128
+ case ${SINK} in
129
+ palerts) NO=" 0" ;;
130
+ pnotifications) NO=" 1" ;;
131
+ pfeedback) NO=" 2" ;;
132
+ pringtones) NO=" 3" ;;
133
+ pmedia) NO=" 4" ;;
134
+ pflash) NO=" 5" ;;
135
+ pnavigation) NO=" 6" ;;
136
+ pvoicedial) NO=" 7" ;;
137
+ pvvm) NO=" 8" ;;
138
+ pvoip) NO=" 9" ;;
139
+ pdefaultapp) NO=" 10" ;;
140
+ peffects) NO=" 11" ;;
141
+ pDTMF) NO=" 12" ;;
142
+ pcalendar) NO=" 13" ;;
143
+ palarm) NO=" 14" ;;
144
+ esac
145
+
146
+ if [ ! -z " ${NO} " ]; then
147
+ ${DIR} /papctl " O ${NO} 2 0"
148
+ fi
149
+ done
150
+ else
151
+ echo " Connection error"
152
+
153
+ CUR_MODULE=$( cat /tmp/papctl-module)
154
+
155
+ /usr/bin/pactl unload-module ${CUR_MODULE}
156
+
157
+ sleep 2
158
+
159
+ rm -f /tmp/papctl-module
160
+ rm -f /tmp/papctl-server
161
+ rm -f /tmp/papctl-vsinks
162
+ fi
163
+ else
164
+ echo " Module load error"
165
+
166
+ rm -f /tmp/papctl-module
167
+ rm -f /tmp/papctl-server
168
+ rm -f /tmp/papctl-vsinks
169
+ fi
170
+ elif [ " ${VSINKS} " != " ${CUR_VSINKS} " ]; then
171
+ if [ -e " /tmp/papctl-vsinks" ]; then
172
+ cat /tmp/papctl-vsinks | sed s/" ," /" \n" /g > /tmp/papctl-list
173
+
174
+ cat /tmp/papctl-list | while read SINK ; do
175
+ NO=" "
176
+
177
+ case ${SINK} in
178
+ palerts) NO=" 0" ;;
179
+ pnotifications) NO=" 1" ;;
180
+ pfeedback) NO=" 2" ;;
181
+ pringtones) NO=" 3" ;;
182
+ pmedia) NO=" 4" ;;
183
+ pflash) NO=" 5" ;;
184
+ pnavigation) NO=" 6" ;;
185
+ pvoicedial) NO=" 7" ;;
186
+ pvvm) NO=" 8" ;;
187
+ pvoip) NO=" 9" ;;
188
+ pdefaultapp) NO=" 10" ;;
189
+ peffects) NO=" 11" ;;
190
+ pDTMF) NO=" 12" ;;
191
+ pcalendar) NO=" 13" ;;
192
+ palarm) NO=" 14" ;;
193
+ esac
194
+
195
+ if [ ! -z " ${NO} " ]; then
196
+ ${DIR} /papctl " C ${NO} 0 0"
197
+ fi
198
+ done
199
+ fi
200
+
201
+ echo ${VSINKS} > /tmp/papctl-vsinks
202
+
203
+ echo ${VSINKS} | sed s/" ," /" \n" /g > /tmp/papctl-list
204
+
205
+ cat /tmp/papctl-list | while read SINK ; do
206
+ NO=" "
207
+
208
+ case ${SINK} in
209
+ palerts) NO=" 0" ;;
210
+ pnotifications) NO=" 1" ;;
211
+ pfeedback) NO=" 2" ;;
212
+ pringtones) NO=" 3" ;;
213
+ pmedia) NO=" 4" ;;
214
+ pflash) NO=" 5" ;;
215
+ pnavigation) NO=" 6" ;;
216
+ pvoicedial) NO=" 7" ;;
217
+ pvvm) NO=" 8" ;;
218
+ pvoip) NO=" 9" ;;
219
+ pdefaultapp) NO=" 10" ;;
220
+ peffects) NO=" 11" ;;
221
+ pDTMF) NO=" 12" ;;
222
+ pcalendar) NO=" 13" ;;
223
+ palarm) NO=" 14" ;;
224
+ esac
225
+
226
+ if [ ! -z " ${NO} " ]; then
227
+ ${DIR} /papctl " O ${NO} 2 0"
228
+ fi
229
+ done
230
+ fi
231
+ ;;
232
+
233
+ disconnect)
234
+ touch /tmp/papctl-lock
235
+
236
+ if [ -e " /tmp/papctl-vsinks" ]; then
237
+ cat /tmp/papctl-vsinks | sed s/" ," /" \n" /g > /tmp/papctl-list
238
+
239
+ cat /tmp/papctl-list | while read SINK ; do
240
+ NO=" "
241
+
242
+ case ${SINK} in
243
+ palerts) NO=" 0" ;;
244
+ pnotifications) NO=" 1" ;;
245
+ pfeedback) NO=" 2" ;;
246
+ pringtones) NO=" 3" ;;
247
+ pmedia) NO=" 4" ;;
248
+ pflash) NO=" 5" ;;
249
+ pnavigation) NO=" 6" ;;
250
+ pvoicedial) NO=" 7" ;;
251
+ pvvm) NO=" 8" ;;
252
+ pvoip) NO=" 9" ;;
253
+ pdefaultapp) NO=" 10" ;;
254
+ peffects) NO=" 11" ;;
255
+ pDTMF) NO=" 12" ;;
256
+ pcalendar) NO=" 13" ;;
257
+ palarm) NO=" 14" ;;
258
+ esac
259
+
260
+ if [ ! -z " ${NO} " ]; then
261
+ ${DIR} /papctl " C ${NO} 0 0"
262
+ fi
263
+ done
264
+ fi
265
+
266
+ if [ -e " /tmp/papctl-module" ]; then
267
+ CUR_MODULE=$( cat /tmp/papctl-module)
268
+
269
+ /usr/bin/pactl unload-module ${CUR_MODULE}
270
+
271
+ sleep 2
272
+
273
+ rm -f /tmp/papctl-module
274
+ rm -f /tmp/papctl-server
275
+ rm -f /tmp/papctl-vsinks
276
+ fi
277
+ ;;
278
+
279
+ enable)
280
+ touch /tmp/papctl-lock
281
+
282
+ if [ ! -e " /tmp/papctl-listen" ]; then
283
+ /usr/bin/pactl load-module module-native-protocol-tcp auth-anonymous=1 > /tmp/papctl-listen
284
+
285
+ sleep 2
286
+ fi
287
+ ;;
288
+
289
+ disable)
290
+ touch /tmp/papctl-lock
291
+
292
+ if [ -e " /tmp/papctl-listen" ]; then
293
+ CUR_LISTEN=$( cat /tmp/papctl-listen)
294
+
295
+ /usr/bin/pactl unload-module ${CUR_LISTEN}
296
+
297
+ rm -f /tmp/papctl-listen
298
+
299
+ sleep 2
300
+ fi
301
+ ;;
302
+ esac
303
+
304
+ rm -f /tmp/papctl-list > /dev/null 2>&1
305
+ rm -f /tmp/papctl-lock > /dev/null 2>&1
306
+
307
+ exit 0
0 commit comments