Asterisk рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлреИрдХреНрд╕ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдм рдлрд╝реЙрд░реНрдо рдмрдирд╛рдПрдВ

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

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

рддрд░реНрдХ рднреЗрдЬрдиреЗ рдХрд╛ рдХрд╛рдо рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ?
рдПрдХ рд╢рд░реНрдд рдПрдХ рдкреНрд░рд╛рдкреНрдд рдлреИрдХреНрд╕ рдорд╢реАрди рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╣реИ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЕрдиреНрдпрдерд╛ рддрд╛рд░рд╛рдВрдХрди рдорд╢реАрди рдкреНрд░рд╛рдкреНрдд рдкрдХреНрд╖ рдкрд░ рдлреИрдХреНрд╕ рдорд╢реАрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ t38 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рднреЗрдЬрдиреЗ рд╕рддреНрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧреАред T.38 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдЖрдИрдкреА рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдлрд╝реИрдХреНрд╕ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреА рдПрдХ рдЙрдЪреНрдЪ рд╕рдВрднрд╛рд╡рдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред

рддреЛ, рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлреИрдХреНрд╕ рдорд╢реАрди рдирдВрдмрд░ рдбрд╛рдпрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░, рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдЧреАред рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднреА рдкрддрд╛ рдЪрд▓ рдЬрд╛рдПрдЧрд╛ред
рдлрд╝реИрдХреНрд╕ рдорд╢реАрди рдкреВрд░реНрд╡-рдЬреНрдЮрд╛рдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдирдВрдмрд░ рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрдиреЗ рдкрд░ рд╕реНрдерд┐рддрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди рдХреЛ рдбрд╛рдпрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдлрд╝реИрдХреНрд╕ рднреЗрдЬрдиреЗ рдХреА рдкрд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП html рдлреЙрд░реНрдо рдореЗрдВ рдлреЙрд░реНрдо рд╣реИ

рдлреЙрд░реНрдо рдХрд╛ html рдХреЛрдб рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ

<title>   </title> <body> <h2>   </h2>    ? <form name="forma1" method=post action="/cgi-bin/callback-fax.pl"> <p> <SELECT NAME="operator"> <OPTION VALUE ="operator-1">operator-1 <OPTION VALUE ="operator-2">operator-2 <OPTION VALUE ="operator-3">operator-3 <OPTION VALUE ="operator-4">operator-4 <OPTION VALUE ="operator-5">operator-5 <OPTION VALUE ="operator-6">operator-6 </SELECT> <p>     ? <INPUT NAME="number" VALUE ="" SIZE=15 MAXLENGTH=15> <p><b>      ?</b><INPUT TYPE="CHECKBOX" NAME="direct_dial" CHECKED="1" VALUE ="1"> <br> <INPUT NAME="direct_dial_timeout" VALUE ="2" SIZE=2 MAXLENGTH=2> <p>    ,     (  ) <INPUT NAME="disa_number" VALUE ="" SIZE=4 MAXLENGTH=4>        <INPUT NAME="disa_timeout" VALUE ="" SIZE=2 MAXLENGTH=2> <br>     ? <INPUT NAME="mailbox" VALUE ="" SIZE=20 MAXLENGTH=50> <p><input type="submit" name="submit" value=" !"> </form> </body> 

