Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.
hi.
the busy tone is periodic and has a determined time for make and preak ( usually 0.5 sec. and 0.5 sec.) (may vary from country to another)
so, u have to detect the voices in the telephone line and convert it to logic signal (0 and 1 ) ( if u use a microcontroller) then u can sample this signal, then if this signal has the time properties like standard busy tone so u detect the busy tone.
you have to chek it 3 or more times to avoid errors
It looks like Q.35 does define the busy tone parameters , but dont believe to that - operators sometimes can change tone defaults from standard to something their managers love tro hear).
I witnessed that few times
For all measurements you should define smallest time interval to detect noise to decode tone pulse pattern . Let say, we can approach 100-200 milliseconds .
Actual implementation could vary dependent on what quality extend you are willing to achieve
a. Simplest :
You can implement simple comparator connected to to your telepone pair (AC bypass ) and count number of zerocrosses - that will give you frequency of signal in line .
b. Improved :
use 1 bit Goertzel algorithm to detect frequency . A lot of implementations do exist . There is some explanation :
**broken link removed**
**broken link removed**
c. Better than above :
Implement digital filter in PIC to detect narrow frequency (band pass filter) and use filtered data for detection . Let say atmel has an application note http://www.atmel.com/dyn/resources/prod_documents/doc2527.pdf
where second order band pass filter on mcu is described. You should find one which is applicable to PIC.
Using above methods you will have a sequence of bits or tone pattern - duration of tone and pause . This is to be matched towards your operator's used tone pattern , which has to be apriori analysed and stored into your program .
This document could be useful but it is little bit complicated:
**broken link removed**
At the end , i suppose seaching google will help to find ready to use solution already available,
but i leave this opportunity to you)
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.