ts 266 src/ftmod/ftmod_analog/ftmod_analog.c static int teletone_handler(teletone_generation_session_t *ts, teletone_tone_map_t *map) ts 268 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_buffer_t *dt_buffer = ts->user_data; ts 274 src/ftmod/ftmod_analog/ftmod_analog.c wrote = teletone_mux_tones(ts, map); ts 275 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_buffer_write(dt_buffer, ts->buffer, wrote * 2); ts 337 src/ftmod/ftmod_analog/ftmod_analog.c teletone_generation_session_t ts; ts 351 src/ftmod/ftmod_analog/ftmod_analog.c ts.buffer = NULL; ts 372 src/ftmod/ftmod_analog/ftmod_analog.c teletone_init_session(&ts, 0, teletone_handler, dt_buffer); ts 373 src/ftmod/ftmod_analog/ftmod_analog.c ts.rate = 8000; ts 375 src/ftmod/ftmod_analog/ftmod_analog.c ts.debug = 1; ts 376 src/ftmod/ftmod_analog/ftmod_analog.c ts.debug_stream = stdout; ts 486 src/ftmod/ftmod_analog/ftmod_analog.c ts.user_data = ftdmchan->fsk_buffer; ts 487 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_CALLWAITING_SAS]); ts 488 src/ftmod/ftmod_analog/ftmod_analog.c ts.user_data = dt_buffer; ts 592 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_DIAL]); ts 605 src/ftmod/ftmod_analog/ftmod_analog.c ts.user_data = ftdmchan->fsk_buffer; ts 606 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_CALLWAITING_SAS]); ts 607 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_CALLWAITING_CAS]); ts 608 src/ftmod/ftmod_analog/ftmod_analog.c ts.user_data = dt_buffer; ts 637 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_RING]); ts 647 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_BUSY]); ts 658 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_ATTN]); ts 815 src/ftmod/ftmod_analog/ftmod_analog.c if (ts.buffer) { ts 816 src/ftmod/ftmod_analog/ftmod_analog.c teletone_destroy_session(&ts); ts 192 src/ftmod/ftmod_analog_em/ftmod_analog_em.c static int teletone_handler(teletone_generation_session_t *ts, teletone_tone_map_t *map) ts 194 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_buffer_t *dt_buffer = ts->user_data; ts 200 src/ftmod/ftmod_analog_em/ftmod_analog_em.c wrote = teletone_mux_tones(ts, map); ts 201 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_buffer_write(dt_buffer, ts->buffer, wrote * 2); ts 214 src/ftmod/ftmod_analog_em/ftmod_analog_em.c teletone_generation_session_t ts; ts 228 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ts.buffer = NULL; ts 248 src/ftmod/ftmod_analog_em/ftmod_analog_em.c teletone_init_session(&ts, 0, teletone_handler, dt_buffer); ts 249 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ts.rate = 8000; ts 251 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ts.debug = 1; ts 252 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ts.debug_stream = stdout; ts 418 src/ftmod/ftmod_analog_em/ftmod_analog_em.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_DIAL]); ts 427 src/ftmod/ftmod_analog_em/ftmod_analog_em.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_RING]); ts 436 src/ftmod/ftmod_analog_em/ftmod_analog_em.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_BUSY]); ts 447 src/ftmod/ftmod_analog_em/ftmod_analog_em.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_ATTN]); ts 568 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ts.buffer) { ts 569 src/ftmod/ftmod_analog_em/ftmod_analog_em.c teletone_destroy_session(&ts); ts 146 src/ftmod/ftmod_isdn/ftmod_isdn.c pcaphdr.ts.tv_sec = 0; ts 147 src/ftmod/ftmod_isdn/ftmod_isdn.c pcaphdr.ts.tv_usec = 0; ts 167 src/ftmod/ftmod_isdn/ftmod_isdn.c pcaphdr.ts.tv_sec = 0; ts 168 src/ftmod/ftmod_isdn/ftmod_isdn.c pcaphdr.ts.tv_usec = 0; ts 187 src/ftmod/ftmod_isdn/ftmod_isdn.c struct timeval ts; ts 246 src/ftmod/ftmod_isdn/ftmod_isdn.c gettimeofday(&ts, NULL); ts 248 src/ftmod/ftmod_isdn/ftmod_isdn.c pcaphdr.ts.tv_sec = ts.tv_sec; ts 249 src/ftmod/ftmod_isdn/ftmod_isdn.c pcaphdr.ts.tv_usec = ts.tv_usec; ts 1593 src/ftmod/ftmod_isdn/ftmod_isdn.c static int teletone_handler(teletone_generation_session_t *ts, teletone_tone_map_t *map) ts 1595 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_buffer_t *dt_buffer = ts->user_data; ts 1601 src/ftmod/ftmod_isdn/ftmod_isdn.c wrote = teletone_mux_tones(ts, map); ts 1602 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_buffer_write(dt_buffer, ts->buffer, wrote * 2); ts 1616 src/ftmod/ftmod_isdn/ftmod_isdn.c teletone_generation_session_t ts = {{{{0}}}}; ts 1645 src/ftmod/ftmod_isdn/ftmod_isdn.c teletone_init_session(&ts, 0, teletone_handler, dt_buffer); ts 1646 src/ftmod/ftmod_isdn/ftmod_isdn.c ts.rate = 8000; ts 1647 src/ftmod/ftmod_isdn/ftmod_isdn.c ts.duration = ts.rate; ts 1695 src/ftmod/ftmod_isdn/ftmod_isdn.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_DIAL]); ts 1705 src/ftmod/ftmod_isdn/ftmod_isdn.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_RING]); ts 1781 src/ftmod/ftmod_isdn/ftmod_isdn.c offset += (ts.rate / (1000 / interval)) << 1; ts 1782 src/ftmod/ftmod_isdn/ftmod_isdn.c if (offset >= ts.rate) { ts 1788 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ts.buffer) { ts 1789 src/ftmod/ftmod_isdn/ftmod_isdn.c teletone_destroy_session(&ts); ts 692 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cfg.c cfg.t.cfg.s.sdDLSAP.ts =; /* SIOS transmission interval */ ts 166 src/include/private/libteletone_generate.h typedef int (*tone_handler)(struct teletone_generation_session *ts, teletone_tone_map_t *map); ts 223 src/include/private/libteletone_generate.h TELETONE_API(int) teletone_set_tone(teletone_generation_session_t *ts, int index, ...); ts 241 src/include/private/libteletone_generate.h TELETONE_API(int) teletone_init_session(teletone_generation_session_t *ts, int buflen, tone_handler handler, void *user_data); ts 248 src/include/private/libteletone_generate.h TELETONE_API(int) teletone_destroy_session(teletone_generation_session_t *ts); ts 256 src/include/private/libteletone_generate.h TELETONE_API(int) teletone_mux_tones(teletone_generation_session_t *ts, teletone_tone_map_t *map); ts 264 src/include/private/libteletone_generate.h TELETONE_API(int) teletone_run(teletone_generation_session_t *ts, const char *cmd); ts 67 src/libteletone_generate.c TELETONE_API(int) teletone_set_tone(teletone_generation_session_t *ts, int index, ...) ts 75 src/libteletone_generate.c ts->TONES[index].freqs[i++] = x; ts 99 src/libteletone_generate.c TELETONE_API(int) teletone_init_session(teletone_generation_session_t *ts, int buflen, tone_handler handler, void *user_data) ts 101 src/libteletone_generate.c memset(ts, 0, sizeof(*ts)); ts 102 src/libteletone_generate.c ts->rate = 8000; ts 103 src/libteletone_generate.c ts->channels = 1; ts 104 src/libteletone_generate.c ts->duration = 2000; ts 105 src/libteletone_generate.c ts->wait = 500; ts 106 src/libteletone_generate.c ts->tmp_duration = -1; ts 107 src/libteletone_generate.c ts->tmp_wait = -1; ts 108 src/libteletone_generate.c ts->handler = handler; ts 109 src/libteletone_generate.c ts->user_data = user_data; ts 110 src/libteletone_generate.c ts->volume = -7; ts 111 src/libteletone_generate.c ts->decay_step = 0; ts 112 src/libteletone_generate.c ts->decay_factor = 1; ts 114 src/libteletone_generate.c if ((ts->buffer = ftdm_calloc(buflen, sizeof(teletone_audio_t))) == 0) { ts 117 src/libteletone_generate.c ts->datalen = buflen; ts 119 src/libteletone_generate.c ts->dynamic = 1024; ts 122 src/libteletone_generate.c teletone_set_tone(ts, '1', 697.0, 1209.0, 0.0); ts 123 src/libteletone_generate.c teletone_set_tone(ts, '2', 697.0, 1336.0, 0.0); ts 124 src/libteletone_generate.c teletone_set_tone(ts, '3', 697.0, 1477.0, 0.0); ts 125 src/libteletone_generate.c teletone_set_tone(ts, 'A', 697.0, 1633.0, 0.0); ts 126 src/libteletone_generate.c teletone_set_tone(ts, '4', 770.0, 1209.0, 0.0); ts 127 src/libteletone_generate.c teletone_set_tone(ts, '5', 770.0, 1336.0, 0.0); ts 128 src/libteletone_generate.c teletone_set_tone(ts, '6', 770.0, 1477.0, 0.0); ts 129 src/libteletone_generate.c teletone_set_tone(ts, 'B', 770.0, 1633.0, 0.0); ts 130 src/libteletone_generate.c teletone_set_tone(ts, '7', 859.0, 1209.0, 0.0); ts 131 src/libteletone_generate.c teletone_set_tone(ts, '8', 859.0, 1336.0, 0.0); ts 132 src/libteletone_generate.c teletone_set_tone(ts, '9', 859.0, 1477.0, 0.0); ts 133 src/libteletone_generate.c teletone_set_tone(ts, 'C', 859.0, 1633.0, 0.0); ts 134 src/libteletone_generate.c teletone_set_tone(ts, '*', 941.0, 1209.0, 0.0); ts 135 src/libteletone_generate.c teletone_set_tone(ts, '0', 941.0, 1336.0, 0.0); ts 136 src/libteletone_generate.c teletone_set_tone(ts, '#', 941.0, 1477.0, 0.0); ts 137 src/libteletone_generate.c teletone_set_tone(ts, 'D', 941.0, 1633.0, 0.0); ts 142 src/libteletone_generate.c TELETONE_API(int) teletone_destroy_session(teletone_generation_session_t *ts) ts 144 src/libteletone_generate.c if (ts->buffer) { ts 145 src/libteletone_generate.c ftdm_safe_free(ts->buffer); ts 146 src/libteletone_generate.c ts->buffer = NULL; ts 147 src/libteletone_generate.c ts->samples = 0; ts 152 src/libteletone_generate.c static int ensure_buffer(teletone_generation_session_t *ts, int need) ts 154 src/libteletone_generate.c need += ts->samples; ts 156 src/libteletone_generate.c need *= ts->channels; ts 158 src/libteletone_generate.c if (need > ts->datalen) { ts 160 src/libteletone_generate.c ts->datalen = need + ts->dynamic; ts 161 src/libteletone_generate.c tmp = realloc(ts->buffer, ts->datalen); ts 165 src/libteletone_generate.c ts->buffer = tmp; ts 171 src/libteletone_generate.c TELETONE_API(int) teletone_mux_tones(teletone_generation_session_t *ts, teletone_tone_map_t *map) ts 182 src/libteletone_generate.c float vol = ts->volume; ts 183 src/libteletone_generate.c ts->samples = 0; ts 185 src/libteletone_generate.c duration = (ts->tmp_duration > -1) ? ts->tmp_duration : ts->duration; ts 186 src/libteletone_generate.c wait = (ts->tmp_wait > -1) ? ts->tmp_wait : ts->wait; ts 190 src/libteletone_generate.c teletone_dds_state_set_tone(&tones[freqlen], map->freqs[freqlen], ts->rate, 0); ts 194 src/libteletone_generate.c if (ts->channels > 1) { ts 195 src/libteletone_generate.c duration *= ts->channels; ts 198 src/libteletone_generate.c if (ts->dynamic) { ts 199 src/libteletone_generate.c if (ensure_buffer(ts, duration)) { ts 204 src/libteletone_generate.c for (ts->samples = 0; ts->samples < ts->datalen && ts->samples < duration; ts->samples++) { ts 205 src/libteletone_generate.c if (ts->decay_direction && ++dc >= ts->decay_step) { ts 206 src/libteletone_generate.c float nvol = vol + ts->decay_direction * ts->decay_factor; ts 225 src/libteletone_generate.c ts->buffer[ts->samples] = (teletone_audio_t)sample; ts 227 src/libteletone_generate.c for (c = 1; c < ts->channels; c++) { ts 228 src/libteletone_generate.c ts->buffer[ts->samples+1] = ts->buffer[ts->samples]; ts 229 src/libteletone_generate.c ts->samples++; ts 234 src/libteletone_generate.c if (ts->dynamic) { ts 235 src/libteletone_generate.c if (ensure_buffer(ts, wait)) { ts 239 src/libteletone_generate.c for (c = 0; c < ts->channels; c++) { ts 240 src/libteletone_generate.c for (i = 0; i < wait && ts->samples < ts->datalen; i++) { ts 241 src/libteletone_generate.c ts->buffer[ts->samples++] = 0; ts 245 src/libteletone_generate.c if (ts->debug && ts->debug_stream) { ts 247 src/libteletone_generate.c fprintf(ts->debug_stream, "wait %d (%dms)\n", wait, wait / (ts->rate / 1000)); ts 249 src/libteletone_generate.c fprintf(ts->debug_stream, "Generate: ("); ts 252 src/libteletone_generate.c fprintf(ts->debug_stream, "%s%0.2f", i == 0 ? "" : "+",map->freqs[i]); ts 255 src/libteletone_generate.c fprintf(ts->debug_stream, ts 257 src/libteletone_generate.c ts->volume, ts 259 src/libteletone_generate.c duration / (ts->rate / 1000), ts 260 src/libteletone_generate.c ts->channels, ts 261 src/libteletone_generate.c ts->channels == 1 ? "" : "s", ts 263 src/libteletone_generate.c wait / (ts->rate / 1000), ts 264 src/libteletone_generate.c ts->decay_factor, ts 265 src/libteletone_generate.c ts->decay_step, ts 266 src/libteletone_generate.c ts->decay_step / (ts->rate / 1000), ts 267 src/libteletone_generate.c ts->samples * 2); ts 270 src/libteletone_generate.c return ts->samples / ts->channels; ts 273 src/libteletone_generate.c TELETONE_API(int) teletone_run(teletone_generation_session_t *ts, const char *cmd) ts 304 src/libteletone_generate.c ts->channels = atoi(cur + 2); ts 307 src/libteletone_generate.c ts->rate = atoi(cur + 2); ts 310 src/libteletone_generate.c ts->duration = atoi(cur + 2) * (ts->rate / 1000); ts 316 src/libteletone_generate.c ts->volume = vol; ts 321 src/libteletone_generate.c ts->decay_step = atoi(cur + 2) * (ts->rate / 1000); ts 322 src/libteletone_generate.c ts->decay_direction = -1; ts 325 src/libteletone_generate.c ts->decay_step = atoi(cur + 2) * (ts->rate / 1000); ts 326 src/libteletone_generate.c ts->decay_direction = 1; ts 329 src/libteletone_generate.c ts->decay_factor = (float)atof(cur + 2); ts 332 src/libteletone_generate.c ts->wait = atoi(cur + 2) * (ts->rate / 1000); ts 335 src/libteletone_generate.c ts->loops = atoi(cur + 2); ts 339 src/libteletone_generate.c ts->LOOPS = atoi(cur + 2); ts 354 src/libteletone_generate.c ts->tmp_duration = -1; ts 355 src/libteletone_generate.c ts->tmp_wait = -1; ts 372 src/libteletone_generate.c ts->tmp_duration = atoi(p) * (ts->rate / 1000); ts 375 src/libteletone_generate.c ts->tmp_wait = atoi(p) * (ts->rate / 1000); ts 386 src/libteletone_generate.c if (ts->debug && ts->debug_stream) { ts 387 src/libteletone_generate.c fprintf(ts->debug_stream, "Syntax Error!\n"); ts 396 src/libteletone_generate.c mapp = &ts->TONES[(int)*cur]; ts 397 src/libteletone_generate.c } else if (ts->debug && ts->debug_stream) { ts 398 src/libteletone_generate.c fprintf(ts->debug_stream, "Map [%c] Out Of Range!\n", *cur); ts 404 src/libteletone_generate.c if (ts->handler) { ts 406 src/libteletone_generate.c ts->handler(ts, mapp); ts 407 src/libteletone_generate.c if (ts->loops > 0) { ts 408 src/libteletone_generate.c ts->loops--; ts 410 src/libteletone_generate.c } while (ts->loops); ts 412 src/libteletone_generate.c } else if (ts->debug && ts->debug_stream) { ts 413 src/libteletone_generate.c fprintf(ts->debug_stream, "Ignoring Empty Map [%c]!\n", *cur); ts 434 src/libteletone_generate.c if (ts->LOOPS > 0) { ts 435 src/libteletone_generate.c ts->LOOPS--; ts 438 src/libteletone_generate.c } while (ts->LOOPS); ts 7 src/testtones.c static int teletone_handler(teletone_generation_session_t *ts, teletone_tone_map_t *map) ts 9 src/testtones.c struct ttmp *tmp = ts->user_data; ts 13 src/testtones.c wrote = teletone_mux_tones(ts, map); ts 14 src/testtones.c len = write(tmp->fd, ts->buffer, wrote * 2); ts 24 src/testtones.c teletone_generation_session_t ts; ts 37 src/testtones.c teletone_init_session(&ts, 0, teletone_handler, &tmp); ts 38 src/testtones.c ts.rate = 8000; ts 39 src/testtones.c ts.debug = 1; ts 40 src/testtones.c ts.debug_stream = stdout; ts 41 src/testtones.c teletone_run(&ts, argv[2]);