ISM Voice Chat

18

description

ISM Voice Chat. מנחים: פרופ' חבר פרידמן רועי מר קוגן אלכס. מגישים: ישראל צ'רניאק שי פרץ מרינה יצינה. ארכיטקטורת מערכת. מודולים ראשיים. VoiceCaller ISMVoiceCaller Portaudio Speex JVoipVoiceCaller JVoiplib Presence OLSRD GUI. VoiceCaller. - PowerPoint PPT Presentation

Transcript of ISM Voice Chat

Page 1: ISM Voice Chat
Page 2: ISM Voice Chat

מגישים:

ישראל צ'רניאקשי פרץ

מרינה יצינה

מנחים:

פרופ' חבר פרידמן רועימר קוגן אלכס

Page 3: ISM Voice Chat

ארכיטקטורת מערכת

Page 4: ISM Voice Chat

מודולים ראשיים

•VoiceCaller–ISMVoiceCaller

•Portaudio•Speex

–JVoipVoiceCaller•JVoiplib

•Presence•OLSRD•GUI

Page 5: ISM Voice Chat

VoiceCaller

אחראי על תחילת שיחה חדשה, קבלת שיחה והפסקת שיחה •כתוצאה מבקשת הפסקה של אחד מהצדדים המשתתפים

בשיחה. אחראי לתשאל את המשתמש האם הוא מעוניין לקבל או •

לדחות את השיחה ולפעול בהתאם.כל עוד מתקיימת שיחה הרכיב דוחה בקשות תחילת שיחה •

חדשות.כאשר אחד הצדדים מבקש להפסיק את השיחה הרכיב אחראי •

להעביר את בקשת הפסקת השיחה לצד השני.מודולריות – המודול אינו מממש שיחה קולית בעצמו, אלא •

מהווה תשתית למודול אשר מממש שיחה קולית, ועל-כן, מספק תמיכה לשילוב של מגוון רחב של מודולי שיחה קולית

שונים בתוכנית.

Page 6: ISM Voice Chat

ISMVoiceCaller

ISMאחראי על ביצוע השיחה לפי המימוש שלנו )•Internal מקליט ומשמיע קול באמצעות ספריית .)

Port Audio מקודד ומפענח את הקול באמצעות ,Speex ומעביר את הקול המקודד בעזרת UDP.

מאפשר למשתמש לצאת מטווח קליטה לפרק זמן • בהן ad-hocקצר ובכך הוא יותר ידידותי לרשתות

לעיתים קרובות מאבדים קליטה למספר רגעים, במיוחד כאשר נמצאים בתנועה.

במידה ונאבד קשר לפרק זמן ארוך, המודול מסיק • שהמשתמש התנתק ומנתק את השיחה.

Page 7: ISM Voice Chat

ISMVoiceCallerתרשים

הקלטה

קידוד

NetworkNetwork

השמעה

פיענוח

Page 8: ISM Voice Chat

ISMVoiceCaller - PortAudio

ומאפשרת C הכתובה בשפת I/Oזוהי ספריית openהקלטה והשמעה של קול. ספרייה זו היא

source .ויכולה לפעול על פלטפורמות שונות

Page 9: ISM Voice Chat

ISMVoiceCaller - Speex

המאפשרת קידוד open sourceזוהי אפליקציית ופענוח של קול.

Page 10: ISM Voice Chat

JVoipVoiceCaller

אחראי על ביצוע השיחה לפי המימוש של ספריית •Jvoiplib ,אשר מממשת הקלטה, השמעה, קידוד

RTPפענוח והעברת קול מקודד בעזרת פרוטוקול כחלק מהמימוש שלה של שיחה.

מאפשר למשתמש לצאת מטווח קליטה לפרק זמן • בהן ad-hocקצר ובכך הוא יותר ידידותי לרשתות

לעיתים קרובות מאבדים קליטה למספר רגעים, במיוחד כאשר נמצאים בתנועה.

במידה ונאבד קשר לפרק זמן ארוך, המודול מסיק • שהמשתמש התנתק ומנתק את השיחה.

Page 11: ISM Voice Chat

JVoipVoiceCaller - JVoiplib

VoIP המממשת object-orientedזוהי ספרייה • open source. ספרייה זו היא++Cוכתובה ב

.Linux, Windowsויכולה לפעול על

