package iax.protocol.user.command;
import iax.protocol.call.Call;
import iax.protocol.frame.ControlFrame;
import iax.protocol.frame.DTMFFrame;
import iax.protocol.frame.FullFrame;
import iax.protocol.peer.Peer;
public class SendDTMF implements UserCommand {
// Current peer
private Peer peer;
// Number of the peer to hang the call.
private String calledNumber;
// DTMF tone to send.
private char dtmfTone;
/**
* Constructor. Initializes the command with suitable values.
* @param peer Current peer.
* @param calledNumber Number of the peer to hang the call.
*/
public SendDTMF(Peer peer, String calledNumber, char tone) {
this.peer = peer;
this.calledNumber = calledNumber;
this.dtmfTone = tone;
}
public void execute() {
Thread t = new Thread(this);
t.start();
}
public void run() {
try {
Call call = peer.getCall(calledNumber);
DTMFFrame dtmfFrame = new DTMFFrame(call.getSrcCallNo(), false, call.getDestCallNo(), call.getTimestamp(), call.getOseqno(), call.getIseqno(), (int)dtmfTone);
call.handleSendFrame(dtmfFrame);
} catch (Exception e) {
e.printStackTrace();
}
}
}