рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдлреИрдХреНрд╕ рд╕реЗрд╡рд╛ рддрд╛рд░рд╛рдВрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░

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

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

Asterisk рдореЗрдВ рдлрд╝реИрдХреНрд╕ рднреЗрдЬрдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ: G.711 рдкрд░ рдЖрд╡рд╛рдЬрд╝ рдФрд░ T.38 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рд╕рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдЕрдзрд┐рдХ рд╣реИред

рдлреИрдХреНрд╕ рднреЗрдЬрдиреЗ рдХреЗ рднреА 2 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ:
1. рд╕реНрдкрдВрджрдк рдУрдкрдирд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ
2. рддрд╛рд░рд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рдбрд┐рдЧрд┐рдпрдо рдлреИрдХреНрд╕
рддрд╛рд░рд╛рдВрдХрди рдХреЗ рд▓реЗрдЦрдХреЛрдВ рд╕реЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, 1 рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рд▓рд╛рдЗрд╕реЗрдВрд╕ рдирд┐: рд╢реБрд▓реНрдХ рд╣реИред
рд╕реНрдерд╛рдкрдирд╛ рд╡рд┐рд╡рд░рдг ( docs.digium.com/FAX/fax_for_asterisk_admin_manual.pdf )
рд╕реНрдкреИрдиреНрдбрд╕реНрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд▓рд╛рд╕реНрдЯрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рд╢рд╛рдорд┐рд▓ рд╣реИред

рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ, рд╕рд┐рд╕реНрдЯрдо рдХреЛ 3 рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
1. рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рд░рд┐рд╕реЗрдкреНрд╢рди
2. рдлреИрдХреНрд╕ рд░реЛрдЯреЗрд╢рди
3. рдПрдХ рдлреИрдХреНрд╕ рднреЗрдЬрдирд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯред

рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХрд╛ рд░рд┐рд╕реЗрдкреНрд╢рдиред

рдлрд╝реИрдХреНрд╕ рднреЗрдЬрдиреЗ рдХреА рджреАрдХреНрд╖рд╛ .call рдлрд╝рд╛рдЗрд▓ рдХреЛ рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди рдирд┐рд╖реНрдкрд╛рджрди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд▓реЗ рдЬрд╛рдХрд░ рд╣реЛрдЧреАред
рдХреЙрд▓ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡реЗ рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ Asterisk рдХреЛ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

faxsend.call
Callerid:"FaxSender"<1111> Maxretries:maxRetries Waittime:300 Context:faxsend-t38 Extension:faxout RetryTime:50 Priority:1 SetVar: T38CALL=1 Set:RETURNURL={returnUrl} Set:TAGLINE=Fax from CompanyName Set:RECEIVER=Number Of Receiver Set:FAX_ID={faxId} Set:TIFF_2_SEND={faxId}.tif'; 


рд╣рдо рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд▓реЗрдЧрд╛ред рд╣рдо рдкреАрдбреАрдПрдл рдореЗрдВ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред
рдкреИрд░рд╛рдореАрдЯрд░ рдЬрд┐рд╕ рдкрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ:
maxRetries - рдбрд╛рдпрд▓рд┐рдВрдЧ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред
рдлрд╝реИрдХреНрд╕рд┐рдб - рдлрд╝реИрдХреНрд╕ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐ рд╡рд╛рдкрд╕ рдХрд░ рджреА рдЬрд╛рдПрдЧреАред
returnUrl - рдЬрд┐рд╕ рдкрддреЗ рдкрд░ рднреЗрдЬрдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛ рдЙрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

index.php
 <?php define( "STATUS_SUCCESS", "success" ); define( "STATUS_ERROR", "fail" ); $pdfLocation = "//var//tmp//faxes//"; function sendStatus( $statusKind ) { header('Content-type: application/json'); exit( "{\"status\": \"" . $statusKind . "\"}" ); } $fax = $_REQUEST['fax']; $faxId = $_REQUEST['faxId']; $maxRetries = isset( $_REQUEST['maxRetries'] ) ? $_REQUEST['maxRetries'] : 0; $returnUrl = $_REQUEST['returnUrl']; $pdf = $faxId . '.pdf'; if ($fax == '' || $returnUrl == '' || $faxId == '' ) { sendStatus( STATUS_ERROR ); } if(!move_uploaded_file($_FILES['file']['tmp_name'], $pdfLocation . $pdf)) { sendStatus( STATUS_ERROR ); } $callFileBody = 'Channel:SIP/trunkname/{fax} Callerid:"FaxSender"<1111> Maxretries:{maxRetries} Waittime:300 Context:faxsend-t38 Extension:faxout RetryTime:50 Priority:1 SetVar: T38CALL=1 Set:RETURNURL={returnUrl} Set:TAGLINE=Fax from Company Set:RECEIVER={fax} Set:FAX_ID={faxId} Set:TIFF_2_SEND={faxId}.tif'; $callFileBody = str_replace("{fax}", $fax, $callFileBody); $callFileBody = str_replace("{faxId}", $faxId, $callFileBody); $callFileBody = str_replace("{maxRetries}", $maxRetries, $callFileBody); $callFileBody = str_replace("{returnUrl}", $returnUrl, $callFileBody); $callFilename = $faxId . ".call"; file_put_contents($pdfLocation . $callFilename, $callFileBody); if (!file_exists($pdfLocation . $callFilename)) { sendStatus( STATUS_ERROR ); } sendStatus( STATUS_SUCCESS ); ?> 