כחלק מיצירת השיחה הספרייה מקליטה, •משמיעה, מקודדת ומפענחת קול ומעבירה את

המידע בין משתתפי השיחה באמצעות RTP )Real-Time Transportפרוטוקול Protocol(.

Page 12: ISM Voice Chat

Presence

אחראי על רשימת הנוכחות של המשתמשים המחוברים לתוכנה.

אחראי על פרסום הודעת נוכחות של משתמש אשר מחובר • כל פרק broadcasts ע"י שליחה של ISM Voice Chatל

זמן קבוע.בעת התנתקות מסודרת, אחראי על פרסום הודעת •

.broadcastהתנתקות של המשתמש גם ע"י שליחה של . ISM Voice Chatאחראי על עדכון רשימת הנוכחות של•כאשר לא מתקבלת אף הודעת נוכחות ממשתמש שנמצא •

ברשימת הנוכחות במשך תקופה מסויימת, המודול מוריד אותו מהרשימה.

Page 13: ISM Voice Chat

OLSR Daemon OLSR )Optimized Link State של פרוטוקול open sourceזהו מימוש•

Routing ( המאפשר ניתוב ברשתות בטופולוגית mesh עבור כל ציוד קצה שהוא.

scalable מאוד יעיל, מנצל מעט מאוד זמן מעבד והוא מאוד Olsrdה- •(Olsrd 2000 רץ ברשת האלחוטית באתונה המכילה כ.)מחשבים

שרץ ברקע, בונה טבלאות ניתוב של המסלולים לכל daemonזהו • תוך התחשבות בעלות המסלול )במידה ויש Olsrdהמחשבים המריצים את

יותר ממסלול אחד(. לפי הטבלאות שהוא בונה ובכך packets מעביר את ה daemonכמו כן, ה-•

בין מחשבים שאינם בטווח קליטה hopsמאפשר העברת מידע דרך מספר ישיר אחד של השני.

, ניתן יהיה Olsrdבמידה והתוכנה שלנו מופעלת על מחשב המריץ את ה • גם בין מחשבים שאינם בטווח קליטה ישיר hopsלבצע שיחה דרך מספר

אחד של השני, כמו כן ניתן יהיה לראות ברשימת הנוכחות משתמשים שאינם נמצאים בטווח קליטה ישיר.

Page 14: ISM Voice Chat

GUI

Page 15: ISM Voice Chat

החלטות עיצוב

Page 16: ISM Voice Chat

GUI משלנו לעומת השתלבות PSIב-

.PSIבחרנו לכתוב תוכנית משלנו במקום להשתלב ב-•, וראינו שלהשתלב PSIהסתכלנו על הקוד של •

PSI שבה משתמשת תוכנת GUIבספריית ה-( יצרוך הרבה יותר מאמץ מאשר לכתוב QT)ספריית

GUI( משלנו בספרייה אחרת שמצאנו wxWidgets.), היינו PSIכמו-כן, לשם כך אם היינו משתמשים ב-•

צריכים להשתמש בארטיפקטים שלהם )כגון רשימת הנוכחות, ומחלקות אחרות שלהם(, כאשר הקוד של

PSI.איננו מתועד היטב, וקשה יחסית להבנה

Page 17: ISM Voice Chat

כתיבת מודול נוכחות משלנו לעומת Bonjourשימוש ב-

לצורך מעקב Bonjourתחילה, ניסינו להשתמש ב-•אחר רשימת הנוכחות.

עבד, אך נתקענו בבעיות כאשר התחלנו Bonjourה-•. תוכנת multiple hopsלבדוק את תאימותו ל-

)שתומכת בהעברת כל סוגי ההודעות, OLSRDה-( אכן העבירה את כל multicast ו-broadcastכולל

לא הצליח Bonjour, אך ה-Bonjourההודעות של לקלוט משתמשים שלא היו בטווח קליטתו הישיר

התעלם מהם Bonjour – כנראה שה-servicesכ-מסיבה כלשהי.

לאחר ניסיונות רבים להבין ולתקן את הבעיה, החלטנו •לממש פרוטוקול דומה בעצמנו, שגם מותאם לצרכינו

המיוחדים.

Page 18: ISM Voice Chat

תודות מיוחדות

תודה מיוחדת למקסים קווגן, אשר עזר לנו רבות במהלך הפרוייקט בהתקנות והגדרות של

.Linuxמערכת