Cisco SPA8800

cisco spa8800

Phone1…Phone4 - 4 FXS порта
Line1…Line4 - 4 FXO порта

Подключите порты с сигналом (FXS) к портам внешних линий АТС (СО)
Подключите порты без сигнала (FXO) к портам внутренних линий АТС (SLT)

   Asterisk                               ATC
               внутренняя нумерация                                       
    3XX                                   1XX
    4XX                                   2XX

   SPA8800                                ATC
                логика подключения
     FXS                                  CO 
    Phone1 <--------------------------- CO(1)
    Phone2 <--------------------------- CO(2)
    Phone3 <--------------------------- CO(3)
    Phone4 <--------------------------- CO(4)

     FXO                                  SLT 
    Line1 ---------------------------> SLT(123)
    Line2 ---------------------------> SLT(124)
    Line3 ---------------------------> SLT(125)
    Line4 ---------------------------> SLT(126)

Таким образом абоненты АТС смогут набирать абонентов Asterisk и номера через внешние линии подключенные к Asterisk.
Абоненты Asterisk смогут набирать абонентов АТС и номера через внешние линии подключенные к АТС.

Конфигурация FXS порта (Phone)

FXS порты шлюза подключаются к внешним линиям АТС и служат для набора номеров абонентами АТС в сторону Asterisk.

Настройки для FXS со стороны Asterisk

Если используется FreePBX, создайте екстеншен <fs large>Application > Extensions > Add Extension > Generic CHAN SIP Device</fs>
И задайте: User Extension, Display Name и Password, в принципе этого достаточно.

Для конфигурационного файла, это будет выглядеть примерно так:
/etc/asterisk/sip_custom.conf

[601]
deny=0.0.0.0/0.0.0.0
secret=very_strong_password
dtmfmode=rfc2833
canreinvite=no
context=from-internal
host=dynamic
trustrpid=yes
sendrpid=no
type=peer
nat=no
port=5060
qualify=yes
qualifyfreq=60
transport=udp
dial=SIP/601
permit=192.168.0.0/255.255.255.0
callerid=phone1 <601>
callcounter=yes

Номер данного екстеншена не имеет значения, т.к. екстеншен будет осуществлять только исходящие вызовы.
Рассмотрим основные параметры:
host=dynamic - разрешать подключатся с любого IP
permit=192.168.0.0/255.255.255.0 - разрешать подключатся только из подсети 192.168.0.0
port=5060 - порт сигнализации SIP на удаленном устройстве (SPA8800).
SPA8800 использует для каждого из FXS/FXO уникальный порт сигнализации:

  1. Phone1=5060
  2. Phone2=5160
  3. Phone3=5260
  4. Phone4=5360

Соответственно укажите для каждого екстеншена уникальный порт соответствующий настройкам шлюза. Впрочем, если этого не сделать, все равно будет работать.
context=from-internal - контекст из которого будут вызываться номера набранные абонентами АТС.
Если, что наиболее вероятно, вы используете FreePBX, from-internal стандартный контекст, из которого, по умолчанию, разрешен набор всех номеров сконфигурированных в веб-интерфейсе.

Ваш собственный контекст мог бы выглядеть так:

[from-panasonic]
exten => _[34]XX,1,Dial(SIP/${EXTEN},180,tr)
exten => _XXXXXXX,1,Dial(SIP/sipprovider/${EXTEN},180,)
exten => _8[90]XXXXXXXXX,1,Dial(Dongle/dongle0/${EXTEN},,)
exten => _810.,1,Playback(tt-monkeys)

Создайте четыре екстеншена с уникальными именами и портами SIP соответствующими портам на стороне шлюза.

Настройки FXS со стороны шлюза

cisco spa8800 phone1

Задайте необходимые параметры для каждого из четырех FXS портов в соответствии с настройками созданных в Asterisk екстеншенов:

  • Proxy - IP Адрес сервера Asterisk
  • Display Name - Имя екткншена
  • User ID - Номер естеншена
  • Password - Пароль (secret)
  • Use Auth ID - Yes - Использовать Authorisation ID
  • Auth ID - Задайте ID аналогичный User ID

FXS Dial Plan

