Allow "," as capicommand option separator (needed from asterisk 1.6)

master
MelwareDE 12 years ago
parent e26c9ed12a
commit cba80e7f25
  1. 1
      CHANGES
  2. 66
      README
  3. 16
      README.Diva.fax
  4. 4
      README.Diva.qsig
  5. 344
      README.media
  6. 2
      README.qsig
  7. 42
      chan_capi.c
  8. 2
      chan_capi.h
  9. 16
      chan_capi_chat.c
  10. 2
      chan_capi_qsig_core.c
  11. 12
      chan_capi_qsig_ecma.c
  12. 8
      chan_capi_supplementary.c

@ -20,6 +20,7 @@ HEAD
- Add Slinear
- Add HD voice using G.722, Siren7, Siren14 and Slinear16
- added faxdestination= to capi.conf to configure custom context,exten,prio.
- allow capicommand option separator "|" and ",".
chan_capi-1.1.5
------------------

@ -148,27 +148,27 @@ With this application, special CAPI commands and features can be used.
Call Deflection:
Forwards an unanswered call to another number.
Example:
exten => s,1,capicommand(deflect|12345678)
exten => s,1,capicommand(deflect,12345678)
Fax receive:
Receives a fax using CAPI.
Example:
exten => s,1,capicommand(receivefax|/tmp/${UNIQUEID}|+49 6137 555123|Asterisk|kX)
exten => s,1,capicommand(receivefax,/tmp/${UNIQUEID},+49 6137 555123,Asterisk,kX)
(more see below)
Fax send:
Sends a fax using CAPI.
Example:
exten => s,1,capicommand(sendfax|/path/to/faxfile.sff|+49 6137 555123|Asterisk)
exten => s,1,capicommand(sendfax,/path/to/faxfile.sff,+49 6137 555123,Asterisk)
(more see below)
Enable/Disable echosquelch:
Enables or disable a very primitive echo suppressor.
Disable this option before you start recording voicemail or your files may get choppy.
Example:
exten => s,1,capicommand(echosquelch|yes)
exten => s,1,capicommand(echosquelch,yes)
or
exten => s,1,capicommand(echosquelch|no)
exten => s,1,capicommand(echosquelch,no)
Enable/Disable echocancel:
Enables or disables echo-cancel provided by CAPI driver/hardware.
@ -176,9 +176,9 @@ Enable/Disable echocancel:
by a non-CAPI application. After hangup, this setting is restored to the value
set in capi.conf.
Example:
exten => s,1,capicommand(echocancel|yes)
exten => s,1,capicommand(echocancel,yes)
or
exten => s,1,capicommand(echocancel|no)
exten => s,1,capicommand(echocancel,no)
By default chan_capi deactivates echo-cancel for transit connections
(Dial command called from existing call). You can use 'econtransitconn'
@ -191,7 +191,7 @@ Enable/Disable echocancel:
Send Keypad Facility:
Send Keypad Faciliaty information.
Example:
exten => s,1,capicommand(keypad|<digits>)
exten => s,1,capicommand(keypad,<digits>)
Malicious Call Identification:
Reports a call of malicious nature.
@ -206,18 +206,18 @@ Hold:
Example:
exten => s,1,capicommand(hold)
or
exten => s,1,capicommand(hold|MYHOLDVAR)
exten => s,1,capicommand(hold,MYHOLDVAR)
Holdtype:
Sets the type of 'hold'. When Asterisk wants to put the call on hold, the specified method
will be used.
Example:
exten => s,1,capicommand(holdtype|local) ;no hold, Asterisk can play MOH
exten => s,1,capicommand(holdtype,local) ;no hold, Asterisk can play MOH
or
exten => s,1,capicommand(holdtype|hold) ;ISDN-HOLD
exten => s,1,capicommand(holdtype,hold) ;ISDN-HOLD
or
; not yet implemented
exten => s,1,capicommand(holdtype|notify) ;notify the peer only, Asterisk can play MOH
exten => s,1,capicommand(holdtype,notify) ;notify the peer only, Asterisk can play MOH
Retrieve:
@ -226,12 +226,12 @@ Retrieve:
Example:
exten => s,1,capicommand(retrieve)
or
exten => s,1,capicommand(retrieve|${MYHOLDVAR})
exten => s,1,capicommand(retrieve,${MYHOLDVAR})
ECT:
Explicit Call Transfer of the call on hold (must put call on hold first!)
Example:
exten => s,1,capicommand(ect|${MYHOLDVAR})
exten => s,1,capicommand(ect,${MYHOLDVAR})
or
[macro-capiect]
exten => s,1,capicommand(ect)
@ -241,13 +241,13 @@ ECT:
exten => s,3,Dial(CAPI/contr1/1234,60,M(capiect))
Note: Normaly a PBX needs 'implicit call transfer', which is done by default
with this command. But if the line needs real 'explicit call transfer', use
exten => s,1,capicommand(ect|x)
exten => s,1,capicommand(ect,x)
instead.
3PTY:
Initiates a Three-Party Conference (must have one call on hold and one active call!).
Example:
exten => s,1,capicommand(3pty_begin|${MYHOLDVAR})
exten => s,1,capicommand(3pty_begin,${MYHOLDVAR})
or
[macro-capi3pty]
exten => s,1,capicommand(3pty_begin)
@ -274,9 +274,9 @@ Set local party to 'busy' or 'free':
about the status of the extension who started the callback.
By default, chan_capi assumes 'free', but you can change that
with:
exten => s,1,capicommand(ccpartybusy|${CCLINKAGEID}|yes)
exten => s,1,capicommand(ccpartybusy,${CCLINKAGEID},yes)
or
exten => s,1,capicommand(ccpartybusy|${CCLINKAGEID}|no)
exten => s,1,capicommand(ccpartybusy,${CCLINKAGEID},no)
Call completion on subscriber busy (CCBS):
To receive a callback when the dialed and busy party becomes free, aka
@ -286,7 +286,7 @@ Call completion on subscriber busy (CCBS):
exten => s,2,Dial(CAPI/contr1/123456,60,g) ;'g' to go-on with the dialplan on busy.
exten => s,3,NoOp(${CCLINKAGEID}) ;if this variable now contains a number, CCBS is possible.
;here you can ask the caller if CCBS shall be activated...
exten => s,4,capicommand(ccbs|${CCLINKAGEID}|<context>|<exten>|<priority>)
exten => s,4,capicommand(ccbs,${CCLINKAGEID},<context>,<exten>,<priority>)
exten => s,5,NoOp(${CCBSSTATUS}) ;if CCBS was successfully enabled, it is set to "ACTIVATED".
If the remote party becomes 'non-busy', the network initiates the callback that will be
sent to the provided context/exten/priority. Of course, this only happens if your local
@ -298,15 +298,15 @@ Call completion on subscriber busy (CCBS):
Deactivate CCBS:
To deactivate a previously activated CCBS, use the following command:
Example:
exten => s,1,capicommand(ccbsstop|${CCLINKAGEID})
exten => s,1,capicommand(ccbsstop,${CCLINKAGEID})
Chat (MeetMe/Conference):
See also README.media for details!
If the CAPI card/driver supports it, the caller can be put into a chat-room:
(This uses the DSPs onboard a Dialogic(R) Diva(R) Rev.2 Media Board.)
exten => s,1,capicommand(chat|<roomname>|<options>|controller)
exten => s,1,capicommand(chat,<roomname>,<options>,controller)
Example:
exten => s,1,capicommand(chat|salesmeeting|m|1,3-6)
exten => s,1,capicommand(chat,salesmeeting,m,1,3-6)
Possible options:
'm' = The first caller will get music-on-hold until second caller arrives.
'h<sec>' = Hangup after <sec> seconds if caller is alone in conference.
@ -385,19 +385,19 @@ Short HOWTO of capicommand(receivefax...) and capicommand(sendfax...):
For those of you who have a CAPI card with an on-board DSP (like Dialogic(R) Diva(R) Media Boards),
this allows you to receive/send faxes.
capicommand(receivefax|<filename>[|<stationid>|<headline>|<options>]):
capicommand(receivefax,<filename>[,<stationid>,<headline>,<options>]):
-------------------------------------------------------------------------
If you want to answer a channel in fax mode, use capicommand(receivefax|...)
If you want to answer a channel in fax mode, use capicommand(receivefax,...)
instead of Answer(). If you use Answer(), you will be in voice mode.
If the hardware DSP detects fax tone, you can switch from voice to fax mode
by calling capicommand(receivefax|...).
by calling capicommand(receivefax,...).
The parameter <filename> is mandatory and the parameters <stationid>,
<headline> and <options> are optional.
By default, if fax reception was not successful, the file is deleted. If you want even
partly received or broken fax files, use 'k' for "keep bad fax" in the <options>:
capicommand(receivefax|/tmp/${UNIQUEID}|+123456789||k)
capicommand(receivefax,/tmp/${UNIQUEID},+123456789,,k)
You can activate extended fax support by 'X' in the <options>:
capicommand(receivefax|/tmp/${UNIQUEID}|+123456789||X)
capicommand(receivefax,/tmp/${UNIQUEID},+123456789,X)
Please read details on extended fax options in README.Diva.fax.
To enable fax tone detection and redirect to extension 'fax', use config variable
@ -415,11 +415,11 @@ exten => 124,1,Goto(handle_fax,s,1)
exten => fax,1,Goto(handle_fax,s,1)
[handle_fax]
exten => s,1,capicommand(receivefax|/tmp/${UNIQUEID}[|<stationid>|<headline>|<options>])
exten => s,1,capicommand(receivefax,/tmp/${UNIQUEID}[,<stationid>,<headline>,<options>])
exten => s,2,Hangup()
exten => h,1,deadagi,fax.php // Run sfftobmp and mail it.
The output of capicommand(receivefax|...) is a SFF file.
The output of capicommand(receivefax,...) is a SFF file.
Use sfftobmp to convert it.
With a Dialogic(R) Diva(R) Media Board, the following features are provided:
- fax up to 33600
@ -428,12 +428,12 @@ With a Dialogic(R) Diva(R) Media Board, the following features are provided:
- JPEG Compression is disabled (not tested yet)
See README.Diva.fax for more details and description of all options.
capicommand(sendfax|<filename>[|<stationid>|<headline>|<options>]):
capicommand(sendfax,<filename>[,<stationid>,<headline>,<options>]):
------------------------------------------------------------
To send a fax, you can use the same mechanism like with receivefax.
Just replace the <filename> with the path to the .SFF file to send.
You can activate extended fax support by 'X' in the <options>:
capicommand(sendfax|/tmp/${UNIQUEID}|+123456789||X)
capicommand(sendfax,/tmp/${UNIQUEID},+123456789,,X)
Please read details on extended fax options in README.Diva.fax.
After disconnect of a fax connection, the following variables
@ -485,7 +485,7 @@ BCHANNELINFO
'2' : neither B nor D-channel is used (e.g., call waiting)
Call-Waiting: an incoming call with BCHANNELINFO not '0' cannot be accepted.
Another connection must be dropped before accepting or use
capicommand(deflect|<number>) to initiate call deflection to another destination.
capicommand(deflect,<number>) to initiate call deflection to another destination.
CALLEDTON
Incoming calls: 'type of number' value of the called number is saved in this variable on
@ -522,7 +522,7 @@ CAPI_CIP
instead of transfercapability.
CCBSSTATUS
When using capicommand(ccbs|....), this variable is set to either "ERROR" or
When using capicommand(ccbs,....), this variable is set to either "ERROR" or
"ACTIVATED".
CCLINKAGEID

