среда, 9 апреля 2008 г.

FreePBX over nat with mcn.ru

Задача
Настройка IP телефонии с помощью FreePBX и подключение к mcn.ru

Поиск решения
На этот раз пришлось ручками все делать!

Решение
Про сборку FreePBX рассказывать не стану, статей в интернете куча. У меня завелось на полностью обновленном centos 5.

единственное что пришлось добавить строчки для в rc.local
touch /var/lock/subsys/local
/sbin/ztcfg
/usr/local/sbin/amportal start


Далее о самом mcn.ru

У нашей организации на 1 аккаунте подключено 2 телефонных номера и много линий
при звонке на первый городской номер mcn должен вызывать предположим внутренний номер 13 а при звонке на второй - 14

Freepbx у нас находится за NAT, соответственно пришлось попотеть еще и с этим.

1. Настройка транка (trunk)
Добавляем новый sip trunk:

Outbound Caller ID: любой номер. желательно ваш городской номер у провайдера
Maximum Channels: сколько у Вас линий
Dial Rules: Если не очень заморачиваться - сойдет вот такой вариант

8495XXXXXXX
8XXXXXXXXXX

trunk name: любое название латиницей (у меня mcn)
username=имя пользователя (узнать у провайдера)
type=peer (Означает что будет использоваться только исходящее соединение см дополнительно)
secret=пароль
qualify=180000 (частота запросов к провайдеру. в принципе что бы их не сильно нагружать ставим меньше)
host=(IP или доменное имя провайдера)
fromdomain=ваш Public IP адрес
disallow=all (Запретить использование всех кодеков)
allow=gsm (Разрешить только GSM - использует мало траффика и при этом дает неплохое качество связи на плохих соединениях)
canreinvite=no (Запрет на прямые соединения между 2 sip client 'ами позволяет избавиться от проблем когда один из клиентов за NAT)


User Context: в большинстве случаев значения не имеет, у меня стоит from-trunk
user details:

username=
type=user (используется для входящих вызовов)
secret=
host=
fromdomain=
disallow=all
context=from-trunk (пока не понял но работает )
allow=gsm


Далее идем в Outbound routes:

name - значения не имеет
dial pattern
8XXXXXXXXXX
XXXXXXX
trank secuence mcn (название транка)

Далее Inbound routes:
description: любое удобное описание
did - тот номер который вызывает ваш провайдер на вашей атс (в моем случае это было 13 или 14)
set destination: куда маршрутизировать звонок

А теперь самое интересное! Вот что мне пришлось дописать в конфиги
sip_nat.conf
bindport=5060
bindaddr=0.0.0.0
srvlookup=yes
relaxdtmf=yes
alwaysauthreject=yes
videosupport=yes
notifybusy=yes
limitonpeer=yes
notifyhold=no
pedantic=yes

externip=
localnet=192.168.0.0/24



sip.conf

insecure=port,invite

Дополнительно
type - тип соединения с сервером. бывает peer friend и user
peer только исходящие
user только входящие
friend = user+peer
Отправить комментарий