Asterisk + GSM шлюз (подключение модема Huawei E1550)

Софт под Linux, разные программы, но только связанные с Linux

Модератор: /dev/random

Ответить
gesigor
Сообщения: 403
ОС: Fedora 30
Контактная информация:

Asterisk + GSM шлюз

Сообщение gesigor »

Здравствуйте!
Задумал сделать такое: есть сервер в городе X, сам нахожусь в городе Y. Хотелось совершать звонки по городу X, по ценам этого города. Купил модем Huawei E1550, вроде универсальный (~1400 в евросети), втавил в него симку оператора СМАРТС. На сервер поставил asterisk по статье http://asterisk-pbx.ru/wiki/doku.php/new2. На клиенте поставил twinkle.
Файл sip.conf

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

...
[igor]
type=friend
host=dynamic
username=igor
secret=parol
nat=yes
dtmfmode=rfc2833
disallow=all
allow=ulaw
allow=alaw
allow=g729
allow=g723.1
context=sip-dialout
callerid=100
insecure=yes

extensions.conf

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

....
[datacard-incoming]
exten => sms,1,Verbose(Incoming SMS from ${CALLERID(num)} ${SMS})
exten => sms,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DATACARD} - ${CALLERID(num)}: ${SMS}' >> /var/log/asterisk/sms.txt)
exten => sms,n,Hangup()
exten => ussd,1,Verbose(Incoming USSD: ${USSD})
exten => ussd,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DATACARD}: ${USSD}' >> /var/log/asterisk/ussd.txt)
exten => ussd,n,Hangup()
exten => s,1,Dial(SIP/100,,)
exten => s,n,Hangup()

[sip-dialout]
exten => _X.,1,Dial(Datacard/g1/${EXTEN})

datacard.conf

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

.....
[datacard0]
audio=/dev/ttyUSB1              ; tty for audio connection
data=/dev/ttyUSB2               ; tty for AT commands
group=1                         ; calling group
context=datacard-incoming       ; context for incoming calls
rxgain=3                        ; increase the incoming volume
txgain=3                        ; increase the outgoint volume

Вывод datacard show devices:

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

ID           Group State      RSSI Mode Submode Provider Name  Model      Firmware          IMEI             IMSI             Number
datacard0    1     Free       24   3    3       CMAPTC-GSM     E1550      11.608.12.10.209  353443041724761  250070220027782  Unknown

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

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

  == Using SIP RTP CoS mark 5
    -- Executing [89093780686@sip-dialout:1] Dial("SIP/igor-00000003", "Datacard/g1/89093780576") in new stack
    -- Called Datacard/g1/89093780576
    -- Datacard/datacard0-cd99 is making progress passing it to SIP/igor-00000003
    -- Datacard datacard0 has disconnected
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Auto fallthrough, channel 'SIP/igor-00000003' status is 'CHANUNAVAIL'
    -- Datacard datacard0 trying to connect on /dev/ttyUSB2...
    -- Datacard datacard0 has connected, initializing...
[Aug 18 15:58:01] ERROR[3907]: __at_response.c:708 at_response_error: [datacard0] Error checking subscriber phone number
    -- Datacard datacard0 needs to be reinitialized. The SIM card is not ready yet
    -- Error initializing Datacard datacard0
    -- Datacard datacard0 has disconnected
    -- Datacard datacard0 trying to connect on /dev/ttyUSB2...
    -- Datacard datacard0 has connected, initializing...
    -- Datacard datacard0 initialized and ready

И twinkle спрашивает имя пользователя и пароль..
Звонки на модем извне также не проходят.
Вопрос: я намудлил с конфигами, или виновата прошивка? Потому как 11.608.12.10.209, правда от Мегафона, считается плохой. И какая разница между FIRMWARE и Dashboard? Вывод datacard show devices показывает именно firmware?
OC Centos, FC21
https://gesigor.ru
Спасибо сказали:
Аватара пользователя
nickm
Сообщения: 203
ОС: RFRemix

Re: Asterisk + GSM шлюз

Сообщение nickm »

Вроде huawei для голоса надо разлочивать
Спасибо сказали:
playnet
Сообщения: 373
Статус: изучающий
ОС: CentOS, FreeBSD

Re: Asterisk + GSM шлюз

Сообщение playnet »

наверняка залочено. Анлокеры есть под виндой. Я себе разлочил, причём бесплатно, где-то за час гугления, заодно отвязал от оператора (был мегафон-модем). У меня другая проблема - в лине видит только как сд :) Надо переключить его в режим модема. Было лень искать, как.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: Asterisk + GSM шлюз

Сообщение sash-kan »

playnet писал(а):
18.08.2011 18:08
Надо переключить его в режим модема
google://usb-modeswitch
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
gesigor
Сообщения: 403
ОС: Fedora 30
Контактная информация:

Re: Asterisk + GSM шлюз

Сообщение gesigor »

С переключениями в режим модема все понятно было сразу. Через терминал войти и дать команду. Звуковые функции включены. Он также разлочен. Тоесть проблема не в этом. Я не специалист в модемах и asterisk, но судя по ответам в google, вроде виновата прошивка. Скачал E155XUpdate_11.608.14.15.311.B418.zip. Запускаю, а она потом пароль спрашивает. Наверно опять что-то не так делаю. Инструкции как прошивать правильно, не нашел. Было бы идеально, если бы можно было прошивать в linux...
OC Centos, FC21
https://gesigor.ru
Спасибо сказали:
Аватара пользователя
nickm
Сообщения: 203
ОС: RFRemix

Re: Asterisk + GSM шлюз

Сообщение nickm »

При анлоке huawei дается два кода, один на анлок от оператора (unlock-code), второй на перепрошивку (flash-code), емнип.
Спасибо сказали:
gesigor
Сообщения: 403
ОС: Fedora 30
Контактная информация:

Re: Asterisk + GSM шлюз

Сообщение gesigor »

Вообщем решил проблему, после перепрошивки модема все заработало. Подробности можно прочесть здесь. Всем спасибо за помощь!
OC Centos, FC21
https://gesigor.ru
Спасибо сказали:
gesigor
Сообщения: 403
ОС: Fedora 30
Контактная информация:

Re: Asterisk + GSM шлюз

Сообщение gesigor »

Единственно что так сказать омрачило: оказалось что на модем не получается звонить. Хотя изначально такое я не рассматривал, но осадок остался. И линуксовый вариант Ekiga не заработал. Причина не ясна. Вроде все сделал также как и в Windows. Надо дальше разбираться..
OC Centos, FC21
https://gesigor.ru
Спасибо сказали:
Аватара пользователя
nickm
Сообщения: 203
ОС: RFRemix

Re: Asterisk + GSM шлюз

Сообщение nickm »

gesigor писал(а):
20.08.2011 19:33
Единственно что так сказать омрачило: оказалось что на модем не получается звонить.

А исходящие идут?
При входящих в логах asterisk что-нибудь есть интересное?
Спасибо сказали:
gesigor
Сообщения: 403
ОС: Fedora 30
Контактная информация:

Re: Asterisk + GSM шлюз

Сообщение gesigor »

Исходящие нормально идут. А при входящих вот такие логи и в телефоне барышня на английском балае.

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

  == Starting Datacard/datacard0-59ef at datacard-incoming,s,1 failed so falling back to exten 's'
  == Starting Datacard/datacard0-59ef at datacard-incoming,s,1 still failed so falling back to context 'default'
    -- Executing [s@default:1] Wait("Datacard/datacard0-59ef", "1") in new stack
    -- Executing [s@default:2] Answer("Datacard/datacard0-59ef", "") in new stack
    -- Executing [s@default:3] Set("Datacard/datacard0-59ef", "TIMEOUT(digit)=5") in new stack
    -- Digit timeout set to 5.000
    -- Executing [s@default:4] Set("Datacard/datacard0-59ef", "TIMEOUT(response)=10") in new stack
    -- Response timeout set to 10.000
    -- Executing [s@default:5] BackGround("Datacard/datacard0-59ef", "demo-congrats") in new stack
    -- <Datacard/datacard0-59ef> Playing 'demo-congrats.gsm' (language 'ru')
  == Spawn extension (default, s, 5) exited non-zero on 'Datacard/datacard0-59ef'

Единственно я изменил вот это:

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

;exten => s,1,Dial(SIP/igor@ges,25,Ttr)
;exten => s,n,Hangup()

exten => _X,1,Dial(SIP/igor@ges,25,Ttr)
exten => _X,n,Hangup()

После этого стало балакать...
OC Centos, FC21
https://gesigor.ru
Спасибо сказали:
Аватара пользователя
nickm
Сообщения: 203
ОС: RFRemix

Re: Asterisk + GSM шлюз

Сообщение nickm »

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

  -- <Datacard/datacard0-59ef> Playing 'demo-congrats.gsm' (language 'ru')

А не это "балакает" (если 'ru' звуков нет, то может и по-будржуйскт ответить, т.е. звучит похожее, что и в demo-congrats.gsm)?

PS а выхлоп asterisk -rx 'dialplan show default' можно?

PPS до астера доходит, уже хорошо :)
Спасибо сказали:
gesigor
Сообщения: 403
ОС: Fedora 30
Контактная информация:

Re: Asterisk + GSM шлюз

Сообщение gesigor »

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

*CLI> dialplan show default
[ Context 'default' created by 'pbx_config' ]
  Include =>        'demo'                                        [pbx_config]

-= 0 extensions (0 priorities) in 1 context. =-

Вот..
OC Centos, FC21
https://gesigor.ru
Спасибо сказали:
Аватара пользователя
nickm
Сообщения: 203
ОС: RFRemix

