מדריך התקנת אסטריסק Asterisk
מתוך הויקי של ג'נטו.
| שיטות התקנה • תקליטורי LiveCD • קרנל וחומרה • Portage • ניהול מערכת |
| רשתות ושירותים • שרת X • תוכנות • משחקים • שונות |
מדריך זה מתבסס ברובו עלHOWTO_Asterisk בוויקי של ג'נטו באנגלית. נכתב על ידי Oldie
נכון לתאריך 11-Mar-07, המדריך עדיין אינו גמור.
תוכן העניינים |
[עריכה] הקדמה
הגעתי לכתיבת המדריך במסגרת בדיקת התכנות לאסטריסק כמרכזיה שתחליף את זו הקנינית בה מקום עבודתי משתמש. לצורך הבדיקה השאלתי מחשב ישן בעל הנתונים הבאים: אתלון 600, 400MB זכרון, 10GB כונן קשיח. במחשב זה התקנתי ג'נטו 2006.1 Live. כדי לחסוך זמן כבר בעת ההתקנה אפשרתי דגלי שימוש כפי שמוסבר בהמשך. תפקיד המרכזיה בבדיקה שלי יהיה לנתב שיחות טלפון מקו בזק לשלוחות של טלפון IP ולזוג שלוחות טלפון אנלוגי רגיל. את ההתממשקות לקוי הבזק אני מבצע בעזרת כרטיס A1200 מתוצרת OpenVox שעליו התקנתי מתאם קו אחד וזוג מתאמי שלוחות. קיימים המוני יצרנים / כרטיסים והבחירה שלי ביצרן זה הנה אקראית, ואין בכך משום המלצה עליו.
ההתקנה אינה ענין מהיר, ודורשת נסיון מסויים בג'נטו. קישורים ממולצים:
- voip-info.org כולל מידע רב על אסטריסק בכלל. קישור זה הוא להתקנת אסטריסק ע"ג ג'נטו.
- OpenPBX.org פורק של אסטריסק, זוכה ללא מעט תהודה
- tribox אסטריסק ארוזה כמרכזיה בתקליטור יחיד. נראה כמו הדרך הקלה יותר...
[עריכה] התקנה
[עריכה] קרנל
אין דרישות מיוחדות מהקרנל אולם CRC_CCIT צריך להיות מאופשר. בזמן הבניה של החבילה מתבצעת בדיקה של דגלים נדרשים ובמידת הצורך תקבל הודעת שגיאה המפרטת מהם הדגלים החסרים.
Library routines --->
<*> CRC-CCITT functions
תוכל להעזר במדריך לשדרוג הקרנל כדי להזכר כיצד לעדכנו.
[עריכה] דגלי שימוש
כדי לראות אלו דגלי שימוש מאופשרים עליך להקליד
emerge -pv asterisk
דגלי השימוש אותם תרצה לראות הינם:
- mmx
- alsa או oss לפי בחירתך
- devfs26 במידה והנך עדיין משתמש ב devfs והקרנל שלך הינו 2.6
- zaptel אם הנך משתמש בכרטיס מסוג זה (או תואם לו)
- pri לאלו המשתמשים בקוי pri
- bri לאלו המשתמשים בקוי ISDN
- rtc
[עריכה] בניה
הקלד:
| קוד: |
|
emerge -av asterisk |
בעיה אפשרית - אימרג' יפול בגלל אי התאמה בן גרסת zaptel לגרסת הקרנל. למשל zaptel-1.2.9.1 לא מוכן להתהדר עם קרנל 2.6.19-gentoo-r5. פתרונות אפשרים:
- חיפוש ב bugs
- חיפוש בפורום
- בניה של גרסה לא יציבה
ACCEPT_KEYWORDS='~x86' emerge -av zaptel
ולאחר מכן
ACCEPT_KEYWORDS='~x86' emerge -av asterisk
לבסוף במידה והכרטיס שברשותך אינו חלק מהסט הסטנדרטי של אסטריסק, עליך לפנות לחלק של [כרטיסים לא נתמכים], ולבצע את הצעדים הנוספים המוזכרים שם. רצוי בכל מקרה לבצע אימרג' של zaptel גם אם דורסים אותו עם יצירת מודול מקבצי מקור.
במידה והנך משתמש ב- iptables ממולץ לבצע, את הקוד הבא כדי לקבל ToS (ר"ת Type of Service) מ- iptable
iptables -A OUTPUT -t mangle -p udp -m udp --dport 5060 -j DSCP --set-dscp 0x28 iptables -A OUTPUT -t mangle -p udp -m udp --sport 10000:20000 -j DSCP --set-dscp 0x28
[עריכה] הפעלה
טען את המודולים לזכרון:
modprobe zaptel modeprobe opvxa1200
| שים לב: במידה ואין לך כרטיס חומרה, עליך לטעון את המודול ztdummy. אסטריסק נעזר בכרטיסי טלפוניה כדי לארגן את התזמון שלו. כאשר אין כרטיס שכזה במחשב שלך (VOIP בלבד), יש צורך להשתמש ב-ztdummy כדי ליצר את התזמון. |
| שים לב: אם אתה מחליף קרנל, יש צורך להתקין מחדש את zaptel והמודולים הנלווים |
עתה ביכולתך להפעיל ולהפסיק את אסטריסק:
/etc/init.d/asterisk start /etc/init.d/asterisk stop
קובץ האתחול של אסטריסק נמצא ב etc/conf.d/asterisk/. כדי לראות אלו פרמטרים ניתן לשנות בקובץ זה אפשר להריץ:
asterisk -h
ברוב הפרמטרים לא יהיה צורך לאחר שקבצי האיתחול של השרת יתואמו כהלכה. עד אז, במקום להפעילו דרך התסריטים שנמצאים ב- init.d תוכל להפעילו כך:
asterisk -vvvvvc
בצורה זו תקבל את כל ההודעות שאסטריקס מוציא בעת האיתחול, ובמידה הוא הסתיים כהלכה תקבל את שורת הפקודה של אסטריסק. אסטריסק מניח שימוש ב- oss כברירת מחדל. אם הנך עובד עם alsa, צפוי שתקבל הודעת שגיאה. הדרך לתקנה היא על ידי עריכת הקובץ etc/asterisk/modules.conf/ ושינוי השורות:
noload => chan_alsa.so ;noload => chan_oss.so
לצורה:
;noload => chan_alsa.so noload => chan_oss.so
[עריכה] טלפונים וערוצים
אסטריסק מתייחס בצורה סימטרית לקוי חוץ, שלוחות פנימיות, או טלפוני אינטרנט. כל חיבור באסטריסק אשר מכניס שיחה למרכזיה קרוי ערוץ (channel). ראה מאמר בנושא ערוצים באסטריקס. לכל סוג של ערוץ יש קובץ תצורה נפרד. לשם התחלה אשתמש בטלפון מבוסס תוכנה (soft phone). בחרתי באקיגה Ekiga אשר ידוע גם בשמו הקודם Gnomemeeting. הבחירה היתה פשוטה - תוכנה זו באה כחלק מברירת המחדל של התקנת גנום בגנטו. אקיגה זמינה גם עבור KDE וגם חלונות.
[עריכה] חיבור אקיגה לאסטריסק
מקור המידע הוא במאמר בוויקי של אקיגה הדן בחיבור אקיגה לאסטריסק. הנחת העבודה היא שאסטריסק כבר פועל, וכי אקיגה מחוברת ברשת פנימית לאסטריסק, או אפילו באותו מחשב. (ראה תרשים טופולוגיה בהמשך).
| טיפ! כאשר אקיגה ואסטריסק מותקנים באותו מחשב, הם חולקים את אותו פורט (5060) של SIP. כדי למנוע התנגשות, יש להעביר את אקיגה לפורט אחר (5061 למשל). בהמשך יפורט כיצד לעשות זאת ואיך לשנות את תצורת אסטריסק במקרה זה. |
[עריכה] התאמת תצורת אסטריסק לעבודה עם אקיגה
| טיפ! בפסקאות הבאות תצטרך לשנות מספר פעמים את תצורת אסטריסק. אין צורך להפסיק ולהפעיל מחדש את אסטריסק לשם טעינת התצורה החדשה.
הפעל את אסטריסק בצורה הבאה, ותקבל את שורת הפקודה: asterisk -vvvvvc לאחר כל שינוי בקובץ sip.conf תוכל לרשום sip reload כדי לטעון מחדש. כנ"ל לגבי שינויים בקובץ extensions.conf, השינויים יטענו מחדש על ידי כתיבת extensions reload. כדי להקל על הכתיבה תוכל להשתמש בטאב (TAB) להשלמת מילים. |
הצעד הראשון יהיה הגדרת אקיגה כלקוח אסטריסק. לשם כך יש לרשום את השורות הבאות בקובץ sip.conf
[general]
context=default
srvlookup=yes
videosupport=yes
disallow=all ; First disallow all codecs
allow=alaw ; Allow codecs in order of
allow=ilbc ; preference
allow=gsm
allow=h261
[101]
type=friend
secret=welcome
qualify=yes ; Qualify peer is not more than 2000 mS away
nat=no ; This phone is not natted
host=dynamic ; This device registers with us
canreinvite=no ; Asterisk by default tries to redirect
context=home
;port=5061 ; Uncomment this line if Ekiga and Asterisk
; are on the same host
- שים לב לשורה האחרונה המזכירה את הפורט של אקיגה. במידה ואקיגה מותקן ע"ג שרת אסטריסק, יש להפוך שורה זו מהערה לשורה פעילה.
- הביטוי videosupport=yes נחוץ כדי לאפשר וידאו מאסטריסק אל ומחוץ לאקיגה.
- [101] הוא שם המשתמש, welcome הנה הססמה אשר נשתמש בה כאשר נאתחל את אקיגה.
- nat=no אומר שאין חומת אש בן אקיגה לאסטריסק.
- canreinvite=no הינו מתג חשוב. בלעדיו שני הצדדים לשיחה ינסו לדבר האחד עם השני על ידי שליחת הזמנות חוזרות ונשנות. מהלך זה יכשל אם יש חומת אש בינהם.
- context=home מגדיר איזה חלק (context) בתוכנית החיוג יטפל בשיחות הבאות מ-101 (ממך).
הגדרת השלוחות נמצאת בקובץ extensions.conf ויש להוסיף לה את הטקסט הבא:
[home]
exten => 101,1,Dial(SIP/101)
exten => 600,1,Answer()
exten => 600,2,Playback(demo-echotest) ; Let them know what
; is going on
exten => 600,3,Echo() ; Do the echo test
exten => 600,4,Playback(demo-echodone) ; Let them know it
;is over
exten => 600,5,Hangup()
השורה הראשונה המכילה exten מאפשרת לך לחייג לעצמך. מאחר ואקיגה אינו טלפון רב-קווי, אין אפשרות להשתמש באפשרות זו (תוכנות אחרות כגון x-lite יכולות לעשות שימוש בתכונה זו. לחילופין באפשרותך לחייג 600 ולקבל את אותה בדיקה עצמית כפי שמקבלים כשמחייגים 500@ekiga.net .
[עריכה] התאמת תצורת אקיגה לשימוש באסטריסק
תיאום התצורה של אקיגה גם הוא פשוט:
החלק החשוב פה הוא להכניס את שם המשתמש והססמה כפי שהוכנסו בקובץ sip.conf, במקרה דנן שם משתמש 101, ססמה welcome. שים לב שבמקום ה-IP של שרת אסטריסק, ביכולתך לרשום FQDN (ר"ת , Fully-Qualified Domain Name, ראה קצרמר בנושא בוויקי של גנטו). מספר שניות לאחר שתסגור חלון זה, תוכל לראות שאקיגה רשום באסטריסק.
במידה ויש מספר מחשבים ברשת הביתית שלך, תוכל להפוך כל אחד מהם ללקוח אסטריסק. תוכל לתת להם מספרי שלוחות 102,103, וכו'. באסטריסק עצמו יש להעתיק את הקטע הקרוי [101] בקובץ sip.conf, לשנות את שמו ל 102 וכו' (וגם לשנות את הססמה כמובן). בקובץ extensions.conf המצב אף יותר פשוט, ויש להוסיף שורה כגון (exten => 102,1,Dial(SIP/102 עבור כל מחשב ברשת. שורה זו תאפשר להם להדבר בינהם.
[עריכה] כרטיסים לא נתמכים
ההפצה הסטנדרטית של zaptel תומכת בכרטיסי דיגיום ובתואמיהם. במידה והכרטיס שברשותך אינו תואם עליך להתקין את את הדריבר המתאים לכרטיס. מקור מידע טוב הינו אתר http://voip-info.org/, וכמובן התיעוד אותו מספק היצרן.
[עריכה] התאמת כרטיס OpenVox A1200
| שים לב: הנחת העבודה היא שהנך עובד עם קרנל 2.6 ו-udev. לגבי תצורות אחרות יש להתעמק במקורות המידע המוזכרים. |
מקורות מידע:
- http://www.openvox.com.cn/ אתר החברה. יש להוריד את הדרייבר ואת מדריך ההתקנה.
- הוויקי של voip-info.org בפרק של התקנת zaptel
צור ספריה חדשה בשם zaptel תחת usr/src/
mkdir /usr/src/zaptel cd /usr/src/zaptel
הורד את קבצי המקור של zaptel
emerge --fetchonly zaptel
או לחילופין מהעץ הלא יציב (אם גם את אסטריסק בכוונתך ליצר כך:
ACCEPT_KEYWORDS='~x86' emerge --fetchonly zaptel
העתק את קבצי המקור מ usr/portage/distifiles/ אל usr/src/zaptel/ :
cp /usr/portage/distfiles/zaptel-1.2.12.tar.gz /usr/src/zaptel
לחילופין הורד את הגרסאות היציבות האחרונות של zaptel ו- astrisk מאתר הftp של דיגיום: ftp://ftp.digium.com/pub/telephony/zaptel/, ושמור את הקבצים ב usr/src/zaptel/
הקבצים מגיעים מכווצים ויש לפתוח אותם. לאחר הפתיחה תיווצר ספריה חדשה בשם הגרסה אותה הורדת, לדוגמה zaptel-1.2.12. עבור לספרייה זו:
cd /usr/src/zaptel/zaptel-1.2.12
העתק את הדרייבר opvxa1200.c הזמין באתר החברה אל הספרייה של zaptel-1.2.12.
פתח את הקובץ Makefile באמצעות עורך טקסט:
nano -w Makefile
מצא את השורה המתחילה ב =:MODULES לדוגמה:
MODULES:=zaptel tor2 torisa wcusb wcfxo wctdm wctdm24xxp \
ztdynamic ztd-eth wct1xxp wcte11xp pciradio \
ztd-loc wcte12xp # ztdummy
הוסף את opvxal1200 לרשימת המודולים, כך שהרשימה תראה:
MODULES:=zaptel tor2 torisa wcusb wcfxo wctdm wctdm24xxp \
ztdynamic ztd-eth wct1xxp wcte11xp pciradio \
opvxa1200 \
ztd-loc wcte12xp # ztdummy
מצא את השורה המתחילה ב- :wctdm.o
wctdm.o: wctdm.h
הוסף שורה חדשה מתחתיה:
opvxa1200.o : wctdm.h
שמור את הקובץ וצא מהעורך.
פתח את הקובץ zaptel.sysconfig באמצעות עורך טקסט:
nano -w zaptel.sysconfig
הוסף את השורה הבאה לקובץ:
MODULES="$MODULES opvxa1200" # OPENVOXA1200P - Modular FXS/FXO interface (1-12 ports)
שמור את הקובץ, וצא מהעורך.
חפש את הקובץ zaptel.init וערוך אותו באמצעות עורך טקסט:
nano -w zaptel.init
מצא את החלק הבא בקובץ:
if [ -z "${MODULES}" ]; then
# Populate defaults if not present
MODULES="tor2 wct4xxp wct1xxp wcte11xp wcfxo wctdm wctdm24xxp"
fi
הוסף את opvxa1200 לאחר wctdm כך שהתוצאה תראה:
if [ -z "${MODULES}" ]; then
# Populate defaults if not present
MODULES="tor2 wct4xxp wct1xxp wcte11xp wcfxo wctdm opvxa1200 wctdm24xxp"
fi
שמור את הקובץ, וצא מהעורך. בנה את הדרייבר על ידי הקלדת הפקודות הבאות:
make clean make install make install-udev
הפעלת המודול תיעשה על ידי הפקודות
modprobe asterisk modprobe opvxa1200
פרמטרים אחרים המוזכרים בקובץ zaptel.conf כגון התאמה לארץ, תצורת ערוצים, יכוונו בדיוק כפי שמכוונים לגבי כרטיס TDM400P למעט ההבדל שבכרטיס שלנו יש 12 ערוצים.

