added TONE_HANGUP, also added Tone generation by mISDN_dsp for post hangup tones, therefore the TONE_X defines are in the isdn_lib.h now. changed a REALEASE to a DISCONNECT in NT Stack, to make tones available in that state.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@34604 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Christian Richter
2006-06-18 19:09:32 +00:00
parent e49a367ecf
commit 829583a3dc
3 changed files with 47 additions and 23 deletions

View File

@@ -3798,6 +3798,8 @@ void manager_ph_control(struct misdn_bchannel *bc, int c1, int c2)
unsigned int *d = (unsigned int*)&ctrl->data.p;
struct misdn_stack *stack=get_stack_by_bc(bc);
cb_log(4,bc->port,"ph_control: c1:%x c2:%x\n",c1,c2);
ctrl->prim = PH_CONTROL | REQUEST;
ctrl->addr = bc->addr | FLG_MSG_DOWN;
ctrl->dinfo = 0;
@@ -3915,6 +3917,29 @@ struct misdn_bchannel *stack_holder_find(struct misdn_stack *stack, unsigned lon
void misdn_lib_send_tone(struct misdn_bchannel *bc, enum tone_e tone)
{
switch(tone) {
case TONE_DIAL:
manager_ph_control(bc, TONE_PATT_ON, TONE_GERMAN_DIALTONE);
break;
case TONE_ALERTING:
manager_ph_control(bc, TONE_PATT_ON, TONE_GERMAN_RINGING);
break;
case TONE_HANGUP:
manager_ph_control(bc, TONE_PATT_ON, TONE_GERMAN_HANGUP);
break;
case TONE_NONE:
default:
manager_ph_control(bc, TONE_PATT_OFF, TONE_GERMAN_HANGUP);
}
}
void manager_ec_enable(struct misdn_bchannel *bc)
{
int ec_arr[2];

View File

@@ -21,6 +21,19 @@
enum tone_e {
TONE_NONE=0,
TONE_DIAL,
TONE_ALERTING,
TONE_FAR_ALERTING,
TONE_BUSY,
TONE_HANGUP,
TONE_CUSTOM,
TONE_FILE
};
#define MAX_BCHANS 30
enum bchannel_state {
@@ -376,6 +389,7 @@ int misdn_lib_send_facility(struct misdn_bchannel *bc, enum facility_type fac, v
void manager_ec_enable(struct misdn_bchannel *bc);
void manager_ec_disable(struct misdn_bchannel *bc);
void misdn_lib_send_tone(struct misdn_bchannel *bc, enum tone_e tone);
void get_show_stack_details(int port, char *buf);