freetdm: ftmod_r2 - added state map
This commit is contained in:
parent
d0f403b114
commit
a440210f44
|
@ -513,8 +513,6 @@ static void ftdm_r2_on_call_disconnect(openr2_chan_t *r2chan, openr2_call_discon
|
||||||
|
|
||||||
ftdm_log_chan_msg(ftdmchan, FTDM_LOG_NOTICE, "Call disconnected\n");
|
ftdm_log_chan_msg(ftdmchan, FTDM_LOG_NOTICE, "Call disconnected\n");
|
||||||
|
|
||||||
ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Got openr2 disconnection, clearing call\n");
|
|
||||||
|
|
||||||
clear_accept_pending(ftdmchan);
|
clear_accept_pending(ftdmchan);
|
||||||
|
|
||||||
R2CALL(ftdmchan)->disconnect_rcvd = 1;
|
R2CALL(ftdmchan)->disconnect_rcvd = 1;
|
||||||
|
@ -918,6 +916,103 @@ static openr2_log_level_t ftdm_r2_loglevel_from_string(const char *level)
|
||||||
return newlevel;
|
return newlevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static ftdm_state_map_t r2_state_map = {
|
||||||
|
{
|
||||||
|
{
|
||||||
|
ZSD_INBOUND,
|
||||||
|
ZSM_UNACCEPTABLE,
|
||||||
|
{FTDM_CHANNEL_STATE_DOWN, FTDM_END},
|
||||||
|
{FTDM_CHANNEL_STATE_COLLECT, FTDM_END}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ZSD_INBOUND,
|
||||||
|
ZSM_UNACCEPTABLE,
|
||||||
|
{FTDM_CHANNEL_STATE_COLLECT, FTDM_END},
|
||||||
|
{FTDM_CHANNEL_STATE_RING, FTDM_CHANNEL_STATE_TERMINATING, FTDM_END}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ZSD_INBOUND,
|
||||||
|
ZSM_UNACCEPTABLE,
|
||||||
|
{FTDM_CHANNEL_STATE_RING, FTDM_END},
|
||||||
|
{FTDM_CHANNEL_STATE_HANGUP, FTDM_CHANNEL_STATE_TERMINATING, FTDM_CHANNEL_STATE_PROGRESS, FTDM_CHANNEL_STATE_PROGRESS_MEDIA, FTDM_CHANNEL_STATE_UP, FTDM_END}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ZSD_INBOUND,
|
||||||
|
ZSM_UNACCEPTABLE,
|
||||||
|
{FTDM_CHANNEL_STATE_HANGUP, FTDM_END},
|
||||||
|
{FTDM_CHANNEL_STATE_DOWN, FTDM_END},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ZSD_INBOUND,
|
||||||
|
ZSM_UNACCEPTABLE,
|
||||||
|
{FTDM_CHANNEL_STATE_TERMINATING, FTDM_END},
|
||||||
|
{FTDM_CHANNEL_STATE_HANGUP, FTDM_END},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ZSD_INBOUND,
|
||||||
|
ZSM_UNACCEPTABLE,
|
||||||
|
{FTDM_CHANNEL_STATE_PROGRESS, FTDM_END},
|
||||||
|
{FTDM_CHANNEL_STATE_HANGUP, FTDM_CHANNEL_STATE_TERMINATING, FTDM_CHANNEL_STATE_PROGRESS_MEDIA, FTDM_CHANNEL_STATE_UP, FTDM_END},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ZSD_INBOUND,
|
||||||
|
ZSM_UNACCEPTABLE,
|
||||||
|
{FTDM_CHANNEL_STATE_PROGRESS_MEDIA, FTDM_END},
|
||||||
|
{FTDM_CHANNEL_STATE_HANGUP, FTDM_CHANNEL_STATE_TERMINATING, FTDM_CHANNEL_STATE_UP, FTDM_END},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ZSD_INBOUND,
|
||||||
|
ZSM_UNACCEPTABLE,
|
||||||
|
{FTDM_CHANNEL_STATE_UP, FTDM_END},
|
||||||
|
{FTDM_CHANNEL_STATE_HANGUP, FTDM_CHANNEL_STATE_TERMINATING, FTDM_END},
|
||||||
|
},
|
||||||
|
|
||||||
|
/* Outbound states */
|
||||||
|
|
||||||
|
{
|
||||||
|
ZSD_OUTBOUND,
|
||||||
|
ZSM_UNACCEPTABLE,
|
||||||
|
{FTDM_CHANNEL_STATE_DOWN, FTDM_END},
|
||||||
|
{FTDM_CHANNEL_STATE_DIALING, FTDM_END}
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
ZSD_OUTBOUND,
|
||||||
|
ZSM_UNACCEPTABLE,
|
||||||
|
{FTDM_CHANNEL_STATE_DIALING, FTDM_END},
|
||||||
|
{FTDM_CHANNEL_STATE_HANGUP, FTDM_CHANNEL_STATE_TERMINATING, FTDM_CHANNEL_STATE_PROGRESS_MEDIA, FTDM_END}
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
ZSD_OUTBOUND,
|
||||||
|
ZSM_UNACCEPTABLE,
|
||||||
|
{FTDM_CHANNEL_STATE_HANGUP, FTDM_END},
|
||||||
|
{FTDM_CHANNEL_STATE_DOWN, FTDM_END}
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
ZSD_OUTBOUND,
|
||||||
|
ZSM_UNACCEPTABLE,
|
||||||
|
{FTDM_CHANNEL_STATE_TERMINATING, FTDM_END},
|
||||||
|
{FTDM_CHANNEL_STATE_HANGUP, FTDM_END}
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
ZSD_OUTBOUND,
|
||||||
|
ZSM_UNACCEPTABLE,
|
||||||
|
{FTDM_CHANNEL_STATE_PROGRESS_MEDIA, FTDM_END},
|
||||||
|
{FTDM_CHANNEL_STATE_HANGUP, FTDM_CHANNEL_STATE_TERMINATING, FTDM_CHANNEL_STATE_UP, FTDM_END}
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
ZSD_OUTBOUND,
|
||||||
|
ZSM_UNACCEPTABLE,
|
||||||
|
{FTDM_CHANNEL_STATE_UP, FTDM_END},
|
||||||
|
{FTDM_CHANNEL_STATE_HANGUP, FTDM_CHANNEL_STATE_TERMINATING, FTDM_END}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
static FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION(ftdm_r2_configure_span_signaling)
|
static FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION(ftdm_r2_configure_span_signaling)
|
||||||
{
|
{
|
||||||
unsigned int i = 0;
|
unsigned int i = 0;
|
||||||
|
@ -1160,6 +1255,8 @@ static FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION(ftdm_r2_configure_span_signaling)
|
||||||
span->signal_data = r2data;
|
span->signal_data = r2data;
|
||||||
span->outgoing_call = r2_outgoing_call;
|
span->outgoing_call = r2_outgoing_call;
|
||||||
|
|
||||||
|
span->state_map = &r2_state_map;
|
||||||
|
|
||||||
/* use signals queue */
|
/* use signals queue */
|
||||||
ftdm_set_flag(span, FTDM_SPAN_USE_SIGNALS_QUEUE);
|
ftdm_set_flag(span, FTDM_SPAN_USE_SIGNALS_QUEUE);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue