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