Exemple #1
0
  public String noDataReceived() {
    /*
     * Create a packet of silence (linear 0)
     * The dtmf detector needs to know when a dtmf key
     * is released.  If a phone stops sending immediately
     * after the dtmf key is released, we need to append
     * silence so that the dtmf detector will return
     * the dtmf key.
     */
    int[] silence = new int[mediaInfo.getSamplesPerPacket()];

    String dtmfKeys = null;

    dtmfKeys = processData(silence);

    if (Logger.logLevel >= Logger.LOG_DETAIL) {
      Logger.println("no data received, done processing dtmf with silence");

      if (dtmfKeys != null) {
        Logger.println("silence.  dtmf " + dtmfKeys);
      }
    }

    return dtmfKeys;
  }
Exemple #2
0
  public DtmfDecoder(MemberReceiver memberReceiver, MediaInfo mediaInfo) {
    this.memberReceiver = memberReceiver;
    this.mediaInfo = mediaInfo;

    decoder = new Decoder();

    linearData = new int[mediaInfo.getSamplesPerPacket()];

    decoder.setRate(mediaInfo.getSampleRate());

    if (mediaInfo.getChannels() != 1) {
      /*
       * Must convert multi-channel to 1
       */
      try {
        sampleRateConverter =
            new SampleRateConverter(
                "DtmfDecoder",
                mediaInfo.getSampleRate(),
                mediaInfo.getChannels(),
                mediaInfo.getSampleRate(),
                1);
      } catch (IOException e) {
        Logger.println("Call " + memberReceiver + " DtmfDecoder:  " + e.getMessage());
      }
    }
  }