Как я описывал раньше, есть у меня SIP-GSM шлюз на базе Asterisk, который подключен к офисному серверу с Oktell. На модемы приходят разные SMS и пока они ложатся в файл на Linux сервере. В них бывает информация о балансе на карточках :). Идея — перенести все эти SMS в Oktell.
Для начала решил все SMS записывать в базу MySQL на сервере, а потом служебным сценарием забирать в Oktell. Создаю в MySQL пользователя, базу, и таблицу:
CREATE TABLE `asterisk`.`gsm` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `date` DATETIME NOT NULL , `modem` VARCHAR( 10 ) NOT NULL , `callerid` VARCHAR( 16 ) NOT NULL , `msg` VARCHAR( 160 ) NOT NULL , `oktell` ENUM( '0', '1' ) NOT NULL DEFAULT '0' ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci COMMENT = 'Входящие SMS'
В файле extensions.conf в контекст для datacard прописываем:
[datacard-incoming] exten => sms,1,Verbose(Incoming SMS from ${CALLERID(num)} ${SMS}) exten => sms,n,System(echo "insert into gsm values(NULL, NOW(), '${DATACARD}', '${CALLERID(num)}', '${SMS}', '0')" | mysql -u asterisk -pMY_PASSWORD asterisk) exten => sms,n,Hangup()
Еще такое, у меня карта переполнена и больше не хочет принимать SMS. Добавляем параметр autodeletesms=yes в описание datacard. А что бы удалить уже все существующие SMS, отправим AT команду из asterisk:
asterisk -r Asterisk 1.6.2.14, Copyright (C) 1999 - 2010 Digium, Inc. and others. asterisk*CLI> datacard cmd datacard2 AT+CMGD=1,4 [Dec 26 01:43:47]at_response_ok: [datacard2] Received 'OK'
Все! Все SMS удалили, в будущем они будут ложится в базу MySQL. Переходим к Oktell. На сервере нужно установить драйвер MySQL. И пишем служебный сценарий:
Скачать сценарий
Прописываем выполнение этого сценария по расписанию и получаем:
Это, как пример. А теперь можно создавать разные варианты: CallBack по входящей SMS 😉
Успешных Вам экспериментов!
Здравствуйте, скажите пожалуй, как сделать следующее:
Сразу скажу что я в этом деле вообще не компетентен, возможно что то не так скажу, но все же надеюсь что вы меня поймете.
Суть заключается в следующим:
Имеется свой собственный web сервер. На этом веб сервере в базе MySql есть много номеров телефонов.
Нужна такая штука, назовем её «ххх» которая будет принимать звонок с обычного сотового или домашнего телефона.
Предположим человек звонит на эту «ХХХ» штуку, можно даже для примера написать номер 777777777777 и эта «ХХХ» штука соединяет его с другим человеком, у которого тоже обычный сотовый или домашний телефон. Соединение происходит по обычному GSM каналу.
Так как номеров в базе MySql много, и что бы эта «ХХХ» штука знала с кем именно соединить звонящего, она для начала должна соединится с веб сервером, в котором хранятся номера телефонов и принять инструкцию, то есть как бы спросить с кем именно соединить звонящего, а уже потом соединить.
Так же эта «ХХХ» штука должна уметь принимать DTMF сигнал.
В общем что-то в таком роде, как можно реализовать?
Буду благодарен за исчерпывающий ответ.