LinuxForum.Fans
Тема

[Решено] Настройка asterisk 1.8 на убунте 12.04

Автор: Linux777 6 сообщений 6103 просмотров
#292924

Доброго дня!

Руководство поставило задачу поднять VoIP у нас в офисе. Поставило, ну и хорошо, стал разбираться с этим, т.к. большого опыта по IP-телефонии нет, полез в гугл и нашел замечательную статью, откуда многое познал:

Показать

Далее на свой сервак (ubuntu 12.04) поставил asterisk 1.8, после чего, согласно той ссылке, отредактировал нужные мне конфиги (sip.conf and extensions.conf). Далее установил на рабочую машинку софтфон x-lite и установил коллеге по цеху тоже x-lite для проверки связи, но вот, к сожалению, звонок не получается совершить, пишет call failed: declined.

Значит стал копать дальше, первое как было сказано в статье, сделал служебные звонки - все нормально слышу приятный женский голос астериска. Номера мой и коллеги благополучно зарегистрировались в системе (для примера взял как в статье 200-201-202-203 нормерной фонд). Но вот звонок между нами не проходит, надпись появляется call failed: declined.

Запустил сниффер (wireshark), и тут я понял, что запрос от моей машинки проходит на сервер, а вот сервер, видать, не может распознать меня чтоли, пишет ошибку такую - 401 unauthorized. пока не могу понять почему, где надо искать проблему. возможные варианты приходят на ум - проверить конфиги, что я сделал. и опять же гугл в помощь. кто знаком с этим прошу помочь. Заранее благодарен!!

Могу привести скриншоты снифера, что показывает. Надо бы понять, как правда их сюда вставлять, знаю есть тег imp. Но не совсем понял, как он работает. опишите как верно его использовать. спасибо!

В любом случае, уверен где-то траблы с конфигами, ведь я зарегистрировал оба софтфона (оба номера у себя и у коллеги), но звонки пока не проходят ни отнего ко мне, ни наоборот. Только служебный женский голос слышу, что уже хорошо.

будем думать дальше *SCRATCH*

#292935

спасибо

"Zhenjka" написал:
Как разместить картинку в виде превью?

тогда вот скриншоты wireshark

#293064

Вообщем, смог поднять VoIP и нашел ошибки. они были в конфигах sip.conf and extensions.conf. Пример, правильных конфигов ниже, заметьте есть отличия от тех, что были приведены в статье этой

"Linux777" написал:
.

конфиг sip.conf
Показать


----сначала общие настройки----

[general]
context=default ; Default context for incoming calls
allowguest=no ; Allow or reject guest calls (default is yes)
allowoverlap=no ; Disable overlap dialing support. (Default is yes)

udpbindport=5060
udpbindaddr=0.0.0.0
srvlookup=yes

-----далее идут номера, для примера создал 4 номера----

[200] ; xlite phone

type=friend

host=dynamic

username=200

secret=user1_password

nat=no

canreinvite=no

context=office

callerid="User1" <200>

allow=gsm

allow=ulaw

allow=alaw


[201] ; xlite phone

type=friend

host=dynamic

username=201

secret=user2_password

nat=no

canreinvite=no

context=office

callerid="User2" <201>

allow=gsm

allow=ulaw

allow=alaw


[202] ; xlite phone

type=friend

host=dynamic

username=202

secret=user3_password

nat=no

canreinvite=no

context=office

callerid="User3" <202>

allow=gsm

allow=ulaw

allow=alaw


[203] ; xlite phone

type=friend

host=dynamic

username=203

secret=user4_password

nat=no

canreinvite=no

context=office

callerid="User4" <203>

allow=gsm

allow=ulaw

allow=alaw


это мы зарегистрировали номера на сервере, данные нам потом пригодятся для того, чтобы мы могли зарегистрировать наши софтфоны на компах.

конфиг extensions.conf

Показать


----опять сначала общие настройки идут (подробно подписывал на русском языке сам конфиг, читайте внимательно и все станет ясно)----

; по умолчанию идет контекст демо как пример, и установлены тут параметры такие: сервер ждет минуту и отвечает-далее идут время ожидания 5 секунд на цифру и 10 секунд на ответ, после чего 5-6 строка проигрыш демо-мелодий! и последняя строчка - добавочные номера идут.

exten => s,1,Wait(1) ; Wait a second, just for fun
exten => s,n,Answer ; Answer the line
exten => s,n,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
exten => s,n(restart),BackGround(demo-congrats) ; Play a congratulatory message
exten => s,n(instruct),BackGround(demo-instruct) ; Play some instructions
exten => s,n,WaitExten ; Wait for an extension to be dialed.

; тут уже идут конктретные номера в контесте демо. а это 2-3-8500-1000
; При звонке на номер 2 мы прослушаем сообщение demo-moreinfo, после которого Asterisk перенаправит нас в начало, к сообщению demo-instruct. Набрав номер 3, мы изменим язык данной сессии на французский. (Чтобы Asterisk мог "разговаривать" с вами на французском языке, необходимо наличие соответствующих файлов озвучки в папке /var/lib/asterisk/sounds/fr.) При наборе номера 8500 нам ответит система голосовой почты Asterisk. Номер 1000 отправит нас в начало контекста demo.

exten => 2,1,BackGround(demo-moreinfo) ; Give some more information.
exten => 2,n,Goto(s,instruct)
exten => 3,1,Set(LANGUAGE()=fr) ; Set language to french
exten => 3,n,Goto(s,restart) ; Start with the congratulations
exten => 1000,1,Goto(default,s,1)

----теперь применим правило для наших звонков-----

[office]

exten => _20X,1,Dial(SIP/${EXTEN})
exten => _20X,n,Hangup()

после чего все заработало, я смог прозвониться с одного номера на другой в любом направлении. Сейчас подключим телефон CISCO. Как заработает, напишу решение и этой задачи.

#293067

а вот с этити настройками пока не очень понятно, зачем. Но по той статье это не работает, в связи с чем в гугле нашел ответ, как сделать проще и лучше, смотри предыдущий мой пост.

Показать


[office]

exten => 200,1, Macro(stdexten,200,SIP/200)

exten => user1, 1, Goto(200|1)

exten => 201,1, Macro(stdexten,201,SIP/201)

exten => user2, 1, Goto(201|1)

exten => 202,1, Macro(stdexten,202,SIP/202)

exten => user3, 1, Goto(202|1)

include => demo

Мы определили три номера и три псевдонима, при наборе которых активируется макрос stdexten, отвечающий за обработку вызовов пользователей. Псевдонимы позволят звонить абоненту не только по его номеру, но и по имени. В качестве параметров макросу передается номер данного пользователя и имя его SIP-устройства. Давайте посмотрим, что же делает этот макрос:

[macro-stdexten]

exten => s, 1, Dial (${ARG2},20,t [4] )

exten => s, 2, Goto(s-$(DIALSTATUS),1)

exten => s-NOANSWER, 1, Voicemail(u${ARG1})

exten => s-NOANSWER, 2, (Goto(default,s,1))

exten => s-BUSY, 1, Voicemail(b,${ARG1})

exten => s-BUSY, 2, (Goto(default,s,1))

exten => _s-., 1, Goto(s-NOANSWER)

exten => a, 1, VoiceMailMain(${ARG1})

#296924

Вот и подключил я Cisco, причем разных модельных рядов 7940 и 7912. Конфиги рабочие для этих номеров описаны в посте 4 (sip.conf+extension.conf). Вам просто нужно добавлять номера любые в конфиг. Например, сделал еще один номер я

Показать
[204] ; xlite phone

type=friend

host=dynamic

username=204

secret=user5_password

nat=no

canreinvite=no

context=office

callerid="User5" <204>

allow=gsm

allow=ulaw

allow=alaw

И как уже говорил в 5 посте, не делайте так, это не работает, как было описано автором в статье его тут

"Linux777" написал:

У меня есть другой еще офис, сейчас буду соединяться с Sip-провайдером и настраивать два астериска между собой. сделаю отпишусь. Насколько знаю, там могут быть проблемы односторонней слышимости, т.к. телефония будет за NAT ходить. Об этом тоже знаю http://ru.wikipedia.org/wiki/STUN + http://asterisk.ru/store/files/Asterisk_RU_OReilly_DRAFT.pdf Статья в ПДФ очень хорошая, русскоязычная! Очень советую!!

Войдите или зарегистрируйтесь, чтобы ответить.