AllStarLink / app_rpt

Refactoring and upgrade of AllStarLink's app_rpt, etc.
3 stars 2 forks source link

app_rpt is reporting - Couldn't get mute status on echolink/el0-3: Bad file descriptor #303

Closed KB4MDD closed 3 months ago

KB4MDD commented 3 months ago

With the latest version of the software, we are seeing the following errors when an echolink user transmits. I have an older version of the software running on one of my nodes and it does not exhibit this problem. I don't believe there have been any recent changes to chan_echolink.

k4mdddevelop*CLI> [2024-03-27 13:34:38.821] WARNING[285652]: app_rpt/rpt_bridging.c:531 dahdi_conf_get_muted: Couldn't get mute status on echolink/el0-3: Bad file descriptor [2024-03-27 13:34:38.827] WARNING[285652]: app_rpt/rpt_bridging.c:531 dahdi_conf_get_muted: Couldn't get mute status on echolink/el0-3: Bad file descriptor [2024-03-27 13:34:38.855] WARNING[285652]: app_rpt/rpt_bridging.c:531 dahdi_conf_get_muted: Couldn't get mute status on echolink/el0-3: Bad file descriptor

These messages scroll until the user stops transmitting.

After unkeying, I hear the courtesy tone. The client application is then stuck in RX mode. This means that the client thinks it is receiving audio data. The client's PTT button is locked out. Looking at echolink show stats app_rpt is continuing to send audio packets.

KB4MDD commented 3 months ago

The following information shows the active channels before an echolink connect, after the connection. When ptt is pressed on the echolink client the 'mute status' message scrolls. I removed duplicate lines. It is followed by another list of active channels.

