AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Транзитная АТС по ОКС-7 (chan_ss7) с несколькими linkset и разными OPC и DPC

Newbies/FAQ Forum 1 сообщений -
#1

Добрый день!

Недавно появилась задача, реализацию которой я опишу ниже. Возможно куму-то пригодится. Я в телефонии далеко не гуру, поэтому прошу строго не судить если что не совсем корректно излагаю.

Требуется реализовать следующую схему работы:
Ростелеком­­­­АТС1АТС2SIPабонент.

Ростелеком- это провайдер к которому подключаемся по ОКС-7. Он нам дает номерную емкость.
АТС1 и АТС2 это наши атски, собранные на базе Asterisk 1.6.2
Для работы с ОКС-7 используется модуль chan_ss7-2.0.0 Этот модуль пропатченный, так как в исходном виде он не умеет работать с NOA (Nature of Address Indicator). Как пропатчить и суть проблемы, можно почитать тут

В итоге нам необходимо чтобы SIP абонент мог пользоваться номером выданным Ростелеком, при этом получается что АТС1 работает в транзитном режиме.

На АТС1 стоит двухпортовая плата Quasar-M Драйвер адаптера используется Quasar-mini, так как с обычным драйвером (Версия драйвера 3.1.1) возникли проблемы.

На АТС2 стоит однопортовая плата Digium TE121.

Используются следующие коды пунктов сигнализац­­­ии ОКС7:
Ростелеком­­­- 164
АТС1-845
АТС2-16

Итак приступим.

1) Проверяем что сервера нашли платы потока Е1

Код:

АТС1, на ней установлена плата Quasar-M

[root@ip0-2-58 1]# lspci
03:00.0 Network controller: Altera Corporation Device 2230 (rev 10)



Код:

АТС2, на ней установлена плата Digium TE121

[root@sip2 asterisk]# lspci
10:08.0 Ethernet controller: Digium, Inc. Wildcard TE121 single-span T1/E1/J1 card (PCI-Express) (rev 11)


2) Конфигурим на каждом из серверов DAHDI и подгружаем модули (драйвера) плат.

Код:

АТС1

[root@ip0-2-58 dahdi]# cat /etc/dahdi/modules
quasar


cat /etc/dahdi/system.conf
# Define SPAN configuration
span = 1,1,0,ccs,hdb3 #это линк на Ростелеком, порт 1 настроен как slave
span = 2,0,0,ccs,hdb3 #это линк на АТС2 , и порт 2 настроен как master

#SPAN1, CCS signaling (PRI/SS7)
bchan=1-31
#SPAN2, CCS signaling (PRI/SS7)
bchan=32-62

loadzone = ru
defaultzone = ru


Код:

АТС2

[root@sip2 dahdi]# cat /etc/dahdi/modules
wcte12xp



[root@ip0-2-58 dahdi]# cat /etc/dahdi/system.conf
# Span 1: WCT1/0 "Wildcard TE121 Card 0" (MASTER)
span=1,1,0,ccs,hdb3 #это линк на АТС1 , и порт соответственно настроен как slave
bchan=1-31

loadzone = ru
defaultzone = ru


То что модули плат успешно подгрузились в систему можем посмотреть следующим образом:
Код:

[root@ip0-2-58 dahdi]# lsmod
Module Size Used by
quasar 24864 0

[root@sip2 dahdi]# lsmod
Module Size Used by
wcte12xp 31155 31


3) Приступаем к настройке linkset ОКС-7
Код:

АТС1
cat /etc/asterisk/ss7.conf
[linkset-rtk]
enabled => yes
enable_st => no
use_connect => yes
hunting_policy => even_mru
context => fromSS7
language => ru
t35 => 15000,timeout
subservice => auto

[linkset-peer2]
enabled => yes
enable_st => no
use_connect => yes
hunting_policy => even_mru
context => fromSS7
language => ru
t35 => 15000,timeout
subservice => auto

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

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

[host-ip0-2-58.home.net.ru]
enabled => yes
default_linkset => rtk
opc => 845
dpc => rtk:164,peer2:16
links => l1:1,l2:2 #The links on the host is 'l1', connected to span/connector #1


Код:

АТС2
[root@sip2 asterisk]# cat /etc/asterisk/ss7.conf
[linkset-rtk1]
enabled => yes
enable_st => no
use_connect => yes
hunting_policy => even_mru
context => fromSS7
language => ru
t35 => 15000,timeout
subservice => auto

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

[host-sip2.net.ru]
enabled => yes
default_linkset => rtk1
opc => 16
dpc => rtk1:845
links => l1:1


Для диагностики и настройки chan_ss7 удобно производить загрузку и выгрузку модуля ручным способом- анализировать информацию на экране и читать логи
Код:
[root@ip0-2-58 asterisk]# asterisk -r
Asterisk 1.6.2.19, Copyright (C) 1999 - 2010 Digium, Inc. and others.
ip0-2-58*CLI> module unload chan_ss7.so
ip0-2-58*CLI> module load chan_ss7.so


Проверку линков производим следующим способом:
Код:

[root@ip0-2-58 asterisk]# asterisk -r
ip0-2-58*CLI> ss7 linestat
Linkset: rtk
CIC 1 Idle
CIC 2 Idle
..
CIC 31 Idle
Linkset: peer2
CIC 1 Idle
CIC 2 Idle
..
CIC 31 Idle

Либо так:
ip0-2-58*CLI> ss7 link status
linkset rtk, link l1/16 INSERVICE, sls 0, total: 3317788976, 3317784304
linkset peer2, link l2/16 INSERVICE, sls 0, total: 3317788960, 3317784352

Можно так же оценить текущее состояние каждого из линков
ip0-2-58*CLI> ss7 status
linkset idle busy initiating resetting total incoming total outgoing
rtk 30 0 0 0 0 0
linkset idle busy initiating resetting total incoming total outgoing
peer2 30 0 0 0 5 0


4) Ну и наконец создаем диалплан.
Код:

АТС1
cat /etc/asterisk/extensions.conf
[fromSS7]
exten => 4957058909,1,Dial(SS7/peer2/${EXTEN},300,T)
exten => 4957058909,n,Hangup()

exten => _XXXXXXX,1,Dial(SS7/rtk/${EXTEN},300,T)
exten => _XXXXXXX,n,Hangup()


АТС2
cat /etc/asterisk/extensions.conf
[fromSS7]
exten => 4957058909,1,Set(CALLERID(num)=8${CALLERID(num)})
exten => 4957058909,n,Dial(SIP/209,60,t)
exten => 4957058909,n,Hangup()

[SS7]
exten => _XXXXXXX,1,Set(CALLERID(num)=${IF($[ ${CALLERID(num)} = 209]?4957058909:${CALLERID(num)})})
exten => _XXXXXXX,n,Dial(SS7/rtk1/L${EXTEN},300,T)
exten => _XXXXXXX,n,Hangup()


_________________
Один телефон – это необходимость, два телефона – богатство,
три телефона – роскошь, а ни одного телефона – блаженство.