Jump to content

Recommended Posts

Есть на основном сайте инструкция: Установка IP АТС Asterisk 18 на интернет-центр Keenetic

https://help.keenetic.com/hc/ru/articles/4407012166674

Здесь предлагается обсуждать особенности настройки / баги / проблемы, так как написание вопросов в разделе комментариев под статьёй совсем не приветствуется.

 

 

Link to comment
Share on other sites

Начну с вопросов, на которые сам себе ответил:

В этой версии выпилили chan_dongle , но вернуть его можно :

opkg install asterisk-chan-dongle

ну и екстеншн наполнить в соответствии с инструкциями по интернету.....

оговорюсь, что я запустить его нещё не смог - бодаюсь с модемом (E1550 нужно предварительно перевести в режим "только модем" - и на Убунту покаа не очень вышло)
 

Link to comment
Share on other sites

Теперь про SIP

не смотря на подробную инструкцию, SIP клиент у меня никак не захотел работать согласно неё.

Ну вот, захотел показать, как у меня заработал Twinkle когда внесены только 1002 и в SIP User ID и в SIP Auth ID - после перезагрузки снова перестало работать. (на предыдущей версии работало как часы).

Как подберу корректные настройки - выложу картинку сюда.

Link to comment
Share on other sites

Не получается с SIP :(

 

Вот такая ошибка: 

[Oct 21 21:59:30] NOTICE[13570]: res_pjsip/pjsip_distributor.c:676 log_failed_request: Request 'REGISTER' from '<sip:user1002@192.168.10.1>' failed for '192.168.10.26:5060' (callid: gdvjbqfbfchokus@PC) - No matching endpoint found
 

Я конечно продолжу подбирать пароль/логин, но учитывая то, что я в конфах  pjsip.conf даже пароль элементарный прописал:

Скрытый текст

 

[1002](phones-100x);
callerid=
aors=1002
auth=auth1002

[1002]
type=aor
remove_existing=yes
max_contacts = 3
mailboxes=1002

[auth1002]
type=auth
auth_type=userpass
username=user1002
password=1002

Ситуация очень странная.....

(Это при том, что на старенький Астерикс (сам собирал много лет назад) всё нормально ходит)

 

фото настроек:

Скрытый текст

sip1.jpg

 

Edited by Keen_VivaGiga
photo added
Link to comment
Share on other sites

Логи на стороне клиента:

Скрытый текст

+++ 21-10-2021 22:32:01.909822 INFO SIP ::send_sip_udp
Send to: udp:192.168.10.1:6060
REGISTER sip:192.168.10.1 SIP/2.0
Via: SIP/2.0/UDP 192.168.10.26;rport;branch=z9hG4bKtbvlhruq
Max-Forwards: 70
To: "1002" <sip:user1002@192.168.10.1>
From: "1002" <sip:user1002@192.168.10.1>;tag=bjmee
Call-ID: lqoshwvmpjmgznw@PC
CSeq: 480 REGISTER
Contact: <sip:user1002@192.168.10.26;transport=udp>;expires=3600
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCRIBE,INFO,MESSAGE
User-Agent: Twinkle/1.10.1
Content-Length: 0


---

+++ 21-10-2021 22:32:01.918510 INFO SIP ::process_sip_msg
Received from: udp:192.168.10.1:6060
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.10.26;rport=5060;received=192.168.10.26;branch=z9hG4bKtbvlhruq
Call-ID: lqoshwvmpjmgznw@PC
From: "1002" <sip:user1002@192.168.10.1>;tag=bjmee
To: "1002" <sip:user1002@192.168.10.1>;tag=z9hG4bKtbvlhruq
CSeq: 480 REGISTER
WWW-Authenticate: Digest realm="asterisk",nonce="1634844712/38fec668666cc0d079b8c456db5ec152",opaque="6462d853395e0e89",algorithm=md5,qop="auth"
Server: Asterisk PBX 18.4.0
Content-Length:  0


---

+++ 21-10-2021 22:32:01.918859 INFO SIP ::send_sip_udp
Send to: udp:192.168.10.1:6060
REGISTER sip:192.168.10.1 SIP/2.0
Via: SIP/2.0/UDP 192.168.10.26;rport;branch=z9hG4bKegwjdmur
Max-Forwards: 70
To: "1002" <sip:user1002@192.168.10.1>
From: "1002" <sip:user1002@192.168.10.1>;tag=bjmee
Call-ID: lqoshwvmpjmgznw@PC
CSeq: 481 REGISTER
Contact: <sip:user1002@192.168.10.26;transport=udp>;expires=3600
Authorization: Digest username="1002",realm="asterisk",nonce="1634844712/38fec668666cc0d079b8c456db5ec152",uri="sip:192.168.10.1",response="5257cf1833f60f5d9f7f273125a931e9",algorithm=md5,cnonce="fcd867b731",opaque="6462d853395e0e89",qop=auth,nc=00000001
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCRIBE,INFO,MESSAGE
User-Agent: Twinkle/1.10.1
Content-Length: 0


---

+++ 21-10-2021 22:32:01.926725 INFO SIP ::process_sip_msg
Received from: udp:192.168.10.1:6060
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.10.26;rport=5060;received=192.168.10.26;branch=z9hG4bKegwjdmur
Call-ID: lqoshwvmpjmgznw@PC
From: "1002" <sip:user1002@192.168.10.1>;tag=bjmee
To: "1002" <sip:user1002@192.168.10.1>;tag=z9hG4bKegwjdmur
CSeq: 481 REGISTER
WWW-Authenticate: Digest realm="asterisk",nonce="1634844712/38fec668666cc0d079b8c456db5ec152",opaque="3813a4630e5b8d84",algorithm=md5,qop="auth"
Server: Asterisk PBX 18.4.0
Content-Length:  0

 

+++ 21-10-2021 22:32:11.981224 INFO NORMAL t_auth::authorize

Asking user name and password failed.

 

 

 

Link to comment
Share on other sites

Уже много дней не получается завести SIP. Вернее pjsip (установлен по-умолчанию в этой сборке) - оказывается это несколько разные вещи.

Если у кого-то заработало - поделитесь пожалуйста опытом.

Link to comment
Share on other sites

Спасение утопающих......

Короче, запустить получилось убрав все "полезности" из файла настроек.

Вот остаток (не трогались+оставлены сегменты [phones-100x], [transport-udp], [domain_alias], [global]):

;======== Extensions 100x (nb) ===================================================
[1000](phones-100x);
callerid=
aors=1000
auth=auth1000

;======== AORS ========
[1000]
type=aor
max_contacts = 3
remove_existing=yes
mailboxes=1000

;======== Authentications ========
[auth1000]
type=auth
auth_type=userpass
username=1000
password=password

Собственно на клиенте прописывается :

пользователь = 1000

 пароль = password

домен = 192.168.1.1:6060

тип транспорта  = UDP

на стороне астериска полезной является команда (и её вывод):

pjsip show contacts

  Contact:  <Aor/ContactUri..............................> <Hash....> <Status> <RTT(ms)..>
==========================================================================================
  Contact:  1000/sip:1000@192.168.1.4:37479;rinstance=ee a48f1ff4ff NonQual         nan

 

 

Возникает вопрос: тестировались ли базовые настройки вообще?

Из странностей сборки, вот эта запись в логах загрузки Астериска (такого IP в подсети не существует)

Скрытый текст

 Loading res_pjsip.so.
    -- Local IPv4 address determined to be: 192.168.1.102

инструкцию для pjsip читал здесь: https://asterisk-pbx.ru/wiki/asterisk/pjsip

Edited by Keen_VivaGiga
Link to comment
Share on other sites

Из радостей в логах:

Скрытый текст

ERROR[29638]: netsock2.c:303 ast_sockaddr_resolve: getaddrinfo("Keenetic_Giga", "(null)", ...): Temporary failure in name resolution

WARNING[29638]: acl.c:890 resolve_first: Unable to lookup 'Keenetic_Giga'

кто подскажет чего ему не хватает?

Link to comment
Share on other sites

А ещё сообщения не настроены. (хотя может это из-за "чистки лишнего в pjsip.conf" - но маловероятно)

При попытке отправить сообщение - Астериск пытается позвонить обоим клиентам.

Вот такое в логах:

Скрытый текст

ERROR[29620][C-00000004]: channel.c:5653 set_format: Unable to set format because channel Message/ast_msg_queue supports no formats
ERROR[29620][C-00000004]: translate.c:1402 ast_translator_best_choice: Cannot determine best translation path since one capability supports no formats
WARNING[29620][C-00000004]: channel.c:6674 ast_channel_make_compatible_helper: No path to translate from PJSIP/1002-00000007 to Message/ast_msg_queue
WARNING[29620][C-00000004]: app_dial.c:3275 dial_exec_full: Had to drop call because I couldn't make Message/ast_msg_queue compatible with PJSIP/1002-00000007
  == Spawn extension (phones-nb, 1002, 😎 exited non-zero on 'Message/ast_msg_queue'

 

Link to comment
Share on other sites

Так как надежда на ответ тает с каждым днем буду хоть подсказки оставлять (по вопросам, которые решил самостоятельно)

Итак, после запуска Chan_dongle (который установили самостоятельно) и втыкания "правильного модема E1550" в CLI Астериска будет вагон ошибок вида "не могу найти smsdb.sqlite3". Гугл причём вообще его так не ищет, поиск успешен только для строки целиком "/var/lib/asterisk/smsdb.sqlite3"

И в качестве решения предлагает "chown asteriskhost:asteriskhost /var/lib/asterisk/"

На самом деле нужно в файле dongle.conf  в четвертой строке указать "smsdb=/opt/var/lib/asterisk/smsdb" вместо стоящего там "smsdb=/var/lib/asterisk/smsdb"

И после перезапуска астериска "core restart now" - файл smsdb.sqlite3 будет создан.

 

(отдельная благодарность разработчикам собиравшим Астериск - модем успешно опознался и по imei подтянулся. Даже USSD работает)

 

Link to comment
Share on other sites

Продолжаю цикл "поправил то, что не работало":

Отправка сообщений между клиентами pjsip заработает, если вставить в диалплан следующие строки:

same => n,NoOp(MESSAGE_from is ${MESSAGE(from)})
same => n,Noop(MESSAGE_to ${MESSAGE(to)})
same => n,Noop(Texto = ${MESSAGE(body)})
same => n,Messagesend(pjsip:${EXTEN},${MESSAGE(from)})
same => n,Noop(MESSAGE_SEND_STATUS ${MESSAGE_SEND_STATUS})
same => n,Hangup

А вот в какое место их в extensions.conf добавлять - это на усмотрение составителя (просто пихать - нельзя).

 

Из неожиданностей в данной сборке: Verbose в диалплане не принимается (Хотя должно согласно версии 18,4: https://wiki.asterisk.org/wiki/display/AST/Asterisk+18+Application_Verbose). Ошибка вот такая:

pbx_extension_helper: No application 'Verbose' for  

Link to comment
Share on other sites

Полезности для Huawei E1550 (нарыты на просторах)

dongle show devices

dongle restart now 

dongle sms dongle0 38099XXXXX test sms
dongle ussd dongle0 *101#

# Очистить память СМС
#  1 память SIM
dongle cmd dongle0 AT+CPMS=\"SM\",\"SM\",\"SM\" 
# 2 память модема
dongle cmd dongle0 AT+CMGD=1,4

# Перевести модем в режим только модема ()
dongle cmd dongle0 AT^U2DIAG=0
(enable modem function only) 

Вот только ошибку чтения никак пока побороть не могу:

ERROR[14811]: at_response.c:481 at_response_error: [dongle0] Error reading SMS message

раз 100 повторяется при перезагрузке . Правда потом - нет.

 

Так же столкнулся с ошибкой :

pbx_functions.c:608 ast_func_read: Function BASE64_DECODE not registered
 

Функция была в 11 версии Астериска, а в этой сборке чего-то нет похоже.

Ужасно полезная команда dialplan reload - ускоряет отладку диалплана 

 

Link to comment
Share on other sites

Делюсь рабочей сборкой диалплана для пересылки SMS и USSD в качестве сообщения SIP (PJSIP) клиенту 1005 (одновременно сохраняется в текстовый лог):

[sms_in]
exten => sms,1,NoOp(Incoming_SMS from ${CALLERID(num)} ${SMS} FOR${DONGLENUMBER})
exten => sms,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} -TO${DONGLENUMBER} - ${DATACARD} - ${CALLERID(num)}: ${SMS}' >> /opt/var/log/asterisk/sms.txt)
exten => sms,n,System(echo 'RAW ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DONGLENAME} - ${CALLERID(num)} - TO${DONGLENUMBER}: ${CMGR}' >> /opt/var/log/asterisk/raw.txt)
exten => sms,n,Set(MESSAGE(body)=${SMS})
exten => sms,n,Messagesend(pjsip:1005,sms_Giga1)
exten => sms,n,Hangup()


[ussd_in]
exten => ussd,1,NoOp(Incoming_USSD ${USSD} === FROM ${DONGLENUMBER})
exten => ussd,n,System(echo "${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} = ${DONGLENUMBER} -USSD_TYPE- ${USSD_TYPE_STR} : ${USSD}" >> /opt/var/log/asterisk/ussd.txt)
exten => ussd,n,System(echo "${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} = ${DONGLENUMBER} -USSD_TYPE- ${USSD_TYPE_STR} : ${BASE64_DECODE(${USSD_BASE64})}" >> /opt/var/log/asterisk/ussd_duble.txt)
exten => ussd,n,NoOp("ussd_in_BeforeMessagesend")
exten => ussd,n,SET(MESSAGE(body)=${USSD})})
exten => ussd,n,Messagesend(pjsip:1005,USSD_Giga1)
exten => ussd,n,Hangup()

недостаток - многострочные сообщения не обрабатываются из-за отсутствия в сборке команды/ функции BASE64_DECODE. (посмотрел на просторах - вопрос не однозначный: в исходниках версии 18,8 - она есть, но как его заполучить в виде func_base64.so, который бы нормально подключился в текущую версию - ещё не понял. У меня файл от старой версии файл сообщил о несовместимости)

Link to comment
Share on other sites

В копилку: если модем подключить в интерфейсе интернет-центра как канал интернета, то он перестаёт отзываться в Астериске + не работают смс и уссд.

Если отключить модемный канал интернета, то USSD возобновляет работу, а вот смс - нет. 

для восстановления работоспособности нужно перезагузить согласно инструкции: https://help.keenetic.com/hc/ru/articles/115000041605-Можно-ли-перезагрузить-по-питанию-USB-модем-подключенный-к-Keenetic-средствами-интернет-центра-

В моём случае это 

(config)> interface UsbModem0 usb power-cycle 1000
Network::Interface::Usb: "UsbModem0": started 1000 ms. power cycle.

после перезагрузки все смс сразу пришли на СИП клиента как сообщения.

Link to comment
Share on other sites

  • 2 weeks later...

Так как не всякое приложение работает из под Андроида с Астериском Кинетика поделюсь тем, что заработало у меня: PortSIP UC

