diff options
author | Christian Richter <christian.richter@beronet.com> | 2006-06-18 19:09:32 +0000 |
---|---|---|
committer | Christian Richter <christian.richter@beronet.com> | 2006-06-18 19:09:32 +0000 |
commit | 829583a3dcc42b269d93a5e20747b5c8c141985c (patch) | |
tree | 56d9c204621d1563a8797db98a55db45d8ad0b71 /channels/misdn | |
parent | e49a367ecfd5f2f15af9632af83195220f415ec7 (diff) |
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
Diffstat (limited to 'channels/misdn')
-rw-r--r-- | channels/misdn/isdn_lib.c | 25 | ||||
-rw-r--r-- | channels/misdn/isdn_lib.h | 14 |
2 files changed, 39 insertions, 0 deletions
diff --git a/channels/misdn/isdn_lib.c b/channels/misdn/isdn_lib.c index f45802200..01365d225 100644 --- a/channels/misdn/isdn_lib.c +++ b/channels/misdn/isdn_lib.c @@ -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]; diff --git a/channels/misdn/isdn_lib.h b/channels/misdn/isdn_lib.h index b8af625aa..318fa9b67 100644 --- a/channels/misdn/isdn_lib.h +++ b/channels/misdn/isdn_lib.h @@ -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); |