Каждый порт FXS может иметь уникальный план набора.
Dial Plan определяет разрешенные к набору номера при помощи шаблонов (pattern) основанный на регулярных выражения (RegEx).

cisco spa8800 Dial PLan

В данном примере задано три шаблона, разделенных вертикальной чертой:

 (*xx|[34]xx|xxxxxxxxxxxx.)
  • *xx - набор абонентских кодов, где «x» любая цифра от 0-9.
  • [34]xx - набор трехзначных внутренних номеров Asterisk, 3XX и 4XX.
  • xxxxxxxxxxxx. - набор номеров любой длины, где «x» любая цифра от 0-9, а точка это элемент повторения последнего знака шаблона, сколько угодно раз.

Казалось бы последнее правило включает в себя и второе. Да это так, за исключением того, что в последнем правиле, после набора номера, будет задействован таймаут, т.к. длина номера не определена:
<fs medium>Regional > Control Timer Values (sec) - Interdigit Long Timer: 10 (секунд. по умолчанию)</fs>
Шаблон полностью совпадающий по длине с набранным номером наберет номер сразу, после ввода последней цифры.

Настройка FXO порта (line)

Через FXO порты шлюза абоненты Asterisk смогут набирать абонентов АТС и номера чрез внешние линии подключенные к АТС.

Настройки для FXO со стороны Asterisk

Если вы используете FreePBX создайте SIP транк в Connectivity > Trunks

И и настройте Peer Details соответствии с настройками шлюза:

sip trunk fxo spa8800

[line1]
host=dynamic
defaultip=192.168.0.111
username=line1
secret=password
type=friend
qualify=yes
insecure=port,invite
port=5061
permit=192.168.0.0/255.255.255.0
nat=no

Создайте четыре транка с уникальными именами и портами SIP соответствующими портам на стороне шлюза.

Отстаётся только направить настроить маршрутизацию через созданные транки. В нашем примере внутренние номера АТС трехзначные 1ХХ и 2ХХ.

Во FreePBX это будет выглядеть так:

<fs medium>Connectivity > Outbound Routes</fs>

Или настройте в /etc/asterisk/extensions_custom.conf

    [from-asterisk]
    exten => _[12]XX,1,Dial(SIP/line1/${EXTEN},180,)
      same => n,(SIP/line2/${EXTEN},180,)
      same => n,(SIP/line3/${EXTEN},180,)
      same => n,(SIP/line4/${EXTEN},180,)

<spoiler|Macro spa8800 fxo>

[spa8800_1]
exten => _X.,1,Set(_TRK=SIP/fxo)
exten => _X.,n,Set(__RECSTATUSON=always)
exten => _X.,n,Set(__RECSTATUSOFF=dontcare)
exten => _X.,n,Macro(spa8800,${EXTEN})

[macro-spa8800]
exten => s,1,Noop()
exten => s,n,Set(CDR(did)=${ARG1})
exten => s,n,Set(CDR(userfield)=${ARG1})
exten => s,n,Gosub(sub-record-check,s,1(out,${ARG1},${RECSTATUSOFF}))
exten => s,n,Dial(${TRK}1/${ARG1},60,e)
exten => s,n,NoOp( Dial Status: ${DIALSTATUS})
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Hangup
exten => s-CONGESTION,1,Dial(${TRK}2/${ARG1},60,)
exten => s-CONGESTION,n,Dial(${TRK}3/${ARG1},60,)
exten => s-CONGESTION,n,Dial(${TRK}4/${ARG1},60,)
exten => s-CONGESTION,n,Congestion
exten => s-CANCEL,1,Hangup
exten => s-BUSY,1,Busy
exten => s-CHANUNAVAIL,1,Dial(${TRK}2/${ARG1},60,)
exten => s-CHANUNAVAIL,n,Dial(${TRK}3/${ARG1},60,)
exten => s-CHANUNAVAIL,n,Dial(${TRK}4/${ARG1},60,)
exten => s-CHANUNAVAIL,n,Hangup

</spoiler>

Настройки FXO шлюза

Задайте необходимые параметры для каждого из четырех FXO портов в соответствии с настройками созданных в Asterisk транков:

cisco spa8800 line1

