ืื ืื ืฉืืคืชื ื-Voximplant ืืืืข ืืืืฉื "ืืืฉืืืื" ืืืืืจืื ืืื ืืื ืกืงืจืืคืืื ืืขื ื, ืืกืคืจื ืืืคืื, ืืฉืชืืฉืื, ืืืืื ืืชืืจื ืฉืืืืช. ืืืืืื ืคืฉืืืืช, ืืืฉืืืื ืื ืืื ืืืกืื ืฉื ืืคืืชืื ืืคืืืคืืจืื ืฉืื ื, ื ืงืืืช ืืื ืืกื ืืื ืคืชืจืื ืืืืกืก Voximplant, ืฉืื ืืื ืืชืืื ืืืฆืืจืช ืืคืืืงืฆืื.
ืืขืืจ, ืืืฉืืืื ืื "ืืืจื" ืื ืืช ืืคืขืืืืช ืฉืืืฆืขื ืกืงืจืืคืืื ืืื ืืช ืชืืฆืืืช ืืืืฉืืืื, ืื ืฉืืืคืชืืื ื ืืืฆื ืืืืกื ืขืจืืื ืืฉืืจืืชื ืฆื ืฉืืืฉื ืื ื-backend ืฉืืื. ืื ืื ืคืขื ืขืืืช ืขื ืืืกืื ืืงืืื ืืืคืืคื, ืืคืื ืงืฆืืื ืืืืช ืืืืฉื ืฉืื ื ืืืื ืืืื ืืื, ืื. ืืืคืฉืจ ืืืคืืืงืฆืืืช ืืืืืจ ืฆืืื ืืคืชื-ืขืจื ืืืืืืืืื ืืื ืืคืืืงืฆืื ืืืฉืืื ืฉืื. ืคืขืืืช ืืืืกืื ืืชืืคืฉืจื ืืืืืช ืืืืืื ืืืืฉ
ืชืฆืืจื
- ืืฉืืื ืืืงืกืืืคืื ื. ืื ืืื ืื ืืช ืื, ืื
ืืจืืฉืื ืื ืืื ; - ืืืืฉืื Voximplant, ืืื ืื ืกืงืจืืคื, ืืื ืืืฉืชืืฉ ืืืื. ืืช ืื ืื ื ืืฆืืจ ืืืืจืื ืื;
- ืืงืื ืืื ืืจื ื ืืืืฆืืข ืฉืืื - ืืฉืชืืฉ ืืืืคืื ืืืื ืืจื ื ืฉืื ื
phone.voximplant.com .
ืืืืจืืช Voximplant
ืื ืืกื ืจืืฉืื ื ืืืฉืืื ืฉืื:
require(Modules.ApplicationStorage);
VoxEngine.addEventListener(AppEvents.CallAlerting, async (e) => {
let r = {value: -1};
try {
r = await ApplicationStorage.get('totalCalls');
if (r === null) {
r = await ApplicationStorage.put('totalCalls', 0);
}
} catch(e) {
Logger.write('Failure while getting totalCalls value');
}
try {
await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
} catch(e) {
Logger.write('Failure while updating totalCalls value');
}
e.call.answer();
e.call.say(`ะัะธะฒะตัััะฒัั. ะะพะปะธัะตััะฒะพ ะฟัะพัะปัั
ะทะฒะพะฝะบะพะฒ: ${r.value}. `, Language.RU_RUSSIAN_MALE);
e.call.addEventListener(CallEvents.PlaybackFinished, VoxEngine.terminate);
});
ืืฉืืจื ืืจืืฉืื ื ืืืืจืช ืืช ืืืืื ApplicationStorage, ืฉืืจ ืืืืืืื ืืืืงื ืืืืคื ืืืืจืืข
ืจืืฉืืช, ืื ื ืืืจืืืื ืขื ืืฉืชื ื ืืื ืฉื ืืื ืืืฉืืืช ืืช ืืขืจื ืืืชืืืชื ืขื ืกืคืืจืช ืืฉืืืืช. ืืืืจ ืืื ืื ื ืื ืกืื ืืงืื ืืช ืืขืจื ืฉื ืืคืชื totalCalls ืืืื ืืช. ืื ืขืืืื ืืื ืืคืชื ืืื, ืื ื ืืืฆืจืื ืืืชื:
try {
r = await ApplicationStorage.get('totalCalls');
if (r === null) {
r = await ApplicationStorage.put('totalCalls', 0);
}
}
ืืืืจ ืืื, ืขืืื ืืืขืืืช ืืช ืขืจื ืืืคืชื ืืืืกืื:
try {
await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
}
ืืขืจื
ืขืืืจ ืื ืืืืื, ืขืืื ืืฆืืื ืืืคืืจืฉ failover, ืืคื ืฉืืืฆื ืืจืฉืืื ืืืขืื - ืืืจืช ืืกืงืจืืคื ืืืคืกืง ืืชืจืื ืฉืืืื ืืืืื ืื. ืคืจืืื
ืืื .
ืืืืจ ืืขืืืื ืขื ืืืืืจ, ืืกืงืจืืคื ืขืื ื ืืฉืืื ืื ืื ืกืช ืืืืฆืขืืช ืกืื ืชืื ืงืืืืช ืืืกืคืจ ืื ืืื ืคืขืืื ืืชืงืฉืจืช ืืขืืจ. ืืืืจ ืืืืขื ืื, ืืกืงืจืืคื ืืกืืื ืืช ืืืคืขืื.
ืืืืจ ืฉืฉืืจืช ืืช ืืกืงืจืืคื, ืขืืืจ ืืืฉืื ืืช ื ืืชืื ืฉื ืืืืฉืื ืฉืื ืืืืฅ ืขื ืืื ืืืฉ. ืชื ืืื ืฉื startCounting, ืฆืืื ืืช ืืกืงืจืืคื countingCalls ืืืฉืืืจ ืืช ืืกืืืช ืืจืืจืช ืืืืื (.*).
ืืืืจืื ืืื ืืืฆืืจ ืืฉืชืืฉ. ืืฉื ืื, ืขืืืจ ืื "ืืฉืชืืฉืื", ืืืฅ ืขื "ืฆืืจ ืืฉืชืืฉ", ืืื ืฉื (ืืืืืื, ืืฉืชืืฉ1) ืืกืืกืื ืืืืืจ ืืื ืืืฅ ืขื "ืฆืืจ". ื ืฆืืจื ืืช ืฆืื ืืื ืืกื-ืกืืกืืช ืืื ืืืืืืช ืืืืคืื ืืืื ืืจื ื.
ืืืืง
ืคืชื ืืช ืืืคืื ืืืื ืืจื ื ืืืงืืฉืืจ
ืื ื ืืืืืื ืืื ืืชืคืชืืืช ื ืืืจืช ืืืืงืกืืืคืื ื ืืืืฉืืจื ืืขืืืื ืื - ืืืื ืื ื ืขืื ืืจืื ๐
ืืงืืจ: www.habr.com