-1

I have Asterisk 13.4.0 running on Ubuntu 12.04.3 and I need to log SIMPLE messages to MySQL CDR.

Messages are sending between extensions and all other CDRs are recorded properly, but there are no any SIMPLE records in CDR. Is it possible to use Asterisk built-in functionality or some kind of workaround to solve this problem?

1 Answers1

0

Put in sip_general_custom.conf

accept_outofcall_message=yes
outofcall_message_context=messages
auth_message_requests=no

Into extensions_custom.conf

[messages]
exten => _.,1,NoOp(SMS receiving dialplan invoked)
exten => _.,n,NoOp(To ${MESSAGE(to)})
exten => _.,n,NoOp(From ${MESSAGE(from)})
exten => _.,n,NoOp(Body ${MESSAGE(body)})
exten => _.,n,Set(ACTUALTO=${CUT(MESSAGE(to),@,1)})
exten => _.,n,Set(CDR(message)=${MESSAGE(from)})
exten => _.,n,MessageSend(${ACTUALTO},${MESSAGE(from)})
exten => _.,n,NoOp(Send status is ${MESSAGE_SEND_STATUS})
exten => _.,n,GotoIf($["${MESSAGE_SEND_STATUS}" != «SUCCESS»]?sendfailedmsg)
exten => _.,n,Hangup()
;
; Handle failed messaging
exten => _.,n(sendfailedmsg),Set(MESSAGE(body)="[${STRFTIME(${EPOCH},,%d%m%Y-%H:%M:%S)}] Your message to ${EXTEN} has failed. Retry later.")
exten => _.,n,Set(ME_1=${CUT(MESSAGE(from),<,2)})
exten => _.,n,Set(ACTUALFROM=${CUT(ME_1,@,1)})
exten => _.,n,MessageSend(${ACTUALFROM},ServiceCenter)
exten => _.,n,Hangup()
exten => _.,n,Hangup() 

Also you need add into table message column type text

arheops
  • 15,544
  • 1
  • 21
  • 27