IP телефония – Астериск часть 1
Нужны новые клиенты? Тогда Вам рекомендуем посмотреть этот раздел нашего сайта
_____
В интернете много статей на тему установки и использования астериска, замечу что для обывателя разобраться в таких терминах без “бутылки” сложно, но упорство побеждает все.
Вот наиболее простой и рабочий вариант
Установка.
1. Отключаем на роутере NAT!
2. Обновляем убунту sudo apt-get update
3. Ставим sudo apt-get install build-essential и sudo apt-get install subversion
4. Ставим sudo apt-get install asterisk
Теперь самое интересное. В общем и целом в астериске есть два ключевых файла, по которым и происходит маршрутизация/логика звонка sip.conf и extention.conf.
Настройки провайдера ip телефонии можно прописать в sip.conf – находим строки и делаем как ниже
Замечание – все что стоит после “;” не читается машиной, соответственно если строка без ; тогда машина уже берет на вооружение этот параметр.
[general]
context=default ; Default context for incoming calls
allowguest=no ; Allow or reject guest calls (default is yes), в целях безопасности ставим no
udpbindaddr=0.0.0.0:5060 ; IP address to bind UDP listen socket to (0.0.0.0 binds to all)
tcpenable=yes ; Enable server for incoming TCP connections (default is no)
tcpbindaddr=0.0.0.0 ; IP address for TCP server to bind to (0.0.0.0 binds to all interfaces)
srvlookup=yes ; Enable DNS SRV lookups on outbound calls
tos_sip=cs3 ; Sets TOS for SIP packets.
tos_audio=ef ; Sets TOS for RTP audio packets.
tos_video=af41 ; Sets TOS for RTP video packets.
tos_text=af41 ; Sets TOS for RTP text packets.
// далее важные строки по обрабатывающим кодекам
disallow=all ; First disallow all codecs
allow=alaw
allow=ulaw ; Allow codecs in order of preference
allow=g729
allow=g723
allow=ilbc ; see https://wiki.asterisk.org/wiki/display/AST/RTP+Packetization
allow=gsm
// не важная строка
language=ru ; Default language setting for all users/peers
//лучше ставить так эти строки
dtmfmode = rfc2833 ; Set default dtmfmode for sending DTMF. Default: rfc2833
alwaysauthreject = yes
//Далее зависит от настройки Вашей локальной сети
localnet=192.168.0.0/255.255.255.0
externaddr = хх.хх.хх.хх ; важная строка – здесь ставим внешний БЕЛЫЙ ip адрес, если авторизация у провайдера телефонии по ip адресу (у меня по ip, во многих случаях по логину и паролю – Манго и пр.)
nat = no ; очень много проблем возникает у пользователей астериска из-за включенного NAT, поэтому ставим здесь no и не забываем на роутере отключить нат.
// самое интересное, описываем непосредственное подключение к провайдеру услуг, напоминаю авторизация идет по ip адресу. Не забываем что провайдер тоже должен у себя на железе прописать Ваш белый ip адрес.
[2000] ; можно ставить любое численное значение
type=friend
host=хх.хх.хх.хх ; ip адрес провайдера услуг
canreinvite=no ; эту и ниже строки лучше уточнить в интернете, что они обозначают (ни чего сложного, говорят о кодеках, качестве и посылки служебных пакетов)
qualify=yes
dtmfmode=rfc2833
disallow=all
allow=alaw
allow=gsm
allow=ulaw
insecure=port
// теперь описываем блок подключения через программный ip phone (for win7 – Xlite, for IOS, android – 3CXPhone), т.е. то с чего будем звонить с любого уголка планеты 🙂
[2001]
type=friend
context=office ; здесь мы указываем каким образом мы будем осуществлять звонок, этот контекст прописан в файле extention.conf и прочно на него завязан, мы видим, что выше в описании подключения к провайдеру мы не используем контекст и далее нам будет понятно почему. Своего рода мы получаем кольцо м/у двумя файлами sip и extention
callerID=7499******* ; Ваш номер телефона выделяемый провайдером
host=dynamic
username=2001
secret=********* ; пароль для программного телефона – ЧЕМ ДЛИННЕЕ ПАРОЛЬ ТЕМ КАЧЕСТВЕННЕЕ ЗАЩИТА!
canreinvite=no ; остальное тоже самое что и в описании для провайдера.
qualify=yes
dtmfmode=rfc2833
allow=gsm
allow=ulaw
allow=alaw
можно еще на создавать кучу “пользователей” таких как 2001 и общаться между собой.
P.S. файл sip.conf состоит из множества строк, так как разработчики решили сразу же сделать полное описание и полный функционал, а пользователь уже выбирает, что ему нужно, а что нет. Тоже самое и в extention.conf.
P.S.1. Не забываем про роутер, сервер где висит астер д/б открытым, т.е. открытые порты 10000 – 20000 tcp/udp, 5060-5070 tcp/udp