#ifndef __AUDIORECPLY_H__ #define __AUDIORECPLY_H__ #pragma once #ifdef __cplusplus extern "C" { #endif #include "audiostream.h" typedef struct audiorecply_t audiorecply_t; struct audiorecply_t { audiostream_t base; int ptime; int ctype; int clock; int utype; union { struct { int ellapsed; int dtmfterm; int maxtime; void *wav_handle; }rec; struct { char interdigit[16]; void *wav_handle; }ply; struct { void *fax_state; int issender; int timeout; int ellapsed; int fin; int error; }fax; }; apr_pool_t *pool; }; apr_status_t audiorecply_create(apr_pool_t *pool, audioengine_t *engine, audiorecply_t **p_recply); apr_status_t audiorecply_destroy(audiorecply_t *recply); apr_status_t audiorecply_set_ptime(audiorecply_t *recply, int ptime); apr_status_t audiorecply_set_clock(audiorecply_t *recply, int clock); apr_status_t audiorecply_set_codec(audiorecply_t *recply, int ctype); apr_status_t audiorecply_init(audiorecply_t *recply); apr_status_t audiorecply_term(audiorecply_t *recply); // must en-brace with context lock and unlock apr_status_t audiorecply_start_play(audiorecply_t *recply, const char *interdigit, const char *url); apr_status_t audiorecply_start_record(audiorecply_t *recply, const char *url, int dtmfterm, int maxtime); apr_status_t audiorecply_start_send_fax(audiorecply_t *recply, const char *url, int timeout); apr_status_t audiorecply_start_recv_fax(audiorecply_t *recply, const char *url, int itmeout); apr_status_t audiorecply_end(audiorecply_t *recply); // for IVR functions #ifdef __cplusplus } // extern "C" { #endif #endif //__AUDIORECPLY_H__