Buat sahabat yang mungkin sedang belajar pemrograman Asterisk (Telephony), dan sedang mencari artikel tentang bagaimana mengcapture digit DTMF dan menyimpannya ke dalam data base.
Berikut script yang saya tempakan pada "extension.conf":
[me]
exten => t,1,Hangup
exten => h,1,Hangup
exten => i,1,Hangup
exten => 1803,1,Set(wait=2)
exten => 1803,n,Set(wait_exp=1)
exten => 1803,n(begin),Playback("1-yes-2-no")
exten => 1803,n,Set(gottries=0)
exten => 1803,n,Set(got=)
exten => 1803,n(getmore),Set(timer=${EPOCH})
exten => 1803,n,Read(get,"silence/1",,,,${wait})
exten => 1803,n,Set(timer=$[${EPOCH}-${timer}])
exten => 1803,n,GotoIf($[${timer}==$[${wait}+1]]?gotnothing:gotsomething)
exten => 1803,n(gotnothing),Set(gottries=$[${gottries}+1])
exten => 1803,n,GotoIf($[${LEN(${get})} == 0]?reallynothing:gotdigit)
exten => 1803,n(reallynothing),GotoIf($[${gottries}>1]?done:getmore)
exten => 1803,n(gotsomething),Set(gottries=0)
exten => 1803,n,GotoIf($[${LEN(${get})} == 0]?gotpound:gotdigit)
exten => 1803,n(gotpound),Set(got=${got}#)
exten => 1803,n,Goto(getmore)
exten => 1803,n(gotdigit),Set(got=${got}${get})
exten => 1803,n,Set(get=)
exten => 1803,n,Goto(getmore)
//exten => 1803,n(done),SayDigits(${got})
exten => 1803,n,AGI(dtmf_capture.php,${got})
exten => 1803,n,Goto(begin)
Semoga bermanfaat.

Thanks mas bro...
ReplyDelete