X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=chan_lcr.h;fp=chan_lcr.h;h=f1842c66430a7668bee2583ad14f3f9d0354baf3;hp=e43163425870cc45d62896a3571e824824ffb4c8;hb=f94f30b0c56ae49c436ee588cd0696cc1b9db9aa;hpb=350450b9cadc6107449fe2630843d4f898f680b7 diff --git a/chan_lcr.h b/chan_lcr.h index e431634..f1842c6 100644 --- a/chan_lcr.h +++ b/chan_lcr.h @@ -11,13 +11,66 @@ /* structure for all calls */ struct chan_call { - struct chan_call *next; - unsigned long ref; /* callref, is 0, if not yet set */ - unsigned long bchannel_handle; /* reference to bchannel, if set */ - + struct chan_call *next; /* link to next call instance */ + int state; /* current call state CHAN_LCR_STATE */ + unsigned long ref; /* callref for this channel */ + struct ast_channel *ast; /* current asterisk channel */ + unsigned long bchannel_handle; + /* reference to bchannel, if set */ unsigned short bridge_id; /* 0 = off, equal ids are bridged */ struct ast_channel *ast; }; +enum { + CHAN_LCR_STATE_IN_PREPARE = 0, + CHAN_LCR_STATE_IN_SETUP, + CHAN_LCR_STATE_IN_DIALING, + CHAN_LCR_STATE_IN_PROCEEDING, + CHAN_LCR_STATE_IN_ALERTING, + CHAN_LCR_STATE_OUT_PREPARE, + CHAN_LCR_STATE_OUT_SETUP, + CHAN_LCR_STATE_OUT_DIALING, + CHAN_LCR_STATE_OUT_PROCEEDING, + CHAN_LCR_STATE_OUT_ALERTING, + CHAN_LCR_STATE_CONNECT, + CHAN_LCR_STATE_IN_DISCONNECT, + CHAN_LCR_STATE_OUT_DISCONNECT, + CHAN_LCR_STATE_RELEASE, +}; + +#define CHAN_LCR_STATE static const struct chan_lcr_state { \ + char name, \ + char meaning, \ +} chan_lcr_state[] = { \ + { "IN_PREPARE", \ + "New call from ISDN is waiting for setup." }, \ + { "IN_SETUP", \ + "Call from ISDN is currently set up." }, \ + { "IN_DIALING", \ + "Call from ISDN is currently waiting for digits to be dialed." }, \ + { "IN_PROCEEDING", \ + "Call from ISDN is complete and proceeds to ring." }, \ + { "IN_ALERTING", \ + "Call from ISDN is ringing." }, \ + { "OUT_PREPARE", \ + "New call to ISDN is wating for setup." }, \ + { "OUT_SETUP", \ + "Call to ISDN is currently set up." }, \ + { "OUT_DIALING", \ + "Call to ISDN is currently waiting for digits to be dialed." }, \ + { "OUT_PROCEEDING", \ + "Call to ISDN is complete and proceeds to ring." }, \ + { "OUT_ALERTING", \ + "Call to ISDN is ringing." }, \ + { "CONNECT", \ + "Call has been answered." }, \ + { "IN_DISCONNECT", \ + "Call has been hung up on ISDN side." }, \ + { "OUT_DISCONNECT", \ + "Call has been hung up on Asterisk side." }, \ + { "RELEASE", \ + "Call is waiting for complete release." }, \ +}; +