Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Nov 2012 23:14:26 +0100
From:      Andreas Longwitz <longwitz@incore.de>
To:        Hans Petter Selasky <hselasky@c2i.net>
Cc:        freebsd-isdn@freebsd.org
Subject:   Re: ISDN4BSD (HPS version) is going into ports
Message-ID:  <50A174C2.2050807@incore.de>
In-Reply-To: <201211112246.44683.hselasky@c2i.net>
References:  <509E87EF.9070607@incore.de> <201211112246.44683.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help
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@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@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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?50A174C2.2050807>