const char *call_offer_ng(bencode_item_t *input, struct callmaster *m, bencode_item_t *output, const char* addr, const struct sockaddr_in6 *sin) { if (m->conf.max_sessions>0) { rwlock_lock_r(&m->hashlock); if (g_hash_table_size(m->callhash) >= m->conf.max_sessions) { rwlock_unlock_r(&m->hashlock); atomic64_inc(&m->totalstats.total_rejected_sess); atomic64_inc(&m->totalstats_interval.total_rejected_sess); ilog(LOG_ERROR, "Parallel session limit reached (%i)",m->conf.max_sessions); return "Parallel session limit reached"; } rwlock_unlock_r(&m->hashlock); } return call_offer_answer_ng(input, m, output, OP_OFFER, addr, sin); }
const char *call_answer_ng(bencode_item_t *input, struct callmaster *m, bencode_item_t *output) { return call_offer_answer_ng(input, m, output, OP_ANSWER); }