mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-03-13 12:40:17 +00:00
ftmod_misdn: Handle incoming PH_CONTROL_IND messages on b-channels
Also add a few more PH_CONTROL_IND message types. Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
This commit is contained in:
parent
bc414df510
commit
715c538922
@ -144,10 +144,36 @@ const static struct {
|
|||||||
} misdn_control_types[] = {
|
} misdn_control_types[] = {
|
||||||
#define MISDN_CONTROL_TYPE(x) { x, #x }
|
#define MISDN_CONTROL_TYPE(x) { x, #x }
|
||||||
MISDN_CONTROL_TYPE(DTMF_HFC_COEF),
|
MISDN_CONTROL_TYPE(DTMF_HFC_COEF),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_CONF_JOIN),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_CONF_SPLIT),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_RECEIVE_OFF),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_RECEIVE_ON),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_ECHO_ON),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_ECHO_OFF),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_MIX_ON),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_MIX_OFF),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_DELAY),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_JITTER),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_TXDATA_ON),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_TXDATA_OFF),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_TX_DEJITTER),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_TX_DEJ_OFF),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_TONE_PATT_ON),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_TONE_PATT_OFF),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_VOL_CHANGE_TX),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_VOL_CHANGE_RX),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_BF_ENABLE_KEY),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_BF_DISABLE),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_BF_ACCEPT),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_BF_REJECT),
|
||||||
|
MISDN_CONTROL_TYPE(DSP_PIPELINE_CFG),
|
||||||
|
MISDN_CONTROL_TYPE(HFC_VOL_CHANGE_TX),
|
||||||
|
MISDN_CONTROL_TYPE(HFC_VOL_CHANGE_RX),
|
||||||
|
MISDN_CONTROL_TYPE(HFC_SPL_LOOP_ON),
|
||||||
|
MISDN_CONTROL_TYPE(HFC_SPL_LOOP_OFF),
|
||||||
#undef MISDN_CONTROL_TYPE
|
#undef MISDN_CONTROL_TYPE
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef MISDN_DEBUG_EVENTS
|
|
||||||
static const char *misdn_control2str(const int ctrl)
|
static const char *misdn_control2str(const int ctrl)
|
||||||
{
|
{
|
||||||
int x;
|
int x;
|
||||||
@ -158,7 +184,6 @@ static const char *misdn_control2str(const int ctrl)
|
|||||||
}
|
}
|
||||||
return "unknown";
|
return "unknown";
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************************
|
/***********************************************************************************
|
||||||
@ -759,13 +784,11 @@ out:
|
|||||||
|
|
||||||
static int misdn_handle_ph_control_ind(ftdm_channel_t *chan, const struct mISDNhead *hh, const void *data, const int data_len)
|
static int misdn_handle_ph_control_ind(ftdm_channel_t *chan, const struct mISDNhead *hh, const void *data, const int data_len)
|
||||||
{
|
{
|
||||||
#ifdef MISDN_DEBUG_EVENTS
|
|
||||||
ftdm_log_chan(chan, FTDM_LOG_DEBUG,
|
ftdm_log_chan(chan, FTDM_LOG_DEBUG,
|
||||||
"PH_CONTROL_IND:\n"
|
"PH_CONTROL_IND:\n"
|
||||||
"\tMessage:\t%s\n"
|
"\tMessage:\t%s (%#x)\n"
|
||||||
"\tPayload:\t%d\n",
|
"\tPayload:\t%d\n",
|
||||||
misdn_control2str(hh->id), data_len);
|
misdn_control2str(hh->id), hh->id, data_len);
|
||||||
#endif
|
|
||||||
|
|
||||||
switch (hh->id) {
|
switch (hh->id) {
|
||||||
case DTMF_HFC_COEF:
|
case DTMF_HFC_COEF:
|
||||||
@ -2351,6 +2374,13 @@ static ftdm_status_t handle_b_channel_event(ftdm_channel_t *chan)
|
|||||||
case PH_ACTIVATE_IND:
|
case PH_ACTIVATE_IND:
|
||||||
priv->active = 1;
|
priv->active = 1;
|
||||||
break;
|
break;
|
||||||
|
case PH_CONTROL_IND: {
|
||||||
|
int datalen = retval - MISDN_HEADER_LEN;
|
||||||
|
char *data = buf + MISDN_HEADER_LEN;
|
||||||
|
|
||||||
|
misdn_handle_ph_control_ind(chan, mh, data, datalen);
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
ftdm_log_chan(chan, FTDM_LOG_ERROR, "mISDN received unknown/unhandled event primitive: (%d) %s\n",
|
ftdm_log_chan(chan, FTDM_LOG_ERROR, "mISDN received unknown/unhandled event primitive: (%d) %s\n",
|
||||||
mh->prim, misdn_event2str(mh->prim));
|
mh->prim, misdn_event2str(mh->prim));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user