Summary:ASTERISK-05402: Can't build asterisk channel H323 with latest CVS (30 Oct 2005)
Reporter:Tusar Ahmed (tusar)Labels:
Date Opened:2005-10-30 12:49:04.000-0600Date Closed:2005-11-10 23:02:00.000-0600
Versions:Frequency of
Description:When trying to compile channel H323 with latest CVS (30 Oct 2005) getting compiling error at RedHat 8.0 with gcc-3.2-7 .

[root@Test h323]# make optnoshared
make P_SHAREDLIB=0 opt
make[1]: Entering directory `/usr/local/src/asterisk_all/cvs_asterisk_30oct05/channels/h323'
g++ -DNDEBUG   -I../../include -Wmissing-prototypes -fPIC  -DP_USE_PRAGMA -D_REENTRANT -Wall  -I/root/openh323/../pwlib/include -DPTRACING -I/root/openh323/include -Os  -pipe -felide-constructors -x c++ -c ast_h323.cxx -o ast_h323.o
ast_h323.cxx:1:1: warning: "_GNU_SOURCE" redefined
ast_h323.cxx:1:1: warning: this is the location of the previous definition
In file included from ast_h323.cxx:45:
../../include/asterisk/channel.h:210: semicolon missing after struct
../../include/asterisk/channel.h:210: abstract declarator `
  ast_channel_spy::<anonymous struct>' used as declaration
../../include/asterisk/channel.h:210: namespace-scope anonymous aggregates must
  be static
make[1]: *** [ast_h323.o] Error 1
make[1]: Leaving directory `/usr/local/src/asterisk_all/cvs_asterisk_30oct05/channels/h323'
make: *** [optnoshared] Error 2
Comments:By: lesnet (lesnet) 2005-11-01 08:39:32.000-0600

I've been unable to compile channel H323 as well with CVS HEAD for a couple days now.

RedHat 9, gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)

Exact same problem as listed in the Description

By: Tusar Ahmed (tusar) 2005-11-01 10:48:09.000-0600

It was OK before CVS 27 Oct 2005 .

And same problem is happening using Asterisk-v.1.2.0-beta2 .

By: Bluce Ree (tasker) 2005-11-02 11:38:41.000-0600

It looks like the dev team is SIP-only for the most part since nobody has noticed the compilation errors.

Remark out this struct in channels.c at line 210:

struct ast_channel_spy {
       ast_mutex_t lock;
       ast_cond_t trigger;
       struct ast_channel_spy_queue read_queue;
       struct ast_channel_spy_queue write_queue;
       unsigned int flags;
       enum chanspy_states status;
       const char *type;
       /* The volume adjustment values are very straightforward:
          positive values cause the samples to be multiplied by that amount
          negative values cause the samples to be divided by the absolute value of that amount
       int read_vol_adjustment;
       int write_vol_adjustment;
       AST_LIST_ENTRY(ast_channel_spy) list;

The H.323 stuff will then compile. Once you've compiled, re-enable the above struct so that Asterisk will compile.

By: Tusar Ahmed (tusar) 2005-11-08 14:05:54.000-0600

Yes , You are right. After commenting the line 210 at include/asterisk/channel.h (asterisk-1.2.0-beta2) it is compiled and installed.

So , to compile H323 channel driver everytime I have to comment and uncomment the line ?

Thanks all.