Bug#759846: asterisk-chan-capi: FTBFS: chan_capi_fmt.h:230:28: error: dereferencing pointer to incomplete type

Lucas Nussbaum lucas at lucas-nussbaum.net
Sat Aug 30 18:50:46 UTC 2014


Source: asterisk-chan-capi
Version: 1.1.6-1
Severity: serious
Tags: jessie sid
User: debian-qa at lists.debian.org
Usertags: qa-ftbfs-20140830 qa-ftbfs
Justification: FTBFS on amd64

Hi,

During a rebuild of all packages in sid, your package failed to build on
amd64.

Relevant part (hopefully):
> gcc -pipe -fPIC -Wall -Wmissing-prototypes -Wmissing-declarations -g   -I./divaverbose -I/usr/include -D_REENTRANT -D_GNU_SOURCE  -Wno-unused-but-set-variable -O2   -Wno-missing-prototypes -Wno-missing-declarations -DCRYPTO  -c chan_capi.c -o chan_capi.o
> In file included from chan_capi.h:48:0,
>                  from chan_capi.c:32:
> chan_capi_fmt.h: In function 'cc_set_best_codec':
> chan_capi_fmt.h:230:28: error: dereferencing pointer to incomplete type
>   int fmt = ast_best_codec(a->nativeformats);
>                             ^
> chan_capi_fmt.h:230:12: error: too few arguments to function 'ast_best_codec'
>   int fmt = ast_best_codec(a->nativeformats);
>             ^
> In file included from chan_capi.h:25:0,
>                  from chan_capi.c:32:
> /usr/include/asterisk/channel.h:2114:20: note: declared here
>  struct ast_format *ast_best_codec(struct ast_format_cap *cap, struct ast_format *result);
>                     ^
> In file included from chan_capi.h:48:0,
>                  from chan_capi.c:32:
> chan_capi_fmt.h:232:3: error: dereferencing pointer to incomplete type
>   a->readformat     = fmt;
>    ^
> chan_capi_fmt.h:233:3: error: dereferencing pointer to incomplete type
>   a->writeformat    = fmt;
>    ^
> chan_capi_fmt.h:234:3: error: dereferencing pointer to incomplete type
>   a->rawreadformat  = fmt;
>    ^
> chan_capi_fmt.h:235:3: error: dereferencing pointer to incomplete type
>   a->rawwriteformat = fmt;
>    ^
> In file included from chan_capi.c:38:0:
> chan_capi.c: In function 'capi_channel_task':
> chan_capi.c:540:4: error: dereferencing pointer to incomplete type
>    c->name, task);
>     ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> In file included from chan_capi.c:32:0:
> chan_capi.c: In function 'pbx_capi_send_digit_begin':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:972:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> chan_capi.c: In function 'pbx_capi_send_digit':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:1032:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> In file included from chan_capi.c:38:0:
> chan_capi.c:1042:31: error: dereferencing pointer to incomplete type
>    i->vname, digit, i->state, c->_state);
>                                ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:1046:8: error: dereferencing pointer to incomplete type
>   if ((c->_state == AST_STATE_DIALING) &&
>         ^
> In file included from chan_capi.c:32:0:
> chan_capi.c: In function 'pbx_capi_alert':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:1084:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> chan_capi.c: In function 'pbx_capi_signal_proceeding':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:1123:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> chan_capi.c: In function 'capi_activehangup':
> chan_capi.c:1328:15: error: dereferencing pointer to incomplete type
>    i->cause = c->hangupcause;
>                ^
> In file included from chan_capi.c:32:0:
> chan_capi.c: In function 'pbx_capi_hangup':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:1389:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:1432:2: note: in expansion of macro 'CC_CHANNEL_PVT'
>   CC_CHANNEL_PVT(c) = NULL;
>   ^
> chan_capi.c: In function 'pbx_capi_call_build_calling_party_number':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:1457:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> chan_capi.c:1477:10: error: dereferencing pointer to incomplete type
>   CLIR = c->cid.cid_pres;
>           ^
> chan_capi.c:1478:17: error: dereferencing pointer to incomplete type
>   callernplan = c->cid.cid_ton & 0x7f;
>                  ^
> chan_capi.c:1480:7: error: dereferencing pointer to incomplete type
>   if (c->cid.cid_num) {
>        ^
> In file included from chan_capi.c:32:0:
> chan_capi.c:1481:29: error: dereferencing pointer to incomplete type
>    cc_copy_string(callerid, c->cid.cid_num, sizeof(callerid));
>                              ^
> chan_capi.h:129:62: note: in definition of macro 'cc_copy_string'
>  #define cc_copy_string(dst, src, size)  ast_copy_string(dst, src, size)
>                                                               ^
> In file included from chan_capi.c:38:0:
> chan_capi.c:1506:14: error: dereferencing pointer to incomplete type
>    i->vname, c->name, i->doB3 ? "with B3 ":" ",
>               ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> In file included from chan_capi.c:32:0:
> chan_capi.c: In function 'pbx_capi_call':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:1515:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> chan_capi.c:1598:27: error: dereferencing pointer to incomplete type
>   i->transfercapability = c->transfercapability;
>                            ^
> In file included from chan_capi.c:32:0:
> chan_capi.c: In function 'diva_get_b1_conf':
> chan_capi_fmt.h:225:33: warning: passing argument 1 of 'ast_getformatname' makes pointer from integer without a cast
>  #define cc_getformatname(__x__) ast_getformatname((__x__))
>                                  ^
> chan_capi.h:127:43: note: in definition of macro 'cc_log'
>  #define cc_log(x...)              ast_log(x)
>                                            ^
> chan_capi.c:1823:15: note: in expansion of macro 'cc_getformatname'
>      i->vname, cc_getformatname(i->codec), i->codec);
>                ^
> In file included from /usr/include/asterisk/format_pref.h:27:0,
>                  from /usr/include/asterisk/frame.h:34,
>                  from chan_capi.h:24,
>                  from chan_capi.c:32:
> /usr/include/asterisk/format.h:419:13: note: expected 'const struct ast_format *' but argument is of type 'int'
>  const char* ast_getformatname(const struct ast_format *format);
>              ^
> In file included from chan_capi.c:32:0:
> chan_capi.c: In function 'capi_send_answer':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:1836:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> chan_capi.c: In function 'pbx_capi_answer':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:1949:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> chan_capi.c: In function 'pbx_capi_read':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:1968:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> In file included from /usr/include/asterisk/config.h:30:0,
>                  from /usr/include/asterisk/channel.h:143,
>                  from chan_capi.h:25,
>                  from chan_capi.c:32:
> chan_capi.c:1983:10: error: dereferencing pointer to incomplete type
>     if (!(ast_test_flag(c, AST_FLAG_END_DTMF_ONLY) ||
>           ^
> chan_capi.c:1983:10: error: dereferencing pointer to incomplete type
>     if (!(ast_test_flag(c, AST_FLAG_END_DTMF_ONLY) ||
>           ^
> chan_capi.c:1983:10: error: dereferencing pointer to incomplete type
>     if (!(ast_test_flag(c, AST_FLAG_END_DTMF_ONLY) ||
>           ^
> chan_capi.c:1984:7: error: dereferencing pointer to incomplete type
>        ast_test_flag(c, AST_FLAG_EMULATE_DTMF) ||
>        ^
> chan_capi.c:1984:7: error: dereferencing pointer to incomplete type
>        ast_test_flag(c, AST_FLAG_EMULATE_DTMF) ||
>        ^
> chan_capi.c:1984:7: error: dereferencing pointer to incomplete type
>        ast_test_flag(c, AST_FLAG_EMULATE_DTMF) ||
>        ^
> chan_capi.c:1985:7: error: dereferencing pointer to incomplete type
>        ast_test_flag(c, AST_FLAG_IN_DTMF))) {
>        ^
> chan_capi.c:1985:7: error: dereferencing pointer to incomplete type
>        ast_test_flag(c, AST_FLAG_IN_DTMF))) {
>        ^
> chan_capi.c:1985:7: error: dereferencing pointer to incomplete type
>        ast_test_flag(c, AST_FLAG_IN_DTMF))) {
>        ^
> chan_capi.c:1986:5: error: dereferencing pointer to incomplete type
>      ast_set_flag(c, AST_FLAG_IN_DTMF);
>      ^
> chan_capi.c:1986:5: error: dereferencing pointer to incomplete type
>      ast_set_flag(c, AST_FLAG_IN_DTMF);
>      ^
> chan_capi.c:1986:5: error: dereferencing pointer to incomplete type
>      ast_set_flag(c, AST_FLAG_IN_DTMF);
>      ^
> chan_capi.c:1987:6: error: dereferencing pointer to incomplete type
>      c->dtmf_tv = ast_tvsub(ast_tvnow(),ast_tv(0,250*1000));
>       ^
> In file included from chan_capi.c:32:0:
> chan_capi.c: In function 'pbx_capi_write':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:2003:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> chan_capi.c: In function 'pbx_capi_fixup':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:2016:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(newchan);
>                        ^
> In file included from chan_capi.c:38:0:
> chan_capi.c:2019:20: error: dereferencing pointer to incomplete type
>    i->vname, oldchan->name, newchan->name);
>                     ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:2019:35: error: dereferencing pointer to incomplete type
>    i->vname, oldchan->name, newchan->name);
>                                    ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c: In function 'pbx_capi_bridge_transfer':
> chan_capi.c:2127:32: error: dereferencing pointer to incomplete type
>         i0->vname, i1->vname, c0->name, c1->name);
>                                 ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:2127:42: error: dereferencing pointer to incomplete type
>         i0->vname, i1->vname, c0->name, c1->name);
>                                           ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> In file included from chan_capi.c:32:0:
> chan_capi.c: In function 'pbx_capi_bridge':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:2270:24: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i0 = CC_CHANNEL_PVT(c0);
>                         ^
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:2271:24: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i1 = CC_CHANNEL_PVT(c1);
>                         ^
> In file included from chan_capi.c:38:0:
> chan_capi.c:2275:27: error: dereferencing pointer to incomplete type
>    i0->vname, i1->vname, c0->name, c1->name);
>                            ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:2275:37: error: dereferencing pointer to incomplete type
>    i0->vname, i1->vname, c0->name, c1->name);
>                                      ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> In file included from chan_capi.c:32:0:
> chan_capi.c: In function 'capi_new':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:2443:2: note: in expansion of macro 'CC_CHANNEL_PVT'
>   CC_CHANNEL_PVT(tmp) = i;
>   ^
> chan_capi.c:2445:5: error: dereferencing pointer to incomplete type
>   tmp->callgroup = i->callgroup;
>      ^
> chan_capi.c:2446:5: error: dereferencing pointer to incomplete type
>   tmp->pickupgroup = i->pickupgroup;
>      ^
> In file included from chan_capi.h:48:0,
>                  from chan_capi.c:32:
> chan_capi.c:2468:21: error: dereferencing pointer to incomplete type
>    cc_add_formats(tmp->nativeformats, i->rtpcodec);
>                      ^
> chan_capi_fmt.h:226:42: note: in definition of macro 'cc_add_formats'
>  #define cc_add_formats(__x__,__y__) do {(__x__)=(__y__);}while(0)
>                                           ^
> chan_capi.c:2471:21: error: dereferencing pointer to incomplete type
>    cc_add_formats(tmp->nativeformats, capi_capability);
>                      ^
> chan_capi_fmt.h:226:42: note: in definition of macro 'cc_add_formats'
>  #define cc_add_formats(__x__,__y__) do {(__x__)=(__y__);}while(0)
>                                           ^
> chan_capi.c:2477:5: error: dereferencing pointer to incomplete type
>   tmp->tech = &capi_tech;
>      ^
> In file included from chan_capi.h:48:0,
>                  from chan_capi.c:32:
> chan_capi_fmt.h:225:33: warning: passing argument 1 of 'ast_getformatname' makes pointer from integer without a cast
>  #define cc_getformatname(__x__) ast_getformatname((__x__))
>                                  ^
> chan_capi_utils.h:38:33: note: in expansion of macro 'cc_getformatname'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:2480:2: note: in expansion of macro 'cc_verbose'
>   cc_verbose(3, 1, VERBOSE_PREFIX_2 "%s: setting format %s - %s%s\n",
>   ^
> In file included from /usr/include/asterisk/format_pref.h:27:0,
>                  from /usr/include/asterisk/frame.h:34,
>                  from chan_capi.h:24,
>                  from chan_capi.c:32:
> /usr/include/asterisk/format.h:419:13: note: expected 'const struct ast_format *' but argument is of type 'int'
>  const char* ast_getformatname(const struct ast_format *format);
>              ^
> In file included from chan_capi.c:38:0:
> chan_capi.c:2483:6: error: dereferencing pointer to incomplete type
>    tmp->nativeformats),
>       ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:2493:15: error: dereferencing pointer to incomplete type
>    ast_free(tmp->cid.cid_num);
>                ^
> chan_capi.c:2494:6: error: dereferencing pointer to incomplete type
>    tmp->cid.cid_num = ast_strdup(i->cid);
>       ^
> chan_capi.c:2502:15: error: dereferencing pointer to incomplete type
>    ast_free(tmp->cid.cid_dnid);
>                ^
> chan_capi.c:2503:6: error: dereferencing pointer to incomplete type
>    tmp->cid.cid_dnid = ast_strdup(i->dnid);
>       ^
> chan_capi.c:2509:5: error: dereferencing pointer to incomplete type
>   tmp->cid.cid_ton = i->cid_ton;
>      ^
> In file included from /usr/include/asterisk/utils.h:36:0,
>                  from /usr/include/asterisk/config.h:30,
>                  from /usr/include/asterisk/channel.h:143,
>                  from chan_capi.h:25,
>                  from chan_capi.c:32:
> chan_capi.c:2528:2: error: dereferencing pointer to incomplete type
>   ast_string_field_set(tmp, language, i->language);
>   ^
> chan_capi.c:2528:2: error: dereferencing pointer to incomplete type
>   ast_string_field_set(tmp, language, i->language);
>   ^
> chan_capi.c:2528:2: error: dereferencing pointer to incomplete type
>   ast_string_field_set(tmp, language, i->language);
>   ^
> chan_capi.c:2528:2: error: dereferencing pointer to incomplete type
>   ast_string_field_set(tmp, language, i->language);
>   ^
> chan_capi.c:2528:2: error: dereferencing pointer to incomplete type
>   ast_string_field_set(tmp, language, i->language);
>   ^
> chan_capi.c:2528:2: error: dereferencing pointer to incomplete type
>   ast_string_field_set(tmp, language, i->language);
>   ^
> chan_capi.c:2528:2: error: dereferencing pointer to incomplete type
>   ast_string_field_set(tmp, language, i->language);
>   ^
> chan_capi.c:2528:2: error: dereferencing pointer to incomplete type
>   ast_string_field_set(tmp, language, i->language);
>   ^
> chan_capi.c:2528:2: error: dereferencing pointer to incomplete type
>   ast_string_field_set(tmp, language, i->language);
>   ^
> In file included from chan_capi.c:38:0:
> chan_capi.c: In function 'pbx_capi_request':
> chan_capi.c:2584:8: warning: passing argument 3 of 'ast_getformatname_multiple' makes pointer from integer without a cast
>         ast_getformatname_multiple(alloca(80), 80, format));
>         ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> In file included from /usr/include/asterisk/format_pref.h:28:0,
>                  from /usr/include/asterisk/frame.h:34,
>                  from chan_capi.h:24,
>                  from chan_capi.c:32:
> /usr/include/asterisk/format_cap.h:306:7: note: expected 'struct ast_format_cap *' but argument is of type 'int'
>  char* ast_getformatname_multiple(char *buf, size_t size, struct ast_format_cap *cap);
>        ^
> chan_capi.c:2671:25: error: dereferencing pointer to incomplete type
>     requestor ? requestor->linkedid : NULL
>                          ^
> In file included from chan_capi.h:48:0,
>                  from chan_capi.c:32:
> chan_capi.c: In function 'clear_channel_fax_loop':
> chan_capi_fmt.h:240:42: warning: passing argument 2 of 'ast_set_read_format' makes pointer from integer without a cast
>  #define cc_set_read_format(__a__, __b__) ast_set_read_format(__a__, __b__)
>                                           ^
> chan_capi.c:3177:2: note: in expansion of macro 'cc_set_read_format'
>   cc_set_read_format(chan, capi_capability);
>   ^
> In file included from chan_capi.h:25:0,
>                  from chan_capi.c:32:
> /usr/include/asterisk/channel.h:1806:5: note: expected 'struct ast_format *' but argument is of type 'int'
>  int ast_set_read_format(struct ast_channel *chan, struct ast_format *format);
>      ^
> In file included from chan_capi.h:48:0,
>                  from chan_capi.c:32:
> chan_capi_fmt.h:241:43: warning: passing argument 2 of 'ast_set_write_format' makes pointer from integer without a cast
>  #define cc_set_write_format(__a__, __b__) ast_set_write_format(__a__, __b__)
>                                            ^
> chan_capi.c:3178:2: note: in expansion of macro 'cc_set_write_format'
>   cc_set_write_format(chan, capi_capability);
>   ^
> In file included from chan_capi.h:25:0,
>                  from chan_capi.c:32:
> /usr/include/asterisk/channel.h:1831:5: note: expected 'struct ast_format *' but argument is of type 'int'
>  int ast_set_write_format(struct ast_channel *chan, struct ast_format *format);
>      ^
> In file included from chan_capi.c:32:0:
> chan_capi.c:3230:10: error: dereferencing pointer to incomplete type
>       chan->name, strerror(errno));
>           ^
> chan_capi.h:127:43: note: in definition of macro 'cc_log'
>  #define cc_log(x...)              ast_log(x)
>                                            ^
> chan_capi.c: In function 'capi_handle_dtmf_fax':
> chan_capi.c:3646:34: error: dereferencing pointer to incomplete type
>   if ((i->faxdetecttime > 0) && (c->cdr)) {
>                                   ^
> chan_capi.c:3649:9: error: dereferencing pointer to incomplete type
>    if ((c->cdr->start.tv_sec + i->faxdetecttime) < now.tv_sec) {
>          ^
> In file included from chan_capi.c:38:0:
> chan_capi.c:3652:37: error: dereferencing pointer to incomplete type
>      i->vname, (long) (now.tv_sec - c->cdr->start.tv_sec),
>                                      ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:3658:16: error: dereferencing pointer to incomplete type
>   faxcontext = c->context;
>                 ^
> In file included from /usr/include/string.h:635:0,
>                  from chan_capi.c:21:
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3662:16: error: dereferencing pointer to incomplete type
>   if ((!strcmp(c->exten, i->faxexten)) &&
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> chan_capi.c:3663:16: error: dereferencing pointer to incomplete type
>       (!strcmp(c->context, faxcontext))) {
>                 ^
> In file included from chan_capi.c:38:0:
> chan_capi.c:3671:18: error: dereferencing pointer to incomplete type
>     i->faxexten, c->name, faxcontext);
>                   ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:3676:14: error: dereferencing pointer to incomplete type
>    i->vname, c->name, faxcontext, i->faxexten, i->faxpriority);
>               ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> In file included from chan_capi.c:32:0:
> chan_capi.c: In function 'search_did':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:3694:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> In file included from chan_capi.c:38:0:
> chan_capi.c:3700:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name, exten, c->context);
>                ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:3700:31: error: dereferencing pointer to incomplete type
>     i->vname, c->name, exten, c->context);
>                                ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:3707:34: error: dereferencing pointer to incomplete type
>   if (ast_exists_extension(NULL, c->context, exten, 1, i->cid)) {
>                                   ^
> chan_capi.c:3708:4: error: dereferencing pointer to incomplete type
>    c->priority = 1;
>     ^
> In file included from chan_capi.c:32:0:
> chan_capi.c:3709:19: error: dereferencing pointer to incomplete type
>    cc_copy_string(c->exten, exten, sizeof(c->exten));
>                    ^
> chan_capi.h:129:57: note: in definition of macro 'cc_copy_string'
>  #define cc_copy_string(dst, src, size)  ast_copy_string(dst, src, size)
>                                                          ^
> chan_capi.c:3709:43: error: dereferencing pointer to incomplete type
>    cc_copy_string(c->exten, exten, sizeof(c->exten));
>                                            ^
> chan_capi.h:129:67: note: in definition of macro 'cc_copy_string'
>  #define cc_copy_string(dst, src, size)  ast_copy_string(dst, src, size)
>                                                                    ^
> In file included from chan_capi.c:38:0:
> chan_capi.c:3711:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name, exten, c->context);
>                ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:3711:31: error: dereferencing pointer to incomplete type
>     i->vname, c->name, exten, c->context);
>                                ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:3715:36: error: dereferencing pointer to incomplete type
>   if (ast_canmatch_extension(NULL, c->context, exten, 1, i->cid)) {
>                                     ^
> In file included from chan_capi.c:38:0:
> chan_capi.c:3717:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name, exten, c->context);
>                ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:3717:31: error: dereferencing pointer to incomplete type
>     i->vname, c->name, exten, c->context);
>                                ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c: In function 'start_pbx_on_match':
> chan_capi.c:3784:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name);
>                ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> In file included from chan_capi.c:32:0:
> chan_capi.c:3793:19: error: dereferencing pointer to incomplete type
>    cc_copy_string(c->exten, i->dnid, sizeof(c->exten));
>                    ^
> chan_capi.h:129:57: note: in definition of macro 'cc_copy_string'
>  #define cc_copy_string(dst, src, size)  ast_copy_string(dst, src, size)
>                                                          ^
> chan_capi.c:3793:45: error: dereferencing pointer to incomplete type
>    cc_copy_string(c->exten, i->dnid, sizeof(c->exten));
>                                              ^
> chan_capi.h:129:67: note: in definition of macro 'cc_copy_string'
>  #define cc_copy_string(dst, src, size)  ast_copy_string(dst, src, size)
>                                                                    ^
> In file included from chan_capi.c:38:0:
> chan_capi.c:3809:6: error: dereferencing pointer to incomplete type
>      c->name);
>       ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c: In function 'capidev_handle_did_digits':
> chan_capi.c:3869:14: error: dereferencing pointer to incomplete type
>   if (i->owner->pbx != NULL) {
>               ^
> chan_capi.c: In function 'capi_queue_cause_control':
> chan_capi.c:3895:23: error: dereferencing pointer to incomplete type
>    int cause = i->owner->hangupcause;
>                        ^
> chan_capi.c: In function 'capidev_sendback_info':
> chan_capi.c:4030:13: error: dereferencing pointer to incomplete type
>   if (i->peer->tech != &capi_tech)
>              ^
> In file included from chan_capi.c:32:0:
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:4033:7: note: in expansion of macro 'CC_CHANNEL_PVT'
>   i2 = CC_CHANNEL_PVT(i->peer);
>        ^
> chan_capi.c: In function 'capidev_handle_info_indication':
> chan_capi.c:4069:12: error: dereferencing pointer to incomplete type
>     i->owner->hangupcause = INFO_IND_INFOELEMENT(CMSG)[2] & 0x7f;
>             ^
> chan_capi.c:4187:21: error: dereferencing pointer to incomplete type
>     ast_free(i->owner->cid.cid_rdnis);
>                      ^
> chan_capi.c:4188:12: error: dereferencing pointer to incomplete type
>     i->owner->cid.cid_rdnis = ast_strdup(p);
>             ^
> chan_capi.c:4264:17: error: dereferencing pointer to incomplete type
>         (i->owner->hangupcause == AST_CAUSE_USER_BUSY)) {
>                  ^
> chan_capi.c: In function 'pbx_capi_get_samples':
> chan_capi.c:4554:7: error: 'CC_FORMAT_SLINEAR' undeclared (first use in this function)
>   case CC_FORMAT_SLINEAR:
>        ^
> chan_capi.c:4554:7: note: each undeclared identifier is reported only once for each function it appears in
> In file included from chan_capi.c:32:0:
> chan_capi.c: In function 'capidev_handle_data_b3_indication':
> chan_capi.h:152:58: error: 'union ast_frame_subclass' has no member named 'codec'
>  #define SET_FRAME_SUBCLASS_CODEC(__a__,__b__) do {(__a__).codec = (__b__); }while(0)
>                                                           ^
> chan_capi.c:4706:3: note: in expansion of macro 'SET_FRAME_SUBCLASS_CODEC'
>    SET_FRAME_SUBCLASS_CODEC(fr.subclass, capi_capability);
>    ^
> chan_capi.h:152:58: error: 'union ast_frame_subclass' has no member named 'codec'
>  #define SET_FRAME_SUBCLASS_CODEC(__a__,__b__) do {(__a__).codec = (__b__); }while(0)
>                                                           ^
> chan_capi.c:4708:3: note: in expansion of macro 'SET_FRAME_SUBCLASS_CODEC'
>    SET_FRAME_SUBCLASS_CODEC(fr.subclass, i->codec);
>    ^
> chan_capi.h:153:48: error: 'union ast_frame_subclass' has no member named 'codec'
>  #define GET_FRAME_SUBCLASS_CODEC(__a__) (__a__).codec
>                                                 ^
> chan_capi_utils.h:38:33: note: in expansion of macro 'GET_FRAME_SUBCLASS_CODEC'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:4719:2: note: in expansion of macro 'cc_verbose'
>   cc_verbose(8, 1, VERBOSE_PREFIX_3 "%s: DATA_B3_IND (len=%d) fr.datalen=%d fr.subclass=%ld\n",
>   ^
> chan_capi.c: In function 'capidev_handle_diva_signaling_manufacturer_infications':
> chan_capi.c:4932:23: error: dereferencing pointer to incomplete type
>      ast_free (i->owner->cid.cid_name);
>                        ^
> chan_capi.c:4933:13: error: dereferencing pointer to incomplete type
>      i->owner->cid.cid_name = ast_strdup(buffer); /* Save name to callerid */
>              ^
> chan_capi.c: In function 'capidev_handle_connect_active_indication':
> chan_capi.c:5020:15: error: dereferencing pointer to incomplete type
>    if (i->owner->cdr)
>                ^
> chan_capi.c:5021:27: error: dereferencing pointer to incomplete type
>     ast_cdr_answer(i->owner->cdr);
>                            ^
> chan_capi.c: In function 'capidev_handle_connect_b3_active_indication':
> chan_capi.c:5103:36: error: dereferencing pointer to incomplete type
>    if ((i->peer != NULL) && (i->peer->tech == &capi_tech)) {
>                                     ^
> In file included from chan_capi.c:32:0:
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:5105:9: note: in expansion of macro 'CC_CHANNEL_PVT'
>     i1 = CC_CHANNEL_PVT(i->peer);
>          ^
> chan_capi.c: In function 'capidev_handle_disconnect_indication':
> chan_capi.c:5243:15: error: dereferencing pointer to incomplete type
>    if (i->owner->hangupcause == 0) {
>                ^
> chan_capi.c:5247:12: error: dereferencing pointer to incomplete type
>     i->owner->hangupcause =
>             ^
> chan_capi.c: In function 'capidev_handle_connect_indication':
> chan_capi.c:5436:13: error: dereferencing pointer to incomplete type
>      i->owner->transfercapability = i->transfercapability;
>              ^
> chan_capi.c:5468:12: error: dereferencing pointer to incomplete type
>     i->owner->cid.cid_pres = callpres;
>             ^
> chan_capi.c: In function 'capidev_handle_msg':
> chan_capi.c:5878:17: error: dereferencing pointer to incomplete type
>      if (i->owner->_state == AST_STATE_RING) {
>                  ^
> chan_capi.c:5879:14: error: dereferencing pointer to incomplete type
>       i->owner->rings = 1;
>               ^
> chan_capi.c: In function 'get_active_plci':
> chan_capi.c:6006:7: error: dereferencing pointer to incomplete type
>   if (c->tech == &capi_tech) {
>        ^
> In file included from chan_capi.c:32:0:
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:6007:7: note: in expansion of macro 'CC_CHANNEL_PVT'
>    i = CC_CHANNEL_PVT(c);
>        ^
> chan_capi.c: In function 'pbx_capi_call_deflect':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:6021:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> chan_capi.c:6047:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name);
>                ^
> chan_capi.h:127:43: note: in definition of macro 'cc_log'
>  #define cc_log(x...)              ast_log(x)
>                                            ^
> In file included from chan_capi.c:38:0:
> chan_capi.c: In function 'pbx_capi_peer_link':
> chan_capi.c:6120:4: error: dereferencing pointer to incomplete type
>    c->name);
>     ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> In file included from chan_capi.c:32:0:
> chan_capi.c: In function 'pbx_capi_retrieve':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:6130:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c); 
>                        ^
> chan_capi.c:6133:7: error: dereferencing pointer to incomplete type
>   if (c->tech == &capi_tech) {
>        ^
> In file included from chan_capi.c:32:0:
> chan_capi.c:6154:5: error: dereferencing pointer to incomplete type
>     c->name);
>      ^
> chan_capi.h:127:43: note: in definition of macro 'cc_log'
>  #define cc_log(x...)              ast_log(x)
>                                            ^
> chan_capi.c:6177:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name);
>                ^
> chan_capi.h:127:43: note: in definition of macro 'cc_log'
>  #define cc_log(x...)              ast_log(x)
>                                            ^
> chan_capi.c: In function 'pbx_capi_ect':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:6208:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> chan_capi.c:6280:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name);
>                ^
> chan_capi.h:127:43: note: in definition of macro 'cc_log'
>  #define cc_log(x...)              ast_log(x)
>                                            ^
> chan_capi.c: In function 'pbx_capi_keypad':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:6326:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> chan_capi.c: In function 'pbx_capi_hold':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:6358:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> chan_capi.c:6365:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name);
>                ^
> chan_capi.h:127:43: note: in definition of macro 'cc_log'
>  #define cc_log(x...)              ast_log(x)
>                                            ^
> chan_capi.c:6371:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name);
>                ^
> chan_capi.h:127:43: note: in definition of macro 'cc_log'
>  #define cc_log(x...)              ast_log(x)
>                                            ^
> chan_capi.c:6376:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name);
>                ^
> chan_capi.h:127:43: note: in definition of macro 'cc_log'
>  #define cc_log(x...)              ast_log(x)
>                                            ^
> chan_capi.c: In function 'pbx_capi_malicious':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:6414:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> chan_capi.c:6418:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name);
>                ^
> chan_capi.h:127:43: note: in definition of macro 'cc_log'
>  #define cc_log(x...)              ast_log(x)
>                                            ^
> chan_capi.c: In function 'pbx_capi_getplci':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:6732:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> chan_capi.c: In function 'pbx_capi_echosquelch':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:7183:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> chan_capi.c: In function 'pbx_capi_holdtype':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:7207:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> chan_capi.c: In function 'pbx_capi_signal_progress':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:7274:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> chan_capi.c: In function 'pbx_capi_3pty_begin':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:7318:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> chan_capi.c:7359:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name);
>                ^
> chan_capi.h:127:43: note: in definition of macro 'cc_log'
>  #define cc_log(x...)              ast_log(x)
>                                            ^
> chan_capi.c:7364:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name);
>                ^
> chan_capi.h:127:43: note: in definition of macro 'cc_log'
>  #define cc_log(x...)              ast_log(x)
>                                            ^
> chan_capi.c: In function 'pbx_capicommand_exec':
> chan_capi.c:7530:29: error: dereferencing pointer to incomplete type
>   if ((chan != NULL) && (chan->tech != &capi_tech)) {
>                              ^
> In file included from chan_capi.c:32:0:
> chan_capi.c: In function 'pbx_capi_indicate':
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:7580:23: note: in expansion of macro 'CC_CHANNEL_PVT'
>   struct capi_pvt *i = CC_CHANNEL_PVT(c);
>                        ^
> In file included from chan_capi.c:38:0:
> chan_capi.c:7592:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name);
>                ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:7607:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name);
>                ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:7619:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name);
>                ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:7631:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name);
>                ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:7636:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name);
>                ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:7641:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name);
>                ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:7653:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name);
>                ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:7672:15: error: dereferencing pointer to incomplete type
>     i->vname, c->name);
>                ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:7685:26: error: dereferencing pointer to incomplete type
>     i->vname, condition, c->name);
>                           ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c: In function 'capi_do_channel_task':
> chan_capi.c:7826:18: error: dereferencing pointer to incomplete type
>      chan_for_task->name);
>                   ^
> chan_capi_utils.h:38:33: note: in definition of macro 'cc_verbose'
>    cc_verbose_internal(text , ## args); \
>                                  ^
> chan_capi.c:7833:69: error: dereferencing pointer to incomplete type
>    pbx_builtin_setvar_helper(chan_for_task, "FAXEXTEN", chan_for_task->exten);
>                                                                      ^
> In file included from chan_capi.c:32:0:
> chan_capi.h:139:30: error: dereferencing pointer to incomplete type
>  #define CC_CHANNEL_PVT(c) (c)->tech_pvt
>                               ^
> chan_capi.c:7834:7: note: in expansion of macro 'CC_CHANNEL_PVT'
>    i = CC_CHANNEL_PVT(chan_for_task);
>        ^
> chan_capi.c:7838:63: error: dereferencing pointer to incomplete type
>       i->faxcontext, i->faxexten, i->faxpriority, chan_for_task->name);
>                                                                ^
> chan_capi.h:127:43: note: in definition of macro 'cc_log'
>  #define cc_log(x...)              ast_log(x)
>                                            ^
> chan_capi.c: At top level:
> chan_capi.c:8218:2: warning: initialization makes pointer from integer without a cast
>   .capabilities = AST_FORMAT_ALAW,
>   ^
> chan_capi.c:8218:2: warning: (near initialization for 'capi_tech.capabilities')
> chan_capi.c:8220:2: warning: initialization from incompatible pointer type
>   .requester = pbx_capi_request,
>   ^
> chan_capi.c:8220:2: warning: (near initialization for 'capi_tech.requester')
> chan_capi.c:8228:2: warning: initialization from incompatible pointer type
>   .call = pbx_capi_call,
>   ^
> chan_capi.c:8228:2: warning: (near initialization for 'capi_tech.call')
> chan_capi.c:8238:2: warning: initialization from incompatible pointer type
>   .devicestate = pbx_capi_devicestate,
>   ^
> chan_capi.c:8238:2: warning: (near initialization for 'capi_tech.devicestate')
> In file included from chan_capi.h:48:0,
>                  from chan_capi.c:32:
> chan_capi.c: In function 'conf_interface':
> chan_capi_fmt.h:242:68: warning: passing argument 2 of 'ast_parse_allow_disallow' from incompatible pointer type
>  #define cc_parse_allow_disallow(__a__, __b__, __c__, __d__, __e__) ast_parse_allow_disallow(__a__, __b__, __c__, __d__)
>                                                                     ^
> chan_capi.c:8690:4: note: in expansion of macro 'cc_parse_allow_disallow'
>     cc_parse_allow_disallow(&conf->prefs, &conf->capability, v->value, 1, cap);
>     ^
> In file included from chan_capi.h:24:0,
>                  from chan_capi.c:32:
> /usr/include/asterisk/frame.h:545:5: note: expected 'struct ast_format_cap *' but argument is of type 'int *'
>  int ast_parse_allow_disallow(struct ast_codec_pref *pref, struct ast_format_cap *cap, const char *list, int allowing);
>      ^
> In file included from chan_capi.h:48:0,
>                  from chan_capi.c:32:
> chan_capi_fmt.h:242:68: warning: passing argument 2 of 'ast_parse_allow_disallow' from incompatible pointer type
>  #define cc_parse_allow_disallow(__a__, __b__, __c__, __d__, __e__) ast_parse_allow_disallow(__a__, __b__, __c__, __d__)
>                                                                     ^
> chan_capi.c:8693:4: note: in expansion of macro 'cc_parse_allow_disallow'
>     cc_parse_allow_disallow(&conf->prefs, &conf->capability, v->value, 0, cap);
>     ^
> In file included from chan_capi.h:24:0,
>                  from chan_capi.c:32:
> /usr/include/asterisk/frame.h:545:5: note: expected 'struct ast_format_cap *' but argument is of type 'int *'
>  int ast_parse_allow_disallow(struct ast_codec_pref *pref, struct ast_format_cap *cap, const char *list, int allowing);
>      ^
> chan_capi.c: In function 'pbx_capi_add_diva_protocol_independent_extension':
> chan_capi.c:9096:32: error: dereferencing pointer to incomplete type
>    if (cid_name == 0 && i->owner->cid.cid_name && *i->owner->cid.cid_name) {
>                                 ^
> chan_capi.c:9096:59: error: dereferencing pointer to incomplete type
>    if (cid_name == 0 && i->owner->cid.cid_name && *i->owner->cid.cid_name) {
>                                                            ^
> In file included from /usr/include/asterisk/config.h:30:0,
>                  from /usr/include/asterisk/channel.h:143,
>                  from chan_capi.h:25,
>                  from chan_capi.c:32:
> chan_capi.c:9097:34: error: dereferencing pointer to incomplete type
>    cid_name = ast_strdupa(i->owner->cid.cid_name);
>                                   ^
> make[1]: *** [chan_capi.o] Error 1

The full build log is available from:
   http://aws-logs.debian.net/ftbfs-logs/2014/08/30/asterisk-chan-capi_1.1.6-1_unstable.log

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

About the archive rebuild: The rebuild was done on EC2 VM instances from
Amazon Web Services, using a clean, minimal and up-to-date chroot. Every
failed build was retried once to eliminate random failures. The build
was done with DEB_BUILD_OPTIONS="parallel=4", so if your packaging tries
to support this, it might be a good idea to explore whether this might
be the cause of the failure.



More information about the Pkg-voip-maintainers mailing list