From 32131f4c5376dd6ec93160bc929a8e5b4f13e5d6 Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Thu, 26 Dec 2002 19:38:27 +0000 Subject: [PATCH] Version 0.3.0 from FTP git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@572 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- include/asterisk/app.h | 6 ++++++ include/asterisk/channel.h | 37 +++++++++++++++++++++++++++++++++---- sounds/digits/dollars.gsm | Bin 1617 -> 1353 bytes sounds/digits/hundred.gsm | Bin 1155 -> 1122 bytes sounds/digits/million.gsm | Bin 1320 -> 1320 bytes sounds/digits/thousand.gsm | Bin 1155 -> 1155 bytes 6 files changed, 39 insertions(+), 4 deletions(-) diff --git a/include/asterisk/app.h b/include/asterisk/app.h index bf9c5b0b4f..44c4186d22 100755 --- a/include/asterisk/app.h +++ b/include/asterisk/app.h @@ -33,6 +33,12 @@ extern "C" { */ extern int ast_app_getdata(struct ast_channel *c, char *prompt, char *s, int maxlen, int timeout); +//! Record voice (after playing prompt if specified), waiting for silence (in ms) up to a given timeout (in s) or '#' +int ast_app_getvoice(struct ast_channel *c, char *dest, char *dstfmt, char *prompt, int silence, int maxsec); + +//! Determine if a given mailbox has any voicemail +extern int ast_app_has_voicemail(char *mailbox); + #if defined(__cplusplus) || defined(c_plusplus) } #endif diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h index 8122bde369..9673fb0993 100755 --- a/include/asterisk/channel.h +++ b/include/asterisk/channel.h @@ -43,7 +43,7 @@ extern "C" { struct ast_generator { void *(*alloc)(struct ast_channel *chan, void *params); void (*release)(struct ast_channel *chan, void *data); - int (*generate)(struct ast_channel *chan, void *data, int len); + int (*generate)(struct ast_channel *chan, void *data, int len, int samples); }; //! Main Channel structure associated with a channel. @@ -135,6 +135,8 @@ struct ast_channel { char *callerid; /*! Malloc'd ANI */ char *ani; + /*! Malloc'd RDNIS */ + char *rdnis; /*! Current extension context */ @@ -170,6 +172,13 @@ struct ast_channel { /*! Where to forward to if asked to dial on this interface */ char call_forward[AST_MAX_EXTENSION]; + /*! Tone zone */ + struct tone_zone *zone; + + /* Frames in/out counters */ + unsigned int fin; + unsigned int fout; + /* A linked list for variables */ struct ast_var_t *vars; AST_LIST_HEAD(varshead,ast_var_t) varshead; @@ -179,6 +188,8 @@ struct ast_channel { }; +struct chanmon; + #define AST_CDR_TRANSFER (1 << 0) #define AST_CDR_FORWARD (1 << 1) #define AST_CDR_CALLWAIT (1 << 2) @@ -240,7 +251,7 @@ struct ast_channel *ast_request(char *type, int format, void *data); * Returns an ast_channel on success or no answer, NULL on failure. Check the value of chan->_state * to know if the call was answered or not. */ -struct ast_channel *ast_request_and_dial(char *type, int format, void *data, int timeout, int *reason); +struct ast_channel *ast_request_and_dial(char *type, int format, void *data, int timeout, int *reason, char *callerid); //! Registers a channel /*! @@ -349,6 +360,18 @@ int ast_waitfor(struct ast_channel *chan, int ms); */ int ast_safe_sleep(struct ast_channel *chan, int ms); +//! Wait for a specied amount of time, looking for hangups and a condition argument +/*! + * \param chan channel to wait for + * \param ms length of time in milliseconds to sleep + * \param cond a function pointer for testing continue condition + * \param data argument to be passed to the condition test function + * Waits for a specified amount of time, servicing the channel as required. If cond + * returns 0, this function returns. + * returns -1 on hangup, otherwise 0. + */ +int ast_safe_sleep_conditional(struct ast_channel *chan, int ms, int (*cond)(void*), void *data ); + //! Waits for activity on a group of channels /*! * \param chan an array of pointers to channels @@ -574,7 +597,7 @@ int ast_activate_generator(struct ast_channel *chan, struct ast_generator *gen, /*! Deactive an active generator */ void ast_deactivate_generator(struct ast_channel *chan); -void ast_set_callerid(struct ast_channel *chan, char *callerid); +void ast_set_callerid(struct ast_channel *chan, char *callerid, int anitoo); /*! Start a tone going */ int ast_tonepair_start(struct ast_channel *chan, int freq1, int freq2, int duration, int vol); @@ -583,8 +606,14 @@ void ast_tonepair_stop(struct ast_channel *chan); /*! Play a tone pair for a given amount of time */ int ast_tonepair(struct ast_channel *chan, int freq1, int freq2, int duration, int vol); +/*! Automatically service a channel for us... */ +int ast_autoservice_start(struct ast_channel *chan); + +/*! Stop servicing a channel for us... Returns -1 on error or if channel has been hungup */ +int ast_autoservice_stop(struct ast_channel *chan); + #ifdef DO_CRASH -#define CRASH do { *((int *)0) = 0; } while(0) +#define CRASH do { fprintf(stderr, "!! Forcing immediate crash a-la abort !!\n"); *((int *)0) = 0; } while(0) #else #define CRASH do { } while(0) #endif diff --git a/sounds/digits/dollars.gsm b/sounds/digits/dollars.gsm index ce972187edfdda512d03e2f2f9f2158fda1c2bc0..2a0a67f5df3587dcc4ae972621290704c01c56d4 100755 GIT binary patch literal 1353 zcmV-P1-AOpCB$xFPylP2X{4it;5yWehVR>;#@bD6LH4e+N6@0p@%~^CENe3Uc?XpDc!A8t;y68$7+7?1m%)P64n`X z<9UY8B&PpJ(o;>OyRj=-QEw$YamaSmTZ^ za@1+?l9F3R(UXOjcv(hwPf`@qTE)9tu`)rjs!twq#S+wI_{&*aXPM7!*IQXAMGtaG zBeMi1!}d8bu&6eXJI9pMW$=$;uLoGFa9nL!ML42rTq>-Dda|UG`mH2sVzDMK(<{&) zBe5gu=SHBIStIvlc*aq$CNCV0wHjL`H{6m|+R|nDR_n83qP>!LT3tgmSLHWrxk8qm zo0aBtV#euaMLNubXCm!_RK2G+)NV%GU4@p{E!QK|VX>1bUC6kb z@;K^Us7Vr)@he~G85@c5X>WuOzU=79VKtHuXGiZxPlt+SNF@aISo7AMO656aO1RTeuM^Ct zJ6vR?M$snn#f`dK(5XeQZdVM}BSRKB&r3xbZFu8o=tSyC#=eNh84YHzi_oaKdU9CY z)#E~;xoKt=n||SCYlRf@k~zeHTR~C zsN=rpWssWTBsk}1Mmk; z<3X&Eio^7j!z0RR(4ciAJgVJBtaAf36KK=y)#n-^@RXv|lxh?s=!7dDttDf3Vy9Zi zzUheMi7REc)3YociA|~T* zN9v-(KJkb1qQbOeXe6cZ!>wlGCu(@3u^WwAzNW*v zBxM-e*y#ceGj`)Cr1CKIcLP`wcC}r6!obCmgA{i|MPj~51=!{}Of+#K{1I-KYl4E? z8VW*De literal 1617 zcmV-X2Cn(q=(3dAPynf8jV*~;0J>ZeSXz%@u~iKY*0w5K+}owI6q#_qiCdOfFT%i_+^NY7fWXAlP{R?};L^%1 zl#1G7kxWT)!6?&^J0ftP*Hn$v@PweriqN#QgCRVeayca1X1Z8V!hqK0lQrG!;YV$6 zDJ9iFn;#TeUqKV*u6MHnpm+VQC{;QDSc(=B<#+GTP&y z(2%oX#N3d{g2MuLC2m&ae8DX%wRbGq!PxAXjg;D_v?x$nOp$b;$>h#Vd}^S*6jc=@*&w*#RG5>2 zK$<0Lpp@ENXpB*Mp+^gKNSd(VIgB>5$*`eWT#iWlR-s87nK>NTmSG4Gf`LkHaaAp_ zz{;4~w=Al_y4jH1T)^P8q7HRo*xhK*lF2~GnkGA?tiYV1jLQVUK)54D8AMXSRMmC559% zo#&@Sd(zAQe(c*(QaJC~maHkKfzs+6%_iGz50X{Y_{?uF_Do>8A#YFET!ktF*ch!X z-f=G{qUpS&ac&^vf4L}eOvx2&Qg3n1$DWzT&DWf~>0faWC}j0Z9C6XO+il4g-*4Kh ziiVhR&Fcrv=;ha5wCx{nj&WkK(^PM)EUJCCX>Aa3+*!9v+fOBK9XDClp4BNI+m7Pf zakMdQYnbY&q$h2OK1ZiA>DjByM8sU=)uP;`Cv8kdgD!l%*-6b)%rsuvN_qKyiP70@ zLagJdE!8FS-DlgYyItx+T-#~YYL1LjZ-@@ z4(gdj2;C~1I+8^5+blN)E&62CW9%Ux+N#xKiU?e9Mm0X*CCUwD~n9W9Fp^2hf6wis$43KDN|SS zON2+$;| z4Kbf6K7egEHJ_#KV#+Zul}O79O}X3F>WUHSo`{R_3TBgL=Ym=#&3CG$7~^ob0C~o= zrouU7*JF{5dZ7e`EJ|q%wxl@}+T119#y33X9q4X~RSgJI;$o^NOjQIUu`EdO7RMo?s51IaO0L`J{3@Ed z$b-tu z42G$4-N$!V+~?!5V(_WO;&vCQaOfzMMo^-XrbfbWFrvDs28s$qN!%l`%m{L%L@X@{ zy0)b{?TU3FwnI?!R9Gs&LQ?37iCWvAkkAOE;pZiG^5pITbt{)%#=xPuYvuVP?14G4 zis_}=U0DcFpn*dxdAl66z>3^%n^BQqnHLgJvQU93Q&K#X+GBZ)5wM`+A(2LDmf+}y zZzAbdz{pZ+DBXmhg&LB|T-s-4aV2iaBWQrec4s>ry1_$i7C6+~D9dEpY{48{ZaEZ=psRP5YT&NH PyBcv918P9#+ikYn=>kJD diff --git a/sounds/digits/hundred.gsm b/sounds/digits/hundred.gsm index 890cd90c7b8c4a51bfc24efe7d814df8c772be42..beb7ddfe1f31f8145c12e9fc775fb5ee2054d09f 100755 GIT binary patch literal 1122 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 literal 1320 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 Vv~ef`%%lnvB_xr_s