use("TeleTone"); var tts = new TeleTone(session); var engine = "cepstral"; var voice = "david"; tts.addTone("d", 350.0, 440.0, 0.0); tts.addTone("r", 440.0, 480.0, 0.0); tts.addTone("z", 1400.0, 2060.0, 2450.0, 2600.0, 0.0); tts.addTone("u", 400.0, 450.0, 0.0); var RESET = "v=2000;>=0;+=0;"; var BONG = RESET + "v=4000;>=0;+=2;#(60,0);v=2000;d(940,0)"; var ATTN = RESET + "L=4;z(100,100)"; var SIT = RESET + "%(274,0,913.8);%(274,0,1370.6);%(380,0,1776.7)"; var UK_RING = RESET + "L=2;u(400,200);u(400,2200)"; var US_RING = RESET + "r(2000,4000)"; var US_DIAL = RESET + "d(4000,0)"; function mycb (type, data, arg) { if (type == "dtmf") { arg.digits += data; if (arg.digits.length >= 3) { return false; } } } var dtmf = new Object(); while(session.ready()) { dtmf.digits = ""; session.speak(engine, voice, "enter 3 digit code" , mycb, dtmf); if (dtmf.digits.length < 3) { session.collectInput(mycb, dtmf, 5000); } if (dtmf.digits == "100") { session.speak(engine, voice, dtmf.digits + "means ringing sound"); for (x = 0 ; x < 2 ; x++) { tts.generate(US_RING); } } else if (dtmf.digits == "101") { session.speak(engine, voice, dtmf.digits + "means dialtone"); tts.generate(US_DIAL); } else if (dtmf.digits == "102") { session.speak(engine, voice, dtmf.digits + "means bong"); tts.generate(BONG); } else if (dtmf.digits == "103") { session.speak(engine, voice, dtmf.digits + "means attention"); for (x = 0 ; x < 4 ; x++) { tts.generate(ATTN); } } else if (dtmf.digits == "104") { session.speak(engine, voice, dtmf.digits + "means SIT"); tts.generate(SIT); } else if (dtmf.digits == "105") { session.speak(engine, voice, dtmf.digits + "means UK Ring"); for (x = 0 ; x < 2 ; x++) { tts.generate(UK_RING); } } else if (dtmf.digits == "200") { session.speak(engine, voice, dtmf.digits + "means bye bye"); break; } else { session.speak(engine, voice, dtmf.digits + "invalid code, try again"); } }