یکی از نیازمندی های اصلی در یک سیستم تلفنی، امکان ارسال و دریافت فکس می باشد. البته امروزه با توسعه بیش از پیش ابزار های ارتباطی همچون ایمیل، روش های سنتی مانند فکس کمتر مورد استفاده قرار می گیرند؛ ولی هنوز کاملا جایگزین نشده اند. بنابراین با بکارگیری سیستم های تلفنی مبتنی بر VoIP نیز باید برای این مهم راهکار مناسبی ارائه گردد.
 سه روش جهت راه اندازی فکس وجود دارد:
ماژول تجاری Fax Pro، استفاده از اپلیکیشن های استریسک و سرور فکس Hylafax. هر یک از این روش ها ویژگی هایی دارند؛

ماژول Fax Pro قابلیت ارسال و دریافت فکس را برای کاربران از طریق UCP فراهم می کند. یعنی کاربران با ورود به محیط UCP خود، می توانند فایل های مورد نظر را فکس نمایند و یا بالعکس فکس های دریافتی را در صندوق فکس خود مشاهده نمایند. همچنین هر کاربر در صورت نیاز می تواند تنظیمات مربوط به فکس را به دلخواه تغییر دهد. به عنوان مثال فکس های دریافتی به ایمیل وی ارسال شوند.
در روش دوم می توان از طریق اپلیکیشن های dial plan برای ارسال و دریافت فکس استفاده کرد. البته در این روش برای تعریف دسترسی به فکس برای کاربران پیچیدگی هایی وجود دارد.
روش سوم بکارگیری نرم افزار های فکس همچون Hylafax در کنار FreePBX است؛ در این روش می توان از قابلیت های پیشرفته یک سرور فکس بهره برد، چرا که مکانیزم های کنترل خطا در ارسال و دریافت فکس اهمیت بسیاری در صحت عملکرد آن خواهد داشت. در ادامه سعی شده است تا این روش شرح داده شود.

سرور Hylafax+:
همانطور که گفته شد یکی از راهکار های پایدار جهت راه اندازی فکس سرور استفاده از نرم افزارهای Hylafax و یا Hylafax+ که شاخه ی دیگری از پروژه Hylafax است، می باشد. بدیهی است که بکارگیری این نرم افزار در کنار سیستم تلفنی استریسک می تواند امکانات زیادی را فراهم نماید. در این آموزش، نرم افزار Hylafax+ را به دلیل بروز بودن و امکانات بیشتر، مورد استفاده قرار داده‌ایم.
شمای کلی ارتباط این نرم افزار و سیستم تلفنی در شکل زیر نمایش داده شده است:


همانطور که در این شکل نشان داده شده، ارتباط این سرور با خطوط PSTN از طریق مودم برقرار می شود. این مودم می تواند به صورت سخت افزاری با پشتیبانی T.38 و یا به صورت نرم افزاری همچون IAXmodem و t38modem باشد.
برای بکارگیری Hylafax+ در کنار استریسک می بایست از فکس مودم های مجازی (IAXmodem) استفاده شود و داخلی IAX2 مورد نظر بر روی استریسک را به آن متصل کنیم. به عبارت دیگر Hylafax+ برای ارسال فکس از طریق مودم مجازی IAXmodem به داخلی های IAX2 استریسک متصل شده و از این طریق فکس را ارسال و یا دریافت می نماید.
برای نصب IAXmodem بر روی FreePBX باید مراحل زیر انجام شود:
ابتدا پیش نیاز های این نرم افزار ها را نصب نمایید:
*G++ 
*GhostScript
* Zlib
 Mawk
Metamail
*Libtiff 
Sendmail
PAM
*Jbigkit 
*Libjpeg 

توجه :نصب مواردی که ستاره ندارند الزامی نیست.
نصب g++/gcc:
wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo yum install devtoolset-2-gcc devtoolset-2-binutils
yum install devtoolset-2-gcc-c++ devtoolset-2-gcc-gfortran

برای اطمینان از صحت نصب بعد از وارد کردن دستور:
opt/rh/devtoolset-2/root/usr/bin/gcc –version/
باید پیام زیر نمایش داده شود:
gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)

scl enable devtoolset-2 bash 
source /opt/rh/devtoolset-2/enable
 
نصب GhostScript:


