Перейти до основного вмісту

Публікації

Показано дописи з міткою "Asterisk"

Asterisk. Телефон за NAT. Не чутно голосу в одну сторону

SIP телефон під'єднаний до порту дротового інтерфейсу комп'ютера, котрий підключений до локальної мереже через WiFi. На комп'ютері для дротового інтерфейса вказано режим спільного використання, тобто для цього інтерфейса вказана мережа 10.42.1.0 і телефон фактично працює за NAT. Дивитись детальніше про режим у  https://onchigor.blogspot.com/2023/09/ubuntu-22-wifi-ethernet.html Дзвінок наружу проходить, але голос чутно тільки в одну сторону. Потрібно у pjsip.conf для цього телефона у секції [endpoint] вказати direct_media=no rtp_symmetric=yes force_rport=yes rewrite_contact=yes Після цього голос чутно у обидві сторони, але через деякий час телефон втрачає регістрацію і телефон може викликати, а його в мережі не видно. Щоб телефон за NAT не втрачав регістрацію, потрібно у pjsip.conf для цього телефона у секції [aor] вказати qualify_frequency=60 Поради знайшов у https://community.asterisk.org/t/asterisk-pjsip-no-voice-on-incoming-calls/97990 https://community.asterisk.org/t/pj

Телефон Cisco 7911 та Asterisk

Телефон Cisco 7911 працював на старих версія Asterisk через SIP. Після оновлення Asterisk і застосування PJSIP перестав реєструватись, на екрані "висить" повідломлення "Registering". Після поради вказати в pjsip.conf для endpoint “force_rport=no” телефон почав реєструватись на Asterisk. Пораду знайшов тут https://community.asterisk.org/t/asterisk-13-8-not-register-with-cisco-phone-7911g/66285 Виклик з телефона на інші телефони відбувається, але зателефонувати на цей телефон неможливо. "They register fine, and can make outgoing calls, but incoming calls do not ring." Констатацію факту знайшов у https://www.reddit.com/r/Cisco/comments/4zlsik/free_pbx_and_the_cisco_7911/ та https://www.reddit.com/r/freepbx/comments/4pht15/cisco_7940_registers_but_then_goes_unavailable/ Пропонується повернутись на SIP.

Налаштування PJSIP та заходи безпеки в Asterisk

Заходи безпеки добре описані https://github.com/asterisk/asterisk/blob/master/README-SERIOUSLY.bestpractices.md https://habr.com/ru/companies/myasterisk/articles/145024/ Документація https://www.asterisk.org/community/documentation/ https://docs.asterisk.org/Configuration/Functions/ Перехід на PJSIP та налаштування Trunk https://zadarma.com/ua/support/instructions/asteriskpjsip/trunk/ https://docs.omnicell.ua/pages/viewpage.action?pageId=75104488 https://lib.misto.kiev.ua/VOIP/ASTERISK/vegaphone_pjsip.dhtml Приклади файлів налаштувань https://github.com/asterisk/asterisk/blob/master/configs/basic-pbx/extensions.conf

Налаштування перехвату викликів в Asterisk

В Asterisk реалізований механізм перехвату усіх викликів. Для цього потрібно до мінімальних налаштувань додати файл конфігурації features.conf і в ньому вказати: pickupexten = *8 pickupsound=beep pickupfailsound = beeperr І у файлі sip.conf pickupgroup callgroup або namedpickupgroup namedcallgroup Але такий режим у великому офісі не дуже гарний. Краще налаштувати перехват конкретного виклику (directed pickup). Різні варіанти налаштування файлу extension.sconf вказані тут https://forums.asterisk.org/viewtopic.php?f=1&t=81670 This is the basic dialplan: CODE:  SELECT ALL [internal-calls] exten => 105,1,Dial(SIP/105,10,tT) exten => 106,1,Dial(SIP/106,10,tT) exten => 197,1,Dial(SIP/197,10,tT) [from-trunk] exten => 100288506,1,Dial(SIP/197,30,tT) The "internal-calls" context is used for all inter-extension calls, "from-trunk" context is used for all calls to and from the VoIP provider. All the extensions have defined t

Відключення після набору у Asterisk

