Allow "," as capicommand option separator (needed from asterisk 1.6)
This commit is contained in:
parent
e26c9ed12a
commit
cba80e7f25
1
CHANGES
1
CHANGES
|
@ -20,6 +20,7 @@ HEAD
|
||||||
- Add Slinear
|
- Add Slinear
|
||||||
- Add HD voice using G.722, Siren7, Siren14 and Slinear16
|
- Add HD voice using G.722, Siren7, Siren14 and Slinear16
|
||||||
- added faxdestination= to capi.conf to configure custom context,exten,prio.
|
- added faxdestination= to capi.conf to configure custom context,exten,prio.
|
||||||
|
- allow capicommand option separator "|" and ",".
|
||||||
|
|
||||||
chan_capi-1.1.5
|
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:
|
Call Deflection:
|
||||||
Forwards an unanswered call to another number.
|
Forwards an unanswered call to another number.
|
||||||
Example:
|
Example:
|
||||||
exten => s,1,capicommand(deflect|12345678)
|
exten => s,1,capicommand(deflect,12345678)
|
||||||
|
|
||||||
Fax receive:
|
Fax receive:
|
||||||
Receives a fax using CAPI.
|
Receives a fax using CAPI.
|
||||||
Example:
|
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)
|
(more see below)
|
||||||
|
|
||||||
Fax send:
|
Fax send:
|
||||||
Sends a fax using CAPI.
|
Sends a fax using CAPI.
|
||||||
Example:
|
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)
|
(more see below)
|
||||||
|
|
||||||
Enable/Disable echosquelch:
|
Enable/Disable echosquelch:
|
||||||
Enables or disable a very primitive echo suppressor.
|
Enables or disable a very primitive echo suppressor.
|
||||||
Disable this option before you start recording voicemail or your files may get choppy.
|
Disable this option before you start recording voicemail or your files may get choppy.
|
||||||
Example:
|
Example:
|
||||||
exten => s,1,capicommand(echosquelch|yes)
|
exten => s,1,capicommand(echosquelch,yes)
|
||||||
or
|
or
|
||||||
exten => s,1,capicommand(echosquelch|no)
|
exten => s,1,capicommand(echosquelch,no)
|
||||||
|
|
||||||
Enable/Disable echocancel:
|
Enable/Disable echocancel:
|
||||||
Enables or disables echo-cancel provided by CAPI driver/hardware.
|
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
|
by a non-CAPI application. After hangup, this setting is restored to the value
|
||||||
set in capi.conf.
|
set in capi.conf.
|
||||||
Example:
|
Example:
|
||||||
exten => s,1,capicommand(echocancel|yes)
|
exten => s,1,capicommand(echocancel,yes)
|
||||||
or
|
or
|
||||||
exten => s,1,capicommand(echocancel|no)
|
exten => s,1,capicommand(echocancel,no)
|
||||||
|
|
||||||
By default chan_capi deactivates echo-cancel for transit connections
|
By default chan_capi deactivates echo-cancel for transit connections
|
||||||
(Dial command called from existing call). You can use 'econtransitconn'
|
(Dial command called from existing call). You can use 'econtransitconn'
|
||||||
|
@ -191,7 +191,7 @@ Enable/Disable echocancel:
|
||||||
Send Keypad Facility:
|
Send Keypad Facility:
|
||||||
Send Keypad Faciliaty information.
|
Send Keypad Faciliaty information.
|
||||||
Example:
|
Example:
|
||||||
exten => s,1,capicommand(keypad|<digits>)
|
exten => s,1,capicommand(keypad,<digits>)
|
||||||
|
|
||||||
Malicious Call Identification:
|
Malicious Call Identification:
|
||||||
Reports a call of malicious nature.
|
Reports a call of malicious nature.
|
||||||
|
@ -206,18 +206,18 @@ Hold:
|
||||||
Example:
|
Example:
|
||||||
exten => s,1,capicommand(hold)
|
exten => s,1,capicommand(hold)
|
||||||
or
|
or
|
||||||
exten => s,1,capicommand(hold|MYHOLDVAR)
|
exten => s,1,capicommand(hold,MYHOLDVAR)
|
||||||
|
|
||||||
Holdtype:
|
Holdtype:
|
||||||
Sets the type of 'hold'. When Asterisk wants to put the call on hold, the specified method
|
Sets the type of 'hold'. When Asterisk wants to put the call on hold, the specified method
|
||||||
will be used.
|
will be used.
|
||||||
Example:
|
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
|
or
|
||||||
exten => s,1,capicommand(holdtype|hold) ;ISDN-HOLD
|
exten => s,1,capicommand(holdtype,hold) ;ISDN-HOLD
|
||||||
or
|
or
|
||||||
; not yet implemented
|
; 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:
|
Retrieve:
|
||||||
|
@ -226,12 +226,12 @@ Retrieve:
|
||||||
Example:
|
Example:
|
||||||
exten => s,1,capicommand(retrieve)
|
exten => s,1,capicommand(retrieve)
|
||||||
or
|
or
|
||||||
exten => s,1,capicommand(retrieve|${MYHOLDVAR})
|
exten => s,1,capicommand(retrieve,${MYHOLDVAR})
|
||||||
|
|
||||||
ECT:
|
ECT:
|
||||||
Explicit Call Transfer of the call on hold (must put call on hold first!)
|
Explicit Call Transfer of the call on hold (must put call on hold first!)
|
||||||
Example:
|
Example:
|
||||||
exten => s,1,capicommand(ect|${MYHOLDVAR})
|
exten => s,1,capicommand(ect,${MYHOLDVAR})
|
||||||
or
|
or
|
||||||
[macro-capiect]
|
[macro-capiect]
|
||||||
exten => s,1,capicommand(ect)
|
exten => s,1,capicommand(ect)
|
||||||
|
@ -241,13 +241,13 @@ ECT:
|
||||||
exten => s,3,Dial(CAPI/contr1/1234,60,M(capiect))
|
exten => s,3,Dial(CAPI/contr1/1234,60,M(capiect))
|
||||||
Note: Normaly a PBX needs 'implicit call transfer', which is done by default
|
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
|
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.
|
instead.
|
||||||
|
|
||||||
3PTY:
|
3PTY:
|
||||||
Initiates a Three-Party Conference (must have one call on hold and one active call!).
|
Initiates a Three-Party Conference (must have one call on hold and one active call!).
|
||||||
Example:
|
Example:
|
||||||
exten => s,1,capicommand(3pty_begin|${MYHOLDVAR})
|
exten => s,1,capicommand(3pty_begin,${MYHOLDVAR})
|
||||||
or
|
or
|
||||||
[macro-capi3pty]
|
[macro-capi3pty]
|
||||||
exten => s,1,capicommand(3pty_begin)
|
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.
|
about the status of the extension who started the callback.
|
||||||
By default, chan_capi assumes 'free', but you can change that
|
By default, chan_capi assumes 'free', but you can change that
|
||||||
with:
|
with:
|
||||||
exten => s,1,capicommand(ccpartybusy|${CCLINKAGEID}|yes)
|
exten => s,1,capicommand(ccpartybusy,${CCLINKAGEID},yes)
|
||||||
or
|
or
|
||||||
exten => s,1,capicommand(ccpartybusy|${CCLINKAGEID}|no)
|
exten => s,1,capicommand(ccpartybusy,${CCLINKAGEID},no)
|
||||||
|
|
||||||
Call completion on subscriber busy (CCBS):
|
Call completion on subscriber busy (CCBS):
|
||||||
To receive a callback when the dialed and busy party becomes free, aka
|
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,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.
|
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...
|
;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".
|
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
|
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
|
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:
|
Deactivate CCBS:
|
||||||
To deactivate a previously activated CCBS, use the following command:
|
To deactivate a previously activated CCBS, use the following command:
|
||||||
Example:
|
Example:
|
||||||
exten => s,1,capicommand(ccbsstop|${CCLINKAGEID})
|
exten => s,1,capicommand(ccbsstop,${CCLINKAGEID})
|
||||||
|
|
||||||
Chat (MeetMe/Conference):
|
Chat (MeetMe/Conference):
|
||||||
See also README.media for details!
|
See also README.media for details!
|
||||||
If the CAPI card/driver supports it, the caller can be put into a chat-room:
|
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.)
|
(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:
|
Example:
|
||||||
exten => s,1,capicommand(chat|salesmeeting|m|1,3-6)
|
exten => s,1,capicommand(chat,salesmeeting,m,1,3-6)
|
||||||
Possible options:
|
Possible options:
|
||||||
'm' = The first caller will get music-on-hold until second caller arrives.
|
'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.
|
'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),
|
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.
|
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.
|
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
|
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>,
|
The parameter <filename> is mandatory and the parameters <stationid>,
|
||||||
<headline> and <options> are optional.
|
<headline> and <options> are optional.
|
||||||
By default, if fax reception was not successful, the file is deleted. If you want even
|
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>:
|
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>:
|
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.
|
Please read details on extended fax options in README.Diva.fax.
|
||||||
|
|
||||||
To enable fax tone detection and redirect to extension 'fax', use config variable
|
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)
|
exten => fax,1,Goto(handle_fax,s,1)
|
||||||
|
|
||||||
[handle_fax]
|
[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 => s,2,Hangup()
|
||||||
exten => h,1,deadagi,fax.php // Run sfftobmp and mail it.
|
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.
|
Use sfftobmp to convert it.
|
||||||
With a Dialogic(R) Diva(R) Media Board, the following features are provided:
|
With a Dialogic(R) Diva(R) Media Board, the following features are provided:
|
||||||
- fax up to 33600
|
- 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)
|
- JPEG Compression is disabled (not tested yet)
|
||||||
See README.Diva.fax for more details and description of all options.
|
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.
|
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.
|
Just replace the <filename> with the path to the .SFF file to send.
|
||||||
You can activate extended fax support by 'X' in the <options>:
|
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.
|
Please read details on extended fax options in README.Diva.fax.
|
||||||
|
|
||||||
After disconnect of a fax connection, the following variables
|
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)
|
'2' : neither B nor D-channel is used (e.g., call waiting)
|
||||||
Call-Waiting: an incoming call with BCHANNELINFO not '0' cannot be accepted.
|
Call-Waiting: an incoming call with BCHANNELINFO not '0' cannot be accepted.
|
||||||
Another connection must be dropped before accepting or use
|
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
|
CALLEDTON
|
||||||
Incoming calls: 'type of number' value of the called number is saved in this variable on
|
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.
|
instead of transfercapability.
|
||||||
|
|
||||||
CCBSSTATUS
|
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".
|
"ACTIVATED".
|
||||||
|
|
||||||
CCLINKAGEID
|
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").
|
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:
|
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:
|
Parameters:
|
||||||
'filename' - Contains the full path and file name for the resulting fax file, mandatory
|
'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
|
exten => i,1,Hangup() ; Received unexpected event
|
||||||
|
|
||||||
[handle_fax]
|
[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 => s,n,Hangup()
|
||||||
exten => h,1,deadagi,fax.php ; Run sfftobmp and mail it
|
exten => h,1,deadagi,fax.php ; Run sfftobmp and mail it
|
||||||
|
|
||||||
Example with Clear Channel fax support:
|
Example with Clear Channel fax support:
|
||||||
|
|
||||||
[handle_fax]
|
[handle_fax]
|
||||||
exten => s,1,capicommand(resource|1-4) ; Assign resource PLCI (use controllers 1 to 4)
|
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,capicommand(receivefax,/tmp/${UNIQUEID}[,<stationid>,<headline>,<options>])
|
||||||
exten => s,n,Hangup()
|
exten => s,n,Hangup()
|
||||||
exten => h,1,deadagi,fax.php ; Run sfftobmp and mail it
|
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:
|
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:
|
Parameters:
|
||||||
'filename' - Contains the full path and file name to be sent, mandatory
|
'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))
|
exten => 1,1,Dial(capi/ISDN1/1234512345,20,G(handle_sendfax,s,1))
|
||||||
|
|
||||||
[handle_sendfax]
|
[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,deadagi,faxlog.php ; Log result and schedule restart if necessary
|
||||||
exten => s,n,Hangup
|
exten => s,n,Hangup
|
||||||
|
|
||||||
|
@ -317,8 +317,8 @@ exten => s,n,Hangup
|
||||||
Example with Clear Channel fax support:
|
Example with Clear Channel fax support:
|
||||||
|
|
||||||
[handle_sendfax]
|
[handle_sendfax]
|
||||||
exten => s,1,capicommand(resource|1-4) ; Assign resource PLCI
|
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,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,deadagi,faxlog.php ; Log result and schedule restart if necessary
|
||||||
exten => s,n,Hangup
|
exten => s,n,Hangup
|
||||||
|
|
||||||
|
|
|
@ -158,7 +158,7 @@ ECT Example:
|
||||||
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
||||||
[macro-capiect]
|
[macro-capiect]
|
||||||
; Activate suppressor of ambient noise for consultation call
|
; Activate suppressor of ambient noise for consultation call
|
||||||
exten => s,1,capicommand(noisesuppressor|yes)
|
exten => s,1,capicommand(noisesuppressor,yes)
|
||||||
; Invoke ECT command
|
; Invoke ECT command
|
||||||
exten => s,n,capicommand(ect)
|
exten => s,n,capicommand(ect)
|
||||||
|
|
||||||
|
@ -172,7 +172,7 @@ exten => 12345,n,Playback(demo-enterkeywords,noanswer,us)
|
||||||
; Accept incoming call
|
; Accept incoming call
|
||||||
exten => 12345,n,Answer
|
exten => 12345,n,Answer
|
||||||
; Activate suppressor of ambient noises for incoming call
|
; 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
|
; Save PLCI of incoming call to CAPIPLCI variable
|
||||||
exten => 12345,n,capicommand(getplci)
|
exten => 12345,n,capicommand(getplci)
|
||||||
; Set CAPIECTPLCI variable to PLCI of incoming call
|
; 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.
|
feature only together with RTP.
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
noisesuppressor|yes,no
|
noisesuppressor,[yes|no]
|
||||||
|
|
||||||
Syntax example:
|
Syntax example:
|
||||||
s,n,capicommand(noisesuppressor|yes)
|
s,n,capicommand(noisesuppressor,yes)
|
||||||
s,n,capicommand(noisesuppressor|no)
|
s,n,capicommand(noisesuppressor,no)
|
||||||
|
|
||||||
IVR example:
|
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,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
||||||
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
||||||
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
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 => 1,n,Goto(s,restart)
|
||||||
exten => 2,1,capicommand(noisesuppressor|no)
|
exten => 2,1,capicommand(noisesuppressor,no)
|
||||||
exten => 2,n,Goto(s,restart)
|
exten => 2,n,Goto(s,restart)
|
||||||
exten => 99,1,Echo
|
exten => 99,1,Echo
|
||||||
exten => i,1,Playback(invalid)
|
exten => i,1,Playback(invalid)
|
||||||
|
@ -49,7 +49,7 @@ exten => h,1,Hangup
|
||||||
PBX Example:
|
PBX Example:
|
||||||
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
||||||
[macro-capinoisesuppressor]
|
[macro-capinoisesuppressor]
|
||||||
exten => s,1,capicommand(noisesuppressor|yes)
|
exten => s,1,capicommand(noisesuppressor,yes)
|
||||||
|
|
||||||
[isdn-in]
|
[isdn-in]
|
||||||
exten => 12345,1,Progress()
|
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,Playback(demo-enterkeywords,noanswer,us)
|
||||||
exten => 12345,n,Answer
|
exten => 12345,n,Answer
|
||||||
exten => 12345,n,Wait(2)
|
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,Dial(DIALOGICDIVA/ISDN1/100,10,M(capinoisesuppressor))
|
||||||
exten => 12345,n,Hangup()
|
exten => 12345,n,Hangup()
|
||||||
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
||||||
|
@ -79,14 +79,14 @@ Supported hardware:
|
||||||
Requires one Dialogic(R) Diva(R) Media Board equipped with DSPs.
|
Requires one Dialogic(R) Diva(R) Media Board equipped with DSPs.
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
clamping|N
|
clamping,N
|
||||||
N - estimated duration of DTMF tones to be suppressed in ms
|
N - estimated duration of DTMF tones to be suppressed in ms
|
||||||
0 - deactivate clamping
|
0 - deactivate clamping
|
||||||
1 ... 250 - activate clamping
|
1 ... 250 - activate clamping
|
||||||
|
|
||||||
Syntax example:
|
Syntax example:
|
||||||
s,n,capicommand(clamping|100)
|
s,n,capicommand(clamping,100)
|
||||||
s,n,capicommand(clamping|0)
|
s,n,capicommand(clamping,0)
|
||||||
|
|
||||||
IVR example:
|
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,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
||||||
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
||||||
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
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 => 1,n,Goto(s,restart)
|
||||||
exten => 2,1,capicommand(clamping|0)
|
exten => 2,1,capicommand(clamping,0)
|
||||||
exten => 2,n,Goto(s,restart)
|
exten => 2,n,Goto(s,restart)
|
||||||
exten => 99,1,Echo
|
exten => 99,1,Echo
|
||||||
exten => i,1,Playback(invalid)
|
exten => i,1,Playback(invalid)
|
||||||
|
@ -110,7 +110,7 @@ exten => h,1,Hangup
|
||||||
PBX Example:
|
PBX Example:
|
||||||
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
||||||
[macro-capiclamping]
|
[macro-capiclamping]
|
||||||
exten => s,1,capicommand(clamping|100)
|
exten => s,1,capicommand(clamping,100)
|
||||||
|
|
||||||
[isdn-in]
|
[isdn-in]
|
||||||
exten => 12345,1,Progress()
|
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,Playback(demo-enterkeywords,noanswer,us)
|
||||||
exten => 12345,n,Answer
|
exten => 12345,n,Answer
|
||||||
exten => 12345,n,Wait(2)
|
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,Dial(DIALOGICDIVA/ISDN1/100,10,M(capiclamping))
|
||||||
exten => 12345,n,Hangup()
|
exten => 12345,n,Hangup()
|
||||||
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
||||||
|
@ -140,11 +140,11 @@ Supported hardware:
|
||||||
Requires one Diva Media Board equipped with DSPs.
|
Requires one Diva Media Board equipped with DSPs.
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
rxagc|yes,no
|
rxagc,[yes|no]
|
||||||
|
|
||||||
Syntax example:
|
Syntax example:
|
||||||
s,n,capicommand(rxagc|yes)
|
s,n,capicommand(rxagc,yes)
|
||||||
s,n,capicommand(rxagc|no)
|
s,n,capicommand(rxagc,no)
|
||||||
|
|
||||||
IVR example:
|
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,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
||||||
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
||||||
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
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 => 1,n,Goto(s,restart)
|
||||||
exten => 2,1,capicommand(rxagc|no)
|
exten => 2,1,capicommand(rxagc,no)
|
||||||
exten => 2,n,Goto(s,restart)
|
exten => 2,n,Goto(s,restart)
|
||||||
exten => 99,1,Echo
|
exten => 99,1,Echo
|
||||||
exten => i,1,Playback(invalid)
|
exten => i,1,Playback(invalid)
|
||||||
|
@ -168,7 +168,7 @@ exten => h,1,Hangup
|
||||||
PBX Example:
|
PBX Example:
|
||||||
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
||||||
[macro-capirxagc]
|
[macro-capirxagc]
|
||||||
exten => s,1,capicommand(rxagc|yes)
|
exten => s,1,capicommand(rxagc,yes)
|
||||||
|
|
||||||
[isdn-in]
|
[isdn-in]
|
||||||
exten => 12345,1,Progress()
|
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,Playback(demo-enterkeywords,noanswer,us)
|
||||||
exten => 12345,n,Answer
|
exten => 12345,n,Answer
|
||||||
exten => 12345,n,Wait(2)
|
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,Dial(DIALOGICDIVA/ISDN1/100,10,M(capirxagc))
|
||||||
exten => 12345,n,Hangup()
|
exten => 12345,n,Hangup()
|
||||||
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
||||||
|
@ -198,11 +198,11 @@ Supported hardware:
|
||||||
Requires one Diva Media Board equipped with DSPs.
|
Requires one Diva Media Board equipped with DSPs.
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
txagc|yes,no
|
txagc,[yes|no]
|
||||||
|
|
||||||
Syntax example:
|
Syntax example:
|
||||||
s,n,capicommand(txagc|yes)
|
s,n,capicommand(txagc,yes)
|
||||||
s,n,capicommand(txagc|no)
|
s,n,capicommand(txagc,no)
|
||||||
|
|
||||||
IVR example:
|
IVR example:
|
||||||
See rxagc
|
See rxagc
|
||||||
|
@ -226,14 +226,14 @@ Supported hardware:
|
||||||
Requires one Diva Media Board equipped with DSPs.
|
Requires one Diva Media Board equipped with DSPs.
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
rxdgain|N
|
rxdgain,N
|
||||||
N - gain in dBm, float
|
N - gain in dBm, float
|
||||||
-127 ... +6 - gain
|
-127 ... +6 - gain
|
||||||
-128 or less - infinite attenuation
|
-128 or less - infinite attenuation
|
||||||
|
|
||||||
Syntax example:
|
Syntax example:
|
||||||
s,n,capicommand(rxdgain|5.5)
|
s,n,capicommand(rxdgain,5.5)
|
||||||
s,n,capicommand(rxdgain|-14.2)
|
s,n,capicommand(rxdgain,-14.2)
|
||||||
|
|
||||||
IVR example:
|
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,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
||||||
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
||||||
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
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 => 1,n,Goto(s,restart)
|
||||||
exten => 2,1,capicommand(rxdgain|-70)
|
exten => 2,1,capicommand(rxdgain,-70)
|
||||||
exten => 2,n,Goto(s,restart)
|
exten => 2,n,Goto(s,restart)
|
||||||
exten => 99,1,Echo
|
exten => 99,1,Echo
|
||||||
exten => i,1,Playback(invalid)
|
exten => i,1,Playback(invalid)
|
||||||
|
@ -270,12 +270,12 @@ Supported hardware:
|
||||||
Requires one Diva Media Board equipped with DSPs.
|
Requires one Diva Media Board equipped with DSPs.
|
||||||
|
|
||||||
incSyntax:
|
incSyntax:
|
||||||
rxdgain|N
|
rxdgain,N
|
||||||
N - gain increment in dBm, float
|
N - gain increment in dBm, float
|
||||||
|
|
||||||
Syntax example:
|
Syntax example:
|
||||||
s,n,capicommand(incrxdgain|2.5) // add 2.5 dBm to actiall 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
|
s,n,capicommand(incrxdgain,-2.5) // substract 2.5 dBm from actual gain
|
||||||
|
|
||||||
IVR example:
|
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,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
||||||
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
||||||
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
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 => 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 => 2,n,Goto(s,restart)
|
||||||
exten => 99,1,Echo
|
exten => 99,1,Echo
|
||||||
exten => i,1,Playback(invalid)
|
exten => i,1,Playback(invalid)
|
||||||
|
@ -312,14 +312,14 @@ Supported hardware:
|
||||||
Requires one Diva Media Board equipped with DSPs.
|
Requires one Diva Media Board equipped with DSPs.
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
txdgain|N
|
txdgain,N
|
||||||
N - gain in dBm, float
|
N - gain in dBm, float
|
||||||
-127 ... +6 - gain
|
-127 ... +6 - gain
|
||||||
-128 or less - infinite attenuation
|
-128 or less - infinite attenuation
|
||||||
|
|
||||||
Syntax example:
|
Syntax example:
|
||||||
s,n,capicommand(txdgain|5.5)
|
s,n,capicommand(txdgain,5.5)
|
||||||
s,n,capicommand(txdgain|-14.2)
|
s,n,capicommand(txdgain,-14.2)
|
||||||
|
|
||||||
IVR example:
|
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,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
||||||
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
||||||
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
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 => 1,n,Goto(s,restart)
|
||||||
exten => 2,1,capicommand(txdgain|-70)
|
exten => 2,1,capicommand(txdgain,-70)
|
||||||
exten => 2,n,Goto(s,restart)
|
exten => 2,n,Goto(s,restart)
|
||||||
exten => 99,1,Echo
|
exten => 99,1,Echo
|
||||||
exten => i,1,Playback(invalid)
|
exten => i,1,Playback(invalid)
|
||||||
|
@ -356,12 +356,12 @@ Supported hardware:
|
||||||
Requires one Diva Media Board equipped with DSPs.
|
Requires one Diva Media Board equipped with DSPs.
|
||||||
|
|
||||||
incSyntax:
|
incSyntax:
|
||||||
rxtgain|N
|
rxtgain,N
|
||||||
N - gain increment in dBm, float
|
N - gain increment in dBm, float
|
||||||
|
|
||||||
Syntax example:
|
Syntax example:
|
||||||
s,n,capicommand(inctxdgain|2.5) // add 2.5 dBm to actiall 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
|
s,n,capicommand(inctxdgain,-2.5) // substract 2.5 dBm from actual gain
|
||||||
|
|
||||||
IVR example:
|
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,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
||||||
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
||||||
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
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 => 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 => 2,n,Goto(s,restart)
|
||||||
exten => 99,1,Echo
|
exten => 99,1,Echo
|
||||||
exten => i,1,Playback(invalid)
|
exten => i,1,Playback(invalid)
|
||||||
|
@ -404,15 +404,15 @@ Supported hardware:
|
||||||
Requires one Diva Media Board equipped with DSPs.
|
Requires one Diva Media Board equipped with DSPs.
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
pitchcontrol|RxN|TxN - set Rx and Tx rate to different values
|
pitchcontrol,RxN,TxN - set Rx and Tx rate to different values
|
||||||
pitchcontrol|N - set Rx and Tx rate to same value
|
pitchcontrol,N - set Rx and Tx rate to same value
|
||||||
pitchcontrol - deactivate rate control
|
pitchcontrol - deactivate rate control
|
||||||
|
|
||||||
RxN, TxN, N - rate in the range 1250 ... 51200 Hz.
|
RxN, TxN, N - rate in the range 1250 ... 51200 Hz.
|
||||||
|
|
||||||
Syntax example:
|
Syntax example:
|
||||||
s,n,capicommand(pitchcontrol|8200,8100) ; Set Rx rate to 8200 Hz and Tx rate to 8100 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
|
s,n,capicommand(pitchcontrol,8400) ; Set Rx and Tx rate to 8400 Hz
|
||||||
|
|
||||||
IVR example:
|
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,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
||||||
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
||||||
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
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 => 1,n,Goto(s,restart)
|
||||||
exten => 2,1,capicommand(pitchcontrol|8000)
|
exten => 2,1,capicommand(pitchcontrol,8000)
|
||||||
exten => 2,n,Goto(s,restart)
|
exten => 2,n,Goto(s,restart)
|
||||||
exten => 99,1,Echo
|
exten => 99,1,Echo
|
||||||
exten => i,1,Playback(invalid)
|
exten => i,1,Playback(invalid)
|
||||||
|
@ -455,14 +455,14 @@ Supported hardware:
|
||||||
Requires one Diva Media Board equipped with DSPs.
|
Requires one Diva Media Board equipped with DSPs.
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
incpitchcontrol|RxN|TxN - change Rx and Tx rate using different values
|
incpitchcontrol,RxN,TxN - change Rx and Tx rate using different values
|
||||||
incpitchcontrol|N - change Rx and Tx rate using same value
|
incpitchcontrol,N - change Rx and Tx rate using same value
|
||||||
|
|
||||||
RxN, TxN, N - rate change in Hz
|
RxN, TxN, N - rate change in Hz
|
||||||
|
|
||||||
Syntax example:
|
Syntax example:
|
||||||
s,n,capicommand(incpitchcontrol|100) // Increase 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
|
s,n,capicommand(incpitchcontrol,-100) // Decrease Rx and Tx rate by 100 Hz
|
||||||
|
|
||||||
IVR example:
|
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,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
||||||
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
||||||
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
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 => 1,n,Goto(s,restart)
|
||||||
exten => 2,1,capicommand(incpitchcontrol|100)
|
exten => 2,1,capicommand(incpitchcontrol,100)
|
||||||
exten => 2,n,Goto(s,restart)
|
exten => 2,n,Goto(s,restart)
|
||||||
exten => 99,1,Echo
|
exten => 99,1,Echo
|
||||||
exten => i,1,Playback(invalid)
|
exten => i,1,Playback(invalid)
|
||||||
|
@ -501,11 +501,11 @@ Supported hardware:
|
||||||
Requires one Diva Media Board equipped with DSPs.
|
Requires one Diva Media Board equipped with DSPs.
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
mftonedetection|yes,no
|
mftonedetection,[yes|no]
|
||||||
|
|
||||||
Syntax example:
|
Syntax example:
|
||||||
s,n,capicommand(mftonedetection|yes)
|
s,n,capicommand(mftonedetection,yes)
|
||||||
s,n,capicommand(mftonedetection|no)
|
s,n,capicommand(mftonedetection,no)
|
||||||
|
|
||||||
IVR example:
|
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,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
||||||
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
||||||
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
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 => 1,n,Goto(s,restart)
|
||||||
exten => 2,1,capicommand(mftonedetection|no)
|
exten => 2,1,capicommand(mftonedetection,no)
|
||||||
exten => 2,n,Goto(s,restart)
|
exten => 2,n,Goto(s,restart)
|
||||||
exten => 99,1,Echo
|
exten => 99,1,Echo
|
||||||
exten => i,1,Playback(invalid)
|
exten => i,1,Playback(invalid)
|
||||||
|
@ -542,11 +542,11 @@ Supported hardware:
|
||||||
Requires one Diva Media Board equipped with DSPs.
|
Requires one Diva Media Board equipped with DSPs.
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
pulsedetection|yes,no
|
pulsedetection,[yes|no]
|
||||||
|
|
||||||
Syntax example:
|
Syntax example:
|
||||||
s,n,capicommand(pulsedetection|yes)
|
s,n,capicommand(pulsedetection,yes)
|
||||||
s,n,capicommand(pulsedetection|no)
|
s,n,capicommand(pulsedetection,no)
|
||||||
|
|
||||||
IVR example:
|
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,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
||||||
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
||||||
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
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 => 1,n,Goto(s,restart)
|
||||||
exten => 2,1,capicommand(pulsedetection|no)
|
exten => 2,1,capicommand(pulsedetection,no)
|
||||||
exten => 2,n,Goto(s,restart)
|
exten => 2,n,Goto(s,restart)
|
||||||
exten => 99,1,Echo
|
exten => 99,1,Echo
|
||||||
exten => i,1,Playback(invalid)
|
exten => i,1,Playback(invalid)
|
||||||
|
@ -584,7 +584,7 @@ Supported hardware:
|
||||||
Requires one Diva Media Board equipped with DSPs.
|
Requires one Diva Media Board equipped with DSPs.
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
sendtone|N
|
sendtone,N
|
||||||
stoptone
|
stoptone
|
||||||
|
|
||||||
N - tone to be sent
|
N - tone to be sent
|
||||||
|
@ -633,7 +633,7 @@ stoptone
|
||||||
0xCB - Tone Alerting Signal (for Caller ID in PSTN)
|
0xCB - Tone Alerting Signal (for Caller ID in PSTN)
|
||||||
|
|
||||||
Syntax example:
|
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
|
s,n,capicommand(stoptone) ; stop tone transmission
|
||||||
|
|
||||||
IVR example
|
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,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
||||||
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
||||||
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
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 => 1,n,Goto(s,restart)
|
||||||
exten => 2,1,capicommand(stoptone)
|
exten => 2,1,capicommand(stoptone)
|
||||||
exten => 2,n,Goto(s,restart)
|
exten => 2,n,Goto(s,restart)
|
||||||
|
@ -673,7 +673,7 @@ Supported hardware:
|
||||||
Not available if RTP is active.
|
Not available if RTP is active.
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
starttonedetection|N
|
starttonedetection,N
|
||||||
stoptonedetection
|
stoptonedetection
|
||||||
|
|
||||||
N - Extension number to be used in case a tone is detected.
|
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)
|
0xCB - Tone Alerting Signal detected (for Caller ID in PSTN)
|
||||||
|
|
||||||
Syntax example:
|
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
|
s,n,capicommand(stoptonedetection) ; Disable detection of tones
|
||||||
|
|
||||||
IVR example:
|
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,1,Set(TIMEOUT(digit)=1)
|
||||||
exten => 1,n,Set(TIMEOUT(response)=5)
|
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)
|
exten => 1,n,Goto(s,restart)
|
||||||
|
|
||||||
; Continue after detection of the tone
|
; Continue after detection of the tone
|
||||||
|
@ -786,13 +786,13 @@ Description:
|
||||||
independent from the dialplan.
|
independent from the dialplan.
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
vc|command|key|param|param1|...|paranN
|
vc,command,key,param,param1,...,paranN
|
||||||
Add to menu: on detection of key execute command using parameters param1|...|paramN
|
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
|
Add to menu: on detection of key execute command without parameters
|
||||||
|
|
||||||
vc|command
|
vc,command
|
||||||
Remove all instances of command from menu
|
Remove all instances of command from menu
|
||||||
|
|
||||||
vc
|
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
|
In case one command will use a key that is already in use, then a new command will overwrite
|
||||||
the existing command:
|
the existing command:
|
||||||
exten => s,n,capicommand(vc|txagc|3|yes)
|
exten => s,n,capicommand(vc,txagc,3,yes)
|
||||||
exten => s,n,capicommand(vc|inctxdgain|3|1.5)
|
exten => s,n,capicommand(vc,inctxdgain,3,1.5)
|
||||||
|
|
||||||
is equivalent to:
|
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
|
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.
|
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.
|
two or three digits for the key. This will prevent an activation by accidentally pressing a key.
|
||||||
|
|
||||||
Syntax example:
|
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,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,txagc,3,yes) ; Execute txagc,yes if received DTMF digit 3
|
||||||
|
|
||||||
IVR Example:
|
IVR Example:
|
||||||
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
||||||
|
@ -823,14 +823,14 @@ IVR Example:
|
||||||
exten => _X.,1,Answer
|
exten => _X.,1,Answer
|
||||||
exten => _X.,n,Goto(s,1)
|
exten => _X.,n,Goto(s,1)
|
||||||
exten => s,1,Wait(1)
|
exten => s,1,Wait(1)
|
||||||
exten => s,n,capicommand(vc|sendtone|1|0x82)
|
exten => s,n,capicommand(vc,sendtone,1,0x82)
|
||||||
exten => s,n,capicommand(vc|stoptone|2)
|
exten => s,n,capicommand(vc,stoptone,2)
|
||||||
exten => s,n,capicommand(vc|txagc|3|yes)
|
exten => s,n,capicommand(vc,txagc,3,yes)
|
||||||
exten => s,n,capicommand(vc|txagc|4|no)
|
exten => s,n,capicommand(vc,txagc,4,no)
|
||||||
exten => s,n,capicommand(vc|inctxdgain|5|1.5)
|
exten => s,n,capicommand(vc,inctxdgain,5,1.5)
|
||||||
exten => s,n,capicommand(vc|inctxdgain|7|-2.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,8,0,100)
|
||||||
exten => s,n,capicommand(vc|incpitchcontrol|9|0|-400)
|
exten => s,n,capicommand(vc,incpitchcontrol,9,0,-400)
|
||||||
exten => s,n(restart),Playback(demo-instruct)
|
exten => s,n(restart),Playback(demo-instruct)
|
||||||
exten => s,n,Goto(s,restart)
|
exten => s,n,Goto(s,restart)
|
||||||
exten => s,n,Hangup
|
exten => s,n,Hangup
|
||||||
|
@ -870,7 +870,7 @@ Supported hardware:
|
||||||
Diva
|
Diva
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
capicommand(chat|<roomname>|<options>|controller)
|
capicommand(chat,<roomname>,<options>,controller)
|
||||||
roomname - conference room name
|
roomname - conference room name
|
||||||
options
|
options
|
||||||
m - The first caller will get music-on-hold until the second caller arrives
|
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
|
controller - CAPI controller
|
||||||
|
|
||||||
Syntax example:
|
Syntax example:
|
||||||
exten => s,n,capicommand(chat|test|m|1)
|
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,3)
|
||||||
exten => s,n,capicommand(chat|test|m|1-4)
|
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)
|
||||||
exten => s,n,capicommand(chat|test|m|1-4,7-10)
|
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,mh300,1-4)
|
||||||
|
|
||||||
IVR example:
|
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
|
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
|
; You can create macro to set up vc menu
|
||||||
exten => 1,1,capicommand(clamping|100) ; Activate suppression of DTMF tones
|
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,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,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,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(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,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,1,capicommand(clamping,100) ; Activate suppression of DTMF tones
|
||||||
exten => 2,n,capicommand(txdgain|-128) ; Deactivate tx path
|
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,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,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,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(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,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,n,capicommand(chat,test2,m,1-4) ; Create/enter conference room 'test2'
|
||||||
|
|
||||||
exten => i,1,Playback(invalid)
|
exten => i,1,Playback(invalid)
|
||||||
exten => i,n,Goto(s,restart)
|
exten => i,n,Goto(s,restart)
|
||||||
|
@ -1006,32 +1006,32 @@ Supported hardware:
|
||||||
|
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
capicommand(ressource|controller)
|
capicommand(ressource,controller)
|
||||||
controller - CAPI controller
|
controller - CAPI controller
|
||||||
|
|
||||||
|
|
||||||
Syntax example:
|
Syntax example:
|
||||||
exten => s,n,capicommand(resource|1)
|
exten => s,n,capicommand(resource,1)
|
||||||
exten => s,n,capicommand(resource|1,3)
|
exten => s,n,capicommand(resource,1,3)
|
||||||
exten => s,n,capicommand(resource|1-4)
|
exten => s,n,capicommand(resource,1-4)
|
||||||
exten => s,n,capicommand(resource|1-4,7)
|
exten => s,n,capicommand(resource,1-4,7)
|
||||||
exten => s,n,capicommand(resource|1-4,7-10)
|
exten => s,n,capicommand(resource,1-4,7-10)
|
||||||
|
|
||||||
IVR example:
|
IVR example:
|
||||||
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
||||||
[isdn-in]
|
[isdn-in]
|
||||||
exten => _X.,1,Answer ; Answer the line
|
exten => _X.,1,Answer ; Answer the line
|
||||||
exten => _X.,n,Goto(s,1)
|
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
|
; 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(clamping,100) ; Activate suppression of DTMF tones
|
||||||
exten => s,n,capicommand(rxagc|yes) ; Activate Rx AGC
|
exten => s,n,capicommand(rxagc,yes) ; Activate Rx AGC
|
||||||
exten => s,n,capicommand(noisesuppressor|yes) ; Activate suppression of ambient noises
|
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,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,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,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(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(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
|
; media processing resource is assigned by 'resource' command or for
|
||||||
; E.1/T.1/S0/POTS members
|
; E.1/T.1/S0/POTS members
|
||||||
|
|
||||||
|
@ -1071,14 +1071,14 @@ Direction:
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
The voice stream of regular users is active by default. If the conference mode was changed to half duplex
|
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
|
('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')
|
mode is changed back to full duplex ('chat_mute,no')
|
||||||
|
|
||||||
Supported hardware:
|
Supported hardware:
|
||||||
Diva
|
Diva
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
capicommand(chat_mute|<action>[|<roomname>])
|
capicommand(chat_mute,<action>[,<roomname>])
|
||||||
action - mandatory
|
action - mandatory
|
||||||
yes - Change conference mode to half duplex, deactivate voice stream from regular
|
yes - Change conference mode to half duplex, deactivate voice stream from regular
|
||||||
users to conference.
|
users to conference.
|
||||||
|
@ -1090,32 +1090,32 @@ capicommand(chat_mute|<action>[|<roomname>])
|
||||||
functionality of a common conference operator.
|
functionality of a common conference operator.
|
||||||
|
|
||||||
Syntax example:
|
Syntax example:
|
||||||
exten => s,n,capicommand(chat_mute|yes)
|
exten => s,n,capicommand(chat_mute,yes)
|
||||||
exten => s,n,capicommand(char_mute|no)
|
exten => s,n,capicommand(char_mute,no)
|
||||||
exten => s,n,capicommand(chat_mute|yes|test_room)
|
exten => s,n,capicommand(chat_mute,yes,test_room)
|
||||||
exten => s,n,capicommand(char_mute|no|test_room)
|
exten => s,n,capicommand(char_mute,no,test_room)
|
||||||
|
|
||||||
Conference example:
|
Conference example:
|
||||||
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
||||||
[isdn-in]
|
[isdn-in]
|
||||||
exten => 1291,1,Answer ; Accept call
|
exten => 1291,1,Answer ; Accept call
|
||||||
exten => 1291,n,capicommand(resource|1-4) ; assign resource PLCI if call from IP
|
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(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,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(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(chat,test_chat,mo,1-4) ; Add to conference as operator
|
||||||
exten => 1291,n,Hangup()
|
exten => 1291,n,Hangup()
|
||||||
|
|
||||||
exten => 1292,1,Answer ; Accept call
|
exten => 1292,1,Answer ; Accept call
|
||||||
exten => 1292,n,capicommand(resource|1-4) ; Assign resource PLCI if call from IP
|
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(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(chat,test_chat,m,1-4) ; Add to conference as regular user
|
||||||
exten => 1292,n,Hangup()
|
exten => 1292,n,Hangup()
|
||||||
|
|
||||||
exten => 1293,1,Answer ; Accept call
|
exten => 1293,1,Answer ; Accept call
|
||||||
exten => 1293,n,capicommand(resource|1-4) ; Assign resource PLCI if call from IP
|
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(clamping,200) ; Activate DTMF suppression
|
||||||
exten => 1293,n,capicommand(chat|test_chat|ml|1-4) ; Add to conference as listener
|
exten => 1293,n,capicommand(chat,test_chat,ml,1-4) ; Add to conference as listener
|
||||||
exten => 1293,n,Hangup()
|
exten => 1293,n,Hangup()
|
||||||
|
|
||||||
exten => _X.,1,Answer
|
exten => _X.,1,Answer
|
||||||
|
@ -1142,7 +1142,7 @@ Supported hardware:
|
||||||
Diva
|
Diva
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
capicommand(chat_play|<roomname>|<options>|<filename>|controller)
|
capicommand(chat_play,<roomname>,<options>,<filename>,controller)
|
||||||
roomname - conference room name
|
roomname - conference room name
|
||||||
options
|
options
|
||||||
m - The caller will get music-on-hold while message is played
|
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
|
controller - CAPI controller
|
||||||
|
|
||||||
Syntax example:
|
Syntax example:
|
||||||
exten => s,n,capicommand(chat|test|m|/tmp/file.alaw|1)
|
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,,/tmp/file.alaw,1-4,7-10)
|
||||||
|
|
||||||
IVR example:
|
IVR example:
|
||||||
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
||||||
[isdn-in]
|
[isdn-in]
|
||||||
exten => _X.,1,Answer ; Answer the line
|
exten => _X.,1,Answer ; Answer the line
|
||||||
exten => _X.,n,Goto(s,1)
|
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,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,Record(/tmp/${UNIQUEID}-info:alaw) ; Record message
|
||||||
exten => s,n,capicommand(rxagc|no) ; Deactivate Rx AGC
|
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(chat_play,test,m,/tmp/${UNIQUEID}-info.alaw,1-4) ; Play message to conference,
|
||||||
; play music on hold to caller
|
; 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
|
Diva
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
capicommand(chat_command|<options>|<roomname>)
|
capicommand(chat_command,<options>,<roomname>)
|
||||||
options - mandatory
|
options - mandatory
|
||||||
r - Remove newest user from conference.
|
r - Remove newest user from conference.
|
||||||
Command does not apply to calling member and be used by operators only.
|
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
|
roomname - optional, room caller assigned to is used if not present
|
||||||
|
|
||||||
Syntax example:
|
Syntax example:
|
||||||
exten => s,n,capicommand(chat_command|r)
|
exten => s,n,capicommand(chat_command,r)
|
||||||
exten => s,n,capicommand(chat_command|lo|test)
|
exten => s,n,capicommand(chat_command,lo,test)
|
||||||
exten => s,n,capicommand(chat_command|a|test)
|
exten => s,n,capicommand(chat_command,a,test)
|
||||||
|
|
||||||
Conference example:
|
Conference example:
|
||||||
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
||||||
|
@ -1205,15 +1205,15 @@ exten => _X.,1,Answer
|
||||||
exten => _X.,n,Authenticate(12345)
|
exten => _X.,n,Authenticate(12345)
|
||||||
exten => _X.,n,Playback(vm-rec-name)
|
exten => _X.,n,Playback(vm-rec-name)
|
||||||
exten => _X.,n,Record(/tmp/name${UNIQUEID}.alaw,5,15) ; Record 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(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(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(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,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_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,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,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(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,c1,mo,1-4) ; Add caller to conference as operator
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
@ -1253,11 +1253,11 @@ Supported hardware:
|
||||||
Diva Media Boards equipped with DSPs.
|
Diva Media Boards equipped with DSPs.
|
||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
echocancel|yes,no
|
echocancel,[yes|no]
|
||||||
|
|
||||||
Syntax example:
|
Syntax example:
|
||||||
s,n,capicommand(echocancel|yes)
|
s,n,capicommand(echocancel,yes)
|
||||||
s,n,capicommand(echocancel|no)
|
s,n,capicommand(echocancel,no)
|
||||||
|
|
||||||
IVR example:
|
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,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
||||||
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
exten => s,n(restart),BackGround(demo-instruct) ; Play some instructions
|
||||||
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
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 => 1,n,Goto(s,restart)
|
||||||
exten => 2,1,capicommand(echocancel|no)
|
exten => 2,1,capicommand(echocancel,no)
|
||||||
exten => 2,n,Goto(s,restart)
|
exten => 2,n,Goto(s,restart)
|
||||||
exten => 99,1,Echo
|
exten => 99,1,Echo
|
||||||
exten => i,1,Playback(invalid)
|
exten => i,1,Playback(invalid)
|
||||||
|
@ -1281,13 +1281,13 @@ exten => h,1,Hangup
|
||||||
PBX Example:
|
PBX Example:
|
||||||
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
||||||
[macro-capiechocancel]
|
[macro-capiechocancel]
|
||||||
exten => s,1,capicommand(echocancel|yes)
|
exten => s,1,capicommand(echocancel,yes)
|
||||||
|
|
||||||
[isdn-in]
|
[isdn-in]
|
||||||
exten => 12345,1,Progress()
|
exten => 12345,1,Progress()
|
||||||
exten => 12345,n,Set(TIMEOUT(digit)=1) ; Set Digit Timeout to 5 seconds
|
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,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,Playback(demo-enterkeywords,noanswer,us)
|
||||||
exten => 12345,n,Answer
|
exten => 12345,n,Answer
|
||||||
exten => 12345,n,Wait(2)
|
exten => 12345,n,Wait(2)
|
||||||
|
|
|
@ -58,7 +58,7 @@ The QSIG support includes:
|
||||||
its subchannels
|
its subchannels
|
||||||
|
|
||||||
- Simple Call Transfer
|
- 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.
|
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.
|
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.
|
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;
|
unsigned short b3_protocol_options = 0x0001;
|
||||||
int extended_resolution = 0;
|
int extended_resolution = 0;
|
||||||
|
|
||||||
filename = strsep(&data, "|");
|
filename = strsep(&data, COMMANDSEPARATOR);
|
||||||
stationid = strsep(&data, "|");
|
stationid = strsep(&data, COMMANDSEPARATOR);
|
||||||
headline = strsep(&data, "|");
|
headline = strsep(&data, COMMANDSEPARATOR);
|
||||||
options = data;
|
options = data;
|
||||||
|
|
||||||
if (!stationid)
|
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;
|
B3_PROTO_FAXG3 b3conf;
|
||||||
char buffer[CAPI_MAX_STRING];
|
char buffer[CAPI_MAX_STRING];
|
||||||
|
|
||||||
filename = strsep(&data, "|");
|
filename = strsep(&data, COMMANDSEPARATOR);
|
||||||
stationid = strsep(&data, "|");
|
stationid = strsep(&data, COMMANDSEPARATOR);
|
||||||
headline = strsep(&data, "|");
|
headline = strsep(&data, COMMANDSEPARATOR);
|
||||||
options = data;
|
options = data;
|
||||||
|
|
||||||
if (!stationid)
|
if (!stationid)
|
||||||
|
@ -2989,9 +2989,9 @@ static int pbx_capi_receive_fax(struct ast_channel *c, char *data)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
(void)strsep(&ldata, "|");
|
(void)strsep(&ldata, COMMANDSEPARATOR);
|
||||||
(void)strsep(&ldata, "|");
|
(void)strsep(&ldata, COMMANDSEPARATOR);
|
||||||
(void)strsep(&ldata, "|");
|
(void)strsep(&ldata, COMMANDSEPARATOR);
|
||||||
while ((ldata) && (*ldata)) {
|
while ((ldata) && (*ldata)) {
|
||||||
switch (*ldata) {
|
switch (*ldata) {
|
||||||
case 'X':
|
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;
|
unsigned short b3_protocol_options = 0;
|
||||||
int extended_resolution = 0;
|
int extended_resolution = 0;
|
||||||
|
|
||||||
filename = strsep(&data, "|");
|
filename = strsep(&data, COMMANDSEPARATOR);
|
||||||
stationid = strsep(&data, "|");
|
stationid = strsep(&data, COMMANDSEPARATOR);
|
||||||
headline = strsep(&data, "|");
|
headline = strsep(&data, COMMANDSEPARATOR);
|
||||||
options = data;
|
options = data;
|
||||||
|
|
||||||
if (!stationid)
|
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;
|
B3_PROTO_FAXG3 b3conf;
|
||||||
char buffer[CAPI_MAX_STRING];
|
char buffer[CAPI_MAX_STRING];
|
||||||
|
|
||||||
filename = strsep(&data, "|");
|
filename = strsep(&data, COMMANDSEPARATOR);
|
||||||
stationid = strsep(&data, "|");
|
stationid = strsep(&data, COMMANDSEPARATOR);
|
||||||
headline = strsep(&data, "|");
|
headline = strsep(&data, COMMANDSEPARATOR);
|
||||||
options = data;
|
options = data;
|
||||||
|
|
||||||
if (!stationid)
|
if (!stationid)
|
||||||
|
@ -3447,9 +3447,9 @@ static int pbx_capi_send_fax(struct ast_channel *c, char *data)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
(void)strsep(&ldata, "|");
|
(void)strsep(&ldata, COMMANDSEPARATOR);
|
||||||
(void)strsep(&ldata, "|");
|
(void)strsep(&ldata, COMMANDSEPARATOR);
|
||||||
(void)strsep(&ldata, "|");
|
(void)strsep(&ldata, COMMANDSEPARATOR);
|
||||||
while ((ldata) && (*ldata)) {
|
while ((ldata) && (*ldata)) {
|
||||||
switch (*ldata) {
|
switch (*ldata) {
|
||||||
case 'X':
|
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");
|
" deflection requires an argument (destination phone number)\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
number = strsep(¶m, "|");
|
number = strsep(¶m, COMMANDSEPARATOR);
|
||||||
numberlen = strlen(number);
|
numberlen = strlen(number);
|
||||||
|
|
||||||
if (!numberlen) {
|
if (!numberlen) {
|
||||||
|
@ -5919,7 +5919,7 @@ static int pbx_capi_ect(struct ast_channel *c, char *param)
|
||||||
plci = (unsigned int)strtoul(id, NULL, 0);
|
plci = (unsigned int)strtoul(id, NULL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
holdid = strsep(¶m, "|");
|
holdid = strsep(¶m, COMMANDSEPARATOR);
|
||||||
|
|
||||||
if (holdid) {
|
if (holdid) {
|
||||||
plci = (unsigned int)strtoul(holdid, NULL, 0);
|
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);
|
s = ast_strdupa(data);
|
||||||
stringp = s;
|
stringp = s;
|
||||||
command = strsep(&stringp, "|");
|
command = strsep(&stringp, COMMANDSEPARATOR);
|
||||||
params = stringp;
|
params = stringp;
|
||||||
cc_verbose(2, 1, VERBOSE_PREFIX_3 "capicommand: '%s' '%s'\n",
|
cc_verbose(2, 1, VERBOSE_PREFIX_3 "capicommand: '%s' '%s'\n",
|
||||||
command, params);
|
command, params);
|
||||||
|
|
|
@ -71,6 +71,8 @@ struct _diva_stream_scheduling_entry;
|
||||||
|
|
||||||
#define CAPI_MAX_FACILITYDATAARRAY_SIZE 300
|
#define CAPI_MAX_FACILITYDATAARRAY_SIZE 300
|
||||||
|
|
||||||
|
#define COMMANDSEPARATOR "|,"
|
||||||
|
|
||||||
#ifdef CC_AST_HAS_FORMAT_T
|
#ifdef CC_AST_HAS_FORMAT_T
|
||||||
typedef format_t cc_format_t;
|
typedef format_t cc_format_t;
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -602,8 +602,8 @@ int pbx_capi_chat(struct ast_channel *c, char *param)
|
||||||
unsigned int hangup_timeout = 0;
|
unsigned int hangup_timeout = 0;
|
||||||
room_member_type_t room_member_type = RoomMemberDefault;
|
room_member_type_t room_member_type = RoomMemberDefault;
|
||||||
|
|
||||||
roomname = strsep(¶m, "|");
|
roomname = strsep(¶m, COMMANDSEPARATOR);
|
||||||
options = strsep(¶m, "|");
|
options = strsep(¶m, COMMANDSEPARATOR);
|
||||||
controller = param;
|
controller = param;
|
||||||
|
|
||||||
if (!roomname) {
|
if (!roomname) {
|
||||||
|
@ -709,9 +709,9 @@ int pbx_capi_chat_play(struct ast_channel *c, char *param)
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
roomname = strsep(¶m, "|");
|
roomname = strsep(¶m, COMMANDSEPARATOR);
|
||||||
options = strsep(¶m, "|");
|
options = strsep(¶m, COMMANDSEPARATOR);
|
||||||
file_name = strsep(¶m, "|");
|
file_name = strsep(¶m, COMMANDSEPARATOR);
|
||||||
controller = param;
|
controller = param;
|
||||||
|
|
||||||
if (!roomname) {
|
if (!roomname) {
|
||||||
|
@ -829,7 +829,7 @@ int pbx_capi_chat_command(struct ast_channel *c, char *param)
|
||||||
struct capichat_s *room, *tmproom;
|
struct capichat_s *room, *tmproom;
|
||||||
struct capi_pvt *i;
|
struct capi_pvt *i;
|
||||||
unsigned int roomnumber, ret = 0;
|
unsigned int roomnumber, ret = 0;
|
||||||
const char* options = strsep(¶m, "|");
|
const char* options = strsep(¶m, COMMANDSEPARATOR);
|
||||||
const char* roomname = param;
|
const char* roomname = param;
|
||||||
unsigned int disconnect_command = 0;
|
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 */
|
cc_format_t codecs = 0; /* codecs are disabled by default */
|
||||||
int all = 0;
|
int all = 0;
|
||||||
|
|
||||||
controller = strsep(¶m, "|");
|
controller = strsep(¶m, COMMANDSEPARATOR);
|
||||||
codeclist = param;
|
codeclist = param;
|
||||||
|
|
||||||
if (controller) {
|
if (controller) {
|
||||||
|
@ -1068,7 +1068,7 @@ int pbx_capi_chat_mute(struct ast_channel *c, char *param)
|
||||||
struct capichat_s *room;
|
struct capichat_s *room;
|
||||||
unsigned int roomnumber;
|
unsigned int roomnumber;
|
||||||
room_mode_t room_mode;
|
room_mode_t room_mode;
|
||||||
const char* roommode = strsep(¶m, "|");
|
const char* roommode = strsep(¶m, COMMANDSEPARATOR);
|
||||||
const char* roomname = param;
|
const char* roomname = param;
|
||||||
struct capi_pvt *i;
|
struct capi_pvt *i;
|
||||||
|
|
||||||
|
|
|
@ -1203,7 +1203,7 @@ int pbx_capi_qsig_ct(struct ast_channel *c, char *param)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
marker = strsep(¶m, "|");
|
marker = strsep(¶m, COMMANDSEPARATOR);
|
||||||
|
|
||||||
callmark = atoi(marker);
|
callmark = atoi(marker);
|
||||||
cc_qsig_verbose( 1, VERBOSE_PREFIX_4 " * QSIG_CT: using call marker %i(%s)\n", callmark, 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 (param) { /* got Call Transfer Parameters */
|
||||||
if (info) {
|
if (info) {
|
||||||
cid = strsep(¶m, "|");
|
cid = strsep(¶m, COMMANDSEPARATOR);
|
||||||
cidlen = strlen(cid);
|
cidlen = strlen(cid);
|
||||||
if (cidlen > 20) /* HACK: stop action here, maybe we have invalid data */
|
if (cidlen > 20) /* HACK: stop action here, maybe we have invalid data */
|
||||||
cidlen = 20;
|
cidlen = 20;
|
||||||
} else {
|
} else {
|
||||||
char *tmp = strsep(¶m, "|");
|
char *tmp = strsep(¶m, COMMANDSEPARATOR);
|
||||||
tmp = NULL;
|
tmp = NULL;
|
||||||
cid = strsep(¶m, "|");
|
cid = strsep(¶m, COMMANDSEPARATOR);
|
||||||
cidlen = strlen(cid);
|
cidlen = strlen(cid);
|
||||||
if (cidlen > 20) /* HACK: stop action here, maybe we have invalid data */
|
if (cidlen > 20) /* HACK: stop action here, maybe we have invalid data */
|
||||||
cidlen = 20;
|
cidlen = 20;
|
||||||
|
|
||||||
ccanswer = strsep(¶m, "|");
|
ccanswer = strsep(¶m, COMMANDSEPARATOR);
|
||||||
if (ccanswer[0])
|
if (ccanswer[0])
|
||||||
icanswer = ccanswer[0] - 0x30;
|
icanswer = ccanswer[0] - 0x30;
|
||||||
}
|
}
|
||||||
|
@ -618,12 +618,12 @@ void cc_qsig_encode_ecma_sscalltransfer(unsigned char * buf, unsigned int *idx,
|
||||||
char c[255];
|
char c[255];
|
||||||
int ix = 0;
|
int ix = 0;
|
||||||
|
|
||||||
cidsrc = strsep(¶m, "|");
|
cidsrc = strsep(¶m, COMMANDSEPARATOR);
|
||||||
srclen = strlen(cidsrc);
|
srclen = strlen(cidsrc);
|
||||||
if (srclen > 20) /* HACK: stop action here, maybe we have invalid data */
|
if (srclen > 20) /* HACK: stop action here, maybe we have invalid data */
|
||||||
srclen = 20;
|
srclen = 20;
|
||||||
|
|
||||||
ciddst = strsep(¶m, "|");
|
ciddst = strsep(¶m, COMMANDSEPARATOR);
|
||||||
dstlen = strlen(ciddst);
|
dstlen = strlen(ciddst);
|
||||||
if (dstlen > 20) /* HACK: stop action here, maybe we have invalid data */
|
if (dstlen > 20) /* HACK: stop action here, maybe we have invalid data */
|
||||||
dstlen = 20;
|
dstlen = 20;
|
||||||
|
|
|
@ -727,7 +727,7 @@ int pbx_capi_ccpartybusy(struct ast_channel *c, char *data)
|
||||||
struct ccbsnr_s *ccbsnr;
|
struct ccbsnr_s *ccbsnr;
|
||||||
char partybusy = 0;
|
char partybusy = 0;
|
||||||
|
|
||||||
slinkageid = strsep(&data, "|");
|
slinkageid = strsep(&data, COMMANDSEPARATOR);
|
||||||
yesno = data;
|
yesno = data;
|
||||||
|
|
||||||
if (slinkageid) {
|
if (slinkageid) {
|
||||||
|
@ -821,9 +821,9 @@ int pbx_capi_ccbs(struct ast_channel *c, char *data)
|
||||||
MESSAGE_EXCHANGE_ERROR error;
|
MESSAGE_EXCHANGE_ERROR error;
|
||||||
unsigned int ccbsnrstate;
|
unsigned int ccbsnrstate;
|
||||||
|
|
||||||
slinkageid = strsep(&data, "|");
|
slinkageid = strsep(&data, COMMANDSEPARATOR);
|
||||||
context = strsep(&data, "|");
|
context = strsep(&data, COMMANDSEPARATOR);
|
||||||
exten = strsep(&data, "|");
|
exten = strsep(&data, COMMANDSEPARATOR);
|
||||||
priority = data;
|
priority = data;
|
||||||
|
|
||||||
if (slinkageid) {
|
if (slinkageid) {
|
||||||
|
|
Loading…
Reference in New Issue