@ -212,7 +212,7 @@ Reception of fax documents
You can use the Dialogic (R) Diva(R) chan_capi configuration to activate fax support ("Fax detection" and "Fax detection time").
The reception of the fax message is started using 'receivefax' capi command:
capicommand(receivefax|<filename>[|<stationid>|<headline>|<options>])
capicommand(receivefax,<filename>[,<stationid>,<headline>,<options>])
Parameters:
'filename' - Contains the full path and file name for the resulting fax file, mandatory
@ -256,15 +256,15 @@ exten => fax,1,Goto(handle_fax,s,1) ; Fax calling tone detected, change to
exten => i,1,Hangup() ; Received unexpected event
[handle_fax]
exten => s,1,capicommand(receivefax|/tmp/${UNIQUEID}[|<stationid>|<headline>|<options>])
exten => s,1,capicommand(receivefax,/tmp/${UNIQUEID}[,<stationid>,<headline>,<options>])
exten => s,n,Hangup()
exten => h,1,deadagi,fax.php ; Run sfftobmp and mail it
Example with Clear Channel fax support:
[handle_fax]
exten => s,1,capicommand(resource|1-4) ; Assign resource PLCI (use controllers 1 to 4)
exten => s,n,capicommand(receivefax|/tmp/${UNIQUEID}[|<stationid>|<headline>|<options>])
exten => s,1,capicommand(resource,1-4) ; Assign resource PLCI (use controllers 1 to 4)
exten => s,n,capicommand(receivefax,/tmp/${UNIQUEID}[,<stationid>,<headline>,<options>])
exten => s,n,Hangup()
exten => h,1,deadagi,fax.php ; Run sfftobmp and mail it
@ -274,7 +274,7 @@ Transmission of fax documents
The transmission of the fax message is started using 'sendfax' capi command:
capicommand(sendfax|<filename>[|<stationid>|<headline>|<options>])
capicommand(sendfax,<filename>[,<stationid>,<headline>,<options>])
Parameters:
'filename' - Contains the full path and file name to be sent, mandatory
@ -309,7 +309,7 @@ Example:
exten => 1,1,Dial(capi/ISDN1/1234512345,20,G(handle_sendfax,s,1))
[handle_sendfax]
exten => s,1,capicommand(sendfax|/tmp/sendfax001.sff|1234 1234 1234|Outgoing Fax)
exten => s,1,capicommand(sendfax,/tmp/sendfax001.sff,1234 1234 1234,Outgoing Fax)
exten => s,n,deadagi,faxlog.php ; Log result and schedule restart if necessary
exten => s,n,Hangup
@ -317,8 +317,8 @@ exten => s,n,Hangup
Example with Clear Channel fax support:
[handle_sendfax]
exten => s,1,capicommand(resource|1-4) ; Assign resource PLCI
exten => s,n,capicommand(sendfax|/tmp/sendfax001.sff|1234 1234 1234|Outgoing Fax)
exten => s,1,capicommand(resource,1-4) ; Assign resource PLCI
exten => s,n,capicommand(sendfax,/tmp/sendfax001.sff,1234 1234 1234,Outgoing Fax)
exten => s,n,deadagi,faxlog.php ; Log result and schedule restart if necessary
exten => s,n,Hangup

