Предположим что у нас уже настроен chan_dongle и звонки проходят, но как же с отправкой и получением СМС. Отправить используя email не интересно, ведь сейчас почти все сип клиенты (PC, android, iphone) поддерживают передачу сообщений используя SIP. Приступим
1) Готовим астер для обмена сип сообщениями
sip.conf в секции general
textsupport=yes accept_outofcall_message = yes outofcall_message_context = messages auth_message_requests = no
extensions.conf
[messages] ; локальные сообщения между сип клиентами
exten => _XXX,1,NoOp(Message receiving dialplan) exten => _XXX,n,NoOp(To ${MESSAGE(to)}) exten => _XXX,n,NoOp(From ${MESSAGE(from)}) exten => _XXX,n,NoOp(Body ${MESSAGE(body)}) exten => _XXX,n,Set(LOCALTO=${CUT(MESSAGE(to),@,1)}) exten => _XXX,n,MessageSend(${LOCALTO},${MESSAGE(from)}) exten => _XXX,n,NoOp(Send status is ${MESSAGE_SEND_STATUS}) exten => _XXX,n,GotoIf($["${MESSAGE_SEND_STATUS}" != "SUCCESS"]?sendfailedmsg) exten => _XXX,n,Hangup() ; ; failed send messaging exten => _XXX,n(sendfailedmsg),Set(MESSAGE(body)="[${STRFTIME(${EPOCH},,%d%m%Y-%H:%M:%S)}] Your message to ${EXTEN} has failed. Retry later.") exten => _XXX,n,Set(LOCALME=${CUT(MESSAGE(from),<,2)}) exten => _XXX,n,Set(LOCALFROM=${CUT(LOCALME,@,1)}) exten => _XXX,n,MessageSend(${LOCALFROM},AsteriskSMC) exten => _XXX,n,Hangup()
; если номер моб то отправлять смс через dongle
[send-sms] exten => _7XXXXX.,1,NoOp(SMS send to dongle) same => n,NoOp(To ${MESSAGE(to)}) same => n,NoOp(From ${MESSAGE(from)}) same => n,NoOp(Body ${MESSAGE(body)}) same => n,Set(SMSTO=${CUT(MESSAGE(to),@,1)}) same => n,DongleSendSMS(dongle0, "${SMSTO}", ${MESSAGE(body)}, 1440, yes) same => n,Hangup()
; прием СМС и отправка на добавочный номер, сам добавочный должен быть указан в начали сообщения. Пример 101 Привет как дела ?
[recieve-sms] exten => sms,1,NooP(Incoming SMS from ${CALLERID(num)} ) same => n,NooP(From ${CALLERID(num)}) same => n,NooP(To local ${SMS:0:3}) same => n,NooP(Message - ${SMS:3}) same => n,Set(MESSAGE(body)=${SMS:3}) same => n,MessageSend(sip:${SMS:0:3},${CALLERID(num)}) same => n,Hangup()
Приятного смс общения !
добавьте его в messages как include
[messages]
include => send-sms