Skip to content

Commit a78f161

Browse files
committed
Initial Skeleton, working state
1 parent 1409e4c commit a78f161

7 files changed

+564
-0
lines changed

inc_logger.js.txt

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// inc_logger.js
2+
// logging function function library
3+
4+
// usage fsLogger("","");
5+
6+
function fsLogger(descriptor, message) {
7+
console_log(" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> " + descriptor + " >>>>>>>>> " + message +"\n");
8+
}

inc_settings_test.js.txt

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
console_log(" >>>>>>>>>>>>>>>>>>> USING INC TEST SETTINGS <<<<<<<<<<<<<<<<<<<<<<<< \n");
2+
3+
// Freeswitch Style
4+
var vmMessageDir = "/var/spool/freeswitch";
5+
var vmAccount = session.caller_id_num;
6+
7+
fsLogger("session.caller_ani",session.caller_ani);
8+
fsLogger("session.caller_ani2",session.caller_ani2);
9+
fsLogger("session.caller_id_name",session.caller_id_name);
10+
fsLogger("session.caller_id_num",session.caller_id_num);
11+
fsLogger("session.destination",session.destination);
12+
fsLogger("session.name",session.name);
13+
fsLogger("session.state",session.state);

inc_vmAnswer.js.txt

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// * inc_vmAnswer.js
2+
function on_dtmf(type, digits, arg)
3+
{
4+
if (digits == "#") {
5+
return allDigits;
6+
}
7+
8+
if (digits == "*") {
9+
return "hangup";
10+
}
11+
12+
console_log("digit: " + digits + "\n");
13+
allDigits += digits;
14+
return(allDigits);
15+
}
16+
17+
function emailNotification() {
18+
if (eMailTo != "") {
19+
console_log(">>>>>>>>>>>>>>>>>>>>>>>>>>>> Sending Email\n");
20+
var tmp_eMailSubject = eMailSubject + sv_caller_id_name + " (" + sv_caller_id_num + ")";
21+
email(eMailFrom, eMailTo, "Subject: " + tmp_eMailSubject, eMailBody, tmp_Filename);
22+
23+
// construct the email notification to cell phone gateway - no file attached
24+
if (Pager_eMailTo != "") {
25+
email(eMailFrom, Pager_eMailTo, "Subject: " + tmp_eMailSubject, tmp_eMailSubject);
26+
}
27+
}
28+
}
29+
30+
function sendPageNotification() {
31+
if (Pager_eMailTo != "") {
32+
console_log(">>>>>>>>>>>>>>>>>>>>>>>>>>>> Sending Page\n");
33+
email(eMailFrom, Pager_eMailTo, "Subject: " + tmp_eMailSubject, tmp_eMailSubject);
34+
}
35+
}

inc_vmListen.js.txt

+185
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
1+
// * inc_vmListen.js
2+
function validateNull(thisString) {
3+
if ((thisString == null) || (thisString == "")) {
4+
return "No Data";
5+
}
6+
return thisString;
7+
}
8+
9+
function menu_dtmf(type, digits, arg) {
10+
if (type == "dtmf") {
11+
if (digits == "3") {
12+
return digits;
13+
}
14+
if (digits == "1") {
15+
return digits;
16+
}
17+
if (digits == "2") {
18+
return digits;
19+
}
20+
if (digits == "*") {
21+
return "hangup";
22+
}
23+
}
24+
return(true);
25+
}
26+
27+
function play_dtmf(type, digits, arg) {
28+
29+
if (type == "dtmf") {
30+
if (digits == "3") {
31+
return false;
32+
}
33+
if (digits == "1") {
34+
return "seek:-5000";
35+
}
36+
if (digits == "5") {
37+
return "pause";
38+
}
39+
if (digits == "*") {
40+
return "hangup";
41+
}
42+
}
43+
return(true); // return false to cause playback to stop
44+
}
45+
46+
function getNumNewMessages(dir) {
47+
if (dir.isDirectory) {
48+
var dirContent = dir.list();
49+
var numMessages = dirContent.length;
50+
51+
fsLogger("",dir.name + " is a directory");
52+
fsLogger("","number of " + numMessages);
53+
54+
for (i = 0; i < numMessages; i++) {
55+
56+
var contentFile = dirContent[i];
57+
var fsvFile = contentFile.name;
58+
var fileName = fsvFile.substring(fsvFile.lastIndexOf("/"));
59+
60+
fsLogger(i +" FSV File ", fsvFile);
61+
fsLogger(i +" FILE ", fileName);
62+
fsLogger(i +" DATE ", contentFile.creationTime);
63+
}
64+
return numMessages;
65+
} else {
66+
fsLogger("", dir.name + " is NOT a directory");
67+
return 0;
68+
}
69+
}
70+
71+
function messageDelete(vmAccount,fileName) {
72+
var delFile = File(vmMessageDir + "/" + vmAccount + "/" + fileName + ".fsv");
73+
delFile.remove();
74+
var delFile = File(vmMessageDir + "/" + vmAccount + "/" + fileName + ".meta");
75+
delFile.remove();
76+
session.execute("speak", "this message has been deleted");
77+
}
78+
79+
function messageHeard(metaObj) {
80+
var metaFile = new File(vmMessageDir + "/" + vmAccount +"/" + fileName + ".meta");
81+
if (metaFile.exists) {
82+
metaFile.remove();
83+
}
84+
metaFile.open("write,create");
85+
metaFile.writeln("callerID="+metaObj.callerID);
86+
metaFile.writeln("callerName="+metaObj.callerName);
87+
metaFile.writeln("createdDay="+metaObj.createdDay);
88+
metaFile.writeln("createdDate="+metaObj.createdDate);
89+
metaFile.writeln("createdTime="+metaObj.createdTime);
90+
metaFile.writeln("heard="+"true");
91+
metaFile.writeln("markForDeletion="+metaObj.markForDeletion);
92+
metaFile.close;
93+
}
94+
95+
function messagePlay(vmAccount,fileName) {
96+
var vmMessageFSV = fileName + ".fsv";
97+
session.execute("speak", "NowPlaying" + i+1);
98+
session.play_fsv(vmMessageDir + "/" + vmAccount + "/" + vmMessageFSV, play_dtmf, "", 0);
99+
fsLogger(i +" FILE ", fileName);
100+
}
101+
102+
function metaFileRead(vmAccount,fileName) {
103+
var metaFile = new File(vmMessageDir + "/" + vmAccount +"/" + fileName + ".meta");
104+
metaFile.open("read");
105+
var metaObj = new Object();
106+
var tmpString = metaFile.readln();
107+
metaObj.callerID = tmpString.substring(tmpString.lastIndexOf("=") +1);
108+
tmpString = metaFile.readln();
109+
metaObj.callerName = tmpString.substring(tmpString.lastIndexOf("=") +1);
110+
tmpString = metaFile.readln();
111+
metaObj.createdDay = tmpString.substring(tmpString.lastIndexOf("=") +1);
112+
tmpString = metaFile.readln();
113+
metaObj.createdDate = tmpString.substring(tmpString.lastIndexOf("=") +1);
114+
tmpString = metaFile.readln();
115+
metaObj.createdTime = tmpString.substring(tmpString.lastIndexOf("=") +1);
116+
tmpString = metaFile.readln();
117+
metaObj.heard = tmpString.substring(tmpString.lastIndexOf("=") +1);
118+
tmpString = metaFile.readln();
119+
metaObj.markForDeletion = tmpString.substring(tmpString.lastIndexOf("=") +1);
120+
metaFile.close();
121+
fsLogger("metaObj",metaObj);
122+
return metaObj;
123+
}
124+
125+
function metaFileWrite(vmAccount,fileName,metaObj) {
126+
var metaFile = new File(vmMessageDir + "/" + vmAccount +"/" + fileName + ".meta");
127+
if (metaFile.exists) {
128+
metaFile.remove();
129+
}
130+
metaFile.open("write,create");
131+
metaFile.writeln("callerID="+session.caller_id_num);
132+
metaFile.writeln("callerName="+session.caller_id_name);
133+
metaFile.writeln("createdDay="+toDate.getDay());
134+
metaFile.writeln("createdDate="+toDate.getMonth() + " " + toDate.getDate() + ", " + toDate.getFullYear());
135+
metaFile.writeln("createdTime="+toDate.getHours() + ":" + toDate.getMinutes() + ":" + toDate.getSeconds());
136+
metaFile.writeln("heard="+"false");
137+
metaFile.writeln("markForDeletion="+"false");
138+
metaFile.close;
139+
}
140+
141+
function messagePlay(vmAccount,fileName) {
142+
var vmMessageFSV = fileName + ".fsv";
143+
session.execute("speak", "NowPlaying" + i+1);
144+
session.play_fsv(vmMessageDir + "/" + vmAccount + "/" + vmMessageFSV, play_dtmf, "", 0);
145+
fsLogger(i +" FILE ", fileName);
146+
}
147+
148+
function metaFileRead(vmAccount,fileName) {
149+
var metaFile = new File(vmMessageDir + "/" + vmAccount +"/" + fileName + ".meta");
150+
metaFile.open("read");
151+
var metaObj = new Object();
152+
var tmpString = metaFile.readln();
153+
metaObj.callerID = tmpString.substring(tmpString.lastIndexOf("=") +1);
154+
tmpString = metaFile.readln();
155+
metaObj.callerName = tmpString.substring(tmpString.lastIndexOf("=") +1);
156+
tmpString = metaFile.readln();
157+
metaObj.createdDay = tmpString.substring(tmpString.lastIndexOf("=") +1);
158+
tmpString = metaFile.readln();
159+
metaObj.createdDate = tmpString.substring(tmpString.lastIndexOf("=") +1);
160+
tmpString = metaFile.readln();
161+
metaObj.createdTime = tmpString.substring(tmpString.lastIndexOf("=") +1);
162+
tmpString = metaFile.readln();
163+
metaObj.heard = tmpString.substring(tmpString.lastIndexOf("=") +1);
164+
tmpString = metaFile.readln();
165+
metaObj.markForDeletion = tmpString.substring(tmpString.lastIndexOf("=") +1);
166+
metaFile.close();
167+
fsLogger("metaObj",metaObj);
168+
return metaObj;
169+
}
170+
171+
function metaFileWrite(vmAccount,fileName,metaObj) {
172+
var metaFile = new File(vmMessageDir + "/" + vmAccount +"/" + fileName + ".meta");
173+
if (metaFile.exists) {
174+
metaFile.remove();
175+
}
176+
metaFile.open("write,create");
177+
metaFile.writeln("callerID="+session.caller_id_num);
178+
metaFile.writeln("callerName="+session.caller_id_name);
179+
metaFile.writeln("createdDay="+toDate.getDay());
180+
metaFile.writeln("createdDate="+toDate.getMonth() + " " + toDate.getDate() + ", " + toDate.getFullYear());
181+
metaFile.writeln("createdTime="+toDate.getHours() + ":" + toDate.getMinutes() + ":" + toDate.getSeconds());
182+
metaFile.writeln("heard="+"false");
183+
metaFile.writeln("markForDeletion="+"false");
184+
metaFile.close;
185+
}

videomail_dialplan_example.noload.txt

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<include>
2+
<extension name="Local_VideoMail_rec">
3+
<condition field="destination_number" expression="^(vmrec)$">
4+
<action application="set" data="dialed_extension=$1"/>
5+
<action application="export" data="dialed_extension=$1"/>
6+
<action application="set" data="absolute_codec_string=PCMA,PCMU,H263-1998"/>
7+
<action application="javascript" data="vmAnswer.js"/>
8+
</condition>
9+
</extension>
10+
<extension name="Local_VideoMail_play">
11+
<condition field="destination_number" expression="^(vmplay)$">
12+
<action application="set" data="dialed_extension=$1"/>
13+
<action application="export" data="dialed_extension=$1"/>
14+
<action application="set" data="absolute_codec_string=PCMA,PCMU,H263-1998"/>
15+
<action application="javascript" data="vmListen.js"/>
16+
</condition>
17+
</extension>
18+
</include>

0 commit comments

Comments
 (0)