You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1301 lines
53 KiB
1301 lines
53 KiB
+===================================================================+
|
|
| Media control commands |
|
|
+===================================================================+
|
|
|
|
+-------------------------------------------------------------------+
|
|
| noisesuppressor |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Noise Suppressor is used to activate or to deactivate suppression of ambient noise,
|
|
which can be used to remove noise from speech caused by fans, air cooling systems,
|
|
cars, trains, and other sources of ambient noises from speech.
|
|
|
|
Direction:
|
|
Applies to Rx path only.
|
|
In case of line interconnect, it can be activated for multiple parties.
|
|
|
|
Supported hardware:
|
|
Dialogic(R) Diva(R) 4PRI PCI, 2PRI PCI, 4PRI PCIe HS Media Board
|
|
Other Dialogic(R) Diva(R) Media Boards equipped with DSPs can use this
|
|
feature only together with RTP.
|
|
|
|
Syntax:
|
|
noisesuppressor,[yes|no]
|
|
|
|
Syntax example:
|
|
s,n,capicommand(noisesuppressor,yes)
|
|
s,n,capicommand(noisesuppressor,no)
|
|
|
|
IVR example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => _X.,1,Answer ; Answer the line
|
|
exten => _X.,n,Goto(s,1)
|
|
exten => s,1,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
|
|
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
|
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
|
exten => 1,1,capicommand(noisesuppressor,yes)
|
|
exten => 1,n,Goto(s,restart)
|
|
exten => 2,1,capicommand(noisesuppressor,no)
|
|
exten => 2,n,Goto(s,restart)
|
|
exten => 99,1,Echo
|
|
exten => i,1,Playback(invalid)
|
|
exten => i,n,Goto(s,restart)
|
|
exten => h,1,Hangup
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
PBX Example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[macro-capinoisesuppressor]
|
|
exten => s,1,capicommand(noisesuppressor,yes)
|
|
|
|
[isdn-in]
|
|
exten => 12345,1,Progress()
|
|
exten => 12345,n,Set(TIMEOUT(digit)=1) ; Set Digit Timeout to 5 seconds
|
|
exten => 12345,n,Set(TIMEOUT(response)=5) ; Set Response Timeout to 10 seconds
|
|
exten => 12345,n,Playback(demo-enterkeywords,noanswer,us)
|
|
exten => 12345,n,Answer
|
|
exten => 12345,n,Wait(2)
|
|
exten => 12345,n,capicommand(noisesuppressor,yes)
|
|
exten => 12345,n,Dial(DIALOGICDIVA/ISDN1/100,10,M(capinoisesuppressor))
|
|
exten => 12345,n,Hangup()
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
+-------------------------------------------------------------------+
|
|
| clamping |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Clamping is used to activate or to deactivate suppression
|
|
(removal from voice stream) of DTMF tones.
|
|
|
|
Direction:
|
|
Applies to Rx path only.
|
|
In case of line interconnect, it can be activated for multiple parties.
|
|
|
|
Supported hardware:
|
|
Requires one Dialogic(R) Diva(R) Media Board equipped with DSPs.
|
|
|
|
Syntax:
|
|
clamping,N
|
|
N - estimated duration of DTMF tones to be suppressed in ms
|
|
0 - deactivate clamping
|
|
1 ... 250 - activate clamping
|
|
|
|
Syntax example:
|
|
s,n,capicommand(clamping,100)
|
|
s,n,capicommand(clamping,0)
|
|
|
|
IVR example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => _X.,1,Answer ; Answer the line
|
|
exten => _X.,n,Goto(s,1)
|
|
exten => s,1,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
|
|
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
|
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
|
exten => 1,1,capicommand(clamping,100)
|
|
exten => 1,n,Goto(s,restart)
|
|
exten => 2,1,capicommand(clamping,0)
|
|
exten => 2,n,Goto(s,restart)
|
|
exten => 99,1,Echo
|
|
exten => i,1,Playback(invalid)
|
|
exten => i,n,Goto(s,restart)
|
|
exten => h,1,Hangup
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
PBX Example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[macro-capiclamping]
|
|
exten => s,1,capicommand(clamping,100)
|
|
|
|
[isdn-in]
|
|
exten => 12345,1,Progress()
|
|
exten => 12345,n,Set(TIMEOUT(digit)=1) ; Set Digit Timeout to 5 seconds
|
|
exten => 12345,n,Set(TIMEOUT(response)=5) ; Set Response Timeout to 10 seconds
|
|
exten => 12345,n,Playback(demo-enterkeywords,noanswer,us)
|
|
exten => 12345,n,Answer
|
|
exten => 12345,n,Wait(2)
|
|
exten => 12345,n,capicommand(clamping,100)
|
|
exten => 12345,n,Dial(DIALOGICDIVA/ISDN1/100,10,M(capiclamping))
|
|
exten => 12345,n,Hangup()
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
+-------------------------------------------------------------------+
|
|
| rxagc |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Used to activate or to deactivate Automatic Gain Control (AGC)
|
|
for Rx direction. AGC level is -6dBm.
|
|
|
|
Direction:
|
|
Applies to Rx path only.
|
|
In case of line interconnect, it can be activated for multiple parties.
|
|
|
|
Supported hardware:
|
|
Requires one Diva Media Board equipped with DSPs.
|
|
|
|
Syntax:
|
|
rxagc,[yes|no]
|
|
|
|
Syntax example:
|
|
s,n,capicommand(rxagc,yes)
|
|
s,n,capicommand(rxagc,no)
|
|
|
|
IVR example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => _X.,1,Answer ; Answer the line
|
|
exten => _X.,n,Goto(s,1)
|
|
exten => s,1,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
|
|
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
|
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
|
exten => 1,1,capicommand(rxagc,yes)
|
|
exten => 1,n,Goto(s,restart)
|
|
exten => 2,1,capicommand(rxagc,no)
|
|
exten => 2,n,Goto(s,restart)
|
|
exten => 99,1,Echo
|
|
exten => i,1,Playback(invalid)
|
|
exten => i,n,Goto(s,restart)
|
|
exten => h,1,Hangup
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
PBX Example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[macro-capirxagc]
|
|
exten => s,1,capicommand(rxagc,yes)
|
|
|
|
[isdn-in]
|
|
exten => 12345,1,Progress()
|
|
exten => 12345,n,Set(TIMEOUT(digit)=1) ; Set Digit Timeout to 5 seconds
|
|
exten => 12345,n,Set(TIMEOUT(response)=5) ; Set Response Timeout to 10 seconds
|
|
exten => 12345,n,Playback(demo-enterkeywords,noanswer,us)
|
|
exten => 12345,n,Answer
|
|
exten => 12345,n,Wait(2)
|
|
exten => 12345,n,capicommand(rxagc,yes)
|
|
exten => 12345,n,Dial(DIALOGICDIVA/ISDN1/100,10,M(capirxagc))
|
|
exten => 12345,n,Hangup()
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
+-------------------------------------------------------------------+
|
|
| txagc |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Used to activate or to deactivate Automatic Gain Control (AGC)
|
|
for Tx direction. AGC level is -6 dBm.
|
|
|
|
Path:
|
|
Applies to Tx path only. In case of line interconnect, it can be activated
|
|
for multiple parties.
|
|
|
|
Supported hardware:
|
|
Requires one Diva Media Board equipped with DSPs.
|
|
|
|
Syntax:
|
|
txagc,[yes|no]
|
|
|
|
Syntax example:
|
|
s,n,capicommand(txagc,yes)
|
|
s,n,capicommand(txagc,no)
|
|
|
|
IVR example:
|
|
See rxagc
|
|
|
|
PBX Example:
|
|
See rxagc
|
|
|
|
+-------------------------------------------------------------------+
|
|
| rxdgain |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Used to access Digital Gain Control for Rx direction.
|
|
Allows to set gain in the range from -127 dBm to +6 dBm.
|
|
|
|
Diection:
|
|
Applies to Rx path only. In case of line interconnect, it can be activated
|
|
for multiple parties.
|
|
|
|
Supported hardware:
|
|
Requires one Diva Media Board equipped with DSPs.
|
|
|
|
Syntax:
|
|
rxdgain,N
|
|
N - gain in dBm, float
|
|
-127 ... +6 - gain
|
|
-128 or less - infinite attenuation
|
|
|
|
Syntax example:
|
|
s,n,capicommand(rxdgain,5.5)
|
|
s,n,capicommand(rxdgain,-14.2)
|
|
|
|
IVR example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => _X.,1,Answer ; Answer the line
|
|
exten => _X.,n,Goto(s,1)
|
|
exten => s,1,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
|
|
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
|
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
|
exten => 1,1,capicommand(rxdgain,5.5)
|
|
exten => 1,n,Goto(s,restart)
|
|
exten => 2,1,capicommand(rxdgain,-70)
|
|
exten => 2,n,Goto(s,restart)
|
|
exten => 99,1,Echo
|
|
exten => i,1,Playback(invalid)
|
|
exten => i,n,Goto(s,restart)
|
|
exten => h,1,Hangup
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
+-------------------------------------------------------------------+
|
|
| incrxdgain |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Used to access Digital Gain Control for Rx direction.
|
|
Allows to change gain in the range from -127 dBm to +6 dBm
|
|
|
|
Diection:
|
|
Applies to Rx path only. In case of line interconnect, it can be activated
|
|
for multiple parties.
|
|
|
|
Supported hardware:
|
|
Requires one Diva Media Board equipped with DSPs.
|
|
|
|
incSyntax:
|
|
rxdgain,N
|
|
N - gain increment in dBm, float
|
|
|
|
Syntax example:
|
|
s,n,capicommand(incrxdgain,2.5) // add 2.5 dBm to actiall gain
|
|
s,n,capicommand(incrxdgain,-2.5) // substract 2.5 dBm from actual gain
|
|
|
|
IVR example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => _X.,1,Answer ; Answer the line
|
|
exten => _X.,n,Goto(s,1)
|
|
exten => s,1,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
|
|
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
|
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
|
exten => 1,1,capicommand(incrxdgain,2.5)
|
|
exten => 1,n,Goto(s,restart)
|
|
exten => 2,1,capicommand(incrxdgain,-2.5)
|
|
exten => 2,n,Goto(s,restart)
|
|
exten => 99,1,Echo
|
|
exten => i,1,Playback(invalid)
|
|
exten => i,n,Goto(s,restart)
|
|
exten => h,1,Hangup
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
+-------------------------------------------------------------------+
|
|
| txdgain |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Used to access Digital Gain Control for Tx direction.
|
|
Allows to set gain control in the range from -127 dBm to +6 dBm.
|
|
|
|
Diection:
|
|
Applies to Tx path only. In case of line interconnect, it can be activated
|
|
for multiple parties.
|
|
|
|
Supported hardware:
|
|
Requires one Diva Media Board equipped with DSPs.
|
|
|
|
Syntax:
|
|
txdgain,N
|
|
N - gain in dBm, float
|
|
-127 ... +6 - gain
|
|
-128 or less - infinite attenuation
|
|
|
|
Syntax example:
|
|
s,n,capicommand(txdgain,5.5)
|
|
s,n,capicommand(txdgain,-14.2)
|
|
|
|
IVR example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => _X.,1,Answer ; Answer the line
|
|
exten => _X.,n,Goto(s,1)
|
|
exten => s,1,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
|
|
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
|
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
|
exten => 1,1,capicommand(txdgain,5.5)
|
|
exten => 1,n,Goto(s,restart)
|
|
exten => 2,1,capicommand(txdgain,-70)
|
|
exten => 2,n,Goto(s,restart)
|
|
exten => 99,1,Echo
|
|
exten => i,1,Playback(invalid)
|
|
exten => i,n,Goto(s,restart)
|
|
exten => h,1,Hangup
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
+-------------------------------------------------------------------+
|
|
| inctxdgain |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Used to access Digital Gain Control for Tx direction.
|
|
Allows to change gain in the range from -127 dBm to +6 dBm
|
|
|
|
Diection:
|
|
Applies to Tx path only. In case of line interconnect, it can be activated
|
|
for multiple parties.
|
|
|
|
Supported hardware:
|
|
Requires one Diva Media Board equipped with DSPs.
|
|
|
|
incSyntax:
|
|
rxtgain,N
|
|
N - gain increment in dBm, float
|
|
|
|
Syntax example:
|
|
s,n,capicommand(inctxdgain,2.5) // add 2.5 dBm to actiall gain
|
|
s,n,capicommand(inctxdgain,-2.5) // substract 2.5 dBm from actual gain
|
|
|
|
IVR example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => _X.,1,Answer ; Answer the line
|
|
exten => _X.,n,Goto(s,1)
|
|
exten => s,1,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
|
|
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
|
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
|
exten => 1,1,capicommand(inctxdgain,2.5)
|
|
exten => 1,n,Goto(s,restart)
|
|
exten => 2,1,capicommand(inctxdgain,-2.5)
|
|
exten => 2,n,Goto(s,restart)
|
|
exten => 99,1,Echo
|
|
exten => i,1,Playback(invalid)
|
|
exten => i,n,Goto(s,restart)
|
|
exten => h,1,Hangup
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
+-------------------------------------------------------------------+
|
|
| pitchcontrol |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Used to set recording (Rx direction) and playback (Tx direction)
|
|
rate in the range between 1250 ... 51200 Hz.
|
|
|
|
Using pitch control, it is possible to play (record) a voice message faster
|
|
(rate > 8000 Hz) or slower (rate < 8000 Hz).
|
|
This is useful if the playback speed of voice mail messages needs to be decreased
|
|
to achieve better understanding or to increase playback speed to
|
|
rewind over a certain part of the voice mail message.
|
|
|
|
Diection:
|
|
Applies to Rx and to Tx path. Can be used only for playback and for
|
|
recording of voice data. Not available with line interconnect and RTP.
|
|
|
|
Supported hardware:
|
|
Requires one Diva Media Board equipped with DSPs.
|
|
|
|
Syntax:
|
|
pitchcontrol,RxN,TxN - set Rx and Tx rate to different values
|
|
pitchcontrol,N - set Rx and Tx rate to same value
|
|
pitchcontrol - deactivate rate control
|
|
|
|
RxN, TxN, N - rate in the range 1250 ... 51200 Hz.
|
|
|
|
Syntax example:
|
|
s,n,capicommand(pitchcontrol,8200,8100) ; Set Rx rate to 8200 Hz and Tx rate to 8100 Hz
|
|
s,n,capicommand(pitchcontrol,8400) ; Set Rx and Tx rate to 8400 Hz
|
|
|
|
IVR example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => _X.,1,Answer ; Answer the line
|
|
exten => _X.,n,Goto(s,1)
|
|
exten => s,1,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
|
|
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
|
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
|
exten => 1,1,capicommand(pitchcontrol,8200)
|
|
exten => 1,n,Goto(s,restart)
|
|
exten => 2,1,capicommand(pitchcontrol,8000)
|
|
exten => 2,n,Goto(s,restart)
|
|
exten => 99,1,Echo
|
|
exten => i,1,Playback(invalid)
|
|
exten => i,n,Goto(s,restart)
|
|
exten => h,1,Hangup
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
+-------------------------------------------------------------------+
|
|
| incpitchcontrol |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Used to change the recording (Rx direction) and playback (Tx direction)
|
|
rate in the range from 1250 ... 51200 Hz.
|
|
|
|
With pitch control it is possible to play (record) a voice message faster
|
|
(rate > 8000 Hz) or slower (rate < 8000 Hz).
|
|
This is useful if the playback speed of voice mail messages needs to be decreased
|
|
to achieve better understanding or to increase playback speed to
|
|
rewind over a certain part of the voice mail message.
|
|
|
|
Diection:
|
|
Applies to Rx and to Tx path. Can be used only for playback and for
|
|
recoring of voice data. Not available with line interconnect and RTP.
|
|
|
|
Supported hardware:
|
|
Requires one Diva Media Board equipped with DSPs.
|
|
|
|
Syntax:
|
|
incpitchcontrol,RxN,TxN - change Rx and Tx rate using different values
|
|
incpitchcontrol,N - change Rx and Tx rate using same value
|
|
|
|
RxN, TxN, N - rate change in Hz
|
|
|
|
Syntax example:
|
|
s,n,capicommand(incpitchcontrol,100) // Increase Rx and Tx rate by 100 Hz
|
|
s,n,capicommand(incpitchcontrol,-100) // Decrease Rx and Tx rate by 100 Hz
|
|
|
|
IVR example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => _X.,1,Answer ; Answer the line
|
|
exten => _X.,n,Goto(s,1)
|
|
exten => s,1,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
|
|
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
|
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
|
exten => 1,1,capicommand(incpitchcontrol,100)
|
|
exten => 1,n,Goto(s,restart)
|
|
exten => 2,1,capicommand(incpitchcontrol,100)
|
|
exten => 2,n,Goto(s,restart)
|
|
exten => 99,1,Echo
|
|
exten => i,1,Playback(invalid)
|
|
exten => i,n,Goto(s,restart)
|
|
exten => h,1,Hangup
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
+-------------------------------------------------------------------+
|
|
| mftonedetection |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Used to activate or to deactivate MF listen on B-channel data.
|
|
Detected MF tones are mapped to appropriate DTMF digits.
|
|
MF digits K1, K2, KP, S1, and ST are mapped to DTMF digits
|
|
A, B, C, D, and * respectively.
|
|
|
|
Direction:
|
|
Applies to Rx path only. In case of line interconnect, it can be activated
|
|
for multiple parties.
|
|
|
|
Supported hardware:
|
|
Requires one Diva Media Board equipped with DSPs.
|
|
|
|
Syntax:
|
|
mftonedetection,[yes|no]
|
|
|
|
Syntax example:
|
|
s,n,capicommand(mftonedetection,yes)
|
|
s,n,capicommand(mftonedetection,no)
|
|
|
|
IVR example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => _X.,1,Answer ; Answer the line
|
|
exten => _X.,n,Goto(s,1)
|
|
exten => s,1,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
|
|
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
|
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
|
exten => 1,1,capicommand(mftonedetection,yes)
|
|
exten => 1,n,Goto(s,restart)
|
|
exten => 2,1,capicommand(mftonedetection,no)
|
|
exten => 2,n,Goto(s,restart)
|
|
exten => 99,1,Echo
|
|
exten => i,1,Playback(invalid)
|
|
exten => i,n,Goto(s,restart)
|
|
exten => h,1,Hangup
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
+-------------------------------------------------------------------+
|
|
| pulsedetection |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Used to activate or to deactivate dial pulse detector.
|
|
Detected dialing pulses are mapped to appropriate DTMF digits.
|
|
|
|
Direction:
|
|
Applies to Rx path only. In case of line interconnect, it can be activated
|
|
for multiple parties.
|
|
|
|
Supported hardware:
|
|
Requires one Diva Media Board equipped with DSPs.
|
|
|
|
Syntax:
|
|
pulsedetection,[yes|no]
|
|
|
|
Syntax example:
|
|
s,n,capicommand(pulsedetection,yes)
|
|
s,n,capicommand(pulsedetection,no)
|
|
|
|
IVR example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => _X.,1,Answer ; Answer the line
|
|
exten => _X.,n,Goto(s,1)
|
|
exten => s,1,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
|
|
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
|
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
|
exten => 1,1,capicommand(pulsedetection,yes)
|
|
exten => 1,n,Goto(s,restart)
|
|
exten => 2,1,capicommand(pulsedetection,no)
|
|
exten => 2,n,Goto(s,restart)
|
|
exten => 99,1,Echo
|
|
exten => i,1,Playback(invalid)
|
|
exten => i,n,Goto(s,restart)
|
|
exten => h,1,Hangup
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
+-------------------------------------------------------------------+
|
|
| sendtone and stoptone |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Send tone (sendtone) sending of the next tone while one tone is already
|
|
active will automatically replace the tone to be transmitted with the
|
|
new one. Sending of the DTMF digits will automatically stop tone transmission.
|
|
Stop transmission of the tone (stoptone).
|
|
|
|
Path:
|
|
Applies to Tx path only.
|
|
|
|
Supported hardware:
|
|
Requires one Diva Media Board equipped with DSPs.
|
|
|
|
Syntax:
|
|
sendtone,N
|
|
stoptone
|
|
|
|
N - tone to be sent
|
|
0x82 - Dial tone
|
|
0x83 - PABX internal dial tone
|
|
0x84 - Special dial tone (stutter dial tone
|
|
0x85 - Second dial tone
|
|
0x86 - Ringing tone
|
|
0x87 - Special ringing tone
|
|
0x88 - Busy tone
|
|
0x89 - Congestion tone (reorder tone
|
|
0x8A - Special information tone
|
|
0x8B - Comfort tone
|
|
0x8C - Hold tone
|
|
0x8D - Record tone
|
|
0x8E - Caller waiting tone
|
|
0x8F - Call waiting tone
|
|
0x90 - Pay tone
|
|
0x91 - Positive indication tone
|
|
0x92 - Negative indication tone
|
|
0x93 - Warning tone
|
|
0x94 - Intrusion tone
|
|
0x95 - Calling card service tone
|
|
0x96 - Payphone recognition tone
|
|
0x97 - CPE alerting signal
|
|
0x98 - Off hook warning tone
|
|
0xA0 - Special information tone 0
|
|
0xA1 - Special information tone 1
|
|
0xA2 - Special information tone 2
|
|
0xA3 - Special information tone 3
|
|
0xA4 - Special information tone (operator intercept)
|
|
0xA5 - Special information tone (vacant circuit)
|
|
0xA6 - Special information tone (reorder)
|
|
0xA7 - Special information tone (no circuit found)
|
|
0xBF - Intercept tone
|
|
0xC0 - Modem calling tone
|
|
0xC1 - FAX calling tone
|
|
0xC2 - Answer tone
|
|
0xC3 - Answer tone with phase reversals
|
|
0xC4 - ANSam
|
|
0xC5 - ANSam with phase reversals
|
|
0xC6 - 2225 Hz (Bell 103 answer mode)
|
|
0xC7 - FAX flags
|
|
0xC8 - G2 FAX group ID
|
|
0xCA - Answering Machine Tone (390 Hz)
|
|
0xCB - Tone Alerting Signal (for Caller ID in PSTN)
|
|
|
|
Syntax example:
|
|
s,n,capicommand(sendtone,0x83) ; Send PABX internal dial tone
|
|
s,n,capicommand(stoptone) ; stop tone transmission
|
|
|
|
IVR example
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => _X.,1,Answer ; Answer the line
|
|
exten => _X.,n,Goto(s,1)
|
|
exten => s,1,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
|
|
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
|
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
|
exten => 1,1,capicommand(sendtone,0x83)
|
|
exten => 1,n,Goto(s,restart)
|
|
exten => 2,1,capicommand(stoptone)
|
|
exten => 2,n,Goto(s,restart)
|
|
exten => 99,1,Echo
|
|
exten => i,1,Playback(invalid)
|
|
exten => i,n,Goto(s,restart)
|
|
exten => h,1,Hangup
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
+-------------------------------------------------------------------+
|
|
| starttonedetection and stoptonedetection |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Start tone detection (starttonedetection)
|
|
Stop tone detection (stoptonedetection)
|
|
|
|
Direction:
|
|
Applies to Rx path only. In case of line interconnect, it can be activated
|
|
for multiple parties.
|
|
|
|
Supported hardware:
|
|
Requires one Diva Media Board equipped with DSPs.
|
|
Not available if RTP is active.
|
|
|
|
Syntax:
|
|
starttonedetection,N
|
|
stoptonedetection
|
|
|
|
N - Extension number to be used in case a tone is detected.
|
|
The reception of appropriate DTMF digits will be simulated after the
|
|
detection of the tone. At same time, the variable CAPIDETECTEDTONE will be set
|
|
to identify the detected tone in decimal format and the variable
|
|
CAPIDETECTEDTONEVISUAL will be set to a user friendly name of the detected tone.
|
|
|
|
Tone identifier:
|
|
0x82 - Dial tone detected
|
|
0x83 - PABX internal dial tone detected
|
|
0x84 - Special dial tone (stutter dial tone) detected
|
|
0x85 - Second dial tone detected
|
|
0x86 - Ringing tone detected
|
|
0x87 - Special ringing tone detected
|
|
0x88 - Busy tone detected
|
|
0x89 - Congestion tone (reorder tone) detected
|
|
0x8A - Special information tone detected
|
|
0x8B - Comfort tone detected
|
|
0x8C - Hold tone detected
|
|
0x8D - Record tone detected
|
|
0x8E - Caller waiting tone detected
|
|
0x8F - Call waiting tone detected
|
|
0x90 - Pay tone detected
|
|
0x91 - Positive indication tone detected
|
|
0x92 - Negative indication tone detected
|
|
0x93 - Warning tone detected
|
|
0x94 - Intrusion tone detected
|
|
0x95 - Calling card service tone detected
|
|
0x96 - Payphone recognition tone detected
|
|
0x97 - CPE alerting signal detected
|
|
0x98 - Off hook warning tone detected
|
|
0xA0 - Special information tone 0
|
|
0xA1 - Special information tone 1
|
|
0xA2 - Special information tone 2
|
|
0xA3 - Special information tone 3
|
|
0xA4 - Special information tone (operator intercept)
|
|
0xA5 - Special information tone (vacant circuit)
|
|
0xA6 - Special information tone (reorder)
|
|
0xA7 - Special information tone (no circuit found)
|
|
0xBF - Intercept tone detected
|
|
0xC0 - Modem calling tone detected
|
|
0xC1 - FAX calling tone detected
|
|
0xC2 - Answer tone detected
|
|
0xC3 - Answer tone with phase reversals detected
|
|
0xC4 - ANSam detected
|
|
0xC5 - ANSam with phase reversals detected
|
|
0xC6 - 2225 Hz (Bell 103 answer mode) detected
|
|
0xC7 - FAX flags detected
|
|
0xC8 - G2 FAX group ID detected
|
|
0xC9 - Human speech detected
|
|
0xCA - Answering Machine Tone (390 Hz) detected
|
|
0xCB - Tone Alerting Signal detected (for Caller ID in PSTN)
|
|
|
|
Syntax example:
|
|
s,n,capicommand(starttonedetection,98) ; Change to extension 98 after detection of tone
|
|
s,n,capicommand(stoptonedetection) ; Disable detection of tones
|
|
|
|
IVR example:
|
|
|
|
In this example extension 98 is used to process detected tones.
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => _X.,1,Answer ; Answer the line
|
|
exten => _X.,n,Goto(s,1)
|
|
exten => s,1,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
|
|
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
|
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
|
|
|
exten => 1,1,Set(TIMEOUT(digit)=1)
|
|
exten => 1,n,Set(TIMEOUT(response)=5)
|
|
exten => 1,n,capicommand(starttonedetection,98) ; Change to 98 once tone is detected
|
|
exten => 1,n,Goto(s,restart)
|
|
|
|
; Continue after detection of the tone
|
|
exten => 98,1,capicommand(stoptonedetection) ; Stop tone detection
|
|
exten => 98,n,Set(TESTTONE=${CAPIDETECTEDTONE}) ; Tone identifier
|
|
exten => 98,n,Set(TESTTONEVISUAL=${CAPIDETECTEDTONEVISUAL}) ; User friendly name
|
|
exten => 98,n,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
|
|
exten => 98,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
|
exten => 98,n,Playback(demo-echodone) ; Let them know it's over
|
|
exten => 98,n,Goto(s,restart)
|
|
exten => 99,1,Echo
|
|
exten => i,1,Playback(invalid)
|
|
exten => i,n,Goto(s,restart)
|
|
exten => h,1,Hangup
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
+-------------------------------------------------------------------+
|
|
| vc |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
While a voice message is played back, it is useful to be able to apply
|
|
media control commands to the voice stream without interrupting the playback
|
|
of the voice stream.
|
|
The same is true for conference and for connection between two parties.
|
|
|
|
The "vc" command allows to provide this functionality. With this command
|
|
it is possible to bind arbitrary chan_capi commands to sequences of
|
|
events (DTMF digits, ...). Once the events are detected, the appropriate command
|
|
is executed without interrupting the voice stream.
|
|
"vc" allows to create a menu that is executed in the background and allows to
|
|
control the voice stream by activation or deactivation of AGC, noise suppression,
|
|
control the level of the signal, and playback speed.
|
|
"vc" allows to use any command supported by the channel driver, but please note
|
|
that commands are not executed in the context of the dial plan. The commands
|
|
are executed using the context of the detected events parallel to the dialplan and
|
|
independent from the dialplan.
|
|
|
|
Syntax:
|
|
vc,command,key,param,param1,...,paranN
|
|
Add to menu: on detection of key execute command using parameters param1,...,paramN
|
|
|
|
vc,command,key
|
|
Add to menu: on detection of key execute command without parameters
|
|
|
|
vc,command
|
|
Remove all instances of command from menu
|
|
|
|
vc
|
|
Cleanup menu
|
|
|
|
In case one command will use a key that is already in use, then a new command will overwrite
|
|
the existing command:
|
|
exten => s,n,capicommand(vc,txagc,3,yes)
|
|
exten => s,n,capicommand(vc,inctxdgain,3,1.5)
|
|
|
|
is equivalent to:
|
|
|
|
exten => s,n,capicommand(vc,inctxdgain,3,1.5)
|
|
|
|
It is better to use only one digit as key for commands in menu if using the menu for IVR and
|
|
voice mailbox. This provides short response time.
|
|
|
|
In case the menu is used for conference or for connection between two parties, it may be useful to use
|
|
two or three digits for the key. This will prevent an activation by accidentally pressing a key.
|
|
|
|
Syntax example:
|
|
exten => s,n,capicommand(vc,inctxdgain,5,1.5) ; Execute inctxdgain,1.5 if received DTMF digit 5
|
|
exten => s,n,capicommand(vc,txagc,3,yes) ; Execute txagc,yes if received DTMF digit 3
|
|
|
|
IVR Example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => _X.,1,Answer
|
|
exten => _X.,n,Goto(s,1)
|
|
exten => s,1,Wait(1)
|
|
exten => s,n,capicommand(vc,sendtone,1,0x82)
|
|
exten => s,n,capicommand(vc,stoptone,2)
|
|
exten => s,n,capicommand(vc,txagc,3,yes)
|
|
exten => s,n,capicommand(vc,txagc,4,no)
|
|
exten => s,n,capicommand(vc,inctxdgain,5,1.5)
|
|
exten => s,n,capicommand(vc,inctxdgain,7,-2.5)
|
|
exten => s,n,capicommand(vc,incpitchcontrol,8,0,100)
|
|
exten => s,n,capicommand(vc,incpitchcontrol,9,0,-400)
|
|
exten => s,n(restart),Playback(demo-instruct)
|
|
exten => s,n,Goto(s,restart)
|
|
exten => s,n,Hangup
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
+-------------------------------------------------------------------+
|
|
| chat (MeetMe/Conference) |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Used to enter (create) chat (conference room). A new conference room is created
|
|
if necessary.
|
|
|
|
There are three types of conference members:
|
|
Regular users
|
|
Operators
|
|
Listeners
|
|
|
|
Regular users can receive the voice stream from the conference and send the voice stream to the conference.
|
|
The outgoing (from user to conference) voice stream from regular users can be muted (deactivated)
|
|
and unmuted (activated) if necessary by 'chat_mute' command.
|
|
|
|
Operators can receive the voice stream from the conference and send the voice stream to the conference.
|
|
The outgoing (from user to conference) voice stream from operators cannot be muted (deactivated)
|
|
by 'chat_mute' command.
|
|
|
|
Listeners can only receive the voice stream from the conference.
|
|
The outgoing (from user to conference) voice stream is muted (decativated) and cannot be unmuted (activated)
|
|
by the 'chat_mute' command.
|
|
|
|
|
|
Direction:
|
|
Creates one Any-to-Any conference room. Conference AGC (evaluation of active talker) receives active as
|
|
soon as more then two members are added to the conference.
|
|
|
|
Supported hardware:
|
|
Diva
|
|
|
|
Syntax:
|
|
capicommand(chat,<roomname>,<options>,controller)
|
|
roomname - conference room name
|
|
options
|
|
m - The first caller will get music-on-hold until the second caller arrives
|
|
h<sec> - Hangup after <sec> seconds if caller is alone in conference.
|
|
l - The caller is listener (passive) conference member and cannot be unmuted by 'chat_mute' command
|
|
o - The caller is conference operator and cannot be muted by 'chat_mute' command
|
|
controller - CAPI controller
|
|
|
|
Syntax example:
|
|
exten => s,n,capicommand(chat,test,m,1)
|
|
exten => s,n,capicommand(chat,test,m,1,3)
|
|
exten => s,n,capicommand(chat,test,m,1-4)
|
|
exten => s,n,capicommand(chat,test,m,1-4,7)
|
|
exten => s,n,capicommand(chat,test,m,1-4,7-10)
|
|
exten => s,n,capicommand(chat,test,mh300,1-4)
|
|
|
|
IVR example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => _X.,1,Answer ; Answer the line
|
|
exten => _X.,n,Goto(s,1)
|
|
exten => s,1,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
|
|
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
|
exten => s,n,WaitExten ; Wait for an extension to be dialed, use to select conference room
|
|
|
|
; You can create macro to set up vc menu
|
|
exten => 1,1,capicommand(clamping,100) ; Activate suppression of DTMF tones
|
|
exten => 1,n,capicommand(vc,incrxdgain,0,1.5) ; Install voice command menu for volume control, '0' to increase volume
|
|
exten => 1,n,capicommand(vc,incrxdgain,1,-1.5) ; Install voice command menu for volume control, '1' to decrease volume
|
|
exten => 1,n,capicommand(vc,txdgain,2,-128) ; Install voice command menu for volume control, '2' to mute tx path
|
|
exten => 1,n,capicommand(vc,txdgain,3,0) ; Install voice command menu for volume control, '3' to activate tx path
|
|
exten => 1,n,capicommand(chat,test1,m,1-4) ; Create/enter conference room 'test1'
|
|
|
|
exten => 2,1,capicommand(clamping,100) ; Activate suppression of DTMF tones
|
|
exten => 2,n,capicommand(txdgain,-128) ; Deactivate tx path
|
|
exten => 2,n,capicommand(vc,incrxdgain,0,1.5) ; Install voice command menu for volume control, '0' to increase volume
|
|
exten => 2,n,capicommand(vc,incrxdgain,1,-1.5) ; Install voice command menu for volume control, '1' to decrease volume
|
|
exten => 2,n,capicommand(vc,txdgain,2,-128) ; Install voice command menu for volume control, '2' to mute tx path
|
|
exten => 2,n,capicommand(vc,txdgain,3,0) ; Install voice command menu for volume control, '3' to activate tx path
|
|
exten => 2,n,capicommand(chat,test1,m,1-4) ; Create/enter conference room 'test1
|
|
exten => 2,n,capicommand(chat,test2,m,1-4) ; Create/enter conference room 'test2'
|
|
|
|
exten => i,1,Playback(invalid)
|
|
exten => i,n,Goto(s,restart)
|
|
exten => h,1,Hangup
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
+-------------------------------------------------------------------+
|
|
| IP Clear Channel fax and chat (MeetMe/Conference) |
|
|
| with access to DSP resources |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Used to assign DSP resources to connected IP users.
|
|
Assigned DSP resources can be used for:
|
|
Transmission of Clear Channel fax with up to 33600Bps (V.34), please read 'sendfax' in README.Diva.fax for details.
|
|
Reception of Clear Channel fax with up to 33600Bps (V.34), please read 'receivefax' in README.Diva.fax for details.
|
|
Create conference member with media processing capabilities.
|
|
|
|
If the conference member is connected to the IP network using 'chat' chan_capi command,
|
|
then this peer cannot allocate and use the DSP resources required for media processing.
|
|
This results in processing of IP partipiants as simple conferencing member without
|
|
any media processing capabilities except line interconnect (conferencing) and
|
|
conferencing AGC (active talker evaluation).
|
|
With the 'resource' chan_capi command it is possible to assign DSP resources to
|
|
the IP network connection before proceeding with 'chat' chan_capi command. This
|
|
allows for using the provided DSP resources for media processing for the connected IP
|
|
network conference members.
|
|
|
|
There are three types of conference members:
|
|
Regular users
|
|
Operators
|
|
Listeners
|
|
|
|
Regular users can receive voice streams from the conference and send voice streams to the conference.
|
|
The outgoing (from user to conference) voice stream from regular users can be muted (deactivated)
|
|
and unmuted (activated) if necessary by 'chat_mute' command.
|
|
|
|
Operators can receive voice streams from the conference and send voice streams to the conference.
|
|
The outgoing (from user to conference) voice stream from operators cannot be muted (deactivated)
|
|
by 'chat_mute' command.
|
|
|
|
Listeners can only receive the voice stream from the conference.
|
|
The outgoing (from user to conference) voice stream is muted (decativated) and cannot be unmuted (activated)
|
|
by 'chat_mute' command.
|
|
|
|
|
|
Note:
|
|
Certain problems may occur if processing sent in-band DTMF events for
|
|
IP connections.
|
|
chan_diva can use sent in-band DTMF events to control media
|
|
processing (chan_capi 'vc' command). This works without problems for
|
|
E.1/T.1/S0/Analog connections. But in case of IP connections, the media
|
|
stream is processed by the gateway or is originated by the IP device.
|
|
Most of the gateways will remove in-band DTMF events from the media stream and
|
|
forward detected DTMF events as RTP payloads. IP devices will not use
|
|
in-band DTMF signaling and send DTMF events as RTP payloads.
|
|
In both cases, DTMF events are not sent in-band and processed by signaling
|
|
before reaching the chan_capi.
|
|
The solution is to configure gateways and IP devices to send DTMF events
|
|
in-band in addition to sending them as RTP payloads or use in-band MF signaling.
|
|
|
|
Supported hardware:
|
|
Assign DSP resources to connected IP network conference members. This feature is available
|
|
only for Diva hardware equipped with DSPs.
|
|
|
|
For Diva 2PRI PCI, Diva 4PRI PCI, Diva 1PRI PCIe HS, Diva 2PRI PCIe HS, and Diva 4PRI PCIe HS no
|
|
restrictions apply for this feature and it is possible to access N x 30 DSP resources
|
|
(N - amount of interfaces, 1 - 1PRI, 2 - 2PRI, 4 - 4PRI) in addition to used for E.1/T.1
|
|
DSP resources.
|
|
|
|
For Diva PRI Rev.3 PCI and Diva PRI Rev.3 PCIe, it is possible to reserve two DSPs for processing
|
|
of E.1/T.1 without media processing features and share remaining DSPs between E.1/T.1 and IP
|
|
for connections with media processing features.
|
|
Using hardware with 30 DSPs and E.1 it is possible to create:
|
|
From: 2 x E.1 without media processing + 28 x E.1 with media processing
|
|
To: 30 x E.1 without media processing + 28 x IP with media processing
|
|
Using hardware with 30 DSPs and T.1 this is possible to create:
|
|
From: 23 x T.1 with media processing + 7 x IP with media processing
|
|
To: 23 x T.1 without media processing + 28 x IP with media processing
|
|
|
|
For Diva BRI-2M Rev.2 PCI, Diva BRI-2M PCIe, Diva 4BRI Rev.2 PCI and for Diva 4BRI PCIe
|
|
it is not possible to reserve DSPs for processing of ISDN connections and to share
|
|
DSPs between ISDN and IP connection. If DSP resources are assigned to connected
|
|
IP conference members, then the appropriate DSP resources receive not available
|
|
for processing of ISDN connections. As result ISDN connections cannot be processed.
|
|
To resolve this problem please use the Diva configuration to change the configuration
|
|
of Diva board to resource board mode. In resource board mode, the ISDN interface is deactivated
|
|
and all available DSP resources (two DSPs for Diva BRI-2M and eight DSPs for Diva 4BRI)
|
|
can be used for connected IP conference members (two members for Diva BRI-2M and
|
|
eight members for Diva 4BRI).
|
|
|
|
|
|
Syntax:
|
|
capicommand(ressource,controller[,codeclist])
|
|
controller - CAPI controller
|
|
codeclist - separated by '+' character list of supported codecs, optional
|
|
codec oder codec1+codec2+...+codecN
|
|
|
|
Syntax example:
|
|
exten => s,n,capicommand(resource,1)
|
|
exten => s,n,capicommand(resource,1,3)
|
|
exten => s,n,capicommand(resource,1-4)
|
|
exten => s,n,capicommand(resource,1-4,7)
|
|
exten => s,n,capicommand(resource,1-4,7-10)
|
|
exten => s,n,capicommand(resource,1-4,7-10,gsm)
|
|
exten => s,n,capicommand(resource,1-4,7-10,alaw+ulaw+gsm+g722)
|
|
|
|
IVR example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => _X.,1,Answer ; Answer the line
|
|
exten => _X.,n,Goto(s,1)
|
|
exten => s,1,capicommand(resource,1-4) ; Create DSP resource on CAPI controllers 1-4 for IP members,
|
|
; ignore command for E.1/T.1/S0/POTS members
|
|
exten => s,n,capicommand(clamping,100) ; Activate suppression of DTMF tones
|
|
exten => s,n,capicommand(rxagc,yes) ; Activate Rx AGC
|
|
exten => s,n,capicommand(noisesuppressor,yes) ; Activate suppression of ambient noises
|
|
exten => s,n,capicommand(vc,incrxdgain,0,1.5) ; Install voice command menu for volume control, '0' to increase volume
|
|
exten => s,n,capicommand(vc,incrxdgain,1,-1.5) ; Install voice command menu for volume control, '1' to decrease volume
|
|
exten => s,n,capicommand(vc,txdgain,2,-128) ; Install voice command menu for volume control, '2' to mute tx path
|
|
exten => s,n,capicommand(vc,txdgain,3,0) ; Install voice command menu for volume control, '3' to activate tx path
|
|
exten => s,n,capicommand(chat,test1,m,1-4) ; Craete/enter conference toom 'test1', controller field is ignored if
|
|
; media processing resource is assigned by 'resource' command or for
|
|
; E.1/T.1/S0/POTS members
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
+-------------------------------------------------------------------+
|
|
| chat_mute (Manage conference) |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Used to manage chat (conference room). There are three types of conference members:
|
|
Regular users
|
|
Operators
|
|
Listeners
|
|
|
|
Regular users can receive the voice stream from the conference and send the voice stream to the conference.
|
|
The outgoing (from user to conference) voice stream from regular users can be muted (deactivated)
|
|
and unmuted (activated) if necessary by 'chat_mute' command.
|
|
|
|
Operators can receive the voice stream from the conference and send the voice stream to the conference.
|
|
The outgoing (from user to conference) voice stream from operators cannot be muted (deactivated)
|
|
by 'chat_mute' command.
|
|
|
|
Listeners can only receive the voice stream from the conference.
|
|
The outgoing (from user to conference) voice stream is muted (decativated) and cannot be unmuted (activated)
|
|
by 'chat_mute' command.
|
|
|
|
'chat_mute' command allows to manage conference switching of regular users between active (voice stream from
|
|
user to conference is active and used in conference) and passive (voice stream from user to conference
|
|
is deactivated and not used in conference) mode. 'chat_mute' command applies to regular users only.
|
|
The state of operators and listeners is not changed by this commmand. Independent from changes to this
|
|
command state, conference operators will remain active members and listeners will remain passive members
|
|
of the conference.
|
|
|
|
Direction:
|
|
Used to control (deactivate and activate) the voice stream from regular users to the conference.
|
|
|
|
Note:
|
|
The voice stream of regular users is active by default. If the conference mode was changed to half duplex
|
|
('chat_mute,yes'), then new regular users are created with a deactivated voice stream until the conference
|
|
mode is changed back to full duplex ('chat_mute,no')
|
|
|
|
Supported hardware:
|
|
Diva
|
|
|
|
Syntax:
|
|
capicommand(chat_mute,<action>[,<roomname>])
|
|
action - mandatory
|
|
yes - Change conference mode to half duplex, deactivate voice stream from regular
|
|
users to conference.
|
|
no - Change conference mode back to full duplex, activate voice stream from regular
|
|
users to conference.
|
|
roomname - Conference room name. This parameter is necessary if a caller is not a member of the conference.
|
|
It allows the control of the conference by one user, who not member of conference. Using
|
|
this parameter, one user can control multiple conferences. This allows to implement the
|
|
functionality of a common conference operator.
|
|
|
|
Syntax example:
|
|
exten => s,n,capicommand(chat_mute,yes)
|
|
exten => s,n,capicommand(char_mute,no)
|
|
exten => s,n,capicommand(chat_mute,yes,test_room)
|
|
exten => s,n,capicommand(char_mute,no,test_room)
|
|
|
|
Conference example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => 1291,1,Answer ; Accept call
|
|
exten => 1291,n,capicommand(resource,1-4) ; assign resource PLCI if call from IP
|
|
exten => 1291,n,capicommand(clamping,200) ; Activate DTMF suppression
|
|
exten => 1291,n,capicommand(vc,chat_mute,0,yes) ; Voice command, key 0 - change to half duplex mode
|
|
exten => 1291,n,capicommand(vc,chat_mute,1,no) ; Voice command, key 0 - change to full duplex mode
|
|
exten => 1291,n,capicommand(chat,test_chat,mo,1-4) ; Add to conference as operator
|
|
exten => 1291,n,Hangup()
|
|
|
|
exten => 1292,1,Answer ; Accept call
|
|
exten => 1292,n,capicommand(resource,1-4) ; Assign resource PLCI if call from IP
|
|
exten => 1292,n,capicommand(clamping,200) ; Activate DTMF suppression
|
|
exten => 1292,n,capicommand(chat,test_chat,m,1-4) ; Add to conference as regular user
|
|
exten => 1292,n,Hangup()
|
|
|
|
exten => 1293,1,Answer ; Accept call
|
|
exten => 1293,n,capicommand(resource,1-4) ; Assign resource PLCI if call from IP
|
|
exten => 1293,n,capicommand(clamping,200) ; Activate DTMF suppression
|
|
exten => 1293,n,capicommand(chat,test_chat,ml,1-4) ; Add to conference as listener
|
|
exten => 1293,n,Hangup()
|
|
|
|
exten => _X.,1,Answer
|
|
exten => _X.,n,Goto(s,1)
|
|
exten => s,1,Wait(1)
|
|
exten => s,n(restart),Playback(demo-instruct)
|
|
exten => s,n,Goto(s,restart)
|
|
exten => s,n,Hangup
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
+-------------------------------------------------------------------+
|
|
| chat_play (play message to Conference) |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Used to play voice message to conference. Optionally music on hold is played to caller
|
|
while message is played to conference.
|
|
|
|
Direction:
|
|
Message is played to all members of conference
|
|
|
|
Supported hardware:
|
|
Diva
|
|
|
|
Syntax:
|
|
capicommand(chat_play,<roomname>,<options>,<filename>,controller)
|
|
roomname - conference room name
|
|
options
|
|
m - The caller will get music-on-hold while message is played
|
|
s - The caller will hear the same message that is played
|
|
filename - Voice message file name. Should be in aLaw (uLaw) format.
|
|
controller - CAPI controller
|
|
|
|
Syntax example:
|
|
exten => s,n,capicommand(chat,test,m,/tmp/file.alaw,1)
|
|
exten => s,n,capicommand(chat,test,,/tmp/file.alaw,1-4,7-10)
|
|
|
|
IVR example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => _X.,1,Answer ; Answer the line
|
|
exten => _X.,n,Goto(s,1)
|
|
exten => s,1,capicommand(clamping,100) ; Activate suppression of DTMF tones
|
|
exten => s,n,Playback(record-name) ; Ask for name
|
|
exten => s,n,capicommand(rxagc,yes) ; Activate Rx AGC
|
|
exten => s,n,Record(/tmp/${UNIQUEID}-info:alaw) ; Record message
|
|
exten => s,n,capicommand(rxagc,no) ; Deactivate Rx AGC
|
|
exten => s,n,capicommand(chat_play,test,m,/tmp/${UNIQUEID}-info.alaw,1-4) ; Play message to conference,
|
|
; play music on hold to caller
|
|
exten => s,n,capicommand(chat,test,m,1-4) ; Create/enter conference room 'test'
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
+-------------------------------------------------------------------+
|
|
| chat_command (Command) |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Used to send command to conference.
|
|
|
|
Supported hardware:
|
|
Diva
|
|
|
|
Syntax:
|
|
capicommand(chat_command,<options>,<roomname>)
|
|
options - mandatory
|
|
r - Remove newest user from conference.
|
|
Command does not apply to calling member and be used by operators only.
|
|
l - Remove all listeners from conference.
|
|
Command does not apply to calling member and be used by operators only.
|
|
o - Remove all operators from conference.
|
|
Command does not apply to calling member and be used by operators only.
|
|
a - Remove all users from conference.
|
|
Command does not apply to calling member and be used by operators only.
|
|
roomname - optional, room caller assigned to is used if not present
|
|
|
|
Syntax example:
|
|
exten => s,n,capicommand(chat_command,r)
|
|
exten => s,n,capicommand(chat_command,lo,test)
|
|
exten => s,n,capicommand(chat_command,a,test)
|
|
|
|
Conference example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => _X.,1,Answer
|
|
exten => _X.,n,Authenticate(12345)
|
|
exten => _X.,n,Playback(vm-rec-name)
|
|
exten => _X.,n,Record(/tmp/name${UNIQUEID}.alaw,5,15) ; Record name
|
|
exten => _X.,n,capicommand(chat_play,c1,,/tmp/name${UNIQUEID}.alaw,1-4) ; Play name to conference
|
|
exten => _X.,n,capicommand(resource,1-4) ; Create resource PLCI if call from IP
|
|
exten => _X.,n,capicommand(clamping,200) ; Activate suppression of DTMF codes
|
|
exten => _X.,n,capicommand(vc,chat_mute,1,yes) ; Voice command, key 1 - mute all members except operators
|
|
exten => _X.,n,capicommand(vc,chat_mute,2,no) ; Voice command, key 2 - unmute all members except operators
|
|
exten => _X.,n,capicommand(vc,chat_command,0,a,c1) ; Voice command, key 0 - remove all members from conference
|
|
exten => _X.,n,capicommand(vc,noisesuppressor,3,yes) ; Voice command, key 3 - turn noise suppression on
|
|
exten => _X.,n,capicommand(vc,noisesuppressor,4,no) ; Voice command, key 4 - turn noise suppression off
|
|
exten => _X.,n,capicommand(chat,c1,mo,1-4) ; Add caller to conference as operator
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
+-------------------------------------------------------------------+
|
|
| echocancel |
|
|
+-------------------------------------------------------------------+
|
|
|
|
Description:
|
|
Used to activate or to deactivate echo cancellation in accordance with G.168.
|
|
The vast majority of the public telephone system local loop wiring is done using
|
|
two-wire connections whereby the same pair of wires carries voice signals in both
|
|
directions. In the telephone company's central office or in an office PBX,
|
|
a two-to-four wire conversion is done using a hybrid circuit. Hybrid circuits do
|
|
not perform perfect impedance matches. The imperfection results in echo. The echo
|
|
canceller's goal is to detect and remove echo as quickly and effectively, thereby
|
|
minimizing any loss in voice quality due to the echo. The echo canceller must
|
|
perform this function under all conditions including double-talk (when both parties
|
|
are speaking at the same time) and in the presence of background noise. Furthermore,
|
|
the echo canceller must not cause detriment to signaling tones (DTMF etc.) or fax and
|
|
modem transmissions.
|
|
|
|
Diva supports echo cancellation (in accordance G.168 with NLP) with tail length up to 256 ms.
|
|
256 ms tail length is required to ensure the operation in the environments where the signal
|
|
is carried over the packet network. This is not always the case at customer site and can be done
|
|
by the transit network, wich does not provide own echo cancellation capabilities.
|
|
|
|
'echocancelnlp' configuration parameter (capi.conf) is used to activate (deactivate) NLP
|
|
(Non Linear Processor which removes the residual echo at the output of the echo cancellation unit).
|
|
You can use Diva chan_capi configuration to change this capi.conf configuration parameter.
|
|
|
|
The Diva software automatically deactivates echo cancellation upon the detection of fax or modem transmission.
|
|
|
|
Direction:
|
|
Aplies to TDM interface (E.1/T.1/S0) only
|
|
|
|
Supported hardware:
|
|
Diva Media Boards equipped with DSPs.
|
|
|
|
Syntax:
|
|
echocancel,[yes|no]
|
|
|
|
Syntax example:
|
|
s,n,capicommand(echocancel,yes)
|
|
s,n,capicommand(echocancel,no)
|
|
|
|
IVR example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[isdn-in]
|
|
exten => _X.,1,Answer ; Answer the line
|
|
exten => _X.,n,Goto(s,1)
|
|
exten => s,1,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
|
|
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
|
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
|
exten => 1,1,capicommand(echocancel,yes)
|
|
exten => 1,n,Goto(s,restart)
|
|
exten => 2,1,capicommand(echocancel,no)
|
|
exten => 2,n,Goto(s,restart)
|
|
exten => 99,1,Echo
|
|
exten => i,1,Playback(invalid)
|
|
exten => i,n,Goto(s,restart)
|
|
exten => h,1,Hangup
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
PBX Example:
|
|
/////////////////////////////////////////////////////////////////////
|
|
[macro-capiechocancel]
|
|
exten => s,1,capicommand(echocancel,yes)
|
|
|
|
[isdn-in]
|
|
exten => 12345,1,Progress()
|
|
exten => 12345,n,Set(TIMEOUT(digit)=1) ; Set Digit Timeout to 5 seconds
|
|
exten => 12345,n,Set(TIMEOUT(response)=5) ; Set Response Timeout to 10 seconds
|
|
exten => 12345,n,capicommand(echocancel,yes)
|
|
exten => 12345,n,Playback(demo-enterkeywords,noanswer,us)
|
|
exten => 12345,n,Answer
|
|
exten => 12345,n,Wait(2)
|
|
exten => 12345,n,Dial(DIALOGICDIVA/ISDN1/100,10,M(capiechocancel))
|
|
exten => 12345,n,Hangup()
|
|
/////////////////////////////////////////////////////////////////////
|
|
|