Test Chan_SS7 conexion between 2 elastix boxes

Hi all!

I have 2 servers elastix 2.0, to which I have successfully installed the version 1.4.3 libraries chan_ss7. Now I need to test the connection between these 2 servers, I followed some tutorials which describe how to make calls using this protocol between servers but have not been successful. Can someone help me with a “how to”?

Thanks!

first, you need a RJ45 cross cable:
1 – 4
2 – 5
4 – 1
5 – 2

on one host, you’ll need the etc/dahdi/system.conf

span=1,1,0,ccs,hdb3 bchan=1-31 loadzone = fr defaultzone = fr
on the other, in the line span=1,1… replace the second 1 with a 0

reload dahdi or reboot the systems

ss7.conf:

on one host (replace hostname pollux with appropriate)

[code][linkset-siuc]
enabled => yes
enable_st => no
use_connect => yes
hunting_policy => even_mru
context => ss7
language => fr
subservice => auto

[link-l1]
linkset => siuc
channels => 1-15,17-31
schannel => 16
firstcic => 1
enabled => yes

[link-l2]
linkset => siuc
channels => 1-15,17-31
schannel => 16
firstcic => 1
enabled => yes

[host-A]
enabled => yes
opc => 0x1
dpc => siuc:0x2
links => l1:1

[host-pollux]
enabled => yes
opc => 13000
dpc => siuc:11500
links => l2:1[/code]

on the other (again, replace hostname XXXXX):

[code][linkset-siuc]
enabled => yes
enable_st => no
use_connect => yes
hunting_policy => even_mru
context => ss7
language => da
subservice => auto

[link-l1]
linkset => siuc
channels => 1-15,17-31
schannel => 16
firstcic => 1
enabled => yes
[link-l2]
linkset => siuc
channels => 1-15,17-31
schannel => 16
firstcic => 1
enabled => yes

[host-XXXXX]
enabled => yes
opc => 0x2
dpc => siuc:11500
links => l1:1

[host-B]
enabled => yes
opc => 0x2
dpc => siuc:0x010101
links => l2:1[/code]

let us know how it goes

Thanks for your quick response!

I followed your recommendations and everything goes well, the lights of E1 ports (Sangoma A102 card) have changed to green when i connect the cross cable, and the command ss7 link status displays the following output:

Now my interest is to make a call between 2 servers, can you give me some help with this?

Best Regards!

the config files are for a digium board.

would a command Dial (SS7/SIUC/${EXTEN} ) help ?

the remote needs a context called ss7 that will handle the incoming call ( names is defined: context => ss7 )

Thank you very much cerien.jean

As you can see I’m new to this.

So I understand that I must:
[ul]
[li]Create the Dial dialplan (SS7/SIUC / $ (EXTEN)) in one of the host. (But I do not know how to do this).[/li]
[li]Then setup the remote dialplan to handle that context/entension. (the same I do not know how to do this).[/li][/ul]

I’m a bit lost, please could help me with a step by step?

If you are totally new, you need to read first “Asterisk, the future of telephony 2” (google for it, free download).

First, work to make calls between sip phones, then, these recommendations will make sense to you.

I will follow your advice, thank you very much for your help!

After a long night of reading, I made progress with my test.
At the same time I have some doubts about how it should make the connection between the two servers.

[ul][li]How should I create a trunk to make calls through SS7 between servers (SIP Trunk?)?[/li]
[li]How can I make calls out for SS7 protocol and not SIP?[/li][/ul]

typically, if you have a decent IP connection, you will interconnect your two servers via SIP - much cheaper & simpler.

The SS7 will be connected to a telecom provider - however, most of them connect customers with ISDN protocol, while SS7 is used between operators.

In fact, my need is to connect my asterisk server to a foneBRIDGE2 which going to handle my connection to a Telco. I just want to do a test to see if my connection SS7 really works before testing with the telco.

I have set my servers to test, but when I make calls I get the following output:

== Spawn extension (macro-hangupcall, s, 12) exited non-zero on 'SS7/siuc/4' in macro 'hangupcall' == Spawn extension (ss7, h, 1) exited non-zero on 'SS7/siuc/4' - SS7 hangup 'SS7/siuc/4' CIC = 4 Cause = 34 (state = 1) - SS7 hangup 'SS7/siuc/28' CIC = 28 Cause = 34 (state = 7) == Everyone is busy / congested at this time (1:0 / 1 / 0) - Executing [2101 @ ss7: 3] Hangup ("SS7/siuc/2", "") in new stack == Spawn extension (ss7, 2101, 3) exited non-zero on 'SS7/siuc/2' - Executing [h @ ss7: 1] Macro ("SS7/siuc/2", "hangupcall") in new stack - Executing [s @ macro-hangupcall: 1] GotoIf ("SS7/siuc/2", "1? Noautomon") in new stack - Goto (macro-hangupcall, s, 3) - Executing [s @ macro-hangupcall: 3] NoOp ("SS7/siuc/2", "TOUCH_MONITOR_OUTPUT =") in new stack - Executing [s @ macro-hangupcall: 4] GotoIf ("SS7/siuc/2", "1? Skiprg") in new stack - Goto (macro-hangupcall, s, 7) - Executing [s @ macro-hangupcall: 7] GotoIf ("SS7/siuc/2", "1? Skipblkvm") in new stack - Goto (macro-hangupcall, s, 10) - Executing [s @ macro-hangupcall: 10] GotoIf ("SS7/siuc/2", "1? Theend") in new stack - Goto (macro-hangupcall, s, 12) - Executing [s @ macro-hangupcall: 12] Hangup ("SS7/siuc/2", "") in new stack == Spawn extension (macro-hangupcall, s, 12) exited non-zero on 'SS7/siuc/2' in macro 'hangupcall' == Spawn extension (ss7, h, 1) exited non-zero on 'SS7/siuc/2' - SS7 hangup 'SS7/siuc/2' CIC = 2 Cause = 34 (state = 1) - SS7 hangup 'SS7/siuc/30' CIC = 30 Cause = 34 (state = 7) == Everyone is busy / congested at this time (1:0 / 1 / 0) - Executing [2101 @ from-internal: 3] Hangup ("SIP/109-0000000c", "") in new stack == Spawn extension (from-internal, 2101, 3) exited non-zero on 'SIP/109-0000000c' - Executing [h @ from-internal: 1] Macro ("SIP/109-0000000c", "hangupcall") in new stack - Executing [s @ macro-hangupcall: 1] GotoIf ("SIP/109-0000000c", "1? Noautomon") in new stack - Goto (macro-hangupcall, s, 3) - Executing [s @ macro-hangupcall: 3] NoOp ("SIP/109-0000000c", "TOUCH_MONITOR_OUTPUT =") in new stack - Executing [s @ macro-hangupcall: 4] GotoIf ("SIP/109-0000000c", "1? Skiprg") in new stack - Goto (macro-hangupcall, s, 7) - Executing [s @ macro-hangupcall: 7] GotoIf ("SIP/109-0000000c", "1? Skipblkvm") in new stack - Goto (macro-hangupcall, s, 10) - Executing [s @ macro-hangupcall: 10] GotoIf ("SIP/109-0000000c", "1? Theend") in new stack - Goto (macro-hangupcall, s, 12) - Executing [s @ macro-hangupcall: 12] Hangup ("SIP/109-0000000c", "") in new stack == Spawn extension (macro-hangupcall, s, 12) exited non-zero on 'SIP/109-0000000c' in macro 'hangupcall' == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/109-0000000c'

My settings are as follows:

I create a trunk between these 2 servers to test connectivity and I can successfully make SIP calls.
After creating this trunk I decided to make a special context for this in the file extensions_custom.conf which I defined as follows:

[Remote] exten => _2XXX, 1, NoOp () exten => _2XXX, n, Dial (SS7/106-peer / $ (EXTEN)) exten => _2XXX, n, Hangup ()

I add the remote context in from-internal-custom, I also believe the ss7 context in the extensions.conf file and I add the following

[SS7] include => from-internal include => from-trunk

And thus receives all incoming calls to the server for this context.
My problem arises when I try to make a call between servers with the SS7 protocol and which apparently goes all the channels but without the phone ringing call destination.

If someone could help me in this case I would be greatly appreciated.

ss7.conf

[code][Linkset-SIUC]
enabled => yes
enable_st => no
use_connect => yes
context => ss7
language => da
Subservices => auto
[Link-l1]
linkset => SIUC
channels => 1-15,17-31
schannel => 16
firstcic => 1
enabled => yes

[Link-l2]
linkset => SIUC
channels => 1-15,17-31
schannel => 16
firstcic => 1
enabled => yes

[Host-server.uno.com]
enabled => yes
opc => 0x1
dpc => SIUC: 0x2
links => l1: 1

[Host-server.dos.com]
enabled => yes
opc => 0x2
dpc => SIUC: 0x1
links => l2: 1
[/code]

extensions.conf

[code][SS7]
include => from-internal
include => from-trunk

[From-internal]
include => from-internal-custom

[From-internal-custom]
exten => 1234.1, Playback (demo-congrats); extensions dial CAN 1234


include => remote

[Remote]
exten => _2XXX, 1, NoOp ()
exten => _2XXX, 2, Dial (SS7/NombreTroncal / $ (EXTEN))
exten => _2XXX, n, Hangup ()[/code]

Thanks in advance for any help you can give me!

hi:
this PDf might help you: downloads.openvox.cn/pub/misc/Te … an_ss7.pdf

Thank you James.zhu.

I followed the instructions in the PDF that you recommended, and I could make calls. The output on my server is:

[code]

  • Executing [500 @ from-internal: 1] Dial (“SIP/101-00000031”, “ss7/1234”) in new stack
    • Sent IAM ANI CIC = 18 = 101 ID = 1234 INR =
    • Called 1234[/code]

Is this right?

Best Regards!