Wget http://downloads.ghostscript.com/public/ghostscript-9.14.tar.gz
curl -O http://downloads.ghostscript.com/public/ghostscript-9.14.tar.gz
tar -xzf ghostscript-9.14.tar.gz
cd ghostscript-9.14
configure/.
make install
make so
cp ghostscript-9.14/sobin/libgs.so.9.14 /usr/lib
ln -s /usr/lib/libgs.so.9.14 /usr/lib/libgs.so
/mkdir -p /etc/ld.so.conf.d
echo “/usr/lib/libgs.so” > /etc/ld.so.conf.d/libgs.conf
cp ghostscript-9.14/sobin/libgs.so.9.14 /usr/lib64*
ln -s /usr/lib64/libgs.so.9.14 /usr/lib64/libgs.so*
echo “/usr/lib64/libgs.so” > /etc/ld.so.conf.d/libgs.conf*
ldconfig
دستورات ستاره دار برای سیستم های ۶۴ بیتی است. بعد از نصب با زدن gs باید وارد کنسول ghostscript شوید.
نصب Zlib:

yum install zlib zlib-devel zleb-static

نصب MAWK:
آخرین ویرایش epel-release rpm را از سایت زیر دریافت کنید:
http://dl.fedoraproject.org/pub/epel/6/x86_64
سپس مطابق دستور زیر آن را نصب کنید:
rpm -Uvh epel-release*rpm
سپس با دستور زیر mawk را نصب کنید:
yum install mawk
نصب metamail:
آخرین ویرایش lux-release rpm را از سایت زیر دانلود کنید:
http://repo.iotti.biz/CentOS/6/noarch

سپس مطابق دستور زیر آن را نصب کنید:
rpm -Uvh elrepo-release*rpm

سپس با دستور زیر metamail را نصب کنید:
yum install metamail

نصب sendmail:
ابتدا دستور زیر را وارد کنید:
yum install sendmail sendmail-cf m4

