Op 06-01-11 19:19, Gregory Massel schreef:
Hi Robert
Hi Gregory,

I don't see your e-mail on the asterisk-ss7 list. Are you still a member?
I think the write buffer notice you're getting is normal audio loss due to the jitter buffer and jitter associated with the SIP channel.
That's my idea also.
It seems that remove_from_idlelist() in l4isup.c may be the issue:
static void remove_from_idlelist(struct ss7_chan *pvt) {
  struct linkset* linkset = pvt->link->linkset;
  struct ss7_chan *prev, *cur;
  cur = linkset->group_linkset->idle_list;
  prev = NULL;
  while(cur != NULL) {
    if(pvt->cic == cur->cic) {
      if(prev == NULL) {
        linkset->group_linkset->idle_list = pvt->next_idle;
      } else {
        prev->next_idle = pvt->next_idle;
      }
      pvt->next_idle = NULL;
      return;
    }
    prev = cur;
    cur = cur->next_idle;
  }
ast_log(LOG_NOTICE, "Trying to remove CIC=%d from idle list, but not found?!?.\n", pvt->cic);
}
What concerns me is the following line:
if(pvt->cic == cur->cic) {
I get the impression that it should read something like:
if(pvt->cic == cur->cic && linkset->dpc == cur->linkset->dpc) {
In my mind, this should, in theory, ensure that the CIC is matched not just on the CIC number but also on the DPC. My thinking is that perhaps the current code is causing the wrong channel to be removed from the idle list.
Does this sound logical to you?
Yes, maybe there is still an issue in this source.

But the problem is a bit more complicated.
With our connection to the Dutch ISUP (KPN), we have two linksets (Asd2 and Asd3).
The linksets do not share a E1's.
Both linksets have their own signalling link on the first E1.
But it is possible to receive signalling on the Asd2 signal link for a call on CIC 25 from the Asd3 link.

So only checking the dpc is not enough. When calling the remove_from_idlelist function, besides the pvt also the corresponding dpc must be passed along,
just like I did in my patch.

Unfortunately this doesn't explain why I'm experiencing the problem but you arn't, although I suspect that the crash may only occur once you try dial out a call using a channel that wasn't correctly removed from the idle list. Depending on the hunting policy in use, it may be that you're receiving calls on even CICs and making them on odd CICs as long as there are free CICs, in which case you may not experience the problem if you don't use more than 50% of your capacity. Just a theory...
We have seperate E1's for inbound and outbound traphic.
And we don't have much outbound traphic, maybe even nothing in the last weeks.

--Greg
With kind regards,
Robert


--
*Exa-Omicron*
Patroonsweg 10
3892 DB Zeewolde
Tel.: 088-OMICRON (66 427 66)
http://www.exa-omicron.nl
--
_____________________________________________________________________
-- 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