Прокачиваем VoIP GSM шлюз Yeastar TG100 до мини-АТС

IP- . , - - . IP- , – . Asterisk. VoIP- « ». – Asterisk, , Yeastar TG100, . , – .



Yeastar TG100 – VoIP GSM SIM- , , IP- SIP. Yeastar TG100 IP-, . GSM-? , . , , – VoIP GSM , Asterisk IP-.

Yeastar? -, , , VoIP GSM , . -, Asterisk ( ). -, , VoIP GSM Yeastar «SIP- IP-», , , , IP-. .

, Yeastar TG100? – , . TG100, TG200 ( -), TG400 ( ) TG800 ( ) – .

?


, IP-.
  1. . IP- ,
  2. . ,
  3. SIP-. GSM- – , , , VoIP-
  4. . – SIP GSM, , . – GSM-, – SIP

?


, , – Web-. , SIP- IP- . — VoIP VoIP.



: VoIP
: SIP
:
:
:

, . , SIP- , .

Yeastar TG100 VoIP- , Web- . — VoIP VoIP « VoIP». , , .



: VoIP
: SIP
:
/IP: IP- SIP-, .
: IP- SIP-
: SIP ID,
: SIP ID,
: ,
From ( ): SIP ID,

Web- , , . , Web- . . wav- 1.8 . :

gsm 6.10 8kHz, Mono,1Kb/s
alaw/ulaw 8kHz, Mono,1Kb/s
pcm 8kHz, Mono, 16Kb/s

Web- . , .

Yeastar TG100


SSH, . – – LAN SSH, .



SSH- . — 8022, — root, — ys123456. , Linux.

— /etc/asterisk, , Web-, . — /persistent/custom-cfg. gncustom.conf, , - .

cat /persistent/custom-cfg/gncustom.conf :
[modifyfile]
/etc/asterisk/extensions.conf
/etc/asterisk/sip.conf
/etc/asterisk/users.conf
/etc/asterisk/iax.conf
/etc/asterisk/queues.conf
/etc/asterisk/features.conf
/etc/asterisk/voicemail.conf
/etc/asterisk/meetme.conf
/etc/asterisk/rc_org.conf
/etc/asterisk/rtp.conf
/etc/asterisk/http.conf
/etc/asterisk/musiconhold.conf
/etc/asterisk/followme.conf
/etc/asterisk/logger.conf
/etc/asterisk/manager.conf
/etc/asterisk/chan_dahdi.conf
/etc/asterisk/digital-channel.conf
[replacefile]
/etc/asterisk/dahdi-channels.conf

, [modifyfile] — ; [replacefile] — .
, - :
  1. , /etc/asterisk
  2. , []

, /persistent/custom-cfg <>_custom.conf. <> — /etc/asterisk «.conf». , /etc/asterisk/users.conf, users_custom.conf. , , . :
[new-context]
parameter1=value1
parameter2=value2

, , . . Web- – , – .


Web- SIP-, 401, 402 403. SIP /etc/asterisk/users.conf. — context. 401 — Voip-Account-401, 402 — Voip-Account-402, 403 — Voip-Account-403.
/etc/asterisk/extensions.conf :
[Voip-Account-401] 
[Voip-Account-402] 
[Voip-Account-403] 

, . , , .

  1. , SIP . extensions.conf — /persistent/custom-cfg extensions_custom.conf :
    [from-internal]
    ;internal routes
    exten => _4XX,1,NoOp(Internal Call)
    exten => _4XX,n,Dial(${trunk-${EXTEN}},30,Ttr)
    exten => _4XX,n,Hangup()
    

    , , 4, .
  2. . extensions_custom.conf :
    [Voip-Account-401]	
    include => from-internal
    
    [Voip-Account-402]
    include => from-internal
    
    [Voip-Account-403]
    include => from-internal
    

  3. Web-
  4. /etc/asterisk/extensions.conf ,


, , GSM-, SIP-, :
  1. . /var/lib/asterisk/sounds/record
  2. . «1» 401. «2» , 401, 402, 403
  3. , , ,

extensions_custom.conf :

[arttel-ivr]                                                             
exten => _.,1,NoOp(Custom IVR by ArtTel)                                 
exten => _.,n,Set(CDR(userfield)=SIP_TRUNK->IP)                          
exten => _.,n,Answer()                                                   
exten => _.,n,Set(TIMEOUT(digit)=2)                                                 
exten => _.,n,Background(record/arttel_ivr_alaw) ;                                   
exten => _.,n,WaitExten(3) ; 3                                                             
                                                                                    
exten => t,1,NoOp(Goto by Timeout) ;   ,                                                   
exten => t,n,Macro(arttel-ringgroup,ringall,402-403-401,15,2) ;                              
exten => t,n,Hangup()                                                               
                                                                                    
exten => 1,1,NoOp(Goto by pressed 1)                                                
exten => 1,n,Dial(${trunk-401},30,T) ;  «1»,   401                                                
exten => 1,n,Hangup()                                                               
                                                                                    
exten => 2,1,NoOp(Goto by pressed 2)                                                
exten => 2,n,Macro(arttel-ringgroup,linear,402-403-401,15,2) ;  «2»,  402, 403  404                               
exten => 2,n,Hangup()