@ -158,7 +158,7 @@ ECT Example:
/////////////////////////////////////////////////////////////////////
[macro-capiect]
; Activate suppressor of ambient noise for consultation call
exten => s,1,capicommand(noisesuppressor|yes)
exten => s,1,capicommand(noisesuppressor,yes)
; Invoke ECT command
exten => s,n,capicommand(ect)
@ -172,7 +172,7 @@ exten => 12345,n,Playback(demo-enterkeywords,noanswer,us)
; Accept incoming call
exten => 12345,n,Answer
; Activate suppressor of ambient noises for incoming call
exten => 12345,n,capicommand(noisesuppressor|yes)
exten => 12345,n,capicommand(noisesuppressor,yes)
; Save PLCI of incoming call to CAPIPLCI variable
exten => 12345,n,capicommand(getplci)
; Set CAPIECTPLCI variable to PLCI of incoming call

@ -21,11 +21,11 @@ Supported hardware:
feature only together with RTP.
Syntax:
noisesuppressor|yes,no
noisesuppressor,[yes|no]
Syntax example:
s,n,capicommand(noisesuppressor|yes)
s,n,capicommand(noisesuppressor|no)
s,n,capicommand(noisesuppressor,yes)
s,n,capicommand(noisesuppressor,no)
IVR example:
/////////////////////////////////////////////////////////////////////
@ -36,9 +36,9 @@ 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,1,capicommand(noisesuppressor,yes)
exten => 1,n,Goto(s,restart)
exten => 2,1,capicommand(noisesuppressor|no)
exten => 2,1,capicommand(noisesuppressor,no)
exten => 2,n,Goto(s,restart)
exten => 99,1,Echo
exten => i,1,Playback(invalid)
@ -49,7 +49,7 @@ exten => h,1,Hangup
PBX Example:
/////////////////////////////////////////////////////////////////////
[macro-capinoisesuppressor]
exten => s,1,capicommand(noisesuppressor|yes)
exten => s,1,capicommand(noisesuppressor,yes)
[isdn-in]
exten => 12345,1,Progress()
@ -58,7 +58,7 @@ 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,capicommand(noisesuppressor,yes)
exten => 12345,n,Dial(DIALOGICDIVA/ISDN1/100,10,M(capinoisesuppressor))
exten => 12345,n,Hangup()
/////////////////////////////////////////////////////////////////////
@ -79,14 +79,14 @@ Supported hardware:
Requires one Dialogic(R) Diva(R) Media Board equipped with DSPs.
Syntax:
clamping|N
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)
s,n,capicommand(clamping,100)
s,n,capicommand(clamping,0)
IVR example:
/////////////////////////////////////////////////////////////////////
@ -97,9 +97,9 @@ 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,1,capicommand(clamping,100)
exten => 1,n,Goto(s,restart)
exten => 2,1,capicommand(clamping|0)
exten => 2,1,capicommand(clamping,0)
exten => 2,n,Goto(s,restart)
exten => 99,1,Echo
exten => i,1,Playback(invalid)
@ -110,7 +110,7 @@ exten => h,1,Hangup
PBX Example:
/////////////////////////////////////////////////////////////////////
[macro-capiclamping]
exten => s,1,capicommand(clamping|100)
exten => s,1,capicommand(clamping,100)
[isdn-in]
exten => 12345,1,Progress()
@ -119,7 +119,7 @@ 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,capicommand(clamping,100)
exten => 12345,n,Dial(DIALOGICDIVA/ISDN1/100,10,M(capiclamping))
exten => 12345,n,Hangup()
/////////////////////////////////////////////////////////////////////
@ -140,11 +140,11 @@ Supported hardware:
Requires one Diva Media Board equipped with DSPs.
Syntax:
rxagc|yes,no
rxagc,[yes|no]
Syntax example:
s,n,capicommand(rxagc|yes)
s,n,capicommand(rxagc|no)
s,n,capicommand(rxagc,yes)
s,n,capicommand(rxagc,no)
IVR example:
/////////////////////////////////////////////////////////////////////
@ -155,9 +155,9 @@ 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,1,capicommand(rxagc,yes)
exten => 1,n,Goto(s,restart)
exten => 2,1,capicommand(rxagc|no)
exten => 2,1,capicommand(rxagc,no)
exten => 2,n,Goto(s,restart)
exten => 99,1,Echo
exten => i,1,Playback(invalid)
@ -168,7 +168,7 @@ exten => h,1,Hangup
PBX Example:
/////////////////////////////////////////////////////////////////////
[macro-capirxagc]
exten => s,1,capicommand(rxagc|yes)
exten => s,1,capicommand(rxagc,yes)
[isdn-in]
exten => 12345,1,Progress()
@ -177,7 +177,7 @@ 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,capicommand(rxagc,yes)
exten => 12345,n,Dial(DIALOGICDIVA/ISDN1/100,10,M(capirxagc))
exten => 12345,n,Hangup()
/////////////////////////////////////////////////////////////////////
@ -198,11 +198,11 @@ Supported hardware:
Requires one Diva Media Board equipped with DSPs.
Syntax:
txagc|yes,no
txagc,[yes|no]
Syntax example:
s,n,capicommand(txagc|yes)
s,n,capicommand(txagc|no)
s,n,capicommand(txagc,yes)
s,n,capicommand(txagc,no)
IVR example:
See rxagc
@ -226,14 +226,14 @@ Supported hardware:
Requires one Diva Media Board equipped with DSPs.
Syntax:
rxdgain|N
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)
s,n,capicommand(rxdgain,5.5)
s,n,capicommand(rxdgain,-14.2)
IVR example:
/////////////////////////////////////////////////////////////////////
@ -244,9 +244,9 @@ 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,1,capicommand(rxdgain,5.5)
exten => 1,n,Goto(s,restart)
exten => 2,1,capicommand(rxdgain|-70)
exten => 2,1,capicommand(rxdgain,-70)
exten => 2,n,Goto(s,restart)
exten => 99,1,Echo
exten => i,1,Playback(invalid)
@ -270,12 +270,12 @@ Supported hardware:
Requires one Diva Media Board equipped with DSPs.
incSyntax:
rxdgain|N
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
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:
/////////////////////////////////////////////////////////////////////
@ -286,9 +286,9 @@ 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,1,capicommand(incrxdgain,2.5)
exten => 1,n,Goto(s,restart)
exten => 2,1,capicommand(incrxdgain|-2.5)
exten => 2,1,capicommand(incrxdgain,-2.5)
exten => 2,n,Goto(s,restart)
exten => 99,1,Echo
exten => i,1,Playback(invalid)
@ -312,14 +312,14 @@ Supported hardware:
Requires one Diva Media Board equipped with DSPs.
Syntax:
txdgain|N
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)
s,n,capicommand(txdgain,5.5)
s,n,capicommand(txdgain,-14.2)
IVR example:
/////////////////////////////////////////////////////////////////////
@ -330,9 +330,9 @@ 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,1,capicommand(txdgain,5.5)
exten => 1,n,Goto(s,restart)
exten => 2,1,capicommand(txdgain|-70)
exten => 2,1,capicommand(txdgain,-70)
exten => 2,n,Goto(s,restart)
exten => 99,1,Echo
exten => i,1,Playback(invalid)
@ -356,12 +356,12 @@ Supported hardware:
Requires one Diva Media Board equipped with DSPs.
incSyntax:
rxtgain|N
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
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:
/////////////////////////////////////////////////////////////////////
@ -372,9 +372,9 @@ 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,1,capicommand(inctxdgain,2.5)
exten => 1,n,Goto(s,restart)
exten => 2,1,capicommand(inctxdgain|-2.5)
exten => 2,1,capicommand(inctxdgain,-2.5)
exten => 2,n,Goto(s,restart)
exten => 99,1,Echo
exten => i,1,Playback(invalid)
@ -404,15 +404,15 @@ 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,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
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:
/////////////////////////////////////////////////////////////////////
@ -423,9 +423,9 @@ 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,1,capicommand(pitchcontrol,8200)
exten => 1,n,Goto(s,restart)
exten => 2,1,capicommand(pitchcontrol|8000)
exten => 2,1,capicommand(pitchcontrol,8000)
exten => 2,n,Goto(s,restart)
exten => 99,1,Echo
exten => i,1,Playback(invalid)
@ -455,14 +455,14 @@ 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
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
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:
/////////////////////////////////////////////////////////////////////
@ -473,9 +473,9 @@ 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,1,capicommand(incpitchcontrol,100)
exten => 1,n,Goto(s,restart)
exten => 2,1,capicommand(incpitchcontrol|100)
exten => 2,1,capicommand(incpitchcontrol,100)
exten => 2,n,Goto(s,restart)
exten => 99,1,Echo
exten => i,1,Playback(invalid)
@ -501,11 +501,11 @@ Supported hardware:
Requires one Diva Media Board equipped with DSPs.
Syntax:
mftonedetection|yes,no
mftonedetection,[yes|no]
Syntax example:
s,n,capicommand(mftonedetection|yes)
s,n,capicommand(mftonedetection|no)
s,n,capicommand(mftonedetection,yes)
s,n,capicommand(mftonedetection,no)
IVR example:
/////////////////////////////////////////////////////////////////////
@ -516,9 +516,9 @@ 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,1,capicommand(mftonedetection,yes)
exten => 1,n,Goto(s,restart)
exten => 2,1,capicommand(mftonedetection|no)
exten => 2,1,capicommand(mftonedetection,no)
exten => 2,n,Goto(s,restart)
exten => 99,1,Echo
exten => i,1,Playback(invalid)
@ -542,11 +542,11 @@ Supported hardware:
Requires one Diva Media Board equipped with DSPs.
Syntax:
pulsedetection|yes,no
pulsedetection,[yes|no]
Syntax example:
s,n,capicommand(pulsedetection|yes)
s,n,capicommand(pulsedetection|no)
s,n,capicommand(pulsedetection,yes)
s,n,capicommand(pulsedetection,no)
IVR example:
/////////////////////////////////////////////////////////////////////
@ -557,9 +557,9 @@ 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,1,capicommand(pulsedetection,yes)
exten => 1,n,Goto(s,restart)
exten => 2,1,capicommand(pulsedetection|no)
exten => 2,1,capicommand(pulsedetection,no)
exten => 2,n,Goto(s,restart)
exten => 99,1,Echo
exten => i,1,Playback(invalid)
@ -584,7 +584,7 @@ Supported hardware:
Requires one Diva Media Board equipped with DSPs.
Syntax:
sendtone|N
sendtone,N
stoptone
N - tone to be sent
@ -633,7 +633,7 @@ stoptone
0xCB - Tone Alerting Signal (for Caller ID in PSTN)
Syntax example:
s,n,capicommand(sendtone|0x83) ; Send PABX internal dial tone
s,n,capicommand(sendtone,0x83) ; Send PABX internal dial tone
s,n,capicommand(stoptone) ; stop tone transmission
IVR example
@ -645,7 +645,7 @@ 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,1,capicommand(sendtone,0x83)
exten => 1,n,Goto(s,restart)
exten => 2,1,capicommand(stoptone)
exten => 2,n,Goto(s,restart)
@ -673,7 +673,7 @@ Supported hardware:
Not available if RTP is active.
Syntax:
starttonedetection|N
starttonedetection,N
stoptonedetection
N - Extension number to be used in case a tone is detected.
@ -729,7 +729,7 @@ stoptonedetection
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(starttonedetection,98) ; Change to extension 98 after detection of tone
s,n,capicommand(stoptonedetection) ; Disable detection of tones
IVR example:
@ -746,7 +746,7 @@ 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,capicommand(starttonedetection,98) ; Change to 98 once tone is detected
exten => 1,n,Goto(s,restart)
; Continue after detection of the tone
@ -786,13 +786,13 @@ Description:
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,param,param1,...,paranN
Add to menu: on detection of key execute command using parameters param1,...,paramN
vc|command|key
vc,command,key
Add to menu: on detection of key execute command without parameters
vc|command
vc,command
Remove all instances of command from menu
vc
@ -800,12 +800,12 @@ vc
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)
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)
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.
@ -814,8 +814,8 @@ In case the menu is used for conference or for connection between two parties, i
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
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:
/////////////////////////////////////////////////////////////////////
@ -823,14 +823,14 @@ IVR Example:
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,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
@ -870,7 +870,7 @@ Supported hardware:
Diva
Syntax:
capicommand(chat|<roomname>|<options>|controller)
capicommand(chat,<roomname>,<options>,controller)
roomname - conference room name
options
m - The first caller will get music-on-hold until the second caller arrives
@ -880,12 +880,12 @@ capicommand(chat|<roomname>|<options>|controller)
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)
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:
/////////////////////////////////////////////////////////////////////
@ -898,21 +898,21 @@ 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 => 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)
@ -1006,32 +1006,32 @@ Supported hardware:
Syntax:
capicommand(ressource|controller)
capicommand(ressource,controller)
controller - CAPI controller
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)
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)
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,
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
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
@ -1071,14 +1071,14 @@ Direction:
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')
('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>])
capicommand(chat_mute,<action>[,<roomname>])
action - mandatory
yes - Change conference mode to half duplex, deactivate voice stream from regular
users to conference.
@ -1090,32 +1090,32 @@ capicommand(chat_mute|<action>[|<roomname>])
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)
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,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,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,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
@ -1142,7 +1142,7 @@ Supported hardware:
Diva
Syntax:
capicommand(chat_play|<roomname>|<options>|<filename>|controller)
capicommand(chat_play,<roomname>,<options>,<filename>,controller)
roomname - conference room name
options
m - The caller will get music-on-hold while message is played
@ -1151,22 +1151,22 @@ capicommand(chat_play|<roomname>|<options>|<filename>|controller)
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)
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,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,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,
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'
exten => s,n,capicommand(chat,test,m,1-4) ; Create/enter conference room 'test'
/////////////////////////////////////////////////////////////////////
@ -1181,7 +1181,7 @@ Supported hardware:
Diva
Syntax:
capicommand(chat_command|<options>|<roomname>)
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.
@ -1194,9 +1194,9 @@ capicommand(chat_command|<options>|<roomname>)
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)
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:
/////////////////////////////////////////////////////////////////////
@ -1205,15 +1205,15 @@ 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
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
/////////////////////////////////////////////////////////////////////
@ -1253,11 +1253,11 @@ Supported hardware:
Diva Media Boards equipped with DSPs.
Syntax:
echocancel|yes,no
echocancel,[yes|no]
Syntax example:
s,n,capicommand(echocancel|yes)
s,n,capicommand(echocancel|no)
s,n,capicommand(echocancel,yes)
s,n,capicommand(echocancel,no)
IVR example:
/////////////////////////////////////////////////////////////////////
@ -1268,9 +1268,9 @@ 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,1,capicommand(echocancel,yes)
exten => 1,n,Goto(s,restart)
exten => 2,1,capicommand(echocancel|no)
exten => 2,1,capicommand(echocancel,no)
exten => 2,n,Goto(s,restart)
exten => 99,1,Echo
exten => i,1,Playback(invalid)
@ -1281,13 +1281,13 @@ exten => h,1,Hangup
PBX Example:
/////////////////////////////////////////////////////////////////////
[macro-capiechocancel]
exten => s,1,capicommand(echocancel|yes)
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,capicommand(echocancel,yes)
exten => 12345,n,Playback(demo-enterkeywords,noanswer,us)
exten => 12345,n,Answer
exten => 12345,n,Wait(2)