فایل زیر را باز کنید etc/mail/sendmail.mc/
سپس خط
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA’)dnl
را به صورت زیر غیر فعال کنید:
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA’)dnl
سپس در زیر قسمت MAILER خط زیر را اضافه کنید:
FEATURE(`relay_hosts_only’)dnl
سپس دستورات زیر را اجرا کنید:
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
etc/init.d/sendmail restart/
نصب PAM:
yum install pam
yum install pam-devel
yum install pam_krb5
yum install pam_ldap
yum install pam_passwdqc
yum install pam_pkcs11
yum install pam_ssh_agent_auth
Install jbigkit:
روش اول:
ابتدا فایل gz آن را دانلود و سپس دستورات زیر را اجرا نمایید:
*tar –zxvf jbigkit 
*Cd jbigkit
make
make test (if that is ok, then)
cd libjbig
cp jbig.h /usr/local/include
cp jbig_ar.h /usr/local/include
cp libjbig.a /usr/local/lib
cp jbig.h /usr/local/lib
cd ../pbmtools
cp jbgtopbm /usr/local/bin
cp pbmtojbg /usr/local/bin
اگر سیستم ۶۴ بیتی است مراحل زیر را نیز انجام دهید:
cp jbig85.h /usr/local/include
cp jbig_ar.h /usr/local/include
cp jbig85.c /usr/local/lib
cp jbig_ar.c /usr/local/lib



روش دوم:
yum install jbigkit
yum install jbigkit-devel
yum install jbigkit-libs
نصب libjpeg:
Yum install libjpeg
Yum install libjpeg-devel
Yum install libjpeg-static

نصب libtiff:
Yum install libtiff
Yum install libtiff-devel
نصب IAXmodem:
ابتدا سورس آن را دانلود نمایید و دستورات بعدی را اجرا کنید:
wget http://downloads.sourceforge.net/project/iaxmodem/iaxmodem/iaxmodem-1.2.0/iaxmodem-1.2.0.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fiaxmodem%2Ffiles%2Fiaxmodem%2Fiaxmodem-1.2.0%2F&ts=1363075862&use_mirror=superb-dca3
tar -xzfv iaxmodem-1.2.0.tar.gz
cd iaxmodem-1.2.0
cd /usr/local/src/iaxmodem-1.2.0/lib/spandsp
configure && make/.
 cd /usr/local/src/iaxmodem-1.2.0/lib/libiax2
configure && make/.
cd /usr/local/src/iaxmodem-1.2.0/
configure && make (for libiax2 and spandsp)/.
build (for iaxmodem)/.
cp iaxmodem /usr/local/sbin
mkdir /etc/iaxmodem
mkdir /var/log/iaxmodem
touch /var/log/iaxmodem/ttyIAX0
touch /var/log/iaxmodem/iaxmodem

پس از نصب لازم است تا برای ایجاد هر مودم، یک فایل تنظیمات iaxmodem-cfg.ttyIAX در مسیر /etc/iaxmodem ایجاد نمایید.
این فایل را از شاخه اصلی سورس در مسیر فوق کپی نمایید.
به عنوان مثال برای ایجاد یک مودم با نام ttyIAX1 فایل iaxmodem-cfg.ttyIAX را در مسیر /etc/iaxmodem با نام ttyIAX1 کپی کرده و به صورت زیر یرایش نمایید:
device /dev/ttyIAX1
owner uucp:uucp
mode ۶۶۰
port ۴۵۷۰
refresh ۳۰۰
server ۱۲۷٫۰٫۰٫۱
peername ۴۰۰
secret ۴۰۰abc
cidname senatelecom
cidnumber XXXXXXXXXX
codec ulaw

در قسمت DEVICE نام IAXmodem را انتخاب نمایید.
در قسمت peername نام داخلی IAX2 که در داخل استریسک ساخته اید را وارد کنید.
در اینجا داخلی ۴۰۰ تعریف شده است. در قسمت secret پسورد داخلی تعریف شده را وارد نمایید. سپس فایل را ذخیره و دستورات زیر را اجرا کنید: یادمان باشد در هنگام ساختن داخلی IAX حتما گزینه ی requirecalltoken را برابر no قرار دهیم در غیر این صورت داخلی بر روی IAXmodem رجیستر نمی شود.
cd /usr/local/sbin
iaxmodem ttyIAX1/.
در این مرحله مودم باید به درستی بر روی داخلی رجیستر شود.
برای ایجاد سرویس iaxmodem و رجیستر شدن خودکار مودم ها به صورت زیر عمل می کنیم:
cd /usr/src/iaxmodem-1.2.0
mv iaxmodem.init.fedora /etc/init.d/iaxmodem
chmod +x /etc/init.d/iaxmodem
chkconfig –add iaxmodem
chkconfig iaxmodem on
etc/init.d/iaxmodem start/

نکته قابل توجهی که می بایست در اینجا به آن اشاره کرد این است که با هر مرتبه راه اندازی مجدد سرور، باید سرویس iaxmodem راه اندازی شود. برای انجام این فرایند به صورت خودکار سه روش وجود دارد:
روش اول: فایل etc/inittab/ را باز کرده و دستور زیر را در انتهای آن اضافه کرده و ذخیره نمایید.

IA00:2345:respawn:/usr/local/sbin/iaxmodem ttyIAX1

روش دوم: به مسیر /etc/init/ رفته و فایلی با نام دلخواه مانند ttyIAX.conf ایجاد کنید. سپس دستورات زیر را در آن کپی کرده و ذخیره نمایید.
start on stopped rc RUNLEVEL=[12345]
stop on runlevel [!12345]
respawn
exec /usr/local/sbin/iaxmodem ttyIAX1

روش سوم: اجرای سرویس iaxmodem در استارتاپ:
chkconfig iaxmodem on

همچنین برای بررسی خودکار وضعیت مودم ها در دریافت فکس، لازم است تا سرویس faxgetty برای هر مودم اجرا شود. برای راه اندازی خودکار این سرویس نیز به صورت زیر عمل کنید.
فایل etc/inittab/ را باز کرده و دستور زیر را در انتهای آن اضافه و ذخیره نمایید.
mo00:23:respawn:/usr/local/sbin/faxgetty ttyIAX1

نصب hylafax+:
راحت ترین راه برای نصب +hylafax استفاده از repository های epel است که در مراحل قبل نصب گردید.
حال با استفاده از دستور زیر hylafax+ را نصب نمایید:
+Yum install hylafax
Yum install hylafax+-client
سپس دستور faxsetup را اجرا کنید.
سوالات را با مقدار پیش فرض پاسخ دهید؛ در قسمت کد کشور ۹۸ و کد شهر ۰۲۱ را وارد نمایید و در پاسخ به سوال
Serial port that modem is connected to
نام iaxmodem که ساخته شد یعنی ttyIAX1 را وارد کنید.
نکته: برای اضافه کردن مودم جدید، لازم به اجرای دستور فوق نبوده و از دستور faxaddmodem tty استفاده نمایید که در آن Tty نام مودم جدید می باشد.
تا این قسمت مراحل نصب نرم افزارهای iaxmodem و Hylafax+ و تعریف مودم ها و رجیستر شدن آن ها انجام شد. در بخش دوم این آموزش، سایر تنظیمات و روش ارسال و دریافت فکس را شرح خواهیم داد.