Hello,
We gave a patch for using a DCB card (Dialogic conference card) and we have it
now in production. Some problem are raising when using the conference.enter
directive maybe due to our misunderstanding of the Bayonne API. In the part
"case CONF_ENTER:" of the conferenceHandler for example we have that:
// failed
if (ptr == NULL) {
Trunk::error("conference-not-entered");
handler = &DialogicTrunk::stepHandler;
trunkSignal(TRUNK_SIGNAL_ERROR);
return true;
}
// succeeded
else {
strncpy(data.conference.name, ptr, 255);
setSymbol("confName", ptr);
handler = &DialogicTrunk::stepHandler;
stopChannel(EV_ASYNC);
_stopping_state = true;
trunkSignal(TRUNK_SIGNAL_STEP);
return true;
}
If entering fails and no error event is defined we enter an infinite loop.
Does anybody know what those instructions mean in a handler and what are the
consequences :
- stopChannel(EV_ASYNC);
- _stopping_state = true;
- trunkSignal(TRUNK_SIGNAL_STEP);
- and overall what is the difference between "return true" and "return false"
Cheers