Allow "," as capicommand option separator (needed from asterisk 1.6)
parent
e26c9ed12a
commit
cba80e7f25
1
CHANGES
1
CHANGES
|
@ -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
|
||||
------------------
|
||||
|
|
66
README
66
README
|
@ -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
|
||||
|
|
342
README.media
342
README.media
|
@ -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 => 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 => 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.
|
||||
|
|
42
chan_capi.c
42
chan_capi.c
|
@ -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(¶m, "|");
|
||||
number = strsep(¶m, 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(¶m, "|");
|
||||
holdid = strsep(¶m, 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(¶m, "|");
|
||||
options = strsep(¶m, "|");
|
||||
roomname = strsep(¶m, COMMANDSEPARATOR);
|
||||
options = strsep(¶m, COMMANDSEPARATOR);
|
||||
controller = param;
|
||||
|
||||
if (!roomname) {
|
||||
|
@ -709,9 +709,9 @@ int pbx_capi_chat_play(struct ast_channel *c, char *param)
|
|||
return (-1);
|
||||
}
|
||||
|
||||
roomname = strsep(¶m, "|");
|
||||
options = strsep(¶m, "|");
|
||||
file_name = strsep(¶m, "|");
|
||||
roomname = strsep(¶m, COMMANDSEPARATOR);
|
||||
options = strsep(¶m, COMMANDSEPARATOR);
|
||||
file_name = strsep(¶m, 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(¶m, "|");
|
||||
const char* options = strsep(¶m, 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(¶m, "|");
|
||||
controller = strsep(¶m, 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(¶m, "|");
|
||||
const char* roommode = strsep(¶m, 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(¶m, "|");
|
||||
marker = strsep(¶m, 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(¶m, "|");
|
||||
cid = strsep(¶m, COMMANDSEPARATOR);
|
||||
cidlen = strlen(cid);
|
||||
if (cidlen > 20) /* HACK: stop action here, maybe we have invalid data */
|
||||
cidlen = 20;
|
||||
} else {
|
||||
char *tmp = strsep(¶m, "|");
|
||||
char *tmp = strsep(¶m, COMMANDSEPARATOR);
|
||||
tmp = NULL;
|
||||
cid = strsep(¶m, "|");
|
||||
cid = strsep(¶m, COMMANDSEPARATOR);
|
||||
cidlen = strlen(cid);
|
||||
if (cidlen > 20) /* HACK: stop action here, maybe we have invalid data */
|
||||
cidlen = 20;
|
||||
|
||||
ccanswer = strsep(¶m, "|");
|
||||
ccanswer = strsep(¶m, COMMANDSEPARATOR);
|
||||
if (ccanswer[0])
|
||||
icanswer = ccanswer[0] - 0x30;
|
||||
}
|
||||
|
@ -618,12 +618,12 @@ void cc_qsig_encode_ecma_sscalltransfer(unsigned char * buf, unsigned int *idx,
|
|||
char c[255];
|
||||
int ix = 0;
|
||||
|
||||
cidsrc = strsep(¶m, "|");
|
||||
cidsrc = strsep(¶m, COMMANDSEPARATOR);
|
||||
srclen = strlen(cidsrc);
|
||||
if (srclen > 20) /* HACK: stop action here, maybe we have invalid data */
|
||||
srclen = 20;
|
||||
|
||||
ciddst = strsep(¶m, "|");
|
||||
ciddst = strsep(¶m, COMMANDSEPARATOR);
|
||||
dstlen = strlen(ciddst);
|
||||
if (dstlen > 20) /* HACK: stop action here, maybe we have invalid data */
|
||||
dstlen = 20;
|
||||
|
|
|
@ -727,7 +727,7 @@ int pbx_capi_ccpartybusy(struct ast_channel *c, char *data)
|
|||
struct ccbsnr_s *ccbsnr;
|
||||
char partybusy = 0;
|
||||
|
||||
slinkageid = strsep(&data, "|");
|
||||
slinkageid = strsep(&data, COMMANDSEPARATOR);
|
||||
yesno = data;
|
||||
|
||||
if (slinkageid) {
|
||||
|
@ -821,9 +821,9 @@ int pbx_capi_ccbs(struct ast_channel *c, char *data)
|
|||
MESSAGE_EXCHANGE_ERROR error;
|
||||
unsigned int ccbsnrstate;
|
||||
|
||||
slinkageid = strsep(&data, "|");
|
||||
context = strsep(&data, "|");
|
||||
exten = strsep(&data, "|");
|
||||
slinkageid = strsep(&data, COMMANDSEPARATOR);
|
||||
context = strsep(&data, COMMANDSEPARATOR);
|
||||
exten = strsep(&data, COMMANDSEPARATOR);
|
||||
priority = data;
|
||||
|
||||
if (slinkageid) {
|
||||
|
|
Loading…
Reference in New Issue