All the information needed by chan_dongle is stored in /path_to_asterisk_config/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, SMS and USSD 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 ; see http://www.the-asterisk-book.com/unstable/applikationen-setcallerpres.html disablesms=no ; disable of SMS reading from device when received. Enable this option to disable ; sms reception. Use smsaspdu=yes to avoid problem when SMS is too long in TEXT mode. smsaspdu=yes ; if 'yes' send SMS in PDU mode. language=en ; set channel default language 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 ; if 'yes' no load this device and just ignore this section exten=+1234567890 ; exten for start incoming calls, only in case of Subscriber Number not available!, ; also set to CALLERID(dnid) dtmf=relax ; control of incoming DTMF detection, possible values: ; off - off DTMF tone detection, voice data passed to asterisk unaltered ; use this value for gateways or if you do not use IVR in diaplan ; inband - do DTMF tones detection ; relax - like inband but with relaxdtmf option ; default is 'relax' for backward compatibility ; dongle required settings [dongle0] audio=/dev/ttyUSB1 ; tty port for audio connection; data=/dev/ttyUSB2 ; tty port for AT commands; ; or you can omit both audio and data parameters and use imei=123456789012345 and/or imsi=612849384756451 ; imei and imsi must contain exactly 15 digits ! ; imei/imsi discovery is available on Linux only imei=123456789012345 imsi=612849384756451 ; if you set audio and data parameter together with imei and/or imsi, audio and data is used. ; you can use both imei and imsi together. In this case exact match by imei and imsi is required.
; this is chunks of Asterisk extensions.conf file for show some chan_dongle features [general] [dongle-incoming] ; example of ussd receive exten => ussd,1,Set(type=${USSD_TYPE}) ; values from 0 till 5 ; 0 - USSD Notify ; 1 - USSD Request ; 2 - USSD Terminated by network ; 3 - Other local client has responded ; 4 - Operation not supported ; 5 - Network time out exten => ussd,n,Set(typestr=${USSD_TYPE_STR}) ; type in string, see above exten => ussd,n,Set(ussd=${USSD}) ; USSD text, but may be truncated by first \n exten => ussd,n,Set(ussd_multiline=${BASE64_DECODE(${USSD_BASE64})}) ; USSD text, may be multiline ; Note: this exten run in Local channel not attached to anything, also all CALLERID() is empty ; example of sms receive exten => sms,1,Set(sms=${SMS}) ; SMS text, but may be truncated by first \n exten => sms,1,Set(sms_multiline=${BASE64_DECODE(${SMS_BASE64})}) ; SMS text, may be multiline ; Note: this exten run in Local channel not attached to anything, also CALLERID(num) is address of SMS originator ; example of begining context execution from not default exten exten => +12345678901,1,Verbose(This exten executed if Subscriber Number is available and equal +12345678901 or exten setting value is +12345678901) ; example of channel variables setting by chan_dongle exten => s,1,Set(NAME_OF_DEVICE=${DONGLENAME}) ; for example 'dongle0' or 'dongle1' see dongle.conf exten => s,n,Set(NAME_OF_PROVIDE=${DONGLEPROVIDER}) ; for example see output of cli 'dongle show devices' column "Provider Name" exten => s,n,Set(IMEI_OF_DEVICE=${DONGLEIMEI}) ; for example see output of cli 'dongle show devices' column "IMEI" exten => s,n,Set(IMSI_OF_SIMCARD=${DONGLEIMSI}) ; for example see output of cli 'dongle show devices' column "IMSI" exten => s,n,Set(CNUM_NUMBER=${DONGLENUMBER}) ; Subscriber Number example see output of cli 'dongle show devices' column "Number" ; may be empty, use for save in SIM commands AT+CPBS="ON" and AT+CPBW=1,"+123456789",145 exten => s,n,Set(CNUM_NUMBER=${CALLERID(dnid)}) ; Set to Subscriber Number if available ; applications of chan_DONGLE exten => s,n,DongleStatus(dongle0,DONGLE0_STATUS) ; get status of device and store result in variable ; possible values of ${DONGLE0_STATUS} ; -1 invalid argument ; 1 device not found ; 2 device connected ; 3 device connected and in use exten => s,n,DongleSendSMS(dongle0, "+18004005422", Hello how are you, Danila?, 1440, yes) ; send SMS on selected device and to specified number ; device name of Dongle device ; destination number in International format with leading '+' or w/o leading '+' ; message maximum 70 UCS-2 symbols ; validity period in minutes, will be round up to nearest possible value, optional default is 3 days ; report request if true report for this SMS is required, optional default is not ; functions of chan_dongle exten => s,n,GotoIf($["${CHANNEL(callstate)}" == "waiting"]?waiting-call) ; now we provide channel function argument callstate ; possible values ; active ; enjoy and speek ; held ; this call is held ; dialing ; for outgoing calls ; alerting ; for outgoing calls, number dialed and called party ringing ; incoming ; for incoming calls ; waiting ; for incoming waiting calls; ; if callwaiting=no channels for waiting calls never created ; initialize ; never appear ; released ; never appear ; Answer on waiting call activate this call and place any other active calls ; on hold, but execution of dialplan for these calls not break stopped or frozen ; When active call terminated one of held becomes active. exten => s,n,Set(CHANNEL(callstate)=active) ; if callstate is 'held' you can assign new value 'active' ; its mean activate this call and place on hold all other active calls but ; execution of dialplan for these calls not break stopped or frozen exten => s,n,Dial(Dongle/g1/holdother:+79139131234) exten => s,n,Dial(Dongle/r1/holdother:+79139131234) exten => s,n,Dial(Dongle/p:PROVIDER NAME/holdother:+79139131234) exten => s,n,Dial(Dongle/i:123456789012345/holdother:+79139131234) exten => s,n,Dial(Dongle/s:25099/holdother:+79139131234) ; now we add option 'holdother' for dialing ; this option do ; 1) When looking for available devices by group, provider IMEI, ; IMSI prefix not ignore devices with whose state does not ; prohibit a new outgoing call when other call place on hold ; ; 2) Before actual dialing place active calls on hold ; but execution of dialplan for these calls not break stopped or frozen ; 3) This call will be active if succesfully answered ; BUG !!! ; tested for call waiting and hold features Huawei E1550 has a next bug: ; When local side hangup any call including held call ALL other calls LOST sound ; When remove side hangup active call ALL other calls LOST sound ; Please double check true this for you or not ; If true reduce usage of this useful features exten => s,n,Dial(Dongle/g1/conference:+79139131234) exten => s,n,Dial(Dongle/r1/conference:+79139131234) exten => s,n,Dial(Dongle/p:PROVIDER NAME/conference:+79139131234) exten => s,n,Dial(Dongle/i:123456789012345/conference:+79139131234) exten => s,n,Dial(Dongle/s:25099/conference:+79139131234) ; and also option 'conference' added ; this option do ; 1) When looking for available devices by group, provider IMEI, ; IMSI prefix not ignore devices with whose state does not ; prohibit a new outgoing call when other call place on hold ; ; 2) Before actual dialing place active calls on hold ; but execution of dialplan for these calls not break stopped or frozen ; 3) If answered attach hold calls to conrefence (in term of GSM) ; Also if created outgoing channel place call on same device that incoming channel ; both incoming and outgoing channels become readonly to avoid the voice loop. ; ; see also BUG !!! note above