рдЗрд╕ рдкреНрд░рдХрд╛рд░, 2 рдлрд╛рдЗрд▓реЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ PDFLocation рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ: .call рдФрд░ .pdfред
рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рд╕реА рднреА рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ / var / www / html рдореЗрдВ рд░рдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ
рдореИрдВрдиреЗ рдПрдХ рдлреИрдХреНрд╕ рд╕реЗрд╡рд╛ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдпрд╛ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ http: // serveradress / faxservice рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, Elastix https рдХреЗ рд╕рднреА http рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рд╕реЗ рдкрд░реЗрд╢рд╛рди рди рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛:

/etc/httpd/conf.d/elastix.conf
 # Apache-level configuration for Elastix administration interface Timeout 300 # Default apache configuration specifies greater limits than these #MaxClients 150 #MaxRequestsPerChild 1000 # Default apache User and Group diretives MUST be commented out # in order for these to take effect. User asterisk Group asterisk <Directory "/var/www/html"> # Redirect administration interface to https #RewriteEngine off #RewriteCond %{HTTPS} off #RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} </Directory> 


рдмрд╕ рдлрд┐рд░ рд╕реЗ рдЯрд┐рдкреНрдкрдгреА рдХреАред

рдлреИрдХреНрд╕ рд░реЛрдЯреЗрд╢рди

рд╣рдореЗрдВ рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЖрдЧрдорди рдХреЗ рдмрд╛рдж, рддрд╛рд░рд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрддрд╛рд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред рд╣рдорд╛рд░реЗ pdf рдХреЛ tif рдореЗрдВ рдмрджрд▓рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ
рд╣рдо рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ:

faxrotate
 #!/bin/bash SOURCEDIR="/var/tmp/faxes/" for file in `ls $SOURCEDIR*.pdf `; do callfile="${file/pdf/call}" if [ ! -e "$callfile" ] then continue fi `gs -q -dNOPAUSE -dBATCH -sDEVICE=tiffg4 -sPAPERSIZE=letter -sOutputFile=${file/pdf/tif} $file` mv ${file/pdf/call} /var/spool/asterisk/outgoing rm $file done 

рд╣рдо рд╣рд░ рдорд┐рдирдЯ рдореЗрдВ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдирд┐рд▓рдВрдмрд┐рдд рдХрд░ рджреЗрддреЗ рд╣реИрдВред

рд╣рдо рд╣рд░ рд░рд╛рдд "рдХрд╛рдо-рдЖрдЙрдЯ" tif рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВрдЧреЗ, рд╣рдо рдЙрдиреНрд╣реЗрдВ 2 рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗ (рдпрджрд┐ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдбрд╝реА рд╣реИ, рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рдЕрдВрддрд░рд╛рд▓ рднреА рдЕрдзрд┐рдХ рд╣реИред)

 /usr/bin/find /var/tmp/faxes -name "*tif" -mtime +2 тАУdelete 


рддрд╛рд░рд╛рдВрдХрди рджреНрд╡рд╛рд░рд╛ рдлреИрдХреНрд╕ рднреЗрдЬрдирд╛


рдпрд╣ рдЕрдм рдХреЗрд╡рд▓ T.38 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлреИрдХреНрд╕ рднреЗрдЬрдиреЗ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд░рд╛рдВрдХрди рд╕рд┐рдЦрд╛рдирд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ T.38 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Elastix рдХреЛ "рд╕рд┐рдЦрд╛рдирд╛" рдЪрд╛рд╣рд┐рдП

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, sip_general_custom.conf рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
 t38pt_udptl=yes 


