Ticket #2762: functions.inc.2.php

File functions.inc.2.php, 22.6 kB (added by Nick_Lewis, 8 months ago)
Line 
1 <?php
2
3 function callforward_get_config($engine) {
4         $modulename = 'callforward';
5
6         // This generates the dialplan
7         global $ext;
8         switch($engine) {
9                 case "asterisk":
10                         if (is_array($featurelist = featurecodes_getModuleFeatures($modulename))) {
11                                 foreach($featurelist as $item) {
12                                         $featurename = $item['featurename'];
13                                         $fname = $modulename.'_'.$featurename;
14                                         if (function_exists($fname)) {
15                                                 $fcc = new featurecode($modulename, $featurename);
16                                                 $fc = $fcc->getCodeActive();
17                                                 unset($fcc);
18
19                                                 if ($fc != '')
20                                                         $fname($fc);
21                                         } else {
22                                                 $ext->add('from-internal-additional', 'debug', '', new ext_noop($modulename.": No func $fname"));
23                                                 var_dump($item);
24                                         }
25                                 }
26                         }
27                 break;
28         }
29 }
30
31 // Unconditional Call Forwarding
32 function callforward_cfon_any($c) {
33         global $ext;
34
35         $id = "app-cf-on-any"; // The context to be included
36
37         $ext->addInclude('from-internal-additional', $id); // Add the include from from-internal
38
39 // Nick Lewis - moved from callforward_cfon
40         $ext->add($id, $c, '', new ext_answer('')); // $cmd,1,Answer
41         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
42         $ext->add($id, $c, '', new ext_playback('call-fwd-unconditional'));
43         $ext->add($id, $c, '', new ext_playback('please-enter-your&extension'));
44         $ext->add($id, $c, '', new ext_read('fromext', 'then-press-pound'));
45 //      $ext->add($id, $c, '', new ext_setvar('fromext', '${IF($["foo${fromext}"="foo"]?${CALLERID(number)}:${fromext})}'));
46         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
47         $ext->add($id, $c, 'startread', new ext_playback('ent-target-attendant'));
48         $ext->add($id, $c, '', new ext_read('toext', 'then-press-pound'));
49         $ext->add($id, $c, '', new ext_gotoif('$["foo${toext}"="foo"]', 'startread'));
50         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
51         $ext->add($id, $c, '', new ext_setvar('DB(CF/${fromext})', '${toext}'));
52         $ext->add($id, $c, '', new ext_playback('call-fwd-unconditional&for&extension'));
53         $ext->add($id, $c, '', new ext_saydigits('${fromext}'));
54         $ext->add($id, $c, '', new ext_playback('is-set-to'));
55         $ext->add($id, $c, '', new ext_saydigits('${toext}'));
56         $ext->add($id, $c, '', new ext_macro('hangupcall')); // $cmd,n,Macro(user-callerid)
57
58 // Nick Lewis - added *XX<exten> shortcut
59         $clen = strlen($c);
60         $c = "_$c.";
61         $ext->add($id, $c, '', new ext_answer('')); // $cmd,1,Answer
62         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
63 //      $ext->add($id, $c, '', new ext_macro('user-callerid')); // $cmd,n,Macro(user-callerid)
64         $ext->add($id, $c, '', new ext_playback('call-fwd-unconditional'));
65         $ext->add($id, $c, 'startread', new ext_playback('ent-target-attendant'));
66         $ext->add($id, $c, '', new ext_read('toext', 'then-press-pound'));
67         $ext->add($id, $c, '', new ext_gotoif('$["foo${toext}"="foo"]', 'startread'));
68         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
69 // oops - removed bogus caller id stuff
70         $ext->add($id, $c, '', new ext_setvar('DB(CF/${EXTEN:'.$clen.'})', '${toext}'));
71         $ext->add($id, $c, '', new ext_playback('call-fwd-unconditional&for&extension'));
72         $ext->add($id, $c, '', new ext_saydigits('${EXTEN:'.$clen.'}'));
73         $ext->add($id, $c, '', new ext_playback('is-set-to'));
74         $ext->add($id, $c, '', new ext_saydigits('${toext}'));
75         $ext->add($id, $c, '', new ext_macro('hangupcall')); // $cmd,n,Macro(user-callerid)
76 }
77
78 function callforward_cfon($c) {
79         global $ext;
80
81         $id = "app-cf-on"; // The context to be included
82
83         $ext->addInclude('from-internal-additional', $id); // Add the include from from-internal
84
85 // Nick Lewis - modified to assume this extension
86         $ext->add($id, $c, '', new ext_answer('')); // $cmd,1,Answer
87         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
88         $ext->add($id, $c, '', new ext_macro('user-callerid')); // $cmd,n,Macro(user-callerid)
89         $ext->add($id, $c, '', new ext_playback('call-fwd-unconditional'));
90         $ext->add($id, $c, 'startread', new ext_playback('ent-target-attendant'));
91         $ext->add($id, $c, '', new ext_read('toext', 'then-press-pound'));
92         $ext->add($id, $c, '', new ext_gotoif('$["foo${toext}"="foo"]', 'startread'));
93         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
94         $ext->add($id, $c, '', new ext_setvar('DB(CF/${CALLERID(number)})', '${toext}'));
95         $ext->add($id, $c, '', new ext_playback('call-fwd-unconditional&for&extension'));
96         $ext->add($id, $c, '', new ext_saydigits('${CALLERID(number)}'));
97         $ext->add($id, $c, '', new ext_playback('is-set-to'));
98         $ext->add($id, $c, '', new ext_saydigits('${toext}'));
99         $ext->add($id, $c, '', new ext_macro('hangupcall')); // $cmd,n,Macro(user-callerid)
100
101         $clen = strlen($c);
102         $c = "_$c.";
103         $ext->add($id, $c, '', new ext_answer('')); // $cmd,1,Answer
104         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
105         $ext->add($id, $c, '', new ext_macro('user-callerid')); // $cmd,n,Macro(user-callerid)
106         $ext->add($id, $c, '', new ext_setvar('DB(CF/${CALLERID(number)})', '${EXTEN:'.$clen.'}'));
107         $ext->add($id, $c, '', new ext_playback('call-fwd-unconditional&for&extension'));
108         $ext->add($id, $c, '', new ext_saydigits('${CALLERID(number)}'));
109         $ext->add($id, $c, '', new ext_playback('is-set-to'));
110         $ext->add($id, $c, '', new ext_saydigits('${EXTEN:'.$clen.'}'));
111         $ext->add($id, $c, '', new ext_macro('hangupcall')); // $cmd,n,Macro(user-callerid)
112 }
113
114 function callforward_cfoff_any($c) {
115         global $ext;
116
117         $id = "app-cf-off-any"; // The context to be included
118
119         $ext->addInclude('from-internal-additional', $id); // Add the include from from-internal
120
121         $ext->add($id, $c, '', new ext_answer('')); // $cmd,1,Answer
122         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
123         $ext->add($id, $c, '', new ext_playback('please-enter-your&extension'));
124         $ext->add($id, $c, '', new ext_read('fromext', 'then-press-pound'));
125         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
126         $ext->add($id, $c, '', new ext_dbdel('CF/${fromext}'));
127         $ext->add($id, $c, '', new ext_playback('call-fwd-unconditional&for&extension'));
128         $ext->add($id, $c, '', new ext_saydigits('${fromext}'));
129         $ext->add($id, $c, '', new ext_playback('cancelled'));
130         $ext->add($id, $c, '', new ext_macro('hangupcall')); // $cmd,n,Macro(user-callerid)
131
132 //Nick Lewis - moved from callforward_cfoff
133         // for any extension, dial *XX<exten>
134         $clen = strlen($c);
135         $c = "_$c.";
136         $ext->add($id, $c, '', new ext_answer('')); // $cmd,1,Answer
137         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
138         $ext->add($id, $c, '', new ext_setvar('fromext', '${EXTEN:'.$clen.'}'));
139         $ext->add($id, $c, '', new ext_dbdel('CF/${fromext}'));
140         $ext->add($id, $c, '', new ext_playback('call-fwd-unconditional&for&extension'));
141         $ext->add($id, $c, '', new ext_saydigits('${fromext}'));
142         $ext->add($id, $c, '', new ext_playback('cancelled'));
143         $ext->add($id, $c, '', new ext_macro('hangupcall')); // $cmd,n,Macro(user-callerid)
144
145 }
146
147 function callforward_cfoff($c) {
148         global $ext;
149
150         $id = "app-cf-off"; // The context to be included
151
152         $ext->addInclude('from-internal-additional', $id); // Add the include from from-internal
153
154         // for this extension
155         $ext->add($id, $c, '', new ext_answer('')); // $cmd,1,Answer
156         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
157         $ext->add($id, $c, '', new ext_macro('user-callerid')); // $cmd,n,Macro(user-callerid)
158         $ext->add($id, $c, '', new ext_dbdel('CF/${CALLERID(number)}'));
159         $ext->add($id, $c, '', new ext_playback('call-fwd-unconditional&de-activated')); // $cmd,n,Playback(...)
160         $ext->add($id, $c, '', new ext_macro('hangupcall')); // $cmd,n,Macro(user-callerid)
161
162 }
163
164 // Call Forward on Busy
165 function callforward_cfbon_any($c) {
166         global $ext;
167
168         $id = "app-cf-busy-on-any"; // The context to be included
169
170         $ext->addInclude('from-internal-additional', $id); // Add the include from from-internal
171
172 // Nick Lewis - moved from callforward_cfbon
173         $ext->add($id, $c, '', new ext_answer('')); // $cmd,1,Answer
174         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
175         $ext->add($id, $c, '', new ext_playback('call-fwd-on-busy'));
176         $ext->add($id, $c, '', new ext_playback('please-enter-your&extension'));
177         $ext->add($id, $c, '', new ext_read('fromext', 'then-press-pound'));
178 //      $ext->add($id, $c, '', new ext_setvar('fromext', '${IF($["foo${fromext}"="foo"]?${CALLERID(number)}:${fromext})}'));
179         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
180         $ext->add($id, $c, 'startread', new ext_playback('ent-target-attendant'));
181         $ext->add($id, $c, '', new ext_read('toext', 'then-press-pound'));
182         $ext->add($id, $c, '', new ext_gotoif('$["foo${toext}"="foo"]', 'startread'));
183         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
184         $ext->add($id, $c, '', new ext_setvar('DB(CFB/${fromext})', '${toext}'));
185         $ext->add($id, $c, '', new ext_playback('call-fwd-on-busy&for&extension'));
186         $ext->add($id, $c, '', new ext_saydigits('${fromext}'));
187         $ext->add($id, $c, '', new ext_playback('is-set-to'));
188         $ext->add($id, $c, '', new ext_saydigits('${toext}'));
189         $ext->add($id, $c, '', new ext_macro('hangupcall')); // $cmd,n,Macro(user-callerid)
190
191 // Nick Lewis - added *XX<exten> shortcut
192         $clen = strlen($c);
193         $c = "_$c.";
194         $ext->add($id, $c, '', new ext_answer('')); // $cmd,1,Answer
195         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
196 //      $ext->add($id, $c, '', new ext_macro('user-callerid')); // $cmd,n,Macro(user-callerid)
197         $ext->add($id, $c, '', new ext_playback('call-fwd-on-busy'));
198         $ext->add($id, $c, 'startread', new ext_playback('ent-target-attendant'));
199         $ext->add($id, $c, '', new ext_read('toext', 'then-press-pound'));
200         $ext->add($id, $c, '', new ext_gotoif('$["foo${toext}"="foo"]', 'startread'));
201         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
202 // oops - removed bogus caller id stuff
203         $ext->add($id, $c, '', new ext_setvar('DB(CFB/${EXTEN:'.$clen.'})', '${toext}'));
204         $ext->add($id, $c, '', new ext_playback('call-fwd-on-busy&for&extension'));
205         $ext->add($id, $c, '', new ext_saydigits('${EXTEN:'.$clen.'}'));
206         $ext->add($id, $c, '', new ext_playback('is-set-to'));
207         $ext->add($id, $c, '', new ext_saydigits('${toext}'));
208         $ext->add($id, $c, '', new ext_macro('hangupcall')); // $cmd,n,Macro(user-callerid)
209 }
210
211 function callforward_cfbon($c) {
212         global $ext;
213
214         $id = "app-cf-busy-on"; // The context to be included
215
216         $ext->addInclude('from-internal-additional', $id); // Add the include from from-internal
217
218 // Nick Lewis - modified to assume this extension
219         $ext->add($id, $c, '', new ext_answer('')); // $cmd,1,Answer
220         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
221         $ext->add($id, $c, '', new ext_macro('user-callerid')); // $cmd,n,Macro(user-callerid)
222         $ext->add($id, $c, '', new ext_playback('call-fwd-on-busy'));
223         $ext->add($id, $c, 'startread', new ext_playback('ent-target-attendant'));
224         $ext->add($id, $c, '', new ext_read('toext', 'then-press-pound'));
225         $ext->add($id, $c, '', new ext_gotoif('$["foo${toext}"="foo"]', 'startread'));
226         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
227 //oops - must be caller id not fromext
228         $ext->add($id, $c, '', new ext_setvar('DB(CFB/${CALLERID(number)})', '${toext}'));
229         $ext->add($id, $c, '', new ext_playback('call-fwd-on-busy&for&extension'));
230         $ext->add($id, $c, '', new ext_saydigits('${CALLERID(number)}'));
231         $ext->add($id, $c, '', new ext_playback('is-set-to'));
232         $ext->add($id, $c, '', new ext_saydigits('${toext}'));
233         $ext->add($id, $c, '', new ext_macro('hangupcall')); // $cmd,n,Macro(user-callerid)
234
235         $clen = strlen($c);
236         $c = "_$c.";
237         $ext->add($id, $c, '', new ext_answer('')); // $cmd,1,Answer
238         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
239         $ext->add($id, $c, '', new ext_macro('user-callerid')); // $cmd,n,Macro(user-callerid)
240         $ext->add($id, $c, '', new ext_setvar('DB(CFB/${CALLERID(number)})', '${EXTEN:'.$clen.'}'));
241         $ext->add($id, $c, '', new ext_playback('call-fwd-on-busy&for&extension'));
242         $ext->add($id, $c, '', new ext_saydigits('${CALLERID(number)}'));
243         $ext->add($id, $c, '', new ext_playback('is-set-to'));
244         $ext->add($id, $c, '', new ext_saydigits('${EXTEN:'.$clen.'}'));
245         $ext->add($id, $c, '', new ext_macro('hangupcall')); // $cmd,n,Macro(user-callerid)
246 }
247
248 function callforward_cfboff_any($c) {
249         global $ext;
250
251         $id = "app-cf-busy-off-any"; // The context to be included
252
253         $ext->addInclude('from-internal-additional', $id); // Add the include from from-internal
254
255         $ext->add($id, $c, '', new ext_answer('')); // $cmd,1,Answer
256         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
257         $ext->add($id, $c, '', new ext_playback('please-enter-your&extension'));
258         $ext->add($id, $c, '', new ext_read('fromext', 'then-press-pound'));
259         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
260         $ext->add($id, $c, '', new ext_dbdel('CFB/${fromext}'));
261         $ext->add($id, $c, '', new ext_playback('call-fwd-on-busy&for&extension'));
262         $ext->add($id, $c, '', new ext_saydigits('${fromext}'));
263         $ext->add($id, $c, '', new ext_playback('cancelled'));
264         $ext->add($id, $c, '', new ext_macro('hangupcall')); // $cmd,n,Macro(user-callerid)
265
266 //Nick Lewis - moved from callforward_cfboff
267         // for any extension, dial *XX<exten>
268         $clen = strlen($c);
269         $c = "_$c.";
270         $ext->add($id, $c, '', new ext_answer('')); // $cmd,1,Answer
271         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
272         $ext->add($id, $c, '', new ext_setvar('fromext', '${EXTEN:'.$clen.'}'));
273         $ext->add($id, $c, '', new ext_dbdel('CFB/${fromext}'));
274         $ext->add($id, $c, '', new ext_playback('call-fwd-on-busy&for&extension'));
275         $ext->add($id, $c, '', new ext_saydigits('${fromext}'));
276         $ext->add($id, $c, '', new ext_playback('cancelled'));
277         $ext->add($id, $c, '', new ext_macro('hangupcall')); // $cmd,n,Macro(user-callerid)
278
279 }
280
281 function callforward_cfboff($c) {
282         global $ext;
283
284         $id = "app-cf-busy-off"; // The context to be included
285
286         $ext->addInclude('from-internal-additional', $id); // Add the include from from-internal
287
288         // for this extension
289         $ext->add($id, $c, '', new ext_answer('')); // $cmd,1,Answer
290         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
291         $ext->add($id, $c, '', new ext_macro('user-callerid')); // $cmd,n,Macro(user-callerid)
292         $ext->add($id, $c, '', new ext_dbdel('CFB/${CALLERID(number)}'));
293         $ext->add($id, $c, '', new ext_playback('call-fwd-on-busy&de-activated')); // $cmd,n,Playback(...)
294         $ext->add($id, $c, '', new ext_macro('hangupcall')); // $cmd,n,Macro(user-callerid)
295
296 }
297
298 // Call Forward on No Answer/Unavailable (i.e. phone not registered)
299 function callforward_cfuon_any($c) {
300         global $ext;
301
302         $id = "app-cf-unavailable-on-any"; // The context to be included
303
304         $ext->addInclude('from-internal-additional', $id); // Add the include from from-internal
305
306 // Nick Lewis - moved from callforward_cfuon
307         // prompt for extension
308         $ext->add($id, $c, '', new ext_answer('')); // $cmd,1,Answer
309         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
310         $ext->add($id, $c, '', new ext_playback('call-fwd-no-ans'));
311         $ext->add($id, $c, '', new ext_playback('please-enter-your&extension'));
312         $ext->add($id, $c, '', new ext_read('fromext', 'then-press-pound'));
313 //      $ext->add($id, $c, '', new ext_setvar('fromext', '${IF($["foo${fromext}"="foo"]?${CALLERID(number)}:${fromext})}'));
314         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
315         $ext->add($id, $c, 'startread', new ext_playback('ent-target-attendant'));
316         $ext->add($id, $c, '', new ext_read('toext', 'then-press-pound'));
317         $ext->add($id, $c, '', new ext_gotoif('$["foo${toext}"="foo"]', 'startread'));
318         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
319         $ext->add($id, $c, '', new ext_setvar('DB(CFU/${fromext})', '${toext}'));
320         $ext->add($id, $c, '', new ext_playback('call-fwd-no-ans&for&extension'));
321         $ext->add($id, $c, '', new ext_saydigits('${fromext}'));
322         $ext->add($id, $c, '', new ext_playback('is-set-to'));
323         $ext->add($id, $c, '', new ext_saydigits('${toext}'));
324         $ext->add($id, $c, '', new ext_macro('hangupcall')); // $cmd,n,Macro(user-callerid)
325
326 // Nick Lewis - added *XX<exten> shortcut
327         $clen = strlen($c);
328         $c = "_$c.";
329         $ext->add($id, $c, '', new ext_answer('')); // $cmd,1,Answer
330         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
331 //      $ext->add($id, $c, '', new ext_macro('user-callerid')); // $cmd,n,Macro(user-callerid)
332         $ext->add($id, $c, '', new ext_playback('call-fwd-no-ans'));
333         $ext->add($id, $c, 'startread', new ext_playback('ent-target-attendant'));
334         $ext->add($id, $c, '', new ext_read('toext', 'then-press-pound'));
335         $ext->add($id, $c, '', new ext_gotoif('$["foo${toext}"="foo"]', 'startread'));
336         $ext->add($id, $c, '', new ext_wait('1')); // $cmd,n,Wait(1)
337 // oops - removed bogus caller id stuff
338         $ext->add($id, $c, '', new ext_setvar('DB(CFU/${EXTEN:'.$clen.'})', '${toext}'));
339         $ext->add($id,