VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Передаем номер звонящего по СМС

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

gr33tx
Сообщения: 41
Зарегистрирован: 18 фев 2013, 16:34

Передаем номер звонящего по СМС

Сообщение gr33tx »

Требовалось сделать так, чтобы при переадресации звонков с одного мобильного/городского номера на другой мобильный мы видели номер звонящего, а не наш городской номер. Но дело в том, что операторы связи не дадут нам так просто подставлять свои номера при звонке через их сети (И правда, это был бы настоящий бардак). Но решить проблему можно передачей его через СМС сообщение через GSM-модем.

Что имеем:
Сервер с FreePBX Distro FreePBX 2.11.0.0beta2.5 (Астериск 1.8), модем Huawei E171, несколько подключенных городских линий, диалплан с переадресацией.

Для начала установим модем, переведем его в нужный режим, настроим программу для отправки СМС — Gnokii. Здесь и далее описываю действия для CentOS.

1. Обязательно ставим зависимости:

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

yum install usbutils libusb-devel tcl
2. Вставляем модем и смотрим, как он определился:

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

lsusb
Bus 002 Device 007: ID 12d1:14fe Huawei Technologies Co., Ltd.
Так в начале выглядит строка.

3. В моем дистрибутиве не было пакета для сборки программ из исходников. Ставим Development Tools.

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

yum groupinstall "Development Tools"
4. Качаем программу для переключения режимов модема. Пакеты usb-modeswitch usb-modeswitch-data берем отсюда http://www.draisberghof.de/usb_modeswitch/.

5. Распаковываем оба архива и устанавливаем по-очереди:

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

tar xvjf ...
make install
6. Передергиваем модем и проверяем:

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

lsusb
Bus 002 Device 008: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard
Значит все ОК и модем будет определяться каждый раз как надо. Если строка та же, что и вначале, то идем сюда http://awsswa.livejournal.com/12015.html.

Команда dmesg покажет нам:

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

option 2-1.4:1.0: GSM modem (1-port) converter detected
usb 2-1.4: GSM modem (1-port) converter now attached to ttyUSB0
option 2-1.4:1.1: GSM modem (1-port) converter detected
usb 2-1.4: GSM modem (1-port) converter now attached to ttyUSB1
option 2-1.4:1.2: GSM modem (1-port) converter detected
usb 2-1.4: GSM modem (1-port) converter now attached to ttyUSB2
7. Устанавливаем репозитарий для EPEL CentOS вот так.

8. Устанавливаем gnokii

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

yum --enablerepo=epel install gnokii gnokii-smsd
9. Правим конфиг /etc/gnokiirc

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

[global]
port = /dev/ttyUSB0
model = AT
initlength = default
connection = serial
use_locking = no
serial_baudrate = 115200
10. Проверяем отправку СМС:

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

echo 'Bingo!' | gnokii --sendsms +79060000000
Теперь нужно разрешить пользователю asterisk запускать gnokii из диалплана. Так как установлена gnokii была под учеткой root, то пользователь asterisk не сможет ее запустить. Правим файл /etc/sudoers с помощью команды visudo (настоятельно рекомендуется использовать только visudo для правки файла sudoers):

добавим строку для пользователя asterisk:

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

asterisk ALL=NOPASSWD:/usr/bin/gnokii 
Сохраняем файл и выходим.

Далее нам нужно внедрить в наш диалплан команду System() для отправки CID в СМС. FreePBX, конечно, не даст нам править extensions.conf и extensions_additional.conf, так как он сам их все время перезаписывает. Но можно вставлять свои правки в план с помощью файла extensions_override_freepbx.conf, что мы и сделаем. Можно просто найти в файле extensions_additional.conf нужный контекст, скопировать его фрагмент в extensions_override_freepbx.conf и внести свои изменения. У меня есть внутренний номер 203 который переадресуется на номер мобильника по SIP/trunk/номер_телефона. Эту часть диалплана мы и будем править:

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

[ext-local]
exten => 203,1,Set(__RINGTIMER=${IF($[${DB(AMPUSER/203/ringtimer)} > 0]?${DB(AMPUSER/203/ringtimer)}:${RINGTIMER_DEFAULT})})
exten => 203,n,System(echo '8${CALLERID(num)}' | sudo gnokii --sendsms +79061234567) ; отправка номера
exten => 203,n,Macro(exten-vm,novm,203,0,0,0)
exten => 203,n(dest),Set(__PICKUPMARK=)
exten => 203,n,Goto(${IVR_CONTEXT},return,1)
exten => 203,hint,SIP/10000/778899
exten => Narva778899,1,Goto(from-internal,203,1)
Теперь при звонке или переадресации на 203 будет отправляться СМС с номером звонившего, взятая из переменной CALLERID(num) прямо на мобильный телефон.
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Передаем номер звонящего по СМС

Сообщение ded »

можно вставлять свои правки в план с помощью файла extensions_custom.conf в секции
[from-internal-custom]
gr33tx
Сообщения: 41
Зарегистрирован: 18 фев 2013, 16:34

Re: Передаем номер звонящего по СМС

Сообщение gr33tx »

да, вам можно вставлять свои три копейки везде:)
gr33tx
Сообщения: 41
Зарегистрирован: 18 фев 2013, 16:34

Re: Передаем номер звонящего по СМС

Сообщение gr33tx »

Мы вам что-то должны? Ребята, давайте скинемся все вместе деду по 10 рублей!
Аватара пользователя
Sfinx
Сообщения: 672
Зарегистрирован: 21 июн 2011, 23:40
Откуда: Odessa
Контактная информация:

Re: Передаем номер звонящего по СМС

Сообщение Sfinx »

sms придет когда человек уже снял трубку, а может и через день. в чем практический смысл этого тупняка ?
Rus

-----------
SfinxSoft
http://sfinxsoft.com
gr33tx
Сообщения: 41
Зарегистрирован: 18 фев 2013, 16:34

Re: Передаем номер звонящего по СМС

Сообщение gr33tx »

Читай внимательнее слева на право и сверху вниз с самого начала. И ты все поймешь, друг. Что же у вас за оператор, который через день СМС присылает?
Аватара пользователя
Sfinx
Сообщения: 672
Зарегистрирован: 21 июн 2011, 23:40
Откуда: Odessa
Контактная информация:

Re: Передаем номер звонящего по СМС

Сообщение Sfinx »

Волк тамбовский тебе друг. Или тут чукча не чичатель, а чукча тупо писатель ? идея с СМС - сивокобыльная бредятина, думаю твоего недалекого начальника. Если же это твоя идея - тогда все ясно ... ;)
Rus

-----------
SfinxSoft
http://sfinxsoft.com
gr33tx
Сообщения: 41
Зарегистрирован: 18 фев 2013, 16:34

Re: Передаем номер звонящего по СМС

Сообщение gr33tx »

Что же тебе непонятно? Тебе способ не нравится? Предложи свой. Или неясен смысл оповещать человека с какого номера ему звонили только что?
gr33tx
Сообщения: 41
Зарегистрирован: 18 фев 2013, 16:34

Re: Передаем номер звонящего по СМС

Сообщение gr33tx »

Можешь не стесняться в выражениях. Если тебе так проще выражать мысли:)
Аватара пользователя
Sfinx
Сообщения: 672
Зарегистрирован: 21 июн 2011, 23:40
Откуда: Odessa
Контактная информация:

Re: Передаем номер звонящего по СМС

Сообщение Sfinx »

А ... видать ты и есть этот начальник ... смс-печалька ;)
Rus

-----------
SfinxSoft
http://sfinxsoft.com
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH