sendDTMFTone method
Implementation
@override
Future<TcccOutcome> sendDTMFTone(
String tone, {
int? duration,
int? interToneGap,
}) async {
if (isEnded) {
return TcccOutcome.fail(
TcccFailure(
code: ErrorCode.Session.invalidState,
message: 'call already ended; sendDTMFTone ignored',
),
);
}
final custom = dtmfResultBuilder;
final status = custom == null ? const TcccOutcome.ok() : custom(tone);
if (status.success || status.code != ErrorCode.Dtmf.queueFull) {
sentDtmf.add(tone);
}
final hold = sendDtmfHold;
if (hold != null) {
await hold.future;
}
return status;
}