Бюджетное решение Asterisk <-> GSM [часть 2]

Обсуждение + Покупка/Продажа voip железа.

Модераторы: Admins, Модераторы

ravenich
Сообщения: 3
Зарегистрирован: 18 мар 2016, 14:04

Сообщение ravenich » 11 май 2016, 14:56

bg1, оказался прав. Извините, сервер удаленный, подключал хабы не я, уверяли что USB2.0, оказалось перепутали. В следующий раз перед тем как на форум писать обязательно все проверю.

bg1
Сообщения: 238
Зарегистрирован: 11 ноя 2010, 21:11

Сообщение bg1 » 12 май 2016, 13:20

lshw спасёт отцов русской демократии.
Свежак chan_dongle тут https://github.com/bg111/asterisk-chan-dongle/
Смена IMEI Huawei E1550 E173 E1752 K3765 http://www.e1550.mobi/ от $0,3042 за IMEI

gonzik
Сообщения: 3
Зарегистрирован: 28 июн 2016, 07:55

Как отключить dongl

Сообщение gonzik » 29 июн 2016, 03:46

Установил dongl все работает , но за ненадобностью надо как то его отключить подскажите неопытному
как выключить модуль. чтобы логи не засорял попытками найти usb устройство.

april22
Сообщения: 428
Зарегистрирован: 02 июл 2012, 17:19

Сообщение april22 » 29 июн 2016, 06:59

module unload chan_dongle
так пойдет ?

gonzik
Сообщения: 3
Зарегистрирован: 28 июн 2016, 07:55

Сообщение gonzik » 29 июн 2016, 09:28

Да спасибо!!

Added after 1 hours 18 minutes:
Подскажите чего сделать чтобы после перезагрузки модуль не включался ?

april22
Сообщения: 428
Зарегистрирован: 02 июл 2012, 17:19

Сообщение april22 » 29 июн 2016, 11:27

Modules.conf - посмотрите

gonzik
Сообщения: 3
Зарегистрирован: 28 июн 2016, 07:55

Сообщение gonzik » 30 июн 2016, 03:48

Modules.conf нет dongle
У меня установлен freepbx и он перезаписывает Modules.conf

bg1
Сообщения: 238
Зарегистрирован: 11 ноя 2010, 21:11

Сообщение bg1 » 07 июл 2016, 18:24

мож файл chan_dongle.so удалить, а?
Свежак chan_dongle тут https://github.com/bg111/asterisk-chan-dongle/
Смена IMEI Huawei E1550 E173 E1752 K3765 http://www.e1550.mobi/ от $0,3042 за IMEI

kniaz-tolya
Сообщения: 1
Зарегистрирован: 03 авг 2016, 07:29

Сообщение kniaz-tolya » 03 авг 2016, 07:53

Спасибо большое! Бился несколько часов с Asterisk 13 чтобы сделать звонки между Dongle патч помог!

Sysoev
Сообщения: 1
Зарегистрирован: 31 авг 2016, 08:14

Сообщение Sysoev » 31 авг 2016, 08:18

подскажите, есть ли рабочее решение для chan_dongle для отправки через: dongle sms dongle0 +7900000000 текст сообщения из ста пятидесяти символов
неограниченные по длине составные СМС из русских символов.
Нужно отправлять русские СМС длинной 150-200 символов. Как я понимаю нужно редактировать pdu.c. В программировании не силен, но отблагодарю (не бесплатно) если поделитесь рабочим решением. Тему регулярно просматриваю. Спасибо. aleksey собака sysoev точка net.

awsswa
Сообщения: 1729
Зарегистрирован: 28 апр 2012, 10:19
Откуда: Russia, Пермь

Сообщение awsswa » 31 авг 2016, 11:16

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

bg1
Сообщения: 238
Зарегистрирован: 11 ноя 2010, 21:11

Сообщение bg1 » 31 авг 2016, 12:42

PDU шлите, в чём проблема то?
Дохрена либ на всех языках программирования по сборке-разборке PDU