Раптом після набору номеру Asterisk одразу кладе трубку. Якщо зайти у asterisk -r І вказати sip set debug on То можна побачити повідомлення на кшталт Called 101 -- Got SIP response 486 "Busy here" back from xxx.xx.xx.xxx   -- SIP/101 is busy   == Everyone is busy/congested at this time (1:1/0/0) Виявляється така поведінка буде якщо телефон, на котрий телефонуємо, переведено у режим do not disturb (DND). Пораду знайшов http://asterisk-support.ru/forum/topics/5657/

Помилка завантаження модуля sip в Asterisk.

Під час перезавантаження Asterisk не завантажується sip. У журналі /var/log/asterisk/message.txt бачимо NOTICE()   chan_sip.c: Unable to load config sip.conf ERROR()    message.c: No 'sip' message technology found. Якщо у консолі Asterisk спробувати завантажити модуль module load chan_sip.so Отримуємо повідомлення message.c: ast_msg_tech_unregister: No 'sip' message technology found. Виявилось, що для файлу /etc/asterisk/sip.conf вказані права тільки для root і метод 640, тобто asterisk не є членом групи root, тому не може прочитати цей файл. Допомогу знайшов у https://botbot.me/freenode/asterisk/2016-08-08/?page=1

Налаштування телефону Cisco 3905

Під час підключення телефону, не призначається адреса з серверу DHCP, а на екрані з’являється повідомлення про помилку "Image downloading Fail  From: 192.168.1.100" Таке ж повідомлення з’являється після скидання до фабричних налаштувань. Для початку, щоб позбутись будь-яких попередніх налаштувань, треба телефон скинути у фабричні налаштування. Для цього  Вимкнути кабель живлення. Вимкнути мережевий кабель (LAN). Натиснути і утримувати клавішу  #, вмикнути кабель живлення. Коли з’явиться повідомлення про скидання у фабричні налаштування, відпустити клавішу  #. Коли з’явиться запрошення ввести PIN код, ввести послідовність:   123456789*0# Телефон буде скинутий. Потім треба встановити сервери DHCP та TFTP, щоб вони працювали на адресі 192.168.1.100. Якщо ці сервери вже існують, але працюють за іншою адресою, треба додати додаткову адресу 192.168.1.100 на ваш мережевий інтерфейс (як eth0:0). Потім додати у налаштування серверу DHCP, щоб ві н обслуговував мереж

Перезавантаження IP-телефонів через Asterisk

Перезавантажити IP-телефони можна дистанційно через Asterisk. Для цього потрібно в sip_notify.conf вказати [check-cfg] Event=>check-sync [cold-restart] Event=>reboot_now [warm-restart] Event=>restart_now А потім у консолі Asterisk вказати sip notify cisco-cold-restart номер_телефону Це працює як для телефонів Cisco, так і для Grandstream. Пораду знайшов у http://bos-info.com/asterisk/sip-notify.html#more-795

Налаштування запуску IAXmodem в CentOS 6

Вже описував раніше підключення IAXmodem в CentOS 5. Але у CentOS 6 змінилась система запуску служб. Замість /etc/inittab використовується нова система Upstart. Для неї потрібно створювати скрипти запуску і зупинки. Тому, в теці /etc/init за допомогою vim /etc/init/start-iaxmodem.conf чи іншого редактора створюємо наступний файл конфігурації start-iaxmodem.conf start on runlevel [2345]  stop on runlevel [S016]  respawn exec /usr/local/sbin/iaxmodem ttyIAX0 Перевіряємо запуск за допомогою initctl start start-iaxmodem А для faxgetty, аналогічно за допомогою vim /etc/init/start-faxgetty.conf створюємо наступний файл start-faxgetty.conf start on runlevel [2345]  stop on runlevel [S016]  respawn  exec /usr/local/sbin/faxgetty ttyIAX0 Перевіряємо запуск за допомогою initctl start start-faxgetty Тепер після перезапуску CentOS 6, можна перевірити, що iaxmodem та faxgetty запустились ps aux | grep ttyIAX Треба впевнитись, що у скриптах запуску вказано в

Налаштування софтмодему IAXmodem для Asterisk+Hylafax у CentOS 5