рдЯреНрд░рдВрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдПрдХ рдЕрдиреБрдорд╛рдирд┐рдд рджреГрд╢реНрдп:

 [trunkname] username=username type=friend transport=udp secret=password qualify=yes nat=yes insecure=port,invite host=voip.host.com disalow=all directmedia=yes context=from-pstn canreinvite=yes allow=ulaw&alaw 


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

extensions_custom.conf
 [faxsend-t38] exten => faxout,1,Set(STARTTIME=${SHELL(date +%s)} ) exten => faxout,n,Wait(1) exten => faxout,n,Playback(fax24,skip) exten => faxout,n,Wait(1) exten => faxout,n,NoOp(**** SENDING FAX ****) ; Set FAXOPTs exten => faxout,n,NoOp(**** SETTING FAXOPT ****) exten => faxout,n,Set(FAXFILE=${TIFF_2_SEND}) exten => faxout,n,Set(FAXOPT(ecm)=yes) exten => faxout,n,Set(FAXOPT(headerinfo)=${TAGLINE}) exten => faxout,n,Set(FAXOPT(maxrate)=14400) exten => faxout,n,Set(FAXOPT(minrate)=4800) ; Send the fax exten => faxout,n,NoOp(**** SENDING FAX : ${FAXFILE} ****) exten => faxout,n,SendFAX(/var/tmp/faxes/${FAXFILE},dfzs) ;Calculating Time of Sending exten => faxout,n,Set(ENDTIME=${SHELL(date +%s)} ) exten => faxout,n,Set(TRANSFERTIME=${MATH(${ENDTIME}-${STARTTIME},int)}) ;Actions after sending fax exten => faxout,n,Set(NORMURL=${FAXOPT(error)}) exten => faxout,n,Set(STATUSMESSAGE=${REPLACE(NORMURL, ,+)}) exten => faxout,n,Set(FAXOPTRATE=${FAXOPT(rate)}) exten => faxout,n,Hangup ;Actions if no answer or busy exten => failed,1,Set(FAXSTATUS=FAILED) exten => failed,2,Set(STATUSMESSAGE=number+no+answer+or+busy) exten => failed,3,Set(FAXOPTRATE=none) exten => h,1,NoOP(------------------- FAX to ${EXTEN} with ${FAXSTATUS} -----------------) exten => h,2,Set(CURLRESULT=${CURL(${RETURNURL}?fax=${RECEIVER}&faxId=${FAX_ID}&status=${FAXSTATUS}&message=${STATUSMESSAGE})}) exten => h,4,Set(LOGFAXOUT=${SHELL(echo "${STRFTIME(${EPOCH},,%d%m%Y-%H:%M:%S)} : ${FAX_ID} : ${RECEIVER} : ${FAXSTATUS} : ${STATUSMESSAGE} : ${TRANSFERTIME}s : ${FAXOPTRATE}" >> /var/log/asterisk/faxout.log)}) exten => h,3,NoOp(${RECEIVER}:${FAX_ID}:${FAXSTATUS}:${STATUSMESSAGE}:${FAXOPTRATE}) 


рдпрд╣ рд╕рдВрджрд░реНрдн рдлрд╝реИрдХреНрд╕ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдФрд░ рднреЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ; рдЕрдЧрд░ рдЗрд╕реЗ рдбрд╛рдпрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдирдВрдмрд░ + рдирд╣реАрдВ + рдЙрддреНрддрд░ + рдпрд╛ + рд╡реНрдпрд╕реНрдд рджреЗрддрд╛ рд╣реИред
рд╕рдлрд▓ рдбрд╛рдпрд▓рд┐рдВрдЧ рдФрд░ рднреЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдкрд░, рдпрд╣ рд╕реНрдерд┐рддрд┐ рд╕рдВрджреЗрд╢ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рд╡рд╣ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ php рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ RETURNURL рдкрддреЗ рдкрд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рд╡рд╣ рдХреБрдЫ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдореБрджреНрджреЛрдВ рдкрд░ рдФрд░ рдмрд╣рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рднреА рд▓рд┐рдЦрддреЗ рд╣реИрдВред
рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЙрдпрд╕ рдЧреНрд░реАрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреАрд╕реАрдПрдо рдПрдирдХреЛрдбреЗрдб, 16 рдмрд┐рдЯреНрд╕ рдкрд░ 8000Hz рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ рдПрдХ рдлрд╛рдЗрд▓ рд▓рд┐рдЦрдиреЗ рдФрд░ рдЙрд╕реЗ / var / lib / asterisk / рдзреНрд╡рдирд┐рдпреЛрдВ рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

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


All Articles