chan_dongle это канальный драйвер.

Вы же не предъявляете претензии драйверу вашего диска, что он файлы MKV не умеет проигрывать?
Свежак chan_dongle тут https://github.com/bg111/asterisk-chan-dongle/
Смена IMEI Huawei E1550 E173 E1752 K3765 http://www.e1550.mobi/ от $0,3042 за IMEI

Ivan
Сообщения: 74
Зарегистрирован: 06 авг 2008, 17:00

Сообщение Ivan » 15 сен 2016, 10:01

День добрый.
А есть ли у драйвера некая канальная переменная, которая возвращает результат отправки СМС?

bg1
Сообщения: 238
Зарегистрирован: 11 ноя 2010, 21:11

Сообщение bg1 » 17 сен 2016, 11:42

Application DongleSendSMS делает только постановку команды на отправку SMS в очередь.
При этом синхронно, до возврата из функции проверяется только наличие аргументов,
проверка номер получателя что содержит только цифры и опционально начинается с +,
и то, что команды успешно добавлены в очередь.

Если какая то проверка прошла не удачно функция ругается в лог уровнем ERROR, а в ядро астериска возвращает не 0.
Что там астериск с этим значением делает я не в курсе, предполагаю что хорошего :)
Вообще же если Application возвращает -1 то астериск прекращает выполнение диалплана, а канал убивает.


Но это не результат даже отправки СМС, не говоря уже о его получении.

Контролировать успешность _отправки_ можно либо в логе/консоли через сообщение, либо в manager - отправляется
результат исполнения модемом команд по отправке СМС.

Притом идентификатор СМС в очереди условно-уникальный.

Это значит если у вас в очереди одновременно 3 СМС - все будут иметь разные идентификаторы.
А вот если вы сначала послали одно СМС, получили результат, а потом послали другое - идентификаторы могут иметь одинаковое числовое значение.
Свежак chan_dongle тут https://github.com/bg111/asterisk-chan-dongle/
Смена IMEI Huawei E1550 E173 E1752 K3765 http://www.e1550.mobi/ от $0,3042 за IMEI

NUB_aster
Сообщения: 17
Зарегистрирован: 07 сен 2015, 22:42

Сообщение NUB_aster » 18 сен 2016, 11:15

Как написано в моём Нике - я НУБ. (если можно, давайте ответ с конкретными командами шела\консоли)
Использую сборку для личных целей (пересылка смс на email + складываю в txt для архива) - остальное(звонки) ХОББИ.

Спасибо за труд, вот если бы понять как его "применить" (с указанием, откуда брать исходники).


Для будущих искателей - повышу цитируемость (описанием своей проблемы) - спрятал под спойлер, а то гугл не находит...

[spoiler]Asterisk 13.9.1 (на FreeBSD 10.3 которая установлена как виртуалка внутри VMWARE)
Установлен chan_dongle: Huawei 3G Dongle Channel Driver, Version 1.1, Revision 34 (но видать не "оригинальный", так как выше (уважаемый за труд) bg1 дал критическую оценку "этой сборке chan_dongle под Asterisk 13")
Настроил план набора (диалплан), который находится в extension.conf таким образом, чтобы приходящий на один модем (GSM2) звонок, без поднятия трубки сразу совершал исходящий звонок через другой модем (GSM1). По сути - такая переадресация звонка идет. Трубку с входящего звонка модема не хочу поднимать сразу - хочется чтобы соединение происходило в момент поднятия трубки конечным абонентом (мною).

Выглядит это в extension.conf как-то так:

Код: Выделить всё

&#91;dongle_inGSM2&#93;
exten => _38.,n,Verbose&#40;in _38 case == $&#123;EXTEN&#125; === from $&#123;CALLERID&#40;NUM&#41;&#125; &#41;; -- для идентификации в консоли, что звонок идет по правильной ветке диалплана
exten => _38.,n,Dial&#40;DONGLE/GSM1/+380012345678&#41;; 
exten => h,n,Hangup&#40;&#41;;
Такая конструкция работает отлично если совершаю звонок с SIP, (получается SIP->GSM), но не работает для GSM->GSM (GSM2GSM).
возникает следующая ошибка:

Код: Выделить всё

in _38 case == 380933333333 === from +38091ООООООО
    -- Executing &#91;380933333333@dongle_inGSM2&#58;4&#93; Dial&#40;"Dongle/GSM2-0100000000", "DONGLE/GSM1/+380012345678"&#41; in new stack
    -- Called DONGLE/GSM1/+380012345678
&#91;02&#58;27&#58;30&#93; ERROR&#91;100622&#93;&#91;C-00000002&#93;&#58; translate.c&#58;1314 ast_translator_best_choice&#58; Cannot determine best translation path since one capability supports no formats
&#91;02&#58;27&#58;30&#93; WARNING&#91;100622&#93;&#91;C-00000002&#93;&#58; channel.c&#58;5478 set_format&#58; Unable to find a codec translation path&#58; &#40;none|slin&#41; -> &#40;none&#41;
&#91;02&#58;27&#58;30&#93; WARNING&#91;100622&#93;&#91;C-00000002&#93;&#58; channel.c&#58;6401 ast_channel_make_compatible_helper&#58; Unable to set read format on channel Dongle/GSM1-0100000000 to none
Самое удивительное - в первый раз вызов таки проходит! Правда очень специфично.
Опишу по этапам:
1) Сегмент Phone0->GSM2 - слышен сигнал вызова абонента
2) Астериск пишет в консоли, что начинает вызывать Phone2 с GSM1 (и сразу ошибки - описаны выше)
3) Произвожу отбой на Phone0, а GSM1 всё равно продолжает вызывать Phone2.
4) Произвожу отбой на Phone2 - Asterisk "вешается" причем наглухо. Из консоли (CLI) не реагирует на команду "core restart now", а "dongle show devices" - показывает пустую шапку (вообще без модемов).
После такой неудачной попытки - астериск можно перезапустить только снаружи (service asterisk onestop => service asterisk onestart).
Но успешных вызовов больше не получается: только ошибка описанная выше (для вызывающего Phone0 - сигнал занято)

Делал поисковые запросы "Unable to find a codec translation path: (none|slin) -> (none)" - но там ничего, полезного не выводится, так как по большей части описываются проблемы с SIP (гугл сразу предлагает "asterisk g729 codec") - короче часа 3 времени потрачено на чтение попыток решения неревалентной проблемы.

Правильный запрос "asterisk gsm chan_dongle пробрасывать" привел меня в http://www.asteriskforum.ru/viewtopic.php?p=51502. вот с 80 страницы сюда и добрался.

[/spoiler]

Очень надеюсь на ответ latv или VladV у которых получилось решить данную проблему. (а может ещё кто решил, но не отписывался)

bg1
Сообщения: 238
Зарегистрирован: 11 ноя 2010, 21:11

Сообщение bg1 » 20 сен 2016, 21:40

я не выпускал chan_dongle для астериска выше чем 1.8, чем вы там пользуетесь я без понятия
Свежак chan_dongle тут https://github.com/bg111/asterisk-chan-dongle/
Смена IMEI Huawei E1550 E173 E1752 K3765 http://www.e1550.mobi/ от $0,3042 за IMEI

NUB_aster
Сообщения: 17
Зарегистрирован: 07 сен 2015, 22:42

Сообщение NUB_aster » 21 сен 2016, 20:39

bg1, я знаю (читал выше) об этом и написал во втором абзаце под спойлером. :)
Я Вам другой вопрос приготовил: интернет полон вопросов-ответов как отправить "длинную СМС", но мало кто описывает принятие "длинной СМС" (составной) донглом.
Мы с Вами понимаем, что "Длинные СМС" это всего лишь несколько обособленных СМС, которые идут друг за дружкой.
Вот пример полученной "составной СМС" Бережно складированной в ТХТ (порядок сохранен):

Код: Выделить всё

