ftdmchan 109 mod_freetdm/mod_freetdm.c ftdm_channel_t *ftdmchan; ftdmchan 203 mod_freetdm/mod_freetdm.c static void start_hold(ftdm_channel_t *ftdmchan, switch_core_session_t *session_a, const char *uuid, const char *stream) ftdmchan 213 mod_freetdm/mod_freetdm.c spanid = ftdm_channel_get_span_id(ftdmchan); ftdmchan 258 mod_freetdm/mod_freetdm.c static void cycle_foreground(ftdm_channel_t *ftdmchan, int flash, const char *bcast) { ftdmchan 263 mod_freetdm/mod_freetdm.c uint32_t tokencnt = ftdm_channel_get_token_count(ftdmchan); ftdmchan 267 mod_freetdm/mod_freetdm.c if ((session = ftdm_channel_get_session(ftdmchan, i))) { ftdmchan 279 mod_freetdm/mod_freetdm.c start_hold(ftdmchan, session, buuid, bcast); ftdmchan 283 mod_freetdm/mod_freetdm.c start_hold(ftdmchan, session, buuid, bcast); ftdmchan 300 mod_freetdm/mod_freetdm.c static switch_status_t tech_init(private_t *tech_pvt, switch_core_session_t *session, ftdm_channel_t *ftdmchan) ftdmchan 306 mod_freetdm/mod_freetdm.c tech_pvt->ftdmchan = ftdmchan; ftdmchan 319 mod_freetdm/mod_freetdm.c if (FTDM_SUCCESS != ftdm_channel_command(ftdmchan, FTDM_COMMAND_GET_INTERVAL, &interval)) { ftdmchan 324 mod_freetdm/mod_freetdm.c if (FTDM_SUCCESS != ftdm_channel_command(ftdmchan, FTDM_COMMAND_GET_CODEC, &codec)) { ftdmchan 411 mod_freetdm/mod_freetdm.c ftdm_channel_init(tech_pvt->ftdmchan); ftdmchan 429 mod_freetdm/mod_freetdm.c switch_assert(tech_pvt->ftdmchan != NULL); ftdmchan 434 mod_freetdm/mod_freetdm.c ftdm_channel_call_indicate(tech_pvt->ftdmchan, FTDM_CHANNEL_INDICATE_PROCEED); ftdmchan 488 mod_freetdm/mod_freetdm.c if (!tech_pvt->ftdmchan) { ftdmchan 492 mod_freetdm/mod_freetdm.c ftdm_channel_clear_token(tech_pvt->ftdmchan, switch_core_session_get_uuid(session)); ftdmchan 494 mod_freetdm/mod_freetdm.c chantype = ftdm_channel_get_type(tech_pvt->ftdmchan); ftdmchan 500 mod_freetdm/mod_freetdm.c ftdm_channel_call_hangup(tech_pvt->ftdmchan); ftdmchan 505 mod_freetdm/mod_freetdm.c if (!ftdm_channel_call_check_busy(tech_pvt->ftdmchan) && !ftdm_channel_call_check_done(tech_pvt->ftdmchan)) { ftdmchan 506 mod_freetdm/mod_freetdm.c tokencnt = ftdm_channel_get_token_count(tech_pvt->ftdmchan); ftdmchan 508 mod_freetdm/mod_freetdm.c cycle_foreground(tech_pvt->ftdmchan, 0, NULL); ftdmchan 510 mod_freetdm/mod_freetdm.c ftdm_channel_call_hangup(tech_pvt->ftdmchan); ftdmchan 521 mod_freetdm/mod_freetdm.c ftdm_channel_call_hangup_with_cause(tech_pvt->ftdmchan, hcause); ftdmchan 599 mod_freetdm/mod_freetdm.c ftdm_channel_command(tech_pvt->ftdmchan, FTDM_COMMAND_SEND_DTMF, tmp); ftdmchan 631 mod_freetdm/mod_freetdm.c chunk = ftdm_channel_get_io_interval(tech_pvt->ftdmchan) * 2; ftdmchan 646 mod_freetdm/mod_freetdm.c switch_yield(ftdm_channel_get_io_interval(tech_pvt->ftdmchan) * 1000); ftdmchan 647 mod_freetdm/mod_freetdm.c tech_pvt->cng_frame.datalen = ftdm_channel_get_io_packet_len(tech_pvt->ftdmchan); ftdmchan 651 mod_freetdm/mod_freetdm.c if (ftdm_channel_get_codec(tech_pvt->ftdmchan) == FTDM_CODEC_SLIN) { ftdmchan 663 mod_freetdm/mod_freetdm.c status = ftdm_channel_wait(tech_pvt->ftdmchan, &wflags, chunk); ftdmchan 686 mod_freetdm/mod_freetdm.c if (ftdm_channel_read(tech_pvt->ftdmchan, tech_pvt->read_frame.data, &len) != FTDM_SUCCESS) { ftdmchan 695 mod_freetdm/mod_freetdm.c if (ftdm_channel_get_codec(tech_pvt->ftdmchan) == FTDM_CODEC_SLIN) { ftdmchan 699 mod_freetdm/mod_freetdm.c while (ftdm_channel_dequeue_dtmf(tech_pvt->ftdmchan, dtmf, sizeof(dtmf))) { ftdmchan 734 mod_freetdm/mod_freetdm.c if (!tech_pvt->ftdmchan) { ftdmchan 761 mod_freetdm/mod_freetdm.c status = ftdm_channel_wait(tech_pvt->ftdmchan, &wflags, ftdm_channel_get_io_interval(tech_pvt->ftdmchan) * 10); ftdmchan 769 mod_freetdm/mod_freetdm.c if (ftdm_channel_write(tech_pvt->ftdmchan, frame->data, frame->buflen, &len) != FTDM_SUCCESS) { ftdmchan 804 mod_freetdm/mod_freetdm.c phy_id = ftdm_channel_get_ph_id(tech_pvt->ftdmchan); ftdmchan 814 mod_freetdm/mod_freetdm.c ftdm_channel_call_indicate(tech_pvt->ftdmchan, FTDM_CHANNEL_INDICATE_PROGRESS); ftdmchan 819 mod_freetdm/mod_freetdm.c ftdm_channel_call_indicate(tech_pvt->ftdmchan, FTDM_CHANNEL_INDICATE_PROGRESS_MEDIA); ftdmchan 824 mod_freetdm/mod_freetdm.c ftdm_channel_call_answer(tech_pvt->ftdmchan); ftdmchan 850 mod_freetdm/mod_freetdm.c if (ftdm_channel_call_check_hangup(tech_pvt->ftdmchan)) { ftdmchan 861 mod_freetdm/mod_freetdm.c ftdm_channel_call_indicate(tech_pvt->ftdmchan, FTDM_CHANNEL_INDICATE_RINGING); ftdmchan 866 mod_freetdm/mod_freetdm.c ftdm_channel_call_indicate(tech_pvt->ftdmchan, FTDM_CHANNEL_INDICATE_PROGRESS_MEDIA); ftdmchan 871 mod_freetdm/mod_freetdm.c ftdm_channel_call_answer(tech_pvt->ftdmchan); ftdmchan 904 mod_freetdm/mod_freetdm.c ftdm_channel_call_answer(tech_pvt->ftdmchan); ftdmchan 936 mod_freetdm/mod_freetdm.c ftdm_channel_call_answer(tech_pvt->ftdmchan); ftdmchan 944 mod_freetdm/mod_freetdm.c ftdm_channel_call_indicate(tech_pvt->ftdmchan, FTDM_CHANNEL_INDICATE_RINGING); ftdmchan 961 mod_freetdm/mod_freetdm.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 973 mod_freetdm/mod_freetdm.c if (!(ftdmchan = tech_pvt->ftdmchan)) { ftdmchan 978 mod_freetdm/mod_freetdm.c if (!tech_pvt->ftdmchan) { ftdmchan 990 mod_freetdm/mod_freetdm.c ftdm_channel_command(tech_pvt->ftdmchan, FTDM_COMMAND_SET_PRE_BUFFER_SIZE, &tmp); ftdmchan 994 mod_freetdm/mod_freetdm.c ftdm_channel_command(tech_pvt->ftdmchan, FTDM_COMMAND_DISABLE_DTMF_DETECT, NULL); ftdmchan 1000 mod_freetdm/mod_freetdm.c ftdm_channel_replace_token(tech_pvt->ftdmchan, msg->string_array_arg[0], msg->string_array_arg[1]); ftdmchan 1007 mod_freetdm/mod_freetdm.c switch (ftdm_channel_get_type(tech_pvt->ftdmchan)) { ftdmchan 3425 mod_freetdm/mod_freetdm.c ftdm_channel_t *ftdmchan; ftdmchan 3433 mod_freetdm/mod_freetdm.c ftdmchan = ftdm_span_get_channel(span, chan_id); ftdmchan 3436 mod_freetdm/mod_freetdm.c phspan_id = ftdm_channel_get_ph_span_id(ftdmchan); ftdmchan 3437 mod_freetdm/mod_freetdm.c phchan_id = ftdm_channel_get_ph_id(ftdmchan); ftdmchan 3438 mod_freetdm/mod_freetdm.c chan_type = ftdm_chan_type2str(ftdm_channel_get_type(ftdmchan)); ftdmchan 3439 mod_freetdm/mod_freetdm.c state = ftdm_channel_get_state_str(ftdmchan); ftdmchan 3440 mod_freetdm/mod_freetdm.c last_state = ftdm_channel_get_last_state_str(ftdmchan); ftdmchan 3441 mod_freetdm/mod_freetdm.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GET_RX_GAIN, &rxgain); ftdmchan 3442 mod_freetdm/mod_freetdm.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GET_TX_GAIN, &txgain); ftdmchan 3443 mod_freetdm/mod_freetdm.c caller_data = ftdm_channel_get_caller_data(ftdmchan); ftdmchan 3444 mod_freetdm/mod_freetdm.c ftdm_channel_get_sig_status(ftdmchan, &sigstatus); ftdmchan 3445 mod_freetdm/mod_freetdm.c ftdm_channel_get_alarms(ftdmchan, &alarmflag); ftdmchan 3447 mod_freetdm/mod_freetdm.c uuid = ftdm_channel_get_uuid(ftdmchan, 0); ftdmchan 3509 mod_freetdm/mod_freetdm.c ftdm_channel_t *ftdmchan; ftdmchan 3517 mod_freetdm/mod_freetdm.c ftdmchan = ftdm_span_get_channel(span, chan_id); ftdmchan 3520 mod_freetdm/mod_freetdm.c phspan_id = ftdm_channel_get_ph_span_id(ftdmchan); ftdmchan 3521 mod_freetdm/mod_freetdm.c phchan_id = ftdm_channel_get_ph_id(ftdmchan); ftdmchan 3522 mod_freetdm/mod_freetdm.c chan_type = ftdm_chan_type2str(ftdm_channel_get_type(ftdmchan)); ftdmchan 3523 mod_freetdm/mod_freetdm.c state = ftdm_channel_get_state_str(ftdmchan); ftdmchan 3524 mod_freetdm/mod_freetdm.c last_state = ftdm_channel_get_last_state_str(ftdmchan); ftdmchan 3525 mod_freetdm/mod_freetdm.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GET_RX_GAIN, &rxgain); ftdmchan 3526 mod_freetdm/mod_freetdm.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GET_TX_GAIN, &txgain); ftdmchan 3527 mod_freetdm/mod_freetdm.c caller_data = ftdm_channel_get_caller_data(ftdmchan); ftdmchan 3528 mod_freetdm/mod_freetdm.c ftdm_channel_get_sig_status(ftdmchan, &sigstatus); ftdmchan 3529 mod_freetdm/mod_freetdm.c ftdm_channel_get_alarms(ftdmchan, &alarmflag); ftdmchan 4117 mod_freetdm/mod_freetdm.c ftdm_channel_command(tech_pvt->ftdmchan, FTDM_COMMAND_ENABLE_DTMF_DETECT, NULL); ftdmchan 4118 mod_freetdm/mod_freetdm.c ftdm_log(FTDM_LOG_INFO, "DTMF detection enabled in channel %d:%d\n", ftdm_channel_get_id(tech_pvt->ftdmchan), ftdm_channel_get_span_id(tech_pvt->ftdmchan)); ftdmchan 4136 mod_freetdm/mod_freetdm.c ftdm_channel_command(tech_pvt->ftdmchan, FTDM_COMMAND_DISABLE_DTMF_DETECT, NULL); ftdmchan 4137 mod_freetdm/mod_freetdm.c ftdm_log(FTDM_LOG_INFO, "DTMF detection Disabled in channel %d:%d\n", ftdm_channel_get_id(tech_pvt->ftdmchan), ftdm_channel_get_span_id(tech_pvt->ftdmchan)); ftdmchan 4157 mod_freetdm/mod_freetdm.c ftdm_channel_command(tech_pvt->ftdmchan, FTDM_COMMAND_DISABLE_ECHOCANCEL, &x); ftdmchan 4158 mod_freetdm/mod_freetdm.c ftdm_channel_command(tech_pvt->ftdmchan, FTDM_COMMAND_DISABLE_ECHOTRAIN, &x); ftdmchan 219 sample/boost/ftdmstart.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 234 sample/boost/ftdmstart.c status = ftdm_channel_open_by_span(ftdm_span_get_id(span), FTDM_TOP_DOWN, &caller_data, &ftdmchan); ftdmchan 240 sample/boost/ftdmstart.c g_outgoing_channel = ftdmchan; ftdmchan 243 sample/boost/ftdmstart.c ftdm_channel_set_caller_data(ftdmchan, &caller_data); ftdmchan 245 sample/boost/ftdmstart.c status = ftdm_channel_call_place(ftdmchan); ftdmchan 252 sample/boost/ftdmstart.c ftdm_channel_init(ftdmchan); ftdmchan 68 src/ftdm_io.c static ftdm_status_t ftdm_channel_clear_vars(ftdm_channel_t *ftdmchan); ftdmchan 69 src/ftdm_io.c static ftdm_status_t ftdm_channel_done(ftdm_channel_t *ftdmchan); ftdmchan 191 src/ftdm_io.c static void close_dtmf_debug_file(ftdm_channel_t *ftdmchan) ftdmchan 193 src/ftdm_io.c if (ftdmchan->dtmfdbg.file) { ftdmchan 194 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "closing debug dtmf file\n"); ftdmchan 195 src/ftdm_io.c fclose(ftdmchan->dtmfdbg.file); ftdmchan 196 src/ftdm_io.c ftdmchan->dtmfdbg.file = NULL; ftdmchan 200 src/ftdm_io.c static ftdm_status_t disable_dtmf_debug(ftdm_channel_t *ftdmchan) ftdmchan 202 src/ftdm_io.c if (!ftdmchan->dtmfdbg.enabled) { ftdmchan 206 src/ftdm_io.c if (!ftdmchan->rxdump.buffer) { ftdmchan 207 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "DTMF debug enabled but no rx dump?\n"); ftdmchan 211 src/ftdm_io.c close_dtmf_debug_file(ftdmchan); ftdmchan 212 src/ftdm_io.c stop_chan_io_dump(&ftdmchan->rxdump); ftdmchan 213 src/ftdm_io.c ftdmchan->dtmfdbg.enabled = 0; ftdmchan 506 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_set_caller_data(ftdm_channel_t *ftdmchan, ftdm_caller_data_t *caller_data) ftdmchan 509 src/ftdm_io.c if (!ftdmchan) { ftdmchan 513 src/ftdm_io.c if ((err = ftdm_set_caller_data(ftdmchan->span, caller_data)) != FTDM_SUCCESS) { ftdmchan 516 src/ftdm_io.c ftdmchan->caller_data = *caller_data; ftdmchan 582 src/ftdm_io.c static ftdm_status_t ftdm_channel_destroy(ftdm_channel_t *ftdmchan) ftdmchan 585 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_CONFIGURED)) { ftdmchan 587 src/ftdm_io.c while (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INTHREAD)) { ftdmchan 588 src/ftdm_io.c ftdm_log(FTDM_LOG_INFO, "Waiting for thread to exit on channel %u:%u\n", ftdmchan->span_id, ftdmchan->chan_id); ftdmchan 592 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->pre_buffer_mutex); ftdmchan 593 src/ftdm_io.c ftdm_buffer_destroy(&ftdmchan->pre_buffer); ftdmchan 594 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->pre_buffer_mutex); ftdmchan 596 src/ftdm_io.c ftdm_buffer_destroy(&ftdmchan->digit_buffer); ftdmchan 597 src/ftdm_io.c ftdm_buffer_destroy(&ftdmchan->gen_dtmf_buffer); ftdmchan 598 src/ftdm_io.c ftdm_buffer_destroy(&ftdmchan->dtmf_buffer); ftdmchan 599 src/ftdm_io.c ftdm_buffer_destroy(&ftdmchan->fsk_buffer); ftdmchan 600 src/ftdm_io.c ftdmchan->pre_buffer_size = 0; ftdmchan 602 src/ftdm_io.c ftdm_safe_free(ftdmchan->dtmf_hangup_buf); ftdmchan 604 src/ftdm_io.c if (ftdmchan->tone_session.buffer) { ftdmchan 605 src/ftdm_io.c teletone_destroy_session(&ftdmchan->tone_session); ftdmchan 606 src/ftdm_io.c memset(&ftdmchan->tone_session, 0, sizeof(ftdmchan->tone_session)); ftdmchan 610 src/ftdm_io.c if (ftdmchan->span->fio->channel_destroy) { ftdmchan 611 src/ftdm_io.c ftdm_log(FTDM_LOG_INFO, "Closing channel %s:%u:%u fd:%d\n", ftdmchan->span->type, ftdmchan->span_id, ftdmchan->chan_id, ftdmchan->sockfd); ftdmchan 612 src/ftdm_io.c if (ftdmchan->span->fio->channel_destroy(ftdmchan) == FTDM_SUCCESS) { ftdmchan 613 src/ftdm_io.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_CONFIGURED); ftdmchan 615 src/ftdm_io.c ftdm_log(FTDM_LOG_ERROR, "Error Closing channel %u:%u fd:%d\n", ftdmchan->span_id, ftdmchan->chan_id, ftdmchan->sockfd); ftdmchan 619 src/ftdm_io.c ftdm_mutex_destroy(&ftdmchan->mutex); ftdmchan 620 src/ftdm_io.c ftdm_mutex_destroy(&ftdmchan->pre_buffer_mutex); ftdmchan 621 src/ftdm_io.c if (ftdmchan->state_completed_interrupt) { ftdmchan 622 src/ftdm_io.c ftdm_interrupt_destroy(&ftdmchan->state_completed_interrupt); ftdmchan 681 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_get_alarms(ftdm_channel_t *ftdmchan, ftdm_alarm_flag_t *alarmbits) ftdmchan 689 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 691 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_CONFIGURED)) { ftdmchan 692 src/ftdm_io.c if (ftdmchan->span->fio->get_alarms) { ftdmchan 693 src/ftdm_io.c if ((status = ftdmchan->span->fio->get_alarms(ftdmchan)) == FTDM_SUCCESS) { ftdmchan 694 src/ftdm_io.c *ftdmchan->last_error = '\0'; ftdmchan 695 src/ftdm_io.c *alarmbits = ftdmchan->alarm_flags; ftdmchan 696 src/ftdm_io.c if (ftdm_test_alarm_flag(ftdmchan, FTDM_ALARM_RED)) { ftdmchan 697 src/ftdm_io.c snprintf(ftdmchan->last_error + strlen(ftdmchan->last_error), sizeof(ftdmchan->last_error) - strlen(ftdmchan->last_error), "RED/"); ftdmchan 699 src/ftdm_io.c if (ftdm_test_alarm_flag(ftdmchan, FTDM_ALARM_YELLOW)) { ftdmchan 700 src/ftdm_io.c snprintf(ftdmchan->last_error + strlen(ftdmchan->last_error), sizeof(ftdmchan->last_error) - strlen(ftdmchan->last_error), "YELLOW/"); ftdmchan 702 src/ftdm_io.c if (ftdm_test_alarm_flag(ftdmchan, FTDM_ALARM_RAI)) { ftdmchan 703 src/ftdm_io.c snprintf(ftdmchan->last_error + strlen(ftdmchan->last_error), sizeof(ftdmchan->last_error) - strlen(ftdmchan->last_error), "RAI/"); ftdmchan 705 src/ftdm_io.c if (ftdm_test_alarm_flag(ftdmchan, FTDM_ALARM_BLUE)) { ftdmchan 706 src/ftdm_io.c snprintf(ftdmchan->last_error + strlen(ftdmchan->last_error), sizeof(ftdmchan->last_error) - strlen(ftdmchan->last_error), "BLUE/"); ftdmchan 708 src/ftdm_io.c if (ftdm_test_alarm_flag(ftdmchan, FTDM_ALARM_AIS)) { ftdmchan 709 src/ftdm_io.c snprintf(ftdmchan->last_error + strlen(ftdmchan->last_error), sizeof(ftdmchan->last_error) - strlen(ftdmchan->last_error), "AIS/"); ftdmchan 711 src/ftdm_io.c if (ftdm_test_alarm_flag(ftdmchan, FTDM_ALARM_GENERAL)) { ftdmchan 712 src/ftdm_io.c snprintf(ftdmchan->last_error + strlen(ftdmchan->last_error), sizeof(ftdmchan->last_error) - strlen(ftdmchan->last_error), "GENERAL"); ftdmchan 714 src/ftdm_io.c *(ftdmchan->last_error + strlen(ftdmchan->last_error) - 1) = '\0'; ftdmchan 722 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 1184 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_read_event(ftdm_channel_t *ftdmchan, ftdm_event_t **event) ftdmchan 1187 src/ftdm_io.c ftdm_span_t *span = ftdmchan->span; ftdmchan 1190 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 1198 src/ftdm_io.c status = span->fio->channel_next_event(ftdmchan, event); ftdmchan 1205 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "failed to handle event %d\n", **event); ftdmchan 1209 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 1215 src/ftdm_io.c ftdm_channel_t *ftdmchan = (ftdm_channel_t *) user_data; ftdmchan 1216 src/ftdm_io.c ftdm_buffer_write(ftdmchan->fsk_buffer, buf, buflen * 2); ftdmchan 1220 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_send_fsk_data(ftdm_channel_t *ftdmchan, ftdm_fsk_data_state_t *fsk_data, float db_level) ftdmchan 1224 src/ftdm_io.c if (!ftdmchan->fsk_buffer) { ftdmchan 1225 src/ftdm_io.c ftdm_buffer_create(&ftdmchan->fsk_buffer, 128, 128, 0); ftdmchan 1227 src/ftdm_io.c ftdm_buffer_zero(ftdmchan->fsk_buffer); ftdmchan 1230 src/ftdm_io.c if (ftdmchan->token_count > 1) { ftdmchan 1231 src/ftdm_io.c ftdm_fsk_modulator_init(&fsk_trans, FSK_BELL202, ftdmchan->rate, fsk_data, db_level, 80, 5, 0, ftdmchan_fsk_write_sample, ftdmchan); ftdmchan 1234 src/ftdm_io.c ftdm_fsk_modulator_init(&fsk_trans, FSK_BELL202, ftdmchan->rate, fsk_data, db_level, 180, 5, 300, ftdmchan_fsk_write_sample, ftdmchan); ftdmchan 1236 src/ftdm_io.c ftdmchan->buffer_delay = 3500 / ftdmchan->effective_interval; ftdmchan 1242 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_clear_token(ftdm_channel_t *ftdmchan, const char *token) ftdmchan 1246 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1248 src/ftdm_io.c memset(ftdmchan->tokens, 0, sizeof(ftdmchan->tokens)); ftdmchan 1249 src/ftdm_io.c ftdmchan->token_count = 0; ftdmchan 1252 src/ftdm_io.c int32_t i, count = ftdmchan->token_count; ftdmchan 1253 src/ftdm_io.c memcpy(tokens, ftdmchan->tokens, sizeof(tokens)); ftdmchan 1254 src/ftdm_io.c memset(ftdmchan->tokens, 0, sizeof(ftdmchan->tokens)); ftdmchan 1255 src/ftdm_io.c ftdmchan->token_count = 0; ftdmchan 1259 src/ftdm_io.c ftdm_copy_string(ftdmchan->tokens[ftdmchan->token_count], tokens[i], sizeof(ftdmchan->tokens[ftdmchan->token_count])); ftdmchan 1260 src/ftdm_io.c ftdmchan->token_count++; ftdmchan 1266 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1271 src/ftdm_io.c FT_DECLARE(void) ftdm_channel_rotate_tokens(ftdm_channel_t *ftdmchan) ftdmchan 1273 src/ftdm_io.c if (ftdmchan->token_count) { ftdmchan 1274 src/ftdm_io.c memmove(ftdmchan->tokens[1], ftdmchan->tokens[0], ftdmchan->token_count * FTDM_TOKEN_STRLEN); ftdmchan 1275 src/ftdm_io.c ftdm_copy_string(ftdmchan->tokens[0], ftdmchan->tokens[ftdmchan->token_count], FTDM_TOKEN_STRLEN); ftdmchan 1276 src/ftdm_io.c *ftdmchan->tokens[ftdmchan->token_count] = '\0'; ftdmchan 1280 src/ftdm_io.c FT_DECLARE(void) ftdm_channel_replace_token(ftdm_channel_t *ftdmchan, const char *old_token, const char *new_token) ftdmchan 1284 src/ftdm_io.c if (ftdmchan->token_count) { ftdmchan 1285 src/ftdm_io.c for(i = 0; i < ftdmchan->token_count; i++) { ftdmchan 1286 src/ftdm_io.c if (!strcmp(ftdmchan->tokens[i], old_token)) { ftdmchan 1287 src/ftdm_io.c ftdm_copy_string(ftdmchan->tokens[i], new_token, FTDM_TOKEN_STRLEN); ftdmchan 1294 src/ftdm_io.c FT_DECLARE(void) ftdm_channel_set_private(ftdm_channel_t *ftdmchan, void *pvt) ftdmchan 1296 src/ftdm_io.c ftdmchan->user_private = pvt; ftdmchan 1299 src/ftdm_io.c FT_DECLARE(void *) ftdm_channel_get_private(const ftdm_channel_t *ftdmchan) ftdmchan 1301 src/ftdm_io.c return ftdmchan->user_private; ftdmchan 1304 src/ftdm_io.c FT_DECLARE(uint32_t) ftdm_channel_get_token_count(const ftdm_channel_t *ftdmchan) ftdmchan 1307 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1308 src/ftdm_io.c count = ftdmchan->token_count; ftdmchan 1309 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1313 src/ftdm_io.c FT_DECLARE(uint32_t) ftdm_channel_get_io_interval(const ftdm_channel_t *ftdmchan) ftdmchan 1316 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1317 src/ftdm_io.c count = ftdmchan->effective_interval; ftdmchan 1318 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1322 src/ftdm_io.c FT_DECLARE(uint32_t) ftdm_channel_get_io_packet_len(const ftdm_channel_t *ftdmchan) ftdmchan 1325 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1326 src/ftdm_io.c count = ftdmchan->packet_len; ftdmchan 1327 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1331 src/ftdm_io.c FT_DECLARE(uint32_t) ftdm_channel_get_type(const ftdm_channel_t *ftdmchan) ftdmchan 1333 src/ftdm_io.c return ftdmchan->type; ftdmchan 1336 src/ftdm_io.c FT_DECLARE(ftdm_codec_t) ftdm_channel_get_codec(const ftdm_channel_t *ftdmchan) ftdmchan 1338 src/ftdm_io.c return ftdmchan->effective_codec; ftdmchan 1341 src/ftdm_io.c FT_DECLARE(const char *) ftdm_channel_get_token(const ftdm_channel_t *ftdmchan, uint32_t tokenid) ftdmchan 1344 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1346 src/ftdm_io.c if (ftdmchan->token_count <= tokenid) { ftdmchan 1347 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1351 src/ftdm_io.c token = ftdmchan->tokens[tokenid]; ftdmchan 1352 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1356 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_add_token(ftdm_channel_t *ftdmchan, char *token, int end) ftdmchan 1360 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1361 src/ftdm_io.c if (ftdmchan->token_count < FTDM_MAX_TOKENS) { ftdmchan 1363 src/ftdm_io.c ftdm_copy_string(ftdmchan->tokens[ftdmchan->token_count++], token, FTDM_TOKEN_STRLEN); ftdmchan 1365 src/ftdm_io.c memmove(ftdmchan->tokens[1], ftdmchan->tokens[0], ftdmchan->token_count * FTDM_TOKEN_STRLEN); ftdmchan 1366 src/ftdm_io.c ftdm_copy_string(ftdmchan->tokens[0], token, FTDM_TOKEN_STRLEN); ftdmchan 1367 src/ftdm_io.c ftdmchan->token_count++; ftdmchan 1371 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1424 src/ftdm_io.c static __inline__ int request_voice_channel(ftdm_channel_t *check, ftdm_channel_t **ftdmchan, ftdmchan 1443 src/ftdm_io.c direction, caller_data, ftdmchan); ftdmchan 1450 src/ftdm_io.c *ftdmchan = check; ftdmchan 1527 src/ftdm_io.c FT_DECLARE(int) ftdm_channel_get_availability(ftdm_channel_t *ftdmchan) ftdmchan 1530 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 1531 src/ftdm_io.c if (ftdm_test_flag(ftdmchan->span, FTDM_SPAN_USE_AV_RATE)) { ftdmchan 1532 src/ftdm_io.c availability = ftdmchan->availability_rate; ftdmchan 1534 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 1538 src/ftdm_io.c static ftdm_status_t _ftdm_channel_open_by_group(uint32_t group_id, ftdm_direction_t direction, ftdm_caller_data_t *caller_data, ftdm_channel_t **ftdmchan) ftdmchan 1554 src/ftdm_io.c *ftdmchan = NULL; ftdmchan 1562 src/ftdm_io.c *ftdmchan = NULL; ftdmchan 1583 src/ftdm_io.c if (request_voice_channel(check, ftdmchan, caller_data, direction)) { ftdmchan 1612 src/ftdm_io.c status = get_best_rated(ftdmchan, best_rated); ftdmchan 1619 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_open_by_group(uint32_t group_id, ftdm_direction_t direction, ftdm_caller_data_t *caller_data, ftdm_channel_t **ftdmchan) ftdmchan 1622 src/ftdm_io.c status = _ftdm_channel_open_by_group(group_id, direction, caller_data, ftdmchan); ftdmchan 1624 src/ftdm_io.c ftdm_channel_t *fchan = *ftdmchan; ftdmchan 1652 src/ftdm_io.c static ftdm_status_t _ftdm_channel_open_by_span(uint32_t span_id, ftdm_direction_t direction, ftdm_caller_data_t *caller_data, ftdm_channel_t **ftdmchan) ftdmchan 1662 src/ftdm_io.c *ftdmchan = NULL; ftdmchan 1685 src/ftdm_io.c return span->channel_request(span, 0, direction, caller_data, ftdmchan); ftdmchan 1719 src/ftdm_io.c if (request_voice_channel(check, ftdmchan, caller_data, direction)) { ftdmchan 1742 src/ftdm_io.c status = get_best_rated(ftdmchan, best_rated); ftdmchan 1750 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_open_by_span(uint32_t span_id, ftdm_direction_t direction, ftdm_caller_data_t *caller_data, ftdm_channel_t **ftdmchan) ftdmchan 1753 src/ftdm_io.c status = _ftdm_channel_open_by_span(span_id, direction, caller_data, ftdmchan); ftdmchan 1755 src/ftdm_io.c ftdm_channel_t *fchan = *ftdmchan; ftdmchan 1761 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_open_chan(ftdm_channel_t *ftdmchan) ftdmchan 1765 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "invalid ftdmchan pointer\n"); ftdmchan 1767 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1769 src/ftdm_io.c if (FTDM_IS_VOICE_CHANNEL(ftdmchan)) { ftdmchan 1770 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_SUSPENDED)) { ftdmchan 1771 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", "Channel is suspended\n"); ftdmchan 1772 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Cannot open channel when is suspended\n"); ftdmchan 1776 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_IN_ALARM) && !ftdm_test_flag(ftdmchan->span, FTDM_SPAN_PWR_SAVING)) { ftdmchan 1777 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", "Channel is alarmed\n"); ftdmchan 1778 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Cannot open channel when is alarmed\n"); ftdmchan 1784 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", "CPU usage alarm is on - refusing to open channel\n"); ftdmchan 1785 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "CPU usage alarm is on - refusing to open channel\n"); ftdmchan 1786 src/ftdm_io.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_SWITCH_CONGESTION; ftdmchan 1791 src/ftdm_io.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_READY)) { ftdmchan 1792 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Channel is not ready"); ftdmchan 1793 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Cannot open channel when is not ready\n"); ftdmchan 1797 src/ftdm_io.c status = ftdmchan->fio->open(ftdmchan); ftdmchan 1799 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_OPEN | FTDM_CHANNEL_INUSE); ftdmchan 1801 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "IO open failed: %d\n", status); ftdmchan 1806 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1811 src/ftdm_io.c static ftdm_status_t _ftdm_channel_open(uint32_t span_id, uint32_t chan_id, ftdm_channel_t **ftdmchan) ftdmchan 1819 src/ftdm_io.c *ftdmchan = NULL; ftdmchan 1891 src/ftdm_io.c *ftdmchan = check; ftdmchan 1909 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_open(uint32_t span_id, uint32_t chan_id, ftdm_channel_t **ftdmchan) ftdmchan 1912 src/ftdm_io.c status = _ftdm_channel_open(span_id, chan_id, ftdmchan); ftdmchan 1914 src/ftdm_io.c ftdm_channel_t *fchan = *ftdmchan; ftdmchan 1920 src/ftdm_io.c FT_DECLARE(uint32_t) ftdm_channel_get_id(const ftdm_channel_t *ftdmchan) ftdmchan 1922 src/ftdm_io.c return ftdmchan->chan_id; ftdmchan 1925 src/ftdm_io.c FT_DECLARE(uint32_t) ftdm_channel_get_ph_id(const ftdm_channel_t *ftdmchan) ftdmchan 1927 src/ftdm_io.c return ftdmchan->physical_chan_id; ftdmchan 1930 src/ftdm_io.c FT_DECLARE(uint32_t) ftdm_channel_get_span_id(const ftdm_channel_t *ftdmchan) ftdmchan 1932 src/ftdm_io.c return ftdmchan->span_id; ftdmchan 1935 src/ftdm_io.c FT_DECLARE(ftdm_span_t *) ftdm_channel_get_span(const ftdm_channel_t *ftdmchan) ftdmchan 1937 src/ftdm_io.c return ftdmchan->span; ftdmchan 1940 src/ftdm_io.c FT_DECLARE(const char *) ftdm_channel_get_span_name(const ftdm_channel_t *ftdmchan) ftdmchan 1942 src/ftdm_io.c return ftdmchan->span->name; ftdmchan 1992 src/ftdm_io.c FT_DECLARE(const char *) ftdm_channel_get_name(const ftdm_channel_t *ftdmchan) ftdmchan 1994 src/ftdm_io.c return ftdmchan->chan_name; ftdmchan 1997 src/ftdm_io.c FT_DECLARE(const char *) ftdm_channel_get_number(const ftdm_channel_t *ftdmchan) ftdmchan 1999 src/ftdm_io.c return ftdmchan->chan_number; ftdmchan 2002 src/ftdm_io.c FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_hold(const ftdm_channel_t *ftdmchan) ftdmchan 2005 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2006 src/ftdm_io.c condition = ftdm_test_flag(ftdmchan, FTDM_CHANNEL_HOLD) ? FTDM_TRUE : FTDM_FALSE; ftdmchan 2007 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2011 src/ftdm_io.c FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_answered(const ftdm_channel_t *ftdmchan) ftdmchan 2015 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2016 src/ftdm_io.c condition = (ftdmchan->state == FTDM_CHANNEL_STATE_UP) ? FTDM_TRUE : FTDM_FALSE; ftdmchan 2017 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2022 src/ftdm_io.c FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_busy(const ftdm_channel_t *ftdmchan) ftdmchan 2026 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2027 src/ftdm_io.c condition = (ftdmchan->state == FTDM_CHANNEL_STATE_BUSY) ? FTDM_TRUE : FTDM_FALSE; ftdmchan 2028 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2033 src/ftdm_io.c FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_hangup(const ftdm_channel_t *ftdmchan) ftdmchan 2037 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2038 src/ftdm_io.c condition = (ftdmchan->state == FTDM_CHANNEL_STATE_HANGUP || ftdmchan->state == FTDM_CHANNEL_STATE_TERMINATING) ftdmchan 2040 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2045 src/ftdm_io.c FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_done(const ftdm_channel_t *ftdmchan) ftdmchan 2049 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2050 src/ftdm_io.c condition = (ftdmchan->state == FTDM_CHANNEL_STATE_DOWN) ? FTDM_TRUE : FTDM_FALSE; ftdmchan 2051 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2056 src/ftdm_io.c FT_DECLARE(ftdm_status_t) _ftdm_channel_call_hold(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan) ftdmchan 2059 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2061 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_HOLD); ftdmchan 2062 src/ftdm_io.c status = ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_DIALTONE, 0); ftdmchan 2063 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2068 src/ftdm_io.c FT_DECLARE(ftdm_status_t) _ftdm_channel_call_unhold(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan) ftdmchan 2072 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2074 src/ftdm_io.c status = ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_UP, 0); ftdmchan 2076 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2101 src/ftdm_io.c static ftdm_status_t _ftdm_channel_call_answer_nl(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan) ftdmchan 2105 src/ftdm_io.c if (!ftdm_test_flag(ftdmchan->span, FTDM_SPAN_USE_SKIP_STATES)) { ftdmchan 2110 src/ftdm_io.c if (ftdmchan->state < FTDM_CHANNEL_STATE_PROGRESS) { ftdmchan 2111 src/ftdm_io.c status = ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_PROGRESS, 1); ftdmchan 2119 src/ftdm_io.c if (ftdmchan->state == FTDM_CHANNEL_STATE_TERMINATING) { ftdmchan 2120 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Ignoring answer because the call has moved to TERMINATING while we're moving to PROGRESS\n"); ftdmchan 2125 src/ftdm_io.c if (ftdmchan->state < FTDM_CHANNEL_STATE_PROGRESS_MEDIA) { ftdmchan 2126 src/ftdm_io.c status = ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA, 1); ftdmchan 2134 src/ftdm_io.c if (ftdmchan->state == FTDM_CHANNEL_STATE_TERMINATING) { ftdmchan 2135 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Ignoring answer because the call has moved to TERMINATING while we're moving to UP\n"); ftdmchan 2141 src/ftdm_io.c status = ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_UP, 1); ftdmchan 2152 src/ftdm_io.c FT_DECLARE(ftdm_status_t) _ftdm_channel_call_answer(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan) ftdmchan 2158 src/ftdm_io.c status = _ftdm_channel_call_indicate(file, func, line, ftdmchan, FTDM_CHANNEL_INDICATE_ANSWER); ftdmchan 2199 src/ftdm_io.c FT_DECLARE(ftdm_status_t) _ftdm_channel_call_hangup_with_cause(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan, ftdm_call_cause_t cause) ftdmchan 2202 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2204 src/ftdm_io.c ftdmchan->caller_data.hangup_cause = cause; ftdmchan 2206 src/ftdm_io.c status = _ftdm_channel_call_hangup_nl(file, func, line, ftdmchan); ftdmchan 2208 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2212 src/ftdm_io.c FT_DECLARE(ftdm_status_t) _ftdm_channel_call_hangup(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan) ftdmchan 2216 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2218 src/ftdm_io.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_NORMAL_CLEARING; ftdmchan 2220 src/ftdm_io.c status = _ftdm_channel_call_hangup_nl(file, func, line, ftdmchan); ftdmchan 2222 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2226 src/ftdm_io.c FT_DECLARE(const char *) ftdm_channel_get_last_error(const ftdm_channel_t *ftdmchan) ftdmchan 2228 src/ftdm_io.c return ftdmchan->last_error; ftdmchan 2236 src/ftdm_io.c FT_DECLARE(ftdm_caller_data_t *) ftdm_channel_get_caller_data(ftdm_channel_t *ftdmchan) ftdmchan 2238 src/ftdm_io.c return &ftdmchan->caller_data; ftdmchan 2263 src/ftdm_io.c FT_DECLARE(uint32_t) ftdm_channel_get_ph_span_id(const ftdm_channel_t *ftdmchan) ftdmchan 2266 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2267 src/ftdm_io.c id = ftdmchan->physical_span_id; ftdmchan 2268 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2280 src/ftdm_io.c FT_DECLARE(ftdm_status_t) _ftdm_channel_call_indicate(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan, ftdm_channel_indication_t indication) ftdmchan 2284 src/ftdm_io.c ftdm_assert_return(ftdmchan, FTDM_FAIL, "Null channel\n"); ftdmchan 2286 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Indicating %s in state %s\n", ftdmchan 2287 src/ftdm_io.c ftdm_channel_indication2str(indication), ftdm_channel_state2str(ftdmchan->state)); ftdmchan 2289 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2291 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_IND_ACK_PENDING)) { ftdmchan 2292 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "Cannot indicate %s in channel with indication %s still pending in state %s\n", ftdmchan 2294 src/ftdm_io.c ftdm_channel_indication2str(ftdmchan->indication), ftdmchan 2295 src/ftdm_io.c ftdm_channel_state2str(ftdmchan->state)); ftdmchan 2300 src/ftdm_io.c ftdmchan->indication = indication; ftdmchan 2301 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_NONBLOCK)) { ftdmchan 2302 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_IND_ACK_PENDING); ftdmchan 2305 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 2306 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "Cannot indicate %s in outgoing channel in state %s\n", ftdmchan 2307 src/ftdm_io.c ftdm_channel_indication2str(indication), ftdm_channel_state2str(ftdmchan->state)); ftdmchan 2312 src/ftdm_io.c if (ftdmchan->state == FTDM_CHANNEL_STATE_TERMINATING) { ftdmchan 2313 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Ignoring indication %s because the call is in %s state\n", ftdmchan 2314 src/ftdm_io.c ftdm_channel_indication2str(indication), ftdm_channel_state2str(ftdmchan->state)); ftdmchan 2323 src/ftdm_io.c status = ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_RINGING, 1); ftdmchan 2326 src/ftdm_io.c status = ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_BUSY, 1); ftdmchan 2329 src/ftdm_io.c if (!ftdm_test_flag(ftdmchan->span, FTDM_SPAN_USE_PROCEED_STATE) || ftdmchan 2330 src/ftdm_io.c ftdmchan->state == FTDM_CHANNEL_STATE_PROCEED) { ftdmchan 2331 src/ftdm_io.c ftdm_ack_indication(ftdmchan, indication, status); ftdmchan 2334 src/ftdm_io.c status = ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_PROCEED, 1); ftdmchan 2337 src/ftdm_io.c status = ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_PROGRESS, 1); ftdmchan 2340 src/ftdm_io.c if (!ftdm_test_flag(ftdmchan->span, FTDM_SPAN_USE_SKIP_STATES)) { ftdmchan 2341 src/ftdm_io.c if (ftdmchan->state < FTDM_CHANNEL_STATE_PROGRESS) { ftdmchan 2342 src/ftdm_io.c status = ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_PROGRESS, 1); ftdmchan 2349 src/ftdm_io.c if (ftdmchan->state == FTDM_CHANNEL_STATE_TERMINATING) { ftdmchan 2350 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Ignoring progress media because the call is terminating\n"); ftdmchan 2354 src/ftdm_io.c status = ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA, 1); ftdmchan 2357 src/ftdm_io.c status = _ftdm_channel_call_answer_nl(file, func, line, ftdmchan); ftdmchan 2366 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2371 src/ftdm_io.c FT_DECLARE(ftdm_status_t) _ftdm_channel_call_send_msg(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan, ftdm_sigmsg_t *sigmsg) ftdmchan 2374 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "null channel"); ftdmchan 2381 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2382 src/ftdm_io.c if (ftdmchan->span->send_msg) { ftdmchan 2383 src/ftdm_io.c status = ftdmchan->span->send_msg(ftdmchan, sigmsg); ftdmchan 2388 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2392 src/ftdm_io.c FT_DECLARE(ftdm_status_t) _ftdm_channel_reset(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan) ftdmchan 2394 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "null channel"); ftdmchan 2396 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2397 src/ftdm_io.c ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_RESET, 1); ftdmchan 2398 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2402 src/ftdm_io.c static ftdm_status_t _ftdm_channel_call_place_nl(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan) ftdmchan 2406 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "null channel"); ftdmchan 2407 src/ftdm_io.c ftdm_assert_return(ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND), FTDM_FAIL, "Call place, but outbound flag not set\n"); ftdmchan 2409 src/ftdm_io.c ftdm_set_echocancel_call_begin(ftdmchan); ftdmchan 2411 src/ftdm_io.c if (!ftdmchan->span->outgoing_call) { ftdmchan 2412 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "outgoing_call method not implemented in this span!\n"); ftdmchan 2417 src/ftdm_io.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OPEN)) { ftdmchan 2418 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "Cannot place call in channel that is not open!\n"); ftdmchan 2422 src/ftdm_io.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 2423 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Cannot place call in non outbound channel in state %s!\n", ftdm_channel_state2str(ftdmchan->state)); ftdmchan 2427 src/ftdm_io.c if (ftdmchan->state != FTDM_CHANNEL_STATE_DOWN) { ftdmchan 2428 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Cannot place call in channel in state %s!\n", ftdm_channel_state2str(ftdmchan->state)); ftdmchan 2432 src/ftdm_io.c status = ftdmchan->span->outgoing_call(ftdmchan); ftdmchan 2435 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Glare detected, you should hunt in another channel!\n"); ftdmchan 2440 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "Failed to place call!\n"); ftdmchan 2446 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_CALL_STARTED); ftdmchan 2447 src/ftdm_io.c ftdm_call_set_call_id(ftdmchan, &ftdmchan->caller_data); ftdmchan 2448 src/ftdm_io.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_NONBLOCK)) { ftdmchan 2450 src/ftdm_io.c ftdm_wait_for_flag_cleared(ftdmchan, FTDM_CHANNEL_STATE_CHANGE, 100); ftdmchan 2462 src/ftdm_io.c FT_DECLARE(ftdm_status_t) _ftdm_channel_call_place(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan) ftdmchan 2465 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2467 src/ftdm_io.c status = _ftdm_channel_call_place_nl(file, func, line, ftdmchan); ftdmchan 2469 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2521 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_set_sig_status(ftdm_channel_t *ftdmchan, ftdm_signaling_status_t sigstatus) ftdmchan 2523 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "Null channel\n"); ftdmchan 2524 src/ftdm_io.c ftdm_assert_return(ftdmchan->span != NULL, FTDM_FAIL, "Null span\n"); ftdmchan 2527 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "The user is not allowed to set the signaling status to DOWN, valid states are UP or SUSPENDED\n"); ftdmchan 2531 src/ftdm_io.c if (ftdmchan->span->set_channel_sig_status) { ftdmchan 2533 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2534 src/ftdm_io.c res = ftdmchan->span->set_channel_sig_status(ftdmchan, sigstatus); ftdmchan 2535 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2543 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_get_sig_status(ftdm_channel_t *ftdmchan, ftdm_signaling_status_t *sigstatus) ftdmchan 2545 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "Null channel\n"); ftdmchan 2546 src/ftdm_io.c ftdm_assert_return(ftdmchan->span != NULL, FTDM_FAIL, "Null span\n"); ftdmchan 2549 src/ftdm_io.c if (ftdmchan->span->get_channel_sig_status) { ftdmchan 2551 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2552 src/ftdm_io.c res = ftdmchan->span->get_channel_sig_status(ftdmchan, sigstatus); ftdmchan 2553 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2591 src/ftdm_io.c static ftdm_status_t ftdm_channel_done(ftdm_channel_t *ftdmchan) ftdmchan 2593 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "Null channel can't be done!\n"); ftdmchan 2595 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_OPEN); ftdmchan 2596 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_DTMF_DETECT); ftdmchan 2597 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_SUPRESS_DTMF); ftdmchan 2598 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_INUSE); ftdmchan 2599 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND); ftdmchan 2600 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_WINK); ftdmchan 2601 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_FLASH); ftdmchan 2602 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE); ftdmchan 2603 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_HOLD); ftdmchan 2604 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK); ftdmchan 2605 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_RINGING); ftdmchan 2606 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_PROGRESS_DETECT); ftdmchan 2607 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_CALLERID_DETECT); ftdmchan 2608 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_3WAY); ftdmchan 2609 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_PROGRESS); ftdmchan 2610 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_MEDIA); ftdmchan 2611 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_ANSWERED); ftdmchan 2612 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_USER_HANGUP); ftdmchan 2613 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->pre_buffer_mutex); ftdmchan 2614 src/ftdm_io.c ftdm_buffer_destroy(&ftdmchan->pre_buffer); ftdmchan 2615 src/ftdm_io.c ftdmchan->pre_buffer_size = 0; ftdmchan 2616 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->pre_buffer_mutex); ftdmchan 2617 src/ftdm_io.c ftdm_channel_clear_vars(ftdmchan); ftdmchan 2618 src/ftdm_io.c if (ftdmchan->hangup_timer) { ftdmchan 2619 src/ftdm_io.c ftdm_sched_cancel_timer(globals.timingsched, ftdmchan->hangup_timer); ftdmchan 2622 src/ftdm_io.c ftdmchan->init_state = FTDM_CHANNEL_STATE_DOWN; ftdmchan 2623 src/ftdm_io.c ftdmchan->state = FTDM_CHANNEL_STATE_DOWN; ftdmchan 2624 src/ftdm_io.c ftdmchan->state_status = FTDM_STATE_STATUS_COMPLETED; ftdmchan 2626 src/ftdm_io.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DISABLE_DEBUG_DTMF, NULL); ftdmchan 2627 src/ftdm_io.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DISABLE_INPUT_DUMP, NULL); ftdmchan 2628 src/ftdm_io.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DISABLE_OUTPUT_DUMP, NULL); ftdmchan 2630 src/ftdm_io.c if (FTDM_IS_VOICE_CHANNEL(ftdmchan) && ftdm_test_flag(ftdmchan, FTDM_CHANNEL_CALL_STARTED)) { ftdmchan 2633 src/ftdm_io.c sigmsg.span_id = ftdmchan->span_id; ftdmchan 2634 src/ftdm_io.c sigmsg.chan_id = ftdmchan->chan_id; ftdmchan 2635 src/ftdm_io.c sigmsg.channel = ftdmchan; ftdmchan 2637 src/ftdm_io.c ftdm_span_send_signal(ftdmchan->span, &sigmsg); ftdmchan 2638 src/ftdm_io.c ftdm_call_clear_call_id(&ftdmchan->caller_data); ftdmchan 2639 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_CALL_STARTED); ftdmchan 2642 src/ftdm_io.c if (ftdmchan->txdrops || ftdmchan->rxdrops) { ftdmchan 2643 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "channel dropped data: txdrops = %d, rxdrops = %d\n", ftdmchan 2644 src/ftdm_io.c ftdmchan->txdrops, ftdmchan->rxdrops); ftdmchan 2647 src/ftdm_io.c memset(&ftdmchan->caller_data, 0, sizeof(ftdmchan->caller_data)); ftdmchan 2649 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_HOLD); ftdmchan 2651 src/ftdm_io.c memset(ftdmchan->tokens, 0, sizeof(ftdmchan->tokens)); ftdmchan 2652 src/ftdm_io.c ftdmchan->token_count = 0; ftdmchan 2654 src/ftdm_io.c ftdm_channel_flush_dtmf(ftdmchan); ftdmchan 2656 src/ftdm_io.c if (ftdmchan->gen_dtmf_buffer) { ftdmchan 2657 src/ftdm_io.c ftdm_buffer_zero(ftdmchan->gen_dtmf_buffer); ftdmchan 2660 src/ftdm_io.c if (ftdmchan->digit_buffer) { ftdmchan 2661 src/ftdm_io.c ftdm_buffer_zero(ftdmchan->digit_buffer); ftdmchan 2664 src/ftdm_io.c if (!ftdmchan->dtmf_on) { ftdmchan 2665 src/ftdm_io.c ftdmchan->dtmf_on = FTDM_DEFAULT_DTMF_ON; ftdmchan 2668 src/ftdm_io.c if (!ftdmchan->dtmf_off) { ftdmchan 2669 src/ftdm_io.c ftdmchan->dtmf_off = FTDM_DEFAULT_DTMF_OFF; ftdmchan 2672 src/ftdm_io.c memset(ftdmchan->dtmf_hangup_buf, '\0', ftdmchan->span->dtmf_hangup_len); ftdmchan 2674 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_TRANSCODE)) { ftdmchan 2675 src/ftdm_io.c ftdmchan->effective_codec = ftdmchan->native_codec; ftdmchan 2676 src/ftdm_io.c ftdmchan->packet_len = ftdmchan->native_interval * (ftdmchan->effective_codec == FTDM_CODEC_SLIN ? 16 : 8); ftdmchan 2677 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_TRANSCODE); ftdmchan 2679 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "channel done\n"); ftdmchan 2683 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_use(ftdm_channel_t *ftdmchan) ftdmchan 2686 src/ftdm_io.c ftdm_assert(ftdmchan != NULL, "Null channel\n"); ftdmchan 2688 src/ftdm_io.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_INUSE); ftdmchan 2693 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_close(ftdm_channel_t **ftdmchan) ftdmchan 2698 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "null channel double pointer provided!\n"); ftdmchan 2699 src/ftdm_io.c ftdm_assert_return(*ftdmchan != NULL, FTDM_FAIL, "null channel pointer provided!\n"); ftdmchan 2701 src/ftdm_io.c check = *ftdmchan; ftdmchan 2702 src/ftdm_io.c *ftdmchan = NULL; ftdmchan 2712 src/ftdm_io.c *ftdmchan = NULL; ftdmchan 2721 src/ftdm_io.c static ftdm_status_t ftdmchan_activate_dtmf_buffer(ftdm_channel_t *ftdmchan) ftdmchan 2724 src/ftdm_io.c if (!ftdmchan->dtmf_buffer) { ftdmchan 2725 src/ftdm_io.c if (ftdm_buffer_create(&ftdmchan->dtmf_buffer, 1024, 3192, 0) != FTDM_SUCCESS) { ftdmchan 2727 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "buffer error"); ftdmchan 2735 src/ftdm_io.c if (!ftdmchan->tone_session.buffer) { ftdmchan 2736 src/ftdm_io.c memset(&ftdmchan->tone_session, 0, sizeof(ftdmchan->tone_session)); ftdmchan 2737 src/ftdm_io.c teletone_init_session(&ftdmchan->tone_session, 0, NULL, NULL); ftdmchan 2740 src/ftdm_io.c ftdmchan->tone_session.rate = ftdmchan->rate; ftdmchan 2741 src/ftdm_io.c ftdmchan->tone_session.duration = ftdmchan->dtmf_on * (ftdmchan->tone_session.rate / 1000); ftdmchan 2742 src/ftdm_io.c ftdmchan->tone_session.wait = ftdmchan->dtmf_off * (ftdmchan->tone_session.rate / 1000); ftdmchan 2743 src/ftdm_io.c ftdmchan->tone_session.volume = -7; ftdmchan 2753 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_command(ftdm_channel_t *ftdmchan, ftdm_command_t command, void *obj) ftdmchan 2757 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "No channel\n"); ftdmchan 2758 src/ftdm_io.c ftdm_assert_return(ftdmchan->fio != NULL, FTDM_FAIL, "No IO attached to channel\n"); ftdmchan 2760 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 2766 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_CALLERID)) { ftdmchan 2767 src/ftdm_io.c if (ftdm_fsk_demod_init(&ftdmchan->fsk, ftdmchan->rate, ftdmchan->fsk_buf, sizeof(ftdmchan->fsk_buf)) != FTDM_SUCCESS) { ftdmchan 2768 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", strerror(errno)); ftdmchan 2771 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_CALLERID_DETECT); ftdmchan 2778 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_CALLERID)) { ftdmchan 2779 src/ftdm_io.c ftdm_fsk_demod_destroy(&ftdmchan->fsk); ftdmchan 2780 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_CALLERID_DETECT); ftdmchan 2788 src/ftdm_io.c if (ftdmchan->fds[FTDM_READ_TRACE_INDEX] > 0) { ftdmchan 2789 src/ftdm_io.c close(ftdmchan->fds[FTDM_READ_TRACE_INDEX]); ftdmchan 2790 src/ftdm_io.c ftdmchan->fds[FTDM_READ_TRACE_INDEX] = -1; ftdmchan 2792 src/ftdm_io.c if ((ftdmchan->fds[FTDM_READ_TRACE_INDEX] = open(path, O_WRONLY | O_CREAT | O_TRUNC ftdmchan 2794 src/ftdm_io.c ftdm_log(FTDM_LOG_DEBUG, "Tracing channel %u:%u input to [%s]\n", ftdmchan->span_id, ftdmchan->chan_id, path); ftdmchan 2798 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", strerror(errno)); ftdmchan 2805 src/ftdm_io.c if (ftdmchan->fds[FTDM_WRITE_TRACE_INDEX] > 0) { ftdmchan 2806 src/ftdm_io.c close(ftdmchan->fds[FTDM_WRITE_TRACE_INDEX]); ftdmchan 2807 src/ftdm_io.c ftdmchan->fds[FTDM_WRITE_TRACE_INDEX] = -1; ftdmchan 2809 src/ftdm_io.c if ((ftdmchan->fds[FTDM_WRITE_TRACE_INDEX] = open(path, O_WRONLY | O_CREAT | O_TRUNC ftdmchan 2811 src/ftdm_io.c ftdm_log(FTDM_LOG_DEBUG, "Tracing channel %u:%u output to [%s]\n", ftdmchan->span_id, ftdmchan->chan_id, path); ftdmchan 2815 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", strerror(errno)); ftdmchan 2821 src/ftdm_io.c if (ftdmchan->fds[FTDM_READ_TRACE_INDEX] > 0) { ftdmchan 2822 src/ftdm_io.c close(ftdmchan->fds[FTDM_READ_TRACE_INDEX]); ftdmchan 2823 src/ftdm_io.c ftdmchan->fds[FTDM_READ_TRACE_INDEX] = -1; ftdmchan 2825 src/ftdm_io.c if (ftdmchan->fds[FTDM_WRITE_TRACE_INDEX] > 0) { ftdmchan 2826 src/ftdm_io.c close(ftdmchan->fds[FTDM_WRITE_TRACE_INDEX]); ftdmchan 2827 src/ftdm_io.c ftdmchan->fds[FTDM_WRITE_TRACE_INDEX] = -1; ftdmchan 2836 src/ftdm_io.c if (ftdmchan->dtmfdbg.enabled) { ftdmchan 2837 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "Cannot enable debug DTMF again\n"); ftdmchan 2840 src/ftdm_io.c if (ftdmchan->rxdump.buffer) { ftdmchan 2841 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "Cannot debug DTMF if Rx dumping is already enabled\n"); ftdmchan 2844 src/ftdm_io.c if (start_chan_io_dump(ftdmchan, &ftdmchan->rxdump, FTDM_IO_DUMP_DEFAULT_BUFF_SIZE) != FTDM_SUCCESS) { ftdmchan 2845 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "Failed to enable rx dump for DTMF debugging\n"); ftdmchan 2848 src/ftdm_io.c ftdmchan->dtmfdbg.enabled = 1; ftdmchan 2849 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Enabled DTMF debugging\n"); ftdmchan 2857 src/ftdm_io.c if (!ftdmchan->dtmfdbg.enabled) { ftdmchan 2858 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "DTMF debug is already disabled\n"); ftdmchan 2861 src/ftdm_io.c if (disable_dtmf_debug(ftdmchan) != FTDM_SUCCESS) { ftdmchan 2862 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "Failed to disable DTMF debug\n"); ftdmchan 2873 src/ftdm_io.c if (ftdmchan->rxdump.buffer) { ftdmchan 2874 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "Input dump is already enabled\n"); ftdmchan 2877 src/ftdm_io.c if (start_chan_io_dump(ftdmchan, &ftdmchan->rxdump, size) != FTDM_SUCCESS) { ftdmchan 2878 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Failed to enable input dump of size %"FTDM_SIZE_FMT"\n", size); ftdmchan 2881 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Enabled input dump with size %"FTDM_SIZE_FMT"\n", size); ftdmchan 2889 src/ftdm_io.c if (!ftdmchan->rxdump.buffer) { ftdmchan 2890 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "No need to disable input dump\n"); ftdmchan 2893 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Disabled input dump of size %"FTDM_SIZE_FMT"\n", ftdmchan 2894 src/ftdm_io.c ftdmchan->rxdump.size); ftdmchan 2895 src/ftdm_io.c stop_chan_io_dump(&ftdmchan->rxdump); ftdmchan 2904 src/ftdm_io.c if (ftdmchan->txdump.buffer) { ftdmchan 2905 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "Output dump is already enabled\n"); ftdmchan 2908 src/ftdm_io.c if (start_chan_io_dump(ftdmchan, &ftdmchan->txdump, size) != FTDM_SUCCESS) { ftdmchan 2909 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Failed to enable output dump of size %d\n", size); ftdmchan 2912 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Enabled output dump with size %"FTDM_SIZE_FMT"\n", size); ftdmchan 2920 src/ftdm_io.c if (!ftdmchan->txdump.buffer) { ftdmchan 2921 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "No need to disable output dump\n"); ftdmchan 2924 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Disabled output dump of size %"FTDM_SIZE_FMT"\n", ftdmchan->rxdump.size); ftdmchan 2925 src/ftdm_io.c stop_chan_io_dump(&ftdmchan->txdump); ftdmchan 2936 src/ftdm_io.c if (!ftdmchan->rxdump.buffer) { ftdmchan 2937 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "Not dumped input to file %p, input dump is not enabled\n", obj); ftdmchan 2940 src/ftdm_io.c dump_chan_io_to_file(ftdmchan, &ftdmchan->rxdump, obj); ftdmchan 2941 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Dumped input of size %d to file %p\n", ftdmchan->rxdump.size, obj); ftdmchan 2952 src/ftdm_io.c if (!ftdmchan->txdump.buffer) { ftdmchan 2953 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "Not dumped output to file %p, output dump is not enabled\n", obj); ftdmchan 2956 src/ftdm_io.c dump_chan_io_to_file(ftdmchan, &ftdmchan->txdump, obj); ftdmchan 2957 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Dumped input of size %"FTDM_SIZE_FMT" to file %p\n", ftdmchan->txdump.size, obj); ftdmchan 2964 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_INTERVAL)) { ftdmchan 2965 src/ftdm_io.c ftdmchan->effective_interval = FTDM_COMMAND_OBJ_INT; ftdmchan 2966 src/ftdm_io.c if (ftdmchan->effective_interval == ftdmchan->native_interval) { ftdmchan 2967 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_BUFFER); ftdmchan 2969 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_BUFFER); ftdmchan 2971 src/ftdm_io.c ftdmchan->packet_len = ftdmchan->native_interval * (ftdmchan->effective_codec == FTDM_CODEC_SLIN ? 16 : 8); ftdmchan 2978 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_INTERVAL)) { ftdmchan 2979 src/ftdm_io.c FTDM_COMMAND_OBJ_INT = ftdmchan->effective_interval; ftdmchan 2986 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_CODECS)) { ftdmchan 2987 src/ftdm_io.c ftdmchan->effective_codec = FTDM_COMMAND_OBJ_INT; ftdmchan 2989 src/ftdm_io.c if (ftdmchan->effective_codec == ftdmchan->native_codec) { ftdmchan 2990 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_TRANSCODE); ftdmchan 2992 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_TRANSCODE); ftdmchan 2994 src/ftdm_io.c ftdmchan->packet_len = ftdmchan->native_interval * (ftdmchan->effective_codec == FTDM_CODEC_SLIN ? 16 : 8); ftdmchan 3002 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_CODECS)) { ftdmchan 3003 src/ftdm_io.c ftdmchan->effective_codec = ftdmchan->native_codec; ftdmchan 3004 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_TRANSCODE); ftdmchan 3005 src/ftdm_io.c ftdmchan->packet_len = ftdmchan->native_interval * (ftdmchan->effective_codec == FTDM_CODEC_SLIN ? 16 : 8); ftdmchan 3013 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_CODECS)) { ftdmchan 3014 src/ftdm_io.c FTDM_COMMAND_OBJ_INT = ftdmchan->effective_codec; ftdmchan 3021 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_CODECS)) { ftdmchan 3022 src/ftdm_io.c FTDM_COMMAND_OBJ_INT = ftdmchan->native_codec; ftdmchan 3029 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_PROGRESS)) { ftdmchan 3031 src/ftdm_io.c ftdm_channel_clear_detected_tones(ftdmchan); ftdmchan 3032 src/ftdm_io.c ftdm_channel_clear_needed_tones(ftdmchan); ftdmchan 3033 src/ftdm_io.c teletone_multi_tone_init(&ftdmchan->span->tone_finder[FTDM_TONEMAP_DIAL], &ftdmchan->span->tone_detect_map[FTDM_TONEMAP_DIAL]); ftdmchan 3034 src/ftdm_io.c teletone_multi_tone_init(&ftdmchan->span->tone_finder[FTDM_TONEMAP_RING], &ftdmchan->span->tone_detect_map[FTDM_TONEMAP_RING]); ftdmchan 3035 src/ftdm_io.c teletone_multi_tone_init(&ftdmchan->span->tone_finder[FTDM_TONEMAP_BUSY], &ftdmchan->span->tone_detect_map[FTDM_TONEMAP_BUSY]); ftdmchan 3036 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_PROGRESS_DETECT); ftdmchan 3043 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_PROGRESS)) { ftdmchan 3044 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_PROGRESS_DETECT); ftdmchan 3045 src/ftdm_io.c ftdm_channel_clear_detected_tones(ftdmchan); ftdmchan 3046 src/ftdm_io.c ftdm_channel_clear_needed_tones(ftdmchan); ftdmchan 3054 src/ftdm_io.c if (FTDM_IS_VOICE_CHANNEL(ftdmchan)) { ftdmchan 3055 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_DETECT)) { ftdmchan 3056 src/ftdm_io.c teletone_dtmf_detect_init (&ftdmchan->dtmf_detect, ftdmchan->rate); ftdmchan 3057 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_DTMF_DETECT); ftdmchan 3058 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_SUPRESS_DTMF); ftdmchan 3059 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Enabled software DTMF detector\n"); ftdmchan 3067 src/ftdm_io.c if (FTDM_IS_VOICE_CHANNEL(ftdmchan)) { ftdmchan 3068 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_DETECT)) { ftdmchan 3069 src/ftdm_io.c teletone_dtmf_detect_init (&ftdmchan->dtmf_detect, ftdmchan->rate); ftdmchan 3070 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_DTMF_DETECT); ftdmchan 3071 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_SUPRESS_DTMF); ftdmchan 3072 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Disabled software DTMF detector\n"); ftdmchan 3086 src/ftdm_io.c ftdmchan->pre_buffer_size = val * 8; ftdmchan 3088 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->pre_buffer_mutex); ftdmchan 3089 src/ftdm_io.c if (!ftdmchan->pre_buffer_size) { ftdmchan 3090 src/ftdm_io.c ftdm_buffer_destroy(&ftdmchan->pre_buffer); ftdmchan 3091 src/ftdm_io.c } else if (!ftdmchan->pre_buffer) { ftdmchan 3092 src/ftdm_io.c ftdm_buffer_create(&ftdmchan->pre_buffer, 1024, ftdmchan->pre_buffer_size, 0); ftdmchan 3094 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->pre_buffer_mutex); ftdmchan 3102 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_GENERATE)) { ftdmchan 3103 src/ftdm_io.c FTDM_COMMAND_OBJ_INT = ftdmchan->dtmf_on; ftdmchan 3110 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_GENERATE)) { ftdmchan 3111 src/ftdm_io.c FTDM_COMMAND_OBJ_INT = ftdmchan->dtmf_on; ftdmchan 3118 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_GENERATE)) { ftdmchan 3121 src/ftdm_io.c ftdmchan->dtmf_on = val; ftdmchan 3124 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "invalid value %d range 10-1000", val); ftdmchan 3132 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_GENERATE)) { ftdmchan 3135 src/ftdm_io.c ftdmchan->dtmf_off = val; ftdmchan 3138 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "invalid value %d range 10-1000", val); ftdmchan 3146 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_GENERATE)) { ftdmchan 3149 src/ftdm_io.c if ((status = ftdmchan_activate_dtmf_buffer(ftdmchan)) != FTDM_SUCCESS) { ftdmchan 3153 src/ftdm_io.c ftdm_buffer_write(ftdmchan->gen_dtmf_buffer, digits, strlen(digits)); ftdmchan 3162 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->pre_buffer_mutex); ftdmchan 3163 src/ftdm_io.c ftdm_buffer_destroy(&ftdmchan->pre_buffer); ftdmchan 3164 src/ftdm_io.c ftdmchan->pre_buffer_size = 0; ftdmchan 3165 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->pre_buffer_mutex); ftdmchan 3171 src/ftdm_io.c if (!FTDM_IS_VOICE_CHANNEL(ftdmchan)) { ftdmchan 3172 src/ftdm_io.c ftdm_log(FTDM_LOG_ERROR, "Cannot set rx gain in non-voice channel of type: %s\n", ftdm_chan_type2str(ftdmchan->type)); ftdmchan 3175 src/ftdm_io.c ftdmchan->rxgain = FTDM_COMMAND_OBJ_FLOAT; ftdmchan 3176 src/ftdm_io.c reset_gain_table(ftdmchan->rxgain_table, ftdmchan->rxgain, ftdmchan->native_codec); ftdmchan 3177 src/ftdm_io.c if (ftdmchan->rxgain == 0.0) { ftdmchan 3178 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_USE_RX_GAIN); ftdmchan 3180 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_USE_RX_GAIN); ftdmchan 3187 src/ftdm_io.c FTDM_COMMAND_OBJ_FLOAT = ftdmchan->rxgain; ftdmchan 3193 src/ftdm_io.c if (!FTDM_IS_VOICE_CHANNEL(ftdmchan)) { ftdmchan 3194 src/ftdm_io.c ftdm_log(FTDM_LOG_ERROR, "Cannot set tx gain in non-voice channel of type: %s\n", ftdm_chan_type2str(ftdmchan->type)); ftdmchan 3197 src/ftdm_io.c ftdmchan->txgain = FTDM_COMMAND_OBJ_FLOAT; ftdmchan 3198 src/ftdm_io.c reset_gain_table(ftdmchan->txgain_table, ftdmchan->txgain, ftdmchan->native_codec); ftdmchan 3199 src/ftdm_io.c if (ftdmchan->txgain == 0.0) { ftdmchan 3200 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_USE_TX_GAIN); ftdmchan 3202 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_USE_TX_GAIN); ftdmchan 3209 src/ftdm_io.c FTDM_COMMAND_OBJ_FLOAT = ftdmchan->txgain; ftdmchan 3217 src/ftdm_io.c if (!ftdmchan->fio->command) { ftdmchan 3218 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "method not implemented"); ftdmchan 3223 src/ftdm_io.c status = ftdmchan->fio->command(ftdmchan, command, obj); ftdmchan 3226 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "I/O command %d not implemented in backend", command); ftdmchan 3230 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 3235 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_wait(ftdm_channel_t *ftdmchan, ftdm_wait_flag_t *flags, int32_t to) ftdmchan 3238 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "Null channel\n"); ftdmchan 3239 src/ftdm_io.c ftdm_assert_return(ftdmchan->fio != NULL, FTDM_FAIL, "Null io interface\n"); ftdmchan 3240 src/ftdm_io.c ftdm_assert_return(ftdmchan->fio->wait != NULL, FTDM_NOTIMPL, "wait method not implemented\n"); ftdmchan 3242 src/ftdm_io.c status = ftdmchan->fio->wait(ftdmchan, flags, to); ftdmchan 3381 src/ftdm_io.c FT_DECLARE(void) ftdm_channel_clear_detected_tones(ftdm_channel_t *ftdmchan) ftdmchan 3385 src/ftdm_io.c memset(ftdmchan->detected_tones, 0, sizeof(ftdmchan->detected_tones[0]) * FTDM_TONEMAP_INVALID); ftdmchan 3388 src/ftdm_io.c ftdmchan->span->tone_finder[i].tone_count = 0; ftdmchan 3392 src/ftdm_io.c FT_DECLARE(void) ftdm_channel_clear_needed_tones(ftdm_channel_t *ftdmchan) ftdmchan 3394 src/ftdm_io.c memset(ftdmchan->needed_tones, 0, sizeof(ftdmchan->needed_tones[0]) * FTDM_TONEMAP_INVALID); ftdmchan 3397 src/ftdm_io.c FT_DECLARE(ftdm_size_t) ftdm_channel_dequeue_dtmf(ftdm_channel_t *ftdmchan, char *dtmf, ftdm_size_t len) ftdmchan 3401 src/ftdm_io.c assert(ftdmchan != NULL); ftdmchan 3403 src/ftdm_io.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_READY)) { ftdmchan 3407 src/ftdm_io.c if (ftdmchan->digit_buffer && ftdm_buffer_inuse(ftdmchan->digit_buffer)) { ftdmchan 3408 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 3409 src/ftdm_io.c if ((bytes = ftdm_buffer_read(ftdmchan->digit_buffer, dtmf, len)) > 0) { ftdmchan 3412 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 3418 src/ftdm_io.c FT_DECLARE(void) ftdm_channel_flush_dtmf(ftdm_channel_t *ftdmchan) ftdmchan 3420 src/ftdm_io.c if (ftdmchan->digit_buffer && ftdm_buffer_inuse(ftdmchan->digit_buffer)) { ftdmchan 3421 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 3422 src/ftdm_io.c ftdm_buffer_zero(ftdmchan->digit_buffer); ftdmchan 3423 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 3427 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_queue_dtmf(ftdm_channel_t *ftdmchan, const char *dtmf) ftdmchan 3434 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "No channel\n"); ftdmchan 3436 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Queuing DTMF %s (debug = %d)\n", dtmf, ftdmchan->dtmfdbg.enabled); ftdmchan 3438 src/ftdm_io.c if (!ftdmchan->dtmfdbg.enabled) { ftdmchan 3442 src/ftdm_io.c if (!ftdmchan->dtmfdbg.file) { ftdmchan 3457 src/ftdm_io.c ftdmchan->span_id, ftdmchan->chan_id, ftdmchan 3459 src/ftdm_io.c currtime.tm_hour, currtime.tm_min, currtime.tm_sec, ftdmchan->native_codec == FTDM_CODEC_ULAW ? "ulaw" : ftdmchan->native_codec == FTDM_CODEC_ALAW ? "alaw" : "sln"); ftdmchan 3460 src/ftdm_io.c ftdmchan->dtmfdbg.file = fopen(dfile, "wb"); ftdmchan 3461 src/ftdm_io.c if (!ftdmchan->dtmfdbg.file) { ftdmchan 3462 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "failed to open debug dtmf file %s\n", dfile); ftdmchan 3464 src/ftdm_io.c ftdmchan->dtmfdbg.closetimeout = DTMF_DEBUG_TIMEOUT; ftdmchan 3465 src/ftdm_io.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DUMP_INPUT, ftdmchan->dtmfdbg.file); ftdmchan 3466 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Dumped initial DTMF output to %s\n", dfile); ftdmchan 3469 src/ftdm_io.c ftdmchan->dtmfdbg.closetimeout = DTMF_DEBUG_TIMEOUT; ftdmchan 3474 src/ftdm_io.c if (ftdmchan->pre_buffer) { ftdmchan 3475 src/ftdm_io.c ftdm_buffer_zero(ftdmchan->pre_buffer); ftdmchan 3478 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 3480 src/ftdm_io.c inuse = ftdm_buffer_inuse(ftdmchan->digit_buffer); ftdmchan 3483 src/ftdm_io.c if (len + inuse > ftdm_buffer_len(ftdmchan->digit_buffer)) { ftdmchan 3484 src/ftdm_io.c ftdm_buffer_toss(ftdmchan->digit_buffer, strlen(dtmf)); ftdmchan 3487 src/ftdm_io.c if (ftdmchan->span->dtmf_hangup_len) { ftdmchan 3489 src/ftdm_io.c memmove (ftdmchan->dtmf_hangup_buf, ftdmchan->dtmf_hangup_buf + 1, ftdmchan->span->dtmf_hangup_len - 1); ftdmchan 3490 src/ftdm_io.c ftdmchan->dtmf_hangup_buf[ftdmchan->span->dtmf_hangup_len - 1] = *p; ftdmchan 3491 src/ftdm_io.c if (!strcmp(ftdmchan->dtmf_hangup_buf, ftdmchan->span->dtmf_hangup)) { ftdmchan 3493 src/ftdm_io.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 3509 src/ftdm_io.c status = ftdm_buffer_write(ftdmchan->digit_buffer, dtmf, wr) ? FTDM_SUCCESS : FTDM_FAIL; ftdmchan 3510 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 3518 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_TX_DISABLED)) { ftdmchan 3519 src/ftdm_io.c ftdmchan->txdrops++; ftdmchan 3520 src/ftdm_io.c if (ftdmchan->txdrops <= 10) { ftdmchan 3521 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "cannot write in channel with tx disabled\n"); ftdmchan 3523 src/ftdm_io.c if (ftdmchan->txdrops == 10) { ftdmchan 3524 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Too many tx drops, not printing anymore\n"); ftdmchan 3528 src/ftdm_io.c if (ftdmchan->fds[FTDM_WRITE_TRACE_INDEX] > -1) { ftdmchan 3529 src/ftdm_io.c if ((write(ftdmchan->fds[FTDM_WRITE_TRACE_INDEX], data, dlen)) != dlen) { ftdmchan 3533 src/ftdm_io.c write_chan_io_dump(&ftdmchan->txdump, data, dlen); ftdmchan 3534 src/ftdm_io.c return ftdmchan->fio->write(ftdmchan, data, datalen); ftdmchan 3539 src/ftdm_io.c ftdm_status_t status = ftdmchan->fio->read(ftdmchan, data, datalen); ftdmchan 3540 src/ftdm_io.c if (status == FTDM_SUCCESS && ftdmchan->fds[FTDM_READ_TRACE_INDEX] > -1) { ftdmchan 3542 src/ftdm_io.c if ((ftdm_size_t)write(ftdmchan->fds[FTDM_READ_TRACE_INDEX], data, (int)dlen) != dlen) { ftdmchan 3547 src/ftdm_io.c if (status == FTDM_SUCCESS && ftdmchan->span->sig_read) { ftdmchan 3548 src/ftdm_io.c ftdmchan->span->sig_read(ftdmchan, data, *datalen); ftdmchan 3555 src/ftdm_io.c write_chan_io_dump(&ftdmchan->rxdump, data, (int)dlen); ftdmchan 3558 src/ftdm_io.c if (ftdmchan->dtmfdbg.file) { ftdmchan 3559 src/ftdm_io.c rc = fwrite(data, 1, dlen, ftdmchan->dtmfdbg.file); ftdmchan 3563 src/ftdm_io.c ftdmchan->dtmfdbg.closetimeout--; ftdmchan 3564 src/ftdm_io.c if (!ftdmchan->dtmfdbg.closetimeout) { ftdmchan 3565 src/ftdm_io.c close_dtmf_debug_file(ftdmchan); ftdmchan 3572 src/ftdm_io.c static ftdm_status_t handle_dtmf(ftdm_channel_t *ftdmchan, ftdm_size_t datalen) ftdmchan 3578 src/ftdm_io.c if (ftdmchan->gen_dtmf_buffer && (dblen = ftdm_buffer_inuse(ftdmchan->gen_dtmf_buffer))) { ftdmchan 3587 src/ftdm_io.c if (ftdm_buffer_read(ftdmchan->gen_dtmf_buffer, digits, dblen) && !ftdm_strlen_zero_buf(digits)) { ftdmchan 3588 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Generating DTMF [%s]\n", digits); ftdmchan 3593 src/ftdm_io.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_FLASH, NULL); ftdmchan 3598 src/ftdm_io.c if ((wrote = teletone_mux_tones(&ftdmchan->tone_session, &ftdmchan->tone_session.TONES[(int)*cur]))) { ftdmchan 3599 src/ftdm_io.c ftdm_buffer_write(ftdmchan->dtmf_buffer, ftdmchan->tone_session.buffer, wrote * 2); ftdmchan 3602 src/ftdm_io.c ftdm_log(FTDM_LOG_ERROR, "%d:%d Problem Adding DTMF SEQ [%s]\n", ftdmchan->span_id, ftdmchan->chan_id, digits); ftdmchan 3608 src/ftdm_io.c ftdmchan->skip_read_frames = (wrote / (ftdmchan->effective_interval * 8)) + 4; ftdmchan 3614 src/ftdm_io.c if (!ftdmchan->buffer_delay || --ftdmchan->buffer_delay == 0) { ftdmchan 3615 src/ftdm_io.c if (ftdmchan->dtmf_buffer && (dblen = ftdm_buffer_inuse(ftdmchan->dtmf_buffer))) { ftdmchan 3616 src/ftdm_io.c buffer = ftdmchan->dtmf_buffer; ftdmchan 3617 src/ftdm_io.c } else if (ftdmchan->fsk_buffer && (dblen = ftdm_buffer_inuse(ftdmchan->fsk_buffer))) { ftdmchan 3618 src/ftdm_io.c buffer = ftdmchan->fsk_buffer; ftdmchan 3627 src/ftdm_io.c if (ftdmchan->native_codec != FTDM_CODEC_SLIN) { ftdmchan 3638 src/ftdm_io.c if (ftdmchan->native_codec != FTDM_CODEC_SLIN) { ftdmchan 3639 src/ftdm_io.c if (ftdmchan->native_codec == FTDM_CODEC_ULAW) { ftdmchan 3641 src/ftdm_io.c } else if (ftdmchan->native_codec == FTDM_CODEC_ALAW) { ftdmchan 3646 src/ftdm_io.c return ftdm_raw_write(ftdmchan, auxbuf, &dlen); ftdmchan 3674 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_read(ftdm_channel_t *ftdmchan, void *data, ftdm_size_t *datalen) ftdmchan 3681 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "ftdmchan is null\n"); ftdmchan 3682 src/ftdm_io.c ftdm_assert_return(ftdmchan->fio != NULL, FTDM_FAIL, "No I/O module attached to ftdmchan\n"); ftdmchan 3684 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 3686 src/ftdm_io.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OPEN)) { ftdmchan 3687 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "channel not open"); ftdmchan 3688 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "cannot read from channel that is not open\n"); ftdmchan 3693 src/ftdm_io.c if (!ftdmchan->fio->read) { ftdmchan 3694 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "method not implemented"); ftdmchan 3695 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "read method not implemented\n"); ftdmchan 3700 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_RX_DISABLED)) { ftdmchan 3701 src/ftdm_io.c ftdmchan->rxdrops++; ftdmchan 3702 src/ftdm_io.c if (ftdmchan->rxdrops <= 10) { ftdmchan 3703 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "cannot read from channel with rx disabled\n"); ftdmchan 3705 src/ftdm_io.c if (ftdmchan->rxdrops == 10) { ftdmchan 3706 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "too many rx drops, not logging anymore\n"); ftdmchan 3712 src/ftdm_io.c status = ftdm_raw_read(ftdmchan, data, datalen); ftdmchan 3714 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "raw I/O read filed\n"); ftdmchan 3718 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_USE_RX_GAIN) ftdmchan 3719 src/ftdm_io.c && (ftdmchan->native_codec == FTDM_CODEC_ALAW || ftdmchan->native_codec == FTDM_CODEC_ULAW)) { ftdmchan 3722 src/ftdm_io.c rdata[i] = ftdmchan->rxgain_table[rdata[i]]; ftdmchan 3725 src/ftdm_io.c handle_dtmf(ftdmchan, *datalen); ftdmchan 3727 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_TRANSCODE) && ftdmchan->effective_codec != ftdmchan->native_codec) { ftdmchan 3728 src/ftdm_io.c if (ftdmchan->native_codec == FTDM_CODEC_ULAW && ftdmchan->effective_codec == FTDM_CODEC_SLIN) { ftdmchan 3730 src/ftdm_io.c } else if (ftdmchan->native_codec == FTDM_CODEC_ULAW && ftdmchan->effective_codec == FTDM_CODEC_ALAW) { ftdmchan 3732 src/ftdm_io.c } else if (ftdmchan->native_codec == FTDM_CODEC_ALAW && ftdmchan->effective_codec == FTDM_CODEC_SLIN) { ftdmchan 3734 src/ftdm_io.c } else if (ftdmchan->native_codec == FTDM_CODEC_ALAW && ftdmchan->effective_codec == FTDM_CODEC_ULAW) { ftdmchan 3741 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "codec error!"); ftdmchan 3742 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "no codec function to perform transcoding from %d to %d\n", ftdmchan->native_codec, ftdmchan->effective_codec); ftdmchan 3747 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_DTMF_DETECT) || ftdm_test_flag(ftdmchan, FTDM_CHANNEL_PROGRESS_DETECT) || ftdmchan 3748 src/ftdm_io.c ftdm_test_flag(ftdmchan, FTDM_CHANNEL_CALLERID_DETECT)) { ftdmchan 3754 src/ftdm_io.c if (ftdmchan->effective_codec == FTDM_CODEC_SLIN) { ftdmchan 3769 src/ftdm_io.c if (ftdmchan->effective_codec == FTDM_CODEC_ULAW) { ftdmchan 3771 src/ftdm_io.c } else if (ftdmchan->effective_codec == FTDM_CODEC_ALAW) { ftdmchan 3774 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "codec error!"); ftdmchan 3775 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "invalid effective codec %d\n", ftdmchan->effective_codec); ftdmchan 3784 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_CALLERID_DETECT)) { ftdmchan 3785 src/ftdm_io.c if (ftdm_fsk_demod_feed(&ftdmchan->fsk, sln, slen) != FTDM_SUCCESS) { ftdmchan 3789 src/ftdm_io.c while(ftdm_fsk_data_parse(&ftdmchan->fsk, &type, &sp, &mlen) == FTDM_SUCCESS) { ftdmchan 3799 src/ftdm_io.c if (mlen > sizeof(ftdmchan->caller_data.ani)) { ftdmchan 3800 src/ftdm_io.c mlen = sizeof(ftdmchan->caller_data.ani); ftdmchan 3802 src/ftdm_io.c ftdm_set_string(ftdmchan->caller_data.ani.digits, str); ftdmchan 3803 src/ftdm_io.c ftdm_set_string(ftdmchan->caller_data.cid_num.digits, ftdmchan->caller_data.ani.digits); ftdmchan 3808 src/ftdm_io.c ftdm_set_string(ftdmchan->caller_data.ani.digits, *str == 'P' ? "private" : "unknown"); ftdmchan 3809 src/ftdm_io.c ftdm_set_string(ftdmchan->caller_data.cid_name, ftdmchan->caller_data.ani.digits); ftdmchan 3814 src/ftdm_io.c if (mlen > sizeof(ftdmchan->caller_data.cid_name)) { ftdmchan 3815 src/ftdm_io.c mlen = sizeof(ftdmchan->caller_data.cid_name); ftdmchan 3817 src/ftdm_io.c ftdm_set_string(ftdmchan->caller_data.cid_name, str); ftdmchan 3822 src/ftdm_io.c ftdm_set_string(ftdmchan->caller_data.cid_name, *str == 'P' ? "private" : "unknown"); ftdmchan 3826 src/ftdm_io.c if (mlen > sizeof(ftdmchan->caller_data.cid_date)) { ftdmchan 3827 src/ftdm_io.c mlen = sizeof(ftdmchan->caller_data.cid_date); ftdmchan 3829 src/ftdm_io.c ftdm_set_string(ftdmchan->caller_data.cid_date, str); ftdmchan 3834 src/ftdm_io.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DISABLE_CALLERID_DETECT, NULL); ftdmchan 3838 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_PROGRESS_DETECT) && !ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_PROGRESS)) { ftdmchan 3842 src/ftdm_io.c if (ftdmchan->span->tone_finder[i].tone_count) { ftdmchan 3843 src/ftdm_io.c if (ftdmchan->needed_tones[i] && teletone_multi_tone_detect(&ftdmchan->span->tone_finder[i], sln, (int)slen)) { ftdmchan 3844 src/ftdm_io.c if (++ftdmchan->detected_tones[i]) { ftdmchan 3845 src/ftdm_io.c ftdmchan->needed_tones[i] = 0; ftdmchan 3846 src/ftdm_io.c ftdmchan->detected_tones[0]++; ftdmchan 3854 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_DTMF_DETECT) && !ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_DETECT)) { ftdmchan 3855 src/ftdm_io.c teletone_dtmf_detect(&ftdmchan->dtmf_detect, sln, (int)slen); ftdmchan 3856 src/ftdm_io.c teletone_dtmf_get(&ftdmchan->dtmf_detect, digit_str, sizeof(digit_str)); ftdmchan 3859 src/ftdm_io.c if (ftdmchan->state == FTDM_CHANNEL_STATE_CALLWAITING && (*digit_str == 'D' || *digit_str == 'A')) { ftdmchan 3860 src/ftdm_io.c ftdmchan->detected_tones[FTDM_TONEMAP_CALLWAITING_ACK]++; ftdmchan 3862 src/ftdm_io.c ftdm_channel_queue_dtmf(ftdmchan, digit_str); ftdmchan 3864 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_SUPRESS_DTMF)) { ftdmchan 3865 src/ftdm_io.c ftdmchan->skip_read_frames = 20; ftdmchan 3872 src/ftdm_io.c if (ftdmchan->skip_read_frames > 0 || ftdm_test_flag(ftdmchan, FTDM_CHANNEL_MUTE)) { ftdmchan 3874 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->pre_buffer_mutex); ftdmchan 3875 src/ftdm_io.c if (ftdmchan->pre_buffer && ftdm_buffer_inuse(ftdmchan->pre_buffer)) { ftdmchan 3876 src/ftdm_io.c ftdm_buffer_zero(ftdmchan->pre_buffer); ftdmchan 3878 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->pre_buffer_mutex); ftdmchan 3883 src/ftdm_io.c if (ftdmchan->skip_read_frames > 0) { ftdmchan 3884 src/ftdm_io.c ftdmchan->skip_read_frames--; ftdmchan 3887 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->pre_buffer_mutex); ftdmchan 3888 src/ftdm_io.c if (ftdmchan->pre_buffer_size && ftdmchan->pre_buffer) { ftdmchan 3889 src/ftdm_io.c ftdm_buffer_write(ftdmchan->pre_buffer, data, *datalen); ftdmchan 3890 src/ftdm_io.c if (ftdm_buffer_inuse(ftdmchan->pre_buffer) >= ftdmchan->pre_buffer_size) { ftdmchan 3891 src/ftdm_io.c ftdm_buffer_read(ftdmchan->pre_buffer, data, *datalen); ftdmchan 3896 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->pre_buffer_mutex); ftdmchan 3901 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 3907 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_write(ftdm_channel_t *ftdmchan, void *data, ftdm_size_t datasize, ftdm_size_t *datalen) ftdmchan 3914 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "null channel on write!\n"); ftdmchan 3915 src/ftdm_io.c ftdm_assert_return(ftdmchan->fio != NULL, FTDM_FAIL, "null I/O on write!\n"); ftdmchan 3917 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 3919 src/ftdm_io.c if (!ftdmchan->buffer_delay && ftdmchan 3920 src/ftdm_io.c ((ftdmchan->dtmf_buffer && ftdm_buffer_inuse(ftdmchan->dtmf_buffer)) || ftdmchan 3921 src/ftdm_io.c (ftdmchan->fsk_buffer && ftdm_buffer_inuse(ftdmchan->fsk_buffer)))) { ftdmchan 3927 src/ftdm_io.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OPEN)) { ftdmchan 3928 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "cannot write in channel not open\n"); ftdmchan 3929 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "channel not open"); ftdmchan 3934 src/ftdm_io.c if (!ftdmchan->fio->write) { ftdmchan 3935 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "write method not implemented\n"); ftdmchan 3936 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "method not implemented"); ftdmchan 3941 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_TRANSCODE) && ftdmchan->effective_codec != ftdmchan->native_codec) { ftdmchan 3942 src/ftdm_io.c if (ftdmchan->native_codec == FTDM_CODEC_ULAW && ftdmchan->effective_codec == FTDM_CODEC_SLIN) { ftdmchan 3944 src/ftdm_io.c } else if (ftdmchan->native_codec == FTDM_CODEC_ULAW && ftdmchan->effective_codec == FTDM_CODEC_ALAW) { ftdmchan 3946 src/ftdm_io.c } else if (ftdmchan->native_codec == FTDM_CODEC_ALAW && ftdmchan->effective_codec == FTDM_CODEC_SLIN) { ftdmchan 3948 src/ftdm_io.c } else if (ftdmchan->native_codec == FTDM_CODEC_ALAW && ftdmchan->effective_codec == FTDM_CODEC_ULAW) { ftdmchan 3955 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Do not know how to handle transcoding from %d to %d\n", ftdmchan 3956 src/ftdm_io.c ftdmchan->effective_codec, ftdmchan->native_codec); ftdmchan 3957 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "codec error!"); ftdmchan 3963 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_USE_TX_GAIN) ftdmchan 3964 src/ftdm_io.c && (ftdmchan->native_codec == FTDM_CODEC_ALAW || ftdmchan->native_codec == FTDM_CODEC_ULAW)) { ftdmchan 3967 src/ftdm_io.c wdata[i] = ftdmchan->txgain_table[wdata[i]]; ftdmchan 3971 src/ftdm_io.c if (ftdmchan->span->sig_write) { ftdmchan 3972 src/ftdm_io.c status = ftdmchan->span->sig_write(ftdmchan, data, *datalen); ftdmchan 3980 src/ftdm_io.c status = ftdm_raw_write(ftdmchan, data, datalen); ftdmchan 3983 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 4082 src/ftdm_io.c static ftdm_status_t ftdm_channel_clear_vars(ftdm_channel_t *ftdmchan) ftdmchan 4084 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 4086 src/ftdm_io.c if (ftdmchan->variable_hash) { ftdmchan 4087 src/ftdm_io.c hashtable_destroy(ftdmchan->variable_hash); ftdmchan 4089 src/ftdm_io.c ftdmchan->variable_hash = NULL; ftdmchan 4091 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 4095 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_add_var(ftdm_channel_t *ftdmchan, const char *var_name, const char *value) ftdmchan 4105 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 4107 src/ftdm_io.c if (!ftdmchan->variable_hash) { ftdmchan 4109 src/ftdm_io.c ftdmchan->variable_hash = create_hashtable(16, ftdm_hash_hashfromstring, ftdm_hash_equalkeys); ftdmchan 4110 src/ftdm_io.c if (!ftdmchan->variable_hash) { ftdmchan 4118 src/ftdm_io.c hashtable_insert(ftdmchan->variable_hash, t_name, t_val, HASHTABLE_FLAG_FREE_KEY | HASHTABLE_FLAG_FREE_VALUE); ftdmchan 4123 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 4129 src/ftdm_io.c FT_DECLARE(const char *) ftdm_channel_get_var(ftdm_channel_t *ftdmchan, const char *var_name) ftdmchan 4133 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 4135 src/ftdm_io.c if (!ftdmchan->variable_hash || !var_name) { ftdmchan 4139 src/ftdm_io.c var = (const char *)hashtable_search(ftdmchan->variable_hash, (void *)var_name); ftdmchan 4142 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 4171 src/ftdm_io.c FT_DECLARE(ftdm_iterator_t *) ftdm_channel_get_var_iterator(const ftdm_channel_t *ftdmchan, ftdm_iterator_t *iter) ftdmchan 4174 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 4175 src/ftdm_io.c hashiter = ftdmchan->variable_hash == NULL ? NULL : hashtable_first(ftdmchan->variable_hash); ftdmchan 4176 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 5251 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_add_to_group(const char* name, ftdm_channel_t* ftdmchan) ftdmchan 5258 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "Cannot add a null channel to a group\n"); ftdmchan 5267 src/ftdm_io.c if (group->channels[i]->physical_span_id == ftdmchan->physical_span_id && ftdmchan 5268 src/ftdm_io.c group->channels[i]->physical_chan_id == ftdmchan->physical_chan_id) { ftdmchan 5285 src/ftdm_io.c group->channels[group->chan_count++] = ftdmchan; ftdmchan 5290 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_remove_from_group(ftdm_group_t* group, ftdm_channel_t* ftdmchan) ftdmchan 5297 src/ftdm_io.c if (group->channels[i]->physical_span_id == ftdmchan->physical_span_id && ftdmchan 5298 src/ftdm_io.c group->channels[i]->physical_chan_id == ftdmchan->physical_chan_id) { ftdmchan 127 src/ftdm_state.c static int ftdm_parse_state_map(ftdm_channel_t *ftdmchan, ftdm_channel_state_t state, ftdm_state_map_t *state_map) ftdmchan 130 src/ftdm_state.c ftdm_state_direction_t direction = ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND) ? ZSD_OUTBOUND : ZSD_INBOUND; ftdmchan 146 src/ftdm_state.c if (state_map->nodes[x].check_states[i] == ftdmchan->state) { ftdmchan 228 src/ftdm_state.c FT_DECLARE(ftdm_status_t) ftdm_channel_set_state(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan, ftdm_channel_state_t state, int waitrq) ftdmchan 234 src/ftdm_state.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_READY)) { ftdmchan 235 src/ftdm_state.c ftdm_log_chan_ex(ftdmchan, file, func, line, FTDM_LOG_LEVEL_ERROR, "Ignored state change request from %s to %s, the channel is not ready\n", ftdmchan 236 src/ftdm_state.c ftdm_channel_state2str(ftdmchan->state), ftdm_channel_state2str(state)); ftdmchan 240 src/ftdm_state.c if (ftdmchan->state_status != FTDM_STATE_STATUS_COMPLETED) { ftdmchan 241 src/ftdm_state.c ftdm_log_chan_ex(ftdmchan, file, func, line, FTDM_LOG_LEVEL_ERROR, ftdmchan 243 src/ftdm_state.c ftdm_channel_state2str(ftdmchan->state), ftdm_channel_state2str(state), ftdmchan 244 src/ftdm_state.c ftdm_state_status2str(ftdmchan->state_status)); ftdmchan 248 src/ftdm_state.c if (ftdmchan->state == state) { ftdmchan 249 src/ftdm_state.c ftdm_log_chan_ex(ftdmchan, file, func, line, FTDM_LOG_LEVEL_WARNING, "Why bother changing state from %s to %s\n", ftdm_channel_state2str(ftdmchan->state), ftdm_channel_state2str(state)); ftdmchan 253 src/ftdm_state.c if (!ftdmchan->state_completed_interrupt) { ftdmchan 254 src/ftdm_state.c status = ftdm_interrupt_create(&ftdmchan->state_completed_interrupt, FTDM_INVALID_SOCKET); ftdmchan 256 src/ftdm_state.c ftdm_log_chan_ex(ftdmchan, file, func, line, FTDM_LOG_LEVEL_CRIT, ftdmchan 257 src/ftdm_state.c "Failed to create state change interrupt when moving from %s to %s\n", ftdm_channel_state2str(ftdmchan->state), ftdm_channel_state2str(state)); ftdmchan 263 src/ftdm_state.c if (ftdmchan->span->state_map) { ftdmchan 264 src/ftdm_state.c ok = ftdm_parse_state_map(ftdmchan, state, ftdmchan->span->state_map); ftdmchan 269 src/ftdm_state.c switch(ftdmchan->state) { ftdmchan 349 src/ftdm_state.c ftdm_log_chan_ex(ftdmchan, file, func, line, FTDM_LOG_LEVEL_WARNING, "VETO state change from %s to %s\n", ftdm_channel_state2str(ftdmchan->state), ftdm_channel_state2str(state)); ftdmchan 353 src/ftdm_state.c ftdm_log_chan_ex(ftdmchan, file, func, line, FTDM_LOG_LEVEL_DEBUG, "Changed state from %s to %s\n", ftdm_channel_state2str(ftdmchan->state), ftdm_channel_state2str(state)); ftdmchan 354 src/ftdm_state.c ftdmchan->last_state = ftdmchan->state; ftdmchan 355 src/ftdm_state.c ftdmchan->state = state; ftdmchan 356 src/ftdm_state.c ftdmchan->state_status = FTDM_STATE_STATUS_NEW; ftdmchan 357 src/ftdm_state.c ftdmchan->history[ftdmchan->hindex].file = file; ftdmchan 358 src/ftdm_state.c ftdmchan->history[ftdmchan->hindex].func = func; ftdmchan 359 src/ftdm_state.c ftdmchan->history[ftdmchan->hindex].line = line; ftdmchan 360 src/ftdm_state.c ftdmchan->history[ftdmchan->hindex].state = ftdmchan->state; ftdmchan 361 src/ftdm_state.c ftdmchan->history[ftdmchan->hindex].last_state = ftdmchan->last_state; ftdmchan 362 src/ftdm_state.c ftdmchan->history[ftdmchan->hindex].time = ftdm_current_time_in_ms(); ftdmchan 363 src/ftdm_state.c ftdmchan->history[ftdmchan->hindex].end_time = 0; ftdmchan 364 src/ftdm_state.c ftdmchan->hindex++; ftdmchan 365 src/ftdm_state.c if (ftdmchan->hindex == ftdm_array_len(ftdmchan->history)) { ftdmchan 366 src/ftdm_state.c ftdmchan->hindex = 0; ftdmchan 368 src/ftdm_state.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE); ftdmchan 370 src/ftdm_state.c ftdm_mutex_lock(ftdmchan->span->mutex); ftdmchan 371 src/ftdm_state.c ftdm_set_flag(ftdmchan->span, FTDM_SPAN_STATE_CHANGE); ftdmchan 372 src/ftdm_state.c if (ftdmchan->span->pendingchans) { ftdmchan 373 src/ftdm_state.c ftdm_queue_enqueue(ftdmchan->span->pendingchans, ftdmchan); ftdmchan 375 src/ftdm_state.c ftdm_mutex_unlock(ftdmchan->span->mutex); ftdmchan 377 src/ftdm_state.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_NONBLOCK)) { ftdmchan 388 src/ftdm_state.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_BLOCKING); ftdmchan 390 src/ftdm_state.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 392 src/ftdm_state.c status = ftdm_interrupt_wait(ftdmchan->state_completed_interrupt, waitms); ftdmchan 394 src/ftdm_state.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 397 src/ftdm_state.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_BLOCKING); ftdmchan 398 src/ftdm_state.c ftdm_log_chan_ex(ftdmchan, file, func, line, ftdmchan 400 src/ftdm_state.c ftdm_channel_state2str(ftdmchan->last_state), ftdm_channel_state2str(state), DEFAULT_WAIT_TIME); ftdmchan 408 src/ftdm_state.c FT_DECLARE(int) ftdm_channel_get_state(const ftdm_channel_t *ftdmchan) ftdmchan 411 src/ftdm_state.c ftdm_channel_lock(ftdmchan); ftdmchan 412 src/ftdm_state.c state = ftdmchan->state; ftdmchan 413 src/ftdm_state.c ftdm_channel_unlock(ftdmchan); ftdmchan 417 src/ftdm_state.c FT_DECLARE(const char *) ftdm_channel_get_state_str(const ftdm_channel_t *ftdmchan) ftdmchan 420 src/ftdm_state.c ftdm_channel_lock(ftdmchan); ftdmchan 421 src/ftdm_state.c state = ftdm_channel_state2str(ftdmchan->state); ftdmchan 422 src/ftdm_state.c ftdm_channel_unlock(ftdmchan); ftdmchan 426 src/ftdm_state.c FT_DECLARE(int) ftdm_channel_get_last_state(const ftdm_channel_t *ftdmchan) ftdmchan 429 src/ftdm_state.c ftdm_channel_lock(ftdmchan); ftdmchan 430 src/ftdm_state.c last_state = ftdmchan->last_state; ftdmchan 431 src/ftdm_state.c ftdm_channel_unlock(ftdmchan); ftdmchan 435 src/ftdm_state.c FT_DECLARE(const char *) ftdm_channel_get_last_state_str(const ftdm_channel_t *ftdmchan) ftdmchan 438 src/ftdm_state.c ftdm_channel_lock(ftdmchan); ftdmchan 439 src/ftdm_state.c state = ftdm_channel_state2str(ftdmchan->last_state); ftdmchan 440 src/ftdm_state.c ftdm_channel_unlock(ftdmchan); ftdmchan 52 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_analog_data_t *analog_data = ftdmchan->span->signal_data; ftdmchan 53 src/ftmod/ftmod_analog/ftmod_analog.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK) && !ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INTHREAD)) { ftdmchan 54 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_clear_needed_tones(ftdmchan); ftdmchan 55 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_clear_detected_tones(ftdmchan); ftdmchan 57 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_OFFHOOK, NULL); ftdmchan 58 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_ENABLE_PROGRESS_DETECT, NULL); ftdmchan 60 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->needed_tones[FTDM_TONEMAP_DIAL] = 1; ftdmchan 62 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DIALING); ftdmchan 63 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_thread_create_detached(ftdm_analog_channel_run, ftdmchan); ftdmchan 80 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INTHREAD)) { ftdmchan 81 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_CALLWAITING); ftdmchan 83 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_GENRING); ftdmchan 84 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_thread_create_detached(ftdm_analog_channel_run, ftdmchan); ftdmchan 99 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_IN_ALARM)) { ftdmchan 343 src/ftmod/ftmod_analog/ftmod_analog.c static void send_caller_id(ftdm_channel_t *ftdmchan) ftdmchan 364 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_strlen_zero(ftdmchan->caller_data.cid_num.digits)) { ftdmchan 366 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_string(ftdmchan->caller_data.cid_num.digits, "O"); ftdmchan 367 src/ftmod/ftmod_analog/ftmod_analog.c } else if (!strcasecmp(ftdmchan->caller_data.cid_num.digits, "P") || !strcasecmp(ftdmchan->caller_data.cid_num.digits, "O")) { ftdmchan 372 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_fsk_data_add_mdmf(&fsk_data, mt, (uint8_t *) ftdmchan->caller_data.cid_num.digits, (uint8_t)strlen(ftdmchan->caller_data.cid_num.digits)); ftdmchan 374 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_strlen_zero(ftdmchan->caller_data.cid_name)) { ftdmchan 376 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_string(ftdmchan->caller_data.cid_name, "O"); ftdmchan 377 src/ftmod/ftmod_analog/ftmod_analog.c } else if (!strcasecmp(ftdmchan->caller_data.cid_name, "P") || !strcasecmp(ftdmchan->caller_data.cid_name, "O")) { ftdmchan 382 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_fsk_data_add_mdmf(&fsk_data, mt, (uint8_t *) ftdmchan->caller_data.cid_name, (uint8_t)strlen(ftdmchan->caller_data.cid_name)); ftdmchan 385 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_send_fsk_data(ftdmchan, &fsk_data, -14); ftdmchan 388 src/ftmod/ftmod_analog/ftmod_analog.c static void analog_dial(ftdm_channel_t *ftdmchan, uint32_t *state_counter, uint32_t *dial_timeout) ftdmchan 390 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_strlen_zero(ftdmchan->caller_data.dnis.digits)) { ftdmchan 391 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "No digits to send, moving to UP!\n"); ftdmchan 392 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 394 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_channel_command(ftdmchan, FTDM_COMMAND_SEND_DTMF, ftdmchan->caller_data.dnis.digits) != FTDM_SUCCESS) { ftdmchan 395 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Send Digits Failed [%s]\n", ftdmchan->last_error); ftdmchan 396 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_BUSY); ftdmchan 399 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->needed_tones[FTDM_TONEMAP_RING] = 1; ftdmchan 400 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->needed_tones[FTDM_TONEMAP_BUSY] = 1; ftdmchan 401 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->needed_tones[FTDM_TONEMAP_FAIL1] = 1; ftdmchan 402 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->needed_tones[FTDM_TONEMAP_FAIL2] = 1; ftdmchan 403 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->needed_tones[FTDM_TONEMAP_FAIL3] = 1; ftdmchan 404 src/ftmod/ftmod_analog/ftmod_analog.c *dial_timeout = ((ftdmchan->dtmf_on + ftdmchan->dtmf_off) * strlen(ftdmchan->caller_data.dnis.digits)) + 2000; ftdmchan 416 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_t *ftdmchan = (ftdm_channel_t *) obj; ftdmchan 424 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_analog_data_t *analog_data = ftdmchan->span->signal_data; ftdmchan 431 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "ANALOG CHANNEL thread starting.\n"); ftdmchan 435 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 436 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "OPEN ERROR [%s]\n", ftdmchan->last_error); ftdmchan 441 src/ftmod/ftmod_analog/ftmod_analog.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "memory error!"); ftdmchan 442 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "MEM ERROR\n"); ftdmchan 446 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_channel_command(ftdmchan, FTDM_COMMAND_ENABLE_DTMF_DETECT, &tt) != FTDM_SUCCESS) { ftdmchan 447 src/ftmod/ftmod_analog/ftmod_analog.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "error initilizing tone detector!"); ftdmchan 448 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "failed to initialize DTMF detector\n"); ftdmchan 451 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Initialized DTMF detection\n"); ftdmchan 453 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_INTHREAD); ftdmchan 460 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GET_INTERVAL, &interval); ftdmchan 464 src/ftmod/ftmod_analog/ftmod_analog.c sig.chan_id = ftdmchan->chan_id; ftdmchan 465 src/ftmod/ftmod_analog/ftmod_analog.c sig.span_id = ftdmchan->span_id; ftdmchan 466 src/ftmod/ftmod_analog/ftmod_analog.c sig.channel = ftdmchan; ftdmchan 471 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Not waiting for dial tone to dial number %s\n", ftdmchan->caller_data.dnis.digits); ftdmchan 474 src/ftmod/ftmod_analog/ftmod_analog.c while (ftdm_running() && ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INTHREAD)) { ftdmchan 483 src/ftmod/ftmod_analog/ftmod_analog.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 484 src/ftmod/ftmod_analog/ftmod_analog.c switch(ftdmchan->state) { ftdmchan 487 src/ftmod/ftmod_analog/ftmod_analog.c if (state_counter > 5000 || !ftdm_test_flag(ftdmchan, FTDM_CHANNEL_CALLERID_DETECT)) { ftdmchan 488 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DISABLE_CALLERID_DETECT, NULL); ftdmchan 489 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 496 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->needed_tones[FTDM_TONEMAP_DIAL]) { ftdmchan 497 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_BUSY); ftdmchan 501 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA); ftdmchan 503 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 512 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 513 src/ftmod/ftmod_analog/ftmod_analog.c } else if (!ftdmchan->fsk_buffer || !ftdm_buffer_inuse(ftdmchan->fsk_buffer)) { ftdmchan 521 src/ftmod/ftmod_analog/ftmod_analog.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_HOLD) && state_counter > 10000) { ftdmchan 522 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_BUSY); ftdmchan 529 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_ATTN); ftdmchan 536 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 543 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_RINGING)) { ftdmchan 544 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GENERATE_RING_OFF, NULL); ftdmchan 547 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->type == FTDM_CHAN_TYPE_FXS && ftdmchan 548 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK) && ftdmchan 549 src/ftmod/ftmod_analog/ftmod_analog.c (ftdmchan->last_state == FTDM_CHANNEL_STATE_RINGING ftdmchan 550 src/ftmod/ftmod_analog/ftmod_analog.c || ftdmchan->last_state == FTDM_CHANNEL_STATE_DIALTONE ftdmchan 551 src/ftmod/ftmod_analog/ftmod_analog.c || ftdmchan->last_state == FTDM_CHANNEL_STATE_RING ftdmchan 552 src/ftmod/ftmod_analog/ftmod_analog.c || ftdmchan->last_state == FTDM_CHANNEL_STATE_UP)) { ftdmchan 553 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_BUSY); ftdmchan 555 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_NORMAL_CLEARING; ftdmchan 556 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 565 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->detected_tones[FTDM_TONEMAP_CALLWAITING_ACK] == 1) { ftdmchan 566 src/ftmod/ftmod_analog/ftmod_analog.c send_caller_id(ftdmchan); ftdmchan 567 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->detected_tones[FTDM_TONEMAP_CALLWAITING_ACK]++; ftdmchan 568 src/ftmod/ftmod_analog/ftmod_analog.c } else if (state_counter > 600 && !ftdmchan->detected_tones[FTDM_TONEMAP_CALLWAITING_ACK]) { ftdmchan 569 src/ftmod/ftmod_analog/ftmod_analog.c send_caller_id(ftdmchan); ftdmchan 570 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->detected_tones[FTDM_TONEMAP_CALLWAITING_ACK]++; ftdmchan 571 src/ftmod/ftmod_analog/ftmod_analog.c } else if (state_counter > 1000 && !ftdmchan->detected_tones[FTDM_TONEMAP_CALLWAITING_ACK]) { ftdmchan 574 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->fsk_buffer) { ftdmchan 575 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_buffer_zero(ftdmchan->fsk_buffer); ftdmchan 577 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_buffer_create(&ftdmchan->fsk_buffer, 128, 128, 0); ftdmchan 580 src/ftmod/ftmod_analog/ftmod_analog.c ts.user_data = ftdmchan->fsk_buffer; ftdmchan 581 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_CALLWAITING_SAS]); ftdmchan 587 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 588 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_clear_flag_locked(ftdmchan->span, FTDM_SPAN_STATE_CHANGE); ftdmchan 589 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_complete_state(ftdmchan); ftdmchan 590 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->detected_tones[FTDM_TONEMAP_CALLWAITING_ACK] = 0; ftdmchan 597 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND) && ftdmchan 598 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->state == FTDM_CHANNEL_STATE_PROGRESS_MEDIA && ftdmchan 599 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_test_sflag(ftdmchan, AF_POLARITY_REVERSE)) { ftdmchan 600 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_NOTICE, "Answering on polarity reverse\n"); ftdmchan 601 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_clear_sflag(ftdmchan, AF_POLARITY_REVERSE); ftdmchan 602 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 604 src/ftmod/ftmod_analog/ftmod_analog.c } else if (ftdmchan->state == FTDM_CHANNEL_STATE_UP ftdmchan 605 src/ftmod/ftmod_analog/ftmod_analog.c && ftdm_test_sflag(ftdmchan, AF_POLARITY_REVERSE)){ ftdmchan 609 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_NOTICE, "Hanging up on polarity reverse\n"); ftdmchan 610 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 612 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, ftdmchan 615 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_clear_sflag(ftdmchan, AF_POLARITY_REVERSE); ftdmchan 631 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_clear_flag_locked(ftdmchan->span, FTDM_SPAN_STATE_CHANGE); ftdmchan 632 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_complete_state(ftdmchan); ftdmchan 636 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Executing state handler on %d:%d for %s\n", ftdmchan 637 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->span_id, ftdmchan->chan_id, ftdmchan 638 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_state2str(ftdmchan->state)); ftdmchan 639 src/ftmod/ftmod_analog/ftmod_analog.c switch(ftdmchan->state) { ftdmchan 642 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_use(ftdmchan); ftdmchan 643 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_clear_needed_tones(ftdmchan); ftdmchan 644 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_flush_dtmf(ftdmchan); ftdmchan 646 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->type == FTDM_CHAN_TYPE_FXO && !ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK)) { ftdmchan 647 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_OFFHOOK, NULL); ftdmchan 650 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->fsk_buffer && ftdm_buffer_inuse(ftdmchan->fsk_buffer)) { ftdmchan 651 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Cancel FSK transmit due to early answer.\n"); ftdmchan 652 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_buffer_zero(ftdmchan->fsk_buffer); ftdmchan 655 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->type == FTDM_CHAN_TYPE_FXS && ftdm_test_flag(ftdmchan, FTDM_CHANNEL_RINGING)) { ftdmchan 656 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GENERATE_RING_OFF, NULL); ftdmchan 659 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->token_count == 1) { ftdmchan 660 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_HOLD); ftdmchan 663 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_HOLD)) { ftdmchan 664 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_HOLD); ftdmchan 670 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->type == FTDM_CHAN_TYPE_FXS && ftdmchan 671 src/ftmod/ftmod_analog/ftmod_analog.c !ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND) && ftdmchan 674 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->polarity == FTDM_POLARITY_FORWARD) { ftdmchan 675 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Reversing polarity on answer\n"); ftdmchan 676 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_SET_POLARITY, &polarity); ftdmchan 683 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 689 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_use(ftdmchan); ftdmchan 694 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_use(ftdmchan); ftdmchan 697 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->type == FTDM_CHAN_TYPE_FXO) { ftdmchan 698 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_string(ftdmchan->caller_data.dnis.digits, ftdmchan->chan_number); ftdmchan 700 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_string(ftdmchan->caller_data.dnis.digits, dtmf); ftdmchan 703 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 713 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->type == FTDM_CHAN_TYPE_FXS && ftdmchan 714 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->last_state == FTDM_CHANNEL_STATE_UP && ftdmchan 716 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_polarity_t polarity = ftdmchan->polarity == FTDM_POLARITY_REVERSE ftdmchan 718 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Reversing polarity on hangup\n"); ftdmchan 719 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_SET_POLARITY, &polarity); ftdmchan 726 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 732 src/ftmod/ftmod_analog/ftmod_analog.c memset(&ftdmchan->caller_data, 0, sizeof(ftdmchan->caller_data)); ftdmchan 736 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_DIAL]); ftdmchan 742 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->detected_tones[FTDM_TONEMAP_CALLWAITING_ACK] = 0; ftdmchan 743 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->fsk_buffer) { ftdmchan 744 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_buffer_zero(ftdmchan->fsk_buffer); ftdmchan 746 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_buffer_create(&ftdmchan->fsk_buffer, 128, 128, 0); ftdmchan 749 src/ftmod/ftmod_analog/ftmod_analog.c ts.user_data = ftdmchan->fsk_buffer; ftdmchan 750 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_CALLWAITING_SAS]); ftdmchan 751 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_CALLWAITING_CAS]); ftdmchan 759 src/ftmod/ftmod_analog/ftmod_analog.c send_caller_id(ftdmchan); ftdmchan 760 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GENERATE_RING_ON, NULL); ftdmchan 763 src/ftmod/ftmod_analog/ftmod_analog.c sig.chan_id = ftdmchan->chan_id; ftdmchan 764 src/ftmod/ftmod_analog/ftmod_analog.c sig.span_id = ftdmchan->span_id; ftdmchan 765 src/ftmod/ftmod_analog/ftmod_analog.c sig.channel = ftdmchan; ftdmchan 767 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 773 src/ftmod/ftmod_analog/ftmod_analog.c memset(&ftdmchan->caller_data, 0, sizeof(ftdmchan->caller_data)); ftdmchan 774 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_ENABLE_CALLERID_DETECT, NULL); ftdmchan 781 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_RING]); ftdmchan 788 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_NORMAL_CIRCUIT_CONGESTION; ftdmchan 789 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK) && !ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 791 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_BUSY]); ftdmchan 794 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 800 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK) && !ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 802 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_ATTN]); ftdmchan 805 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 815 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->state == FTDM_CHANNEL_STATE_DIALTONE || ftdmchan->state == FTDM_CHANNEL_STATE_COLLECT) { ftdmchan 816 src/ftmod/ftmod_analog/ftmod_analog.c if ((dlen = ftdm_channel_dequeue_dtmf(ftdmchan, dtmf + dtmf_offset, sizeof(dtmf) - strlen(dtmf)))) { ftdmchan 818 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->state == FTDM_CHANNEL_STATE_DIALTONE) { ftdmchan 819 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_COLLECT); ftdmchan 826 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_span_send_signal(ftdmchan->span, &sig) == FTDM_BREAK) { ftdmchan 840 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Number obtained [%s]\n", dtmf); ftdmchan 841 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 846 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_channel_wait(ftdmchan, &flags, interval * 2) != FTDM_SUCCESS) { ftdmchan 854 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_channel_read(ftdmchan, frame, &len) != FTDM_SUCCESS) { ftdmchan 855 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "read error [%s]\n", ftdmchan->last_error); ftdmchan 859 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->type == FTDM_CHAN_TYPE_FXO && ftdmchan->detected_tones[0]) { ftdmchan 863 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->detected_tones[i]) { ftdmchan 864 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Detected tone %s on %d:%d\n", ftdm_tonemap2str(i), ftdmchan->span_id, ftdmchan->chan_id); ftdmchan 868 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->detected_tones[FTDM_TONEMAP_BUSY] || ftdmchan 869 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->detected_tones[FTDM_TONEMAP_FAIL1] || ftdmchan 870 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->detected_tones[FTDM_TONEMAP_FAIL2] || ftdmchan 871 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->detected_tones[FTDM_TONEMAP_FAIL3] || ftdmchan 872 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->detected_tones[FTDM_TONEMAP_ATTN] ftdmchan 874 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "Failure indication detected!\n"); ftdmchan 875 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_BUSY); ftdmchan 876 src/ftmod/ftmod_analog/ftmod_analog.c } else if (ftdmchan->detected_tones[FTDM_TONEMAP_DIAL]) { ftdmchan 877 src/ftmod/ftmod_analog/ftmod_analog.c analog_dial(ftdmchan, &state_counter, &dial_timeout); ftdmchan 878 src/ftmod/ftmod_analog/ftmod_analog.c } else if (ftdmchan->detected_tones[FTDM_TONEMAP_RING]) { ftdmchan 879 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 882 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_clear_detected_tones(ftdmchan); ftdmchan 885 src/ftmod/ftmod_analog/ftmod_analog.c analog_dial(ftdmchan, &state_counter, &dial_timeout); ftdmchan 888 src/ftmod/ftmod_analog/ftmod_analog.c if ((ftdmchan->dtmf_buffer && ftdm_buffer_inuse(ftdmchan->dtmf_buffer)) || (ftdmchan->fsk_buffer && ftdm_buffer_inuse(ftdmchan->fsk_buffer))) { ftdmchan 899 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->type == FTDM_CHAN_TYPE_FXO && !ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK)) { ftdmchan 900 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_OFFHOOK, NULL); ftdmchan 903 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->effective_codec != FTDM_CODEC_SLIN) { ftdmchan 909 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->effective_codec != FTDM_CODEC_SLIN) { ftdmchan 912 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->native_codec == FTDM_CODEC_ULAW) { ftdmchan 914 src/ftmod/ftmod_analog/ftmod_analog.c } else if (ftdmchan->native_codec == FTDM_CODEC_ALAW) { ftdmchan 921 src/ftmod/ftmod_analog/ftmod_analog.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "codec error!"); ftdmchan 926 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_write(ftdmchan, frame, sizeof(frame), &rlen); ftdmchan 931 src/ftmod/ftmod_analog/ftmod_analog.c closed_chan = ftdmchan; ftdmchan 935 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->type == FTDM_CHAN_TYPE_FXO && ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK)) { ftdmchan 936 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_ONHOOK, NULL); ftdmchan 939 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->type == FTDM_CHAN_TYPE_FXS && ftdm_test_flag(ftdmchan, FTDM_CHANNEL_RINGING)) { ftdmchan 940 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GENERATE_RING_OFF, NULL); ftdmchan 944 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_clear_sflag(ftdmchan, AF_POLARITY_REVERSE); ftdmchan 946 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_close(&ftdmchan); ftdmchan 57 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK) && !ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INTHREAD)) { ftdmchan 58 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_clear_needed_tones(ftdmchan); ftdmchan 59 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_clear_detected_tones(ftdmchan); ftdmchan 61 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND); ftdmchan 63 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_OFFHOOK, NULL); ftdmchan 64 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_ENABLE_PROGRESS_DETECT, NULL); ftdmchan 65 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DIALING); ftdmchan 66 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_thread_create_detached(ftdm_analog_em_channel_run, ftdmchan); ftdmchan 212 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_t *ftdmchan = (ftdm_channel_t *) obj; ftdmchan 220 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_analog_em_data_t *analog_data = ftdmchan->span->signal_data; ftdmchan 230 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 231 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_log(FTDM_LOG_ERROR, "OPEN ERROR [%s]\n", ftdmchan->last_error); ftdmchan 236 src/ftmod/ftmod_analog_em/ftmod_analog_em.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "memory error!"); ftdmchan 241 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdm_channel_command(ftdmchan, FTDM_COMMAND_ENABLE_DTMF_DETECT, &tt) != FTDM_SUCCESS) { ftdmchan 242 src/ftmod/ftmod_analog_em/ftmod_analog_em.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "error initilizing tone detector!"); ftdmchan 247 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_INTHREAD); ftdmchan 254 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GET_INTERVAL, &interval); ftdmchan 258 src/ftmod/ftmod_analog_em/ftmod_analog_em.c sig.chan_id = ftdmchan->chan_id; ftdmchan 259 src/ftmod/ftmod_analog_em/ftmod_analog_em.c sig.span_id = ftdmchan->span_id; ftdmchan 260 src/ftmod/ftmod_analog_em/ftmod_analog_em.c sig.channel = ftdmchan; ftdmchan 264 src/ftmod/ftmod_analog_em/ftmod_analog_em.c while (ftdm_running() && ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INTHREAD)) { ftdmchan 273 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 274 src/ftmod/ftmod_analog_em/ftmod_analog_em.c switch(ftdmchan->state) { ftdmchan 277 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (! ftdmchan->needed_tones[FTDM_TONEMAP_RING] ftdmchan 278 src/ftmod/ftmod_analog_em/ftmod_analog_em.c && ftdm_test_flag(ftdmchan, FTDM_CHANNEL_WINK)) { ftdmchan 279 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdm_strlen_zero(ftdmchan->caller_data.dnis.digits)) { ftdmchan 281 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_BUSY); ftdmchan 283 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdm_channel_command(ftdmchan, FTDM_COMMAND_SEND_DTMF, ftdmchan->caller_data.dnis.digits) != FTDM_SUCCESS) { ftdmchan 284 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_log(FTDM_LOG_ERROR, "Send Digits Failed [%s]\n", ftdmchan->last_error); ftdmchan 285 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_BUSY); ftdmchan 288 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdmchan->needed_tones[FTDM_TONEMAP_RING] = 1; ftdmchan 289 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdmchan->needed_tones[FTDM_TONEMAP_BUSY] = 1; ftdmchan 290 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdmchan->needed_tones[FTDM_TONEMAP_FAIL1] = 1; ftdmchan 291 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdmchan->needed_tones[FTDM_TONEMAP_FAIL2] = 1; ftdmchan 292 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdmchan->needed_tones[FTDM_TONEMAP_FAIL3] = 1; ftdmchan 293 src/ftmod/ftmod_analog_em/ftmod_analog_em.c dial_timeout = ((ftdmchan->dtmf_on + ftdmchan->dtmf_off) * strlen(ftdmchan->caller_data.dnis.digits)) + 2000; ftdmchan 299 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_WINK)) { ftdmchan 300 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_BUSY); ftdmchan 302 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 310 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_BUSY); ftdmchan 317 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_ATTN); ftdmchan 324 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 331 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK) && ftdmchan 332 src/ftmod/ftmod_analog_em/ftmod_analog_em.c (ftdmchan->last_state == FTDM_CHANNEL_STATE_RINGING || ftdmchan->last_state == FTDM_CHANNEL_STATE_DIALTONE ftdmchan 333 src/ftmod/ftmod_analog_em/ftmod_analog_em.c || ftdmchan->last_state == FTDM_CHANNEL_STATE_RING)) { ftdmchan 334 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_BUSY); ftdmchan 336 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_NORMAL_CLEARING; ftdmchan 337 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 358 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_clear_flag_locked(ftdmchan->span, FTDM_SPAN_STATE_CHANGE); ftdmchan 359 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_complete_state(ftdmchan); ftdmchan 364 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdmchan->span_id, ftdmchan->chan_id, ftdmchan 365 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_state2str(ftdmchan->state)); ftdmchan 366 src/ftmod/ftmod_analog_em/ftmod_analog_em.c switch(ftdmchan->state) { ftdmchan 369 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_use(ftdmchan); ftdmchan 370 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_clear_needed_tones(ftdmchan); ftdmchan 371 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_flush_dtmf(ftdmchan); ftdmchan 373 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK)) { ftdmchan 374 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_OFFHOOK, NULL); ftdmchan 379 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 385 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_use(ftdmchan); ftdmchan 390 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_use(ftdmchan); ftdmchan 392 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 393 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_string(ftdmchan->caller_data.dnis.digits, ftdmchan->chan_number); ftdmchan 395 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_string(ftdmchan->caller_data.dnis.digits, dtmf); ftdmchan 400 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 407 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 413 src/ftmod/ftmod_analog_em/ftmod_analog_em.c memset(&ftdmchan->caller_data, 0, sizeof(ftdmchan->caller_data)); ftdmchan 417 src/ftmod/ftmod_analog_em/ftmod_analog_em.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_DIAL]); ftdmchan 420 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_WINK, NULL); ftdmchan 426 src/ftmod/ftmod_analog_em/ftmod_analog_em.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_RING]); ftdmchan 432 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_NORMAL_CIRCUIT_CONGESTION; ftdmchan 433 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK) && !ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 435 src/ftmod/ftmod_analog_em/ftmod_analog_em.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_BUSY]); ftdmchan 438 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 444 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK) && !ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 446 src/ftmod/ftmod_analog_em/ftmod_analog_em.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_ATTN]); ftdmchan 449 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 459 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdmchan->state == FTDM_CHANNEL_STATE_DIALTONE || ftdmchan->state == FTDM_CHANNEL_STATE_COLLECT) { ftdmchan 460 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if ((dlen = ftdm_channel_dequeue_dtmf(ftdmchan, dtmf + dtmf_offset, sizeof(dtmf) - strlen(dtmf)))) { ftdmchan 462 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdmchan->state == FTDM_CHANNEL_STATE_DIALTONE) { ftdmchan 463 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_COLLECT); ftdmchan 470 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdm_span_send_signal(ftdmchan->span, &sig) == FTDM_BREAK) { ftdmchan 479 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 484 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdm_channel_wait(ftdmchan, &flags, interval * 2) != FTDM_SUCCESS) { ftdmchan 492 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdm_channel_read(ftdmchan, frame, &len) != FTDM_SUCCESS) { ftdmchan 493 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_log(FTDM_LOG_ERROR, "READ ERROR [%s]\n", ftdmchan->last_error); ftdmchan 497 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdmchan->detected_tones[0]) { ftdmchan 501 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdmchan->detected_tones[i]) { ftdmchan 502 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_log(FTDM_LOG_DEBUG, "Detected tone %s on %d:%d\n", ftdm_tonemap2str(i), ftdmchan->span_id, ftdmchan->chan_id); ftdmchan 506 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdmchan->detected_tones[FTDM_TONEMAP_BUSY] || ftdmchan 507 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdmchan->detected_tones[FTDM_TONEMAP_FAIL1] || ftdmchan 508 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdmchan->detected_tones[FTDM_TONEMAP_FAIL2] || ftdmchan 509 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdmchan->detected_tones[FTDM_TONEMAP_FAIL3] || ftdmchan 510 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdmchan->detected_tones[FTDM_TONEMAP_ATTN] ftdmchan 513 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_BUSY); ftdmchan 514 src/ftmod/ftmod_analog_em/ftmod_analog_em.c } else if (ftdmchan->detected_tones[FTDM_TONEMAP_RING]) { ftdmchan 515 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 518 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_clear_detected_tones(ftdmchan); ftdmchan 521 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if ((ftdmchan->dtmf_buffer && ftdm_buffer_inuse(ftdmchan->dtmf_buffer))) { ftdmchan 524 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_write(ftdmchan, frame, sizeof(frame), &rlen); ftdmchan 532 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdmchan->effective_codec != FTDM_CODEC_SLIN) { ftdmchan 538 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdmchan->effective_codec != FTDM_CODEC_SLIN) { ftdmchan 541 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdmchan->native_codec == FTDM_CODEC_ULAW) { ftdmchan 543 src/ftmod/ftmod_analog_em/ftmod_analog_em.c } else if (ftdmchan->native_codec == FTDM_CODEC_ALAW) { ftdmchan 550 src/ftmod/ftmod_analog_em/ftmod_analog_em.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "codec error!"); ftdmchan 555 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_write(ftdmchan, frame, sizeof(frame), &rlen); ftdmchan 560 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_ONHOOK, NULL); ftdmchan 562 src/ftmod/ftmod_analog_em/ftmod_analog_em.c closed_chan = ftdmchan; ftdmchan 563 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_close(&ftdmchan); ftdmchan 257 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_isdn_data_t *isdn_data = ftdmchan->span->signal_data; ftdmchan 289 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND); ftdmchan 290 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DIALING); ftdmchan 489 src/ftmod/ftmod_isdn/ftmod_isdn.c *ftdmchan = new_chan; ftdmchan 517 src/ftmod/ftmod_isdn/ftmod_isdn.c *ftdmchan = NULL; ftdmchan 560 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 574 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan = Q931CallIsOutgoing(call) ? isdn_data->channels_local_crv[call_crv] : isdn_data->channels_remote_crv[call_crv]; ftdmchan 575 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 577 src/ftmod/ftmod_isdn/ftmod_isdn.c sig.chan_id = ftdmchan->chan_id; ftdmchan 578 src/ftmod/ftmod_isdn/ftmod_isdn.c sig.span_id = ftdmchan->span_id; ftdmchan 579 src/ftmod/ftmod_isdn/ftmod_isdn.c sig.channel = ftdmchan; ftdmchan 592 src/ftmod/ftmod_isdn/ftmod_isdn.c if (!ftdmchan) { ftdmchan 597 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_channel_get_state(ftdmchan) != FTDM_CHANNEL_STATE_DOWN) { ftdmchan 599 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_span_id(ftdmchan), ftdmchan 600 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_id(ftdmchan)); ftdmchan 610 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_span_send_signal(ftdm_channel_get_span(ftdmchan), &sig); ftdmchan 613 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 639 src/ftmod/ftmod_isdn/ftmod_isdn.c if (!ftdmchan) { ftdmchan 645 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_span_id(ftdmchan), ftdmchan 646 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_id(ftdmchan)); ftdmchan 654 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_span_send_signal(ftdm_channel_get_span(ftdmchan), &sig); ftdmchan 657 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 680 src/ftmod/ftmod_isdn/ftmod_isdn.c if (!ftdmchan) { ftdmchan 684 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 738 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 809 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan = isdn_data->channels_local_crv[gen->CRV]; ftdmchan 811 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan = isdn_data->channels_remote_crv[gen->CRV]; ftdmchan 815 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan, ftdmchan 816 src/ftmod/ftmod_isdn/ftmod_isdn.c ((ftdmchan) ? ftdm_channel_get_span_id(ftdmchan) : -1), ftdmchan 817 src/ftmod/ftmod_isdn/ftmod_isdn.c ((ftdmchan) ? ftdm_channel_get_id(ftdmchan) : -1), ftdmchan 826 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 830 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_SUSPENDED); ftdmchan 832 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_span_id(ftdmchan), ftdmchan 833 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_id(ftdmchan)); ftdmchan 834 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 839 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_SUSPENDED); ftdmchan 840 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 845 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_SUSPENDED); ftdmchan 846 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 865 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan = ftdm_span_get_channel(span, chan_id); ftdmchan 867 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 868 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 887 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 888 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_channel_get_state(ftdmchan) == FTDM_CHANNEL_STATE_TERMINATING || ftdmchan 889 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_state(ftdmchan) == FTDM_CHANNEL_STATE_HANGUP) ftdmchan 892 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); ftdmchan 894 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 897 src/ftmod/ftmod_isdn/ftmod_isdn.c else if ((gen->MesType == Q931mes_RELEASE && ftdm_channel_get_state(ftdmchan) <= FTDM_CHANNEL_STATE_UP) || ftdmchan 898 src/ftmod/ftmod_isdn/ftmod_isdn.c (gen->MesType == Q931mes_RELEASE_COMPLETE && ftdm_channel_get_state(ftdmchan) == FTDM_CHANNEL_STATE_DIALING)) { ftdmchan 908 src/ftmod/ftmod_isdn/ftmod_isdn.c sig.span_id = ftdm_channel_get_span_id(ftdmchan); ftdmchan 909 src/ftmod/ftmod_isdn/ftmod_isdn.c sig.chan_id = ftdm_channel_get_id(ftdmchan); ftdmchan 910 src/ftmod/ftmod_isdn/ftmod_isdn.c sig.channel = ftdmchan; ftdmchan 917 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_state_str(ftdmchan), ftdmchan 918 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_span_id(ftdmchan), ftdmchan 919 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_id(ftdmchan)); ftdmchan 921 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_log(FTDM_LOG_DEBUG, "Ignoring %s on channel %d\n", what, ftdm_channel_get_id(ftdmchan)); ftdmchan 930 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 932 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->caller_data.hangup_cause = cause->Value; ftdmchan 933 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 941 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 942 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA); ftdmchan 950 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 951 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS); ftdmchan 960 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 961 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 983 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan && ftdmchan == isdn_data->channels_remote_crv[gen->CRV]) { ftdmchan 985 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_span_id(ftdmchan), ftdmchan 986 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_id(ftdmchan), ftdmchan 987 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_ph_span_id(ftdmchan), ftdmchan 988 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_ph_id(ftdmchan), ftdmchan 989 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_state_str(ftdmchan)); ftdmchan 993 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan = NULL; ftdmchan 1008 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan = zc; ftdmchan 1029 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan = ftdm_span_get_channel(span, chan_id); ftdmchan 1045 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan = NULL; ftdmchan 1049 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 1050 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INUSE) || ftdm_channel_get_state(ftdmchan) != FTDM_CHANNEL_STATE_DOWN) { ftdmchan 1051 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_channel_get_state(ftdmchan) == FTDM_CHANNEL_STATE_DOWN || ftdm_channel_get_state(ftdmchan) >= FTDM_CHANNEL_STATE_TERMINATING) ftdmchan 1055 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_span_id(ftdmchan), ftdmchan 1056 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_id(ftdmchan), ftdmchan 1057 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_ph_span_id(ftdmchan), ftdmchan 1058 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_ph_id(ftdmchan)); ftdmchan 1061 src/ftmod/ftmod_isdn/ftmod_isdn.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INUSE)) { ftdmchan 1067 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INUSE)) { ftdmchan 1069 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_span_id(ftdmchan), ftdmchan 1070 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_id(ftdmchan), ftdmchan 1071 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_ph_span_id(ftdmchan), ftdmchan 1072 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_ph_id(ftdmchan)); ftdmchan 1073 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan = NULL; ftdmchan 1077 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan && ftdm_channel_get_state(ftdmchan) == FTDM_CHANNEL_STATE_DOWN) { ftdmchan 1078 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_caller_data_t *caller_data = ftdm_channel_get_caller_data(ftdmchan); ftdmchan 1080 src/ftmod/ftmod_isdn/ftmod_isdn.c isdn_data->channels_remote_crv[gen->CRV] = ftdmchan; ftdmchan 1081 src/ftmod/ftmod_isdn/ftmod_isdn.c memset(&ftdmchan->caller_data, 0, sizeof(ftdmchan->caller_data)); ftdmchan 1083 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan->call_data) { ftdmchan 1084 src/ftmod/ftmod_isdn/ftmod_isdn.c memset(ftdmchan->call_data, 0, sizeof(ftdm_isdn_bchan_data_t)); ftdmchan 1096 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->caller_data.CRV = gen->CRV; ftdmchan 1129 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 1142 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.IntType = FTDM_SPAN_IS_BRI(ftdmchan->span) ? 0 : 1; /* PRI = 1, BRI = 0 */ ftdmchan 1143 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.PrefExcl = FTDM_SPAN_IS_NT(ftdmchan->span) ? 1 : 0; /* Exclusive in NT-mode = 1, Preferred otherwise = 0 */ ftdmchan 1147 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.ChanSlot = (unsigned char)ftdm_channel_get_id(ftdmchan); ftdmchan 1149 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.InfoChanSel = (unsigned char)ftdm_channel_get_id(ftdmchan) & 0x03; /* None = 0, B1 = 1, B2 = 2, Any = 3 */ ftdmchan 1173 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DIALTONE); ftdmchan 1178 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 1186 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 1187 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_log(FTDM_LOG_CRIT, "Received CALL PROCEEDING message for channel %d\n", ftdm_channel_get_id(ftdmchan)); ftdmchan 1188 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS); ftdmchan 1196 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 1197 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_log(FTDM_LOG_DEBUG, "Received CONNECT_ACK message for channel %d\n", ftdm_channel_get_id(ftdmchan)); ftdmchan 1206 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 1207 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_log(FTDM_LOG_CRIT, "Received INFORMATION message for channel %d\n", ftdm_channel_get_id(ftdmchan)); ftdmchan 1209 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_channel_get_state(ftdmchan) == FTDM_CHANNEL_STATE_DIALTONE) { ftdmchan 1216 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_isdn_bchan_data_t *data = (ftdm_isdn_bchan_data_t *)ftdmchan->call_data; ftdmchan 1226 src/ftmod/ftmod_isdn/ftmod_isdn.c pos = strlen(ftdmchan->caller_data.dnis.digits); ftdmchan 1227 src/ftmod/ftmod_isdn/ftmod_isdn.c strcat(&ftdmchan->caller_data.dnis.digits[pos], (char *)callednum->Digit); ftdmchan 1232 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_log(FTDM_LOG_DEBUG, "Received new overlap digit (%s), destination number: %s\n", callednum->Digit, ftdmchan->caller_data.dnis.digits); ftdmchan 1238 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 1299 src/ftmod/ftmod_isdn/ftmod_isdn.c static __inline__ void state_advance(ftdm_channel_t *ftdmchan) ftdmchan 1301 src/ftmod/ftmod_isdn/ftmod_isdn.c Q931mes_Generic *gen = (Q931mes_Generic *) ftdmchan->caller_data.raw_data; ftdmchan 1302 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_isdn_data_t *isdn_data = ftdmchan->span->signal_data; ftdmchan 1303 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_span_t *span = ftdm_channel_get_span(ftdmchan); ftdmchan 1308 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_span_id(ftdmchan), ftdmchan 1309 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_id(ftdmchan), ftdmchan 1310 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_get_state_str(ftdmchan)); ftdmchan 1313 src/ftmod/ftmod_isdn/ftmod_isdn.c sig.span_id = ftdm_channel_get_span_id(ftdmchan); ftdmchan 1314 src/ftmod/ftmod_isdn/ftmod_isdn.c sig.chan_id = ftdm_channel_get_id(ftdmchan); ftdmchan 1315 src/ftmod/ftmod_isdn/ftmod_isdn.c sig.channel = ftdmchan; ftdmchan 1317 src/ftmod/ftmod_isdn/ftmod_isdn.c switch (ftdm_channel_get_state(ftdmchan)) { ftdmchan 1321 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1328 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_close(&ftdmchan); ftdmchan 1333 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1335 src/ftmod/ftmod_isdn/ftmod_isdn.c if ((status = ftdm_span_send_signal(ftdm_channel_get_span(ftdmchan), &sig) != FTDM_SUCCESS)) { ftdmchan 1336 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1346 src/ftmod/ftmod_isdn/ftmod_isdn.c if (FTDM_SPAN_IS_NT(ftdm_channel_get_span(ftdmchan))) { ftdmchan 1353 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.IntType = FTDM_SPAN_IS_BRI(ftdm_channel_get_span(ftdmchan)) ? 0 : 1; /* PRI = 1, BRI = 0 */ ftdmchan 1359 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.ChanSlot = (unsigned char)ftdm_channel_get_id(ftdmchan); ftdmchan 1361 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.InfoChanSel = (unsigned char)ftdm_channel_get_id(ftdmchan) & 0x03; /* None = 0, B1 = 1, B2 = 2, Any = 3 */ ftdmchan 1372 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_isdn_bchan_data_t *data = (ftdm_isdn_bchan_data_t *)ftdmchan->call_data; ftdmchan 1381 src/ftmod/ftmod_isdn/ftmod_isdn.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1384 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1391 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_NORMAL_UNSPECIFIED; ftdmchan 1394 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 1399 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1402 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1405 src/ftmod/ftmod_isdn/ftmod_isdn.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OPEN)) { ftdmchan 1406 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 1407 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1419 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1422 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1425 src/ftmod/ftmod_isdn/ftmod_isdn.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OPEN)) { ftdmchan 1426 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 1427 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1434 src/ftmod/ftmod_isdn/ftmod_isdn.c Q931Rx43(&isdn_data->q931, gen, ftdmchan->caller_data.raw_data_len); ftdmchan 1440 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_caller_data_t *caller_data = ftdm_channel_get_caller_data(ftdmchan); ftdmchan 1455 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GET_NATIVE_CODEC, &codec); ftdmchan 1480 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.IntType = FTDM_SPAN_IS_BRI(ftdm_channel_get_span(ftdmchan)) ? 0 : 1; /* PRI = 1, BRI = 0 */ ftdmchan 1481 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.PrefExcl = FTDM_SPAN_IS_NT(ftdm_channel_get_span(ftdmchan)) ? 1 : 0; /* Exclusive in NT-mode = 1, Preferred otherwise = 0 */ ftdmchan 1485 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.ChanSlot = (unsigned char)ftdm_channel_get_id(ftdmchan); ftdmchan 1487 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.InfoChanSel = (unsigned char)ftdm_channel_get_id(ftdmchan) & 0x03; /* None = 0, B1 = 1, B2 = 2, Any = 3 */ ftdmchan 1503 src/ftmod/ftmod_isdn/ftmod_isdn.c if (!(isdn_data->opts & FTDM_ISDN_OPT_OMIT_DISPLAY_IE) && FTDM_SPAN_IS_NT(ftdm_channel_get_span(ftdmchan))) { ftdmchan 1546 src/ftmod/ftmod_isdn/ftmod_isdn.c isdn_data->channels_local_crv[gen->CRV] = ftdmchan; ftdmchan 1558 src/ftmod/ftmod_isdn/ftmod_isdn.c Q931CallSetPrivate(call, ftdm_channel_get_span(ftdmchan)); ftdmchan 1566 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_channel_get_last_state(ftdmchan) == FTDM_CHANNEL_STATE_HANGUP) { ftdmchan 1571 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 1576 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_caller_data_t *caller_data = ftdm_channel_get_caller_data(ftdmchan); ftdmchan 1579 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_log(FTDM_LOG_DEBUG, "Hangup: Direction %s\n", ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND) ? "Outbound" : "Inbound"); ftdmchan 1581 src/ftmod/ftmod_isdn/ftmod_isdn.c gen->CRVFlag = ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND) ? 0 : 1; ftdmchan 1593 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_channel_get_last_state(ftdmchan) == FTDM_CHANNEL_STATE_RING) { ftdmchan 1608 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 1610 src/ftmod/ftmod_isdn/ftmod_isdn.c else if (ftdm_channel_get_last_state(ftdmchan) <= FTDM_CHANNEL_STATE_PROGRESS) { ftdmchan 1639 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_log(FTDM_LOG_DEBUG, "Terminating: Direction %s\n", ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND) ? "Outbound" : "Inbound"); ftdmchan 1645 src/ftmod/ftmod_isdn/ftmod_isdn.c gen->CRVFlag = ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND) ? 0 : 1; ftdmchan 63 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_libpri_data_t *isdn_data = ftdmchan->span->signal_data; ftdmchan 97 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND); ftdmchan 98 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DIALING); ftdmchan 268 src/ftmod/ftmod_pika/ftmod_pika.c ftdm_channel_t *ftdmchan = event->userData; ftdmchan 269 src/ftmod/ftmod_pika/ftmod_pika.c pika_chan_data_t *chan_data = (pika_chan_data_t *) ftdmchan->io_data; ftdmchan 683 src/ftmod/ftmod_pika/ftmod_pika.c pika_chan_data_t *chan_data = (pika_chan_data_t *) ftdmchan->io_data; ftdmchan 693 src/ftmod/ftmod_pika/ftmod_pika.c if (ftdmchan->type == FTDM_CHAN_TYPE_FXS || ftdmchan->type == FTDM_CHAN_TYPE_FXO || ftdmchan->type == FTDM_CHAN_TYPE_B) { ftdmchan 718 src/ftmod/ftmod_pika/ftmod_pika.c pika_chan_data_t *chan_data = (pika_chan_data_t *) ftdmchan->io_data; ftdmchan 757 src/ftmod/ftmod_pika/ftmod_pika.c pika_chan_data_t *chan_data = (pika_chan_data_t *) ftdmchan->io_data; ftdmchan 762 src/ftmod/ftmod_pika/ftmod_pika.c if (ftdmchan->type == FTDM_CHAN_TYPE_DQ921) { ftdmchan 772 src/ftmod/ftmod_pika/ftmod_pika.c len = ftdmchan->packet_len; ftdmchan 798 src/ftmod/ftmod_pika/ftmod_pika.c pika_chan_data_t *chan_data = (pika_chan_data_t *) ftdmchan->io_data; ftdmchan 801 src/ftmod/ftmod_pika/ftmod_pika.c if (ftdmchan->type == FTDM_CHAN_TYPE_DQ921) { ftdmchan 824 src/ftmod/ftmod_pika/ftmod_pika.c pika_chan_data_t *chan_data = (pika_chan_data_t *) ftdmchan->io_data; ftdmchan 833 src/ftmod/ftmod_pika/ftmod_pika.c PKH_ERROR_GetText(pk_status, ftdmchan->last_error, sizeof(ftdmchan->last_error)); ftdmchan 836 src/ftmod/ftmod_pika/ftmod_pika.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_OFFHOOK); ftdmchan 843 src/ftmod/ftmod_pika/ftmod_pika.c PKH_ERROR_GetText(pk_status, ftdmchan->last_error, sizeof(ftdmchan->last_error)); ftdmchan 846 src/ftmod/ftmod_pika/ftmod_pika.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_OFFHOOK); ftdmchan 853 src/ftmod/ftmod_pika/ftmod_pika.c PKH_ERROR_GetText(pk_status, ftdmchan->last_error, sizeof(ftdmchan->last_error)); ftdmchan 856 src/ftmod/ftmod_pika/ftmod_pika.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_RINGING); ftdmchan 863 src/ftmod/ftmod_pika/ftmod_pika.c PKH_ERROR_GetText(pk_status, ftdmchan->last_error, sizeof(ftdmchan->last_error)); ftdmchan 866 src/ftmod/ftmod_pika/ftmod_pika.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_RINGING); ftdmchan 873 src/ftmod/ftmod_pika/ftmod_pika.c FTDM_COMMAND_OBJ_INT = ftdmchan->native_interval; ftdmchan 883 src/ftmod/ftmod_pika/ftmod_pika.c ftdmchan->packet_len = (uint32_t)chan_data->record_config.bufferSize; ftdmchan 884 src/ftmod/ftmod_pika/ftmod_pika.c ftdmchan->effective_interval = ftdmchan->native_interval = ftdmchan->packet_len / 8; ftdmchan 892 src/ftmod/ftmod_pika/ftmod_pika.c FTDM_COMMAND_OBJ_INT = ftdmchan->dtmf_on; ftdmchan 899 src/ftmod/ftmod_pika/ftmod_pika.c FTDM_COMMAND_OBJ_INT = ftdmchan->dtmf_on; ftdmchan 907 src/ftmod/ftmod_pika/ftmod_pika.c ftdmchan->dtmf_on = val; ftdmchan 910 src/ftmod/ftmod_pika/ftmod_pika.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "invalid value %d range 10-1000", val); ftdmchan 919 src/ftmod/ftmod_pika/ftmod_pika.c ftdmchan->dtmf_off = val; ftdmchan 922 src/ftmod/ftmod_pika/ftmod_pika.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "invalid value %d range 10-1000", val); ftdmchan 937 src/ftmod/ftmod_pika/ftmod_pika.c PKH_ERROR_GetText(pk_status, ftdmchan->last_error, sizeof(ftdmchan->last_error)); ftdmchan 966 src/ftmod/ftmod_pika/ftmod_pika.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 979 src/ftmod/ftmod_pika/ftmod_pika.c ftdmchan = span_data->last_oob_event.userData; ftdmchan 1023 src/ftmod/ftmod_pika/ftmod_pika.c ftdm_channel_t *ftdmchan; ftdmchan 1026 src/ftmod/ftmod_pika/ftmod_pika.c ftdmchan = span->channels[x]; ftdmchan 1027 src/ftmod/ftmod_pika/ftmod_pika.c assert(ftdmchan != NULL); ftdmchan 1028 src/ftmod/ftmod_pika/ftmod_pika.c chan_data = (pika_chan_data_t *) ftdmchan->io_data; ftdmchan 1032 src/ftmod/ftmod_pika/ftmod_pika.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_EVENT); ftdmchan 1033 src/ftmod/ftmod_pika/ftmod_pika.c ftdmchan->last_event_time = last_event_time; ftdmchan 1044 src/ftmod/ftmod_pika/ftmod_pika.c if (ftdmchan) { ftdmchan 1045 src/ftmod/ftmod_pika/ftmod_pika.c pika_chan_data_t *chan_data = (pika_chan_data_t *) ftdmchan->io_data; ftdmchan 1048 src/ftmod/ftmod_pika/ftmod_pika.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_EVENT); ftdmchan 1049 src/ftmod/ftmod_pika/ftmod_pika.c ftdmchan->last_event_time = ftdm_current_time_in_ms(); ftdmchan 1227 src/ftmod/ftmod_pika/ftmod_pika.c pika_chan_data_t *chan_data = (pika_chan_data_t *) ftdmchan->io_data; ftdmchan 1228 src/ftmod/ftmod_pika/ftmod_pika.c pika_span_data_t *span_data = (pika_span_data_t *) ftdmchan->span->io_data; ftdmchan 1243 src/ftmod/ftmod_pika/ftmod_pika.c switch(ftdmchan->type) { ftdmchan 268 src/ftmod/ftmod_pritap/ftmod_pritap.c static ftdm_status_t state_advance(ftdm_channel_t *ftdmchan) ftdmchan 272 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_channel_t *peerchan = ftdmchan->call_data; ftdmchan 274 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "processing state %s\n", ftdm_channel_state2str(ftdmchan->state)); ftdmchan 277 src/ftmod/ftmod_pritap/ftmod_pritap.c sig.chan_id = ftdmchan->chan_id; ftdmchan 278 src/ftmod/ftmod_pritap/ftmod_pritap.c sig.span_id = ftdmchan->span_id; ftdmchan 279 src/ftmod/ftmod_pritap/ftmod_pritap.c sig.channel = ftdmchan; ftdmchan 281 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_channel_complete_state(ftdmchan); ftdmchan 283 src/ftmod/ftmod_pritap/ftmod_pritap.c switch (ftdmchan->state) { ftdmchan 286 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdmchan->call_data = NULL; ftdmchan 287 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_channel_close(&ftdmchan); ftdmchan 303 src/ftmod/ftmod_pritap/ftmod_pritap.c if ((status = ftdm_span_send_signal(ftdmchan->span, &sig) != FTDM_SUCCESS)) { ftdmchan 304 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 311 src/ftmod/ftmod_pritap/ftmod_pritap.c if (ftdmchan->last_state != FTDM_CHANNEL_STATE_HANGUP) { ftdmchan 313 src/ftmod/ftmod_pritap/ftmod_pritap.c status = ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 315 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 321 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "ignoring state change from %s to %s\n", ftdm_channel_state2str(ftdmchan->last_state), ftdm_channel_state2str(ftdmchan->state)); ftdmchan 750 src/ftmod/ftmod_pritap/ftmod_pritap.c static ftdm_status_t ftdm_pritap_sig_read(ftdm_channel_t *ftdmchan, void *data, ftdm_size_t size) ftdmchan 754 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_channel_t *peerchan = ftdmchan->call_data; ftdmchan 761 src/ftmod/ftmod_pritap/ftmod_pritap.c if (!FTDM_IS_VOICE_CHANNEL(ftdmchan) || !ftdmchan->call_data) { ftdmchan 765 src/ftmod/ftmod_pritap/ftmod_pritap.c if (ftdmchan->native_codec != peerchan->native_codec) { ftdmchan 766 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Invalid peer channel with format %d, ours = %d\n", ftdmchan 767 src/ftmod/ftmod_pritap/ftmod_pritap.c peerchan->native_codec, ftdmchan->native_codec); ftdmchan 774 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "Failed to read from peer channel!\n"); ftdmchan 778 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "read from peer channel only %d bytes!\n", sizeread); ftdmchan 66 src/ftmod/ftmod_r2/ftmod_r2.c #define R2CALL(ftdmchan) ((ftdm_r2_call_t*)((ftdmchan)->call_data)) ftdmchan 167 src/ftmod/ftmod_r2/ftmod_r2.c static ftdm_status_t ftdm_r2_state_advance(ftdm_channel_t *ftdmchan); ftdmchan 170 src/ftmod/ftmod_r2/ftmod_r2.c #define IS_ACCEPTING_PENDING(ftdmchan) \ ftdmchan 171 src/ftmod/ftmod_r2/ftmod_r2.c ( (!ftdm_test_flag((ftdmchan), FTDM_CHANNEL_OUTBOUND)) && !R2CALL((ftdmchan))->accepted && \ ftdmchan 172 src/ftmod/ftmod_r2/ftmod_r2.c ((ftdmchan)->state == FTDM_CHANNEL_STATE_PROGRESS || \ ftdmchan 173 src/ftmod/ftmod_r2/ftmod_r2.c (ftdmchan)->state == FTDM_CHANNEL_STATE_PROGRESS_MEDIA || \ ftdmchan 174 src/ftmod/ftmod_r2/ftmod_r2.c (ftdmchan)->state == FTDM_CHANNEL_STATE_UP) ) ftdmchan 243 src/ftmod/ftmod_r2/ftmod_r2.c static void ftdm_r2_set_chan_sig_status(ftdm_channel_t *ftdmchan, ftdm_signaling_status_t status) ftdmchan 246 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Signalling link status changed to %s\n", ftdm_signaling_status2str(status)); ftdmchan 249 src/ftmod/ftmod_r2/ftmod_r2.c sig.chan_id = ftdmchan->chan_id; ftdmchan 250 src/ftmod/ftmod_r2/ftmod_r2.c sig.span_id = ftdmchan->span_id; ftdmchan 251 src/ftmod/ftmod_r2/ftmod_r2.c sig.channel = ftdmchan; ftdmchan 254 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdm_span_send_signal(ftdmchan->span, &sig) != FTDM_SUCCESS) { ftdmchan 255 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Failed to change channel status to %s\n", ftdm_signaling_status2str(status)); ftdmchan 358 src/ftmod/ftmod_r2/ftmod_r2.c static void ft_r2_accept_call(ftdm_channel_t *ftdmchan) ftdmchan 360 src/ftmod/ftmod_r2/ftmod_r2.c openr2_chan_t *r2chan = R2CALL(ftdmchan)->r2chan; ftdmchan 368 src/ftmod/ftmod_r2/ftmod_r2.c static void ft_r2_answer_call(ftdm_channel_t *ftdmchan) ftdmchan 370 src/ftmod/ftmod_r2/ftmod_r2.c openr2_chan_t *r2chan = R2CALL(ftdmchan)->r2chan; ftdmchan 376 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->answer_pending = 0; ftdmchan 446 src/ftmod/ftmod_r2/ftmod_r2.c r2data = ftdmchan->span->signal_data; ftdmchan 448 src/ftmod/ftmod_r2/ftmod_r2.c ft_r2_clean_call(ftdmchan->call_data); ftdmchan 450 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdmchan->caller_data.cpc == FTDM_CPC_INVALID || ftdmchan->caller_data.cpc == FTDM_CPC_UNKNOWN) { ftdmchan 453 src/ftmod/ftmod_r2/ftmod_r2.c category = ftdm_r2_ftdm_cpc_to_openr2_cpc(ftdmchan->caller_data.cpc); ftdmchan 458 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_ENABLE_INPUT_DUMP, &r2data->mf_dump_size); ftdmchan 459 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_ENABLE_OUTPUT_DUMP, &r2data->mf_dump_size); ftdmchan 462 src/ftmod/ftmod_r2/ftmod_r2.c ret = openr2_chan_make_call(R2CALL(ftdmchan)->r2chan, ftdmchan 463 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->caller_data.cid_num.digits, ftdmchan 464 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->caller_data.dnis.digits, ftdmchan 466 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->caller_data.pres == FTDM_PRES_ALLOWED ? 0 : 1); ftdmchan 469 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "Failed to make call in R2 channel, openr2_chan_make_call failed\n"); ftdmchan 473 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DIALING); ftdmchan 475 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_set_feature(ftdmchan, FTDM_CHANNEL_FEATURE_IO_STATS); ftdmchan 476 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_FLUSH_TX_BUFFERS, NULL); ftdmchan 477 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_FLUSH_RX_BUFFERS, NULL); ftdmchan 502 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_SIG_UP)) { ftdmchan 513 src/ftmod/ftmod_r2/ftmod_r2.c openr2_chan_t *r2chan = R2CALL(ftdmchan)->r2chan; ftdmchan 521 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Channel signaling status already in BLOCK state\n"); ftdmchan 525 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Channel signaling status already in IDLE state\n"); ftdmchan 535 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_r2_set_chan_sig_status(ftdmchan, status); ftdmchan 541 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_r2_set_chan_sig_status(ftdmchan, status); ftdmchan 545 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "Cannot set signaling status to unknown value '%d'\n", status); ftdmchan 604 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 605 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_r2_data_t *r2data = ftdmchan->span->signal_data; ftdmchan 607 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_NOTICE, "Received request to start call\n"); ftdmchan 609 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdmchan->state == FTDM_CHANNEL_STATE_HANGUP) { ftdmchan 610 src/ftmod/ftmod_r2/ftmod_r2.c r2call = R2CALL(ftdmchan); ftdmchan 615 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Cancelled protocol error recovery timer\n"); ftdmchan 616 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 617 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_advance_states(ftdmchan); ftdmchan 621 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INUSE)) { ftdmchan 622 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Cannot start call when channel is in use (state = %s)\n", ftdm_channel_state2str(ftdmchan->state)); ftdmchan 626 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdmchan->state != FTDM_CHANNEL_STATE_DOWN) { ftdmchan 627 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Cannot handle request to start call in state %s\n", ftdm_channel_state2str(ftdmchan->state)); ftdmchan 631 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 632 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Failed to open channel during incoming call! [%s]\n", ftdmchan->last_error); ftdmchan 637 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_use(ftdmchan); ftdmchan 639 src/ftmod/ftmod_r2/ftmod_r2.c memset(ftdmchan->caller_data.dnis.digits, 0, sizeof(ftdmchan->caller_data.collected)); ftdmchan 640 src/ftmod/ftmod_r2/ftmod_r2.c memset(ftdmchan->caller_data.ani.digits, 0, sizeof(ftdmchan->caller_data.collected)); ftdmchan 642 src/ftmod/ftmod_r2/ftmod_r2.c ft_r2_clean_call(ftdmchan->call_data); ftdmchan 643 src/ftmod/ftmod_r2/ftmod_r2.c r2call = R2CALL(ftdmchan); ftdmchan 647 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_ENABLE_INPUT_DUMP, &r2data->mf_dump_size); ftdmchan 648 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_ENABLE_OUTPUT_DUMP, &r2data->mf_dump_size); ftdmchan 651 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_COLLECT); ftdmchan 652 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_set_feature(ftdmchan, FTDM_CHANNEL_FEATURE_IO_STATS); ftdmchan 653 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_FLUSH_TX_BUFFERS, NULL); ftdmchan 654 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_FLUSH_RX_BUFFERS, NULL); ftdmchan 662 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 663 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_r2_data_t *r2data = ftdmchan->span->signal_data; ftdmchan 665 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_NOTICE, "Call offered with ANI = %s, DNIS = %s, Category = %d, ANI restricted = %s\n", ftdmchan 670 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DISABLE_INPUT_DUMP, NULL); ftdmchan 671 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DISABLE_OUTPUT_DUMP, NULL); ftdmchan 676 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_NOTICE, "Rejecting collect call\n"); ftdmchan 679 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 681 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->caller_data.cpc = ftdm_openr2_cpc_to_r2_ftdm_cpc(category); ftdmchan 682 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->caller_data.pres = ani_restricted ? FTDM_PRES_RESTRICTED : FTDM_PRES_ALLOWED; ftdmchan 712 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 713 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_r2_data_t *r2data = ftdmchan->span->signal_data; ftdmchan 715 src/ftmod/ftmod_r2/ftmod_r2.c char *logname = R2CALL(ftdmchan)->logname; ftdmchan 717 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Dumping IO output in prefix %s\n", logname); ftdmchan 719 src/ftmod/ftmod_r2/ftmod_r2.c logname ? logname : r2data->logdir, ftdmchan->span_id, ftdmchan->chan_id); ftdmchan 721 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Dumping IO input in file %s\n", dfile); ftdmchan 722 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DUMP_INPUT, f); ftdmchan 726 src/ftmod/ftmod_r2/ftmod_r2.c logname ? logname : r2data->logdir, ftdmchan->span_id, ftdmchan->chan_id); ftdmchan 728 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Dumping IO output in file %s\n", dfile); ftdmchan 729 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DUMP_OUTPUT, f); ftdmchan 736 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 737 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_r2_data_t *r2data = ftdmchan->span->signal_data; ftdmchan 739 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_NOTICE, "Call accepted\n"); ftdmchan 741 src/ftmod/ftmod_r2/ftmod_r2.c clear_accept_pending(ftdmchan); ftdmchan 748 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_clear_feature(ftdmchan, FTDM_CHANNEL_FEATURE_IO_STATS); ftdmchan 751 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->accepted = 1; ftdmchan 754 src/ftmod/ftmod_r2/ftmod_r2.c if (R2CALL(ftdmchan)->answer_pending) { ftdmchan 755 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Answer was pending, answering now.\n"); ftdmchan 756 src/ftmod/ftmod_r2/ftmod_r2.c ft_r2_answer_call(ftdmchan); ftdmchan 757 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->answer_pending = 0; ftdmchan 763 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DISABLE_INPUT_DUMP, NULL); ftdmchan 764 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DISABLE_OUTPUT_DUMP, NULL); ftdmchan 766 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA); ftdmchan 772 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 773 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_NOTICE, "Call answered\n"); ftdmchan 776 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 783 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 785 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_NOTICE, "Call disconnected\n"); ftdmchan 787 src/ftmod/ftmod_r2/ftmod_r2.c clear_accept_pending(ftdmchan); ftdmchan 789 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->disconnect_rcvd = 1; ftdmchan 791 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdmchan->state == FTDM_CHANNEL_STATE_HANGUP) { ftdmchan 792 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Call had been disconnected already by the user\n"); ftdmchan 798 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->caller_data.hangup_cause = ftdm_r2_cause_to_ftdm_cause(ftdmchan, cause); ftdmchan 799 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 804 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 805 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_NOTICE, "Call finished\n"); ftdmchan 808 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 811 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_advance_states(ftdmchan); ftdmchan 823 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 824 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Alarm notification: %d\n", alarm); ftdmchan 829 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 830 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "OS error: %s\n", strerror(errorcode)); ftdmchan 836 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 837 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_lock(ftdmchan); ftdmchan 838 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdmchan->state != FTDM_CHANNEL_STATE_HANGUP) { ftdmchan 839 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Recovering from protocol error but state is %s!\n", ftdm_channel_state2str(ftdmchan->state)); ftdmchan 842 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 843 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_advance_states(ftdmchan); ftdmchan 845 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_unlock(ftdmchan); ftdmchan 850 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 852 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdmchan->state == FTDM_CHANNEL_STATE_DOWN) { ftdmchan 853 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "Got protocol error when we're already down!\n"); ftdmchan 859 src/ftmod/ftmod_r2/ftmod_r2.c clear_accept_pending(ftdmchan); ftdmchan 861 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->disconnect_rcvd = 1; ftdmchan 862 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->protocol_error = 1; ftdmchan 864 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdmchan->state == FTDM_CHANNEL_STATE_HANGUP) { ftdmchan 865 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "The user already hung up, finishing call in protocol error\n"); ftdmchan 866 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 870 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_PROTOCOL_ERROR; ftdmchan 871 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 876 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 877 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_NOTICE, "Far end blocked in state %s\n", ftdm_channel_state2str(ftdmchan->state)); ftdmchan 878 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_r2_set_chan_sig_status(ftdmchan, FTDM_SIG_STATE_SUSPENDED); ftdmchan 883 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 884 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_NOTICE, "Far end unblocked in state %s\n", ftdm_channel_state2str(ftdmchan->state)); ftdmchan 885 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_r2_set_chan_sig_status(ftdmchan, FTDM_SIG_STATE_UP); ftdmchan 929 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 934 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->span_id, ftdmchan->chan_id, ftdmchan->physical_span_id, ftdmchan->physical_chan_id, ftdmchan 935 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_state2str(ftdmchan->state), logmsg); ftdmchan 943 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 944 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_size_t collected_len = R2CALL(ftdmchan)->dnis_index; ftdmchan 946 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "DNIS digit %c received\n", digit); ftdmchan 949 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->caller_data.dnis.digits[collected_len] = digit; ftdmchan 951 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->caller_data.dnis.digits[collected_len] = '\0'; ftdmchan 952 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->dnis_index = collected_len; ftdmchan 956 src/ftmod/ftmod_r2/ftmod_r2.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 957 src/ftmod/ftmod_r2/ftmod_r2.c sigev.span_id = ftdmchan->span_id; ftdmchan 958 src/ftmod/ftmod_r2/ftmod_r2.c sigev.channel = ftdmchan; ftdmchan 960 src/ftmod/ftmod_r2/ftmod_r2.c r2data = ftdmchan->span->signal_data; ftdmchan 961 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdm_span_send_signal(ftdmchan->span, &sigev) == FTDM_BREAK) { ftdmchan 962 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_NOTICE, "Requested to stop getting DNIS. Current DNIS = %s\n", ftdmchan->caller_data.dnis.digits); ftdmchan 967 src/ftmod/ftmod_r2/ftmod_r2.c if (collected_len == (sizeof(ftdmchan->caller_data.dnis.digits) - 1)) { ftdmchan 968 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "No more room for DNIS. Current DNIS = %s\n", ftdmchan->caller_data.dnis.digits); ftdmchan 977 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 978 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_size_t collected_len = R2CALL(ftdmchan)->ani_index; ftdmchan 981 src/ftmod/ftmod_r2/ftmod_r2.c if (collected_len == (sizeof(ftdmchan->caller_data.ani.digits) - 1)) { ftdmchan 982 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "No more room for ANI, digit dropped: %c\n", digit); ftdmchan 985 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "ANI digit %c received\n", digit); ftdmchan 988 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->caller_data.ani.digits[collected_len] = digit; ftdmchan 990 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->caller_data.ani.digits[collected_len] = '\0'; ftdmchan 991 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->ani_index = collected_len; ftdmchan 998 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 999 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_r2_call_t *r2call = R2CALL(ftdmchan); ftdmchan 1159 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_fd(r2chan); ftdmchan 1163 src/ftmod/ftmod_r2/ftmod_r2.c status = ftdm_channel_read_event(ftdmchan, &fevent); ftdmchan 1166 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "failed to retrieve freetdm event!\n"); ftdmchan 1648 src/ftmod/ftmod_r2/ftmod_r2.c static ftdm_status_t ftdm_r2_state_advance(ftdm_channel_t *ftdmchan) ftdmchan 1652 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_r2_call_t *r2call = R2CALL(ftdmchan); ftdmchan 1654 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_r2_data_t *r2data = ftdmchan->span->signal_data; ftdmchan 1657 src/ftmod/ftmod_r2/ftmod_r2.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 1658 src/ftmod/ftmod_r2/ftmod_r2.c sigev.span_id = ftdmchan->span_id; ftdmchan 1659 src/ftmod/ftmod_r2/ftmod_r2.c sigev.channel = ftdmchan; ftdmchan 1663 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Executing state handler for %s\n", ftdm_channel_state2str(ftdmchan->state)); ftdmchan 1665 src/ftmod/ftmod_r2/ftmod_r2.c if (IS_ACCEPTING_PENDING(ftdmchan)) { ftdmchan 1675 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "State ack for state %s will have to wait a bit\n", ftdm_channel_state2str(ftdmchan->state)); ftdmchan 1676 src/ftmod/ftmod_r2/ftmod_r2.c } else if (ftdmchan->state != FTDM_CHANNEL_STATE_DOWN){ ftdmchan 1677 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_complete_state(ftdmchan); ftdmchan 1680 src/ftmod/ftmod_r2/ftmod_r2.c switch (ftdmchan->state) { ftdmchan 1686 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GET_INTERVAL, &interval); ftdmchan 1688 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Starting processing of incoming call with interval %d\n", interval); ftdmchan 1697 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GET_INTERVAL, &interval); ftdmchan 1699 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Starting outgoing call with interval %d\n", interval); ftdmchan 1709 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 1716 src/ftmod/ftmod_r2/ftmod_r2.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1718 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Accepting call\n"); ftdmchan 1719 src/ftmod/ftmod_r2/ftmod_r2.c ft_r2_accept_call(ftdmchan); ftdmchan 1722 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Notifying progress\n"); ftdmchan 1724 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 1732 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Call was answered\n"); ftdmchan 1733 src/ftmod/ftmod_r2/ftmod_r2.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1735 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Call has not been accepted, need to accept first\n"); ftdmchan 1737 src/ftmod/ftmod_r2/ftmod_r2.c ft_r2_accept_call(ftdmchan); ftdmchan 1740 src/ftmod/ftmod_r2/ftmod_r2.c ft_r2_answer_call(ftdmchan); ftdmchan 1743 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Notifying of call answered\n"); ftdmchan 1745 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 1754 src/ftmod/ftmod_r2/ftmod_r2.c openr2_call_disconnect_cause_t disconnect_cause = ftdm_r2_ftdm_cause_to_openr2_cause(ftdmchan); ftdmchan 1755 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Clearing call, cause = %s\n", openr2_proto_get_disconnect_string(disconnect_cause)); ftdmchan 1762 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "Clearing call due to protocol error\n"); ftdmchan 1773 src/ftmod/ftmod_r2/ftmod_r2.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_CALL_STARTED)) { ftdmchan 1774 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1776 src/ftmod/ftmod_r2/ftmod_r2.c openr2_call_disconnect_cause_t disconnect_cause = ftdm_r2_ftdm_cause_to_openr2_cause(ftdmchan); ftdmchan 1777 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Clearing call, cause = %s\n", openr2_proto_get_disconnect_string(disconnect_cause)); ftdmchan 1780 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 1788 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdmchan->last_state != FTDM_CHANNEL_STATE_RESET) { ftdmchan 1789 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "R2 Call is down\n"); ftdmchan 1791 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "R2 Reset Complete\n"); ftdmchan 1800 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "RINGING indicated, ignoring it as it doesn't apply to MFC/R2\n"); ftdmchan 1807 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "RESET indicated, putting the R2 channel back to IDLE\n"); ftdmchan 1809 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 1815 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Unhandled channel state change: %s\n", ftdm_channel_state2str(ftdmchan->state)); ftdmchan 1822 src/ftmod/ftmod_r2/ftmod_r2.c closed_chan = ftdmchan; ftdmchan 1824 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "State processing ended.\n"); ftdmchan 1832 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1862 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan = ftdm_iterator_current(citer); ftdmchan 1863 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_lock(ftdmchan); ftdmchan 1864 src/ftmod/ftmod_r2/ftmod_r2.c r2chan = R2CALL(ftdmchan)->r2chan; ftdmchan 1868 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_unlock(ftdmchan); ftdmchan 1869 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_SET_TX_QUEUE_SIZE, &txqueue_size); ftdmchan 1909 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan = ftdm_iterator_current(citer); ftdmchan 1910 src/ftmod/ftmod_r2/ftmod_r2.c r2chan = R2CALL(ftdmchan)->r2chan; ftdmchan 1948 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan = ftdm_iterator_current(citer); ftdmchan 1950 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_lock(ftdmchan); ftdmchan 1952 src/ftmod/ftmod_r2/ftmod_r2.c call = R2CALL(ftdmchan); ftdmchan 1956 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_RX_DISABLED); ftdmchan 1957 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_TX_DISABLED); ftdmchan 1959 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_advance_states(ftdmchan); ftdmchan 1964 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_advance_states(ftdmchan); ftdmchan 1968 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_RX_DISABLED); ftdmchan 1969 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_TX_DISABLED); ftdmchan 1972 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_unlock(ftdmchan); ftdmchan 1979 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan = ftdm_iterator_current(citer); ftdmchan 1980 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_lock(ftdmchan); ftdmchan 1981 src/ftmod/ftmod_r2/ftmod_r2.c r2chan = R2CALL(ftdmchan)->r2chan; ftdmchan 1983 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_unlock(ftdmchan); ftdmchan 69 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c #define BOOST_SPAN(ftdmchan) ((ftdm_sangoma_boost_data_t*)(ftdmchan)->span->signal_data)->sigmod ? ftdmchan->physical_span_id : ftdmchan->physical_span_id-1 ftdmchan 70 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c #define BOOST_CHAN(ftdmchan) ((ftdm_sangoma_boost_data_t*)(ftdmchan)->span->signal_data)->sigmod ? ftdmchan->physical_chan_id : ftdmchan->physical_chan_id-1 ftdmchan 102 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan; ftdmchan 112 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c #define CALL_DATA(ftdmchan) ((sangoma_boost_call_t*)((ftdmchan)->call_data)) ftdmchan 246 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 269 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan = span->channels[i]; ftdmchan 270 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (force || (ftdmchan->state == FTDM_CHANNEL_STATE_DOWN && !ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INUSE))) { ftdmchan 273 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan = NULL; ftdmchan 285 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c return ftdmchan; ftdmchan 341 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c *ftdmchan = NULL; ftdmchan 347 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c *ftdmchan = NULL; ftdmchan 353 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c *ftdmchan = NULL; ftdmchan 359 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c *ftdmchan = NULL; ftdmchan 366 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c *ftdmchan = NULL; ftdmchan 446 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c *ftdmchan = NULL; ftdmchan 456 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c *ftdmchan = NULL; ftdmchan 463 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (OUTBOUND_REQUESTS[r].status == BST_READY && OUTBOUND_REQUESTS[r].ftdmchan) { ftdmchan 464 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c *ftdmchan = OUTBOUND_REQUESTS[r].ftdmchan; ftdmchan 469 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c *ftdmchan = NULL; ftdmchan 493 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN((*ftdmchan)), ftdmchan 494 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN((*ftdmchan)), ftdmchan 518 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_sangoma_boost_data_t *sangoma_boost_data = ftdmchan->span->signal_data; ftdmchan 524 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND); ftdmchan 526 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DIALING); ftdmchan 538 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan; ftdmchan 541 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if ((ftdmchan = find_ftdmchan(span, event, 1))) { ftdmchan 542 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_sangoma_boost_data_t *sangoma_boost_data = ftdmchan->span->signal_data; ftdmchan 543 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 544 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (!sangoma_boost_data->sigmod && ftdmchan->state == FTDM_CHANNEL_STATE_HOLD) { ftdmchan 546 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->init_state = FTDM_CHANNEL_STATE_PROGRESS_MEDIA; ftdmchan 549 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->init_state = FTDM_CHANNEL_STATE_PROGRESS; ftdmchan 552 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->init_state = FTDM_CHANNEL_STATE_IDLE; ftdmchan 557 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA); ftdmchan 559 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS); ftdmchan 561 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_IDLE); ftdmchan 564 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 576 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 590 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan = OUTBOUND_REQUESTS[event->call_setup_id].ftdmchan; ftdmchan 592 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan = find_ftdmchan(OUTBOUND_REQUESTS[event->call_setup_id].span, event, 0); ftdmchan 596 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdmchan) { ftdmchan 597 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_sangoma_boost_data_t *sangoma_boost_data = ftdmchan->span->signal_data; ftdmchan 598 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (!mcon->sigmod && ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 599 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_log(FTDM_LOG_ERROR, "Failed to open FTDM channel [%s]\n", ftdmchan->last_error); ftdmchan 607 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND); ftdmchan 608 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_INUSE); ftdmchan 609 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->sflags = SFLAG_RECVD_ACK; ftdmchan 614 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA); ftdmchan 616 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->init_state = FTDM_CHANNEL_STATE_PROGRESS_MEDIA; ftdmchan 622 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS); ftdmchan 624 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->init_state = FTDM_CHANNEL_STATE_PROGRESS; ftdmchan 631 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->init_state = FTDM_CHANNEL_STATE_IDLE; ftdmchan 636 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HOLD); ftdmchan 638 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->span_id, ftdmchan->chan_id, event_span, event_chan, event->call_setup_id); ftdmchan 639 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c OUTBOUND_REQUESTS[event->call_setup_id].ftdmchan = ftdmchan; ftdmchan 650 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if ((ftdmchan = find_ftdmchan(OUTBOUND_REQUESTS[event->call_setup_id].span, (sangomabc_short_event_t*)event, 1))) { ftdmchan 657 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdmchan->state == FTDM_CHANNEL_STATE_UP || ftdmchan 658 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->state == FTDM_CHANNEL_STATE_PROGRESS_MEDIA || ftdmchan 659 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->state == FTDM_CHANNEL_STATE_PROGRESS) { ftdmchan 661 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_r(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING, r); ftdmchan 662 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c } else if (ftdmchan->state == FTDM_CHANNEL_STATE_HANGUP || ftdm_test_sflag(ftdmchan, SFLAG_HANGUP)) { ftdmchan 664 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_r(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE, r); ftdmchan 667 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_state2str(ftdmchan->state), event_span, event_chan); ftdmchan 669 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_sflag(ftdmchan, SFLAG_SENT_FINAL_MSG); ftdmchan 670 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan=NULL; ftdmchan 675 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (!ftdmchan) { ftdmchan 679 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 680 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_sflag(ftdmchan, SFLAG_SENT_FINAL_MSG); ftdmchan 701 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan; ftdmchan 704 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if ((ftdmchan = find_ftdmchan(span, event, 1))) { ftdmchan 705 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_sangoma_boost_data_t *sangoma_boost_data = ftdmchan->span->signal_data; ftdmchan 706 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 712 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 713 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 719 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdmchan->state == FTDM_CHANNEL_STATE_DOWN || ftdmchan->state == FTDM_CHANNEL_STATE_HANGUP_COMPLETE || ftdm_test_sflag(ftdmchan, SFLAG_TERMINATING)) { ftdmchan 723 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_r(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE, r); ftdmchan 725 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 732 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdmchan) { ftdmchan 733 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 752 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan; ftdmchan 784 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan = OUTBOUND_REQUESTS[event->call_setup_id].ftdmchan; ftdmchan 785 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c CALL_DATA(ftdmchan)->last_event_id = event->event_id; ftdmchan 786 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c CALL_DATA(ftdmchan)->call_setup_id = event->call_setup_id; ftdmchan 787 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 788 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_clear_sflag_locked(ftdmchan, SFLAG_SENT_FINAL_MSG); ftdmchan 803 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if ((ftdmchan = find_ftdmchan(span, event, 1))) { ftdmchan 807 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_assert(!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND), "Yay, outbound flag should not be set here!\n"); ftdmchan 809 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c CALL_DATA(ftdmchan)->last_event_id = event->event_id; ftdmchan 810 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 811 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_r(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING, r); ftdmchan 813 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.hangup_cause = event->release_cause; ftdmchan 815 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 822 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdmchan) { ftdmchan 823 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_sflag_locked(ftdmchan, SFLAG_SENT_FINAL_MSG); ftdmchan 837 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan; ftdmchan 839 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if ((ftdmchan = find_ftdmchan(span, event, 1))) { ftdmchan 842 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_close(&ftdmchan); ftdmchan 857 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan; ftdmchan 859 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if ((ftdmchan = find_ftdmchan(span, event, 1))) { ftdmchan 862 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 864 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdm_test_sflag(ftdmchan, SFLAG_HANGUP) || ftdmchan 865 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->state == FTDM_CHANNEL_STATE_DOWN || ftdmchan 866 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->state == FTDM_CHANNEL_STATE_TERMINATING) { ftdmchan 879 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 880 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 884 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 886 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c } else if (ftdmchan->state == FTDM_CHANNEL_STATE_HOLD) { ftdmchan 887 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->init_state = FTDM_CHANNEL_STATE_TERMINATING; ftdmchan 890 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.hangup_cause = event->release_cause; ftdmchan 891 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 894 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_r(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING, r); ftdmchan 898 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.hangup_cause = event->release_cause; ftdmchan 901 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 921 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan; ftdmchan 923 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if ((ftdmchan = find_ftdmchan(span, event, 1))) { ftdmchan 924 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 926 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdm_test_sflag(ftdmchan, SFLAG_HANGUP) || ftdmchan 927 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->state == FTDM_CHANNEL_STATE_DOWN || ftdmchan 928 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->state == FTDM_CHANNEL_STATE_TERMINATING) { ftdmchan 935 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c } else if (ftdmchan->state == FTDM_CHANNEL_STATE_HOLD) { ftdmchan 936 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->init_state = FTDM_CHANNEL_STATE_UP; ftdmchan 940 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_r(ftdmchan, FTDM_CHANNEL_STATE_UP, r); ftdmchan 942 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 954 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c static __inline__ void stop_loop(ftdm_channel_t *ftdmchan); ftdmchan 964 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 970 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (!(ftdmchan = find_ftdmchan(span, (sangomabc_short_event_t*)event, 0))) { ftdmchan 971 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if ((ftdmchan = find_ftdmchan(span, (sangomabc_short_event_t*)event, 1))) { ftdmchan 980 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdmchan->state == FTDM_CHANNEL_STATE_UP || ftdmchan 981 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->state == FTDM_CHANNEL_STATE_PROGRESS_MEDIA || ftdmchan 982 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->state == FTDM_CHANNEL_STATE_PROGRESS) { ftdmchan 985 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_r(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING, r); ftdmchan 986 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c } else if (ftdmchan->state == FTDM_CHANNEL_STATE_HANGUP || ftdm_test_sflag(ftdmchan, SFLAG_HANGUP)) { ftdmchan 989 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_r(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE, r); ftdmchan 990 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c } else if (ftdmchan->state == FTDM_CHANNEL_STATE_DIALING) { ftdmchan 1001 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c } else if (ftdmchan->state == FTDM_CHANNEL_STATE_IN_LOOP && retry) { ftdmchan 1003 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c stop_loop(ftdmchan); ftdmchan 1004 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_advance_states(ftdmchan); ftdmchan 1009 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_state2str(ftdmchan->state)); ftdmchan 1011 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_sflag(ftdmchan, SFLAG_SENT_FINAL_MSG); ftdmchan 1012 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan = NULL; ftdmchan 1020 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 1028 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->span_id, ftdmchan->chan_id, ftdmchan 1029 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->physical_span_id, ftdmchan->physical_chan_id); ftdmchan 1031 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->sflags = 0; ftdmchan 1032 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(ftdmchan->caller_data.cid_num.digits, (char *)event->calling.digits); ftdmchan 1033 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(ftdmchan->caller_data.cid_name, (char *)event->calling.digits); ftdmchan 1034 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(ftdmchan->caller_data.ani.digits, (char *)event->calling.digits); ftdmchan 1035 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(ftdmchan->caller_data.dnis.digits, (char *)event->called.digits); ftdmchan 1036 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(ftdmchan->caller_data.rdnis.digits, (char *)event->rdnis.digits); ftdmchan 1038 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(ftdmchan->caller_data.raw_data, event->custom_data); ftdmchan 1039 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.raw_data_len = event->custom_data_size; ftdmchan 1043 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(ftdmchan->caller_data.cid_name, (char *)event->calling_name); ftdmchan 1046 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.cid_num.plan = event->calling.npi; ftdmchan 1047 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.cid_num.type = event->calling.ton; ftdmchan 1049 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.ani.plan = event->calling.npi; ftdmchan 1050 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.ani.type = event->calling.ton; ftdmchan 1052 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.dnis.plan = event->called.npi; ftdmchan 1053 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.dnis.type = event->called.ton; ftdmchan 1055 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.rdnis.plan = event->rdnis.npi; ftdmchan 1056 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.rdnis.type = event->rdnis.ton; ftdmchan 1058 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.screen = event->calling.screening_ind; ftdmchan 1059 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.pres = event->calling.presentation_ind; ftdmchan 1061 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.bearer_capability = event->bearer.capability; ftdmchan 1062 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.bearer_layer1 = event->bearer.uil1p; ftdmchan 1072 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c snprintf(ftdmchan->caller_data.aniII, 5, "%.2d", ani2); ftdmchan 1076 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 1080 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c hangup_cause = ftdmchan ? ftdmchan->caller_data.hangup_cause : FTDM_CAUSE_REQUESTED_CHAN_UNAVAIL; ftdmchan 1093 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan; ftdmchan 1095 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (!(ftdmchan = find_ftdmchan(span, (sangomabc_short_event_t*)event, 0))) { ftdmchan 1100 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 1105 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_r(ftdmchan, FTDM_CHANNEL_STATE_IN_LOOP, res); ftdmchan 1107 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *toclose = ftdmchan; ftdmchan 1112 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_log(FTDM_LOG_DEBUG, "%d:%d starting loop\n", ftdmchan->span_id, ftdmchan->chan_id); ftdmchan 1113 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_ENABLE_LOOP, NULL); ftdmchan 1116 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c static __inline__ void stop_loop(ftdm_channel_t *ftdmchan) ftdmchan 1119 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DISABLE_LOOP, NULL); ftdmchan 1121 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_flag(ftdmchan, SFLAG_SENT_FINAL_MSG); ftdmchan 1122 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_r(ftdmchan, FTDM_CHANNEL_STATE_DOWN, res); ftdmchan 1124 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "yay, could not set the state of the channel from IN_LOOP to DOWN\n"); ftdmchan 1130 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan; ftdmchan 1131 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (!(ftdmchan = find_ftdmchan(span, (sangomabc_short_event_t*)event, 1))) { ftdmchan 1135 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdmchan->state != FTDM_CHANNEL_STATE_IN_LOOP) { ftdmchan 1139 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c stop_loop(ftdmchan); ftdmchan 1195 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1198 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (!(ftdmchan = find_ftdmchan(span, (sangomabc_short_event_t *)event, 1))) { ftdmchan 1217 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_queue_dtmf(ftdmchan, digits); ftdmchan 1231 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1251 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (!(ftdmchan = find_ftdmchan(span, (sangomabc_short_event_t*)event, 1))) { ftdmchan 1268 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1269 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_advance_states(ftdmchan); ftdmchan 1270 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c return ftdmchan; ftdmchan 1281 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t* ftdmchan = NULL; ftdmchan 1292 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan = event_process_states(span, event); ftdmchan 1355 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if(ftdmchan != NULL) { ftdmchan 1356 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_advance_states(ftdmchan); ftdmchan 1357 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1368 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c static ftdm_status_t state_advance(ftdm_channel_t *ftdmchan) ftdmchan 1370 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_sangoma_boost_data_t *sangoma_boost_data = ftdmchan->span->signal_data; ftdmchan 1376 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_assert_return(ftdmchan->last_state != ftdmchan->state, FTDM_FAIL, "Channel state already processed\n"); ftdmchan 1378 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_log(FTDM_LOG_DEBUG, "%d:%d PROCESSING STATE [%s]\n", ftdmchan->span_id, ftdmchan->chan_id, ftdm_channel_state2str(ftdmchan->state)); ftdmchan 1381 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c sig.chan_id = ftdmchan->chan_id; ftdmchan 1382 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c sig.span_id = ftdmchan->span_id; ftdmchan 1383 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c sig.channel = ftdmchan; ftdmchan 1385 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_complete_state(ftdmchan); ftdmchan 1387 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c switch (ftdmchan->state) { ftdmchan 1391 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_sangoma_boost_data_t *sangoma_boost_data = ftdmchan->span->signal_data; ftdmchan 1393 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdmchan->last_state == FTDM_CHANNEL_STATE_IN_LOOP) { ftdmchan 1394 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_log(FTDM_LOG_DEBUG, "%d:%d terminating loop\n", ftdmchan->span_id, ftdmchan->chan_id); ftdmchan 1396 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c release_request_id_span_chan(ftdmchan->physical_span_id, ftdmchan->physical_chan_id); ftdmchan 1398 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (!ftdm_test_sflag(ftdmchan, SFLAG_SENT_FINAL_MSG)) { ftdmchan 1399 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_sflag_locked(ftdmchan, SFLAG_SENT_FINAL_MSG); ftdmchan 1401 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdmchan->call_data && CALL_DATA(ftdmchan)->last_event_id == SIGBOOST_EVENT_CALL_START_NACK) { ftdmchan 1403 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 1404 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 1405 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c CALL_DATA(ftdmchan)->call_setup_id, ftdmchan 1412 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 1413 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 1422 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->sflags = 0; ftdmchan 1423 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c memset(ftdmchan->call_data, 0, sizeof(sangoma_boost_call_t)); ftdmchan 1427 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->span_id, ftdmchan->chan_id); ftdmchan 1429 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *toclose = ftdmchan; ftdmchan 1436 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1438 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if ((status = ftdm_span_send_signal(ftdmchan->span, &sig) != FTDM_SUCCESS)) { ftdmchan 1439 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1442 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (!ftdm_test_sflag(ftdmchan, SFLAG_SENT_ACK)) { ftdmchan 1443 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_sflag(ftdmchan, SFLAG_SENT_ACK); ftdmchan 1445 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 1446 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 1452 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 1453 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 1462 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1464 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if ((status = ftdm_span_send_signal(ftdmchan->span, &sig) != FTDM_SUCCESS)) { ftdmchan 1465 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1468 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (!ftdm_test_sflag(ftdmchan, SFLAG_SENT_ACK)) { ftdmchan 1469 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_sflag(ftdmchan, SFLAG_SENT_ACK); ftdmchan 1471 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 1472 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 1488 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1490 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if ((status = ftdm_span_send_signal(ftdmchan->span, &sig) != FTDM_SUCCESS)) { ftdmchan 1491 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1499 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c status = ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 1500 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_sflag_locked(ftdmchan, SFLAG_SENT_FINAL_MSG); ftdmchan 1501 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 1506 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1508 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if ((status = ftdm_span_send_signal(ftdmchan->span, &sig) != FTDM_SUCCESS)) { ftdmchan 1509 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1512 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (!(ftdm_test_flag(ftdmchan, FTDM_CHANNEL_PROGRESS) || ftdm_test_flag(ftdmchan, FTDM_CHANNEL_MEDIA))) { ftdmchan 1514 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 1515 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 1522 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 1523 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 1538 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(dnis, ftdmchan->caller_data.dnis.digits); ftdmchan 1543 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 1547 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c sangomabc_call_init(&event, ftdmchan->caller_data.cid_num.digits, dnis, r); ftdmchan 1549 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.span = (uint8_t)ftdmchan->physical_span_id; ftdmchan 1550 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.chan = (uint8_t)ftdmchan->physical_chan_id; ftdmchan 1554 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(event.calling_name, ftdmchan->caller_data.cid_name); ftdmchan 1555 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(event.rdnis.digits, ftdmchan->caller_data.rdnis.digits); ftdmchan 1556 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (strlen(ftdmchan->caller_data.rdnis.digits)) { ftdmchan 1557 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.rdnis.digits_count = (uint8_t)strlen(ftdmchan->caller_data.rdnis.digits)+1; ftdmchan 1558 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.rdnis.ton = ftdmchan->caller_data.rdnis.type; ftdmchan 1559 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.rdnis.npi = ftdmchan->caller_data.rdnis.plan; ftdmchan 1562 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.calling.screening_ind = ftdmchan->caller_data.screen; ftdmchan 1563 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.calling.presentation_ind = ftdmchan->caller_data.pres; ftdmchan 1565 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.calling.ton = ftdmchan->caller_data.cid_num.type; ftdmchan 1566 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.calling.npi = ftdmchan->caller_data.cid_num.plan; ftdmchan 1568 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.called.ton = ftdmchan->caller_data.dnis.type; ftdmchan 1569 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.called.npi = ftdmchan->caller_data.dnis.plan; ftdmchan 1571 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdmchan->caller_data.raw_data_len) { ftdmchan 1572 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(event.custom_data, ftdmchan->caller_data.raw_data); ftdmchan 1573 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.custom_data_size = (uint16_t)ftdmchan->caller_data.raw_data_len; ftdmchan 1577 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c OUTBOUND_REQUESTS[r].span = ftdmchan->span; ftdmchan 1578 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c OUTBOUND_REQUESTS[r].ftdmchan = ftdmchan; ftdmchan 1584 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 1591 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 1596 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_sflag_locked(ftdmchan, SFLAG_HANGUP); ftdmchan 1598 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdm_test_sflag(ftdmchan, SFLAG_SENT_FINAL_MSG) || ftdm_test_sflag(ftdmchan, SFLAG_TERMINATING)) { ftdmchan 1599 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); ftdmchan 1601 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_sflag_locked(ftdmchan, SFLAG_SENT_FINAL_MSG); ftdmchan 1602 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_ANSWERED) || ftdmchan 1603 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_test_flag(ftdmchan, FTDM_CHANNEL_PROGRESS) || ftdmchan 1604 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_test_flag(ftdmchan, FTDM_CHANNEL_MEDIA) || ftdmchan 1605 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_test_sflag(ftdmchan, SFLAG_RECVD_ACK)) { ftdmchan 1607 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 1608 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 1611 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.hangup_cause, 0); ftdmchan 1614 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 1615 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 1618 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.hangup_cause, 0); ftdmchan 1625 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_sflag_locked(ftdmchan, SFLAG_TERMINATING); ftdmchan 1627 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c status = ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 1655 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1679 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c while ((ftdmchan = ftdm_queue_dequeue(span->pendingchans))) { ftdmchan 1683 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1684 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_advance_states(ftdmchan); ftdmchan 1685 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 2007 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan = span->channels[j]; ftdmchan 2009 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c j, ftdmchan->physical_span_id-1, ftdmchan->physical_chan_id-1, ftdm_channel_state2str(ftdmchan->state)); ftdmchan 2460 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_log(FTDM_LOG_NOTICE, "%d:%d Signaling link status changed to %s\n", ftdmchan->span_id, ftdmchan->chan_id, ftdm_signaling_status2str(status)); ftdmchan 2463 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c sig.chan_id = ftdmchan->chan_id; ftdmchan 2464 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c sig.span_id = ftdmchan->span_id; ftdmchan 2465 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c sig.channel = ftdmchan; ftdmchan 2468 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 2474 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_sangoma_boost_data_t *sangoma_boost_data = ftdmchan->span->signal_data; ftdmchan 2483 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c return sangoma_boost_data->sigmod->set_channel_sig_status(ftdmchan, status); ftdmchan 2488 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_sangoma_boost_data_t *sangoma_boost_data = ftdmchan->span->signal_data; ftdmchan 2495 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c return sangoma_boost_data->sigmod->get_channel_sig_status(ftdmchan, status); ftdmchan 49 src/ftmod/ftmod_sangoma_boost/sangoma_boost_interface.h #define BOOST_SIG_STATUS_CB_ARGS (ftdm_channel_t *ftdmchan, ftdm_signaling_status_t status) ftdmchan 86 src/ftmod/ftmod_sangoma_boost/sangoma_boost_interface.h #define BOOST_ON_HW_LINK_STATUS_CHANGE_ARGS (ftdm_channel_t *ftdmchan, ftdm_channel_hw_link_status_t status) ftdmchan 106 src/ftmod/ftmod_sangoma_boost/sangoma_boost_interface.h #define BOOST_GET_CHANNEL_SIG_STATUS_ARGS (ftdm_channel_t *ftdmchan, ftdm_signaling_status_t *status) ftdmchan 116 src/ftmod/ftmod_sangoma_boost/sangoma_boost_interface.h #define BOOST_SET_CHANNEL_SIG_STATUS_ARGS (ftdm_channel_t *ftdmchan, ftdm_signaling_status_t status) ftdmchan 51 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c static ftdm_status_t ftdm_sangoma_isdn_process_state_change(ftdm_channel_t *ftdmchan); ftdmchan 54 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c static void ftdm_sangoma_isdn_dchan_set_queue_size(ftdm_channel_t *ftdmchan); ftdmchan 281 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_t *ftdmchan; ftdmchan 288 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdmchan = (ftdm_channel_t*)ftdm_iterator_current(curr); ftdmchan 289 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_info = (sngisdn_chan_data_t*)ftdmchan->call_data; ftdmchan 294 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_sched_timer(signal_data->sched, "delayed_setup", 1000, sngisdn_delayed_setup, (void*) ftdmchan->call_data, NULL); ftdmchan 407 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 449 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c while ((ftdmchan = ftdm_queue_dequeue(span->pendingchans))) { ftdmchan 451 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_lock(ftdmchan); ftdmchan 452 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_advance_states(ftdmchan); ftdmchan 453 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_unlock(ftdmchan); ftdmchan 504 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 526 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdmchan = sngisdn_event->sngisdn_info->ftdmchan; ftdmchan 527 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_assert_return(ftdmchan, NULL,"Event should have a channel associated\n"); ftdmchan 530 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_lock(ftdmchan); ftdmchan 531 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_advance_states(ftdmchan); ftdmchan 532 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c return ftdmchan; ftdmchan 539 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 541 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdmchan = ftdm_sangoma_isdn_process_event_states(span, sngisdn_event); ftdmchan 595 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdmchan != NULL) { ftdmchan 596 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_advance_states(ftdmchan); ftdmchan 597 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_unlock(ftdmchan); ftdmchan 602 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c static ftdm_status_t ftdm_sangoma_isdn_process_state_change(ftdm_channel_t *ftdmchan) ftdmchan 606 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_chan_data_t *sngisdn_info = ftdmchan->call_data; ftdmchan 610 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 611 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sigev.span_id = ftdmchan->span_id; ftdmchan 612 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sigev.channel = ftdmchan; ftdmchan 615 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_complete_state(ftdmchan); ftdmchan 618 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdmchan->state == FTDM_CHANNEL_STATE_DIALING) { ftdmchan 619 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_assert(mprotect(ftdmchan, sizeof(*ftdmchan), PROT_READ) == 0, "Failed to mprotect"); ftdmchan 624 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c initial_state = ftdmchan->state; ftdmchan 626 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "processing state change to %s\n", ftdm_channel_state2str(ftdmchan->state)); ftdmchan 628 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c switch (ftdmchan->state) { ftdmchan 632 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_setup_ack(ftdmchan); ftdmchan 643 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_proceed(ftdmchan, prog_ind); ftdmchan 650 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Sending incoming call from %s to %s to FTDM core\n", ftdmchan->caller_data.ani.digits, ftdmchan->caller_data.dnis.digits); ftdmchan 654 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 659 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (FTDM_SPAN_IS_BRI(ftdmchan->span) && ftdmchan 660 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_test_flag(ftdmchan, FTDM_CHANNEL_IN_ALARM) && ftdmchan 661 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_test_flag(ftdmchan->span, FTDM_SPAN_PWR_SAVING)) { ftdmchan 663 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 665 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Requesting Line activation\n"); ftdmchan 667 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_sangoma_isdn_wakeup_phy(ftdmchan); ftdmchan 670 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_setup(ftdmchan); ftdmchan 676 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 679 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 686 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_proceed(ftdmchan, prog_ind); ftdmchan 693 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 696 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 698 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA); ftdmchan 702 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_alert(ftdmchan, prog_ind); ftdmchan 709 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 712 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 716 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_progress(ftdmchan, prog_ind); ftdmchan 722 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 724 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 728 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_progress(ftdmchan, prog_ind); ftdmchan 735 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 738 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 740 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP && ftdmchan 741 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ((sngisdn_span_data_t*)ftdmchan->span->signal_data)->signalling == SNGISDN_SIGNALING_NET) { ftdmchan 743 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_con_complete(ftdmchan); ftdmchan 747 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_connect(ftdmchan); ftdmchan 753 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Hanging up call before informing user!\n"); ftdmchan 756 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_release(ftdmchan, 0); ftdmchan 758 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); ftdmchan 765 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 771 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Acknowledging remote abort\n"); ftdmchan 773 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Acknowledging remote hangup\n"); ftdmchan 774 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_release(ftdmchan, 0); ftdmchan 777 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Clearing local states from local abort\n"); ftdmchan 781 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Waiting for RELEASE on hungup glared call\n"); ftdmchan 784 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_disconnect(ftdmchan); ftdmchan 786 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Hanging up call upon local request!\n"); ftdmchan 791 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c switch(ftdmchan->last_state) { ftdmchan 795 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_release(ftdmchan, 0); ftdmchan 799 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_release(ftdmchan, 0); ftdmchan 802 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_disconnect(ftdmchan); ftdmchan 807 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); ftdmchan 815 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 818 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Waiting for release from stack\n"); ftdmchan 830 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OPEN)) { ftdmchan 831 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_t *close_chan = ftdmchan; ftdmchan 837 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Glare detected, processing saved call\n"); ftdmchan 859 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_restart(ftdmchan); ftdmchan 864 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "unsupported sngisdn_rcvd state %s\n", ftdm_channel_state2str(ftdmchan->state)); ftdmchan 869 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdmchan->state == initial_state) { ftdmchan 870 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_assert(!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE), "state change flag is still set, but we did not change state\n"); ftdmchan 873 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdmchan->state == FTDM_CHANNEL_STATE_DIALING) { ftdmchan 874 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_assert(mprotect(ftdmchan, sizeof(*ftdmchan), PROT_READ|PROT_WRITE) == 0, "Failed to mprotect"); ftdmchan 886 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_fac_req(ftdmchan); ftdmchan 890 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Unsupported signalling msg requested\n"); ftdmchan 893 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_call_clear_data(&ftdmchan->caller_data); ftdmchan 899 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_chan_data_t *sngisdn_info = ftdmchan->call_data; ftdmchan 903 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_lock(ftdmchan); ftdmchan 905 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c switch (ftdmchan->state) { ftdmchan 911 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Glare detected - aborting outgoing call\n"); ftdmchan 914 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); ftdmchan 918 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DIALING); ftdmchan 926 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Outgoing call requested channel in already in use\n"); ftdmchan 932 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_unlock(ftdmchan); ftdmchan 937 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_SIG_UP)) { ftdmchan 1063 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c chan_data->ftdmchan = ((ftdm_channel_t*)ftdm_iterator_current(curr)); ftdmchan 166 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_channel_t *ftdmchan; ftdmchan 297 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_set_chan_sig_status(ftdm_channel_t *ftdmchan, ftdm_signaling_status_t status); ftdmchan 306 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_setup(ftdm_channel_t *ftdmchan); ftdmchan 307 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_setup_ack(ftdm_channel_t *ftdmchan); ftdmchan 308 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_proceed(ftdm_channel_t *ftdmchan, ftdm_sngisdn_progind_t prog_ind); ftdmchan 309 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_progress(ftdm_channel_t *ftdmchan, ftdm_sngisdn_progind_t prog_ind); ftdmchan 310 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_alert(ftdm_channel_t *ftdmchan, ftdm_sngisdn_progind_t prog_ind); ftdmchan 311 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_connect(ftdm_channel_t *ftdmchan); ftdmchan 312 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_disconnect(ftdm_channel_t *ftdmchan); ftdmchan 313 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_release(ftdm_channel_t *ftdmchan, uint8_t glare); ftdmchan 314 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_reset(ftdm_channel_t *ftdmchan); ftdmchan 315 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_con_complete(ftdm_channel_t *ftdmchan); ftdmchan 316 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_fac_req(ftdm_channel_t *ftdmchan); ftdmchan 317 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_info_req(ftdm_channel_t *ftdmchan); ftdmchan 318 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_status_enq(ftdm_channel_t *ftdmchan); ftdmchan 319 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_restart(ftdm_channel_t *ftdmchan); ftdmchan 385 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t get_callref(ftdm_channel_t *ftdmchan, BCCallRef* callRef); ftdmchan 387 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t get_calling_num(ftdm_channel_t *ftdmchan, CgPtyNmb *cgPtyNmb); ftdmchan 388 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t get_calling_num2(ftdm_channel_t *ftdmchan, CgPtyNmb *cgPtyNmb); ftdmchan 389 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t get_called_num(ftdm_channel_t *ftdmchan, CdPtyNmb *cdPtyNmb); ftdmchan 390 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t get_redir_num(ftdm_channel_t *ftdmchan, RedirNmb *redirNmb); ftdmchan 391 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t get_calling_name_from_display(ftdm_channel_t *ftdmchan, Display *display); ftdmchan 392 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t get_calling_name_from_usr_usr(ftdm_channel_t *ftdmchan, UsrUsr *usrUsr); ftdmchan 393 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t get_calling_subaddr(ftdm_channel_t *ftdmchan, CgPtySad *cgPtySad); ftdmchan 394 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t get_prog_ind_ie(ftdm_channel_t *ftdmchan, ProgInd *progInd); ftdmchan 395 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t get_facility_ie(ftdm_channel_t *ftdmchan, FacilityStr *facilityStr); ftdmchan 396 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t get_facility_ie_str(ftdm_channel_t *ftdmchan, uint8_t *data, uint8_t data_len); ftdmchan 398 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t set_calling_num(ftdm_channel_t *ftdmchan, CgPtyNmb *cgPtyNmb); ftdmchan 399 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t set_calling_num2(ftdm_channel_t *ftdmchan, CgPtyNmb *cgPtyNmb); ftdmchan 400 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t set_called_num(ftdm_channel_t *ftdmchan, CdPtyNmb *cdPtyNmb); ftdmchan 401 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t set_redir_num(ftdm_channel_t *ftdmchan, RedirNmb *redirNmb); ftdmchan 402 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t set_calling_name(ftdm_channel_t *ftdmchan, ConEvnt *conEvnt); ftdmchan 403 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t set_calling_subaddr(ftdm_channel_t *ftdmchan, CgPtySad *cgPtySad); ftdmchan 404 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t set_prog_ind_ie(ftdm_channel_t *ftdmchan, ProgInd *progInd, ftdm_sngisdn_progind_t prog_ind); ftdmchan 405 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t set_bear_cap_ie(ftdm_channel_t *ftdmchan, BearCap *bearCap); ftdmchan 406 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t set_chan_id_ie(ftdm_channel_t *ftdmchan, ChanId *chanId); ftdmchan 407 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t set_restart_ind_ie(ftdm_channel_t *ftdmchan, RstInd *rstInd); ftdmchan 408 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t set_facility_ie(ftdm_channel_t *ftdmchan, FacilityStr *facilityStr); ftdmchan 409 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_status_t set_facility_ie_str(ftdm_channel_t *ftdmchan, uint8_t *data, uint8_t *data_len); ftdmchan 159 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cfg.c ftdm_channel_t *ftdmchan = (ftdm_channel_t*)ftdm_iterator_current(curr); ftdmchan 160 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cfg.c if (ftdmchan->type == FTDM_CHAN_TYPE_DQ921) { ftdmchan 162 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cfg.c signal_data->dchan = ftdmchan; ftdmchan 166 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cfg.c chan_id = ((signal_data->span_id-1)*NUM_T1_CHANNELS_PER_SPAN)+ftdmchan->physical_chan_id; ftdmchan 167 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cfg.c dchan_data->channels[chan_id] = (sngisdn_chan_data_t*)ftdmchan->call_data; ftdmchan 38 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cntrl.c void sngisdn_set_chan_sig_status(ftdm_channel_t *ftdmchan, ftdm_signaling_status_t status); ftdmchan 40 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cntrl.c void sngisdn_set_chan_sig_status(ftdm_channel_t *ftdmchan, ftdm_signaling_status_t status) ftdmchan 43 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cntrl.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Signalling link status changed to %s\n", ftdm_signaling_status2str(status)); ftdmchan 46 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cntrl.c sig.chan_id = ftdmchan->chan_id; ftdmchan 47 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cntrl.c sig.span_id = ftdmchan->span_id; ftdmchan 48 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cntrl.c sig.channel = ftdmchan; ftdmchan 51 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cntrl.c ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 36 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c static ftdm_status_t sngisdn_cause_val_requires_disconnect(ftdm_channel_t *ftdmchan, CauseDgn *causeDgn); ftdmchan 37 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c static void sngisdn_process_restart_confirm(ftdm_channel_t *ftdmchan); ftdmchan 49 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 50 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 55 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_assert(!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE), "State change flag pending\n"); ftdmchan 57 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(sngisdn_info->ftdmchan, FTDM_LOG_DEBUG, "Processing SETUP (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 59 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 61 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INUSE) || ftdmchan 62 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 64 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_INFO, "Received SETUP but channel is in USE, saving call for later processing\n"); ftdmchan 90 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(sngisdn_info->ftdmchan, FTDM_LOG_INFO, "Received SETUP, but local-number %s does not match - ignoring\n", conEvnt->cdPtyNmb.nmbDigits.val); ftdmchan 92 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = IN_CCNORTTODEST; ftdmchan 105 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP) { ftdmchan 115 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND); ftdmchan 118 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 119 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "Failed to open channel"); ftdmchan 121 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_NORMAL_TEMPORARY_FAILURE; ftdmchan 122 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_CANCEL); ftdmchan 128 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c get_callref(ftdmchan, &conEvnt->callRef); ftdmchan 130 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c get_calling_num(ftdmchan, &conEvnt->cgPtyNmb); ftdmchan 131 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c get_calling_num2(ftdmchan, &conEvnt->cgPtyNmb2); ftdmchan 132 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c get_called_num(ftdmchan, &conEvnt->cdPtyNmb); ftdmchan 133 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c get_redir_num(ftdmchan, &conEvnt->redirNmb); ftdmchan 134 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c get_calling_subaddr(ftdmchan, &conEvnt->cgPtySad); ftdmchan 135 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c get_prog_ind_ie(ftdmchan, &conEvnt->progInd); ftdmchan 136 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c get_facility_ie(ftdmchan, &conEvnt->facilityStr); ftdmchan 138 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (get_calling_name_from_display(ftdmchan, &conEvnt->display) != FTDM_SUCCESS) { ftdmchan 139 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c get_calling_name_from_usr_usr(ftdmchan, &conEvnt->usrUsr); ftdmchan 142 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(sngisdn_info->ftdmchan, FTDM_LOG_INFO, "Incoming call: Called No:[%s] Calling No:[%s]\n", ftdmchan->caller_data.dnis.digits, ftdmchan->caller_data.cid_num.digits); ftdmchan 145 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.bearer_layer1 = sngisdn_get_usrInfoLyr1Prot_from_stack(conEvnt->bearCap[0].usrInfoLyr1Prot.val); ftdmchan 146 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.bearer_capability = sngisdn_get_infoTranCap_from_stack(conEvnt->bearCap[0].infoTranCap.val); ftdmchan 155 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c snprintf(ftdmchan->caller_data.aniII, 5, "%.2d", value); ftdmchan 158 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c snprintf(ftdmchan->caller_data.aniII, 5, "%c", conEvnt->ni2OctStr.str.val[3]); ftdmchan 178 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Expecting Caller name in FACILITY\n"); ftdmchan 179 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_GET_CALLERID); ftdmchan 187 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c strcpy(ftdmchan->caller_data.cid_name, retrieved_str); ftdmchan 192 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_COLLECT); ftdmchan 194 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 198 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_INFO, "Processing SETUP in TERMINATING state, saving SETUP info for later processing\n"); ftdmchan 215 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Processing SETUP in DIALING state, rejecting inbound call\n"); ftdmchan 224 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = 0x2C; /* Channel requested not available */ ftdmchan 227 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_INFO, "Processing SETUP in DIALING state, saving SETUP info for later processing\n"); ftdmchan 241 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 245 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Processing SETUP but channel in RESET state, ignoring\n"); ftdmchan 248 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Processing SETUP in an invalid state (%s)\n", ftdm_channel_state2str(ftdmchan->state)); ftdmchan 263 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 268 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_assert(!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE), "State change flag pending\n"); ftdmchan 270 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Processing CONNECT/CONNECT ACK (suId:%u suInstId:%u spInstId:%u ces:%d)\n", suId, suInstId, spInstId, ces); ftdmchan 272 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP && ftdmchan 273 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ((sngisdn_span_data_t*)ftdmchan->span->signal_data)->signalling == SNGISDN_SIGNALING_NET) { ftdmchan 280 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Call already assigned, ignoring connect\n"); ftdmchan 286 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 287 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch(ftdmchan->state) { ftdmchan 294 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c get_callref(ftdmchan, &cnStEvnt->callRef); ftdmchan 296 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c get_prog_ind_ie(ftdmchan, &cnStEvnt->progInd); ftdmchan 297 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c get_facility_ie(ftdmchan, &cnStEvnt->facilityStr); ftdmchan 298 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 305 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Processing SETUP but channel in RESET state, ignoring\n"); ftdmchan 308 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Processing CONNECT/CONNECT ACK in an invalid state (%s)\n", ftdm_channel_state2str(ftdmchan->state)); ftdmchan 311 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 315 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch(ftdmchan->state) { ftdmchan 324 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Processing SETUP but channel in RESET state, ignoring\n"); ftdmchan 327 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Processing CONNECT/CONNECT ACK in an invalid state (%s)\n", ftdm_channel_state2str(ftdmchan->state)); ftdmchan 330 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 348 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 354 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_assert(!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE), "State change flag pending\n"); ftdmchan 356 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Processing %s (suId:%u suInstId:%u spInstId:%u ces:%d)\n", ftdmchan 369 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c get_callref(ftdmchan, &cnStEvnt->callRef); ftdmchan 371 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c get_prog_ind_ie(ftdmchan, &cnStEvnt->progInd); ftdmchan 372 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c get_facility_ie(ftdmchan, &cnStEvnt->facilityStr); ftdmchan 374 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (sngisdn_cause_val_requires_disconnect(ftdmchan, &cnStEvnt->causeDgn[0]) == FTDM_SUCCESS) { ftdmchan 375 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Cause requires disconnect (cause:%d)\n", cnStEvnt->causeDgn[0].causeVal.val); ftdmchan 376 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = cnStEvnt->causeDgn[0].causeVal.val; ftdmchan 379 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 383 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch(ftdmchan->state) { ftdmchan 389 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Early media available\n"); ftdmchan 392 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Early media not available\n"); ftdmchan 396 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (ftdmchan->state == FTDM_CHANNEL_STATE_DIALING) { ftdmchan 397 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_PROCEED); ftdmchan 401 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (ftdmchan->state == FTDM_CHANNEL_STATE_PROCEED) { ftdmchan 402 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_RINGING); ftdmchan 407 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA); ftdmchan 408 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c } else if (ftdmchan->state != FTDM_CHANNEL_STATE_PROGRESS) { ftdmchan 409 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS); ftdmchan 414 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Don't know how to handle this event %d\n", evntType); ftdmchan 422 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Processing SETUP but channel in RESET state, ignoring\n"); ftdmchan 425 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Processing ALERT/PROCEED/PROGRESS in an invalid state (%s)\n", ftdm_channel_state2str(ftdmchan->state)); ftdmchan 428 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 433 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "Processing SETUP_ACK, but overlap sending not implemented (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 436 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Processing INFO (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 439 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch(ftdmchan->state) { ftdmchan 442 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_size_t min_digits = ((sngisdn_span_data_t*)ftdmchan->span->signal_data)->min_digits; ftdmchan 445 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c get_called_num(ftdmchan, &cnStEvnt->cdPtyNmb); ftdmchan 446 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c num_digits = strlen(ftdmchan->caller_data.dnis.digits); ftdmchan 449 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 451 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "received %d of %d digits\n", num_digits, min_digits); ftdmchan 461 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "Receiving more digits %s, but we already proceeded with call\n", cnStEvnt->cdPtyNmb.nmbDigits.val); ftdmchan 464 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Processing SETUP but channel in RESET state, ignoring\n"); ftdmchan 467 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "\n", suId, suInstId, spInstId); ftdmchan 474 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Unhandled STATUS event\n"); ftdmchan 489 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 495 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Processing DISCONNECT (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 497 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_assert(!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE), "State change flag pending\n"); ftdmchan 498 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 506 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c get_facility_ie(ftdmchan, &discEvnt->facilityStr); ftdmchan 509 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = discEvnt->causeDgn[0].causeVal.val; ftdmchan 511 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "DISCONNECT did not have a cause code\n"); ftdmchan 512 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = 0; ftdmchan 515 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 519 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_CANCEL); ftdmchan 523 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "Received DISCONNECT but we are in DOWN state\n"); ftdmchan 530 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Processing SETUP but channel in RESET state, ignoring\n"); ftdmchan 533 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Received DISCONNECT in an invalid state (%s)\n", ftdmchan 534 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_state2str(ftdmchan->state)); ftdmchan 539 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 553 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 559 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Processing RELEASE/RELEASE COMPLETE (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 561 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_assert(!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE), "State change flag pending\n"); ftdmchan 575 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 578 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 585 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_SIG_UP)) { ftdmchan 586 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c sngisdn_set_span_avail_rate(ftdmchan->span, SNGISDN_AVAIL_DOWN); ftdmchan 598 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (((sngisdn_chan_data_t*)ftdmchan->call_data)->suInstId == suInstId || ftdmchan 599 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ((sngisdn_chan_data_t*)ftdmchan->call_data)->spInstId == spInstId) { ftdmchan 601 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c get_facility_ie(ftdmchan, &relEvnt->facilityStr); ftdmchan 604 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = relEvnt->causeDgn[0].causeVal.val; ftdmchan 605 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "cause:%d\n", ftdmchan->caller_data.hangup_cause); ftdmchan 607 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "RELEASE COMPLETE did not have a cause code\n"); ftdmchan 608 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_REQUESTED_CHAN_UNAVAIL; ftdmchan 612 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 615 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "RELEASE was for previous call (suInstId:%u spInstId:%u)\n", suInstId, spInstId); ftdmchan 620 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_CANCEL); ftdmchan 627 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Received RELEASE for local glared call\n"); ftdmchan 630 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Received release before we could clear local call\n"); ftdmchan 637 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Processing SETUP but channel in RESET state, ignoring\n"); ftdmchan 640 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Received RELEASE in an invalid state (%s)\n", ftdmchan 641 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_state2str(ftdmchan->state)); ftdmchan 658 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 665 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Processing DATA IND (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 677 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 684 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Processing SSHL IND (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 696 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 703 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Processing SSHL CFM (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 715 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 722 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Processing RESUME/RETRIEVE IND (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 734 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 741 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Processing RESUME/RETRIEVE CFM (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 753 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 760 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Processing FLOW CONTROL IND (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 772 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 773 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 779 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Processing FACILITY IND (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 781 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 795 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c strcpy(ftdmchan->caller_data.cid_name, retrieved_str); ftdmchan 797 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Failed to retrieve Caller Name from Facility IE\n"); ftdmchan 805 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 809 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "FACILITY received, but we already proceeded with call\n"); ftdmchan 815 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c get_facility_ie_str(ftdmchan, &facEvnt->facElmt.facStr.val[2], facEvnt->facElmt.facStr.len-2); ftdmchan 818 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 819 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c sigev.span_id = ftdmchan->span_id; ftdmchan 820 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c sigev.channel = ftdmchan; ftdmchan 823 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 840 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 852 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Processing STATUS CONFIRM (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 854 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_assert(!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE), "State change flag pending\n"); ftdmchan 860 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Received STATUS without call state\n"); ftdmchan 866 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Status Check OK:%d", call_state); ftdmchan 870 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "Message incompatible with call state (call_state:%d channel-state:%s cause:%d) (suId:%u suInstId:%u spInstId:%u)\n", call_state, ftdm_channel_state2str(ftdmchan->state), staEvnt->causeDgn[0].causeVal.val, suId, suInstId, spInstId); ftdmchan 873 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "Recovery on timer expire (call_state:%d channel-state:%s cause:%d) (suId:%u suInstId:%u spInstId:%u)\n", call_state, ftdm_channel_state2str(ftdmchan->state), staEvnt->causeDgn[0].causeVal.val, suId, suInstId, spInstId); ftdmchan 876 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "STATUS CONFIRM (call_state:%d channel-state:%s cause:%d) (suId:%u suInstId:%u spInstId:%u)\n", call_state, ftdm_channel_state2str(ftdmchan->state), staEvnt->causeDgn[0].causeVal.val, suId, suInstId, spInstId); ftdmchan 881 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = staEvnt->causeDgn[0].causeVal.val; ftdmchan 886 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 891 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 902 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "How can we we in FTDM_CHANNEL_STATE_HANGUP after checking for state change?\n"); ftdmchan 903 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 908 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 914 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Don't know how to handle incompatible state. remote call state:%d our state:%s\n", call_state, ftdm_channel_state2str(ftdmchan->state)); ftdmchan 919 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 922 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 923 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_sched_timer(((sngisdn_span_data_t*)ftdmchan->span->signal_data)->sched, "delayed_connect", 1, sngisdn_delayed_connect, (void*) sngisdn_info, NULL); ftdmchan 928 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Don't know how to handle incompatible state. remote call state:%d our state:%s\n", call_state, ftdm_channel_state2str(ftdmchan->state)); ftdmchan 933 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 937 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "T302 Timer expired, proceeding with call\n"); ftdmchan 938 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 944 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Remote switch expecting OVERLAP receive, but we are already PROCEEDING\n"); ftdmchan 945 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c sngisdn_snd_disconnect(ftdmchan); ftdmchan 950 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c sngisdn_snd_disconnect(ftdmchan); ftdmchan 953 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Don't know how to handle incompatible state. remote call state:%d our state:%s\n", call_state, ftdm_channel_state2str(ftdmchan->state)); ftdmchan 958 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 963 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = staEvnt->causeDgn[0].causeVal.val; ftdmchan 964 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "T310 Timer expired, hanging up call\n"); ftdmchan 966 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 971 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 972 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_sched_timer(((sngisdn_span_data_t*)ftdmchan->span->signal_data)->sched, "delayed_connect", 1, sngisdn_delayed_connect, (void*) sngisdn_info, NULL); ftdmchan 977 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Don't know how to handle incompatible state. remote call state:%d our state:%s\n", call_state, ftdm_channel_state2str(ftdmchan->state)); ftdmchan 982 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 989 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c sngisdn_snd_disconnect(ftdmchan); ftdmchan 992 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Don't know how to handle incompatible state. remote call state:%d our state:%s\n", call_state, ftdm_channel_state2str(ftdmchan->state)); ftdmchan 997 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 1006 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_sched_timer(((sngisdn_span_data_t*)ftdmchan->span->signal_data)->sched, "delayed_connect", 1, sngisdn_delayed_connect, (void*) sngisdn_info, NULL); ftdmchan 1009 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Don't know how to handle incompatible state. remote call state:%d our state:%s\n", call_state, ftdm_channel_state2str(ftdmchan->state)); ftdmchan 1014 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 1021 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_sched_timer(((sngisdn_span_data_t*)ftdmchan->span->signal_data)->sched, "delayed_disconnect", 1, sngisdn_delayed_disconnect, (void*) sngisdn_info, NULL); ftdmchan 1024 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Don't know how to handle incompatible state. remote call state:%d our state:%s\n", call_state, ftdm_channel_state2str(ftdmchan->state)); ftdmchan 1029 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 1034 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Don't know how to handle incompatible state. remote call state:%d our state:%s\n", call_state, ftdm_channel_state2str(ftdmchan->state)); ftdmchan 1039 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 1042 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 1048 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Don't know how to handle incompatible state. remote call state:%d our state:%s\n", call_state, ftdm_channel_state2str(ftdmchan->state)); ftdmchan 1054 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 1059 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Don't know how to handle incompatible state. remote call state:%d our state:%s\n", call_state, ftdm_channel_state2str(ftdmchan->state)); ftdmchan 1065 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Don't know how to handle incompatible state. remote call state:%d our state:%s\n", call_state, ftdm_channel_state2str(ftdmchan->state)); ftdmchan 1108 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c static void sngisdn_process_restart_confirm(ftdm_channel_t *ftdmchan) ftdmchan 1110 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 1112 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 1118 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Received RESTART CFM in an invalid state (%s)\n", ftdmchan 1119 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_state2str(ftdmchan->state)); ftdmchan 1179 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = ftdm_span_get_channel(signal_data->ftdm_span, chan_no); ftdmchan 1180 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c sngisdn_process_restart_confirm(ftdmchan); ftdmchan 1221 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c static ftdm_status_t sngisdn_cause_val_requires_disconnect(ftdm_channel_t *ftdmchan, CauseDgn *causeDgn) ftdmchan 1223 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 37 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_setup(ftdm_channel_t *ftdmchan) ftdmchan 40 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_chan_data_t *sngisdn_info = ftdmchan->call_data; ftdmchan 41 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 57 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP && ftdmchan 61 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(sngisdn_info->ftdmchan, FTDM_LOG_INFO, "Outgoing call: Called No:[%s] Calling No:[%s]\n", ftdmchan->caller_data.dnis.digits, ftdmchan->caller_data.cid_num.digits); ftdmchan 63 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_chan_id_ie(ftdmchan, &conEvnt.chanId); ftdmchan 64 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_bear_cap_ie(ftdmchan, &conEvnt.bearCap[0]); ftdmchan 65 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_called_num(ftdmchan, &conEvnt.cdPtyNmb); ftdmchan 66 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_calling_num(ftdmchan, &conEvnt.cgPtyNmb); ftdmchan 67 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_calling_num2(ftdmchan, &conEvnt.cgPtyNmb2); ftdmchan 68 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_calling_subaddr(ftdmchan, &conEvnt.cgPtySad); ftdmchan 69 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_redir_num(ftdmchan, &conEvnt.redirNmb); ftdmchan 70 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_calling_name(ftdmchan, &conEvnt); ftdmchan 71 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_facility_ie(ftdmchan, &conEvnt.facilityStr); ftdmchan 72 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_prog_ind_ie(ftdmchan, &conEvnt.progInd, prog_ind); ftdmchan 74 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_INFO, "Sending SETUP (suId:%d suInstId:%u spInstId:%u dchan:%d ces:%d)\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId, signal_data->dchan_id, sngisdn_info->ces); ftdmchan 77 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused SETUP request\n"); ftdmchan 84 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_setup_ack(ftdm_channel_t *ftdmchan) ftdmchan 88 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_chan_data_t *sngisdn_info = (sngisdn_chan_data_t*) ftdmchan->call_data; ftdmchan 89 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 92 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Sending SETUP ACK , but no call data, aborting (suId:%d suInstId:%u spInstId:%u)\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId); ftdmchan 94 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 102 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_INFO, "Sending SETUP ACK (suId:%d suInstId:%u spInstId:%u dchan:%d ces:%d)\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId, signal_data->dchan_id, sngisdn_info->ces); ftdmchan 105 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused SETUP ACK request\n"); ftdmchan 113 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_con_complete(ftdm_channel_t *ftdmchan) ftdmchan 117 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_chan_data_t *sngisdn_info = (sngisdn_chan_data_t*) ftdmchan->call_data; ftdmchan 118 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 121 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Sending CONNECT COMPL , but no call data, aborting (suId:%d suInstId:%u spInstId:%u)\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId); ftdmchan 123 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 129 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_chan_id_ie(ftdmchan, &cnStEvnt.chanId); ftdmchan 131 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_INFO, "Sending CONNECT COMPL (suId:%d suInstId:%u spInstId:%u dchan:%d ces:%d)\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId, signal_data->dchan_id, sngisdn_info->ces); ftdmchan 134 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused CONNECT ACK request\n"); ftdmchan 140 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_proceed(ftdm_channel_t *ftdmchan, ftdm_sngisdn_progind_t prog_ind) ftdmchan 143 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_chan_data_t *sngisdn_info = (sngisdn_chan_data_t*) ftdmchan->call_data; ftdmchan 144 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 147 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Sending PROGRESS, but no call data, aborting (suId:%d suInstId:%u spInstId:%u)\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId); ftdmchan 149 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 155 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_chan_id_ie(ftdmchan, &cnStEvnt.chanId); ftdmchan 156 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_prog_ind_ie(ftdmchan, &cnStEvnt.progInd, prog_ind); ftdmchan 157 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_facility_ie(ftdmchan, &cnStEvnt.facilityStr); ftdmchan 159 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_call_clear_data(&ftdmchan->caller_data); ftdmchan 161 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_INFO, "Sending PROCEED (suId:%d suInstId:%u spInstId:%u dchan:%d ces:%d)\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId, signal_data->dchan_id, sngisdn_info->ces); ftdmchan 164 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused PROCEED request\n"); ftdmchan 169 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_progress(ftdm_channel_t *ftdmchan, ftdm_sngisdn_progind_t prog_ind) ftdmchan 173 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_chan_data_t *sngisdn_info = (sngisdn_chan_data_t*) ftdmchan->call_data; ftdmchan 174 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 177 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Sending PROGRESS, but no call data, aborting (suId:%d suInstId:%u spInstId:%u)\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId); ftdmchan 179 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 190 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_prog_ind_ie(ftdmchan, &cnStEvnt.progInd, prog_ind); ftdmchan 191 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_facility_ie(ftdmchan, &cnStEvnt.facilityStr); ftdmchan 192 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_call_clear_data(&ftdmchan->caller_data); ftdmchan 194 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_INFO, "Sending PROGRESS (suId:%d suInstId:%u spInstId:%u dchan:%d ces:%d)\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId, signal_data->dchan_id, sngisdn_info->ces); ftdmchan 196 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused PROGRESS request\n"); ftdmchan 201 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_alert(ftdm_channel_t *ftdmchan, ftdm_sngisdn_progind_t prog_ind) ftdmchan 205 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_chan_data_t *sngisdn_info = (sngisdn_chan_data_t*) ftdmchan->call_data; ftdmchan 206 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 209 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Sending ALERT, but no call data, aborting (suId:%d suInstId:%u spInstId:%u)\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId); ftdmchan 211 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 217 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_prog_ind_ie(ftdmchan, &cnStEvnt.progInd, prog_ind); ftdmchan 218 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_facility_ie(ftdmchan, &cnStEvnt.facilityStr); ftdmchan 219 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_call_clear_data(&ftdmchan->caller_data); ftdmchan 221 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_INFO, "Sending ALERT (suId:%d suInstId:%u spInstId:%u dchan:%d ces:%d)\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId, signal_data->dchan_id, sngisdn_info->ces); ftdmchan 224 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused ALERT request\n"); ftdmchan 229 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_connect(ftdm_channel_t *ftdmchan) ftdmchan 232 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_chan_data_t *sngisdn_info = (sngisdn_chan_data_t*) ftdmchan->call_data; ftdmchan 233 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 237 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Sending CONNECT, but no call data, aborting (suId:%d suInstId:%u spInstId:%u)\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId); ftdmchan 239 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 245 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_chan_id_ie(ftdmchan, &cnStEvnt.chanId); ftdmchan 246 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_prog_ind_ie(ftdmchan, &cnStEvnt.progInd, prog_ind); ftdmchan 247 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_facility_ie(ftdmchan, &cnStEvnt.facilityStr); ftdmchan 248 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_call_clear_data(&ftdmchan->caller_data); ftdmchan 250 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_INFO, "Sending CONNECT (suId:%d suInstId:%u spInstId:%u dchan:%d ces:%d)\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId, signal_data->dchan_id, sngisdn_info->ces); ftdmchan 252 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused CONNECT request\n"); ftdmchan 257 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_fac_req(ftdm_channel_t *ftdmchan) ftdmchan 261 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_chan_data_t *sngisdn_info = (sngisdn_chan_data_t*) ftdmchan->call_data; ftdmchan 262 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 265 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Sending FACILITY, but no call data, ignoring (suId:%d suInstId:%u spInstId:%u)\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId); ftdmchan 271 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c if (set_facility_ie_str(ftdmchan, &facEvnt.facElmt.facStr.val[2], (uint8_t*)&facEvnt.facElmt.facStr.len) != FTDM_SUCCESS) { ftdmchan 275 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_call_clear_data(&ftdmchan->caller_data); ftdmchan 283 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_INFO, "Sending FACILITY (suId:%d suInstId:%u spInstId:%u dchan:%d ces:%d)\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId, signal_data->dchan_id, sngisdn_info->ces); ftdmchan 286 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused FACILITY request\n"); ftdmchan 291 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_info_req(ftdm_channel_t *ftdmchan) ftdmchan 295 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_chan_data_t *sngisdn_info = (sngisdn_chan_data_t*) ftdmchan->call_data; ftdmchan 296 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 298 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c if (ftdmchan->span->trunk_type != FTDM_TRUNK_BRI && ftdmchan 299 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdmchan->span->trunk_type != FTDM_TRUNK_BRI_PTMP) { ftdmchan 301 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Ignoring INFO REQ on non-BRI channel\n"); ftdmchan 309 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_call_clear_data(&ftdmchan->caller_data); ftdmchan 311 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_INFO, "Sending INFO REQ (suId:%d dchan:%d ces:%d)\n", signal_data->cc_id, signal_data->dchan_id, sngisdn_info->ces); ftdmchan 314 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused INFO request\n"); ftdmchan 320 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_status_enq(ftdm_channel_t *ftdmchan) ftdmchan 324 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_chan_data_t *sngisdn_info = (sngisdn_chan_data_t*) ftdmchan->call_data; ftdmchan 325 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 331 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_call_clear_data(&ftdmchan->caller_data); ftdmchan 333 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Sending Status ENQ on suId:%d suInstId:%u spInstId:%d dchan:%d ces:%d\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId, signal_data->dchan_id, sngisdn_info->ces); ftdmchan 335 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused Status ENQ request\n"); ftdmchan 341 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_disconnect(ftdm_channel_t *ftdmchan) ftdmchan 345 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_chan_data_t *sngisdn_info = (sngisdn_chan_data_t*) ftdmchan->call_data; ftdmchan 346 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 349 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Sending DISCONNECT, but no call data, aborting (suId:%d suInstId:%u spInstId:%u)\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId); ftdmchan 352 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); ftdmchan 366 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c discEvnt.causeDgn[0].causeVal.val = ftdmchan->caller_data.hangup_cause; ftdmchan 370 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_facility_ie(ftdmchan, &discEvnt.facilityStr); ftdmchan 371 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_call_clear_data(&ftdmchan->caller_data); ftdmchan 373 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_INFO, "Sending DISCONNECT (suId:%d suInstId:%u spInstId:%u)\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId); ftdmchan 375 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused DISCONNECT request\n"); ftdmchan 380 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_release(ftdm_channel_t *ftdmchan, uint8_t glare) ftdmchan 385 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_chan_data_t *sngisdn_info = (sngisdn_chan_data_t*) ftdmchan->call_data; ftdmchan 386 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 389 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Sending RELEASE, but no call data, aborting (suId:%d suInstId:%u spInstId:%u)\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId); ftdmchan 392 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); ftdmchan 406 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c relEvnt.causeDgn[0].causeVal.val = ftdmchan->caller_data.hangup_cause; ftdmchan 418 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_facility_ie(ftdmchan, &relEvnt.facilityStr); ftdmchan 419 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_call_clear_data(&ftdmchan->caller_data); ftdmchan 421 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_INFO, "Sending RELEASE/RELEASE COMPLETE (suId:%d suInstId:%u spInstId:%u)\n", signal_data->cc_id, suInstId, spInstId); ftdmchan 425 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused RELEASE/RELEASE COMPLETE request\n"); ftdmchan 429 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused RELEASE/RELEASE COMPLETE request\n"); ftdmchan 435 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_restart(ftdm_channel_t *ftdmchan) ftdmchan 438 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 442 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_chan_id_ie(ftdmchan, &rstEvnt.chanId); ftdmchan 443 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c set_restart_ind_ie(ftdmchan, &rstEvnt.rstInd); ftdmchan 445 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan(ftdmchan, FTDM_LOG_INFO, "Sending RESTART (suId:%d dchan:%d ces:%d)\n", signal_data->cc_id, signal_data->dchan_id, CES_MNGMNT); ftdmchan 448 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused RESTART request\n"); ftdmchan 75 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_log_chan(sngisdn_info->ftdmchan, FTDM_LOG_INFO, "Received SETUP (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 94 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_queue_enqueue(((sngisdn_span_data_t*)sngisdn_info->ftdmchan->span->signal_data)->event_queue, sngisdn_event); ftdmchan 123 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_log_chan(sngisdn_info->ftdmchan, FTDM_LOG_INFO, "Received CONNECT/CONNECT ACK (suId:%u suInstId:%u spInstId:%u ces:%d)\n", suId, suInstId, spInstId, ces); ftdmchan 138 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_queue_enqueue(((sngisdn_span_data_t*)sngisdn_info->ftdmchan->span->signal_data)->event_queue, sngisdn_event); ftdmchan 166 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_log_chan(sngisdn_info->ftdmchan, FTDM_LOG_INFO, "Received %s (suId:%u suInstId:%u spInstId:%u ces:%d)\n", ftdmchan 189 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_queue_enqueue(((sngisdn_span_data_t*)sngisdn_info->ftdmchan->span->signal_data)->event_queue, sngisdn_event); ftdmchan 210 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_log_chan(sngisdn_info->ftdmchan, FTDM_LOG_INFO, "Received DISCONNECT (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 224 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_queue_enqueue(((sngisdn_span_data_t*)sngisdn_info->ftdmchan->span->signal_data)->event_queue, sngisdn_event); ftdmchan 245 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_log_chan(sngisdn_info->ftdmchan, FTDM_LOG_INFO, "Received RELEASE/RELEASE COMPLETE (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 259 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_queue_enqueue(((sngisdn_span_data_t*)sngisdn_info->ftdmchan->span->signal_data)->event_queue, sngisdn_event); ftdmchan 278 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_log_chan(sngisdn_info->ftdmchan, FTDM_LOG_INFO, "Received DATA IND suId:%u suInstId:%u spInstId:%u\n", suId, suInstId, spInstId); ftdmchan 292 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_queue_enqueue(((sngisdn_span_data_t*)sngisdn_info->ftdmchan->span->signal_data)->event_queue, sngisdn_event); ftdmchan 311 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_log_chan(sngisdn_info->ftdmchan, FTDM_LOG_INFO, "Received SSHL IND (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 326 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_queue_enqueue(((sngisdn_span_data_t*)sngisdn_info->ftdmchan->span->signal_data)->event_queue, sngisdn_event); ftdmchan 345 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_log_chan(sngisdn_info->ftdmchan, FTDM_LOG_INFO, "Received SSHL CFM (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 360 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_queue_enqueue(((sngisdn_span_data_t*)sngisdn_info->ftdmchan->span->signal_data)->event_queue, sngisdn_event); ftdmchan 378 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_log_chan(sngisdn_info->ftdmchan, FTDM_LOG_INFO, "Received RMRT IND (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 393 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_queue_enqueue(((sngisdn_span_data_t*)sngisdn_info->ftdmchan->span->signal_data)->event_queue, sngisdn_event); ftdmchan 412 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_log_chan(sngisdn_info->ftdmchan, FTDM_LOG_INFO, "Received RESUME/RETRIEVE CFM (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 427 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_queue_enqueue(((sngisdn_span_data_t*)sngisdn_info->ftdmchan->span->signal_data)->event_queue, sngisdn_event); ftdmchan 446 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_log_chan(sngisdn_info->ftdmchan, FTDM_LOG_INFO, "Received FLOW CONTROL IND (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 460 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_queue_enqueue(((sngisdn_span_data_t*)sngisdn_info->ftdmchan->span->signal_data)->event_queue, sngisdn_event); ftdmchan 480 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_log_chan(sngisdn_info->ftdmchan, FTDM_LOG_INFO, "Received FACILITY IND (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 494 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_queue_enqueue(((sngisdn_span_data_t*)sngisdn_info->ftdmchan->span->signal_data)->event_queue, sngisdn_event); ftdmchan 514 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_log_chan(sngisdn_info->ftdmchan, FTDM_LOG_INFO, "Received STATUS CONFIRM (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId); ftdmchan 528 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_queue_enqueue(((sngisdn_span_data_t*)sngisdn_info->ftdmchan->span->signal_data)->event_queue, sngisdn_event); ftdmchan 736 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c ftdm_channel_t *ftdmchan = ftdm_span_get_channel(ftdmspan, chan_no); ftdmchan 737 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c if (ftdmchan) { ftdmchan 738 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c sngisdn_set_chan_sig_status(ftdmchan, FTDM_SIG_STATE_UP); ftdmchan 739 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c sngisdn_set_chan_avail_rate(ftdmchan, SNGISDN_AVAIL_UP); ftdmchan 53 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c uint32_t cc_id = ((sngisdn_span_data_t*)sngisdn_info->ftdmchan->span->signal_data)->cc_id; ftdmchan 55 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_log_chan(sngisdn_info->ftdmchan, FTDM_LOG_DEBUG, "Clearing call data (suId:%u suInstId:%u spInstId:%u)\n", cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId); ftdmchan 70 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_log_chan(sngisdn_info->ftdmchan, FTDM_LOG_DEBUG, "Clearing glare data (suId:%d suInstId:%u spInstId:%u actv-suInstId:%u actv-spInstId:%u)\n", ftdmchan 165 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t get_callref(ftdm_channel_t *ftdmchan, BCCallRef* callRef) ftdmchan 167 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 168 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c sngisdn_chan_data_t *sngisdn_info = ftdmchan->call_data; ftdmchan 173 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c if (FTDM_SPAN_IS_BRI(ftdmchan->span) && !sngisdn_info->call_ref) { ftdmchan 174 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Failed to obtain call reference\n"); ftdmchan 178 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c if (FTDM_SPAN_IS_BRI(ftdmchan->span)) { ftdmchan 184 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Call reference:%04x\n", sngisdn_info->call_ref); ftdmchan 190 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t get_calling_num(ftdm_channel_t *ftdmchan, CgPtyNmb *cgPtyNmb) ftdmchan 192 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_caller_data_t *caller_data = &ftdmchan->caller_data; ftdmchan 220 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t get_calling_num2(ftdm_channel_t *ftdmchan, CgPtyNmb *cgPtyNmb) ftdmchan 222 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_caller_data_t *caller_data = &ftdmchan->caller_data; ftdmchan 253 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t get_called_num(ftdm_channel_t *ftdmchan, CdPtyNmb *cdPtyNmb) ftdmchan 255 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_caller_data_t *caller_data = &ftdmchan->caller_data; ftdmchan 277 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t get_redir_num(ftdm_channel_t *ftdmchan, RedirNmb *redirNmb) ftdmchan 279 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_caller_data_t *caller_data = &ftdmchan->caller_data; ftdmchan 298 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t get_calling_name_from_display(ftdm_channel_t *ftdmchan, Display *display) ftdmchan 300 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_caller_data_t *caller_data = &ftdmchan->caller_data; ftdmchan 312 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t get_calling_name_from_usr_usr(ftdm_channel_t *ftdmchan, UsrUsr *usrUsr) ftdmchan 314 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_caller_data_t *caller_data = &ftdmchan->caller_data; ftdmchan 331 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t get_calling_subaddr(ftdm_channel_t *ftdmchan, CgPtySad *cgPtySad) ftdmchan 340 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "Calling Party Subaddress exceeds local size limit (len:%d max:%d)\n", cgPtySad->sadInfo.len, sizeof(subaddress)); ftdmchan 346 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_call_add_var(&ftdmchan->caller_data, "isdn.calling_subaddr", subaddress); ftdmchan 350 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t get_facility_ie(ftdm_channel_t *ftdmchan, FacilityStr *facilityStr) ftdmchan 356 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c return get_facility_ie_str(ftdmchan, facilityStr->facilityStr.val, facilityStr->facilityStr.len); ftdmchan 359 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t get_facility_ie_str(ftdm_channel_t *ftdmchan, uint8_t *data, uint8_t data_len) ftdmchan 361 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_caller_data_t *caller_data = &ftdmchan->caller_data; ftdmchan 362 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 376 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Raw Facility IE copied available\n"); ftdmchan 383 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t get_prog_ind_ie(ftdm_channel_t *ftdmchan, ProgInd *progInd) ftdmchan 411 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "Unknown Progress Indicator Description (%d)\n", progInd->progDesc.val); ftdmchan 415 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_call_add_var(&ftdmchan->caller_data, "isdn.prog_ind.descr", ftdm_sngisdn_progind_descr2str(val)); ftdmchan 442 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "Unknown Progress Indicator Location (%d)", progInd->location.val); ftdmchan 446 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_call_add_var(&ftdmchan->caller_data, "isdn.prog_ind.loc", ftdm_sngisdn_progind_loc2str(val)); ftdmchan 452 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t set_calling_num(ftdm_channel_t *ftdmchan, CgPtyNmb *cgPtyNmb) ftdmchan 454 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_caller_data_t *caller_data = &ftdmchan->caller_data; ftdmchan 490 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t set_calling_num2(ftdm_channel_t *ftdmchan, CgPtyNmb *cgPtyNmb) ftdmchan 494 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_caller_data_t *caller_data = &ftdmchan->caller_data; ftdmchan 573 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t set_called_num(ftdm_channel_t *ftdmchan, CdPtyNmb *cdPtyNmb) ftdmchan 575 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_caller_data_t *caller_data = &ftdmchan->caller_data; ftdmchan 605 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t set_redir_num(ftdm_channel_t *ftdmchan, RedirNmb *redirNmb) ftdmchan 607 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_caller_data_t *caller_data = &ftdmchan->caller_data; ftdmchan 638 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t set_calling_name(ftdm_channel_t *ftdmchan, ConEvnt *conEvnt) ftdmchan 641 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_caller_data_t *caller_data = &ftdmchan->caller_data; ftdmchan 643 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 650 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI || ftdmchan 651 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP) { ftdmchan 691 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t set_calling_subaddr(ftdm_channel_t *ftdmchan, CgPtySad *cgPtySad) ftdmchan 694 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c clg_subaddr = ftdm_call_get_var(&ftdmchan->caller_data, "isdn.calling_subaddr"); ftdmchan 703 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Sending Calling Party Subaddress:%s\n", clg_subaddr); ftdmchan 711 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t set_facility_ie(ftdm_channel_t *ftdmchan, FacilityStr *facilityStr) ftdmchan 714 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c status = set_facility_ie_str(ftdmchan, facilityStr->facilityStr.val, (uint8_t*)&(facilityStr->facilityStr.len)); ftdmchan 722 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t set_facility_ie_str(ftdm_channel_t *ftdmchan, uint8_t *data, uint8_t *data_len) ftdmchan 725 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_caller_data_t *caller_data = &ftdmchan->caller_data; ftdmchan 735 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t set_prog_ind_ie(ftdm_channel_t *ftdmchan, ProgInd *progInd, ftdm_sngisdn_progind_t prog_ind) ftdmchan 741 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c str = ftdm_call_get_var(&ftdmchan->caller_data, "isdn.prog_ind.descr"); ftdmchan 752 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c str = ftdm_call_get_var(&ftdmchan->caller_data, "isdn.prog_ind.loc"); ftdmchan 822 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t set_chan_id_ie(ftdm_channel_t *ftdmchan, ChanId *chanId) ftdmchan 824 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c if (!ftdmchan) { ftdmchan 835 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI || ftdmchan 836 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP) { ftdmchan 842 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c chanId->infoChanSel.val = ftdmchan->physical_chan_id; ftdmchan 856 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c chanId->chanNmbSlotMap.val[0] = ftdmchan->physical_chan_id; ftdmchan 861 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t set_bear_cap_ie(ftdm_channel_t *ftdmchan, BearCap *bearCap) ftdmchan 863 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 867 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c bearCap->infoTranCap.val = sngisdn_get_infoTranCap_from_user(ftdmchan->caller_data.bearer_capability); ftdmchan 876 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c if (!FTDM_SPAN_IS_BRI(ftdmchan->span)) { ftdmchan 882 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c bearCap->usrInfoLyr1Prot.val = sngisdn_get_usrInfoLyr1Prot_from_user(ftdmchan->caller_data.bearer_layer1); ftdmchan 902 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t set_restart_ind_ie(ftdm_channel_t *ftdmchan, RstInd *rstInd) ftdmchan 913 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 914 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 916 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Timer T3 expired (suId:%d suInstId:%u spInstId:%u)\n", ftdmchan 918 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 921 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_log_chan(ftdmchan, FTDM_LOG_INFO, "Failed to Wake-Up line (suId:%d suInstId:%u spInstId:%u)\n", ftdmchan 924 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_NO_ROUTE_DESTINATION; ftdmchan 927 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 929 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 935 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 937 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 938 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c sngisdn_snd_setup(ftdmchan); ftdmchan 939 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 946 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 947 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 949 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 953 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Sending delayed RELEASE (suId:%d suInstId:%u spInstId:%u)\n", ftdmchan 956 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c sngisdn_snd_release(ftdmchan, 1); ftdmchan 959 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Call was already released (suId:%d suInstId:%u spInstId:%u)\n", ftdmchan 962 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 969 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 970 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 972 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 973 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Sending delayed CONNECT (suId:%d suInstId:%u spInstId:%u)\n", ftdmchan 976 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c sngisdn_snd_connect(ftdmchan); ftdmchan 977 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 984 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 985 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 987 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 988 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c if (ftdmchan->caller_data.hangup_cause == IN_CCNORTTODEST || ftdmchan->state != FTDM_CHANNEL_STATE_DOWN) { ftdmchan 989 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Sending delayed DISCONNECT (suId:%d suInstId:%u spInstId:%u)\n", ftdmchan 992 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c sngisdn_snd_disconnect(ftdmchan); ftdmchan 993 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c if (ftdmchan->caller_data.hangup_cause == IN_CCNORTTODEST) { ftdmchan 994 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_channel_t *close_chan = ftdmchan; ftdmchan 999 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1006 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 1007 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; ftdmchan 1009 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1010 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c if (ftdmchan->state == FTDM_CHANNEL_STATE_GET_CALLERID) { ftdmchan 1011 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_log_chan(ftdmchan, FTDM_LOG_INFO, "Facility timeout reached proceeding with call (suId:%d suInstId:%u spInstId:%u)\n", ftdmchan 1014 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 1017 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 231 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 239 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c if (sngisdn_map_call(signal_data, frame_info, &ftdmchan) == FTDM_SUCCESS) { ftdmchan 240 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c sigev.call_id = ftdmchan->caller_data.call_id; ftdmchan 241 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c sigev.span_id = ftdmchan->physical_span_id; ftdmchan 242 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c sigev.chan_id = ftdmchan->physical_chan_id; ftdmchan 243 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c sigev.channel = ftdmchan; ftdmchan 856 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 882 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c ftdmchan = (ftdm_channel_t*)(ftdm_iterator_current(curr)); ftdmchan 883 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c ftdm_channel_lock(ftdmchan); ftdmchan 886 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c sngisdn_info = (sngisdn_chan_data_t*)ftdmchan->call_data; ftdmchan 887 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c if (sngisdn_info && ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 888 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c if (ftdmchan->caller_data.call_id && ftdmchan->physical_chan_id == frame_info.bchan_no) { ftdmchan 891 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c *found = ftdmchan; ftdmchan 896 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c if (ftdmchan->physical_chan_id == frame_info.bchan_no) { ftdmchan 897 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c *found = ftdmchan; ftdmchan 901 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c ftdm_channel_unlock(ftdmchan); ftdmchan 924 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c ftdmchan = (ftdm_channel_t*)(ftdm_iterator_current(curr)); ftdmchan 925 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c ftdm_channel_lock(ftdmchan); ftdmchan 926 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c sngisdn_info = (sngisdn_chan_data_t*)ftdmchan->call_data; ftdmchan 928 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c if (sngisdn_info && ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 931 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c *found = ftdmchan; ftdmchan 936 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c if (sngisdn_info && !ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 939 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c *found = ftdmchan; ftdmchan 944 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c ftdm_channel_unlock(ftdmchan); ftdmchan 953 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Mapped %s with Call Ref:%04x to call-id:%d\n", get_code_2_str(frame_info.msgtype, dcodQ931MsgTypeTable), frame_info.call_ref, (*found)->caller_data.call_id); ftdmchan 692 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_channel_t *ftdmchan; ftdmchan 701 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan = ss7_info->ftdmchan; ftdmchan 705 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c lspan = ftdmchan->physical_span_id; ftdmchan 712 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c lchan = ftdmchan->physical_chan_id; ftdmchan 717 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if ((ftdmchan->physical_span_id == lspan) && (ftdmchan->physical_chan_id == lchan)) { ftdmchan 718 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c switch (ftdmchan->state) { ftdmchan 723 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan->physical_span_id, ftdmchan 724 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan->physical_chan_id, ftdmchan 726 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_channel_state2str(ftdmchan->state)); ftdmchan 755 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_channel_t *ftdmchan; ftdmchan 764 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan = ss7_info->ftdmchan; ftdmchan 768 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c lspan = ftdmchan->physical_span_id; ftdmchan 775 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c lchan = ftdmchan->physical_chan_id; ftdmchan 780 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if ((ftdmchan->physical_span_id == lspan) && (ftdmchan->physical_chan_id == lchan)) { ftdmchan 781 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c switch (ftdmchan->state) { ftdmchan 793 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan->physical_span_id, ftdmchan 794 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan->physical_chan_id, ftdmchan 796 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_channel_state2str(ftdmchan->state)); ftdmchan 825 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_channel_t *ftdmchan; ftdmchan 834 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan = ss7_info->ftdmchan; ftdmchan 838 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c lspan = ftdmchan->physical_span_id; ftdmchan 845 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c lchan = ftdmchan->physical_chan_id; ftdmchan 850 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if ((ftdmchan->physical_span_id == lspan) && (ftdmchan->physical_chan_id == lchan)) { ftdmchan 858 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan->physical_span_id, ftdmchan 859 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan->physical_chan_id, ftdmchan 884 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_channel_t *ftdmchan; ftdmchan 892 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan = ss7_info->ftdmchan; ftdmchan 896 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c lspan = ftdmchan->physical_span_id; ftdmchan 903 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c lchan = ftdmchan->physical_chan_id; ftdmchan 908 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if ((ftdmchan->physical_span_id == lspan) && (ftdmchan->physical_chan_id == lchan)) { ftdmchan 910 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan->physical_span_id, ftdmchan 911 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan->physical_chan_id, ftdmchan 940 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_channel_t *ftdmchan; ftdmchan 948 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan = ss7_info->ftdmchan; ftdmchan 952 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c lspan = ftdmchan->physical_span_id; ftdmchan 959 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c lchan = ftdmchan->physical_chan_id; ftdmchan 964 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if ((ftdmchan->physical_span_id == lspan) && (ftdmchan->physical_chan_id == lchan)) { ftdmchan 966 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan->physical_span_id, ftdmchan 967 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan->physical_chan_id, ftdmchan 1023 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_channel_t *ftdmchan; ftdmchan 1062 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan = ss7_info->ftdmchan; ftdmchan 1065 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_channel_get_sig_status(ftdmchan, &sigstatus); ftdmchan 1072 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_channel_state2str(ftdmchan->state)); ftdmchan 1126 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_channel_t *ftdmchan; ftdmchan 1134 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan = ss7_info->ftdmchan; ftdmchan 1138 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c lspan = ftdmchan->physical_span_id; ftdmchan 1145 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c lchan = ftdmchan->physical_chan_id; ftdmchan 1150 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if ((ftdmchan->physical_span_id == lspan) && (ftdmchan->physical_chan_id == lchan)) { ftdmchan 1152 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1155 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if (check_for_state_change(ftdmchan)) { ftdmchan 1160 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1168 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 1172 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1192 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_channel_t *ftdmchan; ftdmchan 1200 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan = ss7_info->ftdmchan; ftdmchan 1204 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c lspan = ftdmchan->physical_span_id; ftdmchan 1211 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c lchan = ftdmchan->physical_chan_id; ftdmchan 1216 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if ((ftdmchan->physical_span_id == lspan) && (ftdmchan->physical_chan_id == lchan)) { ftdmchan 1218 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1221 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if (check_for_state_change(ftdmchan)) { ftdmchan 1226 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1237 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 1241 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1403 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_channel_t *ftdmchan; ftdmchan 1411 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan = sngss7_info->ftdmchan; ftdmchan 1415 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c lspan = ftdmchan->physical_span_id; ftdmchan 1422 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c lchan = ftdmchan->physical_chan_id; ftdmchan 1427 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if ((ftdmchan->physical_span_id == lspan) && (ftdmchan->physical_chan_id == lchan)) { ftdmchan 1429 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1434 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c switch (ftdmchan->state) { ftdmchan 1438 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_IDLE); ftdmchan 1443 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 1449 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1471 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_channel_t *ftdmchan; ftdmchan 1484 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan = sngss7_info->ftdmchan; ftdmchan 1485 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c sngss7_span = ftdmchan->span->signal_data; ftdmchan 1487 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if ((ftdmchan->physical_span_id == span) && ftdmchan 1488 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ((ftdmchan->physical_chan_id >= chan) && (ftdmchan->physical_chan_id < (chan+range)))) { ftdmchan 1490 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1493 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if (check_for_state_change(ftdmchan)) { ftdmchan 1498 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1504 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if (ftdmchan->physical_chan_id == chan) { ftdmchan 1511 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 1516 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1531 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan = sngss7_info->ftdmchan; ftdmchan 1532 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c sngss7_span = ftdmchan->span->signal_data; ftdmchan 1534 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if ((ftdmchan->physical_span_id == span) && ftdmchan 1535 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ((ftdmchan->physical_chan_id >= chan) && (ftdmchan->physical_chan_id < (chan+range)))) { ftdmchan 1553 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_channel_t *ftdmchan; ftdmchan 1574 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan = sngss7_info->ftdmchan; ftdmchan 1575 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c sngss7_span = ftdmchan->span->signal_data; ftdmchan 1578 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if ((ftdmchan->physical_span_id == span) && ftdmchan 1579 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ((ftdmchan->physical_chan_id >= chan) && (ftdmchan->physical_chan_id < (chan+range)))) { ftdmchan 1582 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1588 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 1589 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c sigev.span_id = ftdmchan->span_id; ftdmchan 1590 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c sigev.channel = ftdmchan; ftdmchan 1593 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 1596 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if (ftdmchan->physical_chan_id == chan) { ftdmchan 1598 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c main_chan = ftdmchan; ftdmchan 1615 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1630 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan = sngss7_info->ftdmchan; ftdmchan 1631 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c sngss7_span = ftdmchan->span->signal_data; ftdmchan 1633 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if ((ftdmchan->physical_span_id == span) && ftdmchan 1634 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ((ftdmchan->physical_chan_id >= chan) && (ftdmchan->physical_chan_id < (chan+range)))) { ftdmchan 1653 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_channel_t *ftdmchan; ftdmchan 1674 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan = sngss7_info->ftdmchan; ftdmchan 1675 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c sngss7_span = ftdmchan->span->signal_data; ftdmchan 1678 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if ((ftdmchan->physical_span_id == span) && ftdmchan 1679 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ((ftdmchan->physical_chan_id >= chan) && (ftdmchan->physical_chan_id < (chan+range)))) { ftdmchan 1682 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1688 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 1689 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c sigev.span_id = ftdmchan->span_id; ftdmchan 1690 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c sigev.channel = ftdmchan; ftdmchan 1693 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 1696 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if (ftdmchan->physical_chan_id == chan) { ftdmchan 1698 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c main_chan = ftdmchan; ftdmchan 1715 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1730 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ftdmchan = sngss7_info->ftdmchan; ftdmchan 1731 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c sngss7_span = ftdmchan->span->signal_data; ftdmchan 1733 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c if ((ftdmchan->physical_span_id == span) && ftdmchan 1734 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c ((ftdmchan->physical_chan_id >= chan) && (ftdmchan->physical_chan_id < (chan+range)))) { ftdmchan 87 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 93 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 100 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 103 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx IAM (glare)\n", sngss7_info->circuit->cic); ftdmchan 105 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx IAM\n", sngss7_info->circuit->cic); ftdmchan 122 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c switch (ftdmchan->state) { ftdmchan 127 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INUSE)) { ftdmchan 130 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c } else if(ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 133 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->physical_span_id, ftdmchan 134 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->physical_chan_id); ftdmchan 139 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.hangup_cause = 41; ftdmchan 142 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_CANCEL); ftdmchan 155 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.cid_num.digits, ftdmchan 159 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_string(ftdmchan->caller_data.cid_name, ftdmchan->caller_data.cid_num.digits); ftdmchan 162 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_string(ftdmchan->caller_data.ani.digits, ftdmchan->caller_data.cid_num.digits); ftdmchan 167 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.screen = siConEvnt->cgPtyNum.scrnInd.val; ftdmchan 172 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.pres = siConEvnt->cgPtyNum.presRest.val; ftdmchan 175 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"No Calling party (ANI) information in IAM!%s\n", " "); ftdmchan 183 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.dnis.digits, ftdmchan 187 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"No Called party (DNIS) information in IAM!%s\n", " "); ftdmchan 195 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.rdnis.digits, ftdmchan 199 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_DEBUG_CHAN(ftdmchan,"No RDNIS party information in IAM!%s\n", " "); ftdmchan 206 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.bearer_capability = siConEvnt->txMedReq.trMedReq.val; ftdmchan 209 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_DEBUG_CHAN(ftdmchan,"No TMR/Bearer Cap information in IAM!%s\n", " "); ftdmchan 214 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_call_add_var(&ftdmchan->caller_data, "ss7_clg_nadi", nadi); ftdmchan 217 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_call_add_var(&ftdmchan->caller_data, "ss7_cld_nadi", nadi); ftdmchan 225 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Found COT Request\n", sngss7_info->circuit->cic); ftdmchan 228 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_ENABLE_LOOP, NULL); ftdmchan 231 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_IN_LOOP); ftdmchan 234 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_COLLECT); ftdmchan 247 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan, "Got IAM on channel that is already inuse (state=%s|inuse=%d)...glare!\n", ftdmchan 248 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_state2str (ftdmchan->state), ftdmchan 249 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INUSE)); ftdmchan 261 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.hangup_cause = 34; /* Circuit Congrestion */ ftdmchan 267 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 272 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_ERROR_CHAN(ftdmchan, "Got IAM on channel in invalid state(%s)...reset!\n", ftdm_channel_state2str (ftdmchan->state)); ftdmchan 278 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 285 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 297 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 300 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 307 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 312 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx ACM\n", sngss7_info->circuit->cic); ftdmchan 314 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c switch (ftdmchan->state) { ftdmchan 327 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA); ftdmchan 330 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS); ftdmchan 334 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA); ftdmchan 340 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_ERROR_CHAN(ftdmchan, "RX ACM in invalid state :%s...resetting CIC\n", ftdmchan 341 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_state2str (ftdmchan->state)); ftdmchan 347 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 355 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx MODIFY\n", sngss7_info->circuit->cic); ftdmchan 359 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx MODIFY-COMPLETE\n", sngss7_info->circuit->cic); ftdmchan 363 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx MODIFY-REJECT\n", sngss7_info->circuit->cic); ftdmchan 367 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CPG\n", sngss7_info->circuit->cic); ftdmchan 371 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx FOT\n", sngss7_info->circuit->cic); ftdmchan 375 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx INF\n", sngss7_info->circuit->cic); ftdmchan 379 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx INR\n", sngss7_info->circuit->cic); ftdmchan 383 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx SAM\n", sngss7_info->circuit->cic); ftdmchan 386 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c switch (ftdmchan->state) { ftdmchan 394 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.dnis.digits, ftdmchan 397 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"No Called party (DNIS) information in SAM!%s\n", " "); ftdmchan 401 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_IDLE); ftdmchan 406 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_ERROR_CHAN(ftdmchan, "RX SAM in invalid state :%s...ignoring\n", ftdmchan 407 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_state2str (ftdmchan->state)); ftdmchan 415 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx EXIT\n", sngss7_info->circuit->cic); ftdmchan 419 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx NRM\n", sngss7_info->circuit->cic); ftdmchan 423 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx IDR\n", sngss7_info->circuit->cic); ftdmchan 427 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx IRS\n", sngss7_info->circuit->cic); ftdmchan 431 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx MALICIOUS CALL\n", sngss7_info->circuit->cic); ftdmchan 435 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CRG\n", sngss7_info->circuit->cic); ftdmchan 439 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CRG-TARIFF\n", sngss7_info->circuit->cic); ftdmchan 443 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CRG-ACK\n", sngss7_info->circuit->cic); ftdmchan 447 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CALL-OFFER\n", sngss7_info->circuit->cic); ftdmchan 451 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx LOP\n", sngss7_info->circuit->cic); ftdmchan 455 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx ECT-Timeout\n", sngss7_info->circuit->cic); ftdmchan 459 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx RINGING-SEND\n", sngss7_info->circuit->cic); ftdmchan 463 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CALL-LINE Clear\n", sngss7_info->circuit->cic); ftdmchan 467 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx PRI\n", sngss7_info->circuit->cic); ftdmchan 471 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx APM\n", sngss7_info->circuit->cic); ftdmchan 475 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx OPERATOR\n", sngss7_info->circuit->cic); ftdmchan 479 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx METERING-PULSE\n", sngss7_info->circuit->cic); ftdmchan 483 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CALLING_PARTY_CLEAR\n", sngss7_info->circuit->cic); ftdmchan 487 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx SUB-DIR\n", sngss7_info->circuit->cic); ftdmchan 491 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx Unknown Msg\n", sngss7_info->circuit->cic); ftdmchan 497 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 509 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 512 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 519 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 522 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c switch (ftdmchan->state) { ftdmchan 527 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx ANM\n", sngss7_info->circuit->cic); ftdmchan 530 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 536 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CON\n", sngss7_info->circuit->cic); ftdmchan 539 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 545 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx ANM/CON\n", sngss7_info->circuit->cic); ftdmchan 551 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 558 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 570 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 573 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 580 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 582 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx REL cause=%d\n", ftdmchan 587 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c switch (ftdmchan->state) { ftdmchan 593 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.hangup_cause = siRelEvnt->causeDgn.causeVal.val; ftdmchan 596 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.hangup_cause = 0; ftdmchan 601 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DISABLE_LOOP, NULL); ftdmchan 603 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 614 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.hangup_cause = siRelEvnt->causeDgn.causeVal.val; ftdmchan 617 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.hangup_cause = 0; ftdmchan 624 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 631 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DISABLE_LOOP, NULL); ftdmchan 637 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); ftdmchan 651 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 658 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 670 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 673 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 680 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 682 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx RLC\n", sngss7_info->circuit->cic); ftdmchan 685 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c switch (ftdmchan->state) { ftdmchan 690 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 702 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 709 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 721 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 724 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 731 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 733 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx DATA IND\n", sngss7_info->circuit->cic); ftdmchan 736 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 748 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 751 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 758 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 760 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx FAC\n", sngss7_info->circuit->cic); ftdmchan 763 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 775 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 778 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 785 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 787 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx FAC-CON\n", sngss7_info->circuit->cic); ftdmchan 790 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 802 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 805 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 812 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 814 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx USER-USER msg\n", sngss7_info->circuit->cic); ftdmchan 817 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 829 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 832 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 839 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 841 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx Call-Suspend msg\n", sngss7_info->circuit->cic); ftdmchan 844 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 856 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 859 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 866 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 868 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx Call-Resume msg\n", sngss7_info->circuit->cic); ftdmchan 871 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 881 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 884 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 895 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx Reattempt indication\n", sngss7_info->circuit->cic); ftdmchan 900 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx Error indication\n", sngss7_info->circuit->cic); ftdmchan 905 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CCR start\n", sngss7_info->circuit->cic); ftdmchan 910 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx COT report\n", sngss7_info->circuit->cic); ftdmchan 915 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CCR stop\n", sngss7_info->circuit->cic); ftdmchan 920 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CQM\n", sngss7_info->circuit->cic); ftdmchan 925 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CFN\n", sngss7_info->circuit->cic); ftdmchan 930 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx LPA\n", sngss7_info->circuit->cic); ftdmchan 935 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx Ckt Resveration req\n", sngss7_info->circuit->cic); ftdmchan 940 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx Ckt Res ack\n", sngss7_info->circuit->cic); ftdmchan 945 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx BLO\n", sngss7_info->circuit->cic); ftdmchan 950 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx BLA\n", sngss7_info->circuit->cic); ftdmchan 955 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx UBL\n", sngss7_info->circuit->cic); ftdmchan 960 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx UBA\n", sngss7_info->circuit->cic); ftdmchan 965 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx RSC\n", sngss7_info->circuit->cic); ftdmchan 970 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx Local RSC\n", sngss7_info->circuit->cic); ftdmchan 975 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx RSC-RLC\n", sngss7_info->circuit->cic); ftdmchan 980 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CGB\n", sngss7_info->circuit->cic); ftdmchan 985 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CGU\n", sngss7_info->circuit->cic); ftdmchan 990 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CQM\n", sngss7_info->circuit->cic); ftdmchan 995 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx mntc CGB\n", sngss7_info->circuit->cic); ftdmchan 1000 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx mntc CGU\n", sngss7_info->circuit->cic); ftdmchan 1005 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx GRS\n", sngss7_info->circuit->cic); ftdmchan 1010 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx UCIC\n", sngss7_info->circuit->cic); ftdmchan 1015 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx GRA\n", sngss7_info->circuit->cic); ftdmchan 1020 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx SUS\n", sngss7_info->circuit->cic); ftdmchan 1025 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx RES\n", sngss7_info->circuit->cic); ftdmchan 1030 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx UPA\n", sngss7_info->circuit->cic); ftdmchan 1035 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx Remote User not Available\n", sngss7_info->circuit->cic); ftdmchan 1040 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx Congestion L0\n", sngss7_info->circuit->cic); ftdmchan 1045 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx Congestion L1\n", sngss7_info->circuit->cic); ftdmchan 1050 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx Congestion L2\n", sngss7_info->circuit->cic); ftdmchan 1055 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx Congestion L3\n", sngss7_info->circuit->cic); ftdmchan 1060 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx Stop Congestion\n", sngss7_info->circuit->cic); ftdmchan 1065 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx Local BLO\n", sngss7_info->circuit->cic); ftdmchan 1070 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx Local UBL\n", sngss7_info->circuit->cic); ftdmchan 1075 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx Overload\n", sngss7_info->circuit->cic); ftdmchan 1080 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx LM CGB\n", sngss7_info->circuit->cic); ftdmchan 1085 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx LM CGU\n", sngss7_info->circuit->cic); ftdmchan 1090 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx LM RSC\n", sngss7_info->circuit->cic); ftdmchan 1100 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx LM CQM\n", sngss7_info->circuit->cic); ftdmchan 1105 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx Local GRS\n", sngss7_info->circuit->cic); ftdmchan 1125 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1128 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1135 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1139 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_DEBUG_CHAN(ftdmchan, "Glare flag is already up...nothing to do!%s\n", " "); ftdmchan 1141 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_DEBUG_CHAN(ftdmchan, "Glare flag is not up yet...indicating glare from reattempt!%s\n", " "); ftdmchan 1149 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.hangup_cause = 34; /* Circuit Congrestion */ ftdmchan 1155 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 1159 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1171 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1190 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(i, &sngss7_info, &ftdmchan)) { ftdmchan 1197 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1200 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (ftdm_test_flag(ftdmchan->span, FTDM_SPAN_IN_THREAD)) { ftdmchan 1201 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_DEBUG_CHAN(ftdmchan, "Rx PAUSE%s\n", ""); ftdmchan 1207 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1226 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1245 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(i, &sngss7_info, &ftdmchan)) { ftdmchan 1252 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1256 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_DEBUG_CHAN(ftdmchan, "Rx RESUME%s\n", ""); ftdmchan 1266 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1285 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1288 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1295 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1298 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OPEN)) { ftdmchan 1299 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 1308 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_ENABLE_LOOP, NULL); ftdmchan 1311 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_IN_LOOP); ftdmchan 1314 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1326 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1329 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1336 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1339 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DISABLE_LOOP, NULL); ftdmchan 1342 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, ftdmchan->last_state); ftdmchan 1345 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1357 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1360 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1367 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1369 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c switch (ftdmchan->state) { ftdmchan 1373 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DISABLE_LOOP, NULL); ftdmchan 1376 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_COLLECT); ftdmchan 1382 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, ftdmchan->last_state); ftdmchan 1399 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1411 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1414 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1421 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1432 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 1435 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1447 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1450 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1457 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1462 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1474 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1477 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1484 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1498 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 1501 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1513 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1516 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1523 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1528 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1540 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1543 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1550 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1555 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c switch (ftdmchan->state) { ftdmchan 1560 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_IDLE); ftdmchan 1567 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 1573 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1585 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1588 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1595 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1600 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c switch (ftdmchan->state) { ftdmchan 1605 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_IDLE); ftdmchan 1612 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 1618 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1630 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1633 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1640 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1642 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c switch (ftdmchan->state) { ftdmchan 1651 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 1682 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.hangup_cause = siStaEvnt->causeDgn.causeVal.val; ftdmchan 1684 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.hangup_cause = 98; /* Message not compatiable with call state */ ftdmchan 1687 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 1693 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1704 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1709 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1725 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sngss7_span = ftdmchan->span->signal_data; ftdmchan 1741 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1745 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1761 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sngss7_span = ftdmchan->span->signal_data; ftdmchan 1785 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1788 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1795 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1806 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 1809 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1821 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1824 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1831 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1842 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 1845 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1858 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1862 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1869 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sngss7_span = ftdmchan->span->signal_data; ftdmchan 1878 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1884 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 1887 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1900 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1913 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1920 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sngss7_span = ftdmchan->span->signal_data; ftdmchan 1965 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(x, &sngss7_info, &ftdmchan)) { ftdmchan 1971 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 2001 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 2002 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sigev.span_id = ftdmchan->span_id; ftdmchan 2003 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sigev.channel = ftdmchan; ftdmchan 2008 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 2011 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 2023 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 2029 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ft_to_sngss7_cgba(ftdmchan); ftdmchan 2041 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 2054 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 2061 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sngss7_span = ftdmchan->span->signal_data; ftdmchan 2104 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(x, &sngss7_info, &ftdmchan)) { ftdmchan 2110 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 2132 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 2133 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sigev.span_id = ftdmchan->span_id; ftdmchan 2134 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sigev.channel = ftdmchan; ftdmchan 2139 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 2142 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 2154 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 2160 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ft_to_sngss7_cgua(ftdmchan); ftdmchan 2171 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 2174 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 2181 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_ERROR_CHAN(ftdmchan,"[CIC:%d]Rx Overload\n", sngss7_info->circuit->cic); ftdmchan 66 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 70 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 93 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->signal_data)->event_queue, sngss7_event); ftdmchan 104 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 108 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 131 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->signal_data)->event_queue, sngss7_event); ftdmchan 142 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 146 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 170 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->signal_data)->event_queue, sngss7_event); ftdmchan 181 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 185 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 208 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->signal_data)->event_queue, sngss7_event); ftdmchan 219 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 223 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 246 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->signal_data)->event_queue, sngss7_event); ftdmchan 257 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 261 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 284 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->signal_data)->event_queue, sngss7_event); ftdmchan 295 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 299 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 323 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->signal_data)->event_queue, sngss7_event); ftdmchan 334 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 338 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 362 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->signal_data)->event_queue, sngss7_event); ftdmchan 373 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 377 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 399 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->signal_data)->event_queue, sngss7_event); ftdmchan 410 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 414 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 441 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->signal_data)->event_queue, sngss7_event); ftdmchan 452 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 456 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 481 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->signal_data)->event_queue, sngss7_event); ftdmchan 493 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 497 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 522 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->signal_data)->event_queue, sngss7_event); ftdmchan 534 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 538 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 563 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->signal_data)->event_queue, sngss7_event); ftdmchan 275 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 304 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c while ((ftdmchan = ftdm_queue_dequeue (ftdmspan->pendingchans))) { ftdmchan 307 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 310 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_channel_advance_states(ftdmchan); ftdmchan 313 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_unlock (ftdmchan->mutex); ftdmchan 391 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_channel_t *ftdmchan; ftdmchan 394 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (extract_chan_data(sngss7_event->circuit, &sngss7_info, &ftdmchan)) { ftdmchan 400 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 403 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_channel_advance_states(ftdmchan); ftdmchan 466 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_channel_advance_states(ftdmchan); ftdmchan 469 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 475 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_status_t ftdm_sangoma_ss7_process_state_change (ftdm_channel_t * ftdmchan) ftdmchan 477 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 484 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 485 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c sigev.span_id = ftdmchan->span_id; ftdmchan 486 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c sigev.channel = ftdmchan; ftdmchan 488 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "ftmod_sangoma_ss7 processing state %s\n", ftdm_channel_state2str (ftdmchan->state)); ftdmchan 491 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_channel_complete_state(ftdmchan); ftdmchan 494 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c switch (ftdmchan->state) { ftdmchan 500 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { ftdmchan 505 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c while (ftdmchan->caller_data.dnis.digits[i] != '\0'){ ftdmchan 510 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdmchan->caller_data.dnis.digits[i-1] == 'F') { ftdmchan 511 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Received the end of pulsing character %s\n", ""); ftdmchan 514 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdmchan->caller_data.dnis.digits[i-1] = '\0'; ftdmchan 517 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 520 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Received %d digits (min digits = %d)\n", i, isup_intf->min_digits); ftdmchan 523 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 527 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdmchan->last_state != FTDM_CHANNEL_STATE_IDLE) { ftdmchan 528 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_INFO_CHAN(ftdmchan,"Received %d out of %d so far: %s...starting T35\n", ftdmchan 531 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdmchan->caller_data.dnis.digits); ftdmchan 543 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdmchan->caller_data.hangup_cause = 41; ftdmchan 549 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_CANCEL); ftdmchan 559 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { ftdmchan 569 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Sending incoming call from %s to %s to FTDM core\n", ftdmchan 570 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdmchan->caller_data.ani.digits, ftdmchan 571 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdmchan->caller_data.dnis.digits); ftdmchan 576 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal (ftdmchan->span, &sigev); ftdmchan 582 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { ftdmchan 587 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Sending outgoing call from \"%s\" to \"%s\" to LibSngSS7\n", ftdmchan 588 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdmchan->caller_data.ani.digits, ftdmchan 589 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdmchan->caller_data.dnis.digits); ftdmchan 592 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ft_to_sngss7_iam(ftdmchan); ftdmchan 598 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { ftdmchan 604 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 607 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal (ftdmchan->span, &sigev); ftdmchan 610 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA); ftdmchan 613 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ft_to_sngss7_acm(ftdmchan); ftdmchan 620 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { ftdmchan 625 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 628 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal (ftdmchan->span, &sigev); ftdmchan 637 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { ftdmchan 643 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 646 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 649 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ft_to_sngss7_anm(ftdmchan); ftdmchan 656 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { ftdmchan 661 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_ERROR_CHAN(ftdmchan,"Hanging up call before informing user%s\n", " "); ftdmchan 664 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 670 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { ftdmchan 680 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal (ftdmchan->span, &sigev); ftdmchan 686 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { ftdmchan 694 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan,"Hanging up remotely requested call!%s\n", ""); ftdmchan 697 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan,"Hanging up requested call do to glare%s\n", ""); ftdmchan 703 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ft_to_sngss7_rel (ftdmchan); ftdmchan 705 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan,"Hanging up locally requested call!%s\n", ""); ftdmchan 709 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); ftdmchan 716 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { ftdmchan 725 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 733 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ft_to_sngss7_rlc (ftdmchan); ftdmchan 737 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 740 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan,"Completing remotely requested hangup!%s\n", ""); ftdmchan 746 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 750 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan,"Completing locally requested hangup!%s\n", ""); ftdmchan 752 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan,"Completing requested hangup due to glare!%s\n", ""); ftdmchan 754 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 756 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan,"Completing requested hangup for unknown reason!%s\n", ""); ftdmchan 764 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { ftdmchan 772 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ft_to_sngss7_rsca (ftdmchan); ftdmchan 786 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c sngss7_span_data_t *span = ftdmchan->span->signal_data; ftdmchan 789 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ft_to_sngss7_gra(ftdmchan); ftdmchan 814 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if ((ftdmchan->last_state == FTDM_CHANNEL_STATE_RESTART) || ftdmchan 815 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED)) { ftdmchan 833 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (!ftdm_test_flag (ftdmchan, FTDM_CHANNEL_SIG_UP)) { ftdmchan 834 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan,"All reset flags cleared %s\n", ""); ftdmchan 838 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal (ftdmchan->span, &sigev); ftdmchan 842 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan,"Reset flags present (0x%X)\n", sngss7_info->flags); ftdmchan 845 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 865 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_OPEN)) { ftdmchan 866 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_channel_t *close_chan = ftdmchan; ftdmchan 898 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan,"Incoming Reset request on CIC in UCIC block, removing UCIC block%s\n", ""); ftdmchan 907 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 917 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if ((ftdmchan->last_state != FTDM_CHANNEL_STATE_HANGUP_COMPLETE) && ftdmchan 925 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ft_to_sngss7_rsc (ftdmchan); ftdmchan 936 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ft_to_sngss7_grs (ftdmchan); ftdmchan 943 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_SIG_UP)) { ftdmchan 946 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal (ftdmchan->span, &sigev); ftdmchan 955 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_INUSE)) { ftdmchan 957 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c switch (ftdmchan->last_state){ ftdmchan 960 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 966 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, ftdmchan->last_state); ftdmchan 971 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DISABLE_LOOP, NULL); ftdmchan 974 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 979 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdmchan->caller_data.hangup_cause = 41; ftdmchan 984 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 995 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Reset processed moving to DOWN (0x%X)\n", sngss7_info->flags); ftdmchan 998 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 1000 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Waiting on Reset Rsp/Grp Reset to move to DOWN (0x%X)\n", sngss7_info->flags); ftdmchan 1008 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan,"Current flags: 0x%X\n", sngss7_info->flags); ftdmchan 1012 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing RESUME%s\n", ""); ftdmchan 1030 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 1038 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing PAUSE%s\n", ""); ftdmchan 1043 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 1050 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing CKT_MN_BLOCK_RX flag %s\n", ""); ftdmchan 1055 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 1058 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ft_to_sngss7_bla (ftdmchan); ftdmchan 1065 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing CKT_MN_UNBLK_RX flag %s\n", ""); ftdmchan 1073 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 1076 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ft_to_sngss7_uba (ftdmchan); ftdmchan 1084 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing CKT_MN_BLOCK_TX flag %s\n", ""); ftdmchan 1089 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 1092 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ft_to_sngss7_blo (ftdmchan); ftdmchan 1099 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing CKT_MN_UNBLK_TX flag %s\n", ""); ftdmchan 1107 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 1110 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ft_to_sngss7_ubl (ftdmchan); ftdmchan 1118 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing CKT_LC_BLOCK_RX flag %s\n", ""); ftdmchan 1128 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing CKT_LC_UNBLK_RX flag %s\n", ""); ftdmchan 1141 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing CKT_UCIC_BLOCK flag %s\n", ""); ftdmchan 1146 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal (ftdmchan->span, &sigev); ftdmchan 1161 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing CKT_UCIC_UNBLK flag %s\n", "");; ftdmchan 1177 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, ftdmchan->last_state); ftdmchan 1181 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 1191 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ft_to_sngss7_lpa (ftdmchan); ftdmchan 1197 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked(ftdmchan, ftdmchan->last_state); ftdmchan 1202 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_ERROR_CHAN(ftdmchan, "ftmod_sangoma_ss7 does not support %s state\n", ftdm_channel_state2str (ftdmchan->state)); ftdmchan 1214 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 1217 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_lock (ftdmchan->mutex); ftdmchan 1220 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (check_for_state_change(ftdmchan)) { ftdmchan 1229 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_SIG_UP)) { ftdmchan 1230 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_ERROR_CHAN(ftdmchan, "Requested channel sig state is down, cancelling call!%s\n", " "); ftdmchan 1240 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_ERROR_CHAN(ftdmchan, "Requested channel is remotely blocked, re-hunt channel!%s\n", " "); ftdmchan 1252 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_ERROR_CHAN(ftdmchan, "Requested channel is locally blocked, re-hunt channel!%s\n", " "); ftdmchan 1257 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c switch (ftdmchan->state){ ftdmchan 1261 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_DIALING); ftdmchan 1264 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_unlock (ftdmchan->mutex); ftdmchan 1272 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdmchan->physical_span_id, ftdmchan 1273 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdmchan->physical_chan_id); ftdmchan 1281 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Call Request failed%s\n", " "); ftdmchan 1283 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_unlock (ftdmchan->mutex); ftdmchan 1287 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Call Request re-hunt%s\n", " "); ftdmchan 1289 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_unlock (ftdmchan->mutex); ftdmchan 1293 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Call Request successful%s\n", " "); ftdmchan 1295 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_unlock (ftdmchan->mutex); ftdmchan 1314 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_SIG_UP)) { ftdmchan 1333 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1345 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdmchan = span->channels[x]; ftdmchan 1346 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdmchan->call_data == NULL) continue; ftdmchan 1347 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c sngss7_info = ftdmchan->call_data; ftdmchan 1348 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c sngss7_span = ftdmchan->span->signal_data; ftdmchan 1353 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1378 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 1381 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 361 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h ftdm_channel_t *ftdmchan; ftdmchan 455 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h ftdm_status_t ftdm_sangoma_ss7_process_state_change (ftdm_channel_t *ftdmchan); ftdmchan 504 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h void ft_to_sngss7_iam(ftdm_channel_t *ftdmchan); ftdmchan 505 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h void ft_to_sngss7_acm(ftdm_channel_t *ftdmchan); ftdmchan 506 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h void ft_to_sngss7_anm(ftdm_channel_t *ftdmchan); ftdmchan 507 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h void ft_to_sngss7_rel(ftdm_channel_t *ftdmchan); ftdmchan 508 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h void ft_to_sngss7_rlc(ftdm_channel_t *ftdmchan); ftdmchan 509 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h void ft_to_sngss7_rsc(ftdm_channel_t *ftdmchan); ftdmchan 510 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h void ft_to_sngss7_rsca(ftdm_channel_t *ftdmchan); ftdmchan 511 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h void ft_to_sngss7_blo(ftdm_channel_t *ftdmchan); ftdmchan 512 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h void ft_to_sngss7_bla(ftdm_channel_t *ftdmchan); ftdmchan 513 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h void ft_to_sngss7_ubl(ftdm_channel_t *ftdmchan); ftdmchan 514 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h void ft_to_sngss7_uba(ftdm_channel_t *ftdmchan); ftdmchan 515 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h void ft_to_sngss7_lpa(ftdm_channel_t *ftdmchan); ftdmchan 516 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h void ft_to_sngss7_gra(ftdm_channel_t *ftdmchan); ftdmchan 517 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h void ft_to_sngss7_grs(ftdm_channel_t *ftdmchan); ftdmchan 518 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h void ft_to_sngss7_cgba(ftdm_channel_t * ftdmchan); ftdmchan 519 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h void ft_to_sngss7_cgua(ftdm_channel_t * ftdmchan); ftdmchan 520 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h void ft_to_sngss7_cgb(ftdm_channel_t * ftdmchan); ftdmchan 521 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h void ft_to_sngss7_cgu(ftdm_channel_t * ftdmchan); ftdmchan 586 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h int check_for_state_change(ftdm_channel_t *ftdmchan); ftdmchan 589 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h ftdm_status_t extract_chan_data(uint32_t circuit, sngss7_chan_data_t **sngss7_info, ftdm_channel_t **ftdmchan); ftdmchan 749 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h SS7_INFO_CHAN(ftdmchan,"Production Mode, continuing%s\n", ""); ftdmchan 752 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h SS7_ERROR_CHAN(ftdmchan, "Debugging Mode, ending%s\n", ""); \ ftdmchan 45 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_iam(ftdm_channel_t * ftdmchan); ftdmchan 46 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_acm(ftdm_channel_t * ftdmchan); ftdmchan 47 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_anm(ftdm_channel_t * ftdmchan); ftdmchan 48 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_rel(ftdm_channel_t * ftdmchan); ftdmchan 49 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_rlc(ftdm_channel_t * ftdmchan); ftdmchan 51 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_rsc(ftdm_channel_t * ftdmchan); ftdmchan 52 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_rsca(ftdm_channel_t * ftdmchan); ftdmchan 54 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_blo(ftdm_channel_t * ftdmchan); ftdmchan 55 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_bla(ftdm_channel_t * ftdmchan); ftdmchan 56 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_ubl(ftdm_channel_t * ftdmchan); ftdmchan 57 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_uba(ftdm_channel_t * ftdmchan); ftdmchan 59 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_lpa(ftdm_channel_t * ftdmchan); ftdmchan 61 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_gra(ftdm_channel_t * ftdmchan); ftdmchan 62 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_grs(ftdm_channel_t * ftdmchan); ftdmchan 64 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_cgb(ftdm_channel_t * ftdmchan); ftdmchan 65 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_cgu(ftdm_channel_t * ftdmchan); ftdmchan 67 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_cgba(ftdm_channel_t * ftdmchan); ftdmchan 68 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_cgua(ftdm_channel_t * ftdmchan); ftdmchan 72 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_iam (ftdm_channel_t * ftdmchan) ftdmchan 76 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data;; ftdmchan 126 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c iam.txMedReq.trMedReq.val = ftdmchan->caller_data.bearer_capability; ftdmchan 139 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c switch (ftdmchan->caller_data.bearer_capability) { ftdmchan 154 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_ERROR_CHAN(ftdmchan, "Unknown Bearer capability falling back to speech%s\n", " "); ftdmchan 183 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c copy_cdPtyNum_to_sngss7 (&ftdmchan->caller_data, &iam.cdPtyNum); ftdmchan 187 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c copy_cgPtyNum_to_sngss7 (&ftdmchan->caller_data, &iam.cgPtyNum); ftdmchan 190 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c clg_nadi = ftdm_call_get_var(&ftdmchan->caller_data, "ss7_clg_nadi"); ftdmchan 192 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_DEBUG_CHAN(ftdmchan,"Found user supplied Calling NADI value \"%s\"\n", clg_nadi); ftdmchan 196 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_DEBUG_CHAN(ftdmchan,"No user supplied NADI value found for CLG, using \"%d\"\n", iam.cgPtyNum.natAddrInd.val); ftdmchan 199 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c cld_nadi = ftdm_call_get_var(&ftdmchan->caller_data, "ss7_cld_nadi"); ftdmchan 201 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_DEBUG_CHAN(ftdmchan,"Found user supplied Called NADI value \"%s\"\n", cld_nadi); ftdmchan 205 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_DEBUG_CHAN(ftdmchan,"No user supplied NADI value found for CLD, using \"%d\"\n", iam.cdPtyNum.natAddrInd.val); ftdmchan 209 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c clg_subAddr = ftdm_call_get_var(&ftdmchan->caller_data, "ss7_clg_subaddr"); ftdmchan 211 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_DEBUG_CHAN(ftdmchan,"Found user supplied Calling Sub-Address value \"%s\"\n", clg_subAddr); ftdmchan 225 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_ERROR_CHAN(ftdmchan,"Invalid Calling Sub-Address encoding requested: %c\n", clg_subAddr[0]); ftdmchan 248 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c cld_subAddr = ftdm_call_get_var(&ftdmchan->caller_data, "ss7_cld_subaddr"); ftdmchan 250 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_DEBUG_CHAN(ftdmchan,"Found user supplied Called Sub-Address value \"%s\"\n", cld_subAddr); ftdmchan 264 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_ERROR_CHAN(ftdmchan,"Invalid Called Sub-Address encoding requested: %c\n", cld_subAddr[0]); ftdmchan 295 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx IAM clg = \"%s\" (NADI=%d), cld = \"%s\" (NADI=%d)\n", ftdmchan 297 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdmchan->caller_data.cid_num.digits, ftdmchan 299 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdmchan->caller_data.dnis.digits, ftdmchan 302 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdm_call_clear_vars(&ftdmchan->caller_data); ftdmchan 308 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_acm (ftdm_channel_t * ftdmchan) ftdmchan 312 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 339 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c switch (ftdmchan->caller_data.bearer_capability) { ftdmchan 354 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_ERROR_CHAN(ftdmchan, "Unknown Bearer capability falling back to speech%s\n", " "); ftdmchan 364 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_DEBUG_CHAN(ftdmchan, "Found ACM_OBCI_BITA flag:0x%X\n", isup_intf->options); ftdmchan 382 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx ACM\n", sngss7_info->circuit->cic); ftdmchan 383 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdm_call_clear_vars(&ftdmchan->caller_data); ftdmchan 389 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_anm (ftdm_channel_t * ftdmchan) ftdmchan 393 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 406 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx ANM\n", sngss7_info->circuit->cic); ftdmchan 407 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdm_call_clear_vars(&ftdmchan->caller_data); ftdmchan 413 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_rel (ftdm_channel_t * ftdmchan) ftdmchan 417 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 429 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c rel.causeDgn.causeVal.val = (uint8_t) ftdmchan->caller_data.hangup_cause; ftdmchan 439 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx REL cause=%d \n", ftdmchan 441 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdmchan->caller_data.hangup_cause ); ftdmchan 442 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdm_call_clear_vars(&ftdmchan->caller_data); ftdmchan 448 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_rlc (ftdm_channel_t * ftdmchan) ftdmchan 452 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 464 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx RLC\n", sngss7_info->circuit->cic); ftdmchan 465 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdm_call_clear_vars(&ftdmchan->caller_data); ftdmchan 471 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_rsc (ftdm_channel_t * ftdmchan) ftdmchan 475 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 485 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx RSC\n", sngss7_info->circuit->cic); ftdmchan 486 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdm_call_clear_vars(&ftdmchan->caller_data); ftdmchan 492 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_rsca (ftdm_channel_t * ftdmchan) ftdmchan 496 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 506 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx RSC-RLC\n", sngss7_info->circuit->cic); ftdmchan 507 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdm_call_clear_vars(&ftdmchan->caller_data); ftdmchan 513 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_blo (ftdm_channel_t * ftdmchan) ftdmchan 517 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 527 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx BLO\n", sngss7_info->circuit->cic); ftdmchan 528 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdm_call_clear_vars(&ftdmchan->caller_data); ftdmchan 534 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_bla (ftdm_channel_t * ftdmchan) ftdmchan 538 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 548 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx BLA\n", sngss7_info->circuit->cic); ftdmchan 549 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdm_call_clear_vars(&ftdmchan->caller_data); ftdmchan 556 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ft_to_sngss7_ubl (ftdm_channel_t * ftdmchan) ftdmchan 560 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 570 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx UBL\n", sngss7_info->circuit->cic); ftdmchan 571 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdm_call_clear_vars(&ftdmchan->caller_data); ftdmchan 577 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_uba (ftdm_channel_t * ftdmchan) ftdmchan 581 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 591 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx UBA\n", sngss7_info->circuit->cic); ftdmchan 592 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdm_call_clear_vars(&ftdmchan->caller_data); ftdmchan 598 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_lpa (ftdm_channel_t * ftdmchan) ftdmchan 602 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 612 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx LPA\n", sngss7_info->circuit->cic); ftdmchan 613 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdm_call_clear_vars(&ftdmchan->caller_data); ftdmchan 619 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_gra (ftdm_channel_t * ftdmchan) ftdmchan 623 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_span_data_t *sngss7_span = ftdmchan->span->signal_data; ftdmchan 624 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 653 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx GRA (%d:%d)\n", ftdmchan 658 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdm_call_clear_vars(&ftdmchan->caller_data); ftdmchan 664 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_grs (ftdm_channel_t * ftdmchan) ftdmchan 668 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_span_data_t *sngss7_span = ftdmchan->span->signal_data; ftdmchan 669 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 687 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx GRS (%d:%d)\n", ftdmchan 692 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdm_call_clear_vars(&ftdmchan->caller_data); ftdmchan 698 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_cgba(ftdm_channel_t * ftdmchan) ftdmchan 702 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_span_data_t *sngss7_span = ftdmchan->span->signal_data; ftdmchan 703 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 734 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx CGBA (%d:%d)\n", ftdmchan 741 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdm_call_clear_vars(&ftdmchan->caller_data); ftdmchan 747 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_cgua(ftdm_channel_t * ftdmchan) ftdmchan 751 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_span_data_t *sngss7_span = ftdmchan->span->signal_data; ftdmchan 752 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 783 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx CGUA (%d:%d)\n", ftdmchan 791 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdm_call_clear_vars(&ftdmchan->caller_data); ftdmchan 797 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_cgb(ftdm_channel_t * ftdmchan) ftdmchan 801 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_span_data_t *sngss7_span = ftdmchan->span->signal_data; ftdmchan 802 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 834 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx CGB (%d:%d)\n", ftdmchan 842 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdm_call_clear_vars(&ftdmchan->caller_data); ftdmchan 848 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_cgu(ftdm_channel_t * ftdmchan) ftdmchan 852 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_span_data_t *sngss7_span = ftdmchan->span->signal_data; ftdmchan 853 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 885 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx CGU (%d:%d)\n", ftdmchan 893 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdm_call_clear_vars(&ftdmchan->caller_data); ftdmchan 53 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c int check_for_state_change(ftdm_channel_t *ftdmchan); ftdmchan 59 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_status_t extract_chan_data(uint32_t circuit, sngss7_chan_data_t **sngss7_info, ftdm_channel_t **ftdmchan); ftdmchan 395 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c int check_for_state_change(ftdm_channel_t *ftdmchan) ftdmchan 399 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_wait_for_flag_cleared(ftdmchan, FTDM_CHANNEL_STATE_CHANGE, 500); ftdmchan 403 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 405 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c SS7_DEBUG_CHAN(ftdmchan, "FTDM_CHANNEL_STATE_CHANGE flag set for over 500ms, channel state = %s\n", ftdmchan 406 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_channel_state2str (ftdmchan->state)); ftdmchan 454 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_status_t extract_chan_data(uint32_t circuit, sngss7_chan_data_t **sngss7_info, ftdm_channel_t **ftdmchan) ftdmchan 467 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_assert_return((*sngss7_info)->ftdmchan, FTDM_FAIL, "received message on signalling link or non-configured cic\n"); ftdmchan 468 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c *ftdmchan = (*sngss7_info)->ftdmchan; ftdmchan 514 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 522 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c if (extract_chan_data(i, &sngss7_info, &ftdmchan)) { ftdmchan 534 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 537 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c while (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 538 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_sangoma_ss7_process_state_change (ftdmchan); ftdmchan 541 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c SS7_INFO_CHAN(ftdmchan, "Rx GRS (%d:%d)\n", ftdmchan 548 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c switch (ftdmchan->state) { ftdmchan 553 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_IDLE); ftdmchan 560 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 566 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 576 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 590 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c if (extract_chan_data(i, &sngss7_info, &ftdmchan)) { ftdmchan 596 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 599 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 619 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c if (extract_chan_data(i, &sngss7_info, &ftdmchan)) { ftdmchan 631 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 653 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c if (extract_chan_data(i, &sngss7_info, &ftdmchan)) { ftdmchan 659 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 668 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 676 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c if (extract_chan_data(i, &sngss7_info, &ftdmchan)) { ftdmchan 688 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 691 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c while (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 692 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_sangoma_ss7_process_state_change (ftdmchan); ftdmchan 695 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c SS7_INFO_CHAN(ftdmchan, "Rx GRA (%d:%d)\n", ftdmchan 699 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c switch (ftdmchan->state) { ftdmchan 707 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 730 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdmchan->caller_data.hangup_cause = sngss7_span->rx_gra.cause; ftdmchan 732 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdmchan->caller_data.hangup_cause = 98; /* Message not compatiable with call state */ ftdmchan 736 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 742 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 753 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 761 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdmchan = ftdmspan->channels[x]; ftdmchan 764 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c if (ftdmchan->call_data == NULL) continue; ftdmchan 766 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c sngss7_info = ftdmchan->call_data; ftdmchan 769 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 773 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 774 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c sigev.span_id = ftdmchan->span_id; ftdmchan 775 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c sigev.channel = ftdmchan; ftdmchan 779 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_SIG_UP))) { ftdmchan 782 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c while (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 783 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_sangoma_ss7_process_state_change (ftdmchan); ftdmchan 788 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 796 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c while (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 797 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_sangoma_ss7_process_state_change (ftdmchan); ftdmchan 801 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 805 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 818 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 826 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c if (extract_chan_data(i, &sngss7_info, &ftdmchan)) { ftdmchan 832 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 834 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx UCIC\n", sngss7_info->circuit->cic); ftdmchan 837 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c while (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 838 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_sangoma_ss7_process_state_change (ftdmchan); ftdmchan 845 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 848 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 871 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_channel_t *ftdmchan = sngss7_info->ftdmchan; ftdmchan 872 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c sngss7_span_data_t *sngss7_span = ftdmchan->span->signal_data; ftdmchan 883 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_channel_t *ftdmchan = sngss7_info->ftdmchan; ftdmchan 884 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c sngss7_span_data_t *sngss7_span = ftdmchan->span->signal_data; ftdmchan 906 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_channel_t *ftdmchan = sngss7_info->ftdmchan; ftdmchan 907 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c sngss7_span_data_t *sngss7_span = ftdmchan->span->signal_data; ftdmchan 56 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_timers.c ftdm_channel_t *ftdmchan = sngss7_info->ftdmchan; ftdmchan 59 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_timers.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 67 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_timers.c ftdmchan->caller_data.hangup_cause = 28; ftdmchan 70 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_timers.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_CANCEL); ftdmchan 73 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_timers.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 2019 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 2063 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ss7_info->ftdmchan = NULL; ftdmchan 2107 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ftdmchan = isupCkt->span->channels[i]; ftdmchan 2113 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c if ((g_ftdm_sngss7_data.cfg.isupCkt[x].chan == ftdmchan->physical_chan_id) && ftdmchan 2114 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c (g_ftdm_sngss7_data.cfg.isupCkt[x].span == ftdmchan->physical_span_id)) { ftdmchan 2126 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ftdmchan->physical_span_id, ftdmchan 2127 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ftdmchan->physical_chan_id, ftdmchan 2132 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ss7_info->ftdmchan = ftdmchan; ftdmchan 2134 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ftdmchan->call_data = ss7_info; ftdmchan 2145 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c g_ftdm_sngss7_data.cfg.isupCkt[x].span = ftdmchan->physical_span_id; ftdmchan 2146 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c g_ftdm_sngss7_data.cfg.isupCkt[x].chan = ftdmchan->physical_chan_id; ftdmchan 2198 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ftdmchan->physical_span_id, ftdmchan 2199 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ftdmchan->physical_chan_id, ftdmchan 2217 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c if (ss7_info->ftdmchan == NULL) { ftdmchan 2229 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ss7_info->ftdmchan->chan_id, ftdmchan 117 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c static __inline__ int tdmv_api_wait_socket(ftdm_channel_t *ftdmchan, int timeout, int *flags) ftdmchan 124 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c sangoma_wait_obj_t *sangoma_wait_obj = ftdmchan->io_data; ftdmchan 145 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c pfds[0].fd = ftdmchan->sockfd; ftdmchan 522 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c sangoma_tdm_flush_bufs(ftdmchan->sockfd, &tdm_api); ftdmchan 523 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c sangoma_flush_stats(ftdmchan->sockfd, &tdm_api); ftdmchan 524 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c memset(&ftdmchan->iostats, 0, sizeof(ftdmchan->iostats)); ftdmchan 526 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdmchan->type == FTDM_CHAN_TYPE_DQ921 || ftdmchan->type == FTDM_CHAN_TYPE_DQ931) { ftdmchan 527 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->native_codec = ftdmchan->effective_codec = FTDM_CODEC_NONE; ftdmchan 529 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->effective_codec = ftdmchan->native_codec; ftdmchan 531 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c sangoma_tdm_set_usr_period(ftdmchan->sockfd, &tdm_api, wp_globals.codec_ms); ftdmchan 533 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_channel_set_feature(ftdmchan, FTDM_CHANNEL_FEATURE_INTERVAL); ftdmchan 534 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->effective_interval = ftdmchan->native_interval = wp_globals.codec_ms; ftdmchan 535 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->packet_len = ftdmchan->native_interval * 8; ftdmchan 549 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c sangoma_wait_obj_t *waitobj = ftdmchan->io_data; ftdmchan 573 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_txsig_offhook(ftdmchan->sockfd,&tdm_api); ftdmchan 575 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "OFFHOOK Failed"); ftdmchan 578 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_OFFHOOK); ftdmchan 583 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_txsig_onhook(ftdmchan->sockfd,&tdm_api); ftdmchan 585 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "ONHOOK Failed"); ftdmchan 588 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_OFFHOOK); ftdmchan 593 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_txsig_start(ftdmchan->sockfd,&tdm_api); ftdmchan 595 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Ring Failed"); ftdmchan 598 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_RINGING); ftdmchan 599 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_set_pflag_locked(ftdmchan, WP_RINGING); ftdmchan 600 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->ring_time = ftdm_current_time_in_ms() + wp_globals.ring_on_ms; ftdmchan 605 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_txsig_offhook(ftdmchan->sockfd,&tdm_api); ftdmchan 607 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Ring-off Failed"); ftdmchan 610 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_clear_pflag_locked(ftdmchan, WP_RINGING); ftdmchan 611 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_RINGING); ftdmchan 616 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_get_usr_period(ftdmchan->sockfd, &tdm_api); ftdmchan 626 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_get_hwec_chan_status(ftdmchan->sockfd, &tdm_api); ftdmchan 633 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_enable_hwec(ftdmchan->sockfd, &tdm_api); ftdmchan 635 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "HWEC Enable Failed"); ftdmchan 643 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_get_hwec_chan_status(ftdmchan->sockfd, &tdm_api); ftdmchan 649 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_disable_hwec(ftdmchan->sockfd, &tdm_api); ftdmchan 651 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "HWEC Disable Failed"); ftdmchan 659 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_enable_dtmf_events(ftdmchan->sockfd, &tdm_api); ftdmchan 661 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Enabling of Sangoma HW DTMF failed\n"); ftdmchan 662 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "HW DTMF Enable Failed"); ftdmchan 665 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Enabled DTMF events\n"); ftdmchan 674 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_disable_dtmf_events(ftdmchan->sockfd, &tdm_api); ftdmchan 676 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Disabling of Sangoma HW DTMF failed\n"); ftdmchan 677 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "HW DTMF Disable Failed"); ftdmchan 680 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Disabled DTMF events\n"); ftdmchan 689 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_enable_loop(ftdmchan->sockfd, &tdm_api); ftdmchan 691 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Loop Enable Failed"); ftdmchan 700 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_disable_loop(ftdmchan->sockfd, &tdm_api); ftdmchan 702 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Loop Disable Failed"); ftdmchan 710 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_set_usr_period(ftdmchan->sockfd, &tdm_api, FTDM_COMMAND_OBJ_INT); ftdmchan 711 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->packet_len = ftdmchan->native_interval * (ftdmchan->effective_codec == FTDM_CODEC_SLIN ? 16 : 8); ftdmchan 717 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_write_rbs(ftdmchan->sockfd,&tdm_api, ftdmchan->physical_chan_id, wanpipe_swap_bits(FTDM_COMMAND_OBJ_INT)); ftdmchan 719 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_write_rbs(ftdmchan->sockfd, &tdm_api, wanpipe_swap_bits(FTDM_COMMAND_OBJ_INT)); ftdmchan 727 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_read_rbs(ftdmchan->sockfd, &tdm_api, ftdmchan->physical_chan_id, &rbsbits); ftdmchan 733 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c FTDM_COMMAND_OBJ_INT = ftdmchan->rx_cas_bits; ftdmchan 741 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_set_fe_status(ftdmchan->sockfd, &tdm_api, sangoma_status); ftdmchan 747 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_get_fe_status(ftdmchan->sockfd, &tdm_api, &sangoma_status); ftdmchan 755 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_flush_bufs(ftdmchan->sockfd, &tdm_api); ftdmchan 760 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_flush_rx_bufs(ftdmchan->sockfd, &tdm_api); ftdmchan 765 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_flush_tx_bufs(ftdmchan->sockfd, &tdm_api); ftdmchan 770 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_flush_stats(ftdmchan->sockfd, &tdm_api); ftdmchan 771 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c memset(&ftdmchan->iostats, 0, sizeof(ftdmchan->iostats)); ftdmchan 777 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_set_rx_queue_sz(ftdmchan->sockfd, &tdm_api, queue_size); ftdmchan 783 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_set_tx_queue_sz(ftdmchan->sockfd, &tdm_api, queue_size); ftdmchan 789 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_set_polarity(ftdmchan->sockfd, &tdm_api, polarity); ftdmchan 791 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->polarity = polarity; ftdmchan 802 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Wanpipe failed to execute command %d: %s\n", command, strerror(myerrno)); ftdmchan 810 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c static void wanpipe_write_stats(ftdm_channel_t *ftdmchan, wp_tdm_api_tx_hdr_t *tx_stats) ftdmchan 812 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->iostats.tx.errors = tx_stats->wp_api_tx_hdr_errors; ftdmchan 813 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->iostats.tx.queue_size = tx_stats->wp_api_tx_hdr_max_queue_length; ftdmchan 814 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->iostats.tx.queue_len = tx_stats->wp_api_tx_hdr_number_of_frames_in_queue; ftdmchan 817 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdmchan->iostats.tx.queue_len >= ftdmchan->iostats.tx.queue_size) { ftdmchan 818 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_set_flag(&(ftdmchan->iostats.tx), FTDM_IOSTATS_ERROR_QUEUE_FULL); ftdmchan 819 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c } else if (ftdm_test_flag(&(ftdmchan->iostats.tx), FTDM_IOSTATS_ERROR_QUEUE_FULL)){ ftdmchan 820 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_clear_flag(&(ftdmchan->iostats.tx), FTDM_IOSTATS_ERROR_QUEUE_FULL); ftdmchan 823 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdmchan->iostats.tx.idle_packets < tx_stats->wp_api_tx_hdr_tx_idle_packets) { ftdmchan 826 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdmchan->iostats.tx.packets && FTDM_IS_VOICE_CHANNEL(ftdmchan)) { ftdmchan 827 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "Tx idle changed from %d to %d\n", ftdmchan 828 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->iostats.tx.idle_packets, tx_stats->wp_api_tx_hdr_tx_idle_packets); ftdmchan 830 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->iostats.tx.idle_packets = tx_stats->wp_api_tx_hdr_tx_idle_packets; ftdmchan 833 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (!ftdmchan->iostats.tx.packets) { ftdmchan 834 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "First packet write stats: Tx queue len: %d, Tx queue size: %d, Tx idle: %d\n", ftdmchan 835 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->iostats.tx.queue_len, ftdmchan 836 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->iostats.tx.queue_size, ftdmchan 837 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->iostats.tx.idle_packets); ftdmchan 840 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->iostats.tx.packets++; ftdmchan 843 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c static void wanpipe_read_stats(ftdm_channel_t *ftdmchan, wp_tdm_api_rx_hdr_t *rx_stats) ftdmchan 845 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->iostats.rx.errors = rx_stats->wp_api_rx_hdr_errors; ftdmchan 846 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->iostats.rx.queue_size = rx_stats->wp_api_rx_hdr_max_queue_length; ftdmchan 847 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->iostats.rx.queue_len = rx_stats->wp_api_rx_hdr_number_of_frames_in_queue; ftdmchan 850 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_set_flag(&(ftdmchan->iostats.rx), FTDM_IOSTATS_ERROR_ABORT); ftdmchan 852 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_clear_flag(&(ftdmchan->iostats.rx), FTDM_IOSTATS_ERROR_ABORT); ftdmchan 856 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_set_flag(&(ftdmchan->iostats.rx), FTDM_IOSTATS_ERROR_DMA); ftdmchan 858 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_clear_flag(&(ftdmchan->iostats.rx), FTDM_IOSTATS_ERROR_DMA); ftdmchan 862 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_set_flag(&(ftdmchan->iostats.rx), FTDM_IOSTATS_ERROR_FIFO); ftdmchan 864 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_clear_flag(&(ftdmchan->iostats.rx), FTDM_IOSTATS_ERROR_FIFO); ftdmchan 868 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_set_flag(&(ftdmchan->iostats.rx), FTDM_IOSTATS_ERROR_CRC); ftdmchan 870 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_clear_flag(&(ftdmchan->iostats.rx), FTDM_IOSTATS_ERROR_CRC); ftdmchan 874 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_set_flag(&(ftdmchan->iostats.rx), FTDM_IOSTATS_ERROR_FRAME); ftdmchan 876 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_clear_flag(&(ftdmchan->iostats.rx), FTDM_IOSTATS_ERROR_FRAME); ftdmchan 879 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdmchan->iostats.rx.queue_len >= (0.8 * ftdmchan->iostats.rx.queue_size)) { ftdmchan 880 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "Rx Queue length exceeded 80% threshold (%d/%d)\n", ftdmchan 881 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->iostats.rx.queue_len, ftdmchan->iostats.rx.queue_size); ftdmchan 882 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_set_flag(&(ftdmchan->iostats.rx), FTDM_IOSTATS_ERROR_QUEUE_THRES); ftdmchan 883 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c } else if (ftdm_test_flag(&(ftdmchan->iostats.rx), FTDM_IOSTATS_ERROR_QUEUE_THRES)){ ftdmchan 884 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan(ftdmchan, FTDM_LOG_NOTICE, "Rx Queue length reduced 80% threshold (%d/%d)\n", ftdmchan 885 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->iostats.rx.queue_len, ftdmchan->iostats.rx.queue_size); ftdmchan 886 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_clear_flag(&(ftdmchan->iostats.rx), FTDM_IOSTATS_ERROR_QUEUE_THRES); ftdmchan 889 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdmchan->iostats.rx.queue_len >= ftdmchan->iostats.rx.queue_size) { ftdmchan 890 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Rx Queue Full (%d/%d)\n", ftdmchan 891 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->iostats.rx.queue_len, ftdmchan->iostats.rx.queue_size); ftdmchan 892 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_set_flag(&(ftdmchan->iostats.rx), FTDM_IOSTATS_ERROR_QUEUE_FULL); ftdmchan 893 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c } else if (ftdm_test_flag(&(ftdmchan->iostats.rx), FTDM_IOSTATS_ERROR_QUEUE_FULL)){ ftdmchan 894 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan(ftdmchan, FTDM_LOG_NOTICE, "Rx Queue no longer full (%d/%d)\n", ftdmchan 895 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->iostats.rx.queue_len, ftdmchan->iostats.rx.queue_size); ftdmchan 896 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_clear_flag(&(ftdmchan->iostats.rx), FTDM_IOSTATS_ERROR_QUEUE_FULL); ftdmchan 899 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (!ftdmchan->iostats.rx.packets) { ftdmchan 900 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "First packet read stats: Rx queue len: %d, Rx queue size: %d\n", ftdmchan 901 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->iostats.rx.queue_len, ftdmchan->iostats.rx.queue_size); ftdmchan 904 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->iostats.rx.packets++; ftdmchan 922 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c rx_len = sangoma_readmsg_tdm(ftdmchan->sockfd, &hdrframe, (int)sizeof(hdrframe), data, (int)*datalen, 0); ftdmchan 926 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Read 0 bytes\n"); ftdmchan 932 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", strerror(errno)); ftdmchan 933 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "Failed to read from sangoma device: %s (%d)\n", strerror(errno), rx_len); ftdmchan 937 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_IO_STATS)) { ftdmchan 938 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c wanpipe_read_stats(ftdmchan, &hdrframe); ftdmchan 962 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_IO_STATS) && !ftdmchan->iostats.tx.packets) { ftdmchan 966 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_flush_tx_bufs(ftdmchan->sockfd, &tdm_api); ftdmchan 968 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Failed to flush on first write\n"); ftdmchan 972 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c bsent = sangoma_writemsg_tdm(ftdmchan->sockfd, &hdrframe, (int)sizeof(hdrframe), data, (unsigned short)(*datalen),0); ftdmchan 977 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_IO_STATS)) { ftdmchan 979 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if(!FTDM_SPAN_IS_BRI(ftdmchan->span)) { ftdmchan 980 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c wanpipe_write_stats(ftdmchan, &hdrframe); ftdmchan 1014 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c result = tdmv_api_wait_socket(ftdmchan, to, &inflags); ftdmchan 1019 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Poll failed"); ftdmchan 1062 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_channel_t *ftdmchan = span->channels[i]; ftdmchan 1082 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (!ftdmchan->io_data) { ftdmchan 1085 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c pfds[j] = ftdmchan->io_data; ftdmchan 1094 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_WINK) || ftdm_test_flag(ftdmchan, FTDM_CHANNEL_FLASH)) { ftdmchan 1100 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_RINGING)) { ftdmchan 1104 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_RINGING) && ftdm_current_time_in_ms() >= ftdmchan->ring_time) { ftdmchan 1108 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdm_test_pflag(ftdmchan, WP_RINGING)) { ftdmchan 1109 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_txsig_offhook(ftdmchan->sockfd,&tdm_api); ftdmchan 1111 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Ring-off Failed"); ftdmchan 1115 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_clear_pflag_locked(ftdmchan, WP_RINGING); ftdmchan 1116 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->ring_time = ftdm_current_time_in_ms() + wp_globals.ring_off_ms; ftdmchan 1118 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_txsig_start(ftdmchan->sockfd,&tdm_api); ftdmchan 1120 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Ring Failed"); ftdmchan 1124 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_set_pflag_locked(ftdmchan, WP_RINGING); ftdmchan 1125 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->ring_time = ftdm_current_time_in_ms() + wp_globals.ring_on_ms; ftdmchan 1155 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_channel_t *ftdmchan = span->channels[i]; ftdmchan 1162 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_EVENT); ftdmchan 1163 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->last_event_time = ftdm_current_time_in_ms(); ftdmchan 1185 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if ((err = sangoma_tdm_get_fe_alarms(ftdmchan->sockfd, &tdm_api, &alarms))) { ftdmchan 1186 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "ioctl failed (%s)", strerror(errno)); ftdmchan 1187 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->span->last_error, sizeof(ftdmchan->span->last_error), "ioctl failed (%s)", strerror(errno)); ftdmchan 1191 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if ((err = sangoma_tdm_get_fe_alarms(ftdmchan->sockfd, &tdm_api)) < 0){ ftdmchan 1192 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "ioctl failed (%s)", strerror(errno)); ftdmchan 1193 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->span->last_error, sizeof(ftdmchan->span->last_error), "ioctl failed (%s)", strerror(errno)); ftdmchan 1202 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (FTDM_SPAN_IS_BRI(ftdmchan->span)) { ftdmchan 1204 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->alarm_flags |= FTDM_ALARM_RED; ftdmchan 1210 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->alarm_flags = FTDM_ALARM_NONE; ftdmchan 1213 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->alarm_flags |= FTDM_ALARM_RED; ftdmchan 1219 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->alarm_flags |= FTDM_ALARM_BLUE; ftdmchan 1224 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->alarm_flags |= FTDM_ALARM_YELLOW; ftdmchan 1378 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_span_t *span = ftdmchan->span; ftdmchan 1380 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_EVENT)) { ftdmchan 1381 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_EVENT); ftdmchan 1385 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c status = sangoma_tdm_read_event(ftdmchan->sockfd, &tdm_api); ftdmchan 1388 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Failed to read event from channel: %s\n", strerror(errno)); ftdmchan 1392 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "read wanpipe event %d\n", tdm_api.wp_tdm_cmd.event.wp_tdm_api_event_type); ftdmchan 1393 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c status = wanpipe_channel_process_event(ftdmchan, &event_id, &tdm_api); ftdmchan 1395 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "Ignoring event for now\n"); ftdmchan 1397 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "Failed to process event from channel\n"); ftdmchan 1400 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->last_event_time = 0; ftdmchan 1405 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c span->event_header.channel = ftdmchan; ftdmchan 1445 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_channel_t *ftdmchan = span->channels[i]; ftdmchan 1449 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c sangoma_tdm_txsig_onhook(ftdmchan->sockfd,&tdm_api); ftdmchan 1459 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_channel_t *ftdmchan = span->channels[i]; ftdmchan 1463 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_read_event(ftdmchan->sockfd, &tdm_api); ftdmchan 1470 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_channel_lock(ftdmchan); ftdmchan 1471 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c status = wanpipe_channel_process_event(ftdmchan, &event_id, &tdm_api); ftdmchan 1472 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_channel_unlock(ftdmchan); ftdmchan 1475 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Ignoring event for now\n"); ftdmchan 1478 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "Failed to process event from channel\n"); ftdmchan 1503 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdmchan->io_data) { ftdmchan 1505 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c sangoma_wait_obj = ftdmchan->io_data; ftdmchan 1506 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->io_data = NULL; ftdmchan 1511 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdmchan->sockfd != FTDM_INVALID_SOCKET) { ftdmchan 1516 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_DETECT)) { ftdmchan 1520 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_enable_dtmf_events(ftdmchan->sockfd, &tdm_api); ftdmchan 1522 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Failed enabling Sangoma HW DTMF failed on channel destroy\n"); ftdmchan 1525 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c sangoma_close(&ftdmchan->sockfd); ftdmchan 272 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_channel_t *ftdmchan; ftdmchan 277 src/ftmod/ftmod_zt/ftmod_zt.c if (sockfd != ZT_INVALID_SOCKET && ftdm_span_add_channel(span, sockfd, type, &ftdmchan) == FTDM_SUCCESS) { ftdmchan 285 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->type == FTDM_CHAN_TYPE_DQ921) { ftdmchan 293 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log(FTDM_LOG_ERROR, "failure configuring device %s as FreeTDM device %d:%d fd:%d\n", chanpath, ftdmchan->span_id, ftdmchan->chan_id, sockfd); ftdmchan 355 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log(FTDM_LOG_ERROR, "failure configuring device %s as FreeTDM device %d:%d fd:%d err:%s", chanpath, ftdmchan->span_id, ftdmchan->chan_id, sockfd, strerror(errno)); ftdmchan 361 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->type != FTDM_CHAN_TYPE_DQ921 && ftdmchan->type != FTDM_CHAN_TYPE_DQ931) { ftdmchan 363 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.SET_BLOCKSIZE, &len)) { ftdmchan 365 src/ftmod/ftmod_zt/ftmod_zt.c chanpath, ftdmchan->span_id, ftdmchan->chan_id, sockfd, strerror(errno)); ftdmchan 370 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->packet_len = len; ftdmchan 371 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->effective_interval = ftdmchan->native_interval = ftdmchan->packet_len / 8; ftdmchan 373 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->effective_codec == FTDM_CODEC_SLIN) { ftdmchan 374 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->packet_len *= 2; ftdmchan 379 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log(FTDM_LOG_ERROR, "failure configuring device %s as FreeTDM device %d:%d fd:%d\n", chanpath, ftdmchan->span_id, ftdmchan->chan_id, sockfd); ftdmchan 384 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->type == FTDM_CHAN_TYPE_DQ921) { ftdmchan 390 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log(FTDM_LOG_ERROR, "Failure configuring device %s as FreeTDM device %d:%d fd:%d, hardware signaling is not HDLC, fix your Zap/DAHDI configuration!\n", chanpath, ftdmchan->span_id, ftdmchan->chan_id, sockfd); ftdmchan 396 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log(FTDM_LOG_INFO, "configuring device %s channel %d as FreeTDM device %d:%d fd:%d\n", chanpath, x, ftdmchan->span_id, ftdmchan->chan_id, sockfd); ftdmchan 398 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->rate = 8000; ftdmchan 399 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->physical_span_id = ztp.span_no; ftdmchan 400 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->physical_chan_id = ztp.chan_no; ftdmchan 404 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->native_codec = ftdmchan->effective_codec = FTDM_CODEC_ALAW; ftdmchan 406 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->native_codec = ftdmchan->effective_codec = FTDM_CODEC_ULAW; ftdmchan 410 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->span->trunk_type == FTDM_TRUNK_E1) { ftdmchan 416 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->native_codec = ftdmchan->effective_codec = type; ftdmchan 425 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log(FTDM_LOG_ERROR, "failure configuring device %s as FreeTDM device %d:%d fd:%d\n", chanpath, ftdmchan->span_id, ftdmchan->chan_id, sockfd); ftdmchan 431 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_copy_string(ftdmchan->chan_name, name, sizeof(ftdmchan->chan_name)); ftdmchan 434 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_copy_string(ftdmchan->chan_number, number, sizeof(ftdmchan->chan_number)); ftdmchan 602 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_channel_set_feature(ftdmchan, FTDM_CHANNEL_FEATURE_INTERVAL); ftdmchan 604 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->type == FTDM_CHAN_TYPE_DQ921 || ftdmchan->type == FTDM_CHAN_TYPE_DQ931) { ftdmchan 605 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->native_codec = ftdmchan->effective_codec = FTDM_CODEC_NONE; ftdmchan 607 src/ftmod/ftmod_zt/ftmod_zt.c int blocksize = zt_globals.codec_ms * (ftdmchan->rate / 1000); ftdmchan 609 src/ftmod/ftmod_zt/ftmod_zt.c if ((err = ioctl(ftdmchan->sockfd, codes.SET_BLOCKSIZE, &blocksize))) { ftdmchan 610 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", strerror(errno)); ftdmchan 613 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->effective_interval = ftdmchan->native_interval; ftdmchan 614 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->packet_len = blocksize; ftdmchan 615 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->native_codec = ftdmchan->effective_codec; ftdmchan 618 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->type == FTDM_CHAN_TYPE_B) { ftdmchan 620 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.AUDIOMODE, &one)) { ftdmchan 621 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", strerror(errno)); ftdmchan 622 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log(FTDM_LOG_ERROR, "%s\n", ftdmchan->last_error); ftdmchan 630 src/ftmod/ftmod_zt/ftmod_zt.c gains.chan_no = ftdmchan->physical_chan_id; ftdmchan 631 src/ftmod/ftmod_zt/ftmod_zt.c zt_build_gains(&gains, zt_globals.rxgain, zt_globals.txgain, ftdmchan->native_codec); ftdmchan 639 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.SETGAINS, &gains) < 0) { ftdmchan 640 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log(FTDM_LOG_ERROR, "failure configuring device %s as FreeTDM device %d:%d fd:%d\n", chanpath, ftdmchan->span_id, ftdmchan->chan_id, ftdmchan->sockfd); ftdmchan 647 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log(FTDM_LOG_INFO, "Setting echo cancel to %d taps for %d:%d\n", len, ftdmchan->span_id, ftdmchan->chan_id); ftdmchan 649 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log(FTDM_LOG_INFO, "Disable echo cancel for %d:%d\n", ftdmchan->span_id, ftdmchan->chan_id); ftdmchan 651 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.ECHOCANCEL, &len)) { ftdmchan 652 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log(FTDM_LOG_WARNING, "Echo cancel not available for %d:%d\n", ftdmchan->span_id, ftdmchan->chan_id); ftdmchan 655 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.ECHOTRAIN, &len)) { ftdmchan 656 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log(FTDM_LOG_WARNING, "Echo training not available for %d:%d\n", ftdmchan->span_id, ftdmchan->chan_id); ftdmchan 672 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->type == FTDM_CHAN_TYPE_B) { ftdmchan 674 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.AUDIOMODE, &value)) { ftdmchan 675 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", strerror(errno)); ftdmchan 676 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log(FTDM_LOG_ERROR, "%s\n", ftdmchan->last_error); ftdmchan 701 src/ftmod/ftmod_zt/ftmod_zt.c err = ioctl(ftdmchan->sockfd, codes.ECHOCANCEL, &level); ftdmchan 707 src/ftmod/ftmod_zt/ftmod_zt.c err = ioctl(ftdmchan->sockfd, codes.ECHOCANCEL, &level); ftdmchan 714 src/ftmod/ftmod_zt/ftmod_zt.c err = ioctl(ftdmchan->sockfd, codes.ECHOTRAIN, &level); ftdmchan 720 src/ftmod/ftmod_zt/ftmod_zt.c err = ioctl(ftdmchan->sockfd, codes.ECHOTRAIN, &level); ftdmchan 727 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.HOOK, &command)) { ftdmchan 728 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "OFFHOOK Failed"); ftdmchan 731 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_OFFHOOK); ftdmchan 737 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.HOOK, &command)) { ftdmchan 738 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "ONHOOK Failed"); ftdmchan 741 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_OFFHOOK); ftdmchan 747 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.HOOK, &command)) { ftdmchan 748 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "FLASH Failed"); ftdmchan 756 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.HOOK, &command)) { ftdmchan 757 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "WINK Failed"); ftdmchan 765 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.HOOK, &command)) { ftdmchan 766 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Ring Failed"); ftdmchan 769 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_RINGING); ftdmchan 775 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.HOOK, &command)) { ftdmchan 776 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Ring-off failed"); ftdmchan 779 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_RINGING); ftdmchan 785 src/ftmod/ftmod_zt/ftmod_zt.c if (!(err = ioctl(ftdmchan->sockfd, codes.GET_BLOCKSIZE, &ftdmchan->packet_len))) { ftdmchan 786 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->native_interval = ftdmchan->packet_len / 8; ftdmchan 787 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->effective_codec == FTDM_CODEC_SLIN) { ftdmchan 788 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->packet_len *= 2; ftdmchan 790 src/ftmod/ftmod_zt/ftmod_zt.c FTDM_COMMAND_OBJ_INT = ftdmchan->native_interval; ftdmchan 799 src/ftmod/ftmod_zt/ftmod_zt.c if (!(err = ioctl(ftdmchan->sockfd, codes.SET_BLOCKSIZE, &len))) { ftdmchan 800 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->packet_len = len; ftdmchan 801 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->effective_interval = ftdmchan->native_interval = ftdmchan->packet_len / 8; ftdmchan 803 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->effective_codec == FTDM_CODEC_SLIN) { ftdmchan 804 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->packet_len *= 2; ftdmchan 812 src/ftmod/ftmod_zt/ftmod_zt.c err = ioctl(ftdmchan->sockfd, codes.SETTXBITS, &bits); ftdmchan 817 src/ftmod/ftmod_zt/ftmod_zt.c err = ioctl(ftdmchan->sockfd, codes.GETRXBITS, &ftdmchan->rx_cas_bits); ftdmchan 819 src/ftmod/ftmod_zt/ftmod_zt.c FTDM_COMMAND_OBJ_INT = ftdmchan->rx_cas_bits; ftdmchan 826 src/ftmod/ftmod_zt/ftmod_zt.c err = ioctl(ftdmchan->sockfd, codes.FLUSH, &flushmode); ftdmchan 832 src/ftmod/ftmod_zt/ftmod_zt.c err = ioctl(ftdmchan->sockfd, codes.FLUSH, &flushmode); ftdmchan 838 src/ftmod/ftmod_zt/ftmod_zt.c err = ioctl(ftdmchan->sockfd, codes.FLUSH, &flushmode); ftdmchan 847 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", strerror(errno)); ftdmchan 865 src/ftmod/ftmod_zt/ftmod_zt.c info.span_no = ftdmchan->physical_span_id; ftdmchan 868 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "ioctl failed (%s)", strerror(errno)); ftdmchan 869 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->span->last_error, sizeof(ftdmchan->span->last_error), "ioctl failed (%s)", strerror(errno)); ftdmchan 873 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->alarm_flags = info.alarms; ftdmchan 905 src/ftmod/ftmod_zt/ftmod_zt.c pfds[0].fd = ftdmchan->sockfd; ftdmchan 911 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "DAHDI wait got interrupted, trying again\n"); ftdmchan 916 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "DAHDI device got POLLERR\n"); ftdmchan 927 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Poll failed"); ftdmchan 928 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Failed to poll DAHDI device: %s\n", strerror(errno)); ftdmchan 1093 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_span_t *span = ftdmchan->span; ftdmchan 1095 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_EVENT)) { ftdmchan 1096 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_EVENT); ftdmchan 1099 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.GETEVENT, &zt_event_id) == -1) { ftdmchan 1100 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Failed retrieving event from channel: %s\n", ftdmchan 1106 src/ftmod/ftmod_zt/ftmod_zt.c if ((zt_channel_process_event(ftdmchan, &event_id, zt_event_id)) != FTDM_SUCCESS) { ftdmchan 1107 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "Failed to process event from channel\n"); ftdmchan 1111 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->last_event_time = 0; ftdmchan 1114 src/ftmod/ftmod_zt/ftmod_zt.c span->event_header.channel = ftdmchan; ftdmchan 1172 src/ftmod/ftmod_zt/ftmod_zt.c if ((r = read(ftdmchan->sockfd, data, *datalen)) > 0) { ftdmchan 1190 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->type == FTDM_CHAN_TYPE_DQ921) { ftdmchan 1213 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->type == FTDM_CHAN_TYPE_DQ921) { ftdmchan 1219 src/ftmod/ftmod_zt/ftmod_zt.c w = write(ftdmchan->sockfd, data, bytes); ftdmchan 1228 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.GETEVENT, &zt_event_id) == -1) { ftdmchan 1229 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Failed retrieving event after ELAST on write: %s\n", strerror(errno)); ftdmchan 1233 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Dropping event %d to be able to write data\n", zt_event_id); ftdmchan 1247 src/ftmod/ftmod_zt/ftmod_zt.c close(ftdmchan->sockfd); ftdmchan 1248 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->sockfd = ZT_INVALID_SOCKET; ftdmchan 672 src/include/freetdm.h #define FIO_CHANNEL_REQUEST_ARGS (ftdm_span_t *span, uint32_t chan_id, ftdm_direction_t direction, ftdm_caller_data_t *caller_data, ftdm_channel_t **ftdmchan) ftdmchan 673 src/include/freetdm.h #define FIO_CHANNEL_OUTGOING_CALL_ARGS (ftdm_channel_t *ftdmchan) ftdmchan 674 src/include/freetdm.h #define FIO_CHANNEL_SEND_MSG_ARGS (ftdm_channel_t *ftdmchan, ftdm_sigmsg_t *sigmsg) ftdmchan 675 src/include/freetdm.h #define FIO_CHANNEL_SET_SIG_STATUS_ARGS (ftdm_channel_t *ftdmchan, ftdm_signaling_status_t status) ftdmchan 676 src/include/freetdm.h #define FIO_CHANNEL_GET_SIG_STATUS_ARGS (ftdm_channel_t *ftdmchan, ftdm_signaling_status_t *status) ftdmchan 681 src/include/freetdm.h #define FIO_CHANNEL_NEXT_EVENT_ARGS (ftdm_channel_t *ftdmchan, ftdm_event_t **event) ftdmchan 683 src/include/freetdm.h #define FIO_EVENT_CB_ARGS (ftdm_channel_t *ftdmchan, ftdm_event_t *event) ftdmchan 686 src/include/freetdm.h #define FIO_OPEN_ARGS (ftdm_channel_t *ftdmchan) ftdmchan 687 src/include/freetdm.h #define FIO_CLOSE_ARGS (ftdm_channel_t *ftdmchan) ftdmchan 688 src/include/freetdm.h #define FIO_CHANNEL_DESTROY_ARGS (ftdm_channel_t *ftdmchan) ftdmchan 690 src/include/freetdm.h #define FIO_COMMAND_ARGS (ftdm_channel_t *ftdmchan, ftdm_command_t command, void *obj) ftdmchan 691 src/include/freetdm.h #define FIO_WAIT_ARGS (ftdm_channel_t *ftdmchan, ftdm_wait_flag_t *flags, int32_t to) ftdmchan 692 src/include/freetdm.h #define FIO_GET_ALARMS_ARGS (ftdm_channel_t *ftdmchan) ftdmchan 693 src/include/freetdm.h #define FIO_READ_ARGS (ftdm_channel_t *ftdmchan, void *data, ftdm_size_t *datalen) ftdmchan 694 src/include/freetdm.h #define FIO_WRITE_ARGS (ftdm_channel_t *ftdmchan, void *data, ftdm_size_t *datalen) ftdmchan 832 src/include/freetdm.h FT_DECLARE(int) ftdm_channel_get_availability(ftdm_channel_t *ftdmchan); ftdmchan 842 src/include/freetdm.h #define ftdm_channel_call_answer(ftdmchan) _ftdm_channel_call_answer(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) ftdmchan 845 src/include/freetdm.h FT_DECLARE(ftdm_status_t) _ftdm_channel_call_answer(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan); ftdmchan 850 src/include/freetdm.h #define ftdm_channel_call_place(ftdmchan) _ftdm_channel_call_place(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) ftdmchan 855 src/include/freetdm.h FT_DECLARE(ftdm_status_t) _ftdm_channel_call_place(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan); ftdmchan 890 src/include/freetdm.h #define ftdm_channel_call_indicate(ftdmchan, indication) _ftdm_channel_call_indicate(__FILE__, __FUNCTION__, __LINE__, (ftdmchan), (indication)) ftdmchan 893 src/include/freetdm.h FT_DECLARE(ftdm_status_t) _ftdm_channel_call_indicate(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan, ftdm_channel_indication_t indication); ftdmchan 896 src/include/freetdm.h #define ftdm_channel_call_send_msg(ftdmchan, sigmsg) _ftdm_channel_call_send_msg(__FILE__, __FUNCTION__, __LINE__, (ftdmchan), (sigmsg)) ftdmchan 899 src/include/freetdm.h FT_DECLARE(ftdm_status_t) _ftdm_channel_call_send_msg(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan, ftdm_sigmsg_t *sigmsg); ftdmchan 902 src/include/freetdm.h #define ftdm_channel_call_hangup(ftdmchan) _ftdm_channel_call_hangup(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) ftdmchan 905 src/include/freetdm.h FT_DECLARE(ftdm_status_t) _ftdm_channel_call_hangup(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan); ftdmchan 908 src/include/freetdm.h #define ftdm_channel_call_hangup_with_cause(ftdmchan, cause) _ftdm_channel_call_hangup_with_cause(__FILE__, __FUNCTION__, __LINE__, (ftdmchan), (cause)) ftdmchan 911 src/include/freetdm.h FT_DECLARE(ftdm_status_t) _ftdm_channel_call_hangup_with_cause(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan, ftdm_call_cause_t); ftdmchan 914 src/include/freetdm.h #define ftdm_channel_reset(ftdmchan) _ftdm_channel_reset(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) ftdmchan 919 src/include/freetdm.h FT_DECLARE(ftdm_status_t) _ftdm_channel_reset(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan); ftdmchan 922 src/include/freetdm.h #define ftdm_channel_call_hold(ftdmchan) _ftdm_channel_call_hold(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) ftdmchan 925 src/include/freetdm.h FT_DECLARE(ftdm_status_t) _ftdm_channel_call_hold(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan); ftdmchan 928 src/include/freetdm.h #define ftdm_channel_call_unhold(ftdmchan) _ftdm_channel_call_unhold(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) ftdmchan 931 src/include/freetdm.h FT_DECLARE(ftdm_status_t) _ftdm_channel_call_unhold(const char *file, const char *func, int line, ftdm_channel_t *ftdmchan); ftdmchan 934 src/include/freetdm.h FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_answered(const ftdm_channel_t *ftdmchan); ftdmchan 937 src/include/freetdm.h FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_busy(const ftdm_channel_t *ftdmchan); ftdmchan 940 src/include/freetdm.h FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_hangup(const ftdm_channel_t *ftdmchan); ftdmchan 943 src/include/freetdm.h FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_done(const ftdm_channel_t *ftdmchan); ftdmchan 946 src/include/freetdm.h FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_hold(const ftdm_channel_t *ftdmchan); ftdmchan 949 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_set_sig_status(ftdm_channel_t *ftdmchan, ftdm_signaling_status_t status); ftdmchan 952 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_get_sig_status(ftdm_channel_t *ftdmchan, ftdm_signaling_status_t *status); ftdmchan 968 src/include/freetdm.h FT_DECLARE(void) ftdm_channel_set_private(ftdm_channel_t *ftdmchan, void *pvt); ftdmchan 977 src/include/freetdm.h FT_DECLARE(void *) ftdm_channel_get_private(const ftdm_channel_t *ftdmchan); ftdmchan 988 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_clear_token(ftdm_channel_t *ftdmchan, const char *token); ftdmchan 997 src/include/freetdm.h FT_DECLARE(void) ftdm_channel_replace_token(ftdm_channel_t *ftdmchan, const char *old_token, const char *new_token); ftdmchan 1009 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_add_token(ftdm_channel_t *ftdmchan, char *token, int end); ftdmchan 1020 src/include/freetdm.h FT_DECLARE(const char *) ftdm_channel_get_token(const ftdm_channel_t *ftdmchan, uint32_t tokenid); ftdmchan 1029 src/include/freetdm.h FT_DECLARE(uint32_t) ftdm_channel_get_token_count(const ftdm_channel_t *ftdmchan); ftdmchan 1038 src/include/freetdm.h FT_DECLARE(uint32_t) ftdm_channel_get_io_interval(const ftdm_channel_t *ftdmchan); ftdmchan 1047 src/include/freetdm.h FT_DECLARE(uint32_t) ftdm_channel_get_io_packet_len(const ftdm_channel_t *ftdmchan); ftdmchan 1056 src/include/freetdm.h FT_DECLARE(ftdm_codec_t) ftdm_channel_get_codec(const ftdm_channel_t *ftdmchan); ftdmchan 1065 src/include/freetdm.h FT_DECLARE(const char *) ftdm_channel_get_last_error(const ftdm_channel_t *ftdmchan); ftdmchan 1076 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_get_alarms(ftdm_channel_t *ftdmchan, ftdm_alarm_flag_t *alarmbits); ftdmchan 1085 src/include/freetdm.h FT_DECLARE(ftdm_chan_type_t) ftdm_channel_get_type(const ftdm_channel_t *ftdmchan); ftdmchan 1097 src/include/freetdm.h FT_DECLARE(ftdm_size_t) ftdm_channel_dequeue_dtmf(ftdm_channel_t *ftdmchan, char *dtmf, ftdm_size_t len); ftdmchan 1104 src/include/freetdm.h FT_DECLARE(void) ftdm_channel_flush_dtmf(ftdm_channel_t *ftdmchan); ftdmchan 1169 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_add_to_group(const char* name, ftdm_channel_t* ftdmchan); ftdmchan 1172 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_remove_from_group(ftdm_group_t* group, ftdm_channel_t* ftdmchan); ftdmchan 1189 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_read_event(ftdm_channel_t *ftdmchan, ftdm_event_t **event); ftdmchan 1224 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_open(uint32_t span_id, uint32_t chan_id, ftdm_channel_t **ftdmchan); ftdmchan 1242 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_open_by_span(uint32_t span_id, ftdm_direction_t direction, ftdm_caller_data_t *caller_data, ftdm_channel_t **ftdmchan); ftdmchan 1260 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_open_by_group(uint32_t group_id, ftdm_direction_t direction, ftdm_caller_data_t *caller_data, ftdm_channel_t **ftdmchan); ftdmchan 1276 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_close(ftdm_channel_t **ftdmchan); ftdmchan 1288 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_command(ftdm_channel_t *ftdmchan, ftdm_command_t command, void *arg); ftdmchan 1300 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_wait(ftdm_channel_t *ftdmchan, ftdm_wait_flag_t *flags, int32_t timeout); ftdmchan 1312 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_read(ftdm_channel_t *ftdmchan, void *data, ftdm_size_t *datalen); ftdmchan 1337 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_write(ftdm_channel_t *ftdmchan, void *data, ftdm_size_t datasize, ftdm_size_t *datalen); ftdmchan 1343 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_add_var(ftdm_channel_t *ftdmchan, const char *var_name, const char *value); ftdmchan 1347 src/include/freetdm.h FT_DECLARE(const char *) ftdm_channel_get_var(ftdm_channel_t *ftdmchan, const char *var_name); ftdmchan 1356 src/include/freetdm.h FT_DECLARE(ftdm_iterator_t *) ftdm_channel_get_var_iterator(const ftdm_channel_t *ftdmchan, ftdm_iterator_t *iter); ftdmchan 1415 src/include/freetdm.h FT_DECLARE(ftdm_span_t *) ftdm_channel_get_span(const ftdm_channel_t *ftdmchan); ftdmchan 1418 src/include/freetdm.h FT_DECLARE(uint32_t) ftdm_channel_get_span_id(const ftdm_channel_t *ftdmchan); ftdmchan 1421 src/include/freetdm.h FT_DECLARE(uint32_t) ftdm_channel_get_ph_span_id(const ftdm_channel_t *ftdmchan); ftdmchan 1424 src/include/freetdm.h FT_DECLARE(const char *) ftdm_channel_get_span_name(const ftdm_channel_t *ftdmchan); ftdmchan 1427 src/include/freetdm.h FT_DECLARE(uint32_t) ftdm_channel_get_id(const ftdm_channel_t *ftdmchan); ftdmchan 1430 src/include/freetdm.h FT_DECLARE(const char *) ftdm_channel_get_name(const ftdm_channel_t *ftdmchan); ftdmchan 1433 src/include/freetdm.h FT_DECLARE(const char *) ftdm_channel_get_number(const ftdm_channel_t *ftdmchan); ftdmchan 1436 src/include/freetdm.h FT_DECLARE(uint32_t) ftdm_channel_get_ph_id(const ftdm_channel_t *ftdmchan); ftdmchan 1618 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_set_caller_data(ftdm_channel_t *ftdmchan, ftdm_caller_data_t *caller_data); ftdmchan 1624 src/include/freetdm.h FT_DECLARE(int) ftdm_channel_get_state(const ftdm_channel_t *ftdmchan); ftdmchan 1627 src/include/freetdm.h FT_DECLARE(int) ftdm_channel_get_last_state(const ftdm_channel_t *ftdmchan); ftdmchan 1644 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_init(ftdm_channel_t *ftdmchan); ftdmchan 556 src/include/private/ftdm_core.h FT_DECLARE(ftdm_status_t) ftdm_channel_send_fsk_data(ftdm_channel_t *ftdmchan, ftdm_fsk_data_state_t *fsk_data, float db_level); ftdmchan 560 src/include/private/ftdm_core.h FT_DECLARE(ftdm_status_t) ftdm_channel_use(ftdm_channel_t *ftdmchan); ftdmchan 577 src/include/private/ftdm_core.h FT_DECLARE(void) ftdm_channel_clear_needed_tones(ftdm_channel_t *ftdmchan); ftdmchan 578 src/include/private/ftdm_core.h FT_DECLARE(void) ftdm_channel_rotate_tokens(ftdm_channel_t *ftdmchan); ftdmchan 585 src/include/private/ftdm_core.h FT_DECLARE(ftdm_status_t) ftdm_channel_open_chan(ftdm_channel_t *ftdmchan); ftdmchan 586 src/include/private/ftdm_core.h FT_DECLARE(void) ftdm_ack_indication(ftdm_channel_t *ftdmchan, ftdm_channel_indication_t indication, ftdm_status_t status); ftdmchan 617 src/include/private/ftdm_core.h FT_DECLARE(ftdm_status_t) ftdm_channel_queue_dtmf(ftdm_channel_t *ftdmchan, const char *dtmf); ftdmchan 623 src/include/private/ftdm_core.h FT_DECLARE(void) ftdm_channel_clear_detected_tones(ftdm_channel_t *ftdmchan); ftdmchan 184 src/include/private/ftdm_state.h ftdm_channel_t *ftdmchan); ftdmchan 191 src/include/private/ftdm_state.h ftdm_channel_t *ftdmchan, ftdm_channel_state_t state, int wait); ftdmchan 334 src/include/private/ftdm_types.h typedef ftdm_status_t (*ftdm_channel_sig_read_t)(ftdm_channel_t *ftdmchan, void *data, ftdm_size_t size); ftdmchan 335 src/include/private/ftdm_types.h typedef ftdm_status_t (*ftdm_channel_sig_write_t)(ftdm_channel_t *ftdmchan, void *data, ftdm_size_t size); ftdmchan 18 src/testpri.c ftdm_channel_t *ftdmchan = obj; ftdmchan 21 src/testpri.c int spanid = ftdm_channel_get_span_id(ftdmchan); ftdmchan 22 src/testpri.c int chanid = ftdm_channel_get_id(ftdmchan); ftdmchan 28 src/testpri.c ftdm_channel_call_answer(ftdmchan); ftdmchan 46 src/testpri.c if (ftdm_channel_write(ftdmchan, buf, sizeof(buf), &bbytes) != FTDM_SUCCESS) { ftdmchan 55 src/testpri.c ftdm_channel_call_hangup(ftdmchan); ftdmchan 235 src/testsangomaboost.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 250 src/testsangomaboost.c status = ftdm_channel_open_by_span(ftdm_span_get_id(span), FTDM_TOP_DOWN, &caller_data, &ftdmchan); ftdmchan 257 src/testsangomaboost.c g_outgoing_channel = ftdmchan; ftdmchan 261 src/testsangomaboost.c ftdm_channel_set_caller_data(ftdmchan, &caller_data); ftdmchan 263 src/testsangomaboost.c status = ftdm_channel_call_place(ftdmchan); ftdmchan 270 src/testsangomaboost.c ftdm_channel_init(ftdmchan);