Re: Asterisk + GSM шлюз

Сообщение nickm »

Звонок-то куда-то не туда заворачивается, до этого не доходит:

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

exten => _X,1,Dial(SIP/igor@ges,25,Ttr)
exten => _X,n,Hangup()

Оно вообще в каком диалплане?
Спасибо сказали:
gesigor
Сообщения: 403
ОС: Fedora 30
Контактная информация:

Re: Asterisk + GSM шлюз

Сообщение gesigor »

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

[datacard-incoming]
exten => sms,1,Verbose(Incoming SMS from ${CALLERID(num)} ${SMS})
exten => sms,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DATACARD} - ${CALLERID(num)}: ${SMS}' >> /var/log/asterisk/sms.txt)
exten => sms,n,Hangup()
exten => ussd,1,Verbose(Incoming USSD: ${USSD})
exten => ussd,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DATACARD}: ${USSD}' >> /var/log/asterisk/ussd.txt)
exten => ussd,n,Hangup()
;exten => s,1,Dial(SIP/100,,)
;exten => s,n,Hangup()
exten => _X,1,Dial(SIP/igor@domen,25,Ttr)
exten => _X,n,Hangup()

[sip-dialout]
exten => _X.,1,Dial(Datacard/g1/${EXTEN})

Вот это я добавил в конец файла extensions.conf
OC Centos, FC21
https://gesigor.ru
Спасибо сказали:
gesigor
Сообщения: 403
ОС: Fedora 30
Контактная информация:

Re: Asterisk + GSM шлюз

Сообщение gesigor »

Вчера решил для облегчения поставить asterisk-gui. Установилось, запускается начальная страница с приглашением ввести логин и пароль. Вводишь, страница перегружается и опять предлагает ввести логин/пароль. Причем extensions.conf при этом сам переписался и входящие звонки стали возможны. Не одно, так другое.... Установка gui вроде элементарная, но зайти не удается..
OC Centos, FC21
https://gesigor.ru
Спасибо сказали:
Аватара пользователя
nickm
Сообщения: 203
ОС: RFRemix

Re: Asterisk + GSM шлюз

Сообщение nickm »

Я бы отложил прикручивание gui на потом или вообще не прикручивал.

Советую посмотреть, asterisk идет с конфигами с кучей примеров и такое ощущение, что вызов попадает на один из примеров. Закоменть все лишнее или убери.
Спасибо сказали:
gesigor
Сообщения: 403
ОС: Fedora 30
Контактная информация:

Re: Asterisk + GSM шлюз

Сообщение gesigor »

Вообщем убрал все лишнее, как мне показалось. Вроде работает все. Так теперь выглядит extensions.conf

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

[general]
static = yes
writeprotect = no
clearglobalvars = no
[globals]
CONSOLE = Console/dsp  ; Console interface for demo
IAXINFO = guest  ; IAXtel username/password
TRUNK = DAHDI/G2  ; Trunk interface
TRUNKMSD = 1  ; MSD digits to strip (usually 1 or 0)
FEATURES =
DIALOPTIONS =
RINGTIME = 20
FOLLOWMEOPTIONS =

[datacard-incoming]
exten => sms,1,Verbose(Incoming SMS from ${CALLERID(num)} ${SMS})
exten => sms,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DATACARD} - ${CALLERID(num)}: ${SMS}' >> /var/log/asterisk/sms.txt)
exten => sms,n,Hangup()
exten => ussd,1,Verbose(Incoming USSD: ${USSD})
exten => ussd,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DATACARD}: ${USSD}' >> /var/log/asterisk/ussd.txt)
exten => ussd,n,Hangup()
exten => s,1,Dial(SIP/igor,25,Ttr)
exten => s,n,Hangup()

[sip-dialout]
exten => _X.,1,Dial(Datacard/g1/${EXTEN})

Хотя чувствую криво настроено. В файле sip.conf в секции general context=default. А правила у меня такого нет, и что в него писать пока не знаю.
OC Centos, FC21
https://gesigor.ru
Спасибо сказали:
Аватара пользователя
nickm
Сообщения: 203
ОС: RFRemix

Re: Asterisk + GSM шлюз

Сообщение nickm »

В файле sip.conf в секции general context=default. А правила у меня такого нет, и что в него писать пока не знаю.

Закоменть, не нужно оно - это просто в sip.conf для каждого пира будет context=default, если он не определен, у тебя же у пира в sip.conf контекст прописан, в datacard.conf - тоже.
Спасибо сказали:
gesigor
Сообщения: 403
ОС: Fedora 30
Контактная информация:

Re: Asterisk + GSM шлюз

Сообщение gesigor »

Вообщем можно считать, что все работает как надо. Я могу звонить, мне могут также, если клиент запущен. Всем спасибо за помощь!
OC Centos, FC21
https://gesigor.ru
Спасибо сказали:
Ответить