Конфигурация Line мало чем отличается от настройки Phone Задайте необходимые параметры:

  • Proxy - IP Адрес сервера Asterisk
  • Display Name - Имя екстеншена
  • Password - Пароль (secret)
  • User ID - Номер екстеншена
  • Use Auth ID - No - Не использовать Authorisation ID
  • Auth ID - не требуется.

SIP порты FXO

  1. Line1=5061
  2. Line2=5161
  3. Line3=5261
  4. Line4=5361

<spoiler>

Dial Plans

Где Dial Plan 1: (S0<:1111111>) - DID для входящего вызова в Asterisk.

или без регистрации: (S0<:111111><:@192.168.1.7:5060>)

A VoIP-To-PSTN Gateway Setup

FXS VoIP Caller DP: 2 (xx.) - шаблон для исходящего вызова (любой номер) </spoiler>

Line-In-Use Voltage

cisco spa8800 line voltage

Порт FXO измеряет напряжение подключенной к нему линии. По умолчанию задан порог в 30V, но у многих АТС напряжение на внутренней линии меньше 30V. если напряжение будет меньше заданного порога, регистрация со стороны шлюза провалится.

 PSTN Line 2 Status
Hook State:    	On	                                        Line Voltage:    	-24 (V)
Loop Current:   0.0 (mA)	                          Registration State:    	Registered
Last Registration At:   11/11/2014 11:11:12	        Next Registration In:    	2329 s
Last Called VoIP Number:    		             Last Called PSTN Number:    	
Last VoIP Caller:    		                            Last PSTN Caller:    	
Last PSTN Disconnect Reason:    		         PSTN Activity Timer:    	30000 (ms)
Mapped SIP Port:    		                                   Call Type:    	

Проверим статус пиров в Asterisk:

Aster*CLI> sip show peers
Name/username             Host                                    Dyn Forcerport Comedia    ACL Port     Status      Description

601/601                   192.168.0.111                             D  No         No          A  5060     OK (10 ms)
602/602                   192.168.0.111                             D  No         No          A  5160     OK (8 ms)
603/603                   192.168.0.111                             D  No         No          A  5260     OK (10 ms)
604/604                   192.168.0.111                             D  No         No          A  5360     OK (9 ms)
line1/line1               192.168.0.111                             D  No         No          A  5061     OK (10 ms)
line2/line2               192.168.0.111                             D  No         No          A  5161     OK (9 ms)
line3/line3               192.168.0.111                             D  No         No          A  5261     OK (10 ms)
line4/line4               192.168.0.111                             D  No         No          A  5361     OK (10 ms)

И статус регистрации на шлюзе:
FXS

spa8800 status fxs

и FXO

spa8800 status fxo

Reboot

 http://spa-ip-addr/admin/reboot

The ATA device reboots only when it is idle.

Dialplan

Digit Sequence Function
0 1 2 3 4 5 6 7 8 9 0 * #Enter any of these characters to represent a key that the user must press on the phone keypad.
x Enter x to represent any character on the phone keypad.
[sequence] Enter characters within square brackets to create
a list of accepted key presses. The user can press
any one of the keys in the list.
• Numeric range
For example, you would enter [2-9] to allow the
user to press any one digit from 2 through 9.
• Numeric range with other characters
For example, you would enter [35-8*] to allow
the user to press 3, 5, 6, 7, 8, or *.
.
(period)
Enter a period for element repetition. The dial plan
accepts 0 or more entries of the digit. For
example, 01. allows users to enter 0, 01, 011,
0111, and so on.
<dialed:substituted> Use this format to indicate that certain dialed
digits are replaced by other characters when the
sequence is transmitted. The dialed digits can
be zero or more characters.
EXAMPLE 1: <8:1650>xxxxxxx
When the user presses 8 followed by a sevendigit
number, the system automatically replaces
the dialed 8 with 1650. If the user dials
85550112, the system transmits 16505550112.
EXAMPLE 2: <:1>xxxxxxxxxx
In this example, no digits are replaced. When the
user enters a 10-digit string of numbers, the
number 1 is added at the beginning of the
sequence. If the user dials 9725550112, the
system transmits 19725550112

SPA administration manual

http://asterisk-pbx.ru/downloads/cisco_spa8800.pdf

  • hardware/gateways/spa8800.txt
  • Последние изменения: 2015/06/14