[asterisk-dev] [asterisk-commits] mattf: trunk r150640 - in /trunk: channels/ configs/
Matthew Fredrickson
creslin at digium.com
Mon Oct 20 14:32:24 CDT 2008
Tzafrir Cohen wrote:
> On Mon, Oct 20, 2008 at 12:23:18PM -0500, Matthew Fredrickson wrote:
>> Matthew Fredrickson wrote:
>>> Kevin P. Fleming wrote:
>>>> SVN commits to the Asterisk project wrote:
>>>>
>>>>> +#ifdef PRI_SET_CHAN_MAPPING_LOGICAL
>>>>> + pri_set_chan_mapping_logical(pri->dchans[i], pri->qsigchannelmapping == DAHDI_CHAN_MAPPING_LOGICAL);
>>>>> +#endif
>>>> Please use a configure script check to determine whether this
>>>> functionality is available or not, rather than adding more #define
>>>> statements to libpri.h. This should also be done for the
>>>> discardremotehold feature.
>>>>
>>>>> #ifdef HAVE_PRI_INBANDDISCONNECT
>>>>> + } else if (!strcasecmp(v->name, "qsigchannelmapping")) {
>>>>> + if (!strcasecmp(v->value, "logical")) {
>>>>> + confp->pri.qsigchannelmapping = DAHDI_CHAN_MAPPING_LOGICAL;
>>>>> + } else if (!strcasecmp(v->value, "physical")) {
>>>>> + confp->pri.qsigchannelmapping = DAHDI_CHAN_MAPPING_PHYSICAL;
>>>>> + } else {
>>>>> + confp->pri.qsigchannelmapping = DAHDI_CHAN_MAPPING_PHYSICAL;
>>>>> + }
>>>>> + } else if (!strcasecmp(v->name, "discardremoteholdretrieval")) {
>>>>> + confp->pri.discardremoteholdretrieval = ast_true(v->value);
>>>> This code does not belong inside the HAVE_PRI_INBANDDISCONNECT
>>>> condition. Also, please report an error with LOG_ERROR if the value
>>>> supplied for qsigchannelmapping is invalid.
>>> As long as we're backing these checks out, it would also make sense to
>>> remove the old HAVE_PRI_INBANDDISCONNECT check as well...
>> Sorry, I think I misunderstood your thoughts. We can certainly add
>> additional checks for the new API calls, but (and I'm seeking some
>> outside thoughts here), perhaps it might be interesting to think about
>> mandating a minimum version of libpri here (1.4.x) for trunk/1.6.x
>> version of Asterisk (whatever this version of trunk turns into).
>>
>> The reason I ask is that some of these changes are going to require not
>> just #if's but also doing the #else as well (since there's a new API to
>> replace an old one). To keep spaghettification to a minimum, it would
>> be nice to not have to do this. We could also get rid of a number of
>> other #if HAVE_ and #ifdef PRI_... statements as well by requiring the
>> minimum version number, leaving only the #if HAVE_ to whatever is the
>> most recent API addition to libpri. Any thoughts?
>
> This is a build time test. But at run time the libpri in question might
> not have the function in question.
That's a whole class of other problems that would need to be
addressed.... (doing library version numbering properly, etc)
Matthew Fredrickson
Digium, Inc.
More information about the asterisk-dev
mailing list