ftdm_group_find(group_id, &group);
}
- if (!group ) {
- ftdm_log(FTDM_LOG_CRIT, "GROUP NOT DEFINED!\n");
+ if (!group) {
+ ftdm_log(FTDM_LOG_ERROR, "Group %d not defined!\n", group_id);
*ftdmchan = NULL;
return FTDM_FAIL;
}
ftdm_group_channel_use_count(group, &count);
if (count >= group->chan_count) {
- ftdm_log(FTDM_LOG_CRIT, "All circuits are busy.\n");
+ ftdm_log(FTDM_LOG_ERROR, "All circuits are busy (%d channels used out of %d available).\n", count, group->chan_count);
*ftdmchan = NULL;
return FTDM_FAIL;
}
!ftdm_test_flag(check, FTDM_CHANNEL_INUSE) &&
!ftdm_test_flag(check, FTDM_CHANNEL_SUSPENDED) &&
check->state == FTDM_CHANNEL_STATE_DOWN &&
- check->type != FTDM_CHAN_TYPE_DQ921 &&
- check->type != FTDM_CHAN_TYPE_DQ931
-
+ FTDM_IS_VOICE_CHANNEL(check)
) {
ftdm_span_t* span = NULL;
ftdm_span_find(check->span_id, &span);
!ftdm_test_flag(check, FTDM_CHANNEL_INUSE) &&
!ftdm_test_flag(check, FTDM_CHANNEL_SUSPENDED) &&
check->state == FTDM_CHANNEL_STATE_DOWN &&
- check->type != FTDM_CHAN_TYPE_DQ921 &&
- check->type != FTDM_CHAN_TYPE_DQ931
-
+ FTDM_IS_VOICE_CHANNEL(check)
) {
if (span && span->channel_request) {
ftdm_mutex_lock(globals.group_mutex);
+ ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "Cannot add a null channel to a group\n");
+
if (ftdm_group_find_by_name(name, &group) != FTDM_SUCCESS) {
ftdm_log(FTDM_LOG_DEBUG, "Creating new group:%s\n", name);
ftdm_group_create(&group, name);
group->channels[i]->physical_chan_id == ftdmchan->physical_chan_id) {
ftdm_mutex_unlock(globals.group_mutex);
+ ftdm_log(FTDM_LOG_DEBUG, "Channel %d:%d is already added to group %s\n",
+ group->channels[i]->physical_span_id,
+ group->channels[i]->physical_chan_id,
+ name);
return FTDM_SUCCESS;
}
}
if (group->chan_count >= FTDM_MAX_CHANNELS_GROUP) {
- ftdm_log(FTDM_LOG_CRIT, "Max number of channels exceeded (max:%d)\n", FTDM_MAX_CHANNELS_GROUP);
+ ftdm_log(FTDM_LOG_ERROR, "Max number of channels exceeded (max:%d)\n", FTDM_MAX_CHANNELS_GROUP);
ftdm_mutex_unlock(globals.group_mutex);
return FTDM_FAIL;
}
return FTDM_SUCCESS;
}
- for (chan_index = (span->chan_count - currindex); chan_index <= span->chan_count; chan_index++) {
+ for (chan_index = currindex+1; chan_index <= span->chan_count; chan_index++) {
+ if (!FTDM_IS_VOICE_CHANNEL(span->channels[chan_index])) {
+ continue;
+ }
if (ftdm_channel_add_to_group(name, span->channels[chan_index])) {
- ftdm_log(FTDM_LOG_CRIT, "Failed to add chan:%d to group:%s\n", chan_index, name);
+ ftdm_log(FTDM_LOG_ERROR, "Failed to add chan:%d to group:%s\n", chan_index, name);
}
}
return FTDM_SUCCESS;
*group = new_group;
status = FTDM_SUCCESS;
} else {
- ftdm_log(FTDM_LOG_CRIT, "Group %s was not added, we exceeded the max number of groups\n", name);
+ ftdm_log(FTDM_LOG_ERROR, "Group %s was not added, we exceeded the max number of groups\n", name);
}
ftdm_mutex_unlock(globals.mutex);
return status;