/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.restcomm.media.resource.dtmf; import java.io.FileOutputStream; import java.io.StringWriter; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.*; import org.restcomm.media.component.audio.AudioComponent; import org.restcomm.media.component.audio.AudioMixer; import org.restcomm.media.component.oob.OOBComponent; import org.restcomm.media.component.oob.OOBMixer; import org.restcomm.media.resource.dtmf.GeneratorImpl; import org.restcomm.media.scheduler.Clock; import org.restcomm.media.scheduler.PriorityQueueScheduler; import org.restcomm.media.scheduler.WallClock; import org.restcomm.media.spi.dtmf.DtmfDetectorListener; import org.restcomm.media.spi.dtmf.DtmfEvent; import org.restcomm.media.spi.listener.TooManyListenersException; import org.restcomm.media.spi.memory.Frame; /** * * @author yulian oifa */ public class DtmfGenerationTest { private Clock clock; private PriorityQueueScheduler scheduler; private GeneratorImpl generator; private String tone; public DtmfGenerationTest() { } @BeforeClass public static void setUpClass() throws Exception { } @AfterClass public static void tearDownClass() throws Exception { } @Before public void setUp() throws TooManyListenersException { clock = new WallClock(); scheduler = new PriorityQueueScheduler(); scheduler.setClock(clock); scheduler.start(); generator = new GeneratorImpl("dtmf", scheduler); } @After public void tearDown() { } /** * Test of setDuration method, of class DetectorImpl. */ @Test public void testGenerator() throws InterruptedException { /*generator.setVolume(-10); generator.setToneDuration(100); FileOutputStream stream=null; StringWriter stringWriter=null; try { java.io.File file = new java.io.File("/opt/mobsource/medianew/resources/telephony/dtmf/tones.txt"); stream=new FileOutputStream(file); stringWriter=new StringWriter(); } catch(Exception ex) { ex.printStackTrace(); } for(int i=0;i<=9;i++) { generator.setDigit(new String(new char[] {(char)('0' + i)})); generator.activate(); generator.deactivate(); stringWriter.write("buffer[" + i + "]=new byte[] {"); for(int j=0;j<5;j++) { Frame currFrame=generator.evolve(0); byte[] data=currFrame.getData(); for(int k=0;k<data.length;k++) if(k==data.length-1 && j==4) stringWriter.write("(byte) 0x" + String.format("%02X", data[k]&0xff)); else stringWriter.write("(byte) 0x" + String.format("%02X", data[k]&0xff) + ","); } stringWriter.write("};\r\n"); } generator.setDigit(new String(new char[] {'*'})); generator.activate(); generator.deactivate(); stringWriter.write("buffer[10]=new byte[] {"); for(int j=0;j<5;j++) { Frame currFrame=generator.evolve(0); byte[] data=currFrame.getData(); for(int k=0;k<data.length;k++) if(k==data.length-1 && j==4) stringWriter.write("(byte) 0x" + String.format("%02X", data[k]&0xff)); else stringWriter.write("(byte) 0x" + String.format("%02X", data[k]&0xff) + ","); } stringWriter.write("};\r\n"); generator.setDigit(new String(new char[] {'#'})); generator.activate(); generator.deactivate(); stringWriter.write("buffer[11]=new byte[] {"); for(int j=0;j<5;j++) { Frame currFrame=generator.evolve(0); byte[] data=currFrame.getData(); for(int k=0;k<data.length;k++) if(k==data.length-1 && j==4) stringWriter.write("(byte) 0x" + String.format("%02X", data[k]&0xff)); else stringWriter.write("(byte) 0x" + String.format("%02X", data[k]&0xff) + ","); } stringWriter.write("};\r\n"); for(int i=0;i<4;i++) { generator.setDigit(new String(new char[] {(char)('A' + i)})); generator.activate(); generator.deactivate(); stringWriter.write("buffer[" + (i+12) + "]=new byte[] {"); for(int j=0;j<5;j++) { Frame currFrame=generator.evolve(0); byte[] data=currFrame.getData(); for(int k=0;k<data.length;k++) if(k==data.length-1 && j==4) stringWriter.write("(byte) 0x" + String.format("%02X", data[k]&0xff)); else stringWriter.write("(byte) 0x" + String.format("%02X", data[k]&0xff) + ","); } stringWriter.write("};\r\n"); } try { stream.write(stringWriter.getBuffer().toString().getBytes()); stream.close(); } catch(Exception ex) { }*/ } }