3707 читателей
110 постов
kannel_bearerbox_enable="YES"
kannel_smsbox_enable="YES"
asterisk_enable="YES"
cd /usr/ports/net/asterisk
make install clean
service asterisk start
;#/usr/local/etc/asterisk/sip.conf
[general]
tcpenable=yes
allow=all
register => 79271111111@multifon.ru:paSSwoRD:79271111111@193.201.229.35:5060/79271111111
[multifon-out]
dtmfmode=inband
username=79271111111
type=peer
secret=paSSwoRD
host=sbc.megafon.ru
fromuser=79271111111
fromdomain = multifon.ru
port=5060
context=multifon-in
insecure=port,invite
canreinvite=no ;# без этого параметра исходящий звонок на принимающем телефоне сразу прерывается
[100];#софтофоны или другие sip-телефоны настраиваем в соответствии с этими разделами
type=friend
host=dynamic
secret=pass100
context=phones
username=100
nat=rfc3581 ;# без этого параметра не работает связь между софтфонами
[101]
type=friend
host=dynamic
secret=pass101
context=phones
username=101
nat=rfc3581
;#/usr/local/etc/asterisk/extensions.conf
;# Входящие вызовы на этот номер
[multifon-in]
exten=> 79271111111,1,Dial(SIP/100,60,t)
;# Исходящие вызовы, определяется маской
[out]
exten=>_7XXXXXXXXXX,1,Dial(SIP/multifon-out/${EXTEN})
exten=>_8XXXXXXXXXX,1,Dial(SIP/multifon-out/${EXTEN}) ;#позволяет звонить через 8
exten=>_+7XXXXXXXXXX,1,Dial(SIP/multifon-out/${EXTEN}) ;#позволяет звонить через +7
;#exten=>_7XXXXXXXXXX,1,Dial(SIP/${EXTEN}@multifon-out,30,r) ;#мегафоновский вариант
;# Локальные звонки между SIP телефонами
[local]
exten=>_1XX,1,Dial(SIP/${EXTEN},60,rt)
[phones]
include => multifon-in ;#честно говоря, не знаю зачем эта строка здесь у мегафона
include => local
include => out
;#/usr/local/etc/asterisk/rtp.conf
[general]
rtpstart=6001 ;#мегафон утверждает, что их RTP работает от 6001 порта
rtpend=20000
asterisk -vvvvr
reload
sip show registry
sip show peers
ls /dev | grep cuaU
ls /dev | grep ttyU
device u3g
cd /usr/ports/www/kannel
make install clean
service kannel start
adduser
mkdir /var/run/kannel
chown kannel /var/run/kannel
#/usr/local/etc/kannel.conf
group = core
admin-port = 13000
admin-password = " paSsWoRd "
log-file = "/var/log/kannel/bearerbox.log"
log-level = 1
access-log = "/var/log/kannel/access_kannel.log"
store-file = "/var/log/kannel/store_sms"
smsbox-port = 13001
dlr-storage = internal
sms-resend-retry = 1
group = smsc
smsc = at
smsc-id = huawei0
modemtype = huawei0
device=/dev/ttyU0.2 # либо /dev/ttyU0.3, если он существует
sms-center="+79271111111"
my-number="+79271111111"
keepalive=5
group=modems
id=huawei0
name="huawei0"
group = smsbox
bearerbox-host = localhost
sendsms-port = 13003
global-sender = "+79271111111"
log-file = /var/log/kannel/smsbox.log
log-level = 0
access-log = /var/log/kannel/access_smsbox.log
group = sendsms-user
username = "user"
password = "paSsWoRd"
concatenation = true
max-messages = 20
#Перенаправляем sms на php скрипт
group = sms-service
keyword = default
post-url = "http://localhost/service.php?tel=%p&time=%t&coding=%c&smsc=%i"
concatenation = true
max-messages = 0 #для того чтобы отправлять sms вручную с помощью smssend
service kannel restart
$text=urlencode(iconv("utf-8","ucs-2be",$text));#
file_get_contents("http://localhost:13003/cgi-bin/sendsms?smsc=$smsc&username=user&password=paSsWoRd&coding=2&to=$to&text=$text");#
ipfw add allow tcp from any to ${IpOut} 5060 via ${LanOut} #SIP
ipfw add allow udp from any to ${IpOut} 5060 via ${LanOut} #SIP
ipfw add allow udp from any to ${IpOut} 6000-20000 via ${LanOut} #RTP
audio=/dev/cuaU0.1 ;# Порт для аудио
data=/dev/cuaU0.2 ;# Порт для команд
rxgain=0
txgain=0
комментарии (20)
Как минимум:
1. Не может читать SMS, которые уже сохранены в буфере модема (они там могут появиться при, к примеру, рестарте астериска)
2. Часть SMS теряется при приходе сразу же нескольких SMS
Для себя эту задачу частично решил написанием отдельного perl скрипта (не хотелось связываться с Kannel), лишенного недостатков chan_datacard'а.
SMPP предназначен для общения с SMS-центром оператора через IP, тут же речь про USB GSM модем.
Т.е. общение с GSM модемом идёт как с обычным модемом через AT команды.
А с Net::SMPP возился лет 5 назад, совсем не понравился.
Если надо подключиться — отправить десяток сообщений — отключиться, то да, тут он подходит.
А вот когда потребовалось постоянно держать SMPP сессию, то тут проблемы и начались.
С вашего позволения я разместил вашу прекрасную статью сюда.
Но на продакшене я (и разработчики kannel со мной солидарны) рекомендую использовать последнюю версию из SVN.
В конце концов был куплен универсальный Flyer U2, взлетевший из коробки.
Я использовал самые свежие E171 от МТС коннект.
Спасибо за пояснения.
sbc.megafon.ru — 5060 TCP+UDP (SIP) — для установки голосовых соединений, обмена статусами присутствия и текстовыми сообщениями;
Поэтому, скорее всего, это реально, т.к. мультифон клиент это использует, однако в таком случае я не вижу средства интеграции с kannel. И я погуглил на тему asterisk sms over sip, не нашел при беглом осмотре полезной информации на эту тему. Буду рад если кто-то найдет решение.