All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sourceforge.peers.media.AbstractSoundManager Maven / Gradle / Ivy

/*
    This file is part of Peers, a java SIP softphone.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see .
    
    Copyright 2013 Yohann Martineau 
 */
package net.sourceforge.peers.media;

import net.sourceforge.peers.rtp.RFC4733;
import net.sourceforge.peers.rtp.RtpPacket;

public abstract class AbstractSoundManager implements SoundSource {
	public final static String MEDIA_DIR = "media";

	public abstract void init();

	public abstract void close();

	public abstract int writeData(byte[] buffer, int offset, int length);

	// add this logical for collect incoming DTMF
	private StringBuilder incomingDTMFs;
	private long timestamp;

	public AbstractSoundManager() {
		incomingDTMFs = new StringBuilder();
	}

	public void addIncomingDTMF(RtpPacket rtpPacket) {

		if (RFC4733.PAYLOAD_TYPE_TELEPHONE_EVENT != rtpPacket.getPayloadType()) {
			return;
		}
		if (timestamp != rtpPacket.getTimestamp()) {
			String value = DtmfFactory.parseDtmf(rtpPacket);
			incomingDTMFs.append(value);
			timestamp = rtpPacket.getTimestamp();
		}
	}

	public String getIncomingDTMFs() {
		return incomingDTMFs.toString();
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy