ISDN4BSD (HPS version) is going into ports

Andreas Longwitz longwitz at incore.de
Mon Nov 12 22:14:29 UTC 2012


Hi Hans

> It appears to me that the Asterisk API has changed, and now needs a
> final deref, by the allocator of the call structure. Could you try
> this patch, on a non-production system and see what happens:

> Index: chan_capi/chan_capi.c
> ===================================================================
> --- chan_capi/chan_capi.c       (revision 2419)
> +++ chan_capi/chan_capi.c       (working copy)
> @@ -1945,6 +1945,11 @@
>                if (pbx_chan->rings == 0)
>                        pbx_chan->rings = 1;
>            }
> +       } else {
> +#if (CC_AST_VERSION >= 0x10800)
> +               /* drop final refcount */
> +               hangup_what |= 2;
> +#endif
>        }
>
>        if (hard_hangup) {

I have tried this patch and the result with one incoming call looks like
this:

-> asterisk -rx "core show channels" (before the call)
Channel              Location             State   Application(Data)
0 active channels
0 active calls
0 calls processed
Asterisk ending (0).
-> asterisk -rx "core show channels" (during the call)
Channel              Location             State   Application(Data)
CAPI/ISDN_TE_1/49940 4994068 at capi_telekom Up
Playback(rup_ansage_zeiten)
1 active channel
1 active call
1 call processed
Asterisk ending (0).
-> asterisk -rx "core show channels" (after hangup)
Channel              Location             State   Application(Data)
                     4994068 at capi_telekom Up      (None)
1 active channel
0 active calls
1 call processed
Asterisk ending (0)

With the patch, only the name of the channel has gone, not the channel
itself. Without the patch the output of the last command (after hangup)
was the same as during the call.

.
-- 
Andreas Longwitz



More information about the freebsd-isdn mailing list