pritap 175 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap_t *pritap = span->signal_data; pritap 181 src/ftmod/ftmod_pritap/ftmod_pritap.c pri_set_debug(pritap->pri, parse_debug(argv[2])); pritap 348 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap_t *pritap = pri_get_userdata(pri); pritap 351 src/ftmod/ftmod_pritap/ftmod_pritap.c if ((zst = ftdm_channel_read(pritap->dchan, buf, &len)) != FTDM_SUCCESS) { pritap 353 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_log(FTDM_LOG_CRIT, "span %d D channel read fail! [%s]\n", pritap->span->span_id, pritap->dchan->last_error); pritap 355 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_log(FTDM_LOG_CRIT, "span %d D channel read timeout!\n", pritap->span->span_id); pritap 371 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap_t *pritap = pri_get_userdata(pri); pritap 374 src/ftmod/ftmod_pritap/ftmod_pritap.c if (ftdm_channel_write(pritap->dchan, buf, buflen, &len) != FTDM_SUCCESS) { pritap 375 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_log(FTDM_LOG_CRIT, "span %d D channel write failed! [%s]\n", pritap->span->span_id, pritap->dchan->last_error); pritap 391 src/ftmod/ftmod_pritap/ftmod_pritap.c static passive_call_t *tap_pri_get_pcall_bycrv(pritap_t *pritap, int crv) pritap 396 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_lock(pritap->pcalls_lock); pritap 398 src/ftmod/ftmod_pritap/ftmod_pritap.c for (i = 0; i < ftdm_array_len(pritap->pcalls); i++) { pritap 399 src/ftmod/ftmod_pritap/ftmod_pritap.c tstcrv = pritap->pcalls[i].callref ? tap_pri_get_crv(pritap->pri, pritap->pcalls[i].callref) : 0; pritap 400 src/ftmod/ftmod_pritap/ftmod_pritap.c if (pritap->pcalls[i].callref && tstcrv == crv) { pritap 401 src/ftmod/ftmod_pritap/ftmod_pritap.c if (!pritap->pcalls[i].inuse) { pritap 403 src/ftmod/ftmod_pritap/ftmod_pritap.c crv, i, pritap->span->name, pritap->pcalls[i].callref); pritap 407 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_unlock(pritap->pcalls_lock); pritap 409 src/ftmod/ftmod_pritap/ftmod_pritap.c return &pritap->pcalls[i]; pritap 413 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_unlock(pritap->pcalls_lock); pritap 418 src/ftmod/ftmod_pritap/ftmod_pritap.c static passive_call_t *tap_pri_get_pcall(pritap_t *pritap, void *callref) pritap 423 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_lock(pritap->pcalls_lock); pritap 425 src/ftmod/ftmod_pritap/ftmod_pritap.c for (i = 0; i < ftdm_array_len(pritap->pcalls); i++) { pritap 426 src/ftmod/ftmod_pritap/ftmod_pritap.c if (pritap->pcalls[i].callref && !pritap->pcalls[i].inuse) { pritap 427 src/ftmod/ftmod_pritap/ftmod_pritap.c crv = tap_pri_get_crv(pritap->pri, pritap->pcalls[i].callref); pritap 430 src/ftmod/ftmod_pritap/ftmod_pritap.c crv, pritap->pcalls[i].callref, pritap->span->name, i); pritap 431 src/ftmod/ftmod_pritap/ftmod_pritap.c pri_passive_destroycall(pritap->pri, pritap->pcalls[i].callref); pritap 432 src/ftmod/ftmod_pritap/ftmod_pritap.c memset(&pritap->pcalls[i], 0, sizeof(pritap->pcalls[0])); pritap 434 src/ftmod/ftmod_pritap/ftmod_pritap.c if (callref == pritap->pcalls[i].callref) { pritap 435 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->pcalls[i].inuse = 1; pritap 437 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_unlock(pritap->pcalls_lock); pritap 439 src/ftmod/ftmod_pritap/ftmod_pritap.c return &pritap->pcalls[i]; pritap 443 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_unlock(pritap->pcalls_lock); pritap 448 src/ftmod/ftmod_pritap/ftmod_pritap.c static void tap_pri_put_pcall(pritap_t *pritap, void *callref) pritap 455 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_log(FTDM_LOG_ERROR, "Cannot put pcall for null callref in span %s\n", pritap->span->name); pritap 459 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_lock(pritap->pcalls_lock); pritap 461 src/ftmod/ftmod_pritap/ftmod_pritap.c crv = tap_pri_get_crv(pritap->pri, callref); pritap 462 src/ftmod/ftmod_pritap/ftmod_pritap.c for (i = 0; i < ftdm_array_len(pritap->pcalls); i++) { pritap 463 src/ftmod/ftmod_pritap/ftmod_pritap.c if (!pritap->pcalls[i].callref) { pritap 466 src/ftmod/ftmod_pritap/ftmod_pritap.c tstcrv = tap_pri_get_crv(pritap->pri, pritap->pcalls[i].callref); pritap 469 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, crv, pritap->pcalls[i].callref); pritap 470 src/ftmod/ftmod_pritap/ftmod_pritap.c if (!pritap->pcalls[i].inuse) { pritap 472 src/ftmod/ftmod_pritap/ftmod_pritap.c i, pritap->span->name, crv, pritap->pcalls[i].callref); pritap 474 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->pcalls[i].inuse = 0; pritap 478 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_unlock(pritap->pcalls_lock); pritap 481 src/ftmod/ftmod_pritap/ftmod_pritap.c static __inline__ ftdm_channel_t *tap_pri_get_fchan(pritap_t *pritap, passive_call_t *pcall, int channel) pritap 485 src/ftmod/ftmod_pritap/ftmod_pritap.c if (!chanpos || chanpos > pritap->span->chan_count) { pritap 486 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_log(FTDM_LOG_CRIT, "Invalid pri tap channel %d requested in span %s\n", channel, pritap->span->name); pritap 490 src/ftmod/ftmod_pritap/ftmod_pritap.c fchan = pritap->span->channels[PRI_CHANNEL(channel)]; pritap 492 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_log(FTDM_LOG_ERROR, "Channel %d requested in span %s is already in use!\n", channel, pritap->span->name); pritap 497 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_log(FTDM_LOG_ERROR, "Could not open tap channel %d requested in span %s\n", channel, pritap->span->name); pritap 515 src/ftmod/ftmod_pritap/ftmod_pritap.c static void handle_pri_passive_event(pritap_t *pritap, pri_event *e) pritap 523 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap_t *peertap = pritap->peerspan->signal_data; pritap 530 src/ftmod/ftmod_pritap/ftmod_pritap.c crv = tap_pri_get_crv(pritap->pri, e->ring.call); pritap 532 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->ring.channel), PRI_CHANNEL(e->ring.channel), crv); pritap 533 src/ftmod/ftmod_pritap/ftmod_pritap.c pcall = tap_pri_get_pcall_bycrv(pritap, crv); pritap 538 src/ftmod/ftmod_pritap/ftmod_pritap.c pcall = tap_pri_get_pcall(pritap, NULL); pritap 551 src/ftmod/ftmod_pritap/ftmod_pritap.c crv = tap_pri_get_crv(pritap->pri, e->ring.call); pritap 553 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->proceeding.channel), PRI_CHANNEL(e->proceeding.channel), crv); pritap 557 src/ftmod/ftmod_pritap/ftmod_pritap.c crv = tap_pri_get_crv(pritap->pri, e->proceeding.call); pritap 561 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->proceeding.channel), PRI_CHANNEL(e->proceeding.channel), crv); pritap 567 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->proceeding.channel), PRI_CHANNEL(e->proceeding.channel), crv); pritap 574 src/ftmod/ftmod_pritap/ftmod_pritap.c peerpcall = tap_pri_get_pcall(pritap, NULL); pritap 577 src/ftmod/ftmod_pritap/ftmod_pritap.c crv, pritap->span->name); pritap 596 src/ftmod/ftmod_pritap/ftmod_pritap.c fchan = tap_pri_get_fchan(pritap, pcall, e->proceeding.channel); pritap 599 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->proceeding.channel), PRI_CHANNEL(e->proceeding.channel), crv); pritap 619 src/ftmod/ftmod_pritap/ftmod_pritap.c crv = tap_pri_get_crv(pritap->pri, e->answer.call); pritap 621 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->answer.channel), PRI_CHANNEL(e->answer.channel), crv); pritap 622 src/ftmod/ftmod_pritap/ftmod_pritap.c if (!(pcall = tap_pri_get_pcall_bycrv(pritap, crv))) { pritap 625 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->proceeding.channel), PRI_CHANNEL(e->proceeding.channel), crv); pritap 632 src/ftmod/ftmod_pritap/ftmod_pritap.c crv = tap_pri_get_crv(pritap->pri, e->hangup.call); pritap 634 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->answer.channel), PRI_CHANNEL(e->answer.channel), crv); pritap 636 src/ftmod/ftmod_pritap/ftmod_pritap.c if (!(pcall = tap_pri_get_pcall_bycrv(pritap, crv))) { pritap 639 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->proceeding.channel), PRI_CHANNEL(e->proceeding.channel), crv); pritap 648 src/ftmod/ftmod_pritap/ftmod_pritap.c crv = tap_pri_get_crv(pritap->pri, e->hangup.call); pritap 650 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->answer.channel), PRI_CHANNEL(e->answer.channel), crv); pritap 651 src/ftmod/ftmod_pritap/ftmod_pritap.c tap_pri_put_pcall(pritap, e->hangup.call); pritap 656 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_log(FTDM_LOG_DEBUG, "Ignoring passive event %s on span %s\n", pri_event2str(e->gen.e), pritap->span->name); pritap 665 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap_t *pritap = span->signal_data; pritap 672 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span = span; pritap 676 src/ftmod/ftmod_pritap/ftmod_pritap.c if (ftdm_channel_open(span->span_id, pritap->dchan->chan_id, &pritap->dchan) != FTDM_SUCCESS) { pritap 681 src/ftmod/ftmod_pritap/ftmod_pritap.c if ((pritap->pri = pri_new_cb(pritap->dchan->sockfd, PRI_NETWORK, PRI_SWITCH_NI2, pri_io_read, pri_io_write, pritap))){ pritap 682 src/ftmod/ftmod_pritap/ftmod_pritap.c pri_set_debug(pritap->pri, pritap->debug); pritap 688 src/ftmod/ftmod_pritap/ftmod_pritap.c dpoll.fd = pritap->dchan->sockfd; pritap 709 src/ftmod/ftmod_pritap/ftmod_pritap.c pri_schedule_run(pritap->pri); pritap 713 src/ftmod/ftmod_pritap/ftmod_pritap.c event = pri_read_event(pritap->pri); pritap 715 src/ftmod/ftmod_pritap/ftmod_pritap.c handle_pri_passive_event(pritap, event); pritap 729 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_clear_flag(pritap, PRITAP_RUNNING); pritap 736 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap_t *pritap = span->signal_data; pritap 738 src/ftmod/ftmod_pritap/ftmod_pritap.c if (!ftdm_test_flag(pritap, PRITAP_RUNNING)) { pritap 748 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_destroy(&pritap->pcalls_lock); pritap 808 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap_t *pritap = span->signal_data; pritap 810 src/ftmod/ftmod_pritap/ftmod_pritap.c if (ftdm_test_flag(pritap, PRITAP_RUNNING)) { pritap 814 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_create(&pritap->pcalls_lock); pritap 819 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_set_flag(pritap, PRITAP_RUNNING); pritap 835 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap_t *pritap = NULL; pritap 877 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap = ftdm_calloc(1, sizeof(*pritap)); pritap 878 src/ftmod/ftmod_pritap/ftmod_pritap.c if (!pritap) { pritap 882 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->debug = parse_debug(debug); pritap 883 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->dchan = dchan; pritap 884 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->peerspan = peerspan; pritap 891 src/ftmod/ftmod_pritap/ftmod_pritap.c span->signal_data = pritap;