On Thu, 07 Feb 2013 11:30:22 +0200, Kaloyan Kovachev <kkovac...@varna.net>
wrote:
> Hi,
>  it seems i've messed that at some point, because it was something that
> was tested and working. I will have to resurrect my test setup in order
to
> fix it and update reviews 2150 and 2170, but unfortunately it will not
> happen in the next few weeks probably.
> 
> On Wed, 06 Feb 2013 04:13:03 +0100, Michal Rybárik <mic...@rybarik.sk>
> wrote:
>> Hi,
>> 
>> I have a strange issues with BLO / BLA functionality... Could somebody 
>> be so kind and check it, where's the problem?
>> 
>> libss7-trunk (r320), with asterisk-trunk-r372092 with SS7-27 patches..
>> the same applies also to svn /team/rmudgett/ss7_27_knk
>> (r380912M-/trunk)....
>> 
>> 
>> make call from SPC 1 -> to SPC 2, answer at SPC 2
>> now block this CIC or linkset, at SPC 1 (call origination side)
>> - call audio is stopped (should not be)
>> - call cannot be cleared (REL is retransmitting)
>> - SPC 1 remains OK, will connect another calls
>> - SCP 2 becomes totally unusable...  one way audio at next call, not 
>> connecting other calls at all, "core restart now" hangs.... requires 
>> kill  -9 `pidof asterisk` to resume operation
>> 
> 
> smells to deadlock when BLO is received at SPC 2 ... after a quick look
at
> the code i may suggest to change:
> 
> sig_ss7_lock_owner(linkset, chanpos);
> if (!p->owner) {
>       p->ss7call = isup_free_call_if_clear(ss7, e->blo.call);
> } else if (e->blo.got_sent_msg & ISUP_SENT_IAM) {
>       /* Q.784 6.2.2 */
>       ast_channel_hangupcause_set(p->owner, SS7_CAUSE_TRY_AGAIN);
>       ast_softhangup_nolock(p->owner, AST_SOFTHANGUP_DEV);
>       ast_channel_unlock(p->owner);
> }
> 
> to the following:
> 
> sig_ss7_lock_owner(linkset, chanpos);
> if (!p->owner) {
>       p->ss7call = isup_free_call_if_clear(ss7, e->blo.call);
> } else {
>       if (e->blo.got_sent_msg & ISUP_SENT_IAM) {
>               /* Q.784 6.2.2 */
>               ast_channel_hangupcause_set(p->owner, SS7_CAUSE_TRY_AGAIN);
>               ast_softhangup_nolock(p->owner, AST_SOFTHANGUP_DEV);

Actualy here is the problem - we should not hangup the call, but only mark
it to try again. This last line should be removed.
There is also another problem that even if marked with SS7_CAUSE_TRY_AGAIN
the call is not retried, which i will need to investigate further.

>       }
>       ast_channel_unlock(p->owner);
> }
> 

I will upload the latest version of the patches on the reviewboard and
also against asterisk 11 on jira
(https://issues.asterisk.org/jira/browse/SS7-27)


--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-ss7 mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-ss7

Reply via email to