рд╕рдХреНрд░рд┐рдп рд╣реЛрдиреЗ рдкрд░, рдХреЙрд▓рдмреИрдХ- fax.pl рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдлреИрдХреНрд╕ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рдлреЙрд░реНрдо рд╕реЗ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕рдХреЗ рдкрд╛рд╕ рджрд┐рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЙрд▓ рдлрд╝рд╛рдЗрд▓ (рдХреЙрд▓рдлрд╛рдЗрд▓) рдмрдирд╛рддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЙрдкрд╕рд░реНрдЧ рдХрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реИ, рдЬреЛ HTML рдлреЙрд░реНрдо рдореЗрдВ рдЪреБрдиреЗ рдЧрдП рдСрдкрд░реЗрдЯрд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
рдлрд╝реИрдХреНрд╕ рдорд╢реАрди рдХреЗ рд▓рд┐рдП рдбрд╛рдпрд▓ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реБрдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрд╛рд░рд╛рдВрдХрди рдбрд╛рдпрд▓рди (рдПрдХреНрд╕рдЯреЗрдВрд╢рди 100 рдпрд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди 200) рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рддрд░реНрдХ рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИ

  #!/usr/bin/perl use strict; use warnings; use CGI qw(:standard); my $operator = param('operator'); my $original_number = param('number'); my $send_fax_now = param('direct_dial'); my $send_fax_now_timeout = param('direct_dial_timeout'); my $send_fax_disa_number = param('disa_number'); my $send_fax_disa_timeout = param('disa_number'); my $mailbox = param('mailbox'); my %operator_prefix = ( operator-1 => '01', operator-2 => '02', operator-3 => '03', operator-4 => '04', operator-5 => '05', operator-6 => '06' ); my $number = $operator_prefix{$operator} . $original_number; print "Content-type: text/html\n\n"; print "Sending fax... you will be e-mailed at <b>$mailbox</b><br>\n"; if ($send_fax_now == 1){ open (F, ">/var/spool/asterisk/outgoing/$number"); print F "Channel: SIP/"; print F "$number"; print F "\@softswitch\n"; print F "Callerid: 7495XXXXXXX\n"; print F "Context: send_fax\n"; print F "Extension: 100\n"; print F "MaxRetries: 1\n"; print F "Retrytime: 5\n"; print F "WaitTime: 60\n"; print F "Priority: 1\n"; print F "SetVar: operator=$operator\n"; print F "SetVar: original_number=$original_number\n"; print F "SetVar: email=$mailbox\n"; print F "SetVar: send_fax_now_timeout=$send_fax_now_timeout"; close F; } else { open (F, ">/var/spool/asterisk/outgoing/$number"); print F "Channel: SIP/"; print F "$number"; print F "\@softswitch\n"; print F "Callerid: 7495XXXXXXX\n"; print F "Context: send_fax\n"; print F "Extension: 200\n"; print F "MaxRetries: 1\n"; print F "Retrytime: 5\n"; print F "WaitTime: 60\n"; print F "Priority: 1\n"; print F "SetVar: operator=$operator\n"; print F "SetVar: original_number=$original_number\n"; print F "SetVar: email=$mailbox\n"; print F "SetVar: send_fax_disa_number=$send_fax_disa_number\n"; print F "SetVar: send_fax_disa_timeout=$send_fax_disa_timeout"; close F; } open (LOGFILE, ">>/var/log/faxsend.log"); my $date = localtime; print LOGFILE "$date:$original_number:$operator\n"; close LOGFILE; 

рдЕрдм рдЪрд▓рд┐рдП Extension.conf Asterisk рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред
рдпрд╣рд╛рдВ, рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рд╣рдо рдлрд╝реИрдХреНрд╕ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рддреБрд░рдВрдд 100 рднреЗрдЬрддреЗ рд╣реИрдВ, рдПрдХреНрд╕рдЯреЗрдВрд╢рди 200 рдбрд╛рдпрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдлрд╝реИрдХреНрд╕ рднреЗрдЬрддрд╛ рд╣реИред
рд╣реИрдВрдЧрдЕрдк рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рдо рдореЗрд▓ рдореЗрдВ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рднреЗрдЬрддреЗ рд╣реИрдВ, рдЬреЛ рдЦреБрдж рдХреЛ рдХреЙрдкреА рдореЗрдВ рд░рдЦрдирд╛ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ;)

  [send_fax] exten => 100,1,Wait(${send_fax_now_timeout}) exten => 100,n,NoOp(${TIFF_FILE}) exten => 100,n,SendFAX(/usr/dumps/test-fax.tiff,d) exten => 100,n,NoOp(${FAXSTATUS}) exten => 100,n,Hangup() exten => 200,1,Wait(${send_fax_disa_timeout}) exten => 200,n,SendDTMF(${send_fax_disa_number}) exten => 200,n,NoOp(${TIFF_FILE}) exten => 200,n,SendFAX(/usr/dumps/test-fax.tiff,d) exten => 200,n,NoOp(${FAXSTATUS}) exten => 200,n,Hangup() exten => h,1,NoOp(email is ${email}:operator is ${operator}:number is ${original_number}) exten => h,n,System(/usr/local/bin/sendEmail -f fax@domain.com -t ${email} -bcc makarov@domain.com -u 'Fax message Sent' -m 'operator:${operator}\nnumber:${original_number}\nStatus:${FAXSTATUS}' -s mx.domain.com -l /var/log/fax.log) 

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рдмрд╛рдж рдореЗрдВ рднреЗрдЬрдиреЗ рдХреЗ рд╕рд╛рде рдЪрд┐рддреНрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рд░реВрдк рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕реЗ рдЯрд┐рдл рдореЗрдВ рд▓рд╛рдирд╛ рдордд рднреВрд▓рдирд╛, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди SendFax () рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЯрд┐рдлрд┐рдирдлреЛ рдХрд╣рддрд╛ рд╣реИ:
  [root@PBX-CALLBACK dumps]# tiffinfo test-fax.tiff TIFF Directory at offset 0x8 (8) Subfile Type: multi-page document (2 = 0x2) Image Width: 1728 Image Length: 1172 Resolution: 204, 98 pixels/inch Bits/Sample: 1 Compression Scheme: CCITT Group 4 Photometric Interpretation: min-is-white FillOrder: msb-to-lsb Orientation: row 0 top, col 0 lhs Samples/Pixel: 1 Rows/Strip: 1172 Planar Configuration: single image plane Page Number: 0-0 Software: GPL Ghostscript 8.70 DateTime: 2011:12:23 16:04:13 Group 4 Options: (0 = 0x0) 

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

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


All Articles