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 346 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap_t *pritap = pri_get_userdata(pri); pritap 349 src/ftmod/ftmod_pritap/ftmod_pritap.c if ((zst = ftdm_channel_read(pritap->dchan, buf, &len)) != FTDM_SUCCESS) { pritap 351 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 353 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_log(FTDM_LOG_CRIT, "span %d D channel read timeout!\n", pritap->span->span_id); pritap 369 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap_t *pritap = pri_get_userdata(pri); pritap 372 src/ftmod/ftmod_pritap/ftmod_pritap.c if (ftdm_channel_write(pritap->dchan, buf, buflen, &len) != FTDM_SUCCESS) { pritap 373 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 389 src/ftmod/ftmod_pritap/ftmod_pritap.c static passive_call_t *tap_pri_get_pcall_bycrv(pritap_t *pritap, int crv) pritap 394 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_lock(pritap->pcalls_lock); pritap 396 src/ftmod/ftmod_pritap/ftmod_pritap.c for (i = 0; i < ftdm_array_len(pritap->pcalls); i++) { pritap 397 src/ftmod/ftmod_pritap/ftmod_pritap.c tstcrv = pritap->pcalls[i].callref ? tap_pri_get_crv(pritap->pri, pritap->pcalls[i].callref) : 0; pritap 398 src/ftmod/ftmod_pritap/ftmod_pritap.c if (pritap->pcalls[i].callref && tstcrv == crv) { pritap 399 src/ftmod/ftmod_pritap/ftmod_pritap.c if (!pritap->pcalls[i].inuse) { pritap 401 src/ftmod/ftmod_pritap/ftmod_pritap.c crv, i, pritap->span->name, pritap->pcalls[i].callref); pritap 405 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_unlock(pritap->pcalls_lock); pritap 407 src/ftmod/ftmod_pritap/ftmod_pritap.c return &pritap->pcalls[i]; pritap 411 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_unlock(pritap->pcalls_lock); pritap 416 src/ftmod/ftmod_pritap/ftmod_pritap.c static passive_call_t *tap_pri_get_pcall(pritap_t *pritap, void *callref) pritap 421 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_lock(pritap->pcalls_lock); pritap 423 src/ftmod/ftmod_pritap/ftmod_pritap.c for (i = 0; i < ftdm_array_len(pritap->pcalls); i++) { pritap 424 src/ftmod/ftmod_pritap/ftmod_pritap.c if (pritap->pcalls[i].callref && !pritap->pcalls[i].inuse) { pritap 425 src/ftmod/ftmod_pritap/ftmod_pritap.c crv = tap_pri_get_crv(pritap->pri, pritap->pcalls[i].callref); pritap 428 src/ftmod/ftmod_pritap/ftmod_pritap.c crv, pritap->pcalls[i].callref, pritap->span->name, i); pritap 429 src/ftmod/ftmod_pritap/ftmod_pritap.c pri_passive_destroycall(pritap->pri, pritap->pcalls[i].callref); pritap 430 src/ftmod/ftmod_pritap/ftmod_pritap.c memset(&pritap->pcalls[i], 0, sizeof(pritap->pcalls[0])); pritap 432 src/ftmod/ftmod_pritap/ftmod_pritap.c if (callref == pritap->pcalls[i].callref) { pritap 433 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->pcalls[i].inuse = 1; pritap 435 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_unlock(pritap->pcalls_lock); pritap 437 src/ftmod/ftmod_pritap/ftmod_pritap.c return &pritap->pcalls[i]; pritap 441 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_unlock(pritap->pcalls_lock); pritap 446 src/ftmod/ftmod_pritap/ftmod_pritap.c static void tap_pri_put_pcall(pritap_t *pritap, void *callref) pritap 453 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 457 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_lock(pritap->pcalls_lock); pritap 459 src/ftmod/ftmod_pritap/ftmod_pritap.c crv = tap_pri_get_crv(pritap->pri, callref); pritap 460 src/ftmod/ftmod_pritap/ftmod_pritap.c for (i = 0; i < ftdm_array_len(pritap->pcalls); i++) { pritap 461 src/ftmod/ftmod_pritap/ftmod_pritap.c if (!pritap->pcalls[i].callref) { pritap 464 src/ftmod/ftmod_pritap/ftmod_pritap.c tstcrv = tap_pri_get_crv(pritap->pri, pritap->pcalls[i].callref); pritap 467 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, crv, pritap->pcalls[i].callref); pritap 468 src/ftmod/ftmod_pritap/ftmod_pritap.c if (!pritap->pcalls[i].inuse) { pritap 470 src/ftmod/ftmod_pritap/ftmod_pritap.c i, pritap->span->name, crv, pritap->pcalls[i].callref); pritap 472 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->pcalls[i].inuse = 0; pritap 476 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_unlock(pritap->pcalls_lock); pritap 479 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 483 src/ftmod/ftmod_pritap/ftmod_pritap.c if (!chanpos || chanpos > pritap->span->chan_count) { pritap 484 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 488 src/ftmod/ftmod_pritap/ftmod_pritap.c fchan = pritap->span->channels[PRI_CHANNEL(channel)]; pritap 490 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 495 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 513 src/ftmod/ftmod_pritap/ftmod_pritap.c static void handle_pri_passive_event(pritap_t *pritap, pri_event *e) pritap 521 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap_t *peertap = pritap->peerspan->signal_data; pritap 528 src/ftmod/ftmod_pritap/ftmod_pritap.c crv = tap_pri_get_crv(pritap->pri, e->ring.call); pritap 530 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->ring.channel), PRI_CHANNEL(e->ring.channel), crv); pritap 531 src/ftmod/ftmod_pritap/ftmod_pritap.c pcall = tap_pri_get_pcall_bycrv(pritap, crv); pritap 536 src/ftmod/ftmod_pritap/ftmod_pritap.c pcall = tap_pri_get_pcall(pritap, NULL); pritap 549 src/ftmod/ftmod_pritap/ftmod_pritap.c crv = tap_pri_get_crv(pritap->pri, e->ring.call); pritap 551 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->proceeding.channel), PRI_CHANNEL(e->proceeding.channel), crv); pritap 555 src/ftmod/ftmod_pritap/ftmod_pritap.c crv = tap_pri_get_crv(pritap->pri, e->proceeding.call); pritap 559 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->proceeding.channel), PRI_CHANNEL(e->proceeding.channel), crv); pritap 565 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->proceeding.channel), PRI_CHANNEL(e->proceeding.channel), crv); pritap 572 src/ftmod/ftmod_pritap/ftmod_pritap.c peerpcall = tap_pri_get_pcall(pritap, NULL); pritap 575 src/ftmod/ftmod_pritap/ftmod_pritap.c crv, pritap->span->name); pritap 594 src/ftmod/ftmod_pritap/ftmod_pritap.c fchan = tap_pri_get_fchan(pritap, pcall, e->proceeding.channel); pritap 597 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->proceeding.channel), PRI_CHANNEL(e->proceeding.channel), crv); pritap 617 src/ftmod/ftmod_pritap/ftmod_pritap.c crv = tap_pri_get_crv(pritap->pri, e->answer.call); pritap 619 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->answer.channel), PRI_CHANNEL(e->answer.channel), crv); pritap 620 src/ftmod/ftmod_pritap/ftmod_pritap.c if (!(pcall = tap_pri_get_pcall_bycrv(pritap, crv))) { pritap 623 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->proceeding.channel), PRI_CHANNEL(e->proceeding.channel), crv); pritap 630 src/ftmod/ftmod_pritap/ftmod_pritap.c crv = tap_pri_get_crv(pritap->pri, e->hangup.call); pritap 632 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->answer.channel), PRI_CHANNEL(e->answer.channel), crv); pritap 634 src/ftmod/ftmod_pritap/ftmod_pritap.c if (!(pcall = tap_pri_get_pcall_bycrv(pritap, crv))) { pritap 637 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->proceeding.channel), PRI_CHANNEL(e->proceeding.channel), crv); pritap 646 src/ftmod/ftmod_pritap/ftmod_pritap.c crv = tap_pri_get_crv(pritap->pri, e->hangup.call); pritap 648 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span->name, PRI_SPAN(e->answer.channel), PRI_CHANNEL(e->answer.channel), crv); pritap 649 src/ftmod/ftmod_pritap/ftmod_pritap.c tap_pri_put_pcall(pritap, e->hangup.call); pritap 654 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 663 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap_t *pritap = span->signal_data; pritap 670 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->span = span; pritap 674 src/ftmod/ftmod_pritap/ftmod_pritap.c if (ftdm_channel_open(span->span_id, pritap->dchan->chan_id, &pritap->dchan) != FTDM_SUCCESS) { pritap 679 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 680 src/ftmod/ftmod_pritap/ftmod_pritap.c pri_set_debug(pritap->pri, pritap->debug); pritap 686 src/ftmod/ftmod_pritap/ftmod_pritap.c dpoll.fd = pritap->dchan->sockfd; pritap 707 src/ftmod/ftmod_pritap/ftmod_pritap.c pri_schedule_run(pritap->pri); pritap 711 src/ftmod/ftmod_pritap/ftmod_pritap.c event = pri_read_event(pritap->pri); pritap 713 src/ftmod/ftmod_pritap/ftmod_pritap.c handle_pri_passive_event(pritap, event); pritap 727 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_clear_flag(pritap, PRITAP_RUNNING); pritap 734 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap_t *pritap = span->signal_data; pritap 736 src/ftmod/ftmod_pritap/ftmod_pritap.c if (!ftdm_test_flag(pritap, PRITAP_RUNNING)) { pritap 746 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_destroy(&pritap->pcalls_lock); pritap 806 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap_t *pritap = span->signal_data; pritap 808 src/ftmod/ftmod_pritap/ftmod_pritap.c if (ftdm_test_flag(pritap, PRITAP_RUNNING)) { pritap 812 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_mutex_create(&pritap->pcalls_lock); pritap 817 src/ftmod/ftmod_pritap/ftmod_pritap.c ftdm_set_flag(pritap, PRITAP_RUNNING); pritap 833 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap_t *pritap = NULL; pritap 875 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap = ftdm_calloc(1, sizeof(*pritap)); pritap 876 src/ftmod/ftmod_pritap/ftmod_pritap.c if (!pritap) { pritap 880 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->debug = parse_debug(debug); pritap 881 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->dchan = dchan; pritap 882 src/ftmod/ftmod_pritap/ftmod_pritap.c pritap->peerspan = peerspan; pritap 889 src/ftmod/ftmod_pritap/ftmod_pritap.c span->signal_data = pritap;