Первый опыт c Asterisk
Вот и наступило время моего постижения астериска (организация подрасла и возникла необходимость использования АТС, решил тратить время и средства в развитие собственного мозга).
Нашел хороший мануал по начальной установки, без проблем поставил linux ubutu server 12.04, Asterisk и веб управление FreePBX.
Потом начал изучать веб интерфейс, внутренние номера и софтфоны настроил (всё работает).
Дошел до настройки внешнего номера. Есть SIP номер от провайдера, я взял хост, логин и пасс. По мануалу (не решился выпендриваться своими 0,5% знаниями и шел строго по источнику знаний= мануал) прописал все параметры в транке, но что то не получалось, протестировав на прямую на софтфон пришел к выводу что необходимо пробросить порт 5060 на маршрутнике, после этого софтфон заработал без нареканий, но изменив в настройках маршрутника на IP адрес Asteriska заработало исходящее направление, но нет гудков и не слышно голоса и если позвонить на этот номер (транк) то гудки будто занято.
Всё
Извините что много написал, постарался подробно изложить что я ещё молодой в этой теме.
Added after 48 seconds:
Статья по которой настраивал http://habrahabr.ru/post/154933/
Added after 1 minutes:
Я занимался настройкой только в веб интерфейсе. В консоль не лез (один раз залез так, что пришлось переустанавливать
| Tribian @ Пт Фев 20, 2015 03:21 писал(а): |
| Подскажите оптимальный набор параметров в транке, и как выяснить почему не регистрируется транк. |
а вот тут вам только консоль расскажет
а вообще - что вообще делаете . покажите что в параметры транка вбиваете , строка регистрации ? что пробросили на маршрутнике какой маршрутник ?
вопросов больше чем ответов .
ps там еще бы не плохо RTP пробросить . 10000-20000 UDP
Я искренне рад что хоть кто то ответил ) у меня уже руки опустились и я пару недель вообще сервер не трогал, мысленно его избивал
Честно скажу что у меня получилось, звонки проходят практически успешно (об этом чуть ниже). Отвечу на ваши вопросы, быть может такому же ищущему новичку пригодиться: строку регистрации вообще не заполнял, т.к. в мануале про неё ни чего не написано. Маршутизатор TP-Link, порты для проброски: 5060 (tcp), 5060 (udp), 10000-20000 (udp). Параметры транка:
host=*.*.*.*
username=******
secret=****
type=peer
qualify=yes
disallow=all
allow=alaw
nat=no
canreinvite=nonat
insecure=invite
dtmfmode=rfc2833
P.S.
Расскажу о том как мне удалось таки настроить: Я очень часто звонил провайдеру но операторы не компетентны в этом вопросе (в моем городе лишь пара организаций которые используют asteerisk, всего лишь 1
Но почему то, транк работает по прежнему не совсем корректно: входящие с городского и с сотового номеров не проходят (занято), исходящие уходят успешно (я слышу и они слышат). Наверное буду опять завтра звонить провайдеру ) они уже ждут моего звонка каждый день
Если есть подсказки в каком направлении думать, буду благодарен.
Сейчас перечитал свое сообщение и решил кое что добавить для ясности: провайдер где то там у себя в настройках поставил что я за натом.
Простите за запутанность изложения мыслей.
| Цитата: |
| Но почему то, транк работает по прежнему не совсем корректно: входящие с городского и с сотового номеров не проходят (занято) |
1. Incoming Route вы прописали ?
Что бы понять а доходит ли вообще звонок, вам необходимо посетить cli asterisk при этом запустить sip set debug peer
| Цитата: |
| строку регистрации вообще не заполнял, т.к. в мануале про неё ни чего не написано. |
Проброс портов необходим:
1. Режит транк с ITSP.
2. Teleworkers - то есть удаленные подключения от сотрудников.
Поняв и решив эти вопросы Вы сможете двигаться далее.
Я знаю что у каждого оператора свои нюансы, но дело в том что они вообще не понимают что я от них хочу и какую такую строку регистрации требую
Обязательно завтра попробую Incoming Route (ещё не сталкивался, будем развиваться)
Спасибо за советы.
| Цитата: |
| что я от них хочу и какую такую строку регистрации требую |
Вы писали:
| Цитата: |
| протестировав на прямую на софтфон |
значит регистрацию Вы делали.
Вам необходимо понять для начала:
1. Какие есть способы принятия SIP сервиса на локальную АТС (Транк, Линия).
2. Режим работы АТС Asterisk с вышестоящими операторами (Сервер, Клиент).
Так как вы делали попытку регистрации, то Вы передавали авторизационные данные вышестоящему серверу регистраций (Вы клиент). Соответственно, Asterisk так же может выступать в роли клиента, и для этого необходимо прописать строку регистрации register => в sip.conf или через GUI.
Очередная удача. Входящие заработали -> прописал строку регистрации: (username:secret@host/username)
Спасибо за ответы, они наталкивали меня в нужную сторону
Каюсь: я не смог разобраться с Incoming Route. До того как я прописал строку регистрации у меня в cli asterisk при входящем вообще не было ни чего, лишь при исходящем появлялся текст. После того как я прописал строку регистрации так же всё стало появляться.
Если у вас есть какая ни будь литература на русском языке, я был бы рад.
Спасибо за помощь!
| Цитата: |
| Я делаю ужасные вещи...методом тыка настраиваю систему. |
это точно. обычно такое заканчивается взломом вашей системы и потоком вызовов через вашу систему заграницу с километровым счетом вам от провайдера
В завершение я ещё подключил 3 сотовых (мультифон), пока нареканий не было. Были небольшие проблемы с входящей связью, но потом нашел на этом форуме рабочий конфиг и всё заработало.
Так же Сделал голосовое меню.
Кстати, по поводу безопасности, это серьёзный вопрос. Я заметил что с разных IP адресов (Европа, может прокси) стараются зарегистрироваться, полистал google
Так что, считаю свой топик исчерпанным.
Спасибо за советы
Всем начинающим желаю усердия и старания. Всем знатокам желаю терпения
Подскажите пожалуйста как "подготовить" записи для IVR.
Объясняю: делал по инструкции http://voxlink.ru/kb/freepbx/freepbx-ivr/ всё хорошо, но при звонке тишина. Нашел что необходимо переконвертировать wav. Нашел стати http://www.voip-info.org/wiki/view/Conve ... n+Asterisk и sox -V hello.wav -r 8000 -c 1 -t ul hello.ulaw sox -V hello.wav -r 8000 -c 1 -t al hello.alaw sox -V hello.wav -r 8000 -c 1 -t gsm hello.gsm перепробовал все записи, тишина как была так и есть.
Подскажите куда глядеть
Added after 1 minutes:
Я не понял какой формат надо астериску что бы воспроизвести...
Пробовал при помощи фьючекодов перезаписывать запись, но всё ровно тишина
_________________
платный суппорт по мере возможностей
cli?
core set verbose 3
и делаете нужный звонок - копируете с экрана что получилось
_________________
платный суппорт по мере возможностей
[2015-04-21 10:30:32] WARNING[17913]: file.c:958 ast_streamfile: Unable to open no-valid-responce-pls-try-again (format 0x8 (alaw)): No such file or directory
Я загрузил запись "Me". Включил фьючекод, переписал запись, прослушал (позвонив на неё - через фьючекод), но когда ставлю её в IVR тишина.
и вопрос - перезапускали amportal после закидывания файлика ручками - потому как может не те права на файл стоят
_________________
платный суппорт по мере возможностей
Фалы я закидываю через через веб, под учёткой админа. Сейчас гляну права на него и лог ещё раз.
Added after 9 minutes:
-- Executing [**@from-trunk] Set("SIP/SINT_**", "__FROM_DID=**") in new stack
-- Executing [**@from-trunk] Gosub("SIP/SINT_**", "app-blacklist-check,s,1()") in new stack
-- Executing [s@app-blacklist-check] GotoIf("SIP/SINT_**", "0?blacklisted") in new stack
-- Executing [s@app-blacklist-check] Set("SIP/SINT_**", "CALLED_BLACKLIST=1") in new stack
-- Executing [s@app-blacklist-check] Return("SIP/SINT_**", "") in new stack
-- Executing [**@from-trunk] Set("SIP/SINT_**", "CDR(did)=**") in new stack
-- Executing [**@from-trunk] ExecIf("SIP/SINT_**", "0 ?Set(CALLERID(name)=89293558972)") in new stack
-- Executing [**@from-trunk] Set("SIP/SINT_**", "__CALLINGPRES_SV=allowed_not_screened") in new stack
-- Executing [**@from-trunk] Set("SIP/SINT_**", "CALLERPRES()=allowed_not_screened") in new stack
-- Executing [**@from-trunk] Goto("SIP/SINT_**", "ivr-1,s,1") in new stack
-- Goto (ivr-1,s,1)
-- Executing [s@ivr-1] Set("SIP/SINT_**", "TIMEOUT_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-1] Set("SIP/SINT_**", "INVALID_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-1] Set("SIP/SINT_**", "_IVR_CONTEXT_ivr-1=") in new stack
-- Executing [s@ivr-1] Set("SIP/SINT_**", "_IVR_CONTEXT=ivr-1") in new stack
-- Executing [s@ivr-1] Set("SIP/SINT_**", "__IVR_RETVM=") in new stack
-- Executing [s@ivr-1] GotoIf("SIP/SINT_**", "0?skip") in new stack
-- Executing [s@ivr-1] Answer("SIP/SINT_**", "") in new stack
-- Executing [s@ivr-1] Wait("SIP/SINT_**", "1") in new stack
-- Executing [s@ivr-1] Set("SIP/SINT_**", "IVR_MSG=custom/Me") in new stack
-- Executing [s@ivr-1] Set("SIP/SINT_**", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3.000
-- Executing [s@ivr-1] ExecIf("SIP/SINT_**", "1?Background(custom/Me)") in new stack
[2015-04-21 15] WARNING[19073]: file.c:663 ast_openstream_full: File custom/Me does not exist in any format
[2015-04-21 15] WARNING[19073]: file.c:958 ast_streamfile: Unable to open custom/Me (format 0x8 (alaw)): No such file or directory
[2015-04-21 15] WARNING[19073]: pbx.c:9781 pbx_builtin_background: ast_streamfile failed on SIP/SINT_** for custom/Me
-- Executing [s@ivr-1] WaitExten("SIP/SINT_**", "10,") in new stack
-- Executing [h@macro-dialout-trunk] Macro("SIP/**", "hangupcall,") in new stack
-- Executing [s@macro-hangupcall] GotoIf("SIP/**", "1?theend") in new stack
-- Goto (macro-hangupcall,s,3)
-- Executing [s@macro-hangupcall] ExecIf("SIP/**", "0?Set(CDR(recordingfile)=)") in new stack
-- Executing [s@macro-hangupcall] Hangup("SIP/**", "") in new stack
== Spawn extension (macro-hangupcall, s, 4) exited non-zero on '**' in macro 'hangupcall'
== Spawn extension (macro-dialout-trunk, h, 1) exited non-zero on '**'
== Spawn extension (macro-dialout-trunk, s, 22) exited non-zero on '**' in macro 'dialout-trunk'
== Spawn extension (from-internal, **, 5) exited non-zero on '**'
[2015-04-21 15] NOTICE[1368]: chan_sip.c:24905 handle_request_register: Registration from '"602" ' failed for '188.165.141.254:5078' - No matching peer found
[2015-04-21 15] NOTICE[1368]: chan_sip.c:24905 handle_request_register: Registration from '"602" ' failed for '188.165.141.254:5078' - No matching peer found
[2015-04-21 15] NOTICE[1368]: chan_sip.c:24905 handle_request_register: Registration from '"110" ' failed for '188.165.141.254:5114' - Wrong password
Added after 6 minutes:
Файлы:
drwxrwxr-x 2 asterisk asterisk 4096 апр. 17 19:53 .
drwxrwxr-x 3 asterisk asterisk 4096 марта 27 22:01 ..
-rw-r--r-- 1 root root 259383 апр. 17 18:06 Me1.ulaw
-rw-r--r-- 1 root root 1037576 апр. 17 18:19 Me2.wav
-rw-r--r-- 1 root root 518810 апр. 17 18:38 Me3.wav
-rw-r--r-- 1 root root 259383 апр. 17 18:42 Me4.alaw
-rw-r--r-- 1 root root 53526 апр. 17 18:55 Me5.gsm
Ни один из них не проигрывается
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
| Wapo @ Вт Апр 21, 2015 18:11 писал(а): |
| Ну дык ОНИ и не будут проигрываться!!!! Пишите custom/Mе1&custom/Mе2 ... |
Спасибо за совет.
Я делаю всё через веб. Мне не надо что бы они все проигрывались. Я перекодировал 5 записей и по очереди все пробовал.
Мой вопрос: проблема в формате файла?
Added after 1 minutes:
в консоли конфиги я вообще не трогаю.
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
lame --decode file.mp3
Получаем файл file.mp3.wav, который по своим характеристикам еще не подходит для *. Теперь перекодируем его в Asterisk-совместимую "вавку" (8000 Hz, 16 bit, mono WAV):
sox -v 0.5 file.mp3.wav -t wav -2 -r 8000 -c 1 file.wav
_________________
платный суппорт по мере возможностей
[2015-05-04 11] WARNING[2090]: file.c:663 ast_openstream_full: File custom/finish does not exist in any format
[2015-05-04 11] WARNING[2090]: file.c:958 ast_streamfile: Unable to open custom/finish (format 0x8 (alaw)): No such file or directory
[2015-05-04 11] WARNING[2090]: pbx.c:9781 pbx_builtin_background: ast_streamfile failed on SIP/SINT_57910 for custom/finish
Всё сделал по инструкции: залил MP3 -> lame --decode file.mp3 -> получился file.wav (не file.mp3.wav) -> sox -v 0.5 file.wav -t wav -2 -r 8000 -c 1 finish.wav
Added after 6 minutes:
попробовал склеить все файлы которые есть
[2015-05-04 12] WARNING[2409]: file.c:663 ast_openstream_full: File custom/finish does not exist in any format
[2015-05-04 12] WARNING[2409]: file.c:958 ast_streamfile: Unable to open custom/finish (format 0x8 (alaw)): No such file or directory
[2015-05-04 12] WARNING[2409]: pbx.c:9781 pbx_builtin_background: ast_streamfile failed on SIP/SINT_57910 for custom/finish&custom/123&custom/Me1&custom/Me2&custom/Me3&custom/Me4&custom/Me5
Added after 40 seconds:
Тишина
| Link @ Пн Май 04, 2015 22:31 писал(а): |
| так как по логу видно что Вы используете custom директорию для хранения звуковых файлов, посмотрите доступны ли они в системе и какие права на них! |
Права на /custom: drwxrwxr-x
Права на файлы:
-rw-r--r-- 1 asterisk asterisk 1042067 мая 4 11:24 123.mp3
-rw-r--r-- 1 root root 5725672 мая 4 11:26 123.wav
-rw-r--r-- 1 root root 519376 мая 4 11:27 finish.wav
-rw-r--r-- 1 root root 259383 апр. 17 18:06 Me1.ulaw
-rw-r--r-- 1 root root 1037576 апр. 17 18:19 Me2.wav
-rw-r--r-- 1 root root 518810 апр. 17 18:38 Me3.wav
-rw-r--r-- 1 root root 259383 апр. 17 18:42 Me4.alaw
-rw-r--r-- 1 root root 53526 апр. 17 18:55 Me5.gsm
Added after 15 minutes:
Изменил права и добавил файл.alaw:
-rwxrwxr-- 1 root root 519376 мая 8 12:59 finish.alaw
-rwxrwxr-- 1 root root 519376 мая 4 11:27 finish.wav
В кли:
[2015-05-08 13] WARNING[4885]: file.c:663 ast_openstream_full: File custom/finish1 does not exist in any format
[2015-05-08 13] WARNING[4885]: file.c:958 ast_streamfile: Unable to open custom/finish1 (format 0x8 (alaw)): No such file or directory
[2015-05-08 13] WARNING[4885]: pbx.c:9781 pbx_builtin_background: ast_streamfile failed on SIP/SINT_57910-000047b7 for custom/finish1
Почему он пишет "No such file or directory" ведь finish1 лежит в custom/
Added after 3 minutes:
Как я понял:
1 варнинг говорит, что не может открыть поток чтения т.к. формат не соответствует.
2 варнинг говорит, что нет файла finish1 с нужным форматом в директории custom/
Added after 1 minutes:
Он просит такой формат: (format 0x8 (alaw)? в варнинге написано