[macro-arttel-ringgroup]                                                            
;ARG1 - Type: linear, ringall                                                                                
;ARG2 - Numbers separated dash: 401-402-403                                         
;ARG3 - Time Dial for Dial app                                                      
;ARG4 - Repeat Count for linear                                                     
                                                                                    
exten => s,1,Set(RG_Type=${ARG1})                                                            
exten => s,n,Set(RG_Nums=${ARG2})                                                   
exten => s,n,NoOp(Macro RingGroup type: ${RG_Type} for numbers: $RG_Nums)           
exten => s,n,GotoIf($[ "${RG_Type}" = "linear" ]?linear,1:ringall,1)               
exten => s,n,Hangup()                                                               
                                                                                    
exten => ringall,1,Set(COUNT=1)                                                     
exten => ringall,n,Set(REPEAT_COUNT=1)                                               
exten => ringall,n,Set(Repeat=${ARG4})                                               
exten => ringall,n,Set(TimeDial=${ARG3})                                             
exten => ringall,n(loop),Set(RG_Dial=${RG_Dial}&${trunk-${CUT(RG_Nums,-,${COUNT})}})
exten => ringall,n,NoOp(RG_Dial=${RG_Dial})                                         
exten => ringall,n,Set(COUNT=$[${COUNT} + 1])                                       
exten => ringall,n,GotoIf(${CUT(RG_Nums,-,${COUNT})}?loop)                          
exten => ringall,n(repeat),Dial(${RG_Dial:1},${TimeDial},T)                                
exten => ringall,n,Set(REPEAT_COUNT=$[${REPEAT_COUNT} + 1])                          
exten => ringall,n,GotoIf($[ ${REPEAT_COUNT} <= ${Repeat} ]?repeat)                    
exten => ringall,n,Hangup()                                                         
                                                                                    
exten => linear,1,Set(COUNT=1)                                                      
exten => linear,n,Set(REPEAT_COUNT=1)                                               
exten => linear,n,Set(Repeat=${ARG4})                                               
exten => linear,n,Set(TimeDial=${ARG3})                                             
exten => linear,n(loop),Dial(${trunk-${CUT(RG_Nums,-,${COUNT})}},${TimeDial},T)    
exten => linear,n,Set(COUNT=$[${COUNT} + 1])                                        
exten => linear,n,GotoIf(${CUT(RG_Nums,-,${COUNT})}?loop)                           
exten => linear,n,Set(COUNT=1)                                                      
exten => linear,n,Set(REPEAT_COUNT=$[${REPEAT_COUNT} + 1])                          
exten => linear,n,GotoIf($[ ${REPEAT_COUNT} <= ${Repeat} ]?loop)                    
exten => linear,n,Hangup()

, , GSM-, SIP-. users_custom.conf /persistent/custom-cfg :

[gsm_1]
context=arttel-ivr

[trunk-arttel_telecom]
context=arttel-ivr

Web-.


, – . :
  1. , 89… GSM
  2. , 10 , 83..., 84… 88… SIP
  3. , 810… GSM

extensions_custom.conf [from-internal] :

;outbound routes
;STRATEGY: 0 - default(first free), 1 - linear(linear with memories), 2- balance
exten => _89XX.,1,NoOp(Outbound dial to Mobile)
exten => _89XX.,n,Set(CDR(userfield)=IP->MOBILE)
exten => _89XX.,n,Set(STRATEGY=0)                                                                                                  
exten => _89XX.,n,Macro(trunkdial-failover-0.4,1,,${EXTEN:0},trunk-GSM1,)
exten => _89XX.,n,Hangup()
                                                                                             
exten => _8[348]XXXXXXXXX,1,NoOp(Outbound dial to Russia)
exten => _8[348]XXXXXXXXX,n,Set(CDR(userfield)=IP->SIP_TRUNK)
exten => _8[348]XXXXXXXXX,n,Set(STRATEGY=0)
exten => _8[348]XXXXXXXXX,n,Macro(trunkdial-failover-0.4,1,,${EXTEN:0},trunk-arttel_telecom,)
exten => _8[348]XXXXXXXXX,n,Hangup()
                                                                                    
exten => _810XX.,1,NoOp(Outbound dial to International)
exten => _810XX.,n,Set(CDR(userfield)=IP->MOBILE)
exten => _810XX.,n,Set(STRATEGY=0)
exten => _810XX.,n,Macro(trunkdial-failover-0.4,1,,${EXTEN:0},trunk-GSM1,) ; 1 trunk
exten => _810XX.,n,Hangup()

: _89XX. — , _8[348]XXXXXXXXX — , _810XX. — . trunkdial-failover-0.4. . , . , Yeastar TG400 Yeastar TG100, :
exten => _89XX.,n,Macro(trunkdial-failover-0.4,1,,${EXTEN:0},trunk-GSM1,)  

:
exten => _89XX.,n,Macro(trunkdial-failover-0.4,4,,${EXTEN:0},trunk-GSM1,trunk-GSM2,trunk-GSM3,trunk-GSM4,)

.


, , 2-10 . , , , , -, . , , , . , GSM-. , , VoIP GSM Yeastar TG100 .

Source: https://habr.com/ru/post/ar396481/


All Articles