Autopatch with ASL 3.0

Does anyone have autopatch working with ASL 3.0?

If so, would you please share some config info?

This is something that worked fine with the 2.0 Beta but I have been running into various issues, which I’ll enumerate later, once I hear that anyone has it working.

I think the autopatch call is broken in ASL3.

Not sure of your experience, any time I fire off an “autopatchup” command, the repeater task hangs up and requires restarting the asterisk service.

Could you post your complete entry/stanza for it from extensions.conf
And the command string in rpt.conf

It is likely a change in asterisk version and some syntax made that changed.

It would be important that you first test the line separate by method (sip/pjsip) perhaps with a softphone to be sure that part of it is correct before tearing into phone patch functions alone.
Perhaps you have?

But if I see the stanza, it may be more telling.

Please see: app_rpt: Deadlock when starting autopatch call · Issue #257 · AllStarLink/app_rpt · GitHub

A lot has been happening on this issue.

Perhaps related, when my full duplex repeater is connected to a half-duplex simplex node, the simplex node stays keyed for the entire autopatch call. The repeater will drop the PTT when the caller is quiet enough, which is great, but the simplex node is basically unusable during the call, as it transmits the entire time even if the caller has pressed mute.

Anyway, I can imagine this is related to the issue linked. Looks like the bug is identified and work is in progress. Thank you all.

–E
de W6EL

I believe that that autopatch problems in ASL3 have been resolved. I have been able to make calls. The changes are going through review and testing.

Danny/KB4MDD

1 Like

I’m fairly sure the problem has been found as a bug in app_rpt. Here’s the stanza JIC.
*89 fires up autopatch - *89C gets the _C call, *89B gets _B call: send tone, *89x gets the command processor.

[command_process]
; -- Send DTMF Tones (See /usr/local/bin/sendtones)
exten => _B.,1,System(/usr/local/bin/sendtones ${EXTEN})
same => n,Hangup()

; -- Traffic Database Managment by DTMF See /usr/local/bin/traffic
exten => _C.,1,System(/usr/local/bin/traffic/DBRemove ${EXTEN})
same => n,Hangup()

; ---- Command Process extentions ------  See /usr/local/bin/command_process
exten => _x.,1,System(/usr/local/bin/command_process ${EXTEN})
same => n,Hangup()

And RPT.CONF magic that makes it “work”:

87=autopatchup,context=copcmds,noct=1,farenddisconnect=1,dialtime=60000,quiet=1
88=cop,55    ;Parrot Once if parrot mode is disabled
89=autopatchup,context=command_process,noct=1,farenddisconnect=1,dialtime=7000,quiet=1; Command Processing
99=cop,6  ; ptt phone mode

Try removing the period.

Do you realize this is capturing any extension dialed in this context ?
Or perhaps I could say the extension when there is no match since it is last.
Use something with a partial match.
Asterisk runs a first match execution.
We use to use that string to clean up any loose ends to hangup if no command was found, just for those loose hack attempts poking around.

Perhaps watch asterisk in the foreground and see where it is going. And the error

I have been using the phone patch quite to access the dialplan for over a decade and perhaps over a hundred such instances in my command structure.
Several are a complete special purpose IVR’s

But if this is not running for you, have you checked your script file ownership and permissions ?
Is there a .sh extension on those scripts you left out in the command string ?
Lots of possibilities here.
Asterisk executes as user asterisk and group asterisk.

You really need to watch this in the foreground to see where it is going wrong.
asterisk -rvvv
But I would first remove those periods and get something in place of that x
Come back with the specific error in execution.

OK… woopsy
I forgot the period is pattern matching remaining chars ‘you are passing off to the script.’
You could have done this a different way that I am use to I guess.

But do you need to truncate the full extension perhaps.depending on your scripts?

Here is something old to use for example…
exten =_9xxX,1,System(/opt/Analog_Bridge/DMRonthefly.sh ${EXTEN:1},1)
But perhaps you have accounted for this already ?

Anyone following this: the 3.0.4 release appears to have fixed the issues - give it a try!

There is good news and there is bad news.

autopatch no longer causes app_rpt to hang when initiating a call. I can succesfully ring through to an extension on my internet pbx over iax. I can pass audio from a radio to the extension.

However no audio is passed back from the phone to the radio. If there is a VOX function it does not appear to work.

Are you making a call from RF to your PBX?

You can try core set debug 7 app_rpt.so to see more detail from app_rpt.

Yes, I am making a call from RF to the PBX. The call rings through.

Audio is passed from RF to the remote PBX extension.

Audio is NOT passed from the remote PBX extension to RF.

Radio ↔ ASL 3.x ↔ IAX ↔ Other PBX ↔ PJSIP ↔ Extension