[asterisk-ss7] chan_ss7, sangoma A104 to local telecom partner, bridge to SIP, Hangup Cause 41

Robert Verspuy robert at exa-omicron.nl
Wed Oct 1 10:16:34 CDT 2008


Robert Verspuy wrote:
>
> So I think we have two ways:
> 1) change something in chan_ss7 to return the correct channel (on 
> combined linkset) by supplying the peer PC to find_pvt
> 2) Or ask my local telco to change the CIC on PC 110 to 33-47,49-63
>
My local telco didn't want to change the CIC codes, so I jumped into the 
code, and made some changes to the find_pvt.
I've created my own find_pvt as find_pvt_with_pc (see below) and changed 
all references to find_pvt to my version, which included the msg->opc or 
someting similar.

And now, I have 2 working links. both links have 30 channels in idle. 
Channels can be blocked and released from remote.
Even an testcall to the Echo application works over both channels.

But now my following problem.
When trying to forward an incoming SS7 call to a SIP channel.

    -- Executing [20xxxxxxx at from-ss7-kpnglasvezel:1] 
Dial("SS7/KPN-Rt/1", "SIP/switch-1/2762") in new stack
    -- Called switch-1/2762
    -- SIP/switch-1-0dd60c90 is making progress passing it to SS7/KPN-Rt/1
Really destroying SIP dialog 
'749a4bac1c8077d650593da1423cb29e at xxx.xxx.xxx.xxx' Method: INVITE
  == Spawn extension (from-ss7-kpnglasvezel, xxxxxxxxx, 1) exited 
non-zero on 'SS7/KPN-Rt/1'
    -- SS7 hangup 'SS7/KPN-Rt/1' CIC=1 Cause=41 (state=7)

When i create an audo dialout file (/var/spool/asterisk/outgoing) for 
SIP/switch-1/2762 and then connecting it to the Echo application.

Anybody seen this kind of behaviour before?

Regards,
Robert

> static struct ss7_chan* find_pvt_with_pc(struct link* slink, int cic, 
> int pc)
> {
>   struct linkset* ls;
>   int lsi;
>
>   ls = slink->linkset;
>   if (ls->dpc == pc) {
>     if (ls->cic_list[cic])
>       return ls->cic_list[cic];
>     for (lsi = 0; lsi < n_linksets; lsi++)
>       if (is_combined_linkset(ls, &linksets[lsi]))
>         if (linksets[lsi].cic_list[cic])
>           return linksets[lsi].cic_list[cic];
>   } else {
>     for (lsi = 0; lsi < n_linksets; lsi++)
>       if (is_combined_linkset(ls, &linksets[lsi]))
>         if (linksets[lsi].dpc == pc)
>           if (linksets[lsi].cic_list[cic])
>             return linksets[lsi].cic_list[cic];
>   }
>   return NULL;
> }




-- 
*Exa-Omicron*
Patroonsweg 10
3892 DB Zeewolde
Tel.: 088-OMICRON (66 427 66)
http://www.exa-omicron.nl



More information about the asterisk-ss7 mailing list