рдореЛрдмрд╛рдЗрд▓ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдбреАрдИрдПрдл рдХреЛрдб рд╕реЗ рддрд╛рд░рд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рдбрд╛рдпрд▓ рдкреИрдЯрд░реНрди рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреАрдврд╝реА

рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рд╣рдо рд╕реЗрд▓реБрд▓рд░ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдЬреАрдПрд╕рдПрдо рдЧреЗрдЯрд╡реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдп рдЖрдЙрдЯрдмрд╛рдЙрдб рдорд╛рд░реНрдЧреЛрдВ рддрд╛рд░рд╛рдВрдХрди рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рд╕реАрдорд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдерд╛ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╣реАрдВ рднреА рдХреЙрд▓ рди рдХрд░реЗрдВред рдЕрд░реНрдерд╛рддреН, рдЕрдкрдиреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреЗрд╡рд▓ рдореЛрдмрд╛рдЗрд▓ рдлреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рд╕рдВрдЪрд╛рд░ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореЛрдмрд╛рдЗрд▓ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ DEF рдХреЛрдб рдХреА рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Asterisk рдкрд░ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдХреЙрд▓ рдХреЗ рдбрд╛рдпрд▓ рдкреИрдЯрд░реНрди рдХреЗ рдЙрдиреНрдирдпрди рдХреЛ рдХреИрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред

FreePBX 2.10.1.1 рд╡рд┐рддрд░рдг рдкрд░ рдЪрд▓ рд░рд╣реЗ рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди 1.8.6.0 рд╕реНрд╡рдЪрд╛рд▓рди рдХреЗ рдЕрдзреАрди рдерд╛ред

рдЗрд╕рд▓рд┐рдП, рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдореЛрдмрд╛рдЗрд▓ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдбреАрдИрдПрдл рдХреЛрдб рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд░реЛрд╕рд┐рд╡реЗрдЬрд╝ рд╕рд╛рдЗрдЯ рдХреЗ рдкрд╛рд╕ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдФрд░ рд╕рдордп-рд╕рдордп рдкрд░ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЗрд╕ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк HTML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдореЛрдмрд╛рдЗрд▓ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ DEF рдХреЛрдб рдХреА рдирд╡реАрдирддрдо рдЕрджреНрдпрддрди рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЪреВрдВрдХрд┐ рдореИрдВ рдбрд╛рдпрд▓ рдкреИрдЯрд░реНрдиреНрд╕ рдЕрдкрдбреЗрдЯ рдХреЛ рдХреНрд░реЙрд╕реНрдЯреИрдм рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдзрдХреЗрд▓рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕ html-ku рдХреЛ рдмреИрд╢ рдкрд░ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред
рдЦреИрд░, рдЪреВрдВрдХрд┐ рдмреИрд╢ рдпрд╣ рдХрд╣рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд░реНрдб рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдбрд╛рдпрд▓ рдкреИрдЯрд░реНрди рдореЗрдВ рдореБрдЦреНрдп рдЕрдиреБрд╡рд╛рдж рдлрд╝рдВрдХреНрд╢рди awk рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ grep рдФрд░ sed рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде html рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдПрдХ рд╕реЗрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ csv рдлрд╛рдЗрд▓ рдорд┐рд▓рддреА рд╣реИ; рдлреЙрд░реНрдо рдХрд╛;
913;0000000;0199999;200000; ;  913;0600000;0699999;100000; ;  913;2000000;2099999;100000; ;  913;3700000;3999999;300000; ;  

рдкрд╣рд▓рд╛ рдХреЙрд▓рдо: DEF рдХреЛрдб
рджреВрд╕рд░реЗ рдФрд░ рддреАрд╕рд░реЗ рдХреЙрд▓рдо: рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рдирдВрдмрд░реЛрдВ рдХреА рд╢реНрд░реЗрдгреА (рд╕реЗ рдФрд░)
рдЪреМрдерд╛ рд╕реНрддрдВрдн: рдЖрд╡рдВрдЯрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛
рдкрд╛рдВрдЪрд╡рд╛ рд╕реНрддрдореНрдн: рд╕рдВрдЪрд╛рд▓рдХ
рдЫрдард╛ рд╕реНрддрдВрдн: рдХреНрд╖реЗрддреНрд░

рдЙрд╕рдХреЗ рдмрд╛рдж рдЗрд╕ рддрд░рд╣ рдХреЗ рджреГрд╢реНрдп рдХреЛ рдбрд╛рдпрд▓ рдкреИрдЯрд░реНрдиреНрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдерд╛ рдЬреЛ рдХрд┐ awk рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдПрдХ рд╕реВрдЪреА рдереА:
 901458XXXX 901459XXXX 903049XXXX 903076XXXX 90390[0-6]XXXX 90393XXXXX 90399[7-9]XXXX 90509[4-5]XXXX 

рдареАрдХ рд╣реИ, рддрд╛рдХрд┐ рдбрд╛рдпрд▓ рдкреИрдЯрд░реНрди рдХреЗ рдмрди рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд╕реНрд╡рдпрдВ рдХреБрдЫ рднреА рдкреНрд░реЗрд╕ рди рдХрд░рдирд╛ рдкрдбрд╝реЗ, рдЙрдиреНрд╣реЗрдВ FreePBX рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХрд░реНрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ FreePBX рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред (> рдзреНрдпрд╛рди рджреЗрдВ! рдЖрдкрдХреЛ рдЙрд╕ рд░реВрдЯ рдХреА рдЖрдИрдбреА рдХреЛ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рдареАрдХ рд╣реИ, рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рджрд░реНрдЬ рдбреЗрдЯрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЛ рдХреНрдпрд╛ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рдпрд╣рд╛рдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реА рд╣реИ, рдЬреЛ рд╕рднреА рд╣реЗрд░рдлреЗрд░ рдбреЗрдЯрд╛ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕реЗ рддрдм рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдиреБрд╕реВрдЪрдХ рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
 #!/bin/bash # DEF- DOWNFILE='http://www.rossvyaz.ru/docs/num/DEF-9x.html'; #  TMPDIR='./'; #,   csv   FILENAME='codes'; #    REGION=' '; #id outbound route  FreePBX mysql  ROUTE_ID=4 FREEPBX_LOGIN='admin' FREEPBX_PASS='pass' FREEPBX_ADRESS='192.168.1.15' #     csv wget -c -q -O - $DOWNFILE | grep "^<tr>" | sed -e 's/<\/td>//g' -e 's/<tr>//g' -e 's/<\/tr>//g' -e 's/[\t]//g' -e 's/^<td>//g' -e 's/<td>/;/g' | iconv -c -f WINDOWS-1251 -t UTF8 | grep "$REGION" > $TMPDIR/$FILENAME #     check=`cat $TMPDIR/$FILENAME` if [ "$check" == "" ]; then exit 0 fi #  awk  Dial Patterns awk_code=' #   function ret_diap(from,to) { if ((to-from)==0) return from; else if ((to-from)==9) return "X"; else return "["from"-"to"]"; } #  { DEF=$1; razm=1; delete out_str; for (i=1; i <= length($3);i++) { if ((substr($3,i,1)-substr($2,i,1))==0) { for (r=1; r <= razm;r++) { out_str[r]=out_str[r] substr($3,i,1); } } else { if ((substr($3,i,1)-substr($2,i,1))==9) { for (r=1; r <= razm;r++) { out_str[r]=out_str[r]"X"; } } else { if (substr($3,i,1)-substr($2,i,1)>=1 && substr($3,(i+1),1)-substr($2,(i+1),1)!=9) { count=1; init_str=out_str[1]; for (j=substr($2,(i),1); j < substr($3,(i),1);j++) { if (count==1) { out_str[count]=init_str j ret_diap(substr($2,(i+1),1),9); } else { out_str[count]=init_str ret_diap(j,(substr($3,(i),1)-1)) "X"; j=(substr($3,(i),1)-1); } count++; if (razm<count) razm=count; } out_str[count]=init_str j ret_diap(0,substr($3,(i+1),1)); i++; } else { for (r=1; r <= razm;r++) { out_str[r]=out_str[r]"["substr($2,i,1)"-"substr($3,i,1)"]"; } } } } } for (r in out_str) { print 8DEF out_str[r]; } }' #  awk,   - Dial Patterns cat codes | awk -F ';' "$awk_code" > patterns #   sql="DELETE FROM outbound_route_patterns WHERE route_id=$ROUTE_ID" echo $sql mysql -Dasterisk -e "$sql" #   sql="INSERT INTO outbound_route_patterns (route_id,match_pattern_pass,match_pattern_prefix) VALUES " n=1 for i in `cat patterns_mts` do if [ $n -eq 1 ]; then sql="$sql ($ROUTE_ID,'$i','')" else sql="$sql, ($ROUTE_ID,'$i','')" fi let n=n+1 done echo $sql mysql -Dasterisk -e "$sql" #  freepbx curl -c cookies -d 'username=$FREEPBX_LOGIN&password=$FREEPBX_PASS&submit=Login' http://$FREEPBX_ADRESS/admin/config.php > /dev/null #  curl -b cookies http://FREEPBX_ADRESS/admin/config.php?handler=reload > /dev/null 

рдкреБрдирд╢реНрдЪ: рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдЖрджрд░реНрд╢ рдФрд░ рдмрд╣реБрдореБрдЦреА рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЗрд╕реЗ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рд░реАрдореЗрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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


All Articles