Hi,

On 2016-03-26 15:37, Mehdi Shirazi wrote:
Hi
Thank you for reply.
for simulating a real PSTN network scenario I still need to have 2
point code in asterisk and one signaling link for them.

Your real PSTN network scenario most likely requires an STP to split the messages to two end points ... once again Asterisk with libss7 is a Signalling End Point (SEP) and it has no routing functionality as STP

In existing libss7 ,if we have 2 signaling links on 2 linksets with 2
opc for Asterisk there is no problem.
I looked at source of libss7 I saw in mtp3.c:( with my limited
programming knowledge)
if (ss7->pc != rl.dpc) {
ss7_error(ss7, "Received message destined for point code 0x%x, but we
are 0x%x.  Dropping\n", rl.dpc, ss7->pc);

A signalling link is a point-to-point connection between two SS7 point codes and every node has it's own (one and only) point code. If the received message is not for it's own point code and the node has no routing functionality - it should be dropped (which the code above does). The only way to have two point codes is to have an Alias Point Code for a clustered node, but again it requires routing and clustering capabilities which Asterisk and libss7 does not have yet.

....
switch (userpart) {
        case SIG_ISUP:
                if (link->adj_sp->state == MTP3_UP) {
        return isup_receive(ss7, link, &rl, sif + rlsize, siflen - rlsize);

so it seems for every linkset there is a "struct ss7", and if we can
query existing list of "struct ss7"s(linksets) and find
matching ss7->pc with received MSU point code, we can put correct
address of "struct ss7" in "isup_receive()" function
and send the call to it's appropriate linkset.
according to my grep libss7 allocate new "struct ss7" with
*ss7_new(int switchtype) function but I cannot find where
libss7 call this function and where is list of allocated "struct ss7"= linksets
Do you agree with me and could you please help me ?

The ss7 code is split between libss7 and Asterisk (chan_dahdi and sig_ss7) - that's where ss7_new() is called, when a new linkset is created. What you suggest is the same as to define another linkset with the same sigchan, which is not possible. Instead of checking ss7->pc we should scan a list of routes attached to the linkset and to add routing functionality, which is not so simple and will require quite a lot of code changes.


Regards
M.Shirazi



--------------------------------------------
On Mon, 3/21/16, Kaloyan Kovachev <kkovac...@varna.net> wrote:

Subject: Re: [asterisk-ss7] Asterisk with one signalling link but 2 opc
To: "Mehdi Shirazi" <mahdi_shir...@yahoo.com>, asterisk-ss7@lists.digium.com
Date: Monday, March 21, 2016, 8:11 AM

Hi,
Asterisk (with libss7) is a signaling end-point, so you
can't have two
point-codes - you need an STP (which Asterisk is not)
between the two
boxes in order to separate the two signaling channels.
However you do not need two point-codes for this setup, but
simply to
define two groups of channels ... from the example in my
previous email,
change the linkset definitions to:

linkset=1
networkindicator=national
group=1
context=From_Span1
pointcode=1
defaultdpc=2
adjpointcode=2
cicbeginswith=1
channel => 1-15
group=2
context=From_Span2
cicbeginswith=17
channel => 17-31
sigchan=16

#include ss7.timers

linkset=2
networkindicator=national
group=3
context=From_Span3
pointcode=2
defaultdpc=1
adjpointcode=1
cicbeginswith=1
channel => 32-46
group=4
context=From_Span4
cicbeginswith=17
channel => 48-62
sigchan=47

#include ss7.timers


Now you have 4 groups on the same 2 linksets, which is equal
of having
two separate linksets on the same signalling link.


On 2016-03-21 07:40, Mehdi Shirazi wrote:
> Hi
> I connected 2 asterisk server with libss7 together to
simulate real
> scenario.
> There is one signaling link between .
> Asterisk one has one opc11 but Asterisk two have two
opc2_1 and opc2_2.
> There is 2 spans between , and I want to first spans
use opc2_1 and
> second span use opc2_2.
> For setting Asterisk one there is no problem , in same
linkset I can
> add new defaultdpc=3
> and new channels and new CICs. but in second server how
I can add CICs
> ,here I should separate
> add CICs based on pointcode (opc2_1 and opc2_2) but it
seems one link
> set just accept one point code.
>
> If I want to add linkset with new pointcode(opc) with
same signaling
> channel it is not possible.
>
> how I can have one signaling link but multiple
originate point code in
> different channel groupsĀ  ?
>
> Regards
> M.Shirazi

--
_____________________________________________________________________
-- 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