@ -58,7 +58,7 @@ The QSIG support includes:
its subchannels
- Simple Call Transfer
With capicommand(qsig_ct|src-id|dst-id), you can transfer an inbound call back to the qsig switch.
With capicommand(qsig_ct,src-id,dst-id), you can transfer an inbound call back to the qsig switch.
The B-channel of this call will be relased, so that the line is free for a next call.
Unfortunately, the call will be completely released by the switch if the target is busy.
If you need to know whether your target is busy, you can use the call transfer feature below.

@ -2643,9 +2643,9 @@ static int pbx_capi_receive_extended_fax(struct ast_channel *c, struct capi_pvt
unsigned short b3_protocol_options = 0x0001;
int extended_resolution = 0;
filename = strsep(&data, "|");
stationid = strsep(&data, "|");
headline = strsep(&data, "|");
filename = strsep(&data, COMMANDSEPARATOR);
stationid = strsep(&data, COMMANDSEPARATOR);
headline = strsep(&data, COMMANDSEPARATOR);
options = data;
if (!stationid)
@ -2835,9 +2835,9 @@ static int pbx_capi_receive_basic_fax(struct ast_channel *c, struct capi_pvt *i,
B3_PROTO_FAXG3 b3conf;
char buffer[CAPI_MAX_STRING];
filename = strsep(&data, "|");
stationid = strsep(&data, "|");
headline = strsep(&data, "|");
filename = strsep(&data, COMMANDSEPARATOR);
stationid = strsep(&data, COMMANDSEPARATOR);
headline = strsep(&data, COMMANDSEPARATOR);
options = data;
if (!stationid)
@ -2989,9 +2989,9 @@ static int pbx_capi_receive_fax(struct ast_channel *c, char *data)
return -1;
}
(void)strsep(&ldata, "|");
(void)strsep(&ldata, "|");
(void)strsep(&ldata, "|");
(void)strsep(&ldata, COMMANDSEPARATOR);
(void)strsep(&ldata, COMMANDSEPARATOR);
(void)strsep(&ldata, COMMANDSEPARATOR);
while ((ldata) && (*ldata)) {
switch (*ldata) {
case 'X':
@ -3110,9 +3110,9 @@ static int pbx_capi_send_extended_fax(struct ast_channel *c, struct capi_pvt *i,
unsigned short b3_protocol_options = 0;
int extended_resolution = 0;
filename = strsep(&data, "|");
stationid = strsep(&data, "|");
headline = strsep(&data, "|");
filename = strsep(&data, COMMANDSEPARATOR);
stationid = strsep(&data, COMMANDSEPARATOR);
headline = strsep(&data, COMMANDSEPARATOR);
options = data;
if (!stationid)
@ -3319,9 +3319,9 @@ static int pbx_capi_send_basic_fax(struct ast_channel *c, struct capi_pvt *i, ch
B3_PROTO_FAXG3 b3conf;
char buffer[CAPI_MAX_STRING];
filename = strsep(&data, "|");
stationid = strsep(&data, "|");
headline = strsep(&data, "|");
filename = strsep(&data, COMMANDSEPARATOR);
stationid = strsep(&data, COMMANDSEPARATOR);
headline = strsep(&data, COMMANDSEPARATOR);
options = data;
if (!stationid)
@ -3447,9 +3447,9 @@ static int pbx_capi_send_fax(struct ast_channel *c, char *data)
return -1;
}
(void)strsep(&ldata, "|");
(void)strsep(&ldata, "|");
(void)strsep(&ldata, "|");
(void)strsep(&ldata, COMMANDSEPARATOR);
(void)strsep(&ldata, COMMANDSEPARATOR);
(void)strsep(&ldata, COMMANDSEPARATOR);
while ((ldata) && (*ldata)) {
switch (*ldata) {
case 'X':
@ -5730,7 +5730,7 @@ static int pbx_capi_call_deflect(struct ast_channel *c, char *param)
" deflection requires an argument (destination phone number)\n");
return -1;
}
number = strsep(&param, "|");
number = strsep(&param, COMMANDSEPARATOR);
numberlen = strlen(number);
if (!numberlen) {
@ -5919,7 +5919,7 @@ static int pbx_capi_ect(struct ast_channel *c, char *param)
plci = (unsigned int)strtoul(id, NULL, 0);
}
holdid = strsep(&param, "|");
holdid = strsep(&param, COMMANDSEPARATOR);
if (holdid) {
plci = (unsigned int)strtoul(holdid, NULL, 0);
@ -7197,7 +7197,7 @@ static int pbx_capicommand_exec(struct ast_channel *chan, void *data)
s = ast_strdupa(data);
stringp = s;
command = strsep(&stringp, "|");
command = strsep(&stringp, COMMANDSEPARATOR);
params = stringp;
cc_verbose(2, 1, VERBOSE_PREFIX_3 "capicommand: '%s' '%s'\n",
command, params);

@ -71,6 +71,8 @@ struct _diva_stream_scheduling_entry;
#define CAPI_MAX_FACILITYDATAARRAY_SIZE 300
#define COMMANDSEPARATOR "|,"
#ifdef CC_AST_HAS_FORMAT_T
typedef format_t cc_format_t;
#else

@ -602,8 +602,8 @@ int pbx_capi_chat(struct ast_channel *c, char *param)
unsigned int hangup_timeout = 0;
room_member_type_t room_member_type = RoomMemberDefault;
roomname = strsep(&param, "|");
options = strsep(&param, "|");
roomname = strsep(&param, COMMANDSEPARATOR);
options = strsep(&param, COMMANDSEPARATOR);
controller = param;
if (!roomname) {
@ -709,9 +709,9 @@ int pbx_capi_chat_play(struct ast_channel *c, char *param)
return (-1);
}
roomname = strsep(&param, "|");
options = strsep(&param, "|");
file_name = strsep(&param, "|");
roomname = strsep(&param, COMMANDSEPARATOR);
options = strsep(&param, COMMANDSEPARATOR);
file_name = strsep(&param, COMMANDSEPARATOR);
controller = param;
if (!roomname) {
@ -829,7 +829,7 @@ int pbx_capi_chat_command(struct ast_channel *c, char *param)
struct capichat_s *room, *tmproom;
struct capi_pvt *i;
unsigned int roomnumber, ret = 0;
const char* options = strsep(&param, "|");
const char* options = strsep(&param, COMMANDSEPARATOR);
const char* roomname = param;
unsigned int disconnect_command = 0;
@ -939,7 +939,7 @@ int pbx_capi_chat_associate_resource_plci(struct ast_channel *c, char *param)
cc_format_t codecs = 0; /* codecs are disabled by default */
int all = 0;
controller = strsep(&param, "|");
controller = strsep(&param, COMMANDSEPARATOR);
codeclist = param;
if (controller) {
@ -1068,7 +1068,7 @@ int pbx_capi_chat_mute(struct ast_channel *c, char *param)
struct capichat_s *room;
unsigned int roomnumber;
room_mode_t room_mode;
const char* roommode = strsep(&param, "|");
const char* roommode = strsep(&param, COMMANDSEPARATOR);
const char* roomname = param;
struct capi_pvt *i;

@ -1203,7 +1203,7 @@ int pbx_capi_qsig_ct(struct ast_channel *c, char *param)
return -1;
}
marker = strsep(&param, "|");
marker = strsep(&param, COMMANDSEPARATOR);
callmark = atoi(marker);
cc_qsig_verbose( 1, VERBOSE_PREFIX_4 " * QSIG_CT: using call marker %i(%s)\n", callmark, marker);

@ -386,19 +386,19 @@ void cc_qsig_encode_ecma_calltransfer(unsigned char * buf, unsigned int *idx, st
if (param) { /* got Call Transfer Parameters */
if (info) {
cid = strsep(&param, "|");
cid = strsep(&param, COMMANDSEPARATOR);
cidlen = strlen(cid);
if (cidlen > 20) /* HACK: stop action here, maybe we have invalid data */
cidlen = 20;
} else {
char *tmp = strsep(&param, "|");
char *tmp = strsep(&param, COMMANDSEPARATOR);
tmp = NULL;