Detecting dial tone in channel using ARI

In asterisk 16 using “dahdi show channel 14” confirming channel is up by checking parameter InAlarm: 0.

if InAlarm:1 channel is down means no dial tone.

Need to validate this dial tone using ARI.

Kindly let me know the ARI method which can be used to detect the dial tone .

Snap Shot:

fd069b6be01d*CLI> dahdi show channel 14
Channel: 14
File Descriptor: 20
Span: 1
Dialing: no
Context: from-pstn
Caller ID:
Calling TON: 0
Caller ID subaddress:
Caller ID name:
Mailbox: none
Destroy: 0
InAlarm: 0
Signalling Type: FXS Kewlstart
Radio: 0


There is no ARI functionality to query any DAHDI specific stuff.

1 Like

I suspect it actually means no battery, rather than no dial tone. Although most modern systems will be able to give dial tone immediately, older systems needed to find a register or even first selector, before they presented dial tone. I also suspect it is only intended for human consumption.

Thanks for confirming !

Can you suggest us a preferred way of dial tone detection using ARI functionality ?

I haven’t heard of anyone doing such a thing and am not that familiar with DAHDI, so I don’t really know.

Here the intention is to detect dial tone is on then proceed with next steps like originate call etc…

Using ARI is there any way to check dial tone before initiating call ?

Using ARI , how can we ensure dialtone is ON/OFF ?

Using my current setup I am able to make outgoing call and incoming call .

During incoming call ,I am able to wait for event in channel using

client.on_channel_event(‘StasisStart’, stasis_start_cb)

after that I am answering the call and play some media file.

But i feel check for dial tone before answer call is mandatory step.

How to check the dial tone before answering the call ?

Dial tone is normally only applied to a line after a loop is applied to it**. For loop start lines, at least, applying a loop will answer any incoming call. For ground start lines, a loop isn’t applied until the ground start handshake has confirmed that dial tone would not be presented.

I’d also have to ask what your, unusual, underlying requirement is, because normal users simply don’t care about dial tone detection.

A final point is that, for anything sophisticated, you should be using ISDN, not analogue, as it is impossible for Asterisk to detect many supervision events on analogue lines reliably; they are only really suitable for human users.

A final question is what about our underlying requirement requires the use of ARI, rather than the standard dialplan applications?

If you are trying to minimize glare, the answer is to use ground start lines, not to listen for dial tone. The only reason to listen for dialtone would be to delay before dialing to ensure that the exchange had allocated the resources needed to originate the call.

** On Strowger it would only be applied when a first selector had been successfully seized. On systems with more centralized control, it would only be applied after a free register had been allocated.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.