devicestate:all/Snoop topic persists after each call

Hello,

I’m using ARI to control the Asterisk from an external application. I have the following scenario to reproduce the issue:

  • incoming call is answered
  • run Snoop on the channel
  • hangup the snoop channel

At this point I don’t expect anything to happen on the incoming channel. I have a working scenario where I successfully “whisper” to the incoming channel.

In any case, after the incoming call is hung up, I can always see a new topic named “devicestate:all/Snoop/[channelId]” being created when I run the stasis show topics CLI command. These topics are never destroyed.

I reproduced this with 20-cert and 22-LTS versions.

My question is if this is a problem, i.e. if this causes a memory leak? I intend to have a lot of snoop commands for a lot of calls in the system. Is there something else that is needed to be executed after the snoop session is done from my application?

Some examples:

3714d6bdfac1*CLI> stasis show topic devicestate:all/Snoop/657c4c35060b428a87feaa045ac0aa09-1736366992.0
Name: devicestate:all/Snoop/657c4c35060b428a87feaa045ac0aa09-1736366992.0
Detail: 
Subscribers count: 3
Forwarding topic count: 0
Duration time: 00:00:28

Subscribers:
  UniqueID: stasis_cache.c:devicestate:all-0, Topic: devicestate:all, Detail: 
  UniqueID: devicestate.c:devicestate:all-1, Topic: devicestate:all, Detail: 
  UniqueID: pbx.c:devicestate:all-2, Topic: devicestate:all, Detail: 

Forwarded topics:

Since the channels are using ephemeral identifiers it’s entirely possible that the device state stuff is causing the topic to be created and it needs to be cleaned up. Please file an issue[1] with a simple ARI application that reproduces the issue.

[1] Issues · asterisk/asterisk · GitHub

1 Like