Sending SMS vía CallerID

Hello,

I have develop an application for sending sms vía the callerid name field (CALLERID(name)).

I couldn´t find it so I done it. Asterisk make a call to the destination of 1 second and hang up, I think that is really usefull because some ip phone have the ability of showing the callerid of the last received calls. You can check it from the cdr too.

How to use:

you call 888+ the destination, ex: 888300, asterisk say welcome and the you write the sms as with a cell phone:
2:a
22:b
222:c
etc

0:space
1:.
11:?
111:@

I couldn’t use the character ,

*: backspace
#:send sms

I attack the code, you have to put it in extensions_custom.conf:

[from-internal-additional-custom]
exten => _888XXX,1,Answer()
exten => _888XXX,n,Set(DestNumb=${EXTEN:3})
exten => _888XXX,n,Set(CALLERID(number)=888)
exten => _888XXX,n,Goto(messages,s,1)
exten => _888XXX,n,Set(CALLERID(name)=${message})
exten => _888XXX,n,SayAlpha(${message})
exten => _888XXX,n,Dial(SIP/${EXTEN:3},1)
exten => _888XXX,n,Hangup()

[messages]
exten => s,1,Background(welcome)
exten => s,n,Set(message=${message}${letter})
exten => s,n,Set(TIMEOUT(digit)=1)
exten => s,n,Background(beep)
exten => s,n,WaitExten(20)

exten => 0,1,Set(letter= )
exten => 0,n,SayAlpha(${letter})
exten => 0,n,Goto(s,2)

exten => 1,1,Set(letter=.)
exten => 1,n,SayAlpha(${letter})
exten => 1,n,Goto(s,2)

exten => 11,1,Set(letter=?)
exten => 11,n,SayAlpha(${letter})
exten => 11,n,Goto(s,2)

exten => 111,1,Set([email protected])
exten => 111,n,SayAlpha(${letter})
exten => 111,n,Goto(s,2)

exten => 2,1,Set(letter=a)
exten => 2,n,SayAlpha(${letter})
exten => 2,n,Goto(s,2)

exten => 22,1,Set(letter=b)
exten => 22,n,SayAlpha(${letter})
exten => 22,n,Goto(s,2)

exten => 222,1,Set(letter=c)
exten => 222,n,SayAlpha(${letter})
exten => 222,n,Goto(s,2)

exten => 3,1,Set(letter=d)
exten => 3,n,SayAlpha(${letter})
exten => 3,n,Goto(s,2)

exten => 33,1,Set(letter=e)
exten => 33,n,SayAlpha(${letter})
exten => 33,n,Goto(s,2)

exten => 333,1,Set(letter=f)
exten => 333,n,SayAlpha(${letter})
exten => 333,n,Goto(s,2)

exten => 4,1,Set(letter=g)
exten => 4,n,SayAlpha(${letter})
exten => 4,n,Goto(s,2)

exten => 44,1,Set(letter=h)
exten => 44,n,SayAlpha(${letter})
exten => 44,n,Goto(s,2)

exten => 444,1,Set(letter=i)
exten => 444,n,SayAlpha(${letter})
exten => 444,n,Goto(s,2)

exten => 5,1,Set(letter=j)
exten => 5,n,SayAlpha(${letter})
exten => 5,n,Goto(s,2)

exten => 55,1,Set(letter=k)
exten => 55,n,SayAlpha(${letter})
exten => 55,n,Goto(s,2)

exten => 555,1,Set(letter=l)
exten => 555,n,SayAlpha(${letter})
exten => 555,n,Goto(s,2)

exten => 6,1,Set(letter=m)
exten => 6,n,SayAlpha(${letter})
exten => 6,n,Goto(s,2)

exten => 66,1,Set(letter=n)
exten => 66,n,SayAlpha(${letter})
exten => 66,n,Goto(s,2)

exten => 666,1,Set(letter=o)
exten => 666,n,SayAlpha(${letter})
exten => 666,n,Goto(s,2)

exten => 7,1,Set(letter=p)
exten => 7,n,SayAlpha(${letter})
exten => 7,n,Goto(s,2)

exten => 77,1,Set(letter=q)
exten => 77,n,SayAlpha(${letter})
exten => 77,n,Goto(s,2)

exten => 777,1,Set(letter=r)
exten => 777,n,SayAlpha(${letter})
exten => 777,n,Goto(s,2)

exten => 7777,1,Set(letter=s)
exten => 7777,n,SayAlpha(${letter})
exten => 7777,n,Goto(s,2)

exten => 8,1,Set(letter=t)
exten => 8,n,SayAlpha(${letter})
exten => 8,n,Goto(s,2)

exten => 88,1,Set(letter=u)
exten => 88,n,SayAlpha(${letter})
exten => 88,n,Goto(s,2)

exten => 888,1,Set(letter=v)
exten => 888,n,SayAlpha(${letter})
exten => 888,n,Goto(s,2)

exten => 9,1,Set(letter=w)
exten => 9,n,SayAlpha(${letter})
exten => 9,n,Goto(s,2)

exten => 99,1,Set(letter=x)
exten => 99,n,SayAlpha(${letter})
exten => 99,n,Goto(s,2)

exten => 999,1,Set(letter=y)
exten => 999,n,SayAlpha(${letter})
exten => 999,n,Goto(s,2)

exten => 9999,1,Set(letter=z)
exten => 9999,n,SayAlpha(${letter})
exten => 9999,n,Goto(s,2)

exten => *,1,Set(L=${LEN(${message})})
exten => *,n,Set(l=${MATH(${L}-1,int)})
exten => *,n,Noop(${L})
exten => *,n,Noop(${l})
exten => *,n,Set(message=${message:0:${l}})
exten => *,n,Set(letter=)
exten => *,n,Goto(s,2)

exten => #,1,Goto(from-internal,888${DestNumb},5)

exten => t,1,Hangup()