Є вже встановлений Hylafax на Centos 5.x згідно допису, розміщеного раніше в цьому блозі. Є налаштований Asterisk. Треба підключити софтмодем IAXmodem. 1. Встановлення модему Викачуємо iaxmodem з sourceforge.net. Компілюємо згідно readme. Можливо знадобиться встановити залежності, наприклад spandsp. Копіюємо скомпільований iaxmodem в /usr/bin/. 2. Налаштування asterisk Створюємо директорію /etc/iaxmodem, створюємо файл /etc/iaxmodem/ttyIAX0 у вигляді device /dev/ttyIAX0 owner uucp:uucp mode 660 port 4570 refresh 500 server 192.168.0.20 peername iaxmodem secret iaxmodem codec alaw Додаємо модем у /etc/asterisk/iax.conf [general] maxregexpire=5000 [iaxmodem] port=4570 type=friend context=fax secret=iaxmodem host=dynamic qualify=yes disallow=all allow=alaw trunk=no jitterbuffer=no requirecalltoken=no Важливо, щоб розділ називався так само, як і peername у /etc/iaxmodem/ttyIAX0. А час у maxregexpire був не менше, ніж час refresh в /etc/iaxmodem/ttyIAX0. Перезапустити aste

Налаштування графіку MRTG для Asterisk

Для відображення статистики використання каналів в Asterisk можна використовувати Nagios або MRTG. Пораду знайшов у http://karlsbakk.net/asterisk/ http://rad.kiev.ua/asterisk_manager_interface http://the-asterisk-book.com/1.6/asterisk-manager-api.html Оскільки  MRTG вже використовується вирішив і для цього випадку використати  MRTG. Скрипт збирання результатів asterisk-mrtg взяв у http://karlsbakk.net/asterisk/scripts/asterisk-mrtg У файлі /etc/mrtg/mrtg.cfg прописав запуск скрипта Title[servername]: Server title PageTop[servername]: <h1>servername.domain.com</h1> Target[servername]: `/usr/local/bin/asterisk-mrtg -h servername.domain.com -u someuser -p Password -1 SIP -2 IAX2` Options[servername]: gauge,integer MaxBytes[servername]: 90 YLegend[servername]: Active channels ShortLegend[ servername]: chn Legend1 [ servername]: Channels Legend2 [ servername]: Channels LegendI[ servername]: SIP: LegendO[ servername]: IAX: Повний синтаксис командного рядка asterisk-

Регистрация софтфона в Asterisk

Для настройки Asterisk для работы с софтфоном (3CXPhone,SJPhone,Xlite,NCH Phone) можно в файле /etc/asterisk/sip.conf описать extension [sjphone] type=friend username=101 secret=101 qualify=yes nat=no host=XXX.XXX.XXX.XXX canreinvite=no context=fxsgroup И в файле /etc/asterisk/extensions.conf указать правило вызова exten => 101,1,Dial(SIP/sjphone,60,rT) Но оказывается, что алиас [sjphone] указывать в extension нельзя, нужно идентификатор, который указано в настройках SIP  в софтфоне. В данном случае недостаточно указать username, callerid, defaultuser.  Некоторые софтфоны (3CX Phone) для установления связи с Asterisk обязательно требуют указания имени и пароля, а если в sip.conf указан secret и username, софтфон не может зарегистрироваться, поскольку явно указан IP адрес. Правильно для данного случая в /etc/asterisk/sip.conf описать extension [101] type=friend username=101 secret=101 qualify=yes nat=no host=dynamic canreinvite=no context=fxsgroup

Подключение Cisco 7911/7912 по SIP к Asterisk

Аппарат Cisco IP Phone 7911 по-умолчанию настроен на использование протокола SCCP. Можно в Asterisk указать использование модулей SCCP, но для единообразия удобнее использовать SIP. Для использования протокола SIP в аппарате Cisco 7911 нужно обновить программное обеспечение.  Код обновления для загрузки в аппарат нужно скачать с сервера Cisco: http://tools.cisco.com/support/downloads/pub/Redirect.x?mdfid=278875240 Самое последнее обновление (на данный момент версия 9.3) может не работать c Asterisk, с  версии 9.X Cisco переходит на использование только TCP для SIP соединений. Поэтому для использования UDP удобнее скачать обновление версии 8.5.2 или 8.5.4. Может понадобится  вначале   установить обновление 8.5.2, а затем 8.5.4. Например, для обновления с SCCP11.8-2-2SR-4S надо вначале установить 8.5.2 Обновление будет производится с сервера  TFTP, поэтому д ля начала нужно настроить сервер DHCP, TFTP. Причем в DHCP нужно настроить опцию 150, которая используется для указания аппа