Hi all,
I have been using app_rpt to initiate a call from my handheld radio to my SIP users.
Usually I do this in two ways, either I set an autopatch on PTT button press to directly call a pre-set extension ( by fixing a value in ivoxexten = 1001);
Or, I set a DTMF based dialing by setting *61{1001} command in rpt.conf.
And both of these have been working fine.
But, Now, I want to initiate a call ONLY when human voice is detected. Is there any way to make my app_rpt DETECT a human voice apart from DTMF tones.
Earlier I tried using TALK_DETECT() application, to make Asterisk detect speech, but this didn’t work:
Here is my extensions.conf:
[Radio_1]
exten = _.,1,Set(CALLERID(num)=610)
same => n,SIPAddHeader(Call-Info: answer-after=1)
same => n,Set(DENOISE(rx)=on)
same => n,Set(TALK_DETECT(set)=1200,2500) ; Set thresholds for talk detection
same => n,Wait(2)
same => n,GotoIf($[“${TALKDETECT(status)}”=“TRUE”]?voice_detected:no_voice)
; Label for when voice activity is detected
same => n(voice_detected),NoOp(Voice activity detected!)
same => n,Dial(SIP/3005) ; Dial extension 3005 if voice is detected
same => n,NoOp(Current talk status : ${TALKDETECT(status)} .)
; Label for when no voice activity is detected
same => n(no_voice),NoOp(No voice activity detected, no call placed)
same => n,NoOp(Current talk status : ${TALKDETECT(status)} .)
;same => n,Hangup()
Here is my Rpt.conf:
[610]
rxchannel = Radio/usb_610
context = Radio_1
callerid = “610”
duplex = 2
linktolink = no
linkmongain = 0
erxgain = -3
etxgain = -3
scheduler = schedule
functions = functions
phone_functions = functions
link_functions = functions
callonvox = 1
ivoxcontext = Radio_1
ivoxexten = 3005
telemetry = telemetry
morse = morse
wait_times = wait-times
accountcode = RADIO
hangtime = 5000
althangtime = 4000
totime = 180000
idrecording = |iWA4XYZ
idtalkover = |iWA4XYZ
idtime = 540000
politeid = 30000
unlinkedct = ct2
remotect = ct3
linkunkeyct = ct8
holdofftelem = 0
telemdefault = 1
telemdynamic = 1