Предположем что у нас уже настроен 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