Apply TALK_DETECT to the receiving end of a call

I want to identify if an queue agent stays silent after answering a call.

Using TALK_DETECT function I was able detect silence in the Caller end but not at the agent end. Can someone provide assistance to resolve this?

used following in the Trunk context

[from-pstn-cus]
exten => _X.,1,Set(TALK_DETECT(set)=1200)
exten => _X.,2,Goto(from-pstn,${EXTEN},1)

https://docs.asterisk.org/Latest_API/API_Documentation/Dialplan_Functions/TALK_DETECT/

As per the documentation, TALK_DETECT applies to the channel you set it on. Since this is an incoming call over your provider trunk, you’re applying TALK_DETECT on the caller’s channel. You need to apply TALK_DETECT on the agents channel.

That’s going to require you messing with existing dialplan for calling users/agents either at the extension or queue level.

1 Like

I tried adding Queue Custom with changing the member function as below, but the its still responding only to caller channel even CLI mentions the Local channel

ex : CLI output

Local/440@from-queue-00000501;2 is now silent
Local/440@from-queue-00000501;2 is now talking
Local/440@from-queue-00000501;2 is now silent
Local/440@from-queue-00000501;2 is now talking
Local/440@from-queue-00000501;2 is now silent

Queue custom conf

[6802]
announce-frequency=0
announce-holdtime=no
announce-position=no
autofill=no
autopause=no
autopausebusy=no
autopausedelay=0
autopauseunavail=no
joinempty=yes
leavewhenempty=no
maxlen=0
memberdelay=0
min-announce-frequency=15
penaltymemberslimit=0
periodic-announce-frequency=0
queue-callswaiting=silence/1
queue-thereare=silence/1
queue-youarenext=silence/1
reportholdtime=no
retry=5
ringinuse=no
servicelevel=60
strategy=rrmemory
timeout=15
timeoutpriority=app
timeoutrestart=no
weight=0
wrapuptime=0
context= 
**member=Local/440@from-queue-cus/n,0,"Test",hint:440@ext-local**

Yeah the local channel is still not the place. The local channel is going to call the agent via PJSIP that is where it needs to be done. So that means it needs to be done in the predial hook of Dial() when calling the extension.

1 Like

Could you offer additional information on how to set up/configure this?