Tonegen
(5 intermediate revisions by one user not shown) | |||
Line 2: | Line 2: | ||
The Tone Generator module is used to generate tones like dial, busy. | The Tone Generator module is used to generate tones like dial, busy. | ||
− | === | + | ===Tone Generator options === |
The options are: | The options are: | ||
Line 15: | Line 15: | ||
* noise - low level white noise, usable as comfort noise | * noise - low level white noise, usable as comfort noise | ||
− | ===Routing=== | + | ===How to use tone generator=== |
+ | |||
+ | ==== Routing==== | ||
In a routing module to use one of these tones, you can use something like : tone/dial. | In a routing module to use one of these tones, you can use something like : tone/dial. | ||
Line 24: | Line 26: | ||
That means when someone is calling extension 1 tonegen will generate a dial tone. | That means when someone is calling extension 1 tonegen will generate a dial tone. | ||
− | === | + | ==== Override data source ==== |
The tone generator can also be used as an override data source. Extra tones are available in this mode: | The tone generator can also be used as an override data source. Extra tones are available in this mode: | ||
Line 465: | Line 467: | ||
dialrecall=!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 | dialrecall=!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 | ||
record=1400/500,0/15000 | record=1400/500,0/15000 | ||
− | info=!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/ 24,!1400/332,!0/24,!1800/332, | + | info=!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024, |
− | + | !950/332,!0/ 24,!1400/332,!0/24,!1800/332,!0/2024,!950 /332,!0/24,!1400/332,!0/24,!1800/332,0 | |
stutter=!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 | stutter=!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 | ||
Line 576: | Line 578: | ||
stutter=!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,400*33 | stutter=!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,400*33 | ||
+ | ---- | ||
+ | For people interested in generating non-standard tones, you can also configure things to work like the [http://en.wikipedia.org/wiki/Precise_Tone_Plan (US version)] too. Configuration is left as an exercise for the reader. | ||
+ | '''See also''' | ||
− | + | * [[Regular expressions]] | |
− | + | * http://en.wikipedia.org/wiki/Precise_Tone_Plan | |
+ | * [[Modules]] | ||
+ | |||
+ | [[Category:Tone]] |
Latest revision as of 12:06, 4 November 2013
The Tone Generator module is used to generate tones like dial, busy.
Contents |
[edit] Tone Generator options
The options are:
- dial - ITU dial tone
- busy - ITU busy tone
- ring - ITU ring tone
- specdial - typically used for secondary dialtones
- congestion - no more channels available, network busy
- outoforder - broken line (ITU, not three tones)
- milliwatt - the stardard tone for test, 1mW @ 1kHz
- silence - as the name says
- noise - low level white noise, usable as comfort noise
[edit] How to use tone generator
[edit] Routing
In a routing module to use one of these tones, you can use something like : tone/dial.
A standard line for regexroute.conf will look like:
^1$=tone/dial
That means when someone is calling extension 1 tonegen will generate a dial tone.
[edit] Override data source
The tone generator can also be used as an override data source. Extra tones are available in this mode:
dtmf/X - single tone, X must be 0..9, *, # or a..d dtmfstr/XXXXX - an entire sequence of DTMF tones AAAA - a 1 second sine tone of frequency AAAA (number) AAAA+BBBB - a 1 second sum of two sine tones AAAA*BB - 1 second tone of AAAA modulated by BB
[edit] Configuration file
The configuration file is tonegen.conf and may be used to set things like the language (e.g. country code) for the various types of tone. For example lang=us means a us (north american) dialtone will be used for tone/dial instead of itu.
; This file configures the tone generator ; If not explicitly specified, all parameters are processed at startup only (no reload) ; Each section, except for 'general' configures a lang list ; ; Here is an example of lang list ; ;[example] ; ; alias: string: Comma separated list of tone languages sharing the same tones ; This parameter is ignored in 'itu' section ; Subsequent sections may override tones specified for aliases ;alias= ; ; All other parameters must have the format ; name=tone[,tone] ; Each tone must be specified in the format [!]freq[/duration] ; !: Don't repeat this tone (play it on first pass only) ; freq: Tone frequency ; f: This is the frequency used to build the tone ; f1+f2: The frequency is a mixture of f1 and f2 ; f1*f2: The frequency f1 is modulated by f2 ; Frequency can be 0 for silence ; duration: Tone duration in milliseconds. Defaults to 1000 if missing or invalid ; Note: if all tones start with '!' (not repeated) playing will stop after the ; last tone in the list ; ; ; The algorithm used to play a requested tone is the following: ; 1. If a language is specified in the call.execute or chan.attach message, ; find the tone using the specified language ; 2. Find the tone using the configured language if any ; 3. Find the tone using the default ('itu') ; If 'itu' language is specified in the handled message the tone is searched in ; the default list only: any configured language is ignored [general] ; lang: string: Default tones language ; This is the name of the section containing the tones to play if no language ; is specified in processed messages or the tone is not found for the specified ; language section ;lang= [itu] ; This section configures the default tones to play ; The following tones are pre-generated: dial,busy,ring,specdial,congestion, ; outoforder,info,milliwatt,silence,noise,probe/0,probe/1,probe/2,cotv,cots [at] ; Austria dial=420 busy=420/400,0/400 ring=420/1000,0/5000 congestion=420/200,0/200 callwaiting=420/40,0/1960 dialrecall=420 record=1400/80,0/14920 info=950/330,1450/330,1850/330,0/1000 stutter=380+420 [au] ; Australia dial=413+438 busy=425/375,0/375 ring=413+438/400,0/200,413+438/400,0/2000 congestion=425/375,0/375,420/375,0/375 callwaiting=425/200,0/200,425/200,0/4400 dialrecall=413+438 record=!425/1000,!0/15000,425/360,0/15000 info=425/2500,0/500 std=!525/100,!0/100,!525/100,!0/100,!525/100,!0/100,!525/100,!0/100,!525/100 facility=425 stutter=413+438/100,0/40 ringmobile=400+450/400,0/200,400+450/400,0/2000 [bg] ; Bulgaria dial=425 busy=425/500,0/500 ring=425/1000,0/4000 congestion=425/250,0/250 callwaiting=425/150,0/150,425/150,0/4000 dialrecall=!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 record=1400/425,0/15000 info=950/330,1400/330,1800/330,0/1000 stutter=425/1500,0/100 [br] ; Brazil dial=425 busy=425/250,0/250 ring=425/1000,0/4000 congestion=425/250,0/250,425/750,0/250 callwaiting=425/50,0/1000 dialrecall=350+440 record=425/250,0/250 info=950/330,1400/330,1800/330 stutter=350+440 [be] ; Belgium dial=425 busy=425/500,0/500 ring=425/1000,0/3000 congestion=425/167,0/167 callwaiting=1400/175,0/175,1400/175,0/3500 dialrecall=!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440" record=1400/500,0/15000 info=900/330,1400/330,1800/330,0/1000 stutter=425/1000,0/250 [ch] ; Switzerland dial=425 busy=425/500,0/500 ring=425/1000,0/4000 congestion=425/200,0/200 callwaiting=425/200,0/200,425/200,0/4000 dialrecall=!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 record=1400/80,0/15000 info=950/330,1400/330,1800/330,0/1000 stutter=425+340/1100,0/1100 [cl] ; Chile dial=400 busy=400/500,0/500 ring=400/1000,0/3000 congestion=400/200,0/200 callwaiting=400/250,0/8750 dialrecall=!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400 record=1400/500,0/15000 info=950/333,1400/333,1800/333,0/1000 stutter=!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400 [cn] ; China dial=450 busy=450/350,0/350 ring=450/1000,0/4000 congestion=450/700,0/700 callwaiting=450/400,0/4000 dialrecall=450 record=950/400,0/10000 info=450/100,0/100,450/100,0/100,450/100,0/100,450/400,0/400 stutter=450+425 [cz] ; Czech Republic dial=425/330,0/330,425/660,0/660 busy=425/330,0/330 ring=425/1000,0/4000 congestion=425/165,0/165 callwaiting=425/330,0/9000 dialrecall=!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425/330,0/330,425/660,0/660 record=1400/500,0/14000 info=950/330,0/30,1400/330,0/30,1800/330,0/1000 stutter=425/450,0/50 [de] ; Germany dial=425 busy=425/480,0/480 ring=425/1000,0/4000 congestion=425/240,0/240 callwaiting=!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,0 dialrecall=!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 record=1400/80,0/15000 info=950/330,1400/330,1800/330,0/1000 stutter=425+400 [dk] ; Denmark dial=425 busy=425/500,0/500 ring=425/1000,0/4000 congestion=425/200,0/200 callwaiting=!425/200,!0/600,!425/200,!0/3000,!425/200,!0/200,!425/200,0 dialrecall=!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 record=1400/80,0/15000 info=950/330,1400/330,1800/330,0/1000 stutter=425/450,0/50 [ee] ; Estonia dial=425 busy=425/300,0/300 ring=425/1000,0/4000 congestion=425/200,0/200 callwaiting=950/650,0/325,950/325,0/30,1400/1300,0/2600 dialrecall=425/650,0/25 record=1400/500,0/15000 info=950/650,0/325,950/325,0/30,1400/1300,0/2600 stutter=!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 [es] ; Spain dial=425 busy=425/200,0/200 ring=425/1500,0/3000 congestion=425/200,0/200,425/200,0/200,425/200,0/600 callwaiting=425/175,0/175,425/175,0/3500 dialrecall=!425/200,!0/200,!425/200,!0/200,!425/200,!0/200,425 record=1400/500,0/15000 info=950/330,0/1000 dialout=500 [fi] ; Finland dial=425 busy=425/300,0/300 ring=425/1000,0/4000 congestion=425/200,0/200 callwaiting=425/150,0/150,425/150,0/8000 dialrecall=425/650,0/25 record=1400/500,0/15000 info=950/650,0/325,950/325,0/30,1400/1300,0/2600 stutter=425/650,0/25 [fr] ; France dial=440 busy=440/500,0/500 ring=440/1500,0/3500 congestion=440/250,0/250 callwait=440/300,0/10000 dialrecall=!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 record=1400/500,0/15000 info=!950/330,!1400/330,!1800/330 stutter=!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,440 [gr] ; Greece dial=425/200,0/300,425/700,0/800 busy=425/300,0/300 ring=425/1000,0/4000 congestion=425/200,0/200 callwaiting=425/150,0/150,425/150,0/8000 dialrecall=425/650,0/25 record=1400/400,0/15000 info=!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0 stutter=425/650,0/25 [hu] ; Hungary dial=425 busy=425/300,0/300 ring=425/1250,0/3750 congestion=425/300,0/300 callwaiting=425/40,0/1960 dialrecall=425+450 record=1400/400,0/15000 info=!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0 stutter=350+375+400 [il] ; Israel dial=414 busy=414/500,0/500 ring=414/1000,0/3000 congestion=414/250,0/250 callwaiting=414/100,0/100,414/100,0/100,414/600,0/3000 dialrecall=!414/100,!0/100,!414/100,!0/100,!414/100,!0/100,414 record=1400/500,0/15000 info=1000/330,1400/330,1800/330,0/1000 stutter=!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,414 [in] ; India dial=400*25 busy=400/750,0/750 ring=400*25/400,0/200,400*25/400,0/2000 congestion=400/250,0/250 callwaiting=400/200,0/100,400/200,0/7500 dialrecall=!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 record=1400/500,0/15000 info=!950/330,!1400/330,!1800/330,0/1000 stutter=!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 [it] ; Italy dial=425/200,0/200,425/600,0/1000 busy=425/500,0/500 ring=425/1000,0/4000 congestion=425/200,0/200 callwaiting=425/400,0/100,425/250,0/100,425/150,0/14000 dialrecall=470/400,425/400 record=1400/400,0/15000 info=!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0 stutter=470/400,425/400 [lt] ; Lithuania dial=425 busy=425/350,0/350 ring=425/1000,0/4000 congestion=425/200,0/200 callwaiting=425/150,0/150,425/150,0/4000 dialrecall=425/500,0/50 record=1400/500,0/15000 info=!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0 stutter=!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 [jp] ; Japan dial=400 busy=400/500,0/500 ring=400+15/1000,0/2000 congestion=400/500,0/500 callwaiting=400+16/500,0/8000 dialrecall=!400/200,!0/200,!400/200,!0/200,!400/200,!0/200,400 record=1400/500,0/15000 info=!950/330,!1400/330,!1800/330,0 stutter=!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400 [mx] ; Mexico dial=425 busy=425/250,0/250 ring=425/1000,0/4000 congestion=425/250,0/250 callwaiting=425/200,0/600,425/200,0/10000 dialrecall=!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 record=1400/500,0/15000 info=950/330,0/30,1400/330,0/30,1800/330,0/1000 stutter=!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 [my] ; Malaysia dial=425 busy=425/500,0/500 ring=425/400,0/200 congestion=425/500,0/500 [nl] ; Netherlands dial=425 busy=425/500,0/500 ring=425/1000,0/4000 congestion=425/250,0/250 callwaiting=425/500,0/9500 dialrecall=425/500,0/50 record=1400/500,0/15000 info=950/330,1400/330,1800/330,0/1000 stutter=425/500,0/50 [no] ; Norway dial=425 busy=425/500,0/500 ring=425/1000,0/4000 congestion=425/200,0/200 callwaiting=425/200,0/600,425/200,0/10000 dialrecall=470/400,425/400 record=1400/400,0/15000 info=!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0 stutter=470/400,425/400 [nz] ; New Zealand dial=400 busy=400/250,0/250 ring=400+450/400,0/200,400+450/400,0/2000 congestion=400/375,0/375 callwaiting=!400/200,!0/3000,!400/200,!0/3000,!400/200,!0/3000,!400/200 dialrecall=!400/100!0/100,!400/100,!0/100,!400/100,!0/100,400 record=1400/425,0/15000 info=400/750,0/100,400/750,0/100,400/750,0/100,400/750,0/400 stutter=!400/100!0/100,!400/100,!0/100,!400/100,!0/100,!400/100!0/100,!400/100,!0/100,!400/100,!0/100,400 unobtainable=400/75,0/100,400/75,0/100,400/75,0/100,400/75,0/400 [ph] ; Philippines dial=425 busy=480+620/500,0/500 ring=425+480/1000,0/4000 congestion=480+620/250,0/250 callwaiting=440/300,0/10000 dialrecall=!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 record=1400/500,0/15000 info=!950/330,!1400/330,!1800/330,0 stutter=!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 [pl] ; Poland dial=425 busy=425/500,0/500 ring=425/1000,0/4000 congestion=425/500,0/500 callwaiting=425/150,0/150,425/150,0/4000 dialrecall=425/500,0/50 record=1400/500,0/15000 info=!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000 stutter=!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 [pt] ; Portugal dial=425 busy=425/500,0/500 ring=425/1000,0/5000 congestion=425/200,0/200 callwaiting=440/300,0/10000 dialrecall=425/1000,0/200 record=1400/500,0/15000 info=950/330,1400/330,1800/330,0/1000 stutter=!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 [ru] ; Russia / ex Soviet Union dial=425 busy=425/350,0/350 ring=425/800,0/3200 congestion=425/350,0/350 callwaiting=425/200,0/5000 dialrecall=!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 record=1400/500,0/15000info=!950/330,!1400/330,!1800/330,0 [se] ; Sweden dial=425 busy=425/250,0/250 ring=425/1000,0/5000 congestion=425/250,0/750 callwaiting=425/200,0/500,425/200,0/9100 dialrecall=!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 record=1400/500,0/15000 info=!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024, !950/332,!0/ 24,!1400/332,!0/24,!1800/332,!0/2024,!950 /332,!0/24,!1400/332,!0/24,!1800/332,0 stutter=!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 [sg] ; Singapore dial=425 ring=425*24/400,0/200,425*24/400,0/2000 busy=425/750,0/750 congestion=425/250,0/250 callwaiting=425*24/300,0/200,425*24/300,0/3200 stutter=!425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,425 info=950/330,1400/330,1800/330,0/1000 dialrecall=425*24/500,0/500,425/500,0/2500 record=1400/500,0/15000 nutone=425/2500,0/500 intrusion=425/250,0/2000 warning=425/624,0/4376 acceptance=425/125,0/125 holdinga=!425*24/500,!0/500 holdingb=!425/500,!0/2500 [th] ; Thailand dial=400*50 busy=400/500,0/500 ring=420/1000,0/5000 congestion=400/300,0/300 callwaiting=1000/400,10000/400,1000/400 dialrecall=400*50/400,0/100,400*50/400,0/100 record=1400/500,0/15000 info=950/330,1400/330,1800/330 stutter=!400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,400 [uk] ; United Kingdom dial=350+440 specdial=350+440/750,440/750 busy=400/375,0/375 congestion=400/400,0/350,400/225,0/525 speccongestion=400/200,1004/300 unobtainable=400 ring=400+450/400,0/200,400+450/400,0/2000 callwaiting=400/100,0/4000 speccallwaiting=400/250,0/250,400/250,0/250,400/250,0/5000 creditexpired=400/125,0/125 confirm=1400 switching=400/200,0/400,400/2000,0/400 info=950/330,0/15,1400/330,0/15,1800/330,0/1000 record=1400/500,0/60000 stutter=350+440/750,440/750 [us] ; United States / North America dial=350+440 busy=480+620/500,0/500 ring=440+480/2000,0/4000 congestion=480+620/250,0/250 callwaiting=440/300,0/10000 dialrecall=!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 record=1400/500,0/15000 info=!950/330,!1400/330,!1800/330,0 stutter=!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 [us-old] ; United States Circa 1950 / North America dial=600*120 busy=500*100/500,0/500 ring=420*40/2000,0/4000 congestion=500*100/250,0/250 callwaiting=440/300,0/10000 dialrecall=!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,600*120 record=1400/500,0/15000 info=!950/330,!1400/330,!1800/330,0 stutter=!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,600*120 [tw] ; Taiwan dial=350+440 busy=480+620/500,0/500 ring=440+480/1000,0/2000 congestion=480+620/250,0/250 callwaiting=350+440/250,0/250,350+440/250,0/3250 dialrecall=300/1500,0/500 record=1400/500,0/15000 info=!950/330,!1400/330,!1800/330,0 stutter=!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 [ve] ; Venezuela / South America dial=425 busy=425/500,0/500 ring=425/1000,0/4000 congestion=425/250,0/250 callwaiting=400+450/300,0/6000 dialrecall=425 record=1400/500,0/15000 info=!950/330,!1440/330,!1800/330,0/1000 [za] ; South Africa dial=400*33 ring=400*33/400,0/200,400*33/400,0/2000 callwaiting=400*33/250,0/250,400*33/250,0/250,400*33/250,0/250,400*33/250,0/250 congestion=400/250,0/250 busy=400/500,0/500 dialrecall=350+440 record=1400/500,0/10000 info=950/330,1400/330,1800/330,0/330 stutter=!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,400*33
For people interested in generating non-standard tones, you can also configure things to work like the (US version) too. Configuration is left as an exercise for the reader.
See also