Dear all, Two weeks ago a working interconnection with another carrier went down, due to a reboot of our system. Since then chan_ss7 stopped working. When I load the module all looks fine: apollo*CLI> module load chan_ss7.so [Dec 3 14:12:04] NOTICE[27660]: config.c:804 load_config_link: Configured link 'KPN-XXX-sig' on linkset 'XXX-XXX', firstcic=1 [Dec 3 14:12:04] NOTICE[27660]: config.c:804 load_config_link: Configured link 'KPN-XXX-Z05-01' on linkset 'XXX-XXX', firstcic=1 [Dec 3 14:12:04] NOTICE[27660]: config.c:804 load_config_link: Configured link 'KPN-XXX-sig' on linkset 'XXX-XXX', firstcic=1 [Dec 3 14:12:04] NOTICE[27660]: config.c:804 load_config_link: Configured link 'KPN-XXX-Z05-01' on linkset 'KPN-XXX', firstcic=1 [Dec 3 14:12:04] NOTICE[27660]: config.c:1277 load_config: Configuring OPC XXXX, DPC XXX for linkset 'XXX-XXX'. [Dec 3 14:12:04] NOTICE[27660]: config.c:1277 load_config: Configuring OPC XXXX, DPC XXX for linkset 'XXX-XXX'. -- Starting cluster thread, pid=27628. -- Starting continuity check thread, pid=27628. [Dec 3 14:12:04] NOTICE[27660]: mtp.c:2378 mtp_init: Initialising 2 signalling links -- Starting MTP thread, pid=27628. -- Starting monitor thread, pid=27628. [Dec 3 14:12:04] NOTICE[28090]: mtp.c:2259 mtp_init_link: Initialising link 'XXX-XXX-Z05-01/16', linkset 'XXX-XXX', sls 0. [Dec 3 14:12:04] NOTICE[28090]: mtp.c:2277 mtp_init_link: Signalling channel on link 'KPN-XXX-Z05-01/16' has signalling type 0x80080. [Dec 3 14:12:04] NOTICE[28090]: mtp.c:2259 mtp_init_link: Initialising link 'XXX-XXX-Z05-01/16', linkset 'XXX-XXX', sls 0. [Dec 3 14:12:04] NOTICE[28090]: mtp.c:2277 mtp_init_link: Signalling channel on link 'XXX-XXX-Z05-01/16' has signalling type 0x80080. -- SS7 channel loaded successfully. When I issue a reset I see the following: [Dec 3 14:15:30] NOTICE[28090]: l4isup.c:1442 t22_timeout: T22 timeout (No "circuit group reset acknowledge" from peer) CIC=1. [Dec 3 14:15:30] WARNING[28090]: l4isup.c:442 mtp_enqueue_isup_packet: MTP send fifo not ready, lsi=0. [Dec 3 14:15:30] NOTICE[28090]: l4isup.c:1442 t22_timeout: T22 timeout (No "circuit group reset acknowledge" from peer) CIC=17. [Dec 3 14:15:30] WARNING[28090]: l4isup.c:442 mtp_enqueue_isup_packet: MTP send fifo not ready, lsi=0. [Dec 3 14:15:30] NOTICE[28090]: l4isup.c:1442 t22_timeout: T22 timeout (No "circuit group reset acknowledge" from peer) CIC=1. [Dec 3 14:15:30] WARNING[28090]: l4isup.c:442 mtp_enqueue_isup_packet: MTP send fifo not ready, lsi=0. [Dec 3 14:15:30] NOTICE[28090]: l4isup.c:1442 t22_timeout: T22 timeout (No "circuit group reset acknowledge" from peer) CIC=17. [Dec 3 14:15:30] WARNING[28090]: l4isup.c:442 mtp_enqueue_isup_packet: MTP send fifo not ready, lsi=0. Conclusion, the module is unable to contact the MTP3D. When I run it manually I get the following message: No signaling channels Which comes from mtp3d.c: 349 for (i = 0; i < this_host->n_slinks; i++) { 350 struct link* link = this_host->slinks[i]; 351 if (strcmp(link->mtp3server_host, this_host->name) == 0) { 352 if (*link->mtp3server_port) { 353 port = atoi(link->mtp3server_port); 354 link->mtp3fd = mtp3_setup_socket(port, 0); 355 if (link->mtp3fd == -1) { 356 ast_log(LOG_ERROR, "Could not setup mtp3 listen port %d, %d:%s\n", port, errno, strerror(errno)); 357 return; 358 } 359 printf("Using mtp3 service port %d, socket %d\n", port, link->mtp3fd); 360 n_listen++; 361 } 362 } 363 } 364 if (!n_listen) { 365 fprintf(stderr, "No signaling channels\n"); 366 exit(1); 367 } See the exit(1), meaning the MTP daemon shuts down. When I comment it out, the same problem exists because there were no sockets opened. So I looked for code setting link->mtp3server_host and link->mtp3server_port. It's in config.c in a rather odd place: 663 } else if(0 == strcasecmp(v->name, "schannel")) { 664 link->remote = 0; 665 spec = &chan_spec_buf[0]; 666 if (strcmp(v->value, "")) { 667 if ((sscanf(v->value, "%[^@]@%[^:]:%s", chan_spec_buf, link->mtp3server_host, link->mtp3server_port) == 3) || (sscanf(v->value, "%[^@]@%[^:]", chan_spec_buf, link->mtp3server_host) == 2)) { 668 if (!is_mtp3d) 669 link->remote = 1; 670 } else 671 snprintf(chan_spec_buf, sizeof(chan_spec_buf), "%s", v->value); 672 p = strsep(&spec, ","); 673 while(p && *p) { 674 int i, first, last; 675 if(sscanf(p, "%d-%d", &first, &last) == 2) { 676 if (first < 0 || first > last || last > 31) { 677 ast_log(LOG_DEBUG, "Schannel range '%s' is %d %d \n", p, first,last); 678 ast_log(LOG_ERROR, "Illegal schannel range '%s' for schannel specification for link '%s'.\n", p, link_name); 679 return -1; 680 } 681 } 682 else { 683 if((sscanf(p, "%d", &first) != 1) || (first < 0) || (first > 31)) { 684 ast_log(LOG_ERROR, "Illegal schannel value '%s' for schannel specification for link '%s'.\n", p, link_name); 685 return -1; 686 } 687 last = first; 688 } 689 for (i = first; i <= last; i++) 690 link->schannel.mask |= 1 << (i-1); 691 p = strsep(&spec, ","); 692 } 693 for (i = 0; i < 32; i++) 694 if (link->schannel.mask & (1 << i)) 695 link->n_schannels++; 696 } 697 has_schannel = 1; 698 } It's set by the schannel configuration. I think that has something to do with chan_ss7's capabilty to cluster. However I'm a bit clueless why the same configuration does not work anymore. Tried 1.2.1 (original version used) and 1.4.3 Kind regards, Matthias van der Vlies