k4mdddevelop*CLI> core show channels
Channel                                                          Location                         Stat                 e   Application(Data)
DAHDI/pseudo-500923426                                           s@default:1                      Rsrv                 d   (None)
DAHDI/pseudo-730192907                                           s@default:1                      Rsrv                 d   (None)
DAHDI/pseudo-275488970                                           s@default:1                      Rsrv                 d   (None)
DAHDI/pseudo-1733252132                                          s@default:1                      Rsrv                 d   (None)
DAHDI/pseudo-995707395                                           s@default:1                      Rsrv                 d   (None)
DAHDI/pseudo-2122083499                                          s@default:1                      Rsrv                 d   (None)
DAHDI/pseudo-1656386326                                          s@default:1                      Rsrv                 d   (None)
DAHDI/pseudo-170452889                                           s@default:1                      Rsrv                 d   (None)
DAHDI/pseudo-1963628018                                          s@default:1                      Rsrv                 d   (None)
DAHDI/pseudo-1437146969                                          s@default:1                      Rsrv                 d   (None)
DAHDI/pseudo-857167480                                           s@default:1                      Rsrv                 d   (None)
DAHDI/pseudo-979804506                                           s@default:1                      Rsrv                 d   (None)
Radio/usb_1999                                                   s@default:1                      Up                       Rpt((Repeater Rx))
usrp/127.0.0.1:34001:32001                                       s@default:1                      Up                       Rpt((Repeater Rx))
DAHDI/pseudo-572515153                                           s@default:1                      Rsrv                 d   (None)
DAHDI/pseudo-1373322641                                          s@default:1                      Rsrv                 d   (None)
DAHDI/pseudo-1235681716                                          s@default:1                      Rsrv                 d   (None)
DAHDI/pseudo-772675557                                           s@default:1                      Rsrv                 d   (None)
18 active channels
0 active calls
0 calls processed
[2024-04-04 06:22:46.888]     -- Executing [1999@radio-secure:1] NoOp("echolink/el0-0", "Connect from                  node: 3859735") in new stack
[2024-04-04 06:22:46.889]     -- Executing [1999@radio-secure:2] NoOp("echolink/el0-0", "Connect to: 1999") in new stack
[2024-04-04 06:22:46.889]     -- Executing [1999@radio-secure:3] Rpt("echolink/el0-0", "1999") in new stack
k4mdddevelop*CLI> core show channels
Channel                                                          Location                         State   Application(Data)
DAHDI/pseudo-500923426                                           s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-730192907                                           s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-275488970                                           s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-1733252132                                          s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-995707395                                           s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-2122083499                                          s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-1656386326                                          s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-170452889                                           s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-1963628018                                          s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-1437146969                                          s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-857167480                                           s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-979804506                                           s@default:1                      Rsrvd   (None)       
Radio/usb_1999                                                   s@default:1                      Up      Rpt((Repeater Rx))
DAHDI/pseudo-354935940                                           s@default:1                      Rsrvd   (None)       
usrp/127.0.0.1:34001:32001                                       s@default:1                      Up      Rpt((Repeater Rx))
DAHDI/pseudo-572515153                                           s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-1373322641                                          s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-1235681716                                          s@default:1                      Rsrvd   (None)       
echolink/el0-0                                                   1999@radio-secure:3              Up      Rpt(1999)    
DAHDI/pseudo-772675557                                           s@default:1                      Rsrvd   (None)       
20 active channels
1 active call
1 call processed
[2024-04-04 06:23:27.640] WARNING[321180]: app_rpt/rpt_bridging.c:531 dahdi_conf_get_muted: Couldn't get mute status on echolink/el0-0: Bad file descriptor
(above repeats while ptt pressed)
[2024-04-04 06:23:31.807]     -- Hungup 'DAHDI/pseudo-345888578'
k4mdddevelop*CLI> core show channels
Channel                                                          Location                         State   Application(Data)
DAHDI/pseudo-500923426                                           s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-730192907                                           s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-275488970                                           s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-1733252132                                          s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-995707395                                           s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-2122083499                                          s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-1656386326                                          s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-170452889                                           s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-1963628018                                          s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-1437146969                                          s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-857167480                                           s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-979804506                                           s@default:1                      Rsrvd   (None)       
Radio/usb_1999                                                   s@default:1                      Up      Rpt((Repeater Rx))
DAHDI/pseudo-354935940                                           s@default:1                      Rsrvd   (None)       
usrp/127.0.0.1:34001:32001                                       s@default:1                      Up      Rpt((Repeater Rx))
DAHDI/pseudo-572515153                                           s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-1373322641                                          s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-1544216039                                          s@default:1                      Rsrvd   (None)       
DAHDI/pseudo-1235681716                                          s@default:1                      Rsrvd   (None)       
echolink/el0-0                                                   1999@radio-secure:3              Up      Rpt(1999)    
DAHDI/pseudo-772675557                                           s@default:1                      Rsrvd   (None)       
21 active channels
1 active call
1 call processed
[2024-04-04 06:23:39.877]     -- Hungup 'DAHDI/pseudo-1544216039'
k4mdddevelop*CLI>
KB4MDD commented 3 months ago

I added code to show the file descriptor and it has -1.

ast_channel_fd(chan, 0) is returning -1 for channel echolink/el0-0.

app_rpt/rpt_bridging.c:531 dahdi_conf_get_muted: Couldn't get mute status on echolink/el0-0 : -1: Bad file descriptor

KB4MDD commented 3 months ago

Echolink was working at commit: c133839c703ca2112aaa235c2a6e16b50191b3ac

It starts failing at commit: https://github.com/AllStarLink/app_rpt/commit/f242a26f8fbf7a3d2c59f44753245578ced1f908

KB4MDD commented 3 months ago

I have identified two changes that corrrect the problem in commit f242a26. When applied to master, there is still a problem with the RX indicator in the echolink client not stopping after a transmission.

Moving from f242a26 further update the commit chain, the problem appears to be associated with commit edeacc2ed968735b6db766ff0b5f586a675887d1

Seems that chan_echolink is receiving a AST_CONTROL_RADIO_KEY, but when I expect to see an unkey, it gets another AST_CONTROL_RADIO_KEY.

I am investigating the changes in this commit.