Подключаем Cisco к Asterisk через Sip

10.02.2010

В прошлый раз мы настраивали AsteriskNow для совершения звонков внутри локальной сети при помощи программных SIP телефонов. Фактически вместо программного SJPhone можно использовать множество имеющихся в продаже USB, Wireless, Ethernet SIP трубок что позволит организовать внутреннюю телефонию офиса.

Дело осталось за малым: организовать звонки во внешний мир. Тут есть три варианта:

  1. Специальная FXO карта для Asterisk. К ней подключается медная пара от телефонного оператора и разруливается маршрутизация звонков. За отсутсвием оной, равно как и медной пары, этот способ пока описывать не буду.
  2. Организация потока E1 от телефонного оператора с требуемым количеством номеров. Здесь сложность кроется в оборудовании, для того что бы принять это поток нужно специальное железо или опять же плата для Asterisk. В качестве специального железа зачастую выступает Cisco. Имеющаяся у меня cisco такую карточку имеет и поток принять может, вот только взять его не у кого, поэтому пока этот вариант тоже не рассматриваем.
  3. Подключение по SIP к любому провайдеру IP телефонии любым доступным методом. Т.к. традиционная телефония постепенно сдает свои позиции, эту нишу занимают операторы IP телефонии и соответственно такой способ подключения интересует многих.

На моем стенде получить доступ к какому-нибудь SIP оператору возможности у вы нет, но у меня есть Cisco 1700 которая вполне может изобразить для меня SIP провайдера, а подключенные к ней Cisco IPPhone станут для меня внешним миром.

И так, конфигурация Asterisk с прошлого раза  не изменилась. Все номера (extensions) остались прежними. Единственное что нам необходимо это добавить SIP транк (Trunk ) в сторону провайдера (Cisco).

Для этого в разделе Транки (trunks) создаем новый транк SIP

Обзовем его например To_cisco

Я заполнил только название и в поля опций занес следующие параметры

Для Peer

host=172.16.1.254

username=5555

secret=5555

type=peer

Для User

secret=5555

type=user

context=from-trunk

Пояснения: 172.16.1.254 это ip адрес cisco в вашем случае это может быть адрес провайдера, например того же sipnet. Username и secret это учетные данные для регистрации у провайдера, я буду использовать 5555 соответственно, у вас они конечно будут  другими. Сохраняем транк.

Теперь необходимо определить условия при которых звонок будет уходить на этот транк к SIP провайдеру.

Для этого в FreePBX в разделе Исходящая маршрутизация (Outbond Routes) создаем новый маршрут

Имя ему задаем любое, я назвал marsh_to_cisco.

В Шаблон номера (dial patterns) прописываем наше правило, по которому звонок будет отправляться на этот транк, например 8XXXXXXX (все звонки, начинающиеся с 8). В моем случае я прописал просто XXX, т.е. все трехзначные звонки уходят на cisco

На этом основная настройка Asterisk закончилась, осталось настроить Cisco.

Базовую конфигурацию сетевого оборудования я описывал в статье http://www.denaie.ru/?p=149

Немного изменим конфиг для того что бы соединяться по SIP  с Asterisk  и настроить соответствующую маршрутизацию. Дополнительно проверим, что на вторую сетевую карту Asterisk назначился IP адрес 172.16.1.1 или назначим его статикой, как вам больше нравится

version 12.3

service timestamps debug datetime msec

service timestamps log datetime msec

no service password-encryption

!

hostname gw1760-voip-test

!

enable secret 5 $1$4HP/$iYpuUaYUegwpX85f4MgVj0

enable password ciscocisco

!

voice-card 3

!

no aaa new-model

ip subnet-zero

ip cef

!

!

ip dhcp excluded-address 172.16.1.254

ip dhcp excluded-address 172.16.1.253

!

ip dhcp pool main

network 172.16.1.0 255.255.255.0

default-router 172.16.1.254

!

ip dhcp pool Phone

network 172.16.2.0 255.255.255.0

default-router 172.16.2.254

option 150 ip 172.16.2.254

!

!

no ip domain lookup

no ftp-server write-enable

!

!

