среда, 25 сентября 2019 г.

FreePBX (памятка 2)

Копируем библиотеку для 3G модема chan_dongle.so.

Создаем файл 92-ttyUSB.rules со следующим содержимым:

# ustanowka praw ttyUSB* dlja asterisk
KERNEL=="ttyUSB*", MODE="0660", OWNER="asterisk", GROUP="dialout"

Создаем файл dongle.conf со следующим содержимым:

[general]

interval=15   ; Number of seconds between trying to connect to devices

;------------------------------ JITTER BUFFER CONFIGURATION --------------------------
;jbenable = yes   ; Enables the use of a jitterbuffer on the receiving side of a
    ; Dongle channel. Defaults to "no". An enabled jitterbuffer will
    ; be used only if the sending side can create and the receiving
    ; side can not accept jitter. The Dongle channel can't accept jitter,
    ; thus an enabled jitterbuffer on the receive Dongle side will always
    ; be used if the sending side can create jitter.

;jbforce = no   ; Forces the use of a jitterbuffer on the receive side of a Dongle
    ; channel. Defaults to "no".

;jbmaxsize = 200  ; Max length of the jitterbuffer in milliseconds.

;jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is
    ; resynchronized. Useful to improve the quality of the voice, with
    ; big jumps in/broken timestamps, usually sent from exotic devices
    ; and programs. Defaults to 1000.

;jbimpl = fixed   ; Jitterbuffer implementation, used on the receiving side of a Dongle
    ; channel. Two implementations are currently available - "fixed"
    ; (with size always equals to jbmaxsize) and "adaptive" (with
    ; variable size, actually the new jb of IAX2). Defaults to fixed.

;jbtargetextra = 40  ; This option only affects the jb when 'jbimpl = adaptive' is set.
    ; The option represents the number of milliseconds by which the new jitter buffer
    ; will pad its size. the default is 40, so without modification, the new
    ; jitter buffer will set its size to the jitter value plus 40 milliseconds.
    ; increasing this value may help if your network normally has low jitter,
    ; but occasionally has spikes.

;jblog = no   ; Enables jitterbuffer frame logging. Defaults to "no".
;-----------------------------------------------------------------------------------

[defaults]
; now you can set here any not required device settings as template
;   sure you can overwrite in any [device] section this default values

;context=default   ; context for incoming calls
;context=from-trunk1-cust
context=from-trunk
group=0    ; calling group
rxgain=0   ; increase the incoming volume; may be negative
txgain=0   ; increase the outgoint volume; may be negative
autodeletesms=yes  ; auto delete incoming sms
resetdongle=yes   ; reset dongle during initialization with ATZ command
u2diag=-1   ; set ^U2DIAG parameter on device (0 = disable everything except modem function) ; -1 not use ^U2DIAG command
usecallingpres=yes  ; use the caller ID presentation or not
callingpres=allowed_passed_screen ; set caller ID presentation  by default use default network settings
disablesms=no   ; disable of SMS reading from device when received
    ;  chan_dongle has currently a bug with SMS reception. When a SMS gets in during a
    ;  call chan_dongle might crash. Enable this option to disable sms reception.
    ;  default = no

;language=en   ; set channel default language
language=ru
smsaspdu=yes   ; if 'yes' send SMS in PDU mode, feature implementation incomplete and we strongly recommend say 'yes'
mindtmfgap=45   ; minimal interval from end of previews DTMF from begining of next in ms
mindtmfduration=80  ; minimal DTMF tone duration in ms
mindtmfinterval=200  ; minimal interval between ends of DTMF of same digits in ms

callwaiting=auto  ; if 'yes' allow incoming calls waiting; by default use network settings
    ; if 'no' waiting calls just ignored
disable=no   ; OBSOLETED by initstate: if 'yes' no load this device and just ignore this section

initstate=start   ; specified initial state of device, must be one of 'stop' 'start' 'remote'
    ;   'remove' same as 'disable=yes'

exten=+123456789012  ; exten for start incoming calls, only in case of Subscriber Number not available!, also set to CALLERID(ndid)

dtmf=relax   ; control of incoming DTMF detection, possible values:
    ;   off    - off DTMF tones detection, voice data passed to asterisk unaltered
    ;              use this value for gateways or if not use DTMF for AVR or inside dialplan
    ;   inband - do DTMF tones detection
    ;   relax  - like inband but with relaxdtmf option
    ;  default is 'relax' by compatibility reason

; dongle required settings
[dongle0]
context=from-trunk-Mobile-v180e
audio=/dev/ttyUSB1  ; tty port for audio connection;  no default value
data=/dev/ttyUSB2  ; tty port for AT commands;   no default value

; or you can omit both audio and data together and use imei=123456789012345 and/or imsi=123456789012345
;  imei and imsi must contain exactly 15 digits !
;  imei/imsi discovery is available on Linux only
imei=123456789012345
imsi=123456789012345

; if audio and data set together with imei and/or imsi audio and data has precedence
;   you can use both imei and imsi together in this case exact match by imei and imsi required



редактируем файл extensions_custom.conf:

[from-trunk-Mobile]
exten => _X!,1,Noop(from-pstn-custom,${CALLERID(num)},${CHANNEL(linkedid)})
exten => _X!,n,System(echo ${CHANNEL(linkedid)}_${UNIQUEID}_${EXTEN} > /tmp/tr_${CHANNEL(linkedid)}.txt)
exten => _X!,n,System(echo ${CALLERID(num)} >> /tmp/tr_${CHANNEL(linkedid)}.txt)
exten => _X!,n,Set(__IN_CALLERID=${CALLERID(num)})
exten => _X!,n,Set(__IN_CALLERID=${IF($[${LEN(${IN_CALLERID})}=6]?375162${IN_CALLERID}:${IF($["${IN_CALLERID:0:2}"="80"]?375${IN_CALLERID:2}:${IF($["${IN_CALLERID:0:1}"="8"]?375${IN_CALLERID:1}:${IF($["${IN_CALLERID:0:4}"="+375"]?${IN_CALLERID:1}:${IN_CALLERID})})})})})
exten => _X!,n,Set(CALLERID(num)=${IN_CALLERID})
exten => _X!,n,Set(CALLERID(name)=${CALLERID(num)})
exten => _X!,n,System(echo ${CALLERID(num)} >> /tmp/tr_${CHANNEL(linkedid)}.txt)
exten => _X!,n,Goto(from-trunk,${EXTEN},1)

Комментариев нет:

Отправить комментарий