Asterisk FreePBX. . Asterisk.
Asterisk . , , dahdi, libpri, iax2, Asterisk.
, Asterisk CentOS 7
sngrep SIP-. ?
, Asterisk. :
- /usr/lib64/asterisk/modules ;
- /var/log/asterisk -, ( );
- /var/spool/asterisk , , , , ;
- /var/lib/asterisk , , ( IVR), .
/etc/asterisk. Asterisk . ( .conf), , , , . . , .
:
- asterisk.conf , Asterisk;
- cdr.conf ;
- sip.conf SIP- ( , , );
- rtp.conf (RTP);
- iax.conf IAX- ( , , );
- extensions.conf , , ;
- features.conf (, , );
- logger.conf , ;
- modules.conf Asterisk;
- musiconhold.conf , , ;
, . . :
asterisk, , .

asterisk
asterisk rvvvvv
- r ;
- vvvvv , ( verbose - v). v , ;

asterisk.conf:

- [directories](!) . (!) . , .
- [options] , maxcalls , Asterisk;
- transmit_silence_during_record = yes - SLINEAR ;
- languageprefix = yes | no - ? , <>/<>/<> , <>/<>/<>;
- execincludes = yes | no - #exec ;
- hideconnect = yes | no - ;
- dontwarn = yes | no - (warning messages);
- debug = no - : No (1-4);
- maxcalls = 10 - ;
cdr.conf. :
[general] enable=yes ; unanswered=no ; safeshutdown=yes ; , [csv] usegmtime=yes ; date/time GMT. NO loguniqueid=yes loguserfield=yes
. features.conf:
[general] [featuremap] ; blindxfer => ## ; atxfer => *2 ; automon => *1 disconnect => ** parkext => 700 ; parkpos => 710-780 ; context => parkedcalls ; parkingtime => 180 ; comebacktoorigin => no ; , parkedplay => both ; courtesytone . : callee, caller, both no( ) parkedcalltransfers => caller ; DTMF. : callee, caller, both no( ) parkedcallrepark => caller ; , DTMF. : callee, caller, both no( ) parkedcallhangup => no ; , DTMF : callee, caller, both no( ) parkedcallrecording => no ; , DTMF. : callee, caller, both no( ).. parkedmusicclass => default ; , adsipark => no ; ADSI findslot => first pickupexten => *8 ; [applicationmap] ; sendsms => *99,peer/both,Macro,sendsms pitch => *00,self/both,Macro,pitch
RTP rtp.conf
[general] rtpstart=36600 rtpend=39999
. musiconhold.conf
[default] mode=files directory=/var/lib/asterisk/moh/
logger.conf:
[general] [logfiles] console => notice,warning,error,dtmf,verbose(5) ; , full => debug,notice,warning,error,verbose(9),dtmf,fax,security ; , -
, , .
- modules.conf. 2 : , :
[modules] autoload=yes noload => codec_g723-ast110-gcc4-glibc-x86_64-core2-sse4.so
, . . :
[modules] autoload = no ; Applications load = app_bridgewait.so load = app_dial.so load = app_playback.so ; Bridging load = bridge_builtin_features.so load = bridge_builtin_interval_features.so load = bridge_holding.so ; Call Detail Records load = cdr_custom.so ; Channel Drivers load = chan_bridge_media.so load = chan_sip.so ; Codecs load = codec_gsm.so load = codec_ulaw.so load = codec_alaw.so load = codec_g722.so ; Formats load = format_gsm.so load = format_pcm.so load = format_wav_gsm.so load = format_wav.so ; Functions load = func_callerid.so load = func_cdr.so load = func_pjsip_endpoint.so ; Core/PBX load = pbx_config.so ; Resources load = res_musiconhold.so load = res_pjproject.so load = res_pjsip_acl.so
. . . sip.conf extensions.conf. .
sip.conf SIP Asterisk:
[general] bindaddr=0.0.0.0 ; IP- , bindport=5060 ; SIP- language=ru ; alwaysauthreject=yes allowguest=no ; ,
, , , IP- NAT .
, (, , - ), , .
[ ] (!). , , / , NAT . :
[office](!) type=friend deny=0.0.0.0/0.0.0.0 permit=192.168.10.0/255.255.255.0 host=dynamic context=from-internal nat=no qualify=yes directmedia=no disallow=all allow=alaw allow=ulaw dtmfmode=info
. , , , .
[]() callerid= <> secret= callgroup=5 ; pickupgroup=1,2,3,4,5 ;
:


, sip show peers

, . , ( ). extensions.conf, . :
:
- ;
- ;
- ;
- ;
() , . (extension). , , , . ( ). []. .
, [general] [globals]
- [general] ;
- [globals] ;
. , .
Asterisk , , , , , .
, ( ), Asterisk . , . ( ) Asterisk , . , .
:
- ( ). ;
- ( ; );
- ( ), ;
:
exten => ,,()
:
- s - , , s. (s - start (), , .;
- i - ( ), i;
- t - WaitExten(), t ( - 10 );
- h - . ;
same exten. , same => n ,
. , 1, . Asterisk n, . , Asterisk n, 1. , .
( , , , ).
, Answer() Hangup(), . . , , , , . , .
extensions.conf ; - , :)
, (, )
. , (context=from-internal)

(), 1 Dial c /. , . , :

10 ( ) 1 Dial /_, 60 (transfer).
- , . , . :
- X - 0 - 9;
- Z - 1 9;
- N - 2 - 9;
- [1237-9] - ( ,1,2,3,7,8,9);
Asterisk dialplan reload .

. 3 :

810 destination-closed ( Asterisk) .
, , IP-, Asterisk, 2- SIP IAX.
SIP- , IAX- Asterisk. ( , ) ( IP- ). sip.conf [general] :
register => :@SIP-/
:
- SIP- - IP- ;
- : - ;
- - , ;
SIP- . ( 3-5) , . , .
[voip-provider](!) ; type=peer ; context=from-trunk ; disallow=all ; allow=alaw ; allow=ulaw insecure=invite,port ; qualify=yes ; directmedia=no ; dtmfmode=rfc2833 ; DTMF [-1](voip-provider) defaultuser=-1 fromuser=-1 secret=-1 host=1- IP- fromdomain= -1 IP- [-2](voip-provider) defaultuser=-2 fromuser=-2 secret=-2 host=-2 IP- fromdomain= IP-
:
register => -1:-1@-1/-1 register => -2:-2@-2/-2
sip.conf :

,
[AST10SIP](voip-provider) type=friend ; friend ( ) port=5060 ; insecure=port,invite host=IP-_ context=from-trunk-sip-AST10SIP ; , .
sip.conf :

IAX-. IAX- iax.conf, , Asterisk , IAX. , sip.conf:
[general] ; IAX bindaddr=0.0.0.0 bindport=4569 ; - IAX- 4569 , language=ru ; register => msk-spb:SuperPASS@10.10.10.10 [msk-spb] username = msk-spb ; type = friend trunk = yes secret = SuperPASS ; qualify = yes host = 10.10.10.10 ; IP- disallow= all context = from-iax ; , allow = alaw allow = ulaw
iax.conf, iax2 show peers:

, IAX, SIP-.
, , , . :
exten => 500,1,Playback(it-otdel) ; it-otdel exten => 500,1,Dial(SIP/1001,5),Tt ; 5 1001 exten => 500,n,Dial(SIP/1002&SIP/1003) ; 1002 1003
, ( ), :
; , 2 exten => 060,1,Answer() same => n,Wait(2) same => n,Hangup() ; , hello-world exten => 061,1,Answer() same => n,Playback(hello-world) same => n,Hangup() ; somefile.gsm exten => 067,1,Record(/tmp/somefile.gsm,3,30) same => n,Playback(/tmp/somefile)
SIP IAX: IAX Asterisk , 1, 2, 3. ( ) 2. :
exten => _2[1-3].,1,Dial(IAX2/msk-spb/${EXTEN:1},30,r) exten => _2.,2,Hangup()
, 21-23, msk-spb IAX , 1 () . 30 , .
-1 9
exten => _9849[589]XXXXXXX,1,Dial(SIP/-1/${EXTEN:1}) ; , 9, -1 SIP , 1 ()
, , , .
. , , (context=from-trunk context = from-iax)
( ) exten => _10XX,1,Dial(SIP/${EXTEN},60,tTm)
( ) IVR . :
9:00 19:00 . (01-hello) (07-working-hours). ( GoToIfTime(09:00-19:00,mon-fri)) ([working-time]), (0 , 1 . , 2 (GoTo(ivr-2,s,1)), . (exten => _1xx,1,NoOp), (exten => i,1,NoOp), , (exten => t,1,NoOp), .
/var/lib/asterisk/sound/ru . -.
( sip.conf language = ru). , Asterisk , , , ivr /var/lib/asterisk/sound/ru ( asterisk ). , /var/lib/asterisk/sound/en. , asterisk. ( , , ivr ), . ( , Windows) wav ( , 8, 16 , )
, , , ivr . ivr . .
[from-trunk] exten => _X.,1,NoOp( : - working-time, - ) same => n,Answer() same => n,Playback(01-hello) same => n,GoToIfTime(09:00-19:00,mon-fri,*,*?working-time,s,1) same => n,Playback(07-working-hours) same => n,Hangup() [working-time] exten => s,1,Answer() same => n,Background(01-ivr1) same => n,StartMusicOnHold() same => n,WaitExten(5) ; exten => 0,1,NoOp( "0" - ) same => n,Playbacr(ostavaites-na-linii) same => n,Dial(SIP/1005,30,mtT) same => n,Hangup() ; exten => 1,1,NoOp( "1" - : 1001+1002) same => n,Playback(it-otdel) same => n,Dial(SIP/1001&SIP/1002,30,mtT) same => n,Hangup() ; exten => 2,1,NoOp( "2" - ivr-2) same => n,GoTo(ivr-2,s,1) ; exten => _1xx,1,NoOp( ) same => n,Playback(ostavaites-na-linii) same => n,Dial(SIP/${EXTEN}15,mtT) same => n,Hangup() ; exten => i,1,NoOp( :i=illegal) same => n,Playback(oshibka) same => n,Dial(SIP/1005,30,r) ; exten => t,1,NoOp( , ) same => n,Playback(ostavaites-na-linii) same => n,Dial(SIP/1005,30,m) ; [ivr-2] exten => s,1,Background(02-ivr2) same => n,StartMusicOnHold() same => n,WaitExten(5) ; exten => 1,1,NoOp( "1" - 1001) same => n,Dial(SIP/1001,30,mtT) same => n,Hangup() ; exten => 2,1,NoOp( "2" - 1002) same => n,Dial(SIP/1002,30,mtT) same => n,Hangup() ; exten => _1xx,1,NoOp( ) same => n,Dial(SIP/${EXTEN}15,mtT) same => n,Hangup() ; exten => i,1,NoOp( :i=illegal) same => n,Playback(oshibka) same => n,Dial(SIP/1005,30,r) ;
extensions.conf (dialplan reload) . .
Asterisk , , , .