11&#58;44&#58;49 - GSM2 - AC4#9#A3C23#9B&#58; дарунок дзвінком на номер *450# &#40;безкоштовно&#41;. Деталі&#58; www.lifecell
11&#58;44&#58;49 - GSM2 - AC4#9#A3C23#9B&#58; lifecell дарує Вам місяць безкоштовного Інтернету! Активуйте Ваш по
11&#58;44&#58;49 - GSM2 - AC4#9#A3C23#9B&#58; .com.ua/free1gb та за номером 505
Из примера ясно, что сначала принимается "серединка", потом "начало", а в конце "хвостик".
Так же видно, что никаких маркеров в тексте самой СМС нет, значит есть некое служебное поле, которое ни в переменную ${CALLERID(num)} ни в переменную ${BASE64_DECODE(${SMS_BASE64})} не помещается. При этом любая программа управляющая модемом (что с дровами идёт) спокойно собирает СМС любой длинны.
КАК?
Ну и к паре, второй вопрос: AC4#9#A3C23#9B=${CALLERID(num)} - как его превратить в то, что видим на экране телефона?

latv
Сообщения: 333
Зарегистрирован: 01 ноя 2008, 10:53
Контактная информация:

Сообщение latv » 21 сен 2016, 21:03

Ну как применяют патчи?
заходишь в нужную папку с софтом, который собираешься патчить, кладешь туда патч, и говоришь:
patch < my.patch
в зависимости от того, как сделан патч, может потребоваться ключик -p
patch -p 1 < my.patch
читайте man patch
http://ss7.powerpbx.ru/ - рассказываю новичкам про SS7

bg1
Сообщения: 238
Зарегистрирован: 11 ноя 2010, 21:11

Сообщение bg1 » 23 сен 2016, 15:17

Как читайте в мануалах и спеках. Вы взрослый человек, гуглите, расжовывать смысла не вижу.
Свежак chan_dongle тут https://github.com/bg111/asterisk-chan-dongle/
Смена IMEI Huawei E1550 E173 E1752 K3765 http://www.e1550.mobi/ от $0,3042 за IMEI

NUB_aster
Сообщения: 17
Зарегистрирован: 07 сен 2015, 22:42

Сообщение NUB_aster » 23 сен 2016, 19:28

[url=http://asteriskforum.ru/viewtopic.php?p=83561#83561][img]http://asteriskforum.ru/images/quotebackarrow.gif[/img][/url] bg1 @ Пт Сен 23, 2016 15:17 писал(а):Как читайте в мануалах и спеках. Вы взрослый человек, гуглите, расжовывать смысла не вижу.
готов согласиться, в обмен на ссылку на конкретный "ман" и это загадочное слово "спеки"...
Заранее спасибо.
:D :P
(я ведь правильно понимаю речь идёт о Вашем канальном драйвере на модем chan_dongle для версий 1.8? http://wiki.e1550.mobi/ вроде как прикрыли(спёрли)....)
"Правильно гуглить" легко, когда знаешь, что искать. Когда в данном направлении опыт не накоплен - это как ложкой в море рыбу ловить: рано или поздно словишь, но обычно очень не скоро....

PS Спасибо latv, пойду почитаю про patch.

bg1
Сообщения: 238
Зарегистрирован: 11 ноя 2010, 21:11

Сообщение bg1 » 24 сен 2016, 17:20

никто ничего не спирал и не прикрывал.

человек на университетском сервере держал вики и перестал держать.
я wiki не рулил.
кому то присылали копию контента вики.

с вас 10 баксов
https://en.wikipedia.org/wiki/Concatenated_SMS

и ещё 20
ETSI Specification: GSM 03.40 Version 5.3.0: July 1996
http://www.etsi.org/deliver/etsi_gts/03 ... 50300p.pdf
Свежак chan_dongle тут https://github.com/bg111/asterisk-chan-dongle/
Смена IMEI Huawei E1550 E173 E1752 K3765 http://www.e1550.mobi/ от $0,3042 за IMEI

NUB_aster
Сообщения: 17
Зарегистрирован: 07 сен 2015, 22:42

Сообщение NUB_aster » 25 сен 2016, 12:08

bg1,
Спасибо за расширение моего кругозора, похоже я вопрос задал не точно: КАК с помощью chan_dongle получить эти заветные UDH (User Data Header \\ пользовательский заголовок для данных конкретной смс).
Чтобы получить из UDH: Field 4 (CSMS reference number - номер позволяющий идентифицировать данную составную СМС) и Field 6 (part's number in the sequence - номер смс внутри состава)

Причем, как понимаю, нужно это делать на лету, чтобы потом сшивать пришедшие в разных СМС переменные${BASE64_DECODE(${SMS_BASE64})} в одну, простой конкатенацией (пока знания не позволяют мне предположить, как это сделать внутри диалплана, так как он однопоточен - зато понимаю, как это снаружи сделать, допустим через вызов cron или в СУБД...)


(для последующих искателей подробностей всё здесь: https://en.wikipedia.org/wiki/Concatenated_SMS)

Пользу от второй ссылки (в контексте исходного вопроса) к сожалению не осознал. :(

NUB_aster
Сообщения: 17
Зарегистрирован: 07 сен 2015, 22:42

Сообщение NUB_aster » 25 сен 2016, 19:55

.
Для тех, кто соберется вручную "читать с модема СМС" через chan_dongle рекомендую почитать про соответствующие АТ-команды
Читать все СМС в модеме для режима простого текстового сообщения (Text Mode SMS):

Код: Выделить всё

CLI>  dongle cmd GSM1 AT+CMGL="ALL"
Или в PDU формате по одному с помощью CMGR:

Код: Выделить всё

CLI>  dongle cmd GSM1 AT+CMGR=0
в этом случае 0(ноль) определяет порядковый номер смс в памяти. И модем выдаёт содержимое смс в PDU формате (при этом у меня chan_dongle думает, что пришла новая смс и превращая её в читаемый вид складывает в хранилище заново приводя к нормальному виду)

bg1
Сообщения: 238
Зарегистрирован: 11 ноя 2010, 21:11

Сообщение bg1 » 25 сен 2016, 20:37

КАК хотите.

Вам молоток дали, за вас им ещё и стучать надо?
Ну тогда может и зарплату за вас получить ;)
Свежак chan_dongle тут https://github.com/bg111/asterisk-chan-dongle/
Смена IMEI Huawei E1550 E173 E1752 K3765 http://www.e1550.mobi/ от $0,3042 за IMEI

NUB_aster
Сообщения: 17
Зарегистрирован: 07 сен 2015, 22:42

Сообщение NUB_aster » 25 сен 2016, 21:30

Начинаю сам находить ответ на свой вопрос.
Искал в новом месте размещения wiki по chan_dongle (сколько разных редакций этого же материала перечитал, надеюсь здесь самый актуальный)
Там есть переменная CMGR (предполагаю в диалплане её вставлять нужно как ${CMGR} )
после чего разворачивать, (как ещё не придумал), так как bg1 - отказал "помощнику" во внедрении данного (готового) инструмента (хозяин-барин).

Added after 7 minutes:
[url=http://asteriskforum.ru/viewtopic.php?p=83571#83571][img]http://asteriskforum.ru/images/quotebackarrow.gif[/img][/url] bg1 @ Вс Сен 25, 2016 20:37 писал(а):КАК хотите.

Вам молоток дали, за вас им ещё и стучать надо?
Ну тогда может и зарплату за вас получить ;)
Напомню: я данный вопрос рассматриваю как хобби, и только для себя. ЗП получаю совсем за другой род занятий. Если вдруг (решу=получится) в будущем заработать на этих знаниях, с первой же зарплаты буду писать Вам, bg1, письмо с вопросом "куда перевести Вам деньги?"

А пока - просто играюсь с замечательным конструктором. (и помогаю всем кто будет после меня этим интересоваться развёрнутыми ответами на свои же вопросы)

Ответить