и звонит отлично, и сообщения шлет (на дворе конец 2021 года)

  • Upvote 1
Link to comment
Share on other sites

  • 3 weeks later...
В 05.11.2021 в 01:09, Keen_VivaGiga сказал:

Из радостей в логах:

  Скрыть содержимое

ERROR[29638]: netsock2.c:303 ast_sockaddr_resolve: getaddrinfo("Keenetic_Giga", "(null)", ...): Temporary failure in name resolution

WARNING[29638]: acl.c:890 resolve_first: Unable to lookup 'Keenetic_Giga'

кто подскажет чего ему не хватает?

Подскажите, разобрались в чем проблема:

Скрытый текст

[Dec  7 22:05:09] ERROR[24546]: netsock2.c:303 ast_sockaddr_resolve: getaddrinfo("Keenetic_Ultra", "(null)", ...): Temporary failure in name resolution
[Dec  7 22:05:09] WARNING[24546]: acl.c:890 resolve_first: Unable to lookup 'Keenetic_Ultra'

 

Link to comment
Share on other sites

так приятно осознать, что то что я здесь написал читают разработчики. 😊

Обновили инструкцию https://help.keenetic.com/hc/ru/articles/4407012166674 в части изложенных выше вопросов (да и сборку обновили).

Спасибо.

Link to comment
Share on other sites

Ошибка пропала, видимо новая сборка помогла; при сборке ключей и сертификатов TLS данная ошибка также перестала вылетать.

/opt/etc/asterisk/extensions.conf - тут есть опечатка [phones-wb] include => voicemail-nb (wb наверное должно быть?)

  • Upvote 1
Link to comment
Share on other sites

6 часов назад, Евгений Т сказал:

/opt/etc/asterisk/extensions.conf - тут есть опечатка [phones-wb] include => voicemail-nb (wb наверное должно быть?)

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

 

Думаю это не является проблемой, если работает.....

Link to comment
Share on other sites

Приветствую.

Подскажите пожалуйста, каким образом правильно настроить внешнюю линию (условно Мультифон) на автоматическое включение автоответчика без голосового помощника предлагающего указать внутренний номер абонента?

 

Есть настроенная линия (например 1000)  на Keenetic Dect 

там же в Asterisk привязан транк на мультифон.

При входящем звонке автоответчик предлагает ввести внутренний номер и спустя некоторое время , если номер не введен (вероятно переводит на линию 1001) запускает возможность оставить сообщение.

 

Суть задачи - заменить нормальный SIP DECT телефон типа Гигасен 610A на Keenetic Dect  + Гигасет A220 у которого нет автоответчика и отображения на экране пропущенных вызовов.

Предполагалось, что сделать это поможет именно связка с asterisk.

 

 

Link to comment
Share on other sites

В 16.12.2021 в 15:54, Vitaly Chuyakov сказал:

Подскажите пожалуйста, каким образом правильно настроить внешнюю линию (условно Мультифон) на автоматическое включение автоответчика без голосового помощника предлагающего указать внутренний номер абонента?

так как указанных устройств у меня нет - точно не подскажу. 
А искать в интернете по запросу asterisk extensions Voice Mail.

Вот Вам точка старта: https://wiki.asterisk.org/wiki/display/AST/Configuring+Voice+Mail+Boxes

Link to comment
Share on other sites

Всем доброго времени суток.

Строго в соответствии с инструкцией пробую поставить Asterisk на Keenetic Peak (KN-2710) fw 3.8 Alpha 1
после установки наблюдаю созданную файловую систему:

f2e06a558483.png

При попытке выполнения команд

asterisk -rvvvv (консоль Asterisk);
core restart now (перезагрузка Asterisk с выходом в консоль Linux).
 

наблюдаю следующее:

7c1cbfccde85.png

Куда копать?

Edited by rapaz
Link to comment
Share on other sites

On 12/28/2021 at 1:09 AM, rapaz said:

Куда копать?

Я установил Asterisk из архива на KN-2710 v3.8 Alpha 1 и у меня консоль Asterisk успешно подключается.
Проверьте, существует ли каталог /opt/var/run/asterisk/ , всё ли в порядке с правами.
Для этого выполните команду "ls /opt/var/run/asterisk/ -all", вывод должен быть как на скриншоте.
Команду "core restart now" нужно выполнять в консоли Asterisk.
Screenshot from 2021-12-29 13-20-52.png

Link to comment
Share on other sites

  • 2 weeks later...

 

в директории opt var не обнаружена:

[url=https://radikal.ru][img]https://c.radikal.ru/c16/2201/5a/6ecc9e0dbde8.png[/img][/url]

 

[url=https://radikal.ru][img]https://c.radikal.ru/c34/2201/27/cd57de492b97.png[/img][/url]

Edited by rapaz
Link to comment
Share on other sites

из интерфейса Keenetica файловая структура видна так:

[url=https://radikal.ru][img]https://c.radikal.ru/c10/2201/91/a35352985183.png[/img][/url]

что не так с etc не знаю. войти в неё невозможно.

Сколько не пробовал устанавливать asterisk - всегда получается так.

Link to comment
Share on other sites

11 hours ago, rapaz said:

Сколько не пробовал устанавливать asterisk - всегда получается так.

1) В настройках OPKG вашего роутера KN-2710 отключите раздел с файловой системой OpenWRT (Management>OPKG>Drive: Not selected).

2) Размонтируйте USB-накопитель и отключите его от роутера, затем подключите его к PC, заново создайте и отформатируйте на нем раздел ext2 размером не менее 500 Мбайт для установки Asterisk 18.

3) Установите версию KeeneticOS 3.7.1 из канала Main на ваш роутер.

4) Повторите установку Asterisk 18 из архива ast18-keenetic-entware-aarch64-2021-10-12.tar.gz в раздел ext2 на накопителе в соответствии со статьей.

Если после этого Asterisk снова не запустится, пришлите self-test с вашего роутера, попробуем выяснить, что пошло не так. 

Link to comment
Share on other sites

  • 2 weeks later...
В 12.01.2022 в 11:59, sips сказал:

В настройках OPKG вашего роутера KN-2710 отключите раздел с файловой системой ....

У меня уже установлен entware и в нем несколько пакетов (mc, openconnect,...). Сейчас хочу добавить asterisk 18 сборки команды Keenetic. Как мне правильно действовать, чтобы сохранить уже установленные пакеты entaware?

Edited by ale_xb
Link to comment
Share on other sites

13 hours ago, ale_xb said:

хочу добавить asterisk 18 сборки команды Keenetic

Чтобы получить сборку *18 с функциональностью описанной в статье , нужно установить следующие компоненты:


asterisk

asterisk-pjsip

asterisk-chan-rtp

asterisk-res-rtp-asterisk

asterisk-sounds

asterisk-res-stasis-playback

asterisk-bridge-simple

asterisk-res-audiosocket

asterisk-format-wav

asterisk-codec-ulaw

asterisk-codec-alaw

asterisk-codec-g722

asterisk-codec-gsm

openssl-util

asterisk-app-system

asterisk-app-read

asterisk-app-record

asterisk-app-stack

asterisk-app-channelredirect

asterisk-func-channel

asterisk-app-originate

asterisk-app-mixmonitor

lame

asterisk-app-voicemail

asterisk-bridge-builtin-features

asterisk-app-waitforsilence

asterisk-bridge-native-rtp

asterisk-res-srtp

 

После установки нужно перенести в целевую сборку конфигурационные файлы /opt/etc/asterisk/*.conf и скрипты /opt/etc/asterisk/scripts/*.sh из сборки в статье .

Для записи разговоров в целевой сборке нужно создать папку /opt/record/ и поместить туда скрипт wavtomp3.sh для конвертации wav>mp3.

Голосовые семплы Core Asterisk Sounds и MOH находятся здесь:
/opt/share/asterisk/sounds/ru/*
/opt/share/asterisk/sounds/en/*
/opt/share/asterisk/sounds/moh/*

Скрипты для создания сертификатов и ключей шифрования (если нужен транспорт TLS): /opt/etc/asterisk/keys/scripts/*.sh

  • Thanks 2
  • Upvote 2
Link to comment
Share on other sites

спасибо, т.е. в моем случае все надо делать руками. Возможно, попробую пойти от обратного: сначала установлю asterisk от Keenetic на пустую флэшку, а затем добавлю/донастрою свои пакеты в entware. В общем, подумаю, что для меня будет проще.

Еще уточните, пожалуйста, если пойти по вашему рецепту, стартовый скрипт запуска asterisk установится или его надо тоже руками копировать и править?

Edited by ale_xb
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...