ftdmchan 109 mod_freetdm/mod_freetdm.c ftdm_channel_t *ftdmchan; ftdmchan 202 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 212 mod_freetdm/mod_freetdm.c spanid = ftdm_channel_get_span_id(ftdmchan); ftdmchan 257 mod_freetdm/mod_freetdm.c static void cycle_foreground(ftdm_channel_t *ftdmchan, int flash, const char *bcast) { ftdmchan 262 mod_freetdm/mod_freetdm.c uint32_t tokencnt = ftdm_channel_get_token_count(ftdmchan); ftdmchan 266 mod_freetdm/mod_freetdm.c if ((session = ftdm_channel_get_session(ftdmchan, i))) { ftdmchan 278 mod_freetdm/mod_freetdm.c start_hold(ftdmchan, session, buuid, bcast); ftdmchan 282 mod_freetdm/mod_freetdm.c start_hold(ftdmchan, session, buuid, bcast); ftdmchan 299 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 305 mod_freetdm/mod_freetdm.c tech_pvt->ftdmchan = ftdmchan; ftdmchan 318 mod_freetdm/mod_freetdm.c if (FTDM_SUCCESS != ftdm_channel_command(ftdmchan, FTDM_COMMAND_GET_INTERVAL, &interval)) { ftdmchan 323 mod_freetdm/mod_freetdm.c if (FTDM_SUCCESS != ftdm_channel_command(ftdmchan, FTDM_COMMAND_GET_CODEC, &codec)) { ftdmchan 410 mod_freetdm/mod_freetdm.c ftdm_channel_init(tech_pvt->ftdmchan); ftdmchan 482 mod_freetdm/mod_freetdm.c if (!tech_pvt->ftdmchan) { ftdmchan 486 mod_freetdm/mod_freetdm.c ftdm_channel_clear_token(tech_pvt->ftdmchan, switch_core_session_get_uuid(session)); ftdmchan 488 mod_freetdm/mod_freetdm.c chantype = ftdm_channel_get_type(tech_pvt->ftdmchan); ftdmchan 494 mod_freetdm/mod_freetdm.c ftdm_channel_call_hangup(tech_pvt->ftdmchan); ftdmchan 499 mod_freetdm/mod_freetdm.c if (!ftdm_channel_call_check_busy(tech_pvt->ftdmchan) && !ftdm_channel_call_check_done(tech_pvt->ftdmchan)) { ftdmchan 500 mod_freetdm/mod_freetdm.c tokencnt = ftdm_channel_get_token_count(tech_pvt->ftdmchan); ftdmchan 502 mod_freetdm/mod_freetdm.c cycle_foreground(tech_pvt->ftdmchan, 0, NULL); ftdmchan 504 mod_freetdm/mod_freetdm.c ftdm_channel_call_hangup(tech_pvt->ftdmchan); ftdmchan 515 mod_freetdm/mod_freetdm.c ftdm_channel_call_hangup_with_cause(tech_pvt->ftdmchan, hcause); ftdmchan 593 mod_freetdm/mod_freetdm.c ftdm_channel_command(tech_pvt->ftdmchan, FTDM_COMMAND_SEND_DTMF, tmp); ftdmchan 625 mod_freetdm/mod_freetdm.c chunk = ftdm_channel_get_io_interval(tech_pvt->ftdmchan) * 2; ftdmchan 640 mod_freetdm/mod_freetdm.c switch_yield(ftdm_channel_get_io_interval(tech_pvt->ftdmchan) * 1000); ftdmchan 641 mod_freetdm/mod_freetdm.c tech_pvt->cng_frame.datalen = ftdm_channel_get_io_packet_len(tech_pvt->ftdmchan); ftdmchan 645 mod_freetdm/mod_freetdm.c if (ftdm_channel_get_codec(tech_pvt->ftdmchan) == FTDM_CODEC_SLIN) { ftdmchan 657 mod_freetdm/mod_freetdm.c status = ftdm_channel_wait(tech_pvt->ftdmchan, &wflags, chunk); ftdmchan 680 mod_freetdm/mod_freetdm.c if (ftdm_channel_read(tech_pvt->ftdmchan, tech_pvt->read_frame.data, &len) != FTDM_SUCCESS) { ftdmchan 689 mod_freetdm/mod_freetdm.c if (ftdm_channel_get_codec(tech_pvt->ftdmchan) == FTDM_CODEC_SLIN) { ftdmchan 693 mod_freetdm/mod_freetdm.c while (ftdm_channel_dequeue_dtmf(tech_pvt->ftdmchan, dtmf, sizeof(dtmf))) { ftdmchan 728 mod_freetdm/mod_freetdm.c if (!tech_pvt->ftdmchan) { ftdmchan 755 mod_freetdm/mod_freetdm.c status = ftdm_channel_wait(tech_pvt->ftdmchan, &wflags, ftdm_channel_get_io_interval(tech_pvt->ftdmchan) * 10); ftdmchan 763 mod_freetdm/mod_freetdm.c if (ftdm_channel_write(tech_pvt->ftdmchan, frame->data, frame->buflen, &len) != FTDM_SUCCESS) { ftdmchan 798 mod_freetdm/mod_freetdm.c phy_id = ftdm_channel_get_ph_id(tech_pvt->ftdmchan); ftdmchan 808 mod_freetdm/mod_freetdm.c ftdm_channel_call_indicate(tech_pvt->ftdmchan, FTDM_CHANNEL_INDICATE_PROGRESS); ftdmchan 813 mod_freetdm/mod_freetdm.c ftdm_channel_call_indicate(tech_pvt->ftdmchan, FTDM_CHANNEL_INDICATE_PROGRESS_MEDIA); ftdmchan 818 mod_freetdm/mod_freetdm.c ftdm_channel_call_answer(tech_pvt->ftdmchan); ftdmchan 844 mod_freetdm/mod_freetdm.c if (ftdm_channel_call_check_hangup(tech_pvt->ftdmchan)) { ftdmchan 855 mod_freetdm/mod_freetdm.c ftdm_channel_call_indicate(tech_pvt->ftdmchan, FTDM_CHANNEL_INDICATE_PROGRESS); ftdmchan 860 mod_freetdm/mod_freetdm.c ftdm_channel_call_indicate(tech_pvt->ftdmchan, FTDM_CHANNEL_INDICATE_PROGRESS_MEDIA); ftdmchan 865 mod_freetdm/mod_freetdm.c ftdm_channel_call_answer(tech_pvt->ftdmchan); ftdmchan 898 mod_freetdm/mod_freetdm.c ftdm_channel_call_answer(tech_pvt->ftdmchan); ftdmchan 930 mod_freetdm/mod_freetdm.c ftdm_channel_call_answer(tech_pvt->ftdmchan); ftdmchan 938 mod_freetdm/mod_freetdm.c ftdm_channel_call_indicate(tech_pvt->ftdmchan, FTDM_CHANNEL_INDICATE_RING); ftdmchan 955 mod_freetdm/mod_freetdm.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 967 mod_freetdm/mod_freetdm.c if (!(ftdmchan = tech_pvt->ftdmchan)) { ftdmchan 972 mod_freetdm/mod_freetdm.c if (!tech_pvt->ftdmchan) { ftdmchan 984 mod_freetdm/mod_freetdm.c ftdm_channel_command(tech_pvt->ftdmchan, FTDM_COMMAND_SET_PRE_BUFFER_SIZE, &tmp); ftdmchan 988 mod_freetdm/mod_freetdm.c ftdm_channel_command(tech_pvt->ftdmchan, FTDM_COMMAND_DISABLE_DTMF_DETECT, NULL); ftdmchan 994 mod_freetdm/mod_freetdm.c ftdm_channel_replace_token(tech_pvt->ftdmchan, msg->string_array_arg[0], msg->string_array_arg[1]); ftdmchan 1001 mod_freetdm/mod_freetdm.c switch (ftdm_channel_get_type(tech_pvt->ftdmchan)) { ftdmchan 1061 mod_freetdm/mod_freetdm.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1284 mod_freetdm/mod_freetdm.c status = ftdm_channel_open_by_group(group_id, direction, &caller_data, &ftdmchan); ftdmchan 1286 mod_freetdm/mod_freetdm.c status = ftdm_channel_open(span_id, chan_id, &ftdmchan); ftdmchan 1288 mod_freetdm/mod_freetdm.c status = ftdm_channel_open_by_span(span_id, direction, &caller_data, &ftdmchan); ftdmchan 1301 mod_freetdm/mod_freetdm.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_SET_PRE_BUFFER_SIZE, &tmp); ftdmchan 1305 mod_freetdm/mod_freetdm.c span_id = ftdm_channel_get_span_id(ftdmchan); ftdmchan 1306 mod_freetdm/mod_freetdm.c chan_id = ftdm_channel_get_id(ftdmchan); ftdmchan 1313 mod_freetdm/mod_freetdm.c ftdm_channel_add_var(ftdmchan, v, h->value); ftdmchan 1325 mod_freetdm/mod_freetdm.c tech_init(tech_pvt, *new_session, ftdmchan); ftdmchan 1336 mod_freetdm/mod_freetdm.c switch_channel_set_variable(channel, "freetdm_span_name", ftdm_channel_get_span_name(ftdmchan)); ftdmchan 1339 mod_freetdm/mod_freetdm.c ftdm_channel_set_caller_data(ftdmchan, &caller_data); ftdmchan 1349 mod_freetdm/mod_freetdm.c if (ftdm_channel_add_token(ftdmchan, switch_core_session_get_uuid(*new_session), ftdm_channel_get_token_count(ftdmchan)) != FTDM_SUCCESS) { ftdmchan 1358 mod_freetdm/mod_freetdm.c snprintf(spanresource, sizeof(spanresource), "span_%s_%s", ftdm_channel_get_span_name(ftdmchan), caller_data.dnis.digits); ftdmchan 1368 mod_freetdm/mod_freetdm.c if ((status = ftdm_channel_call_place(ftdmchan)) != FTDM_SUCCESS) { ftdmchan 1379 mod_freetdm/mod_freetdm.c ftdmchan = NULL; ftdmchan 1386 mod_freetdm/mod_freetdm.c ftdm_channel_init(ftdmchan); ftdmchan 1393 mod_freetdm/mod_freetdm.c if (ftdmchan) { ftdmchan 1394 mod_freetdm/mod_freetdm.c ftdm_channel_call_hangup_with_cause(ftdmchan, FTDM_CAUSE_NORMAL_TEMPORARY_FAILURE); ftdmchan 3460 mod_freetdm/mod_freetdm.c ftdm_channel_t *ftdmchan; ftdmchan 3468 mod_freetdm/mod_freetdm.c ftdmchan = ftdm_span_get_channel(span, chan_id); ftdmchan 3471 mod_freetdm/mod_freetdm.c phspan_id = ftdm_channel_get_ph_span_id(ftdmchan); ftdmchan 3472 mod_freetdm/mod_freetdm.c phchan_id = ftdm_channel_get_ph_id(ftdmchan); ftdmchan 3473 mod_freetdm/mod_freetdm.c chan_type = ftdm_chan_type2str(ftdm_channel_get_type(ftdmchan)); ftdmchan 3474 mod_freetdm/mod_freetdm.c state = ftdm_channel_get_state_str(ftdmchan); ftdmchan 3475 mod_freetdm/mod_freetdm.c last_state = ftdm_channel_get_last_state_str(ftdmchan); ftdmchan 3476 mod_freetdm/mod_freetdm.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GET_RX_GAIN, &rxgain); ftdmchan 3477 mod_freetdm/mod_freetdm.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GET_TX_GAIN, &txgain); ftdmchan 3478 mod_freetdm/mod_freetdm.c caller_data = ftdm_channel_get_caller_data(ftdmchan); ftdmchan 3479 mod_freetdm/mod_freetdm.c ftdm_channel_get_sig_status(ftdmchan, &sigstatus); ftdmchan 3480 mod_freetdm/mod_freetdm.c ftdm_channel_get_alarms(ftdmchan, &alarmflag); ftdmchan 3482 mod_freetdm/mod_freetdm.c uuid = ftdm_channel_get_uuid(ftdmchan, 0); ftdmchan 3544 mod_freetdm/mod_freetdm.c ftdm_channel_t *ftdmchan; ftdmchan 3552 mod_freetdm/mod_freetdm.c ftdmchan = ftdm_span_get_channel(span, chan_id); ftdmchan 3555 mod_freetdm/mod_freetdm.c phspan_id = ftdm_channel_get_ph_span_id(ftdmchan); ftdmchan 3556 mod_freetdm/mod_freetdm.c phchan_id = ftdm_channel_get_ph_id(ftdmchan); ftdmchan 3557 mod_freetdm/mod_freetdm.c chan_type = ftdm_chan_type2str(ftdm_channel_get_type(ftdmchan)); ftdmchan 3558 mod_freetdm/mod_freetdm.c state = ftdm_channel_get_state_str(ftdmchan); ftdmchan 3559 mod_freetdm/mod_freetdm.c last_state = ftdm_channel_get_last_state_str(ftdmchan); ftdmchan 3560 mod_freetdm/mod_freetdm.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GET_RX_GAIN, &rxgain); ftdmchan 3561 mod_freetdm/mod_freetdm.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GET_TX_GAIN, &txgain); ftdmchan 3562 mod_freetdm/mod_freetdm.c caller_data = ftdm_channel_get_caller_data(ftdmchan); ftdmchan 3563 mod_freetdm/mod_freetdm.c ftdm_channel_get_sig_status(ftdmchan, &sigstatus); ftdmchan 3564 mod_freetdm/mod_freetdm.c ftdm_channel_get_alarms(ftdmchan, &alarmflag); ftdmchan 4042 mod_freetdm/mod_freetdm.c ftdm_channel_command(tech_pvt->ftdmchan, FTDM_COMMAND_ENABLE_DTMF_DETECT, NULL); ftdmchan 4043 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 4061 mod_freetdm/mod_freetdm.c ftdm_channel_command(tech_pvt->ftdmchan, FTDM_COMMAND_DISABLE_DTMF_DETECT, NULL); ftdmchan 4062 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 4082 mod_freetdm/mod_freetdm.c ftdm_channel_command(tech_pvt->ftdmchan, FTDM_COMMAND_DISABLE_ECHOCANCEL, &x); ftdmchan 4083 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 346 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 349 src/ftdm_io.c if (!ftdmchan) { ftdmchan 353 src/ftdm_io.c if ((err = ftdm_set_caller_data(ftdmchan->span, caller_data)) != FTDM_SUCCESS) { ftdmchan 356 src/ftdm_io.c ftdmchan->caller_data = *caller_data; ftdmchan 422 src/ftdm_io.c static ftdm_status_t ftdm_channel_destroy(ftdm_channel_t *ftdmchan) ftdmchan 425 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_CONFIGURED)) { ftdmchan 427 src/ftdm_io.c while (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INTHREAD)) { ftdmchan 428 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 433 src/ftdm_io.c ftdm_mutex_destroy(&ftdmchan->dtmfdbg.mutex); ftdmchan 436 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->pre_buffer_mutex); ftdmchan 437 src/ftdm_io.c ftdm_buffer_destroy(&ftdmchan->pre_buffer); ftdmchan 438 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->pre_buffer_mutex); ftdmchan 440 src/ftdm_io.c ftdm_buffer_destroy(&ftdmchan->digit_buffer); ftdmchan 441 src/ftdm_io.c ftdm_buffer_destroy(&ftdmchan->gen_dtmf_buffer); ftdmchan 442 src/ftdm_io.c ftdm_buffer_destroy(&ftdmchan->dtmf_buffer); ftdmchan 443 src/ftdm_io.c ftdm_buffer_destroy(&ftdmchan->fsk_buffer); ftdmchan 444 src/ftdm_io.c ftdmchan->pre_buffer_size = 0; ftdmchan 446 src/ftdm_io.c ftdm_safe_free(ftdmchan->dtmf_hangup_buf); ftdmchan 448 src/ftdm_io.c if (ftdmchan->tone_session.buffer) { ftdmchan 449 src/ftdm_io.c teletone_destroy_session(&ftdmchan->tone_session); ftdmchan 450 src/ftdm_io.c memset(&ftdmchan->tone_session, 0, sizeof(ftdmchan->tone_session)); ftdmchan 454 src/ftdm_io.c if (ftdmchan->span->fio->channel_destroy) { ftdmchan 455 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 456 src/ftdm_io.c if (ftdmchan->span->fio->channel_destroy(ftdmchan) == FTDM_SUCCESS) { ftdmchan 457 src/ftdm_io.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_CONFIGURED); ftdmchan 459 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 463 src/ftdm_io.c ftdm_mutex_destroy(&ftdmchan->mutex); ftdmchan 464 src/ftdm_io.c ftdm_mutex_destroy(&ftdmchan->pre_buffer_mutex); ftdmchan 518 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_get_alarms(ftdm_channel_t *ftdmchan, ftdm_alarm_flag_t *alarmbits) ftdmchan 526 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 528 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_CONFIGURED)) { ftdmchan 529 src/ftdm_io.c if (ftdmchan->span->fio->get_alarms) { ftdmchan 530 src/ftdm_io.c if ((status = ftdmchan->span->fio->get_alarms(ftdmchan)) == FTDM_SUCCESS) { ftdmchan 531 src/ftdm_io.c *ftdmchan->last_error = '\0'; ftdmchan 532 src/ftdm_io.c *alarmbits = ftdmchan->alarm_flags; ftdmchan 533 src/ftdm_io.c if (ftdm_test_alarm_flag(ftdmchan, FTDM_ALARM_RED)) { ftdmchan 534 src/ftdm_io.c snprintf(ftdmchan->last_error + strlen(ftdmchan->last_error), sizeof(ftdmchan->last_error) - strlen(ftdmchan->last_error), "RED/"); ftdmchan 536 src/ftdm_io.c if (ftdm_test_alarm_flag(ftdmchan, FTDM_ALARM_YELLOW)) { ftdmchan 537 src/ftdm_io.c snprintf(ftdmchan->last_error + strlen(ftdmchan->last_error), sizeof(ftdmchan->last_error) - strlen(ftdmchan->last_error), "YELLOW/"); ftdmchan 539 src/ftdm_io.c if (ftdm_test_alarm_flag(ftdmchan, FTDM_ALARM_RAI)) { ftdmchan 540 src/ftdm_io.c snprintf(ftdmchan->last_error + strlen(ftdmchan->last_error), sizeof(ftdmchan->last_error) - strlen(ftdmchan->last_error), "RAI/"); ftdmchan 542 src/ftdm_io.c if (ftdm_test_alarm_flag(ftdmchan, FTDM_ALARM_BLUE)) { ftdmchan 543 src/ftdm_io.c snprintf(ftdmchan->last_error + strlen(ftdmchan->last_error), sizeof(ftdmchan->last_error) - strlen(ftdmchan->last_error), "BLUE/"); ftdmchan 545 src/ftdm_io.c if (ftdm_test_alarm_flag(ftdmchan, FTDM_ALARM_AIS)) { ftdmchan 546 src/ftdm_io.c snprintf(ftdmchan->last_error + strlen(ftdmchan->last_error), sizeof(ftdmchan->last_error) - strlen(ftdmchan->last_error), "AIS/"); ftdmchan 548 src/ftdm_io.c if (ftdm_test_alarm_flag(ftdmchan, FTDM_ALARM_GENERAL)) { ftdmchan 549 src/ftdm_io.c snprintf(ftdmchan->last_error + strlen(ftdmchan->last_error), sizeof(ftdmchan->last_error) - strlen(ftdmchan->last_error), "GENERAL"); ftdmchan 551 src/ftdm_io.c *(ftdmchan->last_error + strlen(ftdmchan->last_error) - 1) = '\0'; ftdmchan 559 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 990 src/ftdm_io.c ftdm_channel_t *ftdmchan = (ftdm_channel_t *) user_data; ftdmchan 991 src/ftdm_io.c ftdm_buffer_write(ftdmchan->fsk_buffer, buf, buflen * 2); ftdmchan 995 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 999 src/ftdm_io.c if (!ftdmchan->fsk_buffer) { ftdmchan 1000 src/ftdm_io.c ftdm_buffer_create(&ftdmchan->fsk_buffer, 128, 128, 0); ftdmchan 1002 src/ftdm_io.c ftdm_buffer_zero(ftdmchan->fsk_buffer); ftdmchan 1005 src/ftdm_io.c if (ftdmchan->token_count > 1) { ftdmchan 1006 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 1009 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 1011 src/ftdm_io.c ftdmchan->buffer_delay = 3500 / ftdmchan->effective_interval; ftdmchan 1017 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_clear_token(ftdm_channel_t *ftdmchan, const char *token) ftdmchan 1021 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1023 src/ftdm_io.c memset(ftdmchan->tokens, 0, sizeof(ftdmchan->tokens)); ftdmchan 1024 src/ftdm_io.c ftdmchan->token_count = 0; ftdmchan 1027 src/ftdm_io.c int32_t i, count = ftdmchan->token_count; ftdmchan 1028 src/ftdm_io.c memcpy(tokens, ftdmchan->tokens, sizeof(tokens)); ftdmchan 1029 src/ftdm_io.c memset(ftdmchan->tokens, 0, sizeof(ftdmchan->tokens)); ftdmchan 1030 src/ftdm_io.c ftdmchan->token_count = 0; ftdmchan 1034 src/ftdm_io.c ftdm_copy_string(ftdmchan->tokens[ftdmchan->token_count], tokens[i], sizeof(ftdmchan->tokens[ftdmchan->token_count])); ftdmchan 1035 src/ftdm_io.c ftdmchan->token_count++; ftdmchan 1041 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1046 src/ftdm_io.c FT_DECLARE(void) ftdm_channel_rotate_tokens(ftdm_channel_t *ftdmchan) ftdmchan 1048 src/ftdm_io.c if (ftdmchan->token_count) { ftdmchan 1049 src/ftdm_io.c memmove(ftdmchan->tokens[1], ftdmchan->tokens[0], ftdmchan->token_count * FTDM_TOKEN_STRLEN); ftdmchan 1050 src/ftdm_io.c ftdm_copy_string(ftdmchan->tokens[0], ftdmchan->tokens[ftdmchan->token_count], FTDM_TOKEN_STRLEN); ftdmchan 1051 src/ftdm_io.c *ftdmchan->tokens[ftdmchan->token_count] = '\0'; ftdmchan 1055 src/ftdm_io.c FT_DECLARE(void) ftdm_channel_replace_token(ftdm_channel_t *ftdmchan, const char *old_token, const char *new_token) ftdmchan 1059 src/ftdm_io.c if (ftdmchan->token_count) { ftdmchan 1060 src/ftdm_io.c for(i = 0; i < ftdmchan->token_count; i++) { ftdmchan 1061 src/ftdm_io.c if (!strcmp(ftdmchan->tokens[i], old_token)) { ftdmchan 1062 src/ftdm_io.c ftdm_copy_string(ftdmchan->tokens[i], new_token, FTDM_TOKEN_STRLEN); ftdmchan 1069 src/ftdm_io.c FT_DECLARE(void) ftdm_channel_set_private(ftdm_channel_t *ftdmchan, void *pvt) ftdmchan 1071 src/ftdm_io.c ftdmchan->user_private = pvt; ftdmchan 1074 src/ftdm_io.c FT_DECLARE(void *) ftdm_channel_get_private(const ftdm_channel_t *ftdmchan) ftdmchan 1076 src/ftdm_io.c return ftdmchan->user_private; ftdmchan 1079 src/ftdm_io.c FT_DECLARE(uint32_t) ftdm_channel_get_token_count(const ftdm_channel_t *ftdmchan) ftdmchan 1082 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1083 src/ftdm_io.c count = ftdmchan->token_count; ftdmchan 1084 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1088 src/ftdm_io.c FT_DECLARE(uint32_t) ftdm_channel_get_io_interval(const ftdm_channel_t *ftdmchan) ftdmchan 1091 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1092 src/ftdm_io.c count = ftdmchan->effective_interval; ftdmchan 1093 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1097 src/ftdm_io.c FT_DECLARE(uint32_t) ftdm_channel_get_io_packet_len(const ftdm_channel_t *ftdmchan) ftdmchan 1100 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1101 src/ftdm_io.c count = ftdmchan->packet_len; ftdmchan 1102 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1106 src/ftdm_io.c FT_DECLARE(uint32_t) ftdm_channel_get_type(const ftdm_channel_t *ftdmchan) ftdmchan 1108 src/ftdm_io.c return ftdmchan->type; ftdmchan 1111 src/ftdm_io.c FT_DECLARE(ftdm_codec_t) ftdm_channel_get_codec(const ftdm_channel_t *ftdmchan) ftdmchan 1113 src/ftdm_io.c return ftdmchan->effective_codec; ftdmchan 1116 src/ftdm_io.c FT_DECLARE(const char *) ftdm_channel_get_token(const ftdm_channel_t *ftdmchan, uint32_t tokenid) ftdmchan 1119 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1121 src/ftdm_io.c if (ftdmchan->token_count <= tokenid) { ftdmchan 1122 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1126 src/ftdm_io.c token = ftdmchan->tokens[tokenid]; ftdmchan 1127 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1131 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_add_token(ftdm_channel_t *ftdmchan, char *token, int end) ftdmchan 1135 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1136 src/ftdm_io.c if (ftdmchan->token_count < FTDM_MAX_TOKENS) { ftdmchan 1138 src/ftdm_io.c ftdm_copy_string(ftdmchan->tokens[ftdmchan->token_count++], token, FTDM_TOKEN_STRLEN); ftdmchan 1140 src/ftdm_io.c memmove(ftdmchan->tokens[1], ftdmchan->tokens[0], ftdmchan->token_count * FTDM_TOKEN_STRLEN); ftdmchan 1141 src/ftdm_io.c ftdm_copy_string(ftdmchan->tokens[0], token, FTDM_TOKEN_STRLEN); ftdmchan 1142 src/ftdm_io.c ftdmchan->token_count++; ftdmchan 1146 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1152 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_complete_state(ftdm_channel_t *ftdmchan) ftdmchan 1154 src/ftdm_io.c ftdm_channel_state_t state = ftdmchan->state; ftdmchan 1157 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_PROGRESS); ftdmchan 1159 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_PROGRESS); ftdmchan 1160 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_MEDIA); ftdmchan 1161 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_ANSWERED); ftdmchan 1163 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_PROGRESS); ftdmchan 1164 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_MEDIA); ftdmchan 1170 src/ftdm_io.c static int ftdm_parse_state_map(ftdm_channel_t *ftdmchan, ftdm_channel_state_t state, ftdm_state_map_t *state_map) ftdmchan 1173 src/ftdm_io.c ftdm_state_direction_t direction = ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND) ? ZSD_OUTBOUND : ZSD_INBOUND; ftdmchan 1189 src/ftdm_io.c if (state_map->nodes[x].check_states[i] == ftdmchan->state) { ftdmchan 1218 src/ftdm_io.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 1223 src/ftdm_io.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_READY)) { ftdmchan 1224 src/ftdm_io.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 1225 src/ftdm_io.c ftdm_channel_state2str(ftdmchan->state), ftdm_channel_state2str(state)); ftdmchan 1229 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 1230 src/ftdm_io.c ftdm_log_chan_ex(ftdmchan, file, func, line, FTDM_LOG_LEVEL_ERROR, "Ignored state change request from %s to %s, the previous state change has not been processed yet\n", ftdmchan 1231 src/ftdm_io.c ftdm_channel_state2str(ftdmchan->state), ftdm_channel_state2str(state)); ftdmchan 1235 src/ftdm_io.c if (ftdmchan->state == state) { ftdmchan 1236 src/ftdm_io.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 1240 src/ftdm_io.c if (ftdmchan->span->state_map) { ftdmchan 1241 src/ftdm_io.c ok = ftdm_parse_state_map(ftdmchan, state, ftdmchan->span->state_map); ftdmchan 1246 src/ftdm_io.c switch(ftdmchan->state) { ftdmchan 1326 src/ftdm_io.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 1327 src/ftdm_io.c ftdmchan->last_state = ftdmchan->state; ftdmchan 1328 src/ftdm_io.c ftdmchan->state = state; ftdmchan 1329 src/ftdm_io.c ftdmchan->history[ftdmchan->hindex].file = file; ftdmchan 1330 src/ftdm_io.c ftdmchan->history[ftdmchan->hindex].func = func; ftdmchan 1331 src/ftdm_io.c ftdmchan->history[ftdmchan->hindex].line = line; ftdmchan 1332 src/ftdm_io.c ftdmchan->history[ftdmchan->hindex].state = ftdmchan->state; ftdmchan 1333 src/ftdm_io.c ftdmchan->history[ftdmchan->hindex].last_state = ftdmchan->last_state; ftdmchan 1334 src/ftdm_io.c ftdmchan->history[ftdmchan->hindex].time = ftdm_current_time_in_ms(); ftdmchan 1335 src/ftdm_io.c ftdmchan->hindex++; ftdmchan 1336 src/ftdm_io.c if (ftdmchan->hindex == ftdm_array_len(ftdmchan->history)) { ftdmchan 1337 src/ftdm_io.c ftdmchan->hindex = 0; ftdmchan 1339 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE); ftdmchan 1341 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->span->mutex); ftdmchan 1342 src/ftdm_io.c ftdm_set_flag(ftdmchan->span, FTDM_SPAN_STATE_CHANGE); ftdmchan 1343 src/ftdm_io.c if (ftdmchan->span->pendingchans) { ftdmchan 1344 src/ftdm_io.c ftdm_queue_enqueue(ftdmchan->span->pendingchans, ftdmchan); ftdmchan 1346 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->span->mutex); ftdmchan 1348 src/ftdm_io.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 1355 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1360 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1363 src/ftdm_io.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 1369 src/ftdm_io.c if (ftdmchan->state != state) { ftdmchan 1375 src/ftdm_io.c ftdm_log_chan_ex(ftdmchan, file, func, line, FTDM_LOG_LEVEL_WARNING, "state change from %s to %s was most likely not processed after aprox %dms\n", ftdmchan 1376 src/ftdm_io.c ftdm_channel_state2str(ftdmchan->last_state), ftdm_channel_state2str(state), DEFAULT_WAIT_TIME); ftdmchan 1429 src/ftdm_io.c static __inline__ int request_voice_channel(ftdm_channel_t *check, ftdm_channel_t **ftdmchan, ftdmchan 1447 src/ftdm_io.c direction, caller_data, ftdmchan); ftdmchan 1454 src/ftdm_io.c *ftdmchan = check; ftdmchan 1513 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 1529 src/ftdm_io.c *ftdmchan = NULL; ftdmchan 1537 src/ftdm_io.c *ftdmchan = NULL; ftdmchan 1556 src/ftdm_io.c if (request_voice_channel(check, ftdmchan, caller_data, direction)) { ftdmchan 1577 src/ftdm_io.c status = get_best_rated(ftdmchan, best_rated); ftdmchan 1606 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 1616 src/ftdm_io.c *ftdmchan = NULL; ftdmchan 1639 src/ftdm_io.c return span->channel_request(span, 0, direction, caller_data, ftdmchan); ftdmchan 1667 src/ftdm_io.c if (request_voice_channel(check, ftdmchan, caller_data, direction)) { ftdmchan 1682 src/ftdm_io.c status = get_best_rated(ftdmchan, best_rated); ftdmchan 1690 src/ftdm_io.c static ftdm_status_t ftdm_channel_reset(ftdm_channel_t *ftdmchan) ftdmchan 1692 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_OPEN); ftdmchan 1693 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_DTMF_DETECT); ftdmchan 1694 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_SUPRESS_DTMF); ftdmchan 1695 src/ftdm_io.c ftdm_channel_done(ftdmchan); ftdmchan 1696 src/ftdm_io.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_HOLD); ftdmchan 1698 src/ftdm_io.c memset(ftdmchan->tokens, 0, sizeof(ftdmchan->tokens)); ftdmchan 1699 src/ftdm_io.c ftdmchan->token_count = 0; ftdmchan 1701 src/ftdm_io.c ftdm_channel_flush_dtmf(ftdmchan); ftdmchan 1703 src/ftdm_io.c if (ftdmchan->gen_dtmf_buffer) { ftdmchan 1704 src/ftdm_io.c ftdm_buffer_zero(ftdmchan->gen_dtmf_buffer); ftdmchan 1707 src/ftdm_io.c if (ftdmchan->digit_buffer) { ftdmchan 1708 src/ftdm_io.c ftdm_buffer_zero(ftdmchan->digit_buffer); ftdmchan 1711 src/ftdm_io.c if (!ftdmchan->dtmf_on) { ftdmchan 1712 src/ftdm_io.c ftdmchan->dtmf_on = FTDM_DEFAULT_DTMF_ON; ftdmchan 1715 src/ftdm_io.c if (!ftdmchan->dtmf_off) { ftdmchan 1716 src/ftdm_io.c ftdmchan->dtmf_off = FTDM_DEFAULT_DTMF_OFF; ftdmchan 1719 src/ftdm_io.c memset(ftdmchan->dtmf_hangup_buf, '\0', ftdmchan->span->dtmf_hangup_len); ftdmchan 1721 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_TRANSCODE)) { ftdmchan 1722 src/ftdm_io.c ftdmchan->effective_codec = ftdmchan->native_codec; ftdmchan 1723 src/ftdm_io.c ftdmchan->packet_len = ftdmchan->native_interval * (ftdmchan->effective_codec == FTDM_CODEC_SLIN ? 16 : 8); ftdmchan 1724 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_TRANSCODE); ftdmchan 1730 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_init(ftdm_channel_t *ftdmchan) ftdmchan 1732 src/ftdm_io.c if (ftdmchan->init_state != FTDM_CHANNEL_STATE_DOWN) { ftdmchan 1733 src/ftdm_io.c ftdm_set_state(ftdmchan, ftdmchan->init_state); ftdmchan 1734 src/ftdm_io.c ftdmchan->init_state = FTDM_CHANNEL_STATE_DOWN; ftdmchan 1740 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_open_chan(ftdm_channel_t *ftdmchan) ftdmchan 1744 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "invalid ftdmchan pointer\n"); ftdmchan 1746 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1748 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_SUSPENDED)) { ftdmchan 1749 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", "Channel is suspended\n"); ftdmchan 1750 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Cannot open channel when is suspended\n"); ftdmchan 1754 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_IN_ALARM)) { ftdmchan 1755 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", "Channel is alarmed\n"); ftdmchan 1756 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Cannot open channel when is alarmed\n"); ftdmchan 1760 src/ftdm_io.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_READY)) { ftdmchan 1761 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Channel is not ready"); ftdmchan 1762 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Cannot open channel when is not ready\n"); ftdmchan 1768 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", "CPU usage alarm is on - refusing to open channel\n"); ftdmchan 1769 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "CPU usage alarm is on - refusing to open channel\n"); ftdmchan 1770 src/ftdm_io.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_SWITCH_CONGESTION; ftdmchan 1775 src/ftdm_io.c status = ftdmchan->fio->open(ftdmchan); ftdmchan 1777 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_OPEN | FTDM_CHANNEL_INUSE); ftdmchan 1779 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "IO open failed: %d\n", status); ftdmchan 1784 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1789 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 1797 src/ftdm_io.c *ftdmchan = NULL; ftdmchan 1869 src/ftdm_io.c *ftdmchan = check; ftdmchan 1883 src/ftdm_io.c FT_DECLARE(uint32_t) ftdm_channel_get_id(const ftdm_channel_t *ftdmchan) ftdmchan 1885 src/ftdm_io.c return ftdmchan->chan_id; ftdmchan 1888 src/ftdm_io.c FT_DECLARE(uint32_t) ftdm_channel_get_ph_id(const ftdm_channel_t *ftdmchan) ftdmchan 1890 src/ftdm_io.c return ftdmchan->physical_chan_id; ftdmchan 1893 src/ftdm_io.c FT_DECLARE(uint32_t) ftdm_channel_get_span_id(const ftdm_channel_t *ftdmchan) ftdmchan 1895 src/ftdm_io.c return ftdmchan->span_id; ftdmchan 1898 src/ftdm_io.c FT_DECLARE(ftdm_span_t *) ftdm_channel_get_span(const ftdm_channel_t *ftdmchan) ftdmchan 1900 src/ftdm_io.c return ftdmchan->span; ftdmchan 1903 src/ftdm_io.c FT_DECLARE(const char *) ftdm_channel_get_span_name(const ftdm_channel_t *ftdmchan) ftdmchan 1905 src/ftdm_io.c return ftdmchan->span->name; ftdmchan 1928 src/ftdm_io.c FT_DECLARE(const char *) ftdm_channel_get_name(const ftdm_channel_t *ftdmchan) ftdmchan 1930 src/ftdm_io.c return ftdmchan->chan_name; ftdmchan 1933 src/ftdm_io.c FT_DECLARE(const char *) ftdm_channel_get_number(const ftdm_channel_t *ftdmchan) ftdmchan 1935 src/ftdm_io.c return ftdmchan->chan_number; ftdmchan 1938 src/ftdm_io.c FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_hold(const ftdm_channel_t *ftdmchan) ftdmchan 1941 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 1942 src/ftdm_io.c condition = ftdm_test_flag(ftdmchan, FTDM_CHANNEL_HOLD) ? FTDM_TRUE : FTDM_FALSE; ftdmchan 1943 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 1947 src/ftdm_io.c FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_answered(const ftdm_channel_t *ftdmchan) ftdmchan 1951 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 1952 src/ftdm_io.c condition = (ftdmchan->state == FTDM_CHANNEL_STATE_UP) ? FTDM_TRUE : FTDM_FALSE; ftdmchan 1953 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 1958 src/ftdm_io.c FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_busy(const ftdm_channel_t *ftdmchan) ftdmchan 1962 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 1963 src/ftdm_io.c condition = (ftdmchan->state == FTDM_CHANNEL_STATE_BUSY) ? FTDM_TRUE : FTDM_FALSE; ftdmchan 1964 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 1969 src/ftdm_io.c FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_hangup(const ftdm_channel_t *ftdmchan) ftdmchan 1973 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 1974 src/ftdm_io.c condition = (ftdmchan->state == FTDM_CHANNEL_STATE_HANGUP || ftdmchan->state == FTDM_CHANNEL_STATE_TERMINATING) ftdmchan 1976 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 1981 src/ftdm_io.c FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_done(const ftdm_channel_t *ftdmchan) ftdmchan 1985 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 1986 src/ftdm_io.c condition = (ftdmchan->state == FTDM_CHANNEL_STATE_DOWN) ? FTDM_TRUE : FTDM_FALSE; ftdmchan 1987 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 1992 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 1994 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 1995 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_HOLD); ftdmchan 1996 src/ftdm_io.c ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_DIALTONE, 0); ftdmchan 1997 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2001 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 2003 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2004 src/ftdm_io.c ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_UP, 0); ftdmchan 2005 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2009 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 2013 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2015 src/ftdm_io.c if (ftdmchan->state == FTDM_CHANNEL_STATE_TERMINATING) { ftdmchan 2016 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Ignoring answer because the call is already TERMINATING\n"); ftdmchan 2020 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_ANSWERED); ftdmchan 2021 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_PROGRESS); ftdmchan 2022 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_MEDIA); ftdmchan 2024 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 2029 src/ftdm_io.c if (ftdmchan->state < FTDM_CHANNEL_STATE_PROGRESS) { ftdmchan 2030 src/ftdm_io.c ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_PROGRESS, 1); ftdmchan 2034 src/ftdm_io.c if (ftdmchan->state == FTDM_CHANNEL_STATE_TERMINATING) { ftdmchan 2035 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 2039 src/ftdm_io.c if (ftdmchan->state < FTDM_CHANNEL_STATE_PROGRESS_MEDIA) { ftdmchan 2040 src/ftdm_io.c ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA, 1); ftdmchan 2044 src/ftdm_io.c if (ftdmchan->state == FTDM_CHANNEL_STATE_TERMINATING) { ftdmchan 2045 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 2049 src/ftdm_io.c ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_UP, 1); ftdmchan 2053 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2081 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 2083 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2085 src/ftdm_io.c ftdmchan->caller_data.hangup_cause = cause; ftdmchan 2087 src/ftdm_io.c call_hangup(ftdmchan, file, func, line); ftdmchan 2089 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2093 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 2095 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2096 src/ftdm_io.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_NORMAL_CLEARING; ftdmchan 2097 src/ftdm_io.c call_hangup(ftdmchan, file, func, line); ftdmchan 2098 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2102 src/ftdm_io.c FT_DECLARE(const char *) ftdm_channel_get_last_error(const ftdm_channel_t *ftdmchan) ftdmchan 2104 src/ftdm_io.c return ftdmchan->last_error; ftdmchan 2112 src/ftdm_io.c FT_DECLARE(ftdm_caller_data_t *) ftdm_channel_get_caller_data(ftdm_channel_t *ftdmchan) ftdmchan 2114 src/ftdm_io.c return &ftdmchan->caller_data; ftdmchan 2117 src/ftdm_io.c FT_DECLARE(const char *) ftdm_channel_get_state_str(const ftdm_channel_t *ftdmchan) ftdmchan 2120 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2121 src/ftdm_io.c state = ftdm_channel_state2str(ftdmchan->state); ftdmchan 2122 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2126 src/ftdm_io.c FT_DECLARE(const char *) ftdm_channel_get_last_state_str(const ftdm_channel_t *ftdmchan) ftdmchan 2129 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2130 src/ftdm_io.c state = ftdm_channel_state2str(ftdmchan->last_state); ftdmchan 2131 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2157 src/ftdm_io.c FT_DECLARE(uint32_t) ftdm_channel_get_ph_span_id(const ftdm_channel_t *ftdmchan) ftdmchan 2160 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2161 src/ftdm_io.c id = ftdmchan->physical_span_id; ftdmchan 2162 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2166 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 2169 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2171 src/ftdm_io.c if (ftdmchan->state == FTDM_CHANNEL_STATE_TERMINATING) { ftdmchan 2172 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 2180 src/ftdm_io.c ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_RING, 1); ftdmchan 2184 src/ftdm_io.c ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_BUSY, 1); ftdmchan 2188 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 2189 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_PROGRESS); ftdmchan 2191 src/ftdm_io.c ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_PROGRESS, 1); ftdmchan 2196 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 2197 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_PROGRESS); ftdmchan 2198 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_MEDIA); ftdmchan 2200 src/ftdm_io.c if (ftdmchan->state < FTDM_CHANNEL_STATE_PROGRESS) { ftdmchan 2201 src/ftdm_io.c ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_PROGRESS, 1); ftdmchan 2205 src/ftdm_io.c if (ftdmchan->state == FTDM_CHANNEL_STATE_TERMINATING) { ftdmchan 2206 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 2210 src/ftdm_io.c ftdm_channel_set_state(file, func, line, ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA, 1); ftdmchan 2221 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2226 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 2230 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "null channel"); ftdmchan 2231 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 2233 src/ftdm_io.c ftdm_set_echocancel_call_begin(ftdmchan); ftdmchan 2235 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 2237 src/ftdm_io.c if (ftdmchan->span->outgoing_call) { ftdmchan 2238 src/ftdm_io.c status = ftdmchan->span->outgoing_call(ftdmchan); ftdmchan 2250 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 2255 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_set_sig_status(ftdm_channel_t *ftdmchan, ftdm_signaling_status_t sigstatus) ftdmchan 2257 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "Null channel\n"); ftdmchan 2258 src/ftdm_io.c ftdm_assert_return(ftdmchan->span != NULL, FTDM_FAIL, "Null span\n"); ftdmchan 2260 src/ftdm_io.c if (ftdmchan->span->set_channel_sig_status) { ftdmchan 2261 src/ftdm_io.c return ftdmchan->span->set_channel_sig_status(ftdmchan, sigstatus); ftdmchan 2268 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_get_sig_status(ftdm_channel_t *ftdmchan, ftdm_signaling_status_t *sigstatus) ftdmchan 2270 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "Null channel\n"); ftdmchan 2271 src/ftdm_io.c ftdm_assert_return(ftdmchan->span != NULL, FTDM_FAIL, "Null span\n"); ftdmchan 2274 src/ftdm_io.c if (ftdmchan->span->get_channel_sig_status) { ftdmchan 2275 src/ftdm_io.c return ftdmchan->span->get_channel_sig_status(ftdmchan, sigstatus); ftdmchan 2307 src/ftdm_io.c static void close_dtmf_debug(ftdm_channel_t *ftdmchan) ftdmchan 2309 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->dtmfdbg.mutex); ftdmchan 2311 src/ftdm_io.c if (ftdmchan->dtmfdbg.file) { ftdmchan 2312 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "closing debug dtmf file\n"); ftdmchan 2313 src/ftdm_io.c fclose(ftdmchan->dtmfdbg.file); ftdmchan 2314 src/ftdm_io.c ftdmchan->dtmfdbg.file = NULL; ftdmchan 2316 src/ftdm_io.c ftdmchan->dtmfdbg.windex = 0; ftdmchan 2317 src/ftdm_io.c ftdmchan->dtmfdbg.wrapped = 0; ftdmchan 2319 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->dtmfdbg.mutex); ftdmchan 2323 src/ftdm_io.c static ftdm_status_t ftdm_channel_clear_vars(ftdm_channel_t *ftdmchan); ftdmchan 2324 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_done(ftdm_channel_t *ftdmchan) ftdmchan 2326 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "Null channel can't be done!\n"); ftdmchan 2328 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 2330 src/ftdm_io.c memset(&ftdmchan->caller_data, 0, sizeof(ftdmchan->caller_data)); ftdmchan 2332 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_INUSE); ftdmchan 2333 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND); ftdmchan 2334 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_WINK); ftdmchan 2335 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_FLASH); ftdmchan 2336 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE); ftdmchan 2337 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_HOLD); ftdmchan 2338 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK); ftdmchan 2339 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_RINGING); ftdmchan 2340 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_PROGRESS_DETECT); ftdmchan 2341 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_CALLERID_DETECT); ftdmchan 2342 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_3WAY); ftdmchan 2343 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_PROGRESS); ftdmchan 2344 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_MEDIA); ftdmchan 2345 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_ANSWERED); ftdmchan 2346 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_USER_HANGUP); ftdmchan 2347 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->pre_buffer_mutex); ftdmchan 2348 src/ftdm_io.c ftdm_buffer_destroy(&ftdmchan->pre_buffer); ftdmchan 2349 src/ftdm_io.c ftdmchan->pre_buffer_size = 0; ftdmchan 2350 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->pre_buffer_mutex); ftdmchan 2352 src/ftdm_io.c close_dtmf_debug(ftdmchan); ftdmchan 2354 src/ftdm_io.c ftdm_channel_clear_vars(ftdmchan); ftdmchan 2355 src/ftdm_io.c if (ftdmchan->hangup_timer) { ftdmchan 2356 src/ftdm_io.c ftdm_sched_cancel_timer(globals.timingsched, ftdmchan->hangup_timer); ftdmchan 2359 src/ftdm_io.c ftdmchan->init_state = FTDM_CHANNEL_STATE_DOWN; ftdmchan 2360 src/ftdm_io.c ftdmchan->state = FTDM_CHANNEL_STATE_DOWN; ftdmchan 2362 src/ftdm_io.c ftdm_log(FTDM_LOG_DEBUG, "channel done %u:%u\n", ftdmchan->span_id, ftdmchan->chan_id); ftdmchan 2364 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 2369 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_use(ftdm_channel_t *ftdmchan) ftdmchan 2372 src/ftdm_io.c assert(ftdmchan != NULL); ftdmchan 2374 src/ftdm_io.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_INUSE); ftdmchan 2379 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_close(ftdm_channel_t **ftdmchan) ftdmchan 2384 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "null channel double pointer provided!\n"); ftdmchan 2385 src/ftdm_io.c ftdm_assert_return(*ftdmchan != NULL, FTDM_FAIL, "null channel pointer provided!\n"); ftdmchan 2387 src/ftdm_io.c check = *ftdmchan; ftdmchan 2388 src/ftdm_io.c *ftdmchan = NULL; ftdmchan 2397 src/ftdm_io.c *ftdmchan = NULL; ftdmchan 2410 src/ftdm_io.c static ftdm_status_t ftdmchan_activate_dtmf_buffer(ftdm_channel_t *ftdmchan) ftdmchan 2413 src/ftdm_io.c if (!ftdmchan->dtmf_buffer) { ftdmchan 2414 src/ftdm_io.c if (ftdm_buffer_create(&ftdmchan->dtmf_buffer, 1024, 3192, 0) != FTDM_SUCCESS) { ftdmchan 2416 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "buffer error"); ftdmchan 2424 src/ftdm_io.c if (!ftdmchan->tone_session.buffer) { ftdmchan 2425 src/ftdm_io.c memset(&ftdmchan->tone_session, 0, sizeof(ftdmchan->tone_session)); ftdmchan 2426 src/ftdm_io.c teletone_init_session(&ftdmchan->tone_session, 0, NULL, NULL); ftdmchan 2429 src/ftdm_io.c ftdmchan->tone_session.rate = ftdmchan->rate; ftdmchan 2430 src/ftdm_io.c ftdmchan->tone_session.duration = ftdmchan->dtmf_on * (ftdmchan->tone_session.rate / 1000); ftdmchan 2431 src/ftdm_io.c ftdmchan->tone_session.wait = ftdmchan->dtmf_off * (ftdmchan->tone_session.rate / 1000); ftdmchan 2432 src/ftdm_io.c ftdmchan->tone_session.volume = -7; ftdmchan 2442 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_command(ftdm_channel_t *ftdmchan, ftdm_command_t command, void *obj) ftdmchan 2446 src/ftdm_io.c assert(ftdmchan != NULL); ftdmchan 2447 src/ftdm_io.c assert(ftdmchan->fio != NULL); ftdmchan 2449 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 2455 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_CALLERID)) { ftdmchan 2456 src/ftdm_io.c if (ftdm_fsk_demod_init(&ftdmchan->fsk, ftdmchan->rate, ftdmchan->fsk_buf, sizeof(ftdmchan->fsk_buf)) != FTDM_SUCCESS) { ftdmchan 2457 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", strerror(errno)); ftdmchan 2460 src/ftdm_io.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_CALLERID_DETECT); ftdmchan 2466 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_CALLERID)) { ftdmchan 2467 src/ftdm_io.c ftdm_fsk_demod_destroy(&ftdmchan->fsk); ftdmchan 2468 src/ftdm_io.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_CALLERID_DETECT); ftdmchan 2475 src/ftdm_io.c if (ftdmchan->fds[FTDM_READ_TRACE_INDEX] > 0) { ftdmchan 2476 src/ftdm_io.c close(ftdmchan->fds[FTDM_READ_TRACE_INDEX]); ftdmchan 2477 src/ftdm_io.c ftdmchan->fds[FTDM_READ_TRACE_INDEX] = -1; ftdmchan 2479 src/ftdm_io.c if ((ftdmchan->fds[FTDM_READ_TRACE_INDEX] = open(path, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR)) > -1) { ftdmchan 2480 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 2484 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", strerror(errno)); ftdmchan 2491 src/ftdm_io.c if (ftdmchan->fds[FTDM_WRITE_TRACE_INDEX] > 0) { ftdmchan 2492 src/ftdm_io.c close(ftdmchan->fds[FTDM_WRITE_TRACE_INDEX]); ftdmchan 2493 src/ftdm_io.c ftdmchan->fds[FTDM_WRITE_TRACE_INDEX] = -1; ftdmchan 2495 src/ftdm_io.c if ((ftdmchan->fds[FTDM_WRITE_TRACE_INDEX] = open(path, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR)) > -1) { ftdmchan 2496 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 2500 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", strerror(errno)); ftdmchan 2506 src/ftdm_io.c if (ftdmchan->fds[FTDM_READ_TRACE_INDEX] > 0) { ftdmchan 2507 src/ftdm_io.c close(ftdmchan->fds[FTDM_READ_TRACE_INDEX]); ftdmchan 2508 src/ftdm_io.c ftdmchan->fds[FTDM_READ_TRACE_INDEX] = -1; ftdmchan 2510 src/ftdm_io.c if (ftdmchan->fds[FTDM_WRITE_TRACE_INDEX] > 0) { ftdmchan 2511 src/ftdm_io.c close(ftdmchan->fds[FTDM_WRITE_TRACE_INDEX]); ftdmchan 2512 src/ftdm_io.c ftdmchan->fds[FTDM_WRITE_TRACE_INDEX] = -1; ftdmchan 2519 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_INTERVAL)) { ftdmchan 2520 src/ftdm_io.c ftdmchan->effective_interval = FTDM_COMMAND_OBJ_INT; ftdmchan 2521 src/ftdm_io.c if (ftdmchan->effective_interval == ftdmchan->native_interval) { ftdmchan 2522 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_BUFFER); ftdmchan 2524 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_BUFFER); ftdmchan 2526 src/ftdm_io.c ftdmchan->packet_len = ftdmchan->native_interval * (ftdmchan->effective_codec == FTDM_CODEC_SLIN ? 16 : 8); ftdmchan 2533 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_INTERVAL)) { ftdmchan 2534 src/ftdm_io.c FTDM_COMMAND_OBJ_INT = ftdmchan->effective_interval; ftdmchan 2541 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_CODECS)) { ftdmchan 2542 src/ftdm_io.c ftdmchan->effective_codec = FTDM_COMMAND_OBJ_INT; ftdmchan 2544 src/ftdm_io.c if (ftdmchan->effective_codec == ftdmchan->native_codec) { ftdmchan 2545 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_TRANSCODE); ftdmchan 2547 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_TRANSCODE); ftdmchan 2549 src/ftdm_io.c ftdmchan->packet_len = ftdmchan->native_interval * (ftdmchan->effective_codec == FTDM_CODEC_SLIN ? 16 : 8); ftdmchan 2557 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_CODECS)) { ftdmchan 2558 src/ftdm_io.c ftdmchan->effective_codec = ftdmchan->native_codec; ftdmchan 2559 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_TRANSCODE); ftdmchan 2560 src/ftdm_io.c ftdmchan->packet_len = ftdmchan->native_interval * (ftdmchan->effective_codec == FTDM_CODEC_SLIN ? 16 : 8); ftdmchan 2568 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_CODECS)) { ftdmchan 2569 src/ftdm_io.c FTDM_COMMAND_OBJ_INT = ftdmchan->effective_codec; ftdmchan 2576 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_CODECS)) { ftdmchan 2577 src/ftdm_io.c FTDM_COMMAND_OBJ_INT = ftdmchan->native_codec; ftdmchan 2584 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_PROGRESS)) { ftdmchan 2586 src/ftdm_io.c ftdm_channel_clear_detected_tones(ftdmchan); ftdmchan 2587 src/ftdm_io.c ftdm_channel_clear_needed_tones(ftdmchan); ftdmchan 2588 src/ftdm_io.c teletone_multi_tone_init(&ftdmchan->span->tone_finder[FTDM_TONEMAP_DIAL], &ftdmchan->span->tone_detect_map[FTDM_TONEMAP_DIAL]); ftdmchan 2589 src/ftdm_io.c teletone_multi_tone_init(&ftdmchan->span->tone_finder[FTDM_TONEMAP_RING], &ftdmchan->span->tone_detect_map[FTDM_TONEMAP_RING]); ftdmchan 2590 src/ftdm_io.c teletone_multi_tone_init(&ftdmchan->span->tone_finder[FTDM_TONEMAP_BUSY], &ftdmchan->span->tone_detect_map[FTDM_TONEMAP_BUSY]); ftdmchan 2591 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_PROGRESS_DETECT); ftdmchan 2598 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_PROGRESS)) { ftdmchan 2599 src/ftdm_io.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_PROGRESS_DETECT); ftdmchan 2600 src/ftdm_io.c ftdm_channel_clear_detected_tones(ftdmchan); ftdmchan 2601 src/ftdm_io.c ftdm_channel_clear_needed_tones(ftdmchan); ftdmchan 2609 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_DETECT)) { ftdmchan 2610 src/ftdm_io.c teletone_dtmf_detect_init (&ftdmchan->dtmf_detect, ftdmchan->rate); ftdmchan 2611 src/ftdm_io.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_DTMF_DETECT); ftdmchan 2612 src/ftdm_io.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_SUPRESS_DTMF); ftdmchan 2613 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Enabled software DTMF detector\n"); ftdmchan 2620 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_DETECT)) { ftdmchan 2621 src/ftdm_io.c teletone_dtmf_detect_init (&ftdmchan->dtmf_detect, ftdmchan->rate); ftdmchan 2622 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_DTMF_DETECT); ftdmchan 2623 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_SUPRESS_DTMF); ftdmchan 2624 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Disabled software DTMF detector\n"); ftdmchan 2637 src/ftdm_io.c ftdmchan->pre_buffer_size = val * 8; ftdmchan 2639 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->pre_buffer_mutex); ftdmchan 2640 src/ftdm_io.c if (!ftdmchan->pre_buffer_size) { ftdmchan 2641 src/ftdm_io.c ftdm_buffer_destroy(&ftdmchan->pre_buffer); ftdmchan 2642 src/ftdm_io.c } else if (!ftdmchan->pre_buffer) { ftdmchan 2643 src/ftdm_io.c ftdm_buffer_create(&ftdmchan->pre_buffer, 1024, ftdmchan->pre_buffer_size, 0); ftdmchan 2645 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->pre_buffer_mutex); ftdmchan 2653 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_GENERATE)) { ftdmchan 2654 src/ftdm_io.c FTDM_COMMAND_OBJ_INT = ftdmchan->dtmf_on; ftdmchan 2661 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_GENERATE)) { ftdmchan 2662 src/ftdm_io.c FTDM_COMMAND_OBJ_INT = ftdmchan->dtmf_on; ftdmchan 2669 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_GENERATE)) { ftdmchan 2672 src/ftdm_io.c ftdmchan->dtmf_on = val; ftdmchan 2675 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "invalid value %d range 10-1000", val); ftdmchan 2683 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_GENERATE)) { ftdmchan 2686 src/ftdm_io.c ftdmchan->dtmf_off = val; ftdmchan 2689 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "invalid value %d range 10-1000", val); ftdmchan 2697 src/ftdm_io.c if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_GENERATE)) { ftdmchan 2700 src/ftdm_io.c if ((status = ftdmchan_activate_dtmf_buffer(ftdmchan)) != FTDM_SUCCESS) { ftdmchan 2704 src/ftdm_io.c ftdm_buffer_write(ftdmchan->gen_dtmf_buffer, digits, strlen(digits)); ftdmchan 2713 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->pre_buffer_mutex); ftdmchan 2714 src/ftdm_io.c ftdm_buffer_destroy(&ftdmchan->pre_buffer); ftdmchan 2715 src/ftdm_io.c ftdmchan->pre_buffer_size = 0; ftdmchan 2716 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->pre_buffer_mutex); ftdmchan 2722 src/ftdm_io.c if (!FTDM_IS_VOICE_CHANNEL(ftdmchan)) { ftdmchan 2723 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 2726 src/ftdm_io.c ftdmchan->rxgain = FTDM_COMMAND_OBJ_FLOAT; ftdmchan 2727 src/ftdm_io.c reset_gain_table(ftdmchan->rxgain_table, ftdmchan->rxgain, ftdmchan->native_codec); ftdmchan 2728 src/ftdm_io.c if (ftdmchan->rxgain == 0.0) { ftdmchan 2729 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_USE_RX_GAIN); ftdmchan 2731 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_USE_RX_GAIN); ftdmchan 2738 src/ftdm_io.c FTDM_COMMAND_OBJ_FLOAT = ftdmchan->rxgain; ftdmchan 2744 src/ftdm_io.c if (!FTDM_IS_VOICE_CHANNEL(ftdmchan)) { ftdmchan 2745 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 2748 src/ftdm_io.c ftdmchan->txgain = FTDM_COMMAND_OBJ_FLOAT; ftdmchan 2749 src/ftdm_io.c reset_gain_table(ftdmchan->txgain_table, ftdmchan->txgain, ftdmchan->native_codec); ftdmchan 2750 src/ftdm_io.c if (ftdmchan->txgain == 0.0) { ftdmchan 2751 src/ftdm_io.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_USE_TX_GAIN); ftdmchan 2753 src/ftdm_io.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_USE_TX_GAIN); ftdmchan 2760 src/ftdm_io.c FTDM_COMMAND_OBJ_FLOAT = ftdmchan->txgain; ftdmchan 2768 src/ftdm_io.c if (!ftdmchan->fio->command) { ftdmchan 2769 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "method not implemented"); ftdmchan 2774 src/ftdm_io.c status = ftdmchan->fio->command(ftdmchan, command, obj); ftdmchan 2777 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "I/O command %d not implemented in backend", command); ftdmchan 2781 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 2786 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 2788 src/ftdm_io.c assert(ftdmchan != NULL); ftdmchan 2789 src/ftdm_io.c assert(ftdmchan->fio != NULL); ftdmchan 2791 src/ftdm_io.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OPEN)) { ftdmchan 2792 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "channel not open"); ftdmchan 2796 src/ftdm_io.c if (!ftdmchan->fio->wait) { ftdmchan 2797 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "method not implemented"); ftdmchan 2801 src/ftdm_io.c return ftdmchan->fio->wait(ftdmchan, flags, to); ftdmchan 2936 src/ftdm_io.c FT_DECLARE(void) ftdm_channel_clear_detected_tones(ftdm_channel_t *ftdmchan) ftdmchan 2940 src/ftdm_io.c memset(ftdmchan->detected_tones, 0, sizeof(ftdmchan->detected_tones[0]) * FTDM_TONEMAP_INVALID); ftdmchan 2943 src/ftdm_io.c ftdmchan->span->tone_finder[i].tone_count = 0; ftdmchan 2947 src/ftdm_io.c FT_DECLARE(void) ftdm_channel_clear_needed_tones(ftdm_channel_t *ftdmchan) ftdmchan 2949 src/ftdm_io.c memset(ftdmchan->needed_tones, 0, sizeof(ftdmchan->needed_tones[0]) * FTDM_TONEMAP_INVALID); ftdmchan 2952 src/ftdm_io.c FT_DECLARE(ftdm_size_t) ftdm_channel_dequeue_dtmf(ftdm_channel_t *ftdmchan, char *dtmf, ftdm_size_t len) ftdmchan 2956 src/ftdm_io.c assert(ftdmchan != NULL); ftdmchan 2958 src/ftdm_io.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_READY)) { ftdmchan 2962 src/ftdm_io.c if (ftdmchan->digit_buffer && ftdm_buffer_inuse(ftdmchan->digit_buffer)) { ftdmchan 2963 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 2964 src/ftdm_io.c if ((bytes = ftdm_buffer_read(ftdmchan->digit_buffer, dtmf, len)) > 0) { ftdmchan 2967 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 2973 src/ftdm_io.c FT_DECLARE(void) ftdm_channel_flush_dtmf(ftdm_channel_t *ftdmchan) ftdmchan 2975 src/ftdm_io.c if (ftdmchan->digit_buffer && ftdm_buffer_inuse(ftdmchan->digit_buffer)) { ftdmchan 2976 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 2977 src/ftdm_io.c ftdm_buffer_zero(ftdmchan->digit_buffer); ftdmchan 2978 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 2982 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_queue_dtmf(ftdm_channel_t *ftdmchan, const char *dtmf) ftdmchan 2989 src/ftdm_io.c assert(ftdmchan != NULL); ftdmchan 2991 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Queuing DTMF %s\n", dtmf); ftdmchan 2994 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->dtmfdbg.mutex); ftdmchan 2995 src/ftdm_io.c if (!ftdmchan->dtmfdbg.file) { ftdmchan 3004 src/ftdm_io.c ftdmchan->span_id, ftdmchan->chan_id, ftdmchan 3006 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 3007 src/ftdm_io.c ftdmchan->dtmfdbg.file = fopen(dfile, "w"); ftdmchan 3008 src/ftdm_io.c if (!ftdmchan->dtmfdbg.file) { ftdmchan 3009 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "failed to open debug dtmf file %s\n", dfile); ftdmchan 3013 src/ftdm_io.c int towrite = sizeof(ftdmchan->dtmfdbg.buffer) - ftdmchan->dtmfdbg.windex; ftdmchan 3015 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "created debug DTMF file %s\n", dfile); ftdmchan 3016 src/ftdm_io.c ftdmchan->dtmfdbg.closetimeout = DTMF_DEBUG_TIMEOUT; ftdmchan 3017 src/ftdm_io.c if (ftdmchan->dtmfdbg.wrapped) { ftdmchan 3018 src/ftdm_io.c rc = fwrite(&ftdmchan->dtmfdbg.buffer[ftdmchan->dtmfdbg.windex], 1, towrite, ftdmchan->dtmfdbg.file); ftdmchan 3020 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "only wrote %d out of %d bytes in DTMF debug buffer\n", rc, towrite); ftdmchan 3023 src/ftdm_io.c if (ftdmchan->dtmfdbg.windex) { ftdmchan 3024 src/ftdm_io.c towrite = ftdmchan->dtmfdbg.windex; ftdmchan 3025 src/ftdm_io.c rc = fwrite(&ftdmchan->dtmfdbg.buffer[0], 1, towrite, ftdmchan->dtmfdbg.file); ftdmchan 3027 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "only wrote %d out of %d bytes in DTMF debug buffer\n", rc, towrite); ftdmchan 3030 src/ftdm_io.c ftdmchan->dtmfdbg.windex = 0; ftdmchan 3031 src/ftdm_io.c ftdmchan->dtmfdbg.wrapped = 0; ftdmchan 3034 src/ftdm_io.c ftdmchan->dtmfdbg.closetimeout = DTMF_DEBUG_TIMEOUT; ftdmchan 3036 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->dtmfdbg.mutex); ftdmchan 3039 src/ftdm_io.c if (ftdmchan->pre_buffer) { ftdmchan 3040 src/ftdm_io.c ftdm_buffer_zero(ftdmchan->pre_buffer); ftdmchan 3043 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 3045 src/ftdm_io.c inuse = ftdm_buffer_inuse(ftdmchan->digit_buffer); ftdmchan 3048 src/ftdm_io.c if (len + inuse > ftdm_buffer_len(ftdmchan->digit_buffer)) { ftdmchan 3049 src/ftdm_io.c ftdm_buffer_toss(ftdmchan->digit_buffer, strlen(dtmf)); ftdmchan 3052 src/ftdm_io.c if (ftdmchan->span->dtmf_hangup_len) { ftdmchan 3054 src/ftdm_io.c memmove (ftdmchan->dtmf_hangup_buf, ftdmchan->dtmf_hangup_buf + 1, ftdmchan->span->dtmf_hangup_len - 1); ftdmchan 3055 src/ftdm_io.c ftdmchan->dtmf_hangup_buf[ftdmchan->span->dtmf_hangup_len - 1] = *p; ftdmchan 3056 src/ftdm_io.c if (!strcmp(ftdmchan->dtmf_hangup_buf, ftdmchan->span->dtmf_hangup)) { ftdmchan 3058 src/ftdm_io.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 3074 src/ftdm_io.c status = ftdm_buffer_write(ftdmchan->digit_buffer, dtmf, wr) ? FTDM_SUCCESS : FTDM_FAIL; ftdmchan 3075 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 3082 src/ftdm_io.c if (ftdmchan->fds[FTDM_WRITE_TRACE_INDEX] > -1) { ftdmchan 3084 src/ftdm_io.c if ((write(ftdmchan->fds[FTDM_WRITE_TRACE_INDEX], data, dlen)) != dlen) { ftdmchan 3088 src/ftdm_io.c return ftdmchan->fio->write(ftdmchan, data, datalen); ftdmchan 3094 src/ftdm_io.c ftdm_status_t status = ftdmchan->fio->read(ftdmchan, data, datalen); ftdmchan 3095 src/ftdm_io.c if (status == FTDM_SUCCESS && ftdmchan->fds[FTDM_READ_TRACE_INDEX] > -1) { ftdmchan 3097 src/ftdm_io.c if (write(ftdmchan->fds[FTDM_READ_TRACE_INDEX], data, dlen) != dlen) { ftdmchan 3102 src/ftdm_io.c if (status == FTDM_SUCCESS && ftdmchan->span->sig_read) { ftdmchan 3103 src/ftdm_io.c ftdmchan->span->sig_read(ftdmchan, data, *datalen); ftdmchan 3110 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->dtmfdbg.mutex); ftdmchan 3111 src/ftdm_io.c if (!ftdmchan->dtmfdbg.file) { ftdmchan 3113 src/ftdm_io.c int windex = ftdmchan->dtmfdbg.windex; ftdmchan 3114 src/ftdm_io.c int avail = sizeof(ftdmchan->dtmfdbg.buffer) - windex; ftdmchan 3120 src/ftdm_io.c memcpy(&ftdmchan->dtmfdbg.buffer[windex], dataptr, avail); ftdmchan 3121 src/ftdm_io.c memcpy(&ftdmchan->dtmfdbg.buffer[0], &dataptr[avail], diff); ftdmchan 3124 src/ftdm_io.c ftdmchan->dtmfdbg.wrapped = 1; ftdmchan 3126 src/ftdm_io.c memcpy(&ftdmchan->dtmfdbg.buffer[windex], dataptr, dlen); ftdmchan 3129 src/ftdm_io.c if (windex == sizeof(ftdmchan->dtmfdbg.buffer)) { ftdmchan 3132 src/ftdm_io.c ftdmchan->dtmfdbg.wrapped = 1; ftdmchan 3134 src/ftdm_io.c ftdmchan->dtmfdbg.windex = windex; ftdmchan 3136 src/ftdm_io.c rc = fwrite(data, 1, dlen, ftdmchan->dtmfdbg.file); ftdmchan 3140 src/ftdm_io.c ftdmchan->dtmfdbg.closetimeout--; ftdmchan 3141 src/ftdm_io.c if (!ftdmchan->dtmfdbg.closetimeout) { ftdmchan 3142 src/ftdm_io.c close_dtmf_debug(ftdmchan); ftdmchan 3145 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->dtmfdbg.mutex); ftdmchan 3151 src/ftdm_io.c static ftdm_status_t handle_dtmf(ftdm_channel_t *ftdmchan, ftdm_size_t datalen) ftdmchan 3157 src/ftdm_io.c if (ftdmchan->gen_dtmf_buffer && (dblen = ftdm_buffer_inuse(ftdmchan->gen_dtmf_buffer))) { ftdmchan 3166 src/ftdm_io.c if (ftdm_buffer_read(ftdmchan->gen_dtmf_buffer, digits, dblen) && !ftdm_strlen_zero_buf(digits)) { ftdmchan 3167 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Generating DTMF [%s]\n", digits); ftdmchan 3172 src/ftdm_io.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_FLASH, NULL); ftdmchan 3177 src/ftdm_io.c if ((wrote = teletone_mux_tones(&ftdmchan->tone_session, &ftdmchan->tone_session.TONES[(int)*cur]))) { ftdmchan 3178 src/ftdm_io.c ftdm_buffer_write(ftdmchan->dtmf_buffer, ftdmchan->tone_session.buffer, wrote * 2); ftdmchan 3181 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 3187 src/ftdm_io.c ftdmchan->skip_read_frames = (wrote / (ftdmchan->effective_interval * 8)) + 4; ftdmchan 3193 src/ftdm_io.c if (!ftdmchan->buffer_delay || --ftdmchan->buffer_delay == 0) { ftdmchan 3194 src/ftdm_io.c if (ftdmchan->dtmf_buffer && (dblen = ftdm_buffer_inuse(ftdmchan->dtmf_buffer))) { ftdmchan 3195 src/ftdm_io.c buffer = ftdmchan->dtmf_buffer; ftdmchan 3196 src/ftdm_io.c } else if (ftdmchan->fsk_buffer && (dblen = ftdm_buffer_inuse(ftdmchan->fsk_buffer))) { ftdmchan 3197 src/ftdm_io.c buffer = ftdmchan->fsk_buffer; ftdmchan 3206 src/ftdm_io.c if (ftdmchan->native_codec != FTDM_CODEC_SLIN) { ftdmchan 3217 src/ftdm_io.c if (ftdmchan->native_codec != FTDM_CODEC_SLIN) { ftdmchan 3218 src/ftdm_io.c if (ftdmchan->native_codec == FTDM_CODEC_ULAW) { ftdmchan 3220 src/ftdm_io.c } else if (ftdmchan->native_codec == FTDM_CODEC_ALAW) { ftdmchan 3225 src/ftdm_io.c return ftdm_raw_write(ftdmchan, auxbuf, &dlen); ftdmchan 3253 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_read(ftdm_channel_t *ftdmchan, void *data, ftdm_size_t *datalen) ftdmchan 3260 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "ftdmchan is null\n"); ftdmchan 3261 src/ftdm_io.c ftdm_assert_return(ftdmchan->fio != NULL, FTDM_FAIL, "No I/O module attached to ftdmchan\n"); ftdmchan 3263 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 3265 src/ftdm_io.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OPEN)) { ftdmchan 3266 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "channel not open"); ftdmchan 3267 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "cannot read from channel that is not open\n"); ftdmchan 3272 src/ftdm_io.c if (!ftdmchan->fio->read) { ftdmchan 3273 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "method not implemented"); ftdmchan 3274 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "read method not implemented\n"); ftdmchan 3279 src/ftdm_io.c status = ftdm_raw_read(ftdmchan, data, datalen); ftdmchan 3282 src/ftdm_io.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "raw I/O read filed\n"); ftdmchan 3286 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_USE_RX_GAIN) ftdmchan 3287 src/ftdm_io.c && (ftdmchan->native_codec == FTDM_CODEC_ALAW || ftdmchan->native_codec == FTDM_CODEC_ULAW)) { ftdmchan 3290 src/ftdm_io.c rdata[i] = ftdmchan->rxgain_table[rdata[i]]; ftdmchan 3293 src/ftdm_io.c handle_dtmf(ftdmchan, *datalen); ftdmchan 3296 src/ftdm_io.c if (status == FTDM_SUCCESS && ftdm_test_flag(ftdmchan, FTDM_CHANNEL_TRANSCODE) && ftdmchan->effective_codec != ftdmchan->native_codec) { ftdmchan 3297 src/ftdm_io.c if (ftdmchan->native_codec == FTDM_CODEC_ULAW && ftdmchan->effective_codec == FTDM_CODEC_SLIN) { ftdmchan 3299 src/ftdm_io.c } else if (ftdmchan->native_codec == FTDM_CODEC_ULAW && ftdmchan->effective_codec == FTDM_CODEC_ALAW) { ftdmchan 3301 src/ftdm_io.c } else if (ftdmchan->native_codec == FTDM_CODEC_ALAW && ftdmchan->effective_codec == FTDM_CODEC_SLIN) { ftdmchan 3303 src/ftdm_io.c } else if (ftdmchan->native_codec == FTDM_CODEC_ALAW && ftdmchan->effective_codec == FTDM_CODEC_ULAW) { ftdmchan 3310 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "codec error!"); ftdmchan 3311 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 3316 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_DTMF_DETECT) || ftdm_test_flag(ftdmchan, FTDM_CHANNEL_PROGRESS_DETECT) || ftdmchan 3317 src/ftdm_io.c ftdm_test_flag(ftdmchan, FTDM_CHANNEL_CALLERID_DETECT)) { ftdmchan 3323 src/ftdm_io.c if (ftdmchan->effective_codec == FTDM_CODEC_SLIN) { ftdmchan 3338 src/ftdm_io.c if (ftdmchan->effective_codec == FTDM_CODEC_ULAW) { ftdmchan 3340 src/ftdm_io.c } else if (ftdmchan->effective_codec == FTDM_CODEC_ALAW) { ftdmchan 3343 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "codec error!"); ftdmchan 3344 src/ftdm_io.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "invalid effective codec %d\n", ftdmchan->effective_codec); ftdmchan 3353 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_CALLERID_DETECT)) { ftdmchan 3354 src/ftdm_io.c if (ftdm_fsk_demod_feed(&ftdmchan->fsk, sln, slen) != FTDM_SUCCESS) { ftdmchan 3358 src/ftdm_io.c while(ftdm_fsk_data_parse(&ftdmchan->fsk, &type, &sp, &mlen) == FTDM_SUCCESS) { ftdmchan 3368 src/ftdm_io.c if (mlen > sizeof(ftdmchan->caller_data.ani)) { ftdmchan 3369 src/ftdm_io.c mlen = sizeof(ftdmchan->caller_data.ani); ftdmchan 3371 src/ftdm_io.c ftdm_set_string(ftdmchan->caller_data.ani.digits, str); ftdmchan 3372 src/ftdm_io.c ftdm_set_string(ftdmchan->caller_data.cid_num.digits, ftdmchan->caller_data.ani.digits); ftdmchan 3377 src/ftdm_io.c ftdm_set_string(ftdmchan->caller_data.ani.digits, *str == 'P' ? "private" : "unknown"); ftdmchan 3378 src/ftdm_io.c ftdm_set_string(ftdmchan->caller_data.cid_name, ftdmchan->caller_data.ani.digits); ftdmchan 3383 src/ftdm_io.c if (mlen > sizeof(ftdmchan->caller_data.cid_name)) { ftdmchan 3384 src/ftdm_io.c mlen = sizeof(ftdmchan->caller_data.cid_name); ftdmchan 3386 src/ftdm_io.c ftdm_set_string(ftdmchan->caller_data.cid_name, str); ftdmchan 3391 src/ftdm_io.c ftdm_set_string(ftdmchan->caller_data.cid_name, *str == 'P' ? "private" : "unknown"); ftdmchan 3395 src/ftdm_io.c if (mlen > sizeof(ftdmchan->caller_data.cid_date)) { ftdmchan 3396 src/ftdm_io.c mlen = sizeof(ftdmchan->caller_data.cid_date); ftdmchan 3398 src/ftdm_io.c ftdm_set_string(ftdmchan->caller_data.cid_date, str); ftdmchan 3403 src/ftdm_io.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DISABLE_CALLERID_DETECT, NULL); ftdmchan 3407 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_PROGRESS_DETECT) && !ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_PROGRESS)) { ftdmchan 3411 src/ftdm_io.c if (ftdmchan->span->tone_finder[i].tone_count) { ftdmchan 3412 src/ftdm_io.c if (ftdmchan->needed_tones[i] && teletone_multi_tone_detect(&ftdmchan->span->tone_finder[i], sln, (int)slen)) { ftdmchan 3413 src/ftdm_io.c if (++ftdmchan->detected_tones[i]) { ftdmchan 3414 src/ftdm_io.c ftdmchan->needed_tones[i] = 0; ftdmchan 3415 src/ftdm_io.c ftdmchan->detected_tones[0]++; ftdmchan 3423 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_DTMF_DETECT) && !ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_DETECT)) { ftdmchan 3424 src/ftdm_io.c teletone_dtmf_detect(&ftdmchan->dtmf_detect, sln, (int)slen); ftdmchan 3425 src/ftdm_io.c teletone_dtmf_get(&ftdmchan->dtmf_detect, digit_str, sizeof(digit_str)); ftdmchan 3428 src/ftdm_io.c if (ftdmchan->state == FTDM_CHANNEL_STATE_CALLWAITING && (*digit_str == 'D' || *digit_str == 'A')) { ftdmchan 3429 src/ftdm_io.c ftdmchan->detected_tones[FTDM_TONEMAP_CALLWAITING_ACK]++; ftdmchan 3431 src/ftdm_io.c ftdm_channel_queue_dtmf(ftdmchan, digit_str); ftdmchan 3433 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_SUPRESS_DTMF)) { ftdmchan 3434 src/ftdm_io.c ftdmchan->skip_read_frames = 20; ftdmchan 3441 src/ftdm_io.c if (ftdmchan->skip_read_frames > 0 || ftdm_test_flag(ftdmchan, FTDM_CHANNEL_MUTE)) { ftdmchan 3443 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->pre_buffer_mutex); ftdmchan 3444 src/ftdm_io.c if (ftdmchan->pre_buffer && ftdm_buffer_inuse(ftdmchan->pre_buffer)) { ftdmchan 3445 src/ftdm_io.c ftdm_buffer_zero(ftdmchan->pre_buffer); ftdmchan 3447 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->pre_buffer_mutex); ftdmchan 3452 src/ftdm_io.c if (ftdmchan->skip_read_frames > 0) { ftdmchan 3453 src/ftdm_io.c ftdmchan->skip_read_frames--; ftdmchan 3456 src/ftdm_io.c ftdm_mutex_lock(ftdmchan->pre_buffer_mutex); ftdmchan 3457 src/ftdm_io.c if (ftdmchan->pre_buffer_size && ftdmchan->pre_buffer) { ftdmchan 3458 src/ftdm_io.c ftdm_buffer_write(ftdmchan->pre_buffer, data, *datalen); ftdmchan 3459 src/ftdm_io.c if (ftdm_buffer_inuse(ftdmchan->pre_buffer) >= ftdmchan->pre_buffer_size) { ftdmchan 3460 src/ftdm_io.c ftdm_buffer_read(ftdmchan->pre_buffer, data, *datalen); ftdmchan 3465 src/ftdm_io.c ftdm_mutex_unlock(ftdmchan->pre_buffer_mutex); ftdmchan 3470 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 3476 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 3483 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "null channel on write!\n"); ftdmchan 3484 src/ftdm_io.c ftdm_assert_return(ftdmchan->fio != NULL, FTDM_FAIL, "null I/O on write!\n"); ftdmchan 3486 src/ftdm_io.c if (!ftdmchan->buffer_delay && ftdmchan 3487 src/ftdm_io.c ((ftdmchan->dtmf_buffer && ftdm_buffer_inuse(ftdmchan->dtmf_buffer)) || ftdmchan 3488 src/ftdm_io.c (ftdmchan->fsk_buffer && ftdm_buffer_inuse(ftdmchan->fsk_buffer)))) { ftdmchan 3494 src/ftdm_io.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OPEN)) { ftdmchan 3495 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "channel not open"); ftdmchan 3499 src/ftdm_io.c if (!ftdmchan->fio->write) { ftdmchan 3500 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "method not implemented"); ftdmchan 3504 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_TRANSCODE) && ftdmchan->effective_codec != ftdmchan->native_codec) { ftdmchan 3505 src/ftdm_io.c if (ftdmchan->native_codec == FTDM_CODEC_ULAW && ftdmchan->effective_codec == FTDM_CODEC_SLIN) { ftdmchan 3507 src/ftdm_io.c } else if (ftdmchan->native_codec == FTDM_CODEC_ULAW && ftdmchan->effective_codec == FTDM_CODEC_ALAW) { ftdmchan 3509 src/ftdm_io.c } else if (ftdmchan->native_codec == FTDM_CODEC_ALAW && ftdmchan->effective_codec == FTDM_CODEC_SLIN) { ftdmchan 3511 src/ftdm_io.c } else if (ftdmchan->native_codec == FTDM_CODEC_ALAW && ftdmchan->effective_codec == FTDM_CODEC_ULAW) { ftdmchan 3518 src/ftdm_io.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "codec error!"); ftdmchan 3523 src/ftdm_io.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_USE_TX_GAIN) ftdmchan 3524 src/ftdm_io.c && (ftdmchan->native_codec == FTDM_CODEC_ALAW || ftdmchan->native_codec == FTDM_CODEC_ULAW)) { ftdmchan 3527 src/ftdm_io.c wdata[i] = ftdmchan->txgain_table[wdata[i]]; ftdmchan 3531 src/ftdm_io.c status = ftdm_raw_write(ftdmchan, data, datalen); ftdmchan 3536 src/ftdm_io.c static ftdm_status_t ftdm_channel_clear_vars(ftdm_channel_t *ftdmchan) ftdmchan 3538 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 3540 src/ftdm_io.c if (ftdmchan->variable_hash) { ftdmchan 3541 src/ftdm_io.c hashtable_destroy(ftdmchan->variable_hash); ftdmchan 3543 src/ftdm_io.c ftdmchan->variable_hash = NULL; ftdmchan 3545 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 3549 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 3559 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 3561 src/ftdm_io.c if (!ftdmchan->variable_hash) { ftdmchan 3563 src/ftdm_io.c ftdmchan->variable_hash = create_hashtable(16, ftdm_hash_hashfromstring, ftdm_hash_equalkeys); ftdmchan 3564 src/ftdm_io.c if (!ftdmchan->variable_hash) { ftdmchan 3572 src/ftdm_io.c hashtable_insert(ftdmchan->variable_hash, t_name, t_val, HASHTABLE_FLAG_FREE_KEY | HASHTABLE_FLAG_FREE_VALUE); ftdmchan 3577 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 3582 src/ftdm_io.c FT_DECLARE(const char *) ftdm_channel_get_var(ftdm_channel_t *ftdmchan, const char *var_name) ftdmchan 3586 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 3588 src/ftdm_io.c if (!ftdmchan->variable_hash || !var_name) { ftdmchan 3592 src/ftdm_io.c var = (const char *)hashtable_search(ftdmchan->variable_hash, (void *)var_name); ftdmchan 3595 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 3624 src/ftdm_io.c FT_DECLARE(ftdm_iterator_t *) ftdm_channel_get_var_iterator(const ftdm_channel_t *ftdmchan, ftdm_iterator_t *iter) ftdmchan 3627 src/ftdm_io.c ftdm_channel_lock(ftdmchan); ftdmchan 3628 src/ftdm_io.c hashiter = ftdmchan->variable_hash == NULL ? NULL : hashtable_first(ftdmchan->variable_hash); ftdmchan 3629 src/ftdm_io.c ftdm_channel_unlock(ftdmchan); ftdmchan 4553 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_add_to_group(const char* name, ftdm_channel_t* ftdmchan) ftdmchan 4560 src/ftdm_io.c ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "Cannot add a null channel to a group\n"); ftdmchan 4569 src/ftdm_io.c if (group->channels[i]->physical_span_id == ftdmchan->physical_span_id && ftdmchan 4570 src/ftdm_io.c group->channels[i]->physical_chan_id == ftdmchan->physical_chan_id) { ftdmchan 4587 src/ftdm_io.c group->channels[group->chan_count++] = ftdmchan; ftdmchan 4592 src/ftdm_io.c FT_DECLARE(ftdm_status_t) ftdm_channel_remove_from_group(ftdm_group_t* group, ftdm_channel_t* ftdmchan) ftdmchan 4599 src/ftdm_io.c if (group->channels[i]->physical_span_id == ftdmchan->physical_span_id && ftdmchan 4600 src/ftdm_io.c group->channels[i]->physical_chan_id == ftdmchan->physical_chan_id) { ftdmchan 59 src/ftdm_m3ua.c ftdm_channel_t *ftdmchan; ftdmchan 137 src/ftdm_m3ua.c static __inline__ void state_advance(ftdm_channel_t *ftdmchan) ftdmchan 140 src/ftdm_m3ua.c m3ua_data_t *m3ua_data = ftdmchan->span->signal_data; ftdmchan 145 src/ftdm_m3ua.c ftdm_log(FTDM_LOG_DEBUG, "%d:%d STATE [%s]\n", ftdmchan->span_id, ftdmchan->chan_id, ftdm_channel_state2str(ftdmchan->state)); ftdmchan 148 src/ftdm_m3ua.c sig.chan_id = ftdmchan->chan_id; ftdmchan 149 src/ftdm_m3ua.c sig.span_id = ftdmchan->span_id; ftdmchan 150 src/ftdm_m3ua.c sig.channel = ftdmchan; ftdmchan 152 src/ftdm_m3ua.c switch (ftdmchan->state) { ftdmchan 155 src/ftdm_m3ua.c if (ftdmchan->extra_id) { ftdmchan 156 src/ftdm_m3ua.c release_request_id((m3ua_request_id_t)ftdmchan->extra_id); ftdmchan 157 src/ftdm_m3ua.c ftdmchan->extra_id = 0; ftdmchan 159 src/ftdm_m3ua.c ftdm_channel_done(ftdmchan); ftdmchan 165 src/ftdm_m3ua.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 168 src/ftdm_m3ua.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 172 src/ftdm_m3ua.c ftdmchan->physical_span_id-1, ftdmchan 173 src/ftdm_m3ua.c ftdmchan->physical_chan_id-1, ftdmchan 182 src/ftdm_m3ua.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 185 src/ftdm_m3ua.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 193 src/ftdm_m3ua.c if (ftdmchan->last_state != FTDM_CHANNEL_STATE_HANGUP && ftdmchan->last_state != FTDM_CHANNEL_STATE_DOWN) { ftdmchan 194 src/ftdm_m3ua.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 196 src/ftdm_m3ua.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 202 src/ftdm_m3ua.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 205 src/ftdm_m3ua.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 208 src/ftdm_m3ua.c if (!(ftdm_test_flag(ftdmchan, FTDM_CHANNEL_PROGRESS) || ftdm_test_flag(ftdmchan, FTDM_CHANNEL_MEDIA))) { ftdmchan 210 src/ftdm_m3ua.c ftdmchan->physical_span_id-1, ftdmchan 211 src/ftdm_m3ua.c ftdmchan->physical_chan_id-1, ftdmchan 218 src/ftdm_m3ua.c ftdmchan->physical_span_id-1, ftdmchan 219 src/ftdm_m3ua.c ftdmchan->physical_chan_id-1, ftdmchan 232 src/ftdm_m3ua.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 237 src/ftdm_m3ua.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_ANSWERED) || ftdm_test_flag(ftdmchan, FTDM_CHANNEL_PROGRESS) || ftdm_test_flag(ftdmchan, FTDM_CHANNEL_MEDIA)) { ftdmchan 239 src/ftdm_m3ua.c ftdmchan->physical_span_id-1, ftdmchan 240 src/ftdm_m3ua.c ftdmchan->physical_chan_id-1, ftdmchan 243 src/ftdm_m3ua.c ftdmchan->caller_data.hangup_cause); ftdmchan 246 src/ftdm_m3ua.c ftdmchan->physical_span_id-1, ftdmchan 247 src/ftdm_m3ua.c ftdmchan->physical_chan_id-1, ftdmchan 250 src/ftdm_m3ua.c ftdmchan->caller_data.hangup_cause); ftdmchan 258 src/ftdm_m3ua.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 260 src/ftdm_m3ua.c ftdmchan->physical_span_id-1, ftdmchan 261 src/ftdm_m3ua.c ftdmchan->physical_chan_id-1, ftdmchan 271 src/ftdm_m3ua.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 273 src/ftdm_m3ua.c ftdmchan->physical_span_id-1, ftdmchan 274 src/ftdm_m3ua.c ftdmchan->physical_chan_id-1, ftdmchan 497 src/ftdm_m3ua.c m3ua_chan_data_t *chan_data = (m3ua_chan_data_t *) ftdmchan->mod_data; ftdmchan 498 src/ftdm_m3ua.c m3ua_span_data_t *span_data = (m3ua_span_data_t *) ftdmchan->span->mod_data; ftdmchan 52 src/ftmod/ftmod_analog/ftmod_analog.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK) && !ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INTHREAD)) { ftdmchan 53 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_clear_needed_tones(ftdmchan); ftdmchan 54 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_clear_detected_tones(ftdmchan); ftdmchan 56 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_OFFHOOK, NULL); ftdmchan 57 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_ENABLE_PROGRESS_DETECT, NULL); ftdmchan 58 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->needed_tones[FTDM_TONEMAP_DIAL] = 1; ftdmchan 59 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DIALING); ftdmchan 60 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_thread_create_detached(ftdm_analog_channel_run, ftdmchan); ftdmchan 77 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INTHREAD)) { ftdmchan 78 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_CALLWAITING); ftdmchan 80 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_GENRING); ftdmchan 81 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_thread_create_detached(ftdm_analog_channel_run, ftdmchan); ftdmchan 283 src/ftmod/ftmod_analog/ftmod_analog.c static void send_caller_id(ftdm_channel_t *ftdmchan) ftdmchan 304 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_strlen_zero(ftdmchan->caller_data.cid_num.digits)) { ftdmchan 306 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_string(ftdmchan->caller_data.cid_num.digits, "O"); ftdmchan 307 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 312 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 314 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_strlen_zero(ftdmchan->caller_data.cid_name)) { ftdmchan 316 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_string(ftdmchan->caller_data.cid_name, "O"); ftdmchan 317 src/ftmod/ftmod_analog/ftmod_analog.c } else if (!strcasecmp(ftdmchan->caller_data.cid_name, "P") || !strcasecmp(ftdmchan->caller_data.cid_name, "O")) { ftdmchan 322 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 325 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_send_fsk_data(ftdmchan, &fsk_data, -14); ftdmchan 335 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_t *ftdmchan = (ftdm_channel_t *) obj; ftdmchan 343 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_analog_data_t *analog_data = ftdmchan->span->signal_data; ftdmchan 349 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "ANALOG CHANNEL thread starting.\n"); ftdmchan 353 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 354 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "OPEN ERROR [%s]\n", ftdmchan->last_error); ftdmchan 359 src/ftmod/ftmod_analog/ftmod_analog.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "memory error!"); ftdmchan 360 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "MEM ERROR\n"); ftdmchan 364 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_channel_command(ftdmchan, FTDM_COMMAND_ENABLE_DTMF_DETECT, &tt) != FTDM_SUCCESS) { ftdmchan 365 src/ftmod/ftmod_analog/ftmod_analog.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "error initilizing tone detector!"); ftdmchan 366 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "failed to initialize DTMF detector\n"); ftdmchan 369 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Initialized DTMF detection\n"); ftdmchan 371 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_INTHREAD); ftdmchan 378 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GET_INTERVAL, &interval); ftdmchan 382 src/ftmod/ftmod_analog/ftmod_analog.c sig.chan_id = ftdmchan->chan_id; ftdmchan 383 src/ftmod/ftmod_analog/ftmod_analog.c sig.span_id = ftdmchan->span_id; ftdmchan 384 src/ftmod/ftmod_analog/ftmod_analog.c sig.channel = ftdmchan; ftdmchan 388 src/ftmod/ftmod_analog/ftmod_analog.c while (ftdm_running() && ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INTHREAD)) { ftdmchan 397 src/ftmod/ftmod_analog/ftmod_analog.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 398 src/ftmod/ftmod_analog/ftmod_analog.c switch(ftdmchan->state) { ftdmchan 401 src/ftmod/ftmod_analog/ftmod_analog.c if (state_counter > 5000 || !ftdm_test_flag(ftdmchan, FTDM_CHANNEL_CALLERID_DETECT)) { ftdmchan 402 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DISABLE_CALLERID_DETECT, NULL); ftdmchan 403 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_IDLE); ftdmchan 410 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->needed_tones[FTDM_TONEMAP_DIAL]) { ftdmchan 411 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_BUSY); ftdmchan 413 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 421 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 422 src/ftmod/ftmod_analog/ftmod_analog.c } else if (!ftdmchan->fsk_buffer || !ftdm_buffer_inuse(ftdmchan->fsk_buffer)) { ftdmchan 430 src/ftmod/ftmod_analog/ftmod_analog.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_HOLD) && state_counter > 10000) { ftdmchan 431 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_BUSY); ftdmchan 438 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_ATTN); ftdmchan 445 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 452 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_RINGING)) { ftdmchan 453 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GENERATE_RING_OFF, NULL); ftdmchan 456 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK) && ftdmchan 457 src/ftmod/ftmod_analog/ftmod_analog.c (ftdmchan->last_state == FTDM_CHANNEL_STATE_RING || ftdmchan->last_state == FTDM_CHANNEL_STATE_DIALTONE ftdmchan 458 src/ftmod/ftmod_analog/ftmod_analog.c || ftdmchan->last_state >= FTDM_CHANNEL_STATE_IDLE)) { ftdmchan 459 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_BUSY); ftdmchan 461 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_NORMAL_CLEARING; ftdmchan 462 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 471 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->detected_tones[FTDM_TONEMAP_CALLWAITING_ACK] == 1) { ftdmchan 472 src/ftmod/ftmod_analog/ftmod_analog.c send_caller_id(ftdmchan); ftdmchan 473 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->detected_tones[FTDM_TONEMAP_CALLWAITING_ACK]++; ftdmchan 474 src/ftmod/ftmod_analog/ftmod_analog.c } else if (state_counter > 600 && !ftdmchan->detected_tones[FTDM_TONEMAP_CALLWAITING_ACK]) { ftdmchan 475 src/ftmod/ftmod_analog/ftmod_analog.c send_caller_id(ftdmchan); ftdmchan 476 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->detected_tones[FTDM_TONEMAP_CALLWAITING_ACK]++; ftdmchan 477 src/ftmod/ftmod_analog/ftmod_analog.c } else if (state_counter > 1000 && !ftdmchan->detected_tones[FTDM_TONEMAP_CALLWAITING_ACK]) { ftdmchan 480 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->fsk_buffer) { ftdmchan 481 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_buffer_zero(ftdmchan->fsk_buffer); ftdmchan 483 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_buffer_create(&ftdmchan->fsk_buffer, 128, 128, 0); ftdmchan 486 src/ftmod/ftmod_analog/ftmod_analog.c ts.user_data = ftdmchan->fsk_buffer; ftdmchan 487 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_CALLWAITING_SAS]); ftdmchan 493 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 494 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_STATE_CHANGE); ftdmchan 495 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_clear_flag_locked(ftdmchan->span, FTDM_SPAN_STATE_CHANGE); ftdmchan 496 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->detected_tones[FTDM_TONEMAP_CALLWAITING_ACK] = 0; ftdmchan 515 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_STATE_CHANGE); ftdmchan 516 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_clear_flag_locked(ftdmchan->span, FTDM_SPAN_STATE_CHANGE); ftdmchan 517 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_complete_state(ftdmchan); ftdmchan 521 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Executing state handler on %d:%d for %s\n", ftdmchan 522 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->span_id, ftdmchan->chan_id, ftdmchan 523 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_state2str(ftdmchan->state)); ftdmchan 524 src/ftmod/ftmod_analog/ftmod_analog.c switch(ftdmchan->state) { ftdmchan 527 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_use(ftdmchan); ftdmchan 528 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_clear_needed_tones(ftdmchan); ftdmchan 529 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_flush_dtmf(ftdmchan); ftdmchan 531 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->type == FTDM_CHAN_TYPE_FXO && !ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK)) { ftdmchan 532 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_OFFHOOK, NULL); ftdmchan 535 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->fsk_buffer && ftdm_buffer_inuse(ftdmchan->fsk_buffer)) { ftdmchan 536 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Cancel FSK transmit due to early answer.\n"); ftdmchan 537 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_buffer_zero(ftdmchan->fsk_buffer); ftdmchan 540 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->type == FTDM_CHAN_TYPE_FXS && ftdm_test_flag(ftdmchan, FTDM_CHANNEL_RINGING)) { ftdmchan 541 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GENERATE_RING_OFF, NULL); ftdmchan 544 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->token_count == 1) { ftdmchan 545 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_HOLD); ftdmchan 548 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_HOLD)) { ftdmchan 549 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_HOLD); ftdmchan 555 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 561 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_use(ftdmchan); ftdmchan 566 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_use(ftdmchan); ftdmchan 569 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->type == FTDM_CHAN_TYPE_FXO) { ftdmchan 570 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_string(ftdmchan->caller_data.dnis.digits, ftdmchan->chan_number); ftdmchan 572 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_string(ftdmchan->caller_data.dnis.digits, dtmf); ftdmchan 575 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 582 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 588 src/ftmod/ftmod_analog/ftmod_analog.c memset(&ftdmchan->caller_data, 0, sizeof(ftdmchan->caller_data)); ftdmchan 592 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_DIAL]); ftdmchan 598 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->detected_tones[FTDM_TONEMAP_CALLWAITING_ACK] = 0; ftdmchan 599 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->fsk_buffer) { ftdmchan 600 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_buffer_zero(ftdmchan->fsk_buffer); ftdmchan 602 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_buffer_create(&ftdmchan->fsk_buffer, 128, 128, 0); ftdmchan 605 src/ftmod/ftmod_analog/ftmod_analog.c ts.user_data = ftdmchan->fsk_buffer; ftdmchan 606 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_CALLWAITING_SAS]); ftdmchan 607 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_CALLWAITING_CAS]); ftdmchan 615 src/ftmod/ftmod_analog/ftmod_analog.c send_caller_id(ftdmchan); ftdmchan 616 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GENERATE_RING_ON, NULL); ftdmchan 619 src/ftmod/ftmod_analog/ftmod_analog.c sig.chan_id = ftdmchan->chan_id; ftdmchan 620 src/ftmod/ftmod_analog/ftmod_analog.c sig.span_id = ftdmchan->span_id; ftdmchan 621 src/ftmod/ftmod_analog/ftmod_analog.c sig.channel = ftdmchan; ftdmchan 623 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 629 src/ftmod/ftmod_analog/ftmod_analog.c memset(&ftdmchan->caller_data, 0, sizeof(ftdmchan->caller_data)); ftdmchan 630 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_ENABLE_CALLERID_DETECT, NULL); ftdmchan 637 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_RING]); ftdmchan 644 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_NORMAL_CIRCUIT_CONGESTION; ftdmchan 645 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK) && !ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 647 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_BUSY]); ftdmchan 650 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 656 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK) && !ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 658 src/ftmod/ftmod_analog/ftmod_analog.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_ATTN]); ftdmchan 661 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 671 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->state == FTDM_CHANNEL_STATE_DIALTONE || ftdmchan->state == FTDM_CHANNEL_STATE_COLLECT) { ftdmchan 672 src/ftmod/ftmod_analog/ftmod_analog.c if ((dlen = ftdm_channel_dequeue_dtmf(ftdmchan, dtmf + dtmf_offset, sizeof(dtmf) - strlen(dtmf)))) { ftdmchan 674 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->state == FTDM_CHANNEL_STATE_DIALTONE) { ftdmchan 675 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_COLLECT); ftdmchan 682 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_span_send_signal(ftdmchan->span, &sig) == FTDM_BREAK) { ftdmchan 696 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Number obtained [%s]\n", dtmf); ftdmchan 697 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_IDLE); ftdmchan 702 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_channel_wait(ftdmchan, &flags, interval * 2) != FTDM_SUCCESS) { ftdmchan 710 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_channel_read(ftdmchan, frame, &len) != FTDM_SUCCESS) { ftdmchan 711 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "read error [%s]\n", ftdmchan->last_error); ftdmchan 715 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->type == FTDM_CHAN_TYPE_FXO && ftdmchan->detected_tones[0]) { ftdmchan 719 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->detected_tones[i]) { ftdmchan 720 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 724 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->detected_tones[FTDM_TONEMAP_BUSY] || ftdmchan 725 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->detected_tones[FTDM_TONEMAP_FAIL1] || ftdmchan 726 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->detected_tones[FTDM_TONEMAP_FAIL2] || ftdmchan 727 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->detected_tones[FTDM_TONEMAP_FAIL3] || ftdmchan 728 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->detected_tones[FTDM_TONEMAP_ATTN] ftdmchan 730 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "Failure indication detected!\n"); ftdmchan 731 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_BUSY); ftdmchan 732 src/ftmod/ftmod_analog/ftmod_analog.c } else if (ftdmchan->detected_tones[FTDM_TONEMAP_DIAL]) { ftdmchan 733 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_strlen_zero(ftdmchan->caller_data.dnis.digits)) { ftdmchan 734 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "No Digits to send!\n"); ftdmchan 735 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_BUSY); ftdmchan 737 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdm_channel_command(ftdmchan, FTDM_COMMAND_SEND_DTMF, ftdmchan->caller_data.dnis.digits) != FTDM_SUCCESS) { ftdmchan 738 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Send Digits Failed [%s]\n", ftdmchan->last_error); ftdmchan 739 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_BUSY); ftdmchan 742 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->needed_tones[FTDM_TONEMAP_RING] = 1; ftdmchan 743 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->needed_tones[FTDM_TONEMAP_BUSY] = 1; ftdmchan 744 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->needed_tones[FTDM_TONEMAP_FAIL1] = 1; ftdmchan 745 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->needed_tones[FTDM_TONEMAP_FAIL2] = 1; ftdmchan 746 src/ftmod/ftmod_analog/ftmod_analog.c ftdmchan->needed_tones[FTDM_TONEMAP_FAIL3] = 1; ftdmchan 747 src/ftmod/ftmod_analog/ftmod_analog.c dial_timeout = ((ftdmchan->dtmf_on + ftdmchan->dtmf_off) * strlen(ftdmchan->caller_data.dnis.digits)) + 2000; ftdmchan 750 src/ftmod/ftmod_analog/ftmod_analog.c } else if (ftdmchan->detected_tones[FTDM_TONEMAP_RING]) { ftdmchan 751 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 754 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_clear_detected_tones(ftdmchan); ftdmchan 757 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 768 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->type == FTDM_CHAN_TYPE_FXO && !ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK)) { ftdmchan 769 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_OFFHOOK, NULL); ftdmchan 772 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->effective_codec != FTDM_CODEC_SLIN) { ftdmchan 778 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->effective_codec != FTDM_CODEC_SLIN) { ftdmchan 781 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->native_codec == FTDM_CODEC_ULAW) { ftdmchan 783 src/ftmod/ftmod_analog/ftmod_analog.c } else if (ftdmchan->native_codec == FTDM_CODEC_ALAW) { ftdmchan 790 src/ftmod/ftmod_analog/ftmod_analog.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "codec error!"); ftdmchan 795 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_write(ftdmchan, frame, sizeof(frame), &rlen); ftdmchan 801 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->type == FTDM_CHAN_TYPE_FXO && ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK)) { ftdmchan 802 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_ONHOOK, NULL); ftdmchan 805 src/ftmod/ftmod_analog/ftmod_analog.c if (ftdmchan->type == FTDM_CHAN_TYPE_FXS && ftdm_test_flag(ftdmchan, FTDM_CHANNEL_RINGING)) { ftdmchan 806 src/ftmod/ftmod_analog/ftmod_analog.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GENERATE_RING_OFF, NULL); ftdmchan 810 src/ftmod/ftmod_analog/ftmod_analog.c closed_chan = ftdmchan; ftdmchan 811 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_RING || ftdmchan->last_state == FTDM_CHANNEL_STATE_DIALTONE ftdmchan 333 src/ftmod/ftmod_analog_em/ftmod_analog_em.c || ftdmchan->last_state >= FTDM_CHANNEL_STATE_IDLE)) { 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, FTDM_CHANNEL_STATE_CHANGE); ftdmchan 359 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_clear_flag_locked(ftdmchan->span, FTDM_SPAN_STATE_CHANGE); ftdmchan 360 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_complete_state(ftdmchan); ftdmchan 365 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdmchan->span_id, ftdmchan->chan_id, ftdmchan 366 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_state2str(ftdmchan->state)); ftdmchan 367 src/ftmod/ftmod_analog_em/ftmod_analog_em.c switch(ftdmchan->state) { ftdmchan 370 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_use(ftdmchan); ftdmchan 371 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_clear_needed_tones(ftdmchan); ftdmchan 372 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_flush_dtmf(ftdmchan); ftdmchan 374 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OFFHOOK)) { ftdmchan 375 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_OFFHOOK, NULL); ftdmchan 380 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 386 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_use(ftdmchan); ftdmchan 391 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_use(ftdmchan); ftdmchan 393 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 394 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_string(ftdmchan->caller_data.dnis.digits, ftdmchan->chan_number); ftdmchan 396 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_string(ftdmchan->caller_data.dnis.digits, dtmf); ftdmchan 401 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 408 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 414 src/ftmod/ftmod_analog_em/ftmod_analog_em.c memset(&ftdmchan->caller_data, 0, sizeof(ftdmchan->caller_data)); ftdmchan 418 src/ftmod/ftmod_analog_em/ftmod_analog_em.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_DIAL]); ftdmchan 421 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_WINK, NULL); ftdmchan 427 src/ftmod/ftmod_analog_em/ftmod_analog_em.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_RING]); ftdmchan 433 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_NORMAL_CIRCUIT_CONGESTION; ftdmchan 434 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 436 src/ftmod/ftmod_analog_em/ftmod_analog_em.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_BUSY]); ftdmchan 439 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 445 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 447 src/ftmod/ftmod_analog_em/ftmod_analog_em.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_ATTN]); ftdmchan 450 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 460 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdmchan->state == FTDM_CHANNEL_STATE_DIALTONE || ftdmchan->state == FTDM_CHANNEL_STATE_COLLECT) { ftdmchan 461 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if ((dlen = ftdm_channel_dequeue_dtmf(ftdmchan, dtmf + dtmf_offset, sizeof(dtmf) - strlen(dtmf)))) { ftdmchan 463 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdmchan->state == FTDM_CHANNEL_STATE_DIALTONE) { ftdmchan 464 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_COLLECT); ftdmchan 471 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdm_span_send_signal(ftdmchan->span, &sig) == FTDM_BREAK) { ftdmchan 480 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_IDLE); ftdmchan 485 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdm_channel_wait(ftdmchan, &flags, interval * 2) != FTDM_SUCCESS) { ftdmchan 493 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdm_channel_read(ftdmchan, frame, &len) != FTDM_SUCCESS) { ftdmchan 494 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_log(FTDM_LOG_ERROR, "READ ERROR [%s]\n", ftdmchan->last_error); ftdmchan 498 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdmchan->detected_tones[0]) { ftdmchan 502 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdmchan->detected_tones[i]) { ftdmchan 503 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 507 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdmchan->detected_tones[FTDM_TONEMAP_BUSY] || ftdmchan 508 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdmchan->detected_tones[FTDM_TONEMAP_FAIL1] || ftdmchan 509 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdmchan->detected_tones[FTDM_TONEMAP_FAIL2] || ftdmchan 510 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdmchan->detected_tones[FTDM_TONEMAP_FAIL3] || ftdmchan 511 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdmchan->detected_tones[FTDM_TONEMAP_ATTN] ftdmchan 514 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_BUSY); ftdmchan 515 src/ftmod/ftmod_analog_em/ftmod_analog_em.c } else if (ftdmchan->detected_tones[FTDM_TONEMAP_RING]) { ftdmchan 516 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 519 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_clear_detected_tones(ftdmchan); ftdmchan 522 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if ((ftdmchan->dtmf_buffer && ftdm_buffer_inuse(ftdmchan->dtmf_buffer))) { ftdmchan 525 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_write(ftdmchan, frame, sizeof(frame), &rlen); ftdmchan 533 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdmchan->effective_codec != FTDM_CODEC_SLIN) { ftdmchan 539 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdmchan->effective_codec != FTDM_CODEC_SLIN) { ftdmchan 542 src/ftmod/ftmod_analog_em/ftmod_analog_em.c if (ftdmchan->native_codec == FTDM_CODEC_ULAW) { ftdmchan 544 src/ftmod/ftmod_analog_em/ftmod_analog_em.c } else if (ftdmchan->native_codec == FTDM_CODEC_ALAW) { ftdmchan 551 src/ftmod/ftmod_analog_em/ftmod_analog_em.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "codec error!"); ftdmchan 556 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_write(ftdmchan, frame, sizeof(frame), &rlen); ftdmchan 561 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_ONHOOK, NULL); ftdmchan 563 src/ftmod/ftmod_analog_em/ftmod_analog_em.c closed_chan = ftdmchan; ftdmchan 564 src/ftmod/ftmod_analog_em/ftmod_analog_em.c ftdm_channel_close(&ftdmchan); ftdmchan 298 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND); ftdmchan 299 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DIALING); ftdmchan 500 src/ftmod/ftmod_isdn/ftmod_isdn.c *ftdmchan = new_chan; ftdmchan 528 src/ftmod/ftmod_isdn/ftmod_isdn.c *ftdmchan = NULL; ftdmchan 561 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 611 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan = isdn_data->channels_local_crv[gen->CRV]; ftdmchan 613 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan = isdn_data->channels_remote_crv[gen->CRV]; ftdmchan 616 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_log(FTDM_LOG_DEBUG, "ftdmchan %x (%d:%d) source isdn_data->channels_%s_crv[%#hx]\n", ftdmchan, ftdmchan ? ftdmchan->span_id : -1, ftdmchan ? ftdmchan->chan_id : -1, gen->CRVFlag ? "local" : "remote", gen->CRV); ftdmchan 624 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 628 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_SUSPENDED); ftdmchan 629 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_log(FTDM_LOG_DEBUG, "Channel %d:%d in service\n", ftdmchan->span_id, ftdmchan->chan_id); ftdmchan 630 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 635 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_SUSPENDED); ftdmchan 636 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 641 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_SUSPENDED); ftdmchan 642 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 661 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan = span->channels[chan_id]; ftdmchan 663 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 664 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 677 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 678 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan->state == FTDM_CHANNEL_STATE_TERMINATING || ftdmchan->state == FTDM_CHANNEL_STATE_HANGUP) { ftdmchan 680 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); ftdmchan 682 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 685 src/ftmod/ftmod_isdn/ftmod_isdn.c else if((gen->MesType == Q931mes_RELEASE && ftdmchan->state <= FTDM_CHANNEL_STATE_UP) || ftdmchan 686 src/ftmod/ftmod_isdn/ftmod_isdn.c (gen->MesType == Q931mes_RELEASE_COMPLETE && ftdmchan->state == FTDM_CHANNEL_STATE_DIALING)) { ftdmchan 696 src/ftmod/ftmod_isdn/ftmod_isdn.c sig.chan_id = ftdmchan->chan_id; ftdmchan 697 src/ftmod/ftmod_isdn/ftmod_isdn.c sig.span_id = ftdmchan->span_id; ftdmchan 698 src/ftmod/ftmod_isdn/ftmod_isdn.c sig.channel = ftdmchan; ftdmchan 702 src/ftmod/ftmod_isdn/ftmod_isdn.c status = ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 704 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_log(FTDM_LOG_DEBUG, "Received %s in state %s, requested hangup for channel %d:%d\n", what, ftdm_channel_state2str(ftdmchan->state), ftdmchan->span_id, chan_id); ftdmchan 716 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 718 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->caller_data.hangup_cause = cause->Value; ftdmchan 719 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 727 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 728 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA); ftdmchan 736 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 737 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS); ftdmchan 745 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 746 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 765 src/ftmod/ftmod_isdn/ftmod_isdn.c if(ftdmchan && ftdmchan == isdn_data->channels_remote_crv[gen->CRV]) { ftdmchan 767 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->span_id, ftdmchan 768 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->chan_id, ftdmchan 769 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->physical_span_id, ftdmchan 770 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->physical_chan_id, ftdmchan 771 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_state2str(ftdmchan->state)); ftdmchan 775 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan = NULL; ftdmchan 790 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan = zc; ftdmchan 811 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan = span->channels[chan_id]; ftdmchan 828 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan = NULL; ftdmchan 832 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 833 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INUSE) || ftdmchan->state != FTDM_CHANNEL_STATE_DOWN) { ftdmchan 834 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan->state == FTDM_CHANNEL_STATE_DOWN || ftdmchan->state >= FTDM_CHANNEL_STATE_TERMINATING) { ftdmchan 837 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->span_id, ftdmchan 838 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->chan_id, ftdmchan 839 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->physical_span_id, ftdmchan 840 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->physical_chan_id); ftdmchan 843 src/ftmod/ftmod_isdn/ftmod_isdn.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INUSE)) { ftdmchan 849 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INUSE)) { ftdmchan 851 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->span_id, ftdmchan 852 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->chan_id, ftdmchan 853 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->physical_span_id, ftdmchan 854 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->physical_chan_id ftdmchan 856 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan = NULL; ftdmchan 860 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan && ftdmchan->state == FTDM_CHANNEL_STATE_DOWN) { ftdmchan 861 src/ftmod/ftmod_isdn/ftmod_isdn.c isdn_data->channels_remote_crv[gen->CRV] = ftdmchan; ftdmchan 862 src/ftmod/ftmod_isdn/ftmod_isdn.c memset(&ftdmchan->caller_data, 0, sizeof(ftdmchan->caller_data)); ftdmchan 864 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan->mod_data) { ftdmchan 865 src/ftmod/ftmod_isdn/ftmod_isdn.c memset(ftdmchan->mod_data, 0, sizeof(ftdm_isdn_bchan_data_t)); ftdmchan 868 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_string(ftdmchan->caller_data.cid_num.digits, (char *)callingnum->Digit); ftdmchan 869 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_string(ftdmchan->caller_data.cid_name, (char *)callingnum->Digit); ftdmchan 870 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_string(ftdmchan->caller_data.ani.digits, (char *)callingnum->Digit); ftdmchan 872 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_string(ftdmchan->caller_data.dnis.digits, (char *)callednum->Digit); ftdmchan 875 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->caller_data.CRV = gen->CRV; ftdmchan 876 src/ftmod/ftmod_isdn/ftmod_isdn.c if (cplen > sizeof(ftdmchan->caller_data.raw_data)) { ftdmchan 877 src/ftmod/ftmod_isdn/ftmod_isdn.c cplen = sizeof(ftdmchan->caller_data.raw_data); ftdmchan 880 src/ftmod/ftmod_isdn/ftmod_isdn.c memcpy(ftdmchan->caller_data.raw_data, msg, cplen); ftdmchan 881 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->caller_data.raw_data_len = cplen; ftdmchan 905 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 918 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.IntType = FTDM_SPAN_IS_BRI(ftdmchan->span) ? 0 : 1; /* PRI = 1, BRI = 0 */ ftdmchan 919 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 923 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.ChanSlot = (unsigned char)ftdmchan->chan_id; ftdmchan 925 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.InfoChanSel = (unsigned char)ftdmchan->chan_id & 0x03; /* None = 0, B1 = 1, B2 = 2, Any = 3 */ ftdmchan 949 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DIALTONE); ftdmchan 954 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 962 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 964 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS); ftdmchan 972 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 982 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan) { ftdmchan 983 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_log(FTDM_LOG_CRIT, "Received INFORMATION message for channel %d\n", ftdmchan->chan_id); ftdmchan 985 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan->state == FTDM_CHANNEL_STATE_DIALTONE) { ftdmchan 992 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_isdn_bchan_data_t *data = (ftdm_isdn_bchan_data_t *)ftdmchan->mod_data; ftdmchan 1002 src/ftmod/ftmod_isdn/ftmod_isdn.c pos = (int)strlen(ftdmchan->caller_data.dnis.digits); ftdmchan 1003 src/ftmod/ftmod_isdn/ftmod_isdn.c strcat(&ftdmchan->caller_data.dnis.digits[pos], (char *)callednum->Digit); ftdmchan 1008 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 1014 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 1046 src/ftmod/ftmod_isdn/ftmod_isdn.c if(ftdmchan) { ftdmchan 1047 src/ftmod/ftmod_isdn/ftmod_isdn.c switch(ftdmchan->state) { ftdmchan 1156 src/ftmod/ftmod_isdn/ftmod_isdn.c static __inline__ void state_advance(ftdm_channel_t *ftdmchan) ftdmchan 1158 src/ftmod/ftmod_isdn/ftmod_isdn.c Q931mes_Generic *gen = (Q931mes_Generic *) ftdmchan->caller_data.raw_data; ftdmchan 1159 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_isdn_data_t *isdn_data = ftdmchan->span->signal_data; ftdmchan 1164 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->span_id, ftdmchan->chan_id, ftdm_channel_state2str(ftdmchan->state)); ftdmchan 1167 src/ftmod/ftmod_isdn/ftmod_isdn.c sig.chan_id = ftdmchan->chan_id; ftdmchan 1168 src/ftmod/ftmod_isdn/ftmod_isdn.c sig.span_id = ftdmchan->span_id; ftdmchan 1169 src/ftmod/ftmod_isdn/ftmod_isdn.c sig.channel = ftdmchan; ftdmchan 1171 src/ftmod/ftmod_isdn/ftmod_isdn.c switch (ftdmchan->state) { ftdmchan 1175 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1182 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_done(ftdmchan); ftdmchan 1187 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1189 src/ftmod/ftmod_isdn/ftmod_isdn.c if ((status = ftdm_span_send_signal(ftdmchan->span, &sig) != FTDM_SUCCESS)) { ftdmchan 1190 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1196 src/ftmod/ftmod_isdn/ftmod_isdn.c if (FTDM_SPAN_IS_NT(ftdmchan->span)) { ftdmchan 1203 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.IntType = FTDM_SPAN_IS_BRI(ftdmchan->span) ? 0 : 1; /* PRI = 1, BRI = 0 */ ftdmchan 1209 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.ChanSlot = (unsigned char)ftdmchan->chan_id; ftdmchan 1211 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.InfoChanSel = (unsigned char)ftdmchan->chan_id & 0x03; /* None = 0, B1 = 1, B2 = 2, Any = 3 */ ftdmchan 1222 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_isdn_bchan_data_t *data = (ftdm_isdn_bchan_data_t *)ftdmchan->mod_data; ftdmchan 1231 src/ftmod/ftmod_isdn/ftmod_isdn.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1233 src/ftmod/ftmod_isdn/ftmod_isdn.c if ((status = ftdm_span_send_signal(ftdmchan->span, &sig) != FTDM_SUCCESS)) { ftdmchan 1234 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1241 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_NORMAL_UNSPECIFIED; ftdmchan 1243 src/ftmod/ftmod_isdn/ftmod_isdn.c status = ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 1244 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 1249 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1251 src/ftmod/ftmod_isdn/ftmod_isdn.c if ((status = ftdm_span_send_signal(ftdmchan->span, &sig) != FTDM_SUCCESS)) { ftdmchan 1252 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1255 src/ftmod/ftmod_isdn/ftmod_isdn.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OPEN)) { ftdmchan 1256 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 1257 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1269 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1271 src/ftmod/ftmod_isdn/ftmod_isdn.c if ((status = ftdm_span_send_signal(ftdmchan->span, &sig) != FTDM_SUCCESS)) { ftdmchan 1272 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1275 src/ftmod/ftmod_isdn/ftmod_isdn.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OPEN)) { ftdmchan 1276 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 1277 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1284 src/ftmod/ftmod_isdn/ftmod_isdn.c Q931Rx43(&isdn_data->q931, (void *)gen, ftdmchan->caller_data.raw_data_len); ftdmchan 1304 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_command(ftdmchan->span->channels[ftdmchan->chan_id], FTDM_COMMAND_GET_NATIVE_CODEC, &codec); ftdmchan 1329 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.IntType = FTDM_SPAN_IS_BRI(ftdmchan->span) ? 0 : 1; /* PRI = 1, BRI = 0 */ ftdmchan 1330 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 1334 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.ChanSlot = (unsigned char)ftdmchan->chan_id; ftdmchan 1336 src/ftmod/ftmod_isdn/ftmod_isdn.c ChanID.InfoChanSel = (unsigned char)ftdmchan->chan_id & 0x03; /* None = 0, B1 = 1, B2 = 2, Any = 3 */ ftdmchan 1354 src/ftmod/ftmod_isdn/ftmod_isdn.c Display.Size = Display.Size + (unsigned char)strlen(ftdmchan->caller_data.cid_name); ftdmchan 1357 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_copy_string((char *)ptrDisplay->Display, ftdmchan->caller_data.cid_name, strlen(ftdmchan->caller_data.cid_name)+1); ftdmchan 1364 src/ftmod/ftmod_isdn/ftmod_isdn.c CallingNum.TypNum = ftdmchan->caller_data.ani.type; ftdmchan 1368 src/ftmod/ftmod_isdn/ftmod_isdn.c CallingNum.Size = CallingNum.Size + (unsigned char)strlen(ftdmchan->caller_data.cid_num.digits); ftdmchan 1371 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_copy_string((char *)ptrCallingNum->Digit, ftdmchan->caller_data.cid_num.digits, strlen(ftdmchan->caller_data.cid_num.digits)+1); ftdmchan 1377 src/ftmod/ftmod_isdn/ftmod_isdn.c CalledNum.TypNum = ftdmchan->caller_data.dnis.type; ftdmchan 1379 src/ftmod/ftmod_isdn/ftmod_isdn.c CalledNum.Size = CalledNum.Size + (unsigned char)strlen(ftdmchan->caller_data.dnis.digits); ftdmchan 1382 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_copy_string((char *)ptrCalledNum->Digit, ftdmchan->caller_data.dnis.digits, strlen(ftdmchan->caller_data.dnis.digits)+1); ftdmchan 1395 src/ftmod/ftmod_isdn/ftmod_isdn.c isdn_data->channels_local_crv[gen->CRV] = ftdmchan; ftdmchan 1401 src/ftmod/ftmod_isdn/ftmod_isdn.c if(ftdmchan->last_state == FTDM_CHANNEL_STATE_HANGUP) { ftdmchan 1406 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 1413 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 1415 src/ftmod/ftmod_isdn/ftmod_isdn.c gen->CRVFlag = ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND) ? 0 : 1; ftdmchan 1427 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan->last_state == FTDM_CHANNEL_STATE_RING) { ftdmchan 1435 src/ftmod/ftmod_isdn/ftmod_isdn.c cause.Value = (unsigned char) ftdmchan->caller_data.hangup_cause; ftdmchan 1442 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 1444 src/ftmod/ftmod_isdn/ftmod_isdn.c else if (ftdmchan->last_state <= FTDM_CHANNEL_STATE_PROGRESS) { ftdmchan 1450 src/ftmod/ftmod_isdn/ftmod_isdn.c cause.Value = (unsigned char) ftdmchan->caller_data.hangup_cause; ftdmchan 1464 src/ftmod/ftmod_isdn/ftmod_isdn.c cause.Value = (unsigned char) ftdmchan->caller_data.hangup_cause; ftdmchan 1473 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 1476 src/ftmod/ftmod_isdn/ftmod_isdn.c status = ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 1478 src/ftmod/ftmod_isdn/ftmod_isdn.c gen->CRVFlag = ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND) ? 0 : 1; ftdmchan 1661 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_t *ftdmchan = span->channels[x]; ftdmchan 1664 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan->type == FTDM_CHAN_TYPE_DQ921) { ftdmchan 1673 src/ftmod/ftmod_isdn/ftmod_isdn.c switch (ftdmchan->state) { ftdmchan 1676 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_isdn_bchan_data_t *data = (ftdm_isdn_bchan_data_t *)ftdmchan->mod_data; ftdmchan 1680 src/ftmod/ftmod_isdn/ftmod_isdn.c if (strlen(ftdmchan->caller_data.dnis.digits) > 0) { ftdmchan 1682 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 1686 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_RECOVERY_ON_TIMER_EXPIRE; /* TODO: probably wrong cause value */ ftdmchan 1687 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1693 src/ftmod/ftmod_isdn/ftmod_isdn.c if (last_chan_state != ftdmchan->state) { ftdmchan 1695 src/ftmod/ftmod_isdn/ftmod_isdn.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_DIAL]); ftdmchan 1696 src/ftmod/ftmod_isdn/ftmod_isdn.c last_chan_state = ftdmchan->state; ftdmchan 1703 src/ftmod/ftmod_isdn/ftmod_isdn.c if (last_chan_state != ftdmchan->state) { ftdmchan 1705 src/ftmod/ftmod_isdn/ftmod_isdn.c teletone_run(&ts, ftdmchan->span->tone_map[FTDM_TONEMAP_RING]); ftdmchan 1706 src/ftmod/ftmod_isdn/ftmod_isdn.c last_chan_state = ftdmchan->state; ftdmchan 1715 src/ftmod/ftmod_isdn/ftmod_isdn.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OPEN)) { ftdmchan 1716 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 1717 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1720 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_log(FTDM_LOG_NOTICE, "Successfully opened channel %d:%d\n", ftdmchan->span_id, ftdmchan->chan_id); ftdmchan 1725 src/ftmod/ftmod_isdn/ftmod_isdn.c status = ftdm_channel_wait(ftdmchan, &flags, (gated) ? 0 : interval); ftdmchan 1741 src/ftmod/ftmod_isdn/ftmod_isdn.c status = ftdm_channel_read(ftdmchan, frame, &len); ftdmchan 1746 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan->effective_codec != FTDM_CODEC_SLIN) { ftdmchan 1755 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan->effective_codec != FTDM_CODEC_SLIN) { ftdmchan 1758 src/ftmod/ftmod_isdn/ftmod_isdn.c if (ftdmchan->native_codec == FTDM_CODEC_ULAW) { ftdmchan 1760 src/ftmod/ftmod_isdn/ftmod_isdn.c } else if (ftdmchan->native_codec == FTDM_CODEC_ALAW) { ftdmchan 1767 src/ftmod/ftmod_isdn/ftmod_isdn.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "codec error!"); ftdmchan 1771 src/ftmod/ftmod_isdn/ftmod_isdn.c ftdm_channel_write(ftdmchan, frame, sizeof(frame), &rlen); ftdmchan 57 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_libpri_data_t *isdn_data = ftdmchan->span->signal_data; ftdmchan 91 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND); ftdmchan 92 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DIALING); ftdmchan 457 src/ftmod/ftmod_libpri/ftmod_libpri.c static __inline__ void state_advance(ftdm_channel_t *ftdmchan) ftdmchan 460 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_libpri_data_t *isdn_data = ftdmchan->span->signal_data; ftdmchan 463 src/ftmod/ftmod_libpri/ftmod_libpri.c q931_call *call = (q931_call *) ftdmchan->call_data; ftdmchan 467 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdmchan->span_id, ftdmchan->chan_id, ftdm_channel_state2str(ftdmchan->state)); ftdmchan 471 src/ftmod/ftmod_libpri/ftmod_libpri.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND) && !call) { ftdmchan 478 src/ftmod/ftmod_libpri/ftmod_libpri.c sig.chan_id = ftdmchan->chan_id; ftdmchan 479 src/ftmod/ftmod_libpri/ftmod_libpri.c sig.span_id = ftdmchan->span_id; ftdmchan 480 src/ftmod/ftmod_libpri/ftmod_libpri.c sig.channel = ftdmchan; ftdmchan 483 src/ftmod/ftmod_libpri/ftmod_libpri.c switch (ftdmchan->state) { ftdmchan 486 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdmchan->call_data = NULL; ftdmchan 487 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_channel_done(ftdmchan); ftdmchan 492 src/ftmod/ftmod_libpri/ftmod_libpri.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 494 src/ftmod/ftmod_libpri/ftmod_libpri.c if ((status = ftdm_span_send_signal(ftdmchan->span, &sig) != FTDM_SUCCESS)) { ftdmchan 495 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 498 src/ftmod/ftmod_libpri/ftmod_libpri.c pri_progress(isdn_data->spri.pri, call, ftdmchan->chan_id, 1); ftdmchan 500 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 506 src/ftmod/ftmod_libpri/ftmod_libpri.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 508 src/ftmod/ftmod_libpri/ftmod_libpri.c if ((status = ftdm_span_send_signal(ftdmchan->span, &sig) != FTDM_SUCCESS)) { ftdmchan 509 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 512 src/ftmod/ftmod_libpri/ftmod_libpri.c pri_proceeding(isdn_data->spri.pri, call, ftdmchan->chan_id, 1); ftdmchan 514 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 520 src/ftmod/ftmod_libpri/ftmod_libpri.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 522 src/ftmod/ftmod_libpri/ftmod_libpri.c pri_acknowledge(isdn_data->spri.pri, call, ftdmchan->chan_id, 0); ftdmchan 524 src/ftmod/ftmod_libpri/ftmod_libpri.c if ((status = ftdm_span_send_signal(ftdmchan->span, &sig) != FTDM_SUCCESS)) { ftdmchan 525 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 528 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 535 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_NORMAL_UNSPECIFIED; ftdmchan 537 src/ftmod/ftmod_libpri/ftmod_libpri.c status = ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 538 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 543 src/ftmod/ftmod_libpri/ftmod_libpri.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 545 src/ftmod/ftmod_libpri/ftmod_libpri.c if ((status = ftdm_span_send_signal(ftdmchan->span, &sig) != FTDM_SUCCESS)) { ftdmchan 546 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 551 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 561 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 566 src/ftmod/ftmod_libpri/ftmod_libpri.c dp = ftdmchan->caller_data.dnis.type; ftdmchan 581 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdmchan->call_data = call; ftdmchan 584 src/ftmod/ftmod_libpri/ftmod_libpri.c pri_sr_set_channel(sr, ftdmchan->chan_id, 0, 0); ftdmchan 586 src/ftmod/ftmod_libpri/ftmod_libpri.c pri_sr_set_called(sr, ftdmchan->caller_data.dnis.digits, dp, 1); ftdmchan 587 src/ftmod/ftmod_libpri/ftmod_libpri.c pri_sr_set_caller(sr, ftdmchan->caller_data.cid_num.digits, (isdn_data->opts & FTMOD_LIBPRI_OPT_OMIT_DISPLAY_IE ? NULL : ftdmchan->caller_data.cid_name), ftdmchan 588 src/ftmod/ftmod_libpri/ftmod_libpri.c dp, (ftdmchan->caller_data.pres != 1 ? PRES_ALLOWED_USER_NUMBER_PASSED_SCREEN : PRES_PROHIB_USER_NUMBER_NOT_SCREENED)); ftdmchan 591 src/ftmod/ftmod_libpri/ftmod_libpri.c pri_sr_set_redirecting(sr, ftdmchan->caller_data.cid_num.digits, dp, PRES_ALLOWED_USER_NUMBER_PASSED_SCREEN, PRI_REDIR_UNCONDITIONAL); ftdmchan 595 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_DESTINATION_OUT_OF_ORDER; ftdmchan 596 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 606 src/ftmod/ftmod_libpri/ftmod_libpri.c pri_hangup(isdn_data->spri.pri, call, ftdmchan->caller_data.hangup_cause); ftdmchan 608 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdmchan->call_data = NULL; ftdmchan 610 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 618 src/ftmod/ftmod_libpri/ftmod_libpri.c status = ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 681 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 683 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdmchan = span->channels[pevent->hangup.channel]; ftdmchan 685 src/ftmod/ftmod_libpri/ftmod_libpri.c if (!ftdmchan) { ftdmchan 690 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_channel_lock(ftdmchan); ftdmchan 692 src/ftmod/ftmod_libpri/ftmod_libpri.c if (ftdmchan->state >= FTDM_CHANNEL_STATE_TERMINATING) { ftdmchan 693 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Ignoring remote hangup in state %s\n", ftdm_channel_state2str(ftdmchan->state)); ftdmchan 697 src/ftmod/ftmod_libpri/ftmod_libpri.c if (!ftdmchan->call_data) { ftdmchan 698 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Ignoring remote hangup in state %s with no call data\n", ftdm_channel_state2str(ftdmchan->state)); ftdmchan 702 src/ftmod/ftmod_libpri/ftmod_libpri.c call = (q931_call *) ftdmchan->call_data; ftdmchan 704 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdmchan->caller_data.hangup_cause = pevent->hangup.cause; ftdmchan 707 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdmchan->call_data = NULL; ftdmchan 708 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 712 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_channel_unlock(ftdmchan); ftdmchan 727 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 729 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdmchan = span->channels[pevent->answer.channel]; ftdmchan 731 src/ftmod/ftmod_libpri/ftmod_libpri.c if (ftdmchan) { ftdmchan 733 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 735 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_log(FTDM_LOG_DEBUG, "-- Answer on channel %d:%d %s but it's not in use?\n", spri->span->span_id, pevent->answer.channel, ftdmchan->chan_id); ftdmchan 752 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 754 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdmchan = span->channels[pevent->proceeding.channel]; ftdmchan 756 src/ftmod/ftmod_libpri/ftmod_libpri.c if (ftdmchan) { ftdmchan 758 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA); ftdmchan 761 src/ftmod/ftmod_libpri/ftmod_libpri.c pevent->proceeding.channel, ftdmchan->chan_id); ftdmchan 777 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 779 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdmchan = span->channels[pevent->ringing.channel]; ftdmchan 781 src/ftmod/ftmod_libpri/ftmod_libpri.c if (ftdmchan) { ftdmchan 784 src/ftmod/ftmod_libpri/ftmod_libpri.c if (ftdmchan->state == FTDM_CHANNEL_STATE_PROGRESS_MEDIA) { ftdmchan 788 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS); ftdmchan 791 src/ftmod/ftmod_libpri/ftmod_libpri.c pevent->ringing.channel, ftdmchan->chan_id); ftdmchan 807 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 812 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdmchan = span->channels[pevent->ring.channel]; ftdmchan 813 src/ftmod/ftmod_libpri/ftmod_libpri.c if (!ftdmchan || ftdmchan->state != FTDM_CHANNEL_STATE_DOWN || ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INUSE)) { ftdmchan 819 src/ftmod/ftmod_libpri/ftmod_libpri.c if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 829 src/ftmod/ftmod_libpri/ftmod_libpri.c memset(&ftdmchan->caller_data, 0, sizeof(ftdmchan->caller_data)); ftdmchan 831 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_string(ftdmchan->caller_data.cid_num.digits, (char *)pevent->ring.callingnum); ftdmchan 833 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_string(ftdmchan->caller_data.cid_name, (char *)pevent->ring.callingname); ftdmchan 835 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_string(ftdmchan->caller_data.cid_name, (char *)pevent->ring.callingnum); ftdmchan 837 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_string(ftdmchan->caller_data.ani.digits, (char *)pevent->ring.callingani); ftdmchan 838 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_string(ftdmchan->caller_data.dnis.digits, (char *)pevent->ring.callednum); ftdmchan 841 src/ftmod/ftmod_libpri/ftmod_libpri.c snprintf(ftdmchan->caller_data.aniII, 5, "%.2d", pevent->ring.ani2); ftdmchan 845 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdmchan->call_data = pevent->ring.call; ftdmchan 847 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 967 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_channel_t *ftdmchan; ftdmchan 972 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdmchan = span->channels[pevent->restart.channel]; ftdmchan 974 src/ftmod/ftmod_libpri/ftmod_libpri.c if (!ftdmchan) { ftdmchan 979 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_all(ftdmchan->span, FTDM_CHANNEL_STATE_RESTART); ftdmchan 981 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 998 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1007 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdmchan = spri->span->channels[i]; ftdmchan 1009 src/ftmod/ftmod_libpri/ftmod_libpri.c sig.chan_id = ftdmchan->chan_id; ftdmchan 1010 src/ftmod/ftmod_libpri/ftmod_libpri.c sig.span_id = ftdmchan->span_id; ftdmchan 1011 src/ftmod/ftmod_libpri/ftmod_libpri.c sig.channel = ftdmchan; ftdmchan 1031 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1041 src/ftmod/ftmod_libpri/ftmod_libpri.c ftdmchan = spri->span->channels[i]; ftdmchan 1043 src/ftmod/ftmod_libpri/ftmod_libpri.c sig.chan_id = ftdmchan->chan_id; ftdmchan 1044 src/ftmod/ftmod_libpri/ftmod_libpri.c sig.span_id = ftdmchan->span_id; ftdmchan 1045 src/ftmod/ftmod_libpri/ftmod_libpri.c sig.channel = ftdmchan; 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->mod_data; ftdmchan 683 src/ftmod/ftmod_pika/ftmod_pika.c pika_chan_data_t *chan_data = (pika_chan_data_t *) ftdmchan->mod_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->mod_data; ftdmchan 757 src/ftmod/ftmod_pika/ftmod_pika.c pika_chan_data_t *chan_data = (pika_chan_data_t *) ftdmchan->mod_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->mod_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->mod_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->mod_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->mod_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->mod_data; ftdmchan 1228 src/ftmod/ftmod_pika/ftmod_pika.c pika_span_data_t *span_data = (pika_span_data_t *) ftdmchan->span->mod_data; ftdmchan 1243 src/ftmod/ftmod_pika/ftmod_pika.c switch(ftdmchan->type) { ftdmchan 268 src/ftmod/ftmod_pritap/ftmod_pritap.c static __inline__ void 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 switch (ftdmchan->state) { ftdmchan 284 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_channel_done(ftdmchan); ftdmchan 285 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdmchan->call_data = NULL; ftdmchan 301 src/ftmod/ftmod_pritap/ftmod_pritap.c if ((status = ftdm_span_send_signal(ftdmchan->span, &sig) != FTDM_SUCCESS)) { ftdmchan 302 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 309 src/ftmod/ftmod_pritap/ftmod_pritap.c if (ftdmchan->last_state != FTDM_CHANNEL_STATE_HANGUP) { ftdmchan 311 src/ftmod/ftmod_pritap/ftmod_pritap.c status = ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 313 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 319 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 752 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 756 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_channel_t *peerchan = ftdmchan->call_data; ftdmchan 763 src/ftmod/ftmod_pritap/ftmod_pritap.c if (!FTDM_IS_VOICE_CHANNEL(ftdmchan) || !ftdmchan->call_data) { ftdmchan 767 src/ftmod/ftmod_pritap/ftmod_pritap.c if (ftdmchan->native_codec != peerchan->native_codec) { ftdmchan 768 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Invalid peer channel with format %d, ours = %d\n", ftdmchan 769 src/ftmod/ftmod_pritap/ftmod_pritap.c peerchan->native_codec, ftdmchan->native_codec); ftdmchan 776 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "Failed to read from peer channel!\n"); ftdmchan 780 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "read from peer channel only %d bytes!\n", sizeread); ftdmchan 49 src/ftmod/ftmod_r2/ftmod_r2.c #define R2CALL(ftdmchan) ((ftdm_r2_call_t*)((ftdmchan)->call_data)) ftdmchan 138 src/ftmod/ftmod_r2/ftmod_r2.c static void ft_r2_accept_call(ftdm_channel_t *ftdmchan) ftdmchan 140 src/ftmod/ftmod_r2/ftmod_r2.c openr2_chan_t *r2chan = R2CALL(ftdmchan)->r2chan; ftdmchan 146 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->accepted = 1; ftdmchan 149 src/ftmod/ftmod_r2/ftmod_r2.c static void ft_r2_answer_call(ftdm_channel_t *ftdmchan) ftdmchan 151 src/ftmod/ftmod_r2/ftmod_r2.c openr2_chan_t *r2chan = R2CALL(ftdmchan)->r2chan; ftdmchan 157 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->answer_pending = 0; ftdmchan 163 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 166 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_wait_for_flag_cleared(ftdmchan, FTDM_CHANNEL_INTHREAD, 200); ftdmchan 168 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INTHREAD)) { ftdmchan 170 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->span_id, ftdmchan->chan_id); ftdmchan 171 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 175 src/ftmod/ftmod_r2/ftmod_r2.c ft_r2_clean_call(ftdmchan->call_data); ftdmchan 176 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->chanstate = FTDM_CHANNEL_STATE_DOWN; ftdmchan 177 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DIALING); ftdmchan 178 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND); ftdmchan 179 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->ftdm_started = 1; ftdmchan 180 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 182 src/ftmod/ftmod_r2/ftmod_r2.c status = ftdm_thread_create_detached(ftdm_r2_channel_run, ftdmchan); ftdmchan 185 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->span_id, ftdmchan->chan_id); ftdmchan 186 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_done(ftdmchan); ftdmchan 203 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 207 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 209 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdmchan->state != FTDM_CHANNEL_STATE_DOWN) { ftdmchan 211 src/ftmod/ftmod_r2/ftmod_r2.c openr2_chan_get_number(r2chan), ftdmchan->state); ftdmchan 212 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 217 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_wait_for_flag_cleared(ftdmchan, FTDM_CHANNEL_INTHREAD, 200); ftdmchan 219 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INTHREAD)) { ftdmchan 222 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 225 src/ftmod/ftmod_r2/ftmod_r2.c ft_r2_clean_call(ftdmchan->call_data); ftdmchan 226 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->chanstate = FTDM_CHANNEL_STATE_DOWN; ftdmchan 227 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_COLLECT); ftdmchan 228 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 230 src/ftmod/ftmod_r2/ftmod_r2.c status = ftdm_thread_create_detached(ftdm_r2_channel_run, ftdmchan); ftdmchan 241 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 248 src/ftmod/ftmod_r2/ftmod_r2.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 249 src/ftmod/ftmod_r2/ftmod_r2.c sigev.span_id = ftdmchan->span_id; ftdmchan 250 src/ftmod/ftmod_r2/ftmod_r2.c sigev.channel = ftdmchan; ftdmchan 253 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdm_span_send_signal(ftdmchan->span, &sigev) != FTDM_SUCCESS) { ftdmchan 256 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_CANCEL); ftdmchan 259 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_use(ftdmchan); ftdmchan 260 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->ftdm_started = 1; ftdmchan 265 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 270 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->state_ack_pending = 1; ftdmchan 271 src/ftmod/ftmod_r2/ftmod_r2.c if (R2CALL(ftdmchan)->answer_pending) { ftdmchan 273 src/ftmod/ftmod_r2/ftmod_r2.c ft_r2_answer_call(ftdmchan); ftdmchan 277 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS); ftdmchan 283 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 287 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 296 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 299 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log(FTDM_LOG_DEBUG, "Got openr2 disconnection, clearing call on channel %d\n", ftdmchan->physical_chan_id); ftdmchan 301 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->disconnect_rcvd = 1; ftdmchan 307 src/ftmod/ftmod_r2/ftmod_r2.c if (!R2CALL(ftdmchan)->ftdm_started) { ftdmchan 308 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 313 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_NORMAL_CLEARING; ftdmchan 317 src/ftmod/ftmod_r2/ftmod_r2.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 318 src/ftmod/ftmod_r2/ftmod_r2.c sigev.span_id = ftdmchan->span_id; ftdmchan 319 src/ftmod/ftmod_r2/ftmod_r2.c sigev.channel = ftdmchan; ftdmchan 321 src/ftmod/ftmod_r2/ftmod_r2.c r2data = ftdmchan->span->signal_data; ftdmchan 323 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 328 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 331 src/ftmod/ftmod_r2/ftmod_r2.c if (!R2CALL(ftdmchan)->disconnect_rcvd) { ftdmchan 332 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 356 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 360 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->disconnect_rcvd = 1; ftdmchan 362 src/ftmod/ftmod_r2/ftmod_r2.c if (!R2CALL(ftdmchan)->ftdm_started) { ftdmchan 363 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 367 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_PROTOCOL_ERROR; ftdmchan 371 src/ftmod/ftmod_r2/ftmod_r2.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 372 src/ftmod/ftmod_r2/ftmod_r2.c sigev.span_id = ftdmchan->span_id; ftdmchan 373 src/ftmod/ftmod_r2/ftmod_r2.c sigev.channel = ftdmchan; ftdmchan 375 src/ftmod/ftmod_r2/ftmod_r2.c r2data = ftdmchan->span->signal_data; ftdmchan 377 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 442 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 443 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_size_t collected_len = R2CALL(ftdmchan)->dnis_index; ftdmchan 448 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->caller_data.dnis.digits[collected_len] = digit; ftdmchan 450 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->caller_data.dnis.digits[collected_len] = '\0'; ftdmchan 451 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->dnis_index = collected_len; ftdmchan 455 src/ftmod/ftmod_r2/ftmod_r2.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 456 src/ftmod/ftmod_r2/ftmod_r2.c sigev.span_id = ftdmchan->span_id; ftdmchan 457 src/ftmod/ftmod_r2/ftmod_r2.c sigev.channel = ftdmchan; ftdmchan 459 src/ftmod/ftmod_r2/ftmod_r2.c r2data = ftdmchan->span->signal_data; ftdmchan 460 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdm_span_send_signal(ftdmchan->span, &sigev) == FTDM_BREAK) { ftdmchan 461 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log(FTDM_LOG_NOTICE, "Requested to stop getting DNIS. Current DNIS = %s on chan %d\n", ftdmchan->caller_data.dnis.digits, openr2_chan_get_number(r2chan)); ftdmchan 466 src/ftmod/ftmod_r2/ftmod_r2.c if (collected_len == (sizeof(ftdmchan->caller_data.dnis.digits) - 1)) { ftdmchan 467 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log(FTDM_LOG_NOTICE, "No more room for DNIS. Current DNIS = %s on chan %d\n", ftdmchan->caller_data.dnis.digits, openr2_chan_get_number(r2chan)); ftdmchan 476 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = openr2_chan_get_client_data(r2chan); ftdmchan 477 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_size_t collected_len = R2CALL(ftdmchan)->ani_index; ftdmchan 480 src/ftmod/ftmod_r2/ftmod_r2.c if (collected_len == (sizeof(ftdmchan->caller_data.ani.digits) - 1)) { ftdmchan 487 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->caller_data.ani.digits[collected_len++] = digit; ftdmchan 488 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->caller_data.ani.digits[collected_len] = '\0'; ftdmchan 910 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_t *ftdmchan = (ftdm_channel_t *)obj; ftdmchan 911 src/ftmod/ftmod_r2/ftmod_r2.c openr2_chan_t *r2chan = R2CALL(ftdmchan)->r2chan; ftdmchan 913 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_INTHREAD); ftdmchan 920 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->physical_chan_id, ftdmchan 921 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_state2str(ftdmchan->state)); ftdmchan 923 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 924 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log(FTDM_LOG_ERROR, "OPEN ERROR [%s]\n", ftdmchan->last_error); ftdmchan 928 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_GET_INTERVAL, &interval); ftdmchan 931 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log(FTDM_LOG_DEBUG, "Got %d interval for chan %d\n", interval, ftdmchan->physical_chan_id); ftdmchan 933 src/ftmod/ftmod_r2/ftmod_r2.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 935 src/ftmod/ftmod_r2/ftmod_r2.c memset(ftdmchan->caller_data.dnis.digits, 0, sizeof(ftdmchan->caller_data.collected)); ftdmchan 936 src/ftmod/ftmod_r2/ftmod_r2.c memset(ftdmchan->caller_data.ani.digits, 0, sizeof(ftdmchan->caller_data.collected)); ftdmchan 940 src/ftmod/ftmod_r2/ftmod_r2.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 941 src/ftmod/ftmod_r2/ftmod_r2.c sigev.span_id = ftdmchan->span_id; ftdmchan 942 src/ftmod/ftmod_r2/ftmod_r2.c sigev.channel = ftdmchan; ftdmchan 948 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE) && (R2CALL(ftdmchan)->chanstate != ftdmchan->state)) { ftdmchan 950 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log(FTDM_LOG_DEBUG, "Executing state handler on %d:%d for %s\n", ftdmchan->span_id, ftdmchan->chan_id, ftdm_channel_state2str(ftdmchan->state)); ftdmchan 951 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->chanstate = ftdmchan->state; ftdmchan 953 src/ftmod/ftmod_r2/ftmod_r2.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND) && !R2CALL(ftdmchan)->accepted && ftdmchan 954 src/ftmod/ftmod_r2/ftmod_r2.c (ftdmchan->state == FTDM_CHANNEL_STATE_PROGRESS || ftdmchan 955 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->state == FTDM_CHANNEL_STATE_PROGRESS_MEDIA || ftdmchan 956 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->state == FTDM_CHANNEL_STATE_UP) ) { ftdmchan 961 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log(FTDM_LOG_DEBUG, "State ack in chan %d:%d for state %s will have to wait a bit\n", ftdmchan->span_id, ftdmchan->chan_id, ftdm_channel_state2str(ftdmchan->state)); ftdmchan 962 src/ftmod/ftmod_r2/ftmod_r2.c } else if (ftdmchan->state != FTDM_CHANNEL_STATE_DOWN){ ftdmchan 964 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_STATE_CHANGE); ftdmchan 965 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_complete_state(ftdmchan); ftdmchan 968 src/ftmod/ftmod_r2/ftmod_r2.c switch (ftdmchan->state) { ftdmchan 973 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log(FTDM_LOG_DEBUG, "COLLECT: Starting processing of incoming call in channel %d with interval %d\n", ftdmchan->physical_chan_id, interval); ftdmchan 981 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_use(ftdmchan); ftdmchan 982 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log(FTDM_LOG_DEBUG, "DIALING: Starting processing of outgoing call in channel %d with interval %d\n", ftdmchan->physical_chan_id, interval); ftdmchan 983 src/ftmod/ftmod_r2/ftmod_r2.c if (openr2_chan_make_call(r2chan, ftdmchan->caller_data.cid_num.digits, ftdmchan->caller_data.dnis.digits, OR2_CALLING_PARTY_CATEGORY_NATIONAL_SUBSCRIBER)) { ftdmchan 984 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log(FTDM_LOG_ERROR, "%d:%d Failed to make call in R2 channel, openr2_chan_make_call failed\n", ftdmchan->span_id, ftdmchan->chan_id); ftdmchan 985 src/ftmod/ftmod_r2/ftmod_r2.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_DESTINATION_OUT_OF_ORDER; ftdmchan 986 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 995 src/ftmod/ftmod_r2/ftmod_r2.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 996 src/ftmod/ftmod_r2/ftmod_r2.c if (!R2CALL(ftdmchan)->accepted) { ftdmchan 997 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log(FTDM_LOG_DEBUG, "PROGRESS: Accepting call on channel %d\n", ftdmchan->physical_chan_id); ftdmchan 998 src/ftmod/ftmod_r2/ftmod_r2.c ft_r2_accept_call(ftdmchan); ftdmchan 1001 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log(FTDM_LOG_DEBUG, "PROGRESS: Notifying progress in channel %d\n", ftdmchan->physical_chan_id); ftdmchan 1003 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdm_span_send_signal(ftdmchan->span, &sigev) != FTDM_SUCCESS) { ftdmchan 1004 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1013 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log(FTDM_LOG_DEBUG, "UP: Call was answered on channel %d\n", ftdmchan->physical_chan_id); ftdmchan 1014 src/ftmod/ftmod_r2/ftmod_r2.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1015 src/ftmod/ftmod_r2/ftmod_r2.c if (!R2CALL(ftdmchan)->accepted) { ftdmchan 1018 src/ftmod/ftmod_r2/ftmod_r2.c ft_r2_accept_call(ftdmchan); ftdmchan 1019 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->answer_pending = 1; ftdmchan 1021 src/ftmod/ftmod_r2/ftmod_r2.c ft_r2_answer_call(ftdmchan); ftdmchan 1024 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log(FTDM_LOG_DEBUG, "UP: Notifying of call answered in channel %d\n", ftdmchan->physical_chan_id); ftdmchan 1026 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdm_span_send_signal(ftdmchan->span, &sigev) != FTDM_SUCCESS) { ftdmchan 1027 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1037 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log(FTDM_LOG_DEBUG, "HANGUP: Clearing call on channel %d\n", ftdmchan->physical_chan_id); ftdmchan 1038 src/ftmod/ftmod_r2/ftmod_r2.c if (!R2CALL(ftdmchan)->disconnect_rcvd) { ftdmchan 1044 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 1052 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log(FTDM_LOG_DEBUG, "CANCEL: Unable to receive call on channel %d\n", ftdmchan->physical_chan_id); ftdmchan 1060 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log(FTDM_LOG_DEBUG, "DOWN: Placing channel %d back to the pool of available channels\n", ftdmchan->physical_chan_id); ftdmchan 1061 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_done(ftdmchan); ftdmchan 1068 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log(FTDM_LOG_ERROR, "%s: Unhandled channel state change in channel %d\n", ftdm_channel_state2str(ftdmchan->state), ftdmchan->physical_chan_id); ftdmchan 1076 src/ftmod/ftmod_r2/ftmod_r2.c if (ftdm_channel_wait(ftdmchan, &flags, interval * 2) != FTDM_SUCCESS) { ftdmchan 1090 src/ftmod/ftmod_r2/ftmod_r2.c if (R2CALL(ftdmchan)->state_ack_pending) { ftdmchan 1091 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_STATE_CHANGE); ftdmchan 1092 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_channel_complete_state(ftdmchan); ftdmchan 1093 src/ftmod/ftmod_r2/ftmod_r2.c R2CALL(ftdmchan)->state_ack_pending = 0; ftdmchan 1104 src/ftmod/ftmod_r2/ftmod_r2.c closed_chan = ftdmchan; ftdmchan 1106 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_INTHREAD); ftdmchan 1107 src/ftmod/ftmod_r2/ftmod_r2.c ftdm_log(FTDM_LOG_DEBUG, "R2 channel %d thread ended.\n", ftdmchan->physical_chan_id); 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_done(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 advance_chan_states(ftdm_channel_t *ftdmchan); ftdmchan 955 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c static __inline__ void stop_loop(ftdm_channel_t *ftdmchan); ftdmchan 965 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 971 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (!(ftdmchan = find_ftdmchan(span, (sangomabc_short_event_t*)event, 0))) { ftdmchan 972 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if ((ftdmchan = find_ftdmchan(span, (sangomabc_short_event_t*)event, 1))) { ftdmchan 981 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdmchan->state == FTDM_CHANNEL_STATE_UP || ftdmchan 982 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->state == FTDM_CHANNEL_STATE_PROGRESS_MEDIA || ftdmchan 983 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->state == FTDM_CHANNEL_STATE_PROGRESS) { ftdmchan 986 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_r(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING, r); ftdmchan 987 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c } else if (ftdmchan->state == FTDM_CHANNEL_STATE_HANGUP || ftdm_test_sflag(ftdmchan, SFLAG_HANGUP)) { ftdmchan 990 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_r(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE, r); ftdmchan 991 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c } else if (ftdmchan->state == FTDM_CHANNEL_STATE_DIALING) { ftdmchan 1002 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c } else if (ftdmchan->state == FTDM_CHANNEL_STATE_IN_LOOP && retry) { ftdmchan 1004 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c stop_loop(ftdmchan); ftdmchan 1005 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c advance_chan_states(ftdmchan); ftdmchan 1010 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_state2str(ftdmchan->state)); ftdmchan 1012 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_sflag(ftdmchan, SFLAG_SENT_FINAL_MSG); ftdmchan 1013 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan = NULL; ftdmchan 1021 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 1029 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->span_id, ftdmchan->chan_id, ftdmchan 1030 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->physical_span_id, ftdmchan->physical_chan_id); ftdmchan 1032 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->sflags = 0; ftdmchan 1033 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(ftdmchan->caller_data.cid_num.digits, (char *)event->calling.digits); ftdmchan 1034 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(ftdmchan->caller_data.cid_name, (char *)event->calling.digits); ftdmchan 1035 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(ftdmchan->caller_data.ani.digits, (char *)event->calling.digits); ftdmchan 1036 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(ftdmchan->caller_data.dnis.digits, (char *)event->called.digits); ftdmchan 1037 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(ftdmchan->caller_data.rdnis.digits, (char *)event->rdnis.digits); ftdmchan 1039 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(ftdmchan->caller_data.raw_data, event->custom_data); ftdmchan 1040 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.raw_data_len = event->custom_data_size; ftdmchan 1044 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(ftdmchan->caller_data.cid_name, (char *)event->calling_name); ftdmchan 1047 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.cid_num.plan = event->calling.npi; ftdmchan 1048 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.cid_num.type = event->calling.ton; ftdmchan 1050 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.ani.plan = event->calling.npi; ftdmchan 1051 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.ani.type = event->calling.ton; ftdmchan 1053 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.dnis.plan = event->called.npi; ftdmchan 1054 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.dnis.type = event->called.ton; ftdmchan 1056 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.rdnis.plan = event->rdnis.npi; ftdmchan 1057 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.rdnis.type = event->rdnis.ton; ftdmchan 1059 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.screen = event->calling.screening_ind; ftdmchan 1060 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.pres = event->calling.presentation_ind; ftdmchan 1062 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.bearer_capability = event->bearer.capability; ftdmchan 1063 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.bearer_layer1 = event->bearer.uil1p; ftdmchan 1073 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c snprintf(ftdmchan->caller_data.aniII, 5, "%.2d", ani2); ftdmchan 1077 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 1081 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c hangup_cause = ftdmchan ? ftdmchan->caller_data.hangup_cause : FTDM_CAUSE_REQUESTED_CHAN_UNAVAIL; ftdmchan 1094 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan; ftdmchan 1096 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (!(ftdmchan = find_ftdmchan(span, (sangomabc_short_event_t*)event, 0))) { ftdmchan 1101 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 1106 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_r(ftdmchan, FTDM_CHANNEL_STATE_IN_LOOP, res); ftdmchan 1109 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_done(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 advance_chan_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 advance_chan_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 __inline__ 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 if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 1377 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE); ftdmchan 1382 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 1384 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 1387 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c sig.chan_id = ftdmchan->chan_id; ftdmchan 1388 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c sig.span_id = ftdmchan->span_id; ftdmchan 1389 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c sig.channel = ftdmchan; ftdmchan 1391 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c switch (ftdmchan->state) { ftdmchan 1395 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_sangoma_boost_data_t *sangoma_boost_data = ftdmchan->span->signal_data; ftdmchan 1397 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdmchan->last_state == FTDM_CHANNEL_STATE_IN_LOOP) { ftdmchan 1398 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 1400 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c release_request_id_span_chan(ftdmchan->physical_span_id, ftdmchan->physical_chan_id); ftdmchan 1402 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (!ftdm_test_sflag(ftdmchan, SFLAG_SENT_FINAL_MSG)) { ftdmchan 1403 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_sflag_locked(ftdmchan, SFLAG_SENT_FINAL_MSG); ftdmchan 1405 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 1407 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 1408 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 1409 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c CALL_DATA(ftdmchan)->call_setup_id, ftdmchan 1416 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 1417 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 1426 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->sflags = 0; ftdmchan 1427 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c memset(ftdmchan->call_data, 0, sizeof(sangoma_boost_call_t)); ftdmchan 1431 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->span_id, ftdmchan->chan_id); ftdmchan 1433 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_done(ftdmchan); ftdmchan 1439 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1441 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if ((status = ftdm_span_send_signal(ftdmchan->span, &sig) != FTDM_SUCCESS)) { ftdmchan 1442 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1445 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (!ftdm_test_sflag(ftdmchan, SFLAG_SENT_ACK)) { ftdmchan 1446 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_sflag(ftdmchan, SFLAG_SENT_ACK); ftdmchan 1448 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 1449 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 1455 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 1456 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 1465 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1467 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if ((status = ftdm_span_send_signal(ftdmchan->span, &sig) != FTDM_SUCCESS)) { ftdmchan 1468 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1471 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (!ftdm_test_sflag(ftdmchan, SFLAG_SENT_ACK)) { ftdmchan 1472 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_sflag(ftdmchan, SFLAG_SENT_ACK); ftdmchan 1474 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 1475 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 1491 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1493 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if ((status = ftdm_span_send_signal(ftdmchan->span, &sig) != FTDM_SUCCESS)) { ftdmchan 1494 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1502 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c status = ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 1503 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_sflag_locked(ftdmchan, SFLAG_SENT_FINAL_MSG); ftdmchan 1504 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 1509 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 1511 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if ((status = ftdm_span_send_signal(ftdmchan->span, &sig) != FTDM_SUCCESS)) { ftdmchan 1512 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP); ftdmchan 1515 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 1517 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 1518 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 1525 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 1526 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 1541 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(dnis, ftdmchan->caller_data.dnis.digits); ftdmchan 1546 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 1550 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c sangomabc_call_init(&event, ftdmchan->caller_data.cid_num.digits, dnis, r); ftdmchan 1552 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.span = (uint8_t)ftdmchan->physical_span_id; ftdmchan 1553 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.chan = (uint8_t)ftdmchan->physical_chan_id; ftdmchan 1557 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(event.calling_name, ftdmchan->caller_data.cid_name); ftdmchan 1558 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(event.rdnis.digits, ftdmchan->caller_data.rdnis.digits); ftdmchan 1559 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (strlen(ftdmchan->caller_data.rdnis.digits)) { ftdmchan 1560 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.rdnis.digits_count = (uint8_t)strlen(ftdmchan->caller_data.rdnis.digits)+1; ftdmchan 1561 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.rdnis.ton = ftdmchan->caller_data.rdnis.type; ftdmchan 1562 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.rdnis.npi = ftdmchan->caller_data.rdnis.plan; ftdmchan 1565 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.calling.screening_ind = ftdmchan->caller_data.screen; ftdmchan 1566 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.calling.presentation_ind = ftdmchan->caller_data.pres; ftdmchan 1568 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.calling.ton = ftdmchan->caller_data.cid_num.type; ftdmchan 1569 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.calling.npi = ftdmchan->caller_data.cid_num.plan; ftdmchan 1571 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.called.ton = ftdmchan->caller_data.dnis.type; ftdmchan 1572 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.called.npi = ftdmchan->caller_data.dnis.plan; ftdmchan 1574 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdmchan->caller_data.raw_data_len) { ftdmchan 1575 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_string(event.custom_data, ftdmchan->caller_data.raw_data); ftdmchan 1576 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c event.custom_data_size = (uint16_t)ftdmchan->caller_data.raw_data_len; ftdmchan 1580 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c OUTBOUND_REQUESTS[r].span = ftdmchan->span; ftdmchan 1581 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c OUTBOUND_REQUESTS[r].ftdmchan = ftdmchan; ftdmchan 1587 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 1594 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 1599 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_sflag_locked(ftdmchan, SFLAG_HANGUP); ftdmchan 1601 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 1602 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); ftdmchan 1604 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_sflag_locked(ftdmchan, SFLAG_SENT_FINAL_MSG); ftdmchan 1605 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_ANSWERED) || ftdmchan 1606 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_test_flag(ftdmchan, FTDM_CHANNEL_PROGRESS) || ftdmchan 1607 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_test_flag(ftdmchan, FTDM_CHANNEL_MEDIA) || ftdmchan 1608 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_test_sflag(ftdmchan, SFLAG_RECVD_ACK)) { ftdmchan 1610 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 1611 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 1614 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.hangup_cause, 0); ftdmchan 1617 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_SPAN(ftdmchan), ftdmchan 1618 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c BOOST_CHAN(ftdmchan), ftdmchan 1621 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdmchan->caller_data.hangup_cause, 0); ftdmchan 1628 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_set_sflag_locked(ftdmchan, SFLAG_TERMINATING); ftdmchan 1630 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c status = ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 1641 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_complete_state(ftdmchan); ftdmchan 1645 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c static __inline__ void advance_chan_states(ftdm_channel_t *ftdmchan) ftdmchan 1647 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c while (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 1648 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c state_advance(ftdmchan); ftdmchan 1667 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1691 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c while ((ftdmchan = ftdm_queue_dequeue(span->pendingchans))) { ftdmchan 1695 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1696 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c state_advance(ftdmchan); ftdmchan 1697 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 2019 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_channel_t *ftdmchan = span->channels[j]; ftdmchan 2021 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 2472 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 2475 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c sig.chan_id = ftdmchan->chan_id; ftdmchan 2476 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c sig.span_id = ftdmchan->span_id; ftdmchan 2477 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c sig.channel = ftdmchan; ftdmchan 2480 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_span_send_signal(ftdmchan->span, &sig); ftdmchan 2486 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->set_channel_sig_status(ftdmchan, status); ftdmchan 2500 src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c ftdm_sangoma_boost_data_t *sangoma_boost_data = ftdmchan->span->signal_data; ftdmchan 2507 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 49 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c static void ftdm_sangoma_isdn_advance_chan_states(ftdm_channel_t *ftdmchan); ftdmchan 51 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c static void ftdm_sangoma_isdn_process_state_change(ftdm_channel_t *ftdmchan); ftdmchan 234 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c static __inline__ void ftdm_sangoma_isdn_advance_chan_states(ftdm_channel_t *ftdmchan) ftdmchan 236 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c while (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 237 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_sangoma_isdn_process_state_change(ftdmchan); ftdmchan 246 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 277 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c while ((ftdmchan = ftdm_queue_dequeue(span->pendingchans))) { ftdmchan 279 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_lock(ftdmchan); ftdmchan 280 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_sangoma_isdn_advance_chan_states(ftdmchan); ftdmchan 281 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_unlock(ftdmchan); ftdmchan 352 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 374 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdmchan = sngisdn_event->sngisdn_info->ftdmchan; ftdmchan 375 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_assert_return(ftdmchan, NULL,"Event should have a channel associated\n"); ftdmchan 378 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_lock(ftdmchan); ftdmchan 379 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_sangoma_isdn_advance_chan_states(ftdmchan); ftdmchan 380 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c return ftdmchan; ftdmchan 387 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 389 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdmchan = ftdm_sangoma_isdn_process_event_states(span, sngisdn_event); ftdmchan 443 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if(ftdmchan != NULL) { ftdmchan 444 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_sangoma_isdn_advance_chan_states(ftdmchan); ftdmchan 445 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_unlock(ftdmchan); ftdmchan 449 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c static void ftdm_sangoma_isdn_process_state_change(ftdm_channel_t *ftdmchan) ftdmchan 453 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_chan_data_t *sngisdn_info = ftdmchan->call_data; ftdmchan 457 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 458 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sigev.span_id = ftdmchan->span_id; ftdmchan 459 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sigev.channel = ftdmchan; ftdmchan 462 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_lock(ftdmchan); ftdmchan 464 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE); ftdmchan 466 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdmchan->state == FTDM_CHANNEL_STATE_DIALING) { ftdmchan 467 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_assert(mprotect(ftdmchan, sizeof(*ftdmchan), PROT_READ)==0, "Failed to mprotect"); ftdmchan 472 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c initial_state = ftdmchan->state; ftdmchan 474 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 476 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c switch (ftdmchan->state) { ftdmchan 480 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_setup_ack(ftdmchan); ftdmchan 487 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_proceed(ftdmchan); ftdmchan 493 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 497 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 502 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_setup(ftdmchan); ftdmchan 508 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 511 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 514 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_proceed(ftdmchan); ftdmchan 520 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 522 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 524 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_progress(ftdmchan); ftdmchan 531 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 534 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 536 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP && ftdmchan 537 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ((sngisdn_span_data_t*)ftdmchan->span->signal_data)->signalling == SNGISDN_SIGNALING_NET) { ftdmchan 539 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_con_complete(ftdmchan); ftdmchan 543 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_connect(ftdmchan); ftdmchan 549 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 552 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_release(ftdmchan, 0); ftdmchan 554 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); ftdmchan 561 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 567 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Acknowledging remote abort\n"); ftdmchan 569 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Acknowledging remote hangup\n"); ftdmchan 570 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_release(ftdmchan, 0); ftdmchan 573 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 577 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 580 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_disconnect(ftdmchan); ftdmchan 582 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 588 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdmchan->last_state == FTDM_CHANNEL_STATE_RING || ftdmchan 589 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdmchan->last_state == FTDM_CHANNEL_STATE_DIALING) { ftdmchan 592 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_release(ftdmchan, 0); ftdmchan 594 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_SIG_UP)) { ftdmchan 595 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sng_isdn_set_avail_rate(ftdmchan->span, SNGISDN_AVAIL_DOWN); ftdmchan 598 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_snd_disconnect(ftdmchan); ftdmchan 603 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); ftdmchan 611 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 614 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Waiting for release from stack\n"); ftdmchan 628 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OPEN)) { ftdmchan 629 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_t *close_chan = ftdmchan; ftdmchan 635 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Glare detected, processing saved call\n"); ftdmchan 657 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 662 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdmchan->state == initial_state) { ftdmchan 663 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 666 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdmchan->state == FTDM_CHANNEL_STATE_DIALING) { ftdmchan 667 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_assert(mprotect(ftdmchan, sizeof(*ftdmchan), PROT_READ|PROT_WRITE)==0, "Failed to mprotect"); ftdmchan 670 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_unlock(ftdmchan); ftdmchan 676 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c sngisdn_chan_data_t *sngisdn_info = ftdmchan->call_data; ftdmchan 680 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_lock(ftdmchan); ftdmchan 682 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c switch (ftdmchan->state) { ftdmchan 688 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Glare detected - aborting outgoing call\n"); ftdmchan 691 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); ftdmchan 695 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DIALING); ftdmchan 703 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 709 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c ftdm_channel_unlock(ftdmchan); ftdmchan 715 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_SIG_UP)) { ftdmchan 826 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c chan_data->ftdmchan = ((ftdm_channel_t*)ftdm_iterator_current(curr)); ftdmchan 151 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h ftdm_channel_t *ftdmchan; ftdmchan 277 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_setup(ftdm_channel_t *ftdmchan); ftdmchan 278 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_setup_ack(ftdm_channel_t *ftdmchan); ftdmchan 279 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_proceed(ftdm_channel_t *ftdmchan); ftdmchan 280 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_progress(ftdm_channel_t *ftdmchan); ftdmchan 281 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_alert(ftdm_channel_t *ftdmchan); ftdmchan 282 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_connect(ftdm_channel_t *ftdmchan); ftdmchan 283 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_disconnect(ftdm_channel_t *ftdmchan); ftdmchan 284 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_release(ftdm_channel_t *ftdmchan, uint8_t glare); ftdmchan 285 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_reset(ftdm_channel_t *ftdmchan); ftdmchan 286 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_con_complete(ftdm_channel_t *ftdmchan); ftdmchan 287 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_info_req(ftdm_channel_t *ftdmchan); ftdmchan 288 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h void sngisdn_snd_status_enq(ftdm_channel_t *ftdmchan); ftdmchan 142 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cfg.c ftdm_channel_t *ftdmchan = span->channels[i]; ftdmchan 144 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 145 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 228 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cfg.c ftdm_channel_t *ftdmchan = (ftdm_channel_t*)ftdm_iterator_current(curr); ftdmchan 229 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cfg.c if (ftdmchan->type == FTDM_CHAN_TYPE_DQ921) { ftdmchan 230 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cfg.c d_channel_fd = ftdmchan->sockfd; ftdmchan 53 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 54 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 57 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 59 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 61 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 63 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INUSE) || ftdmchan 64 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 66 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 93 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 95 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = IN_CCNORTTODEST; ftdmchan 108 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP) { ftdmchan 118 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND); ftdmchan 121 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 122 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "Failed to open channel"); ftdmchan 124 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_NORMAL_TEMPORARY_FAILURE; ftdmchan 125 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_CANCEL); ftdmchan 131 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_add_var(ftdmchan, "isdn_specific_var", "1"); ftdmchan 134 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c cpy_calling_num_from_stack(&ftdmchan->caller_data, &conEvnt->cgPtyNmb); ftdmchan 135 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c cpy_called_num_from_stack(&ftdmchan->caller_data, &conEvnt->cdPtyNmb); ftdmchan 136 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c cpy_calling_name_from_stack(&ftdmchan->caller_data, &conEvnt->display); ftdmchan 137 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 140 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.bearer_layer1 = sngisdn_get_infoTranCap_from_stack(conEvnt->bearCap[0].usrInfoLyr1Prot.val); ftdmchan 141 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 147 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c snprintf(ftdmchan->caller_data.aniII, 5, "%.2d", conEvnt->ni2OctStr.str.val[3]); ftdmchan 165 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 166 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_GET_CALLERID); ftdmchan 174 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c strcpy(ftdmchan->caller_data.cid_name, retrieved_str); ftdmchan 180 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_COLLECT); ftdmchan 182 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 186 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 203 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 212 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = 0x2C; /* Channel requested not available */ ftdmchan 215 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 229 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 233 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 250 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 255 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 257 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 259 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP && ftdmchan 260 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ((sngisdn_span_data_t*)ftdmchan->span->signal_data)->signalling == SNGISDN_SIGNALING_NET) { ftdmchan 267 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 273 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 274 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch(ftdmchan->state) { ftdmchan 278 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 285 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 288 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 292 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch(ftdmchan->state) { ftdmchan 301 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 304 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 324 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 326 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 330 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 332 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 360 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 361 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = cnStEvnt->causeDgn[0].causeVal.val; ftdmchan 364 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 372 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch(ftdmchan->state) { ftdmchan 376 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA); ftdmchan 378 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS); ftdmchan 384 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA); ftdmchan 392 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 395 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 400 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 403 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 406 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch(ftdmchan->state) { ftdmchan 409 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 412 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c cpy_called_num_from_stack(&ftdmchan->caller_data, &cnStEvnt->cdPtyNmb); ftdmchan 413 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c num_digits = strlen(ftdmchan->caller_data.dnis.digits); ftdmchan 416 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 418 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 426 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 429 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "\n", suId, suInstId, spInstId); ftdmchan 436 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Unhandled STATUS event\n"); ftdmchan 453 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 457 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 459 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 460 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 467 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = discEvnt->causeDgn[0].causeVal.val; ftdmchan 469 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 470 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = 0; ftdmchan 473 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 477 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_CANCEL); ftdmchan 481 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 488 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 489 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_state2str(ftdmchan->state)); ftdmchan 494 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 509 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 513 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 515 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 529 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 532 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 539 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_SIG_UP)) { ftdmchan 540 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c sng_isdn_set_avail_rate(ftdmchan->span, SNGISDN_AVAIL_DOWN); ftdmchan 550 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (((sngisdn_chan_data_t*)ftdmchan->call_data)->suInstId == suInstId || ftdmchan 551 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ((sngisdn_chan_data_t*)ftdmchan->call_data)->spInstId == spInstId) { ftdmchan 553 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = relEvnt->causeDgn[0].causeVal.val; ftdmchan 554 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 556 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 557 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = 0; ftdmchan 561 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 564 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 569 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_CANCEL); ftdmchan 576 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 579 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 586 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 587 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_state2str(ftdmchan->state)); ftdmchan 605 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 610 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 623 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 628 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 641 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 646 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 659 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 664 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 677 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 682 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 695 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 700 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 714 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 715 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 719 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 721 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 734 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c strcpy(ftdmchan->caller_data.cid_name, retrieved_str); ftdmchan 736 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 744 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 748 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 766 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 776 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 778 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 784 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 790 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 794 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 797 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 800 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 805 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = staEvnt->causeDgn[0].causeVal.val; ftdmchan 810 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 815 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 826 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 827 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 832 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 838 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 843 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 846 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 847 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 852 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 857 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 861 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 862 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 866 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 867 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c sngisdn_snd_disconnect(ftdmchan); ftdmchan 872 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c sngisdn_snd_disconnect(ftdmchan); ftdmchan 875 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 880 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 883 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdmchan->caller_data.hangup_cause = staEvnt->causeDgn[0].causeVal.val; ftdmchan 884 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 886 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 891 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { ftdmchan 892 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 897 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 902 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 909 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c sngisdn_snd_disconnect(ftdmchan); ftdmchan 912 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 917 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { ftdmchan 925 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 940 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 943 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 948 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c switch (ftdmchan->state) { 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 961 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 967 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 972 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 39 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c extern ftdm_status_t cpy_calling_name_from_user(ConEvnt *conEvnt, ftdm_channel_t *ftdmchan); ftdmchan 41 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_setup(ftdm_channel_t *ftdmchan); ftdmchan 42 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_proceed(ftdm_channel_t *ftdmchan); ftdmchan 43 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_progress(ftdm_channel_t *ftdmchan); ftdmchan 44 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_connect(ftdm_channel_t *ftdmchan); ftdmchan 45 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_disconnect(ftdm_channel_t *ftdmchan); ftdmchan 46 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_release(ftdm_channel_t *ftdmchan, uint8_t glare); ftdmchan 49 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_setup(ftdm_channel_t *ftdmchan) ftdmchan 52 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c sngisdn_chan_data_t *sngisdn_info = ftdmchan->call_data; ftdmchan 53 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 68 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c conEvnt.bearCap[0].infoTranCap.val = sngisdn_get_infoTranCap_from_user(ftdmchan->caller_data.bearer_capability); ftdmchan 86 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI || ftdmchan 87 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP) { ftdmchan 95 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c conEvnt.chanId.infoChanSel.val = ftdmchan->physical_chan_id; ftdmchan 99 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c conEvnt.bearCap[0].usrInfoLyr1Prot.val = sngisdn_get_usrInfoLyr1Prot_from_user(ftdmchan->caller_data.bearer_layer1); ftdmchan 128 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c conEvnt.chanId.chanNmbSlotMap.val[0] = ftdmchan->physical_chan_id; ftdmchan 142 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP && ftdmchan 146 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 148 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c cpy_called_num_from_user(&conEvnt.cdPtyNmb, &ftdmchan->caller_data); ftdmchan 149 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c cpy_calling_num_from_user(&conEvnt.cgPtyNmb, &ftdmchan->caller_data); ftdmchan 150 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c cpy_calling_name_from_user(&conEvnt, ftdmchan); ftdmchan 152 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 155 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 162 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_setup_ack(ftdm_channel_t *ftdmchan) ftdmchan 166 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 167 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 170 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 172 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 187 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI || ftdmchan 188 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP) { ftdmchan 194 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c cnStEvnt.chanId.infoChanSel.val = ftdmchan->physical_chan_id; ftdmchan 208 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c cnStEvnt.chanId.chanNmbSlotMap.val[0] = ftdmchan->physical_chan_id; ftdmchan 211 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 214 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 222 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_con_complete(ftdm_channel_t *ftdmchan) ftdmchan 226 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 227 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 230 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 232 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 246 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI || ftdmchan 247 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP) { ftdmchan 253 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c cnStEvnt.chanId.infoChanSel.val = ftdmchan->physical_chan_id; ftdmchan 267 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c cnStEvnt.chanId.chanNmbSlotMap.val[0] = ftdmchan->physical_chan_id; ftdmchan 271 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 274 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 280 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_proceed(ftdm_channel_t *ftdmchan) ftdmchan 284 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 285 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 288 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 290 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 304 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI || ftdmchan 305 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP) { ftdmchan 311 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c cnStEvnt.chanId.infoChanSel.val = ftdmchan->physical_chan_id; ftdmchan 325 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c cnStEvnt.chanId.chanNmbSlotMap.val[0] = ftdmchan->physical_chan_id; ftdmchan 329 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 332 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 337 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_progress(ftdm_channel_t *ftdmchan) ftdmchan 341 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 342 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 345 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 347 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 367 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 369 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 374 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_alert(ftdm_channel_t *ftdmchan) ftdmchan 378 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 379 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 382 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 384 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 398 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 401 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 406 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_connect(ftdm_channel_t *ftdmchan) ftdmchan 410 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 411 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 414 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 416 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 431 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI || ftdmchan 432 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP) { ftdmchan 438 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c cnStEvnt.chanId.infoChanSel.val = ftdmchan->physical_chan_id; ftdmchan 452 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c cnStEvnt.chanId.chanNmbSlotMap.val[0] = ftdmchan->physical_chan_id; ftdmchan 463 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 465 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 471 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_info_req(ftdm_channel_t *ftdmchan) ftdmchan 475 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 476 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 478 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c if (ftdmchan->span->trunk_type != FTDM_TRUNK_BRI && ftdmchan 479 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdmchan->span->trunk_type != FTDM_TRUNK_BRI_PTMP) { ftdmchan 481 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 489 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 492 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 498 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_status_enq(ftdm_channel_t *ftdmchan) ftdmchan 502 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 503 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 509 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 511 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 517 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_disconnect(ftdm_channel_t *ftdmchan) ftdmchan 521 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 522 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 525 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 528 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); ftdmchan 541 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c discEvnt.causeDgn[0].causeVal.val = ftdmchan->caller_data.hangup_cause; ftdmchan 545 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 547 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 551 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c void sngisdn_snd_release(ftdm_channel_t *ftdmchan, uint8_t glare) ftdmchan 556 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 557 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 560 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 563 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); ftdmchan 577 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c relEvnt.causeDgn[0].causeVal.val = ftdmchan->caller_data.hangup_cause; ftdmchan 589 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 593 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 597 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 81 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 100 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 128 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 143 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 170 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 193 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 213 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 227 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 247 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 261 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 279 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 293 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 344 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 359 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 376 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 391 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 409 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 424 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 442 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 456 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 475 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 489 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 508 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 522 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 45 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t cpy_calling_name_from_user(ConEvnt *conEvnt, ftdm_channel_t *ftdmchan); ftdmchan 54 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 56 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 71 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 329 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_status_t cpy_calling_name_from_user(ConEvnt *conEvnt, ftdm_channel_t *ftdmchan) ftdmchan 332 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_caller_data_t *ftdm = &ftdmchan->caller_data; ftdmchan 334 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 341 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI || ftdmchan 342 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP) { ftdmchan 385 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 386 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 388 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 392 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 395 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c sngisdn_snd_release(ftdmchan, 1); ftdmchan 398 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 401 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 408 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 409 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 411 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 412 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 415 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c sngisdn_snd_connect(ftdmchan); ftdmchan 416 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 423 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 424 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 426 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 427 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 428 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 431 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c sngisdn_snd_disconnect(ftdmchan); ftdmchan 432 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c if (ftdmchan->caller_data.hangup_cause == IN_CCNORTTODEST) { ftdmchan 433 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_channel_t *close_chan = ftdmchan; ftdmchan 438 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 445 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan; ftdmchan 446 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 448 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 449 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c if (ftdmchan->state == FTDM_CHANNEL_STATE_GET_CALLERID) { ftdmchan 450 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 453 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 456 src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c ftdm_mutex_unlock(ftdmchan->mutex); 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->mod_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->mod_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->mod_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->mod_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->mod_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->mod_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_channel_add_var(ftdmchan, "ss7_clg_nadi", nadi); ftdmchan 217 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_add_var(ftdmchan, "ss7_cld_nadi", nadi); ftdmchan 220 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_COLLECT); ftdmchan 232 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 233 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_state2str (ftdmchan->state), ftdmchan 234 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INUSE)); ftdmchan 246 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.hangup_cause = 34; /* Circuit Congrestion */ ftdmchan 252 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 257 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 260 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 267 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 279 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 282 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 289 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 294 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx ACM\n", sngss7_info->circuit->cic); ftdmchan 295 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c switch (ftdmchan->state) { ftdmchan 308 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA); ftdmchan 311 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS); ftdmchan 315 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA); ftdmchan 322 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS); ftdmchan 328 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx MODIFY\n", sngss7_info->circuit->cic); ftdmchan 332 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 336 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 340 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CPG\n", sngss7_info->circuit->cic); ftdmchan 344 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx FOT\n", sngss7_info->circuit->cic); ftdmchan 348 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx INF\n", sngss7_info->circuit->cic); ftdmchan 352 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx INR\n", sngss7_info->circuit->cic); ftdmchan 356 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx SAM\n", sngss7_info->circuit->cic); ftdmchan 360 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx EXIT\n", sngss7_info->circuit->cic); ftdmchan 364 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx NRM\n", sngss7_info->circuit->cic); ftdmchan 368 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx IDR\n", sngss7_info->circuit->cic); ftdmchan 372 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx IRS\n", sngss7_info->circuit->cic); ftdmchan 376 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 380 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CRG\n", sngss7_info->circuit->cic); ftdmchan 384 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 388 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 392 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 396 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx LOP\n", sngss7_info->circuit->cic); ftdmchan 400 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 404 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 408 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 412 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx PRI\n", sngss7_info->circuit->cic); ftdmchan 416 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx APM\n", sngss7_info->circuit->cic); ftdmchan 420 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx OPERATOR\n", sngss7_info->circuit->cic); ftdmchan 424 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 428 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 432 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 436 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 442 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 454 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 457 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 464 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 467 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c switch (ftdmchan->state) { ftdmchan 472 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx ANM\n", sngss7_info->circuit->cic); ftdmchan 475 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 481 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CON\n", sngss7_info->circuit->cic); ftdmchan 484 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); ftdmchan 490 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 496 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 503 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 515 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 518 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 525 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 527 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx REL cause=%d\n", ftdmchan 532 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c switch (ftdmchan->state) { ftdmchan 538 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.hangup_cause = siRelEvnt->causeDgn.causeVal.val; ftdmchan 541 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.hangup_cause = 0; ftdmchan 548 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 559 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.hangup_cause = siRelEvnt->causeDgn.causeVal.val; ftdmchan 562 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.hangup_cause = 0; ftdmchan 569 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 579 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 586 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 598 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 601 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 608 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 610 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx RLC\n", sngss7_info->circuit->cic); ftdmchan 613 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c switch (ftdmchan->state) { ftdmchan 618 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 630 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 637 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 649 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 652 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 659 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 661 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 664 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 676 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 679 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 686 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 688 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx FAC\n", sngss7_info->circuit->cic); ftdmchan 691 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 703 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 706 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 713 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 715 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 718 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 730 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 733 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 740 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 742 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 745 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 757 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 760 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 767 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 769 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 772 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 784 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 787 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 794 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 796 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 799 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 809 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan; ftdmchan 812 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 823 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 828 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 833 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx COT start\n", sngss7_info->circuit->cic); ftdmchan 838 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 843 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx COT stop\n", sngss7_info->circuit->cic); ftdmchan 848 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CQM\n", sngss7_info->circuit->cic); ftdmchan 853 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CFN\n", sngss7_info->circuit->cic); ftdmchan 858 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx LPA\n", sngss7_info->circuit->cic); ftdmchan 863 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 868 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 873 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx BLO\n", sngss7_info->circuit->cic); ftdmchan 878 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx BLA\n", sngss7_info->circuit->cic); ftdmchan 883 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx UBL\n", sngss7_info->circuit->cic); ftdmchan 888 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx UBA\n", sngss7_info->circuit->cic); ftdmchan 893 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx RSC\n", sngss7_info->circuit->cic); ftdmchan 898 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 903 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 908 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CGB\n", sngss7_info->circuit->cic); ftdmchan 913 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CGU\n", sngss7_info->circuit->cic); ftdmchan 918 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx CQM\n", sngss7_info->circuit->cic); ftdmchan 923 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 928 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 933 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx GRS\n", sngss7_info->circuit->cic); ftdmchan 938 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx UCIC\n", sngss7_info->circuit->cic); ftdmchan 943 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx GRA\n", sngss7_info->circuit->cic); ftdmchan 948 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx SUS\n", sngss7_info->circuit->cic); ftdmchan 953 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx RES\n", sngss7_info->circuit->cic); ftdmchan 958 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx UPA\n", sngss7_info->circuit->cic); ftdmchan 963 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 968 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 973 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 978 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 983 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 988 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 993 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 998 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 1003 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx Overload\n", sngss7_info->circuit->cic); ftdmchan 1008 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 1013 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 1018 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 1028 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 1033 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 1053 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1056 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1063 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1067 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 1069 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 1077 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.hangup_cause = 34; /* Circuit Congrestion */ ftdmchan 1083 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 1087 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1099 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1118 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(i, &sngss7_info, &ftdmchan)) { ftdmchan 1125 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1128 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (ftdm_test_flag(ftdmchan->span, FTDM_SPAN_IN_THREAD)) { ftdmchan 1129 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_DEBUG_CHAN(ftdmchan, "Rx PAUSE%s\n", ""); ftdmchan 1135 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1154 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1173 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(i, &sngss7_info, &ftdmchan)) { ftdmchan 1180 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1184 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c SS7_DEBUG_CHAN(ftdmchan, "Rx RESUME%s\n", ""); ftdmchan 1194 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1213 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1216 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1223 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1226 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OPEN)) { ftdmchan 1227 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { ftdmchan 1236 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_ENABLE_LOOP, NULL); ftdmchan 1239 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_IN_LOOP); ftdmchan 1251 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1263 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1266 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1273 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1276 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_command(ftdmchan, FTDM_COMMAND_DISABLE_LOOP, NULL); ftdmchan 1279 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, ftdmchan->last_state); ftdmchan 1282 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1316 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1319 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1326 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1337 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 1340 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1352 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1355 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1362 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1367 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1379 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1382 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1389 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1403 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 1406 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1418 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1421 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1428 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1433 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1445 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1448 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1455 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1460 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c switch (ftdmchan->state) { ftdmchan 1465 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_IDLE); ftdmchan 1472 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 1478 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1490 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1493 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1500 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1505 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c switch (ftdmchan->state) { ftdmchan 1510 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_IDLE); ftdmchan 1517 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 1523 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1535 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1538 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1545 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1547 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c switch (ftdmchan->state) { ftdmchan 1556 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 1578 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 1587 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.hangup_cause = siStaEvnt->causeDgn.causeVal.val; ftdmchan 1589 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdmchan->caller_data.hangup_cause = 98; /* Message not compatiable with call state */ ftdmchan 1592 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 1598 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1609 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1614 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1630 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sngss7_span = ftdmchan->span->mod_data; ftdmchan 1646 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1650 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1666 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sngss7_span = ftdmchan->span->mod_data; ftdmchan 1690 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1693 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1700 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1711 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 1714 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1726 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1729 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1736 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1747 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 1750 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1763 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1767 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1774 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sngss7_span = ftdmchan->span->mod_data; ftdmchan 1783 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1789 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 1792 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1805 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1818 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1825 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sngss7_span = ftdmchan->span->mod_data; ftdmchan 1870 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(x, &sngss7_info, &ftdmchan)) { ftdmchan 1876 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1906 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 1907 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sigev.span_id = ftdmchan->span_id; ftdmchan 1908 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sigev.channel = ftdmchan; ftdmchan 1913 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 1916 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 1928 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1934 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ft_to_sngss7_cgba(ftdmchan); ftdmchan 1946 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1959 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 1966 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sngss7_span = ftdmchan->span->mod_data; ftdmchan 2009 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(x, &sngss7_info, &ftdmchan)) { ftdmchan 2015 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 2037 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 2038 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sigev.span_id = ftdmchan->span_id; ftdmchan 2039 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c sigev.channel = ftdmchan; ftdmchan 2044 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 2047 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 2059 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 2065 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ft_to_sngss7_cgua(ftdmchan); ftdmchan 2076 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 2079 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) { ftdmchan 2086 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->mod_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->mod_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->mod_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->mod_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->mod_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->mod_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->mod_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->mod_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->mod_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->mod_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->mod_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->mod_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->mod_data)->event_queue, sngss7_event); ftdmchan 49 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c void ftdm_sangoma_ss7_process_state_change (ftdm_channel_t *ftdmchan); ftdmchan 274 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 303 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c while ((ftdmchan = ftdm_queue_dequeue (ftdmspan->pendingchans))) { ftdmchan 306 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 309 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c while (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 310 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_sangoma_ss7_process_state_change (ftdmchan); ftdmchan 314 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_unlock (ftdmchan->mutex); ftdmchan 392 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_channel_t *ftdmchan; ftdmchan 395 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (extract_chan_data(sngss7_event->circuit, &sngss7_info, &ftdmchan)) { ftdmchan 401 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 404 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c while (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 405 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_sangoma_ss7_process_state_change(ftdmchan); ftdmchan 469 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c while (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 470 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_sangoma_ss7_process_state_change(ftdmchan); ftdmchan 474 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 480 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c void ftdm_sangoma_ss7_process_state_change (ftdm_channel_t * ftdmchan) ftdmchan 482 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 489 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 490 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c sigev.span_id = ftdmchan->span_id; ftdmchan 491 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c sigev.channel = ftdmchan; ftdmchan 493 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 496 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_clear_flag (ftdmchan, FTDM_CHANNEL_STATE_CHANGE); ftdmchan 499 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c switch (ftdmchan->state) { ftdmchan 503 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { ftdmchan 508 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c while (ftdmchan->caller_data.dnis.digits[i] != '\0'){ ftdmchan 513 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdmchan->caller_data.dnis.digits[i-1] == 'F') { ftdmchan 514 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Received the end of pulsing character %s\n", ""); ftdmchan 517 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdmchan->caller_data.dnis.digits[i-1] = '\0'; ftdmchan 520 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 523 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Received %d digits (min digits = %d)\n", i, g_ftdm_sngss7_data.min_digits); ftdmchan 526 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_RING); ftdmchan 529 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 532 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdmchan->caller_data.dnis.digits); ftdmchan 544 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdmchan->caller_data.hangup_cause = 41; ftdmchan 550 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->mod_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 ftdmchan->caller_data.hangup_cause = 41; ftdmchan 976 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 987 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 990 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 992 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 1000 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan,"Current flags: 0x%X\n", sngss7_info->flags); ftdmchan 1004 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing RESUME%s\n", ""); ftdmchan 1022 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 1030 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing PAUSE%s\n", ""); ftdmchan 1035 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 1042 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing CKT_MN_BLOCK_RX flag %s\n", ""); ftdmchan 1047 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 ft_to_sngss7_bla (ftdmchan); ftdmchan 1057 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing CKT_MN_UNBLK_RX flag %s\n", ""); ftdmchan 1065 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 1068 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ft_to_sngss7_uba (ftdmchan); ftdmchan 1076 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing CKT_MN_BLOCK_TX flag %s\n", ""); ftdmchan 1081 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 1084 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ft_to_sngss7_blo (ftdmchan); ftdmchan 1091 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing CKT_MN_UNBLK_TX flag %s\n", ""); ftdmchan 1099 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal(ftdmchan->span, &sigev); ftdmchan 1102 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ft_to_sngss7_ubl (ftdmchan); ftdmchan 1110 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing CKT_LC_BLOCK_RX flag %s\n", ""); ftdmchan 1120 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing CKT_LC_UNBLK_RX flag %s\n", ""); ftdmchan 1133 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing CKT_UCIC_BLOCK flag %s\n", ""); ftdmchan 1138 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_span_send_signal (ftdmchan->span, &sigev); ftdmchan 1153 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Processing CKT_UCIC_UNBLK flag %s\n", "");; ftdmchan 1169 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, ftdmchan->last_state); ftdmchan 1173 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 1183 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ft_to_sngss7_lpa (ftdmchan); ftdmchan 1189 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked(ftdmchan, ftdmchan->last_state); ftdmchan 1194 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 1206 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 1209 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_lock (ftdmchan->mutex); ftdmchan 1212 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (check_for_state_change(ftdmchan)) { ftdmchan 1221 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_SIG_UP)) { ftdmchan 1222 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 1232 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 1244 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 1249 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c switch (ftdmchan->state){ ftdmchan 1253 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_DIALING); ftdmchan 1256 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_unlock (ftdmchan->mutex); ftdmchan 1264 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdmchan->physical_span_id, ftdmchan 1265 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdmchan->physical_chan_id); ftdmchan 1273 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Call Request failed%s\n", " "); ftdmchan 1275 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_unlock (ftdmchan->mutex); ftdmchan 1279 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Call Request re-hunt%s\n", " "); ftdmchan 1281 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_unlock (ftdmchan->mutex); ftdmchan 1285 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c SS7_DEBUG_CHAN(ftdmchan, "Call Request successful%s\n", " "); ftdmchan 1287 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_unlock (ftdmchan->mutex); ftdmchan 1306 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_SIG_UP)) { ftdmchan 1325 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 1337 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdmchan = span->channels[x]; ftdmchan 1338 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c if (ftdmchan->call_data == NULL) continue; ftdmchan 1339 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c sngss7_info = ftdmchan->call_data; ftdmchan 1340 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c sngss7_span = ftdmchan->span->mod_data; ftdmchan 1345 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 1370 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 1373 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 void 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 584 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h int check_for_state_change(ftdm_channel_t *ftdmchan); ftdmchan 587 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 747 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h SS7_INFO_CHAN(ftdmchan,"Production Mode, continuing%s\n", ""); ftdmchan 750 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_channel_get_var(ftdmchan, "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_channel_get_var(ftdmchan, "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_channel_get_var(ftdmchan, "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_channel_get_var(ftdmchan, "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 307 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_acm (ftdm_channel_t * ftdmchan) ftdmchan 311 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 361 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx ACM\n", sngss7_info->circuit->cic); ftdmchan 368 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_anm (ftdm_channel_t * ftdmchan) ftdmchan 372 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 385 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx ANM\n", sngss7_info->circuit->cic); ftdmchan 392 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_rel (ftdm_channel_t * ftdmchan) ftdmchan 396 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 408 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c rel.causeDgn.causeVal.val = (uint8_t) ftdmchan->caller_data.hangup_cause; ftdmchan 418 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx REL cause=%d \n", ftdmchan 420 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ftdmchan->caller_data.hangup_cause ); ftdmchan 427 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_rlc (ftdm_channel_t * ftdmchan) ftdmchan 431 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 443 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx RLC\n", sngss7_info->circuit->cic); ftdmchan 450 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_rsc (ftdm_channel_t * ftdmchan) ftdmchan 454 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 RSC\n", sngss7_info->circuit->cic); ftdmchan 471 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_rsca (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-RLC\n", sngss7_info->circuit->cic); ftdmchan 492 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_blo (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 BLO\n", sngss7_info->circuit->cic); ftdmchan 513 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_bla (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 BLA\n", sngss7_info->circuit->cic); ftdmchan 535 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c ft_to_sngss7_ubl (ftdm_channel_t * ftdmchan) ftdmchan 539 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 549 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx UBL\n", sngss7_info->circuit->cic); ftdmchan 556 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_uba (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 UBA\n", sngss7_info->circuit->cic); ftdmchan 577 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_lpa (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 LPA\n", sngss7_info->circuit->cic); ftdmchan 598 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_gra (ftdm_channel_t * ftdmchan) ftdmchan 602 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_span_data_t *sngss7_span = ftdmchan->span->mod_data; ftdmchan 603 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 632 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx GRA (%d:%d)\n", ftdmchan 642 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_grs (ftdm_channel_t * ftdmchan) ftdmchan 646 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_span_data_t *sngss7_span = ftdmchan->span->mod_data; ftdmchan 647 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 665 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx GRS (%d:%d)\n", ftdmchan 675 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_cgba(ftdm_channel_t * ftdmchan) ftdmchan 679 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_span_data_t *sngss7_span = ftdmchan->span->mod_data; ftdmchan 680 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 711 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx CGBA (%d:%d)\n", ftdmchan 724 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_cgua(ftdm_channel_t * ftdmchan) ftdmchan 728 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_span_data_t *sngss7_span = ftdmchan->span->mod_data; ftdmchan 729 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 760 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx CGUA (%d:%d)\n", ftdmchan 773 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_cgb(ftdm_channel_t * ftdmchan) ftdmchan 777 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_span_data_t *sngss7_span = ftdmchan->span->mod_data; ftdmchan 778 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 810 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx CGB (%d:%d)\n", ftdmchan 823 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c void ft_to_sngss7_cgu(ftdm_channel_t * ftdmchan) ftdmchan 827 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_span_data_t *sngss7_span = ftdmchan->span->mod_data; ftdmchan 828 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; ftdmchan 860 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_out.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx CGU (%d:%d)\n", ftdmchan 52 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c int check_for_state_change(ftdm_channel_t *ftdmchan); ftdmchan 58 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 347 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c int check_for_state_change(ftdm_channel_t *ftdmchan) ftdmchan 351 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_wait_for_flag_cleared(ftdmchan, FTDM_CHANNEL_STATE_CHANGE, 500); ftdmchan 355 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 357 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 358 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_channel_state2str (ftdmchan->state)); ftdmchan 406 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 419 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 420 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c *ftdmchan = (*sngss7_info)->ftdmchan; ftdmchan 466 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 474 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c if (extract_chan_data(i, &sngss7_info, &ftdmchan)) { ftdmchan 486 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 489 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c while (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 490 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_sangoma_ss7_process_state_change (ftdmchan); ftdmchan 493 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c SS7_INFO_CHAN(ftdmchan, "Rx GRS (%d:%d)\n", ftdmchan 500 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c switch (ftdmchan->state) { ftdmchan 505 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_IDLE); ftdmchan 512 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); ftdmchan 518 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 528 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 542 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c if (extract_chan_data(i, &sngss7_info, &ftdmchan)) { ftdmchan 548 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 551 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 571 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c if (extract_chan_data(i, &sngss7_info, &ftdmchan)) { ftdmchan 583 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 605 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c if (extract_chan_data(i, &sngss7_info, &ftdmchan)) { ftdmchan 611 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 620 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 628 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c if (extract_chan_data(i, &sngss7_info, &ftdmchan)) { ftdmchan 640 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 643 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c while (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 644 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_sangoma_ss7_process_state_change (ftdmchan); ftdmchan 647 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c SS7_INFO_CHAN(ftdmchan, "Rx GRA (%d:%d)\n", ftdmchan 651 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c switch (ftdmchan->state) { ftdmchan 659 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); ftdmchan 682 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdmchan->caller_data.hangup_cause = sngss7_span->rx_gra.cause; ftdmchan 684 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdmchan->caller_data.hangup_cause = 98; /* Message not compatiable with call state */ ftdmchan 688 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); ftdmchan 694 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 705 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 713 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdmchan = ftdmspan->channels[x]; ftdmchan 716 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c if (ftdmchan->call_data == NULL) continue; ftdmchan 718 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c sngss7_info = ftdmchan->call_data; ftdmchan 721 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 725 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c sigev.chan_id = ftdmchan->chan_id; ftdmchan 726 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c sigev.span_id = ftdmchan->span_id; ftdmchan 727 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c sigev.channel = ftdmchan; ftdmchan 731 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_SIG_UP))) { ftdmchan 734 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c while (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 735 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_sangoma_ss7_process_state_change (ftdmchan); ftdmchan 740 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 748 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c while (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 749 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_sangoma_ss7_process_state_change (ftdmchan); ftdmchan 753 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_set_state_locked (ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 757 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 770 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 778 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c if (extract_chan_data(i, &sngss7_info, &ftdmchan)) { ftdmchan 784 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_lock(ftdmchan->mutex); ftdmchan 786 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Rx UCIC\n", sngss7_info->circuit->cic); ftdmchan 789 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c while (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { ftdmchan 790 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_sangoma_ss7_process_state_change (ftdmchan); ftdmchan 797 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED); ftdmchan 800 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_mutex_unlock(ftdmchan->mutex); ftdmchan 823 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_channel_t *ftdmchan = sngss7_info->ftdmchan; ftdmchan 824 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c sngss7_span_data_t *sngss7_span = ftdmchan->span->mod_data; ftdmchan 835 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_channel_t *ftdmchan = sngss7_info->ftdmchan; ftdmchan 836 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c sngss7_span_data_t *sngss7_span = ftdmchan->span->mod_data; ftdmchan 858 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c ftdm_channel_t *ftdmchan = sngss7_info->ftdmchan; ftdmchan 859 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c sngss7_span_data_t *sngss7_span = ftdmchan->span->mod_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 1996 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 2040 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ss7_info->ftdmchan = NULL; ftdmchan 2084 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ftdmchan = isupCkt->span->channels[i]; ftdmchan 2090 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c if ((g_ftdm_sngss7_data.cfg.isupCkt[x].chan == ftdmchan->physical_chan_id) && ftdmchan 2091 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c (g_ftdm_sngss7_data.cfg.isupCkt[x].span == ftdmchan->physical_span_id)) { ftdmchan 2103 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ftdmchan->physical_span_id, ftdmchan 2104 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ftdmchan->physical_chan_id, ftdmchan 2109 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ss7_info->ftdmchan = ftdmchan; ftdmchan 2111 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ftdmchan->call_data = ss7_info; ftdmchan 2122 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c g_ftdm_sngss7_data.cfg.isupCkt[x].span = ftdmchan->physical_span_id; ftdmchan 2123 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c g_ftdm_sngss7_data.cfg.isupCkt[x].chan = ftdmchan->physical_chan_id; ftdmchan 2175 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ftdmchan->physical_span_id, ftdmchan 2176 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ftdmchan->physical_chan_id, ftdmchan 2194 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c if (ss7_info->ftdmchan == NULL) { ftdmchan 2206 src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c ss7_info->ftdmchan->chan_id, ftdmchan 115 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c static __inline__ int tdmv_api_wait_socket(ftdm_channel_t *ftdmchan, int timeout, int *flags) ftdmchan 122 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c sangoma_wait_obj_t *sangoma_wait_obj = ftdmchan->mod_data; ftdmchan 139 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c pfds[0].fd = ftdmchan->sockfd; ftdmchan 516 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c sangoma_tdm_flush_bufs(ftdmchan->sockfd, &tdm_api); ftdmchan 518 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c sangoma_flush_event_bufs(ftdmchan->sockfd, &tdm_api); ftdmchan 521 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdmchan->type == FTDM_CHAN_TYPE_DQ921 || ftdmchan->type == FTDM_CHAN_TYPE_DQ931) { ftdmchan 522 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->native_codec = ftdmchan->effective_codec = FTDM_CODEC_NONE; ftdmchan 524 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->effective_codec = ftdmchan->native_codec; ftdmchan 526 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c sangoma_tdm_set_usr_period(ftdmchan->sockfd, &tdm_api, wp_globals.codec_ms); ftdmchan 528 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_channel_set_feature(ftdmchan, FTDM_CHANNEL_FEATURE_INTERVAL); ftdmchan 529 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->effective_interval = ftdmchan->native_interval = wp_globals.codec_ms; ftdmchan 530 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->packet_len = ftdmchan->native_interval * 8; ftdmchan 544 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c sangoma_wait_obj_t *waitobj = ftdmchan->mod_data; ftdmchan 568 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_txsig_offhook(ftdmchan->sockfd,&tdm_api); ftdmchan 570 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "OFFHOOK Failed"); ftdmchan 573 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_OFFHOOK); ftdmchan 578 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_txsig_onhook(ftdmchan->sockfd,&tdm_api); ftdmchan 580 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "ONHOOK Failed"); ftdmchan 583 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_OFFHOOK); ftdmchan 588 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_txsig_start(ftdmchan->sockfd,&tdm_api); ftdmchan 590 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Ring Failed"); ftdmchan 593 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_RINGING); ftdmchan 594 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_set_pflag_locked(ftdmchan, WP_RINGING); ftdmchan 595 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->ring_time = ftdm_current_time_in_ms() + wp_globals.ring_on_ms; ftdmchan 600 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_txsig_offhook(ftdmchan->sockfd,&tdm_api); ftdmchan 602 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Ring-off Failed"); ftdmchan 605 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_clear_pflag_locked(ftdmchan, WP_RINGING); ftdmchan 606 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_RINGING); ftdmchan 611 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_get_usr_period(ftdmchan->sockfd, &tdm_api); ftdmchan 621 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_get_hwec_chan_status(ftdmchan->sockfd, &tdm_api); ftdmchan 628 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_enable_hwec(ftdmchan->sockfd, &tdm_api); ftdmchan 630 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "HWEC Enable Failed"); ftdmchan 638 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_get_hwec_chan_status(ftdmchan->sockfd, &tdm_api); ftdmchan 644 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_disable_hwec(ftdmchan->sockfd, &tdm_api); ftdmchan 646 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "HWEC Disable Failed"); ftdmchan 654 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_enable_dtmf_events(ftdmchan->sockfd, &tdm_api); ftdmchan 656 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Enabling of Sangoma HW DTMF failed\n"); ftdmchan 657 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "HW DTMF Enable Failed"); ftdmchan 660 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Enabled DTMF events\n"); ftdmchan 669 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_disable_dtmf_events(ftdmchan->sockfd, &tdm_api); ftdmchan 671 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Disabling of Sangoma HW DTMF failed\n"); ftdmchan 672 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "HW DTMF Disable Failed"); ftdmchan 675 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Disabled DTMF events\n"); ftdmchan 684 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_enable_loop(ftdmchan->sockfd, &tdm_api); ftdmchan 686 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Loop Enable Failed"); ftdmchan 695 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_disable_loop(ftdmchan->sockfd, &tdm_api); ftdmchan 697 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Loop Disable Failed"); ftdmchan 705 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_set_usr_period(ftdmchan->sockfd, &tdm_api, FTDM_COMMAND_OBJ_INT); ftdmchan 706 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->packet_len = ftdmchan->native_interval * (ftdmchan->effective_codec == FTDM_CODEC_SLIN ? 16 : 8); ftdmchan 712 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 714 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_write_rbs(ftdmchan->sockfd, &tdm_api, wanpipe_swap_bits(FTDM_COMMAND_OBJ_INT)); ftdmchan 722 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_read_rbs(ftdmchan->sockfd, &tdm_api, ftdmchan->physical_chan_id, &rbsbits); ftdmchan 728 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c FTDM_COMMAND_OBJ_INT = ftdmchan->rx_cas_bits; ftdmchan 736 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_set_fe_status(ftdmchan->sockfd, &tdm_api, sangoma_status); ftdmchan 742 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_get_fe_status(ftdmchan->sockfd, &tdm_api, &sangoma_status); ftdmchan 753 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", strerror(errno)); ftdmchan 776 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c rx_len = sangoma_readmsg_tdm(ftdmchan->sockfd, &hdrframe, (int)sizeof(hdrframe), data, (int)*datalen, 0); ftdmchan 780 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Read 0 bytes\n"); ftdmchan 786 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", strerror(errno)); ftdmchan 787 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 812 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c bsent = sangoma_writemsg_tdm(ftdmchan->sockfd, &hdrframe, (int)sizeof(hdrframe), data, (unsigned short)(*datalen),0); ftdmchan 848 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c result = tdmv_api_wait_socket(ftdmchan, to, &inflags); ftdmchan 853 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Poll failed"); ftdmchan 896 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_channel_t *ftdmchan = span->channels[i]; ftdmchan 898 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (!ftdmchan->mod_data) { ftdmchan 901 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c pfds[j] = ftdmchan->mod_data; ftdmchan 910 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_WINK) || ftdm_test_flag(ftdmchan, FTDM_CHANNEL_FLASH)) { ftdmchan 916 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_RINGING)) { ftdmchan 920 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_RINGING) && ftdm_current_time_in_ms() >= ftdmchan->ring_time) { ftdmchan 924 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdm_test_pflag(ftdmchan, WP_RINGING)) { ftdmchan 925 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_txsig_offhook(ftdmchan->sockfd,&tdm_api); ftdmchan 927 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Ring-off Failed"); ftdmchan 931 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_clear_pflag_locked(ftdmchan, WP_RINGING); ftdmchan 932 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->ring_time = ftdm_current_time_in_ms() + wp_globals.ring_off_ms; ftdmchan 934 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_txsig_start(ftdmchan->sockfd,&tdm_api); ftdmchan 936 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Ring Failed"); ftdmchan 940 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_set_pflag_locked(ftdmchan, WP_RINGING); ftdmchan 941 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->ring_time = ftdm_current_time_in_ms() + wp_globals.ring_on_ms; ftdmchan 971 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_channel_t *ftdmchan = span->channels[i]; ftdmchan 978 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_set_flag(ftdmchan, FTDM_CHANNEL_EVENT); ftdmchan 979 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->last_event_time = ftdm_current_time_in_ms(); ftdmchan 1001 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if ((err = sangoma_tdm_get_fe_alarms(ftdmchan->sockfd, &tdm_api, &alarms))) { ftdmchan 1002 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "ioctl failed (%s)", strerror(errno)); ftdmchan 1003 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->span->last_error, sizeof(ftdmchan->span->last_error), "ioctl failed (%s)", strerror(errno)); ftdmchan 1007 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if ((err = sangoma_tdm_get_fe_alarms(ftdmchan->sockfd, &tdm_api)) < 0){ ftdmchan 1008 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "ioctl failed (%s)", strerror(errno)); ftdmchan 1009 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c snprintf(ftdmchan->span->last_error, sizeof(ftdmchan->span->last_error), "ioctl failed (%s)", strerror(errno)); ftdmchan 1014 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->alarm_flags = FTDM_ALARM_NONE; ftdmchan 1017 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->alarm_flags |= FTDM_ALARM_RED; ftdmchan 1022 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->alarm_flags |= FTDM_ALARM_BLUE; ftdmchan 1027 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->alarm_flags |= FTDM_ALARM_YELLOW; ftdmchan 1071 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_channel_t *ftdmchan = span->channels[i]; ftdmchan 1075 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c sangoma_tdm_txsig_onhook(ftdmchan->sockfd,&tdm_api); ftdmchan 1083 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_channel_t *ftdmchan = span->channels[i]; ftdmchan 1087 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_read_event(ftdmchan->sockfd, &tdm_api); ftdmchan 1135 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_channel_t *ftdmchan = span->channels[i]; ftdmchan 1136 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err=sangoma_tdm_txsig_onhook(ftdmchan->sockfd,&tdm_api); ftdmchan 1170 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Ignoring wanpipe DTMF: %c, fax tones will be passed through!\n", tmp_dtmf[0]); ftdmchan 1175 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_MUTE); ftdmchan 1179 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_MUTE); ftdmchan 1180 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INUSE)) { ftdmchan 1181 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Queuing wanpipe DTMF: %c\n", tmp_dtmf[0]); ftdmchan 1182 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_channel_queue_dtmf(ftdmchan, tmp_dtmf); ftdmchan 1189 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Got wanpipe alarms %d\n", tdm_api.wp_tdm_cmd.event.wp_api_event_alarm); ftdmchan 1195 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "Unhandled wanpipe event %d\n", tdm_api.wp_tdm_cmd.event.wp_tdm_api_event_type); ftdmchan 1224 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdmchan->mod_data) { ftdmchan 1226 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c sangoma_wait_obj = ftdmchan->mod_data; ftdmchan 1227 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c ftdmchan->mod_data = NULL; ftdmchan 1232 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdmchan->sockfd != FTDM_INVALID_SOCKET) { ftdmchan 1237 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c if (ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_DETECT)) { ftdmchan 1241 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c err = sangoma_tdm_enable_dtmf_events(ftdmchan->sockfd, &tdm_api); ftdmchan 1243 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 1246 src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c sangoma_close(&ftdmchan->sockfd); ftdmchan 261 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_channel_t *ftdmchan; ftdmchan 266 src/ftmod/ftmod_zt/ftmod_zt.c if (sockfd != ZT_INVALID_SOCKET && ftdm_span_add_channel(span, sockfd, type, &ftdmchan) == FTDM_SUCCESS) { ftdmchan 274 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->type == FTDM_CHAN_TYPE_DQ921) { ftdmchan 282 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 344 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 350 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->type != FTDM_CHAN_TYPE_DQ921 && ftdmchan->type != FTDM_CHAN_TYPE_DQ931) { ftdmchan 352 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.SET_BLOCKSIZE, &len)) { ftdmchan 354 src/ftmod/ftmod_zt/ftmod_zt.c chanpath, ftdmchan->span_id, ftdmchan->chan_id, sockfd, strerror(errno)); ftdmchan 359 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->packet_len = len; ftdmchan 360 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->effective_interval = ftdmchan->native_interval = ftdmchan->packet_len / 8; ftdmchan 362 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->effective_codec == FTDM_CODEC_SLIN) { ftdmchan 363 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->packet_len *= 2; ftdmchan 368 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 373 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->type == FTDM_CHAN_TYPE_DQ921) { 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, hardware signaling is not HDLC, fix your Zap/DAHDI configuration!\n", chanpath, ftdmchan->span_id, ftdmchan->chan_id, sockfd); ftdmchan 385 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 387 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->rate = 8000; ftdmchan 388 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->physical_span_id = ztp.span_no; ftdmchan 389 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->physical_chan_id = ztp.chan_no; ftdmchan 393 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->native_codec = ftdmchan->effective_codec = FTDM_CODEC_ALAW; ftdmchan 395 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->native_codec = ftdmchan->effective_codec = FTDM_CODEC_ULAW; ftdmchan 399 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->span->trunk_type == FTDM_TRUNK_E1) { ftdmchan 405 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->native_codec = ftdmchan->effective_codec = type; ftdmchan 414 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 420 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_copy_string(ftdmchan->chan_name, name, sizeof(ftdmchan->chan_name)); ftdmchan 423 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_copy_string(ftdmchan->chan_number, number, sizeof(ftdmchan->chan_number)); ftdmchan 591 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_channel_set_feature(ftdmchan, FTDM_CHANNEL_FEATURE_INTERVAL); ftdmchan 593 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->type == FTDM_CHAN_TYPE_DQ921 || ftdmchan->type == FTDM_CHAN_TYPE_DQ931) { ftdmchan 594 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->native_codec = ftdmchan->effective_codec = FTDM_CODEC_NONE; ftdmchan 596 src/ftmod/ftmod_zt/ftmod_zt.c int blocksize = zt_globals.codec_ms * (ftdmchan->rate / 1000); ftdmchan 598 src/ftmod/ftmod_zt/ftmod_zt.c if ((err = ioctl(ftdmchan->sockfd, codes.SET_BLOCKSIZE, &blocksize))) { ftdmchan 599 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", strerror(errno)); ftdmchan 602 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->effective_interval = ftdmchan->native_interval; ftdmchan 603 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->packet_len = blocksize; ftdmchan 604 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->native_codec = ftdmchan->effective_codec; ftdmchan 607 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->type == FTDM_CHAN_TYPE_B) { ftdmchan 609 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.AUDIOMODE, &one)) { ftdmchan 610 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", strerror(errno)); ftdmchan 611 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_log(FTDM_LOG_ERROR, "%s\n", ftdmchan->last_error); ftdmchan 619 src/ftmod/ftmod_zt/ftmod_zt.c gains.chan_no = ftdmchan->physical_chan_id; ftdmchan 620 src/ftmod/ftmod_zt/ftmod_zt.c zt_build_gains(&gains, zt_globals.rxgain, zt_globals.txgain, ftdmchan->native_codec); ftdmchan 628 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.SETGAINS, &gains) < 0) { ftdmchan 629 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 636 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 638 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 640 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.ECHOCANCEL, &len)) { ftdmchan 641 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 644 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.ECHOTRAIN, &len)) { ftdmchan 645 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 682 src/ftmod/ftmod_zt/ftmod_zt.c err = ioctl(ftdmchan->sockfd, codes.ECHOCANCEL, &level); ftdmchan 688 src/ftmod/ftmod_zt/ftmod_zt.c err = ioctl(ftdmchan->sockfd, codes.ECHOCANCEL, &level); ftdmchan 695 src/ftmod/ftmod_zt/ftmod_zt.c err = ioctl(ftdmchan->sockfd, codes.ECHOTRAIN, &level); ftdmchan 701 src/ftmod/ftmod_zt/ftmod_zt.c err = ioctl(ftdmchan->sockfd, codes.ECHOTRAIN, &level); ftdmchan 708 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.HOOK, &command)) { ftdmchan 709 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "OFFHOOK Failed"); ftdmchan 712 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_OFFHOOK); ftdmchan 718 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.HOOK, &command)) { ftdmchan 719 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "ONHOOK Failed"); ftdmchan 722 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_OFFHOOK); ftdmchan 728 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.HOOK, &command)) { ftdmchan 729 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "FLASH Failed"); 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), "WINK Failed"); ftdmchan 746 src/ftmod/ftmod_zt/ftmod_zt.c if (ioctl(ftdmchan->sockfd, codes.HOOK, &command)) { ftdmchan 747 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Ring Failed"); ftdmchan 750 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_set_flag_locked(ftdmchan, FTDM_CHANNEL_RINGING); 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), "Ring-off failed"); ftdmchan 760 src/ftmod/ftmod_zt/ftmod_zt.c ftdm_clear_flag_locked(ftdmchan, FTDM_CHANNEL_RINGING); ftdmchan 766 src/ftmod/ftmod_zt/ftmod_zt.c if (!(err = ioctl(ftdmchan->sockfd, codes.GET_BLOCKSIZE, &ftdmchan->packet_len))) { ftdmchan 767 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->native_interval = ftdmchan->packet_len / 8; ftdmchan 768 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->effective_codec == FTDM_CODEC_SLIN) { ftdmchan 769 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->packet_len *= 2; ftdmchan 771 src/ftmod/ftmod_zt/ftmod_zt.c FTDM_COMMAND_OBJ_INT = ftdmchan->native_interval; ftdmchan 780 src/ftmod/ftmod_zt/ftmod_zt.c if (!(err = ioctl(ftdmchan->sockfd, codes.SET_BLOCKSIZE, &len))) { ftdmchan 781 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->packet_len = len; ftdmchan 782 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->effective_interval = ftdmchan->native_interval = ftdmchan->packet_len / 8; ftdmchan 784 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->effective_codec == FTDM_CODEC_SLIN) { ftdmchan 785 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->packet_len *= 2; ftdmchan 793 src/ftmod/ftmod_zt/ftmod_zt.c err = ioctl(ftdmchan->sockfd, codes.SETTXBITS, &bits); ftdmchan 798 src/ftmod/ftmod_zt/ftmod_zt.c err = ioctl(ftdmchan->sockfd, codes.GETRXBITS, &ftdmchan->rx_cas_bits); ftdmchan 800 src/ftmod/ftmod_zt/ftmod_zt.c FTDM_COMMAND_OBJ_INT = ftdmchan->rx_cas_bits; ftdmchan 807 src/ftmod/ftmod_zt/ftmod_zt.c err = ioctl(ftdmchan->sockfd, codes.FLUSH, &flushmode); ftdmchan 813 src/ftmod/ftmod_zt/ftmod_zt.c err = ioctl(ftdmchan->sockfd, codes.FLUSH, &flushmode); ftdmchan 819 src/ftmod/ftmod_zt/ftmod_zt.c err = ioctl(ftdmchan->sockfd, codes.FLUSH, &flushmode); ftdmchan 828 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", strerror(errno)); ftdmchan 846 src/ftmod/ftmod_zt/ftmod_zt.c info.span_no = ftdmchan->physical_span_id; ftdmchan 849 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "ioctl failed (%s)", strerror(errno)); ftdmchan 850 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->span->last_error, sizeof(ftdmchan->span->last_error), "ioctl failed (%s)", strerror(errno)); ftdmchan 854 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->alarm_flags = info.alarms; ftdmchan 886 src/ftmod/ftmod_zt/ftmod_zt.c pfds[0].fd = ftdmchan->sockfd; ftdmchan 902 src/ftmod/ftmod_zt/ftmod_zt.c snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "Poll failed"); ftdmchan 1085 src/ftmod/ftmod_zt/ftmod_zt.c if ((r = read(ftdmchan->sockfd, data, *datalen)) > 0) { ftdmchan 1096 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->type == FTDM_CHAN_TYPE_DQ921) { ftdmchan 1117 src/ftmod/ftmod_zt/ftmod_zt.c if (ftdmchan->type == FTDM_CHAN_TYPE_DQ921) { ftdmchan 1122 src/ftmod/ftmod_zt/ftmod_zt.c w = write(ftdmchan->sockfd, data, bytes); ftdmchan 1139 src/ftmod/ftmod_zt/ftmod_zt.c close(ftdmchan->sockfd); ftdmchan 1140 src/ftmod/ftmod_zt/ftmod_zt.c ftdmchan->sockfd = ZT_INVALID_SOCKET; ftdmchan 456 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 457 src/include/freetdm.h #define FIO_CHANNEL_OUTGOING_CALL_ARGS (ftdm_channel_t *ftdmchan) ftdmchan 458 src/include/freetdm.h #define FIO_CHANNEL_SET_SIG_STATUS_ARGS (ftdm_channel_t *ftdmchan, ftdm_signaling_status_t status) ftdmchan 459 src/include/freetdm.h #define FIO_CHANNEL_GET_SIG_STATUS_ARGS (ftdm_channel_t *ftdmchan, ftdm_signaling_status_t *status) ftdmchan 465 src/include/freetdm.h #define FIO_EVENT_CB_ARGS (ftdm_channel_t *ftdmchan, ftdm_event_t *event) ftdmchan 468 src/include/freetdm.h #define FIO_OPEN_ARGS (ftdm_channel_t *ftdmchan) ftdmchan 469 src/include/freetdm.h #define FIO_CLOSE_ARGS (ftdm_channel_t *ftdmchan) ftdmchan 470 src/include/freetdm.h #define FIO_CHANNEL_DESTROY_ARGS (ftdm_channel_t *ftdmchan) ftdmchan 472 src/include/freetdm.h #define FIO_COMMAND_ARGS (ftdm_channel_t *ftdmchan, ftdm_command_t command, void *obj) ftdmchan 473 src/include/freetdm.h #define FIO_WAIT_ARGS (ftdm_channel_t *ftdmchan, ftdm_wait_flag_t *flags, int32_t to) ftdmchan 474 src/include/freetdm.h #define FIO_GET_ALARMS_ARGS (ftdm_channel_t *ftdmchan) ftdmchan 475 src/include/freetdm.h #define FIO_READ_ARGS (ftdm_channel_t *ftdmchan, void *data, ftdm_size_t *datalen) ftdmchan 476 src/include/freetdm.h #define FIO_WRITE_ARGS (ftdm_channel_t *ftdmchan, void *data, ftdm_size_t *datalen) ftdmchan 602 src/include/freetdm.h #define ftdm_channel_call_answer(ftdmchan) _ftdm_channel_call_answer(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) ftdmchan 605 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 608 src/include/freetdm.h #define ftdm_channel_call_place(ftdmchan) _ftdm_channel_call_place(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) ftdmchan 611 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 614 src/include/freetdm.h #define ftdm_channel_call_indicate(ftdmchan, indication) _ftdm_channel_call_indicate(__FILE__, __FUNCTION__, __LINE__, (ftdmchan), (indication)) ftdmchan 617 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 620 src/include/freetdm.h #define ftdm_channel_call_hangup(ftdmchan) _ftdm_channel_call_hangup(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) ftdmchan 623 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 626 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 629 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 632 src/include/freetdm.h #define ftdm_channel_call_hold(ftdmchan) _ftdm_channel_call_hold(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) ftdmchan 635 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 638 src/include/freetdm.h #define ftdm_channel_call_unhold(ftdmchan) _ftdm_channel_call_unhold(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) ftdmchan 641 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 644 src/include/freetdm.h FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_answered(const ftdm_channel_t *ftdmchan); ftdmchan 647 src/include/freetdm.h FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_busy(const ftdm_channel_t *ftdmchan); ftdmchan 650 src/include/freetdm.h FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_hangup(const ftdm_channel_t *ftdmchan); ftdmchan 653 src/include/freetdm.h FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_done(const ftdm_channel_t *ftdmchan); ftdmchan 656 src/include/freetdm.h FT_DECLARE(ftdm_bool_t) ftdm_channel_call_check_hold(const ftdm_channel_t *ftdmchan); ftdmchan 659 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_set_sig_status(ftdm_channel_t *ftdmchan, ftdm_signaling_status_t status); ftdmchan 662 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_get_sig_status(ftdm_channel_t *ftdmchan, ftdm_signaling_status_t *status); ftdmchan 677 src/include/freetdm.h FT_DECLARE(void) ftdm_channel_set_private(ftdm_channel_t *ftdmchan, void *pvt); ftdmchan 686 src/include/freetdm.h FT_DECLARE(void *) ftdm_channel_get_private(const ftdm_channel_t *ftdmchan); ftdmchan 697 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_clear_token(ftdm_channel_t *ftdmchan, const char *token); ftdmchan 706 src/include/freetdm.h FT_DECLARE(void) ftdm_channel_replace_token(ftdm_channel_t *ftdmchan, const char *old_token, const char *new_token); ftdmchan 718 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_add_token(ftdm_channel_t *ftdmchan, char *token, int end); ftdmchan 729 src/include/freetdm.h FT_DECLARE(const char *) ftdm_channel_get_token(const ftdm_channel_t *ftdmchan, uint32_t tokenid); ftdmchan 738 src/include/freetdm.h FT_DECLARE(uint32_t) ftdm_channel_get_token_count(const ftdm_channel_t *ftdmchan); ftdmchan 747 src/include/freetdm.h FT_DECLARE(uint32_t) ftdm_channel_get_io_interval(const ftdm_channel_t *ftdmchan); ftdmchan 756 src/include/freetdm.h FT_DECLARE(uint32_t) ftdm_channel_get_io_packet_len(const ftdm_channel_t *ftdmchan); ftdmchan 765 src/include/freetdm.h FT_DECLARE(ftdm_codec_t) ftdm_channel_get_codec(const ftdm_channel_t *ftdmchan); ftdmchan 774 src/include/freetdm.h FT_DECLARE(const char *) ftdm_channel_get_last_error(const ftdm_channel_t *ftdmchan); ftdmchan 785 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_get_alarms(ftdm_channel_t *ftdmchan, ftdm_alarm_flag_t *alarmbits); ftdmchan 794 src/include/freetdm.h FT_DECLARE(ftdm_chan_type_t) ftdm_channel_get_type(const ftdm_channel_t *ftdmchan); ftdmchan 806 src/include/freetdm.h FT_DECLARE(ftdm_size_t) ftdm_channel_dequeue_dtmf(ftdm_channel_t *ftdmchan, char *dtmf, ftdm_size_t len); ftdmchan 813 src/include/freetdm.h FT_DECLARE(void) ftdm_channel_flush_dtmf(ftdm_channel_t *ftdmchan); ftdmchan 877 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_add_to_group(const char* name, ftdm_channel_t* ftdmchan); ftdmchan 880 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_remove_from_group(ftdm_group_t* group, ftdm_channel_t* ftdmchan); ftdmchan 913 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 929 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 945 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 958 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_close(ftdm_channel_t **ftdmchan); ftdmchan 970 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_command(ftdm_channel_t *ftdmchan, ftdm_command_t command, void *arg); ftdmchan 982 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 994 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_read(ftdm_channel_t *ftdmchan, void *data, ftdm_size_t *datalen); ftdmchan 1019 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 1025 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 1029 src/include/freetdm.h FT_DECLARE(const char *) ftdm_channel_get_var(ftdm_channel_t *ftdmchan, const char *var_name); ftdmchan 1038 src/include/freetdm.h FT_DECLARE(ftdm_iterator_t *) ftdm_channel_get_var_iterator(const ftdm_channel_t *ftdmchan, ftdm_iterator_t *iter); ftdmchan 1058 src/include/freetdm.h FT_DECLARE(ftdm_span_t *) ftdm_channel_get_span(const ftdm_channel_t *ftdmchan); ftdmchan 1061 src/include/freetdm.h FT_DECLARE(uint32_t) ftdm_channel_get_span_id(const ftdm_channel_t *ftdmchan); ftdmchan 1064 src/include/freetdm.h FT_DECLARE(uint32_t) ftdm_channel_get_ph_span_id(const ftdm_channel_t *ftdmchan); ftdmchan 1067 src/include/freetdm.h FT_DECLARE(const char *) ftdm_channel_get_span_name(const ftdm_channel_t *ftdmchan); ftdmchan 1070 src/include/freetdm.h FT_DECLARE(uint32_t) ftdm_channel_get_id(const ftdm_channel_t *ftdmchan); ftdmchan 1073 src/include/freetdm.h FT_DECLARE(const char *) ftdm_channel_get_name(const ftdm_channel_t *ftdmchan); ftdmchan 1076 src/include/freetdm.h FT_DECLARE(const char *) ftdm_channel_get_number(const ftdm_channel_t *ftdmchan); ftdmchan 1079 src/include/freetdm.h FT_DECLARE(uint32_t) ftdm_channel_get_ph_id(const ftdm_channel_t *ftdmchan); ftdmchan 1256 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 1274 src/include/freetdm.h FT_DECLARE(ftdm_status_t) ftdm_channel_init(ftdm_channel_t *ftdmchan); ftdmchan 526 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 529 src/include/private/ftdm_core.h ftdm_channel_t *ftdmchan, ftdm_channel_state_t state, int wait); ftdmchan 534 src/include/private/ftdm_core.h FT_DECLARE(ftdm_status_t) ftdm_channel_use(ftdm_channel_t *ftdmchan); ftdmchan 545 src/include/private/ftdm_core.h FT_DECLARE(ftdm_status_t) ftdm_channel_complete_state(ftdm_channel_t *ftdmchan); ftdmchan 553 src/include/private/ftdm_core.h FT_DECLARE(void) ftdm_channel_clear_needed_tones(ftdm_channel_t *ftdmchan); ftdmchan 554 src/include/private/ftdm_core.h FT_DECLARE(void) ftdm_channel_rotate_tokens(ftdm_channel_t *ftdmchan); ftdmchan 559 src/include/private/ftdm_core.h FT_DECLARE(ftdm_status_t) ftdm_channel_done(ftdm_channel_t *ftdmchan); ftdmchan 562 src/include/private/ftdm_core.h FT_DECLARE(ftdm_status_t) ftdm_channel_open_chan(ftdm_channel_t *ftdmchan); ftdmchan 593 src/include/private/ftdm_core.h FT_DECLARE(ftdm_status_t) ftdm_channel_queue_dtmf(ftdm_channel_t *ftdmchan, const char *dtmf); ftdmchan 599 src/include/private/ftdm_core.h FT_DECLARE(void) ftdm_channel_clear_detected_tones(ftdm_channel_t *ftdmchan); ftdmchan 375 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 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 234 src/testsangomaboost.c ftdm_channel_t *ftdmchan = NULL; ftdmchan 249 src/testsangomaboost.c status = ftdm_channel_open_by_span(ftdm_span_get_id(span), FTDM_TOP_DOWN, &caller_data, &ftdmchan); ftdmchan 256 src/testsangomaboost.c g_outgoing_channel = ftdmchan; ftdmchan 260 src/testsangomaboost.c ftdm_channel_set_caller_data(ftdmchan, &caller_data); ftdmchan 262 src/testsangomaboost.c status = ftdm_channel_call_place(ftdmchan); ftdmchan 269 src/testsangomaboost.c ftdm_channel_init(ftdmchan);