voice service voip

allow-connections h323 to h323

allow-connections h323 to sip

allow-connections sip to h323

allow-connections sip to sip

h323

sip

bind control source-interface FastEthernet0/0.100

bind media source-interface FastEthernet0/0.100

!

!

voice class codec 1

codec preference 1 g729r8

codec preference 2 g711ulaw

codec preference 3 g711alaw

!

!

interface FastEthernet0/0

ip address 172.16.3.254 255.255.255.0

speed auto

full-duplex

!

interface FastEthernet0/0.100

encapsulation dot1Q 100

ip address 172.16.1.254 255.255.255.0

!

interface FastEthernet0/0.200

encapsulation dot1Q 200

ip address 172.16.2.254 255.255.255.0

!

ip classless

!

no ip http server

!

dialer-list 1 protocol ip permit

!

control-plane

!

!

voice-port 3/0

cptone RU

!

voice-port 3/1

!

voice-port 3/2

!

voice-port 3/3

!

!

dial-peer voice 10 pots

preference 7

destination-pattern 733

port 3/0

!

dial-peer voice 10001 voip

description **Incoming Call from SIP Trunk**

voice-class codec 1

session protocol sipv2

session target sip-server

incoming called-number .%

dtmf-relay rtp-nte

no vad

!

dial-peer voice 10002 voip

description **Outgoing Call to SIP Trunk**

destination-pattern ….

voice-class codec 1

session protocol sipv2

session target sip-server

dtmf-relay rtp-nte

no vad

!

sip-ua

credentials username 5555 password 12495242335C5855737A06 realm 172.16.1.1

authentication username 5555 password 01425655795E255B02191E

nat symmetric role active

nat symmetric check-media-src

disable-early-media 180

set pstn-cause 18 sip-status 408

retry invite 3

retry response 3

retry bye 3

retry cancel 3

retry register 3

timers trying 1000

timers register 150

sip-server ipv4:172.16.1.1

!

!

telephony-service

load 7960-7940 P00307020200

max-ephones 10

max-dn 150

ip source-address 172.16.2.254 port 2000

time-format 24

date-format dd-mm-yy

timeouts ringing 60

system message TeSt Ip PhOnE

user-locale RU

create cnf-files version-stamp 7960 Jul 18 2006 12:38:44

max-conferences 4

call-forward pattern .T

moh music-on-hold.au

transfer-system full-consult

transfer-pattern .T

directory entry 1 711 name First Phone

directory entry 2 722 name Second Phone

directory entry 3 733 name Analogue Telephone

!

!

ephone-dn  1

number 711

pickup-group 1

label First Phone

description First Phone

name First Phone

preference 1

no huntstop

hold-alert 30 originator

!

!

ephone-dn  2

number 722

pickup-group 1

label Second Phone

description Second Phone

name Second Phone

preference 1

hold-alert 30 originator

!

!

ephone  1

mac-address 0011.BB66.DDE7

type 7912

button  1:1

!

!

!

ephone  2

mac-address 0012.D965.1FF5

type 7912

button  1:2

!

!

!

line con 0

line aux 0

line vty 0 4

password cisco

login

!

end

В такой конфигурации asterisk и cisco соединяются и маршрутизируют свои звонки в соответствии определенными правилами, если номер 3значный то он уходит на cisco, а на cisco 4значные номера уходят на asterisk. Как уже было сказано вместо asterisk или вместо cisco может быть любой реальный sip провайдер и таким образом можно организовать выход во внешний мир.

 

И все же  ip телефония рулит. Она проще и удобнее проводной технологии. И самое главное сразу дает десятки преимуществ при использовании  при меньших затратах.

2 комментария

  • Leon 15.02.2011 в 11:20 пп

    Здравствуйте.
    есть:
    офис — asterisk
    доп.офис — cisco 871 и linksys pap2t

    возможно ли организовать связь офиса с доп.офисом через интернет по трехзначному номеру?

    • admin 17.02.2011 в 9:12 пп

      если нормально работает ip между офисами то почему нет? делайте номер и указывайте в настройках линксиса адрес астерикса и все остальное и все должно работать

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *