Предположем что у нас уже настроен chan_dingle и звонки проходят, но как же с отправкой и получением СМС. Отправить используя 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},ServiceCenter) 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()
добавьте его в messages как include
[messages]
include => send-sms