2009-04-18 4 views

Répondre

0

DTMF ne couvre que les chiffres 0 à 9 et des lettres #, *, A, B, C, et D. Donc, si votre question est-ce qu'il existe quelque chose qui prend en charge les lettres après D , alors la réponse est non.

0

Les touches "DTMF" sont définies dans le volume VI du CCITT: Recommandations générales sur la commutation et la signalisation téléphoniques Recommandation Q.23: Caractéristiques techniques des postes téléphoniques à bouton-poussoir. ". Ce document et ses documents standard connexes vous en diront plus que vous ne voudrez jamais savoir sur les tonalités DTMF. "

Cette citation est tirée here. Cette page Web couvre toutes les bases.

1

Eh bien la fonction suivante génère un 16 bits, signé, PCM linéaire, la tonalité DTMF en Java.

public byte[] generateTone(float a, float b) 
{ 
    byte samples[] = new byte[16000]; // Tone data buffer. 
    int frames = samples.length/2;  // Number of frames that fit in the buffer. 

    /* Fill the buffer with the tone data. */ 
    for(int i = 0; i < frames; i++) 
    { 
     /* The 8000 value is the sample rate. */ 
     short value = (short)(32768 + 63 * Math.sin(i * 2 * Math.PI * a/8000) + 63 * Math.sin(i * 2 * Math.PI * b/8000)); 
     samples[i + i] = (byte)(value >>> 8); 
     samples[i + (i + 1)] = (byte)value; 
    } 

    return samples; 
} 

J'espère que cela aide ... Il suffit de brancher les deux fréquences que les paramètres a et b et vous obtenez un son. Par exemple le numéro un serait généré comme:

byte tone[] = generateTone(697, 1209); 
Questions connexes