לעתים קרובות אנו שומעים מחברות: "כבר יש לנו Asterisk, הכל מוגדר, עשרה נציגים, מאה שיחות ביום. עכשיו לקחנו Bitrix24 — איך מתחברים בלי לבנות מחדש את הטלפוניה?" חדשות טובות: לא תצטרכו לזרוק את Asterisk. אינטגרציה דרך AMI או SIP trunk מאפשרת לכם לשמור על מרכזיית ה-PBX הקיימת ולקבל את כל תכונות ה-CRM: כרטיס שיחה קופץ, יצירת ליד אוטומטית, הקלטת שיחות. במשך יותר מ-5 שנים הקמנו חיבורים כאלה לעשרות לקוחות — מסטארטאפים ועד חברות עם מוקדים של 50 נציגים. החיסכון בציוד בגישה זו מגיע ל-30%.
איך לשלב את Bitrix24 עם Asterisk בלי לאבד גמישות?
ישנן שתי גישות ארכיטקטוניות עיקריות: SIP trunk ואינטגרציית AMI/AGI. הבחירה תלויה בשאלה אם אתם רוצים להעביר את זרם המדיה לענן או לשמור על ניתוב ב-Asterisk.
מה מספקת אינטגרציית AMI בהשוואה ל-SIP trunk?
SIP trunk — Asterisk נרשם כ-SIP trunk במרכזיית הענן של Bitrix24. כל הקול עובר דרך שרתי Bitrix24, מה שמוסיף השהיה. אינטגרציית AMI (באמצעות Asterisk Manager Interface) מעבירה רק אירועים: תחילת שיחה, סיום, משך. זרם המדיה נשאר מקומי — איכות הצליל לא מתדרדרת. עבור חברות עם ספק שכבר מוגדר, AMI היא הבחירה האופטימלית. AMI יוצרת חיבורים פי 2 מהר יותר מאשר SIP trunk.
| מאפיין | SIP trunk | אינטגרציית AMI |
|---|---|---|
| ניתוב | ב-Asterisk או בענן | רק ב-Asterisk |
| השהיה | + (דרך שרתי Bitrix24) | מינימלית (מקומית) |
| מורכבות הגדרה | בינונית, דורש הגדרת SIP | גבוהה יותר, דורש daemon של AMI |
| גמישות IVR/תור | מוגבלת ליכולות מרכזיית הענן | מלאה, Asterisk |
| הקלטת שיחות | אוטומטית ב-Bitrix24 | דרך API, עם צירוף קובץ |
| ביצועים | נמוכים יותר עקב קפיצה נוספת | גבוהים יותר, המדיה לא יוצאת מהרשת המקומית |
לפי תיעוד Asterisk, AMI מספקת ניהול דרך חיבור TCP.
הגדרת אינטגרציית AMI: הוראות שלב-אחר-שלב
בואו נפרוס תוכנית טיפוסית:
-
צרו משתמש AMI ב-
/etc/asterisk/manager.conf:[bitriks_agi] secret = your_secret_password read = call,cdr write = originate permit = 127.0.0.1/255.255.255.0הריצו daemon (ב-Node.js, PHP, או Python) שמאזין לאירועי AMI:
-
[bitriks_agi] secret = your_secret_password read = call,cdr write = originate permit = 127.0.0.1/255.255.255.0— שיחה נכנסת -
Newchannel— סיום -
Hangup— נציג ענה
ב-
Bridge, קראו ל-REST API של Bitrix24:POST /rest/telephony.externalcall.register { "USER_PHONE_INNER": "101", "USER_ID": 5, "PHONE_NUMBER": "+74951234567", "CALL_START_DATE": "2025-01-15T10:30:00+03:00", "CRM_CREATE": "Y", "CRM_SOURCE": "CALL_TRACKER", "TYPE": 2 }שמרו את
Newchannel— הוא נחוץ לסיום וצירוף ההקלטה. ב-POST /rest/telephony.externalcall.register { "USER_PHONE_INNER": "101", "USER_ID": 5, "PHONE_NUMBER": "+74951234567", "CALL_START_DATE": "2025-01-15T10:30:00+03:00", "CRM_CREATE": "Y", "CRM_SOURCE": "CALL_TRACKER", "TYPE": 2 }, סיימו את השיחה:POST /rest/telephony.externalcall.finish { "CALL_ID": "сохранённый_CALL_ID", "USER_ID": 5, "DURATION": 185, "STATUS_CODE": "200", "ADD_TO_CHAT": "Y" } -
איך להעביר הקלטות שיחות ל-Bitrix24?
Asterisk שומר את קובץ ההקלטה. לאחר השיחה, אנו מעבירים אותו דרך REST API:
POST /rest/telephony.externalCall.attachRecord
{
"CALL_ID": "CALL_ID",
"FILENAME": "record.mp3",
"FILE_CONTENT": "<base64>"
}לשיחות ארוכות מ-5 דקות, base64 אינו יעיל. אנו משתמשים ב-CALL_ID — קבלת קישור להעלאה ישירה.
שיחות יוצאות מה-CRM
מנהל לוחץ על מספר בכרטיס — Asterisk חייב להתקשר. אנו נרשמים לאירוע Hangup ומבצעים POST /rest/telephony.externalcall.finish { "CALL_ID": "сохранённый_CALL_ID", "USER_ID": 5, "DURATION": 185, "STATUS_CODE": "200", "ADD_TO_CHAT": "Y" } דרך AMI:
Action: Originate
Channel: SIP/101
Exten: +74951234567
Context: outbound
Priority: 1
CallerID: "Иванов Пётр" <+74955551234> מקרה מהפרקטיקה שלנו: מוקד ל-12 נציגים
לפני כמה שנים, חברת תקשורת פנתה אלינו. הייתה להם Asterisk 18 משלהם, 12 נציגים, IVR רב-שלבי, ותורים. הם רצו ליישם את Bitrix24 להיסטוריית תקשורת עם לקוחות אבל לא רצו לשנות את מרכזיית ה-PBX העובדת.
בחרנו באינטגרציית AMI. הקושי עלה עם התורים: שיחה יכלה להיות מועברת בין נציגים. ה-handler הסטנדרטי של AMI צירף את השיחה לנציג הראשון, למרות שאחר ענה. פתרנו זאת על ידי מעקב אחר אירוע POST /rest/telephony.externalCall.attachRecord { "CALL_ID": "CALL_ID", "FILENAME": "record.mp3", "FILE_CONTENT": "<base64>" } — אירוע זה מתעד איזה סוכן בפועל לקח את השיחה מהתור. בזכות זה, ה-CRM קיבל שיוך נכון למנהל המתאים.
כל הגדרת האינטגרציה (עם העברת הקלטות ושיחות יוצאות) ארכה 6 ימי עסקים. החברה עדיין עובדת על תוכנית זו — יציבה, ללא תקלות.
מה כלול בעבודת האינטגרציה?
| שלב | משך | תוצאה |
|---|---|---|
| ביקורת של תצורת Asterisk הנוכחית | יום אחד | תוכנית ניתוב, רשימת ספקים |
| עיצוב ארכיטקטורה | 1-2 ימים | בחירת גישה (AMI/SIP), מפרט API |
| פיתוח daemon | 3-4 ימים | מודול עובד עם לוגים |
| הגדרת Bitrix24 (ווידג'טים, משתמש REST) | יום אחד | אינטגרציית CRM מוכנה |
| בדיקות וניפוי שגיאות | 1-2 ימים | אימות כל התרחישים |
| תיעוד והדרכה | יום אחד | הוראות למנהל מערכת |
סה"כ: 5 עד 8 ימי עסקים במפתח פתוח. עלות הפרויקט תלויה במורכבות התוכנית — נחשב באופן אישי לאחר הביקורת.
טעויות נפוצות ואיך להימנע מהן
-
שיחות כפולות ב-CRM. בהעברת שיחה, Asterisk יוצר ערוץ חדש. סננו לפי
disk.file.uploadurl.prepareבאירועי AMI — הוא נשאר קבוע. -
הקלטה לא מצורפת. הקובץ עשוי לא להיות מוכן בזמן ה-Hangup. הוסיפו השהיה של 5-10 שניות או עקבו אחר הופעת הקובץ דרך
OnExternalCallStart. -
שיוך שגוי לנציג. בתורים, השתמשו ב-
Originate, לא ב-Action: Originate Channel: SIP/101 Exten: +74951234567 Context: outbound Priority: 1 CallerID: "Иванов Пётр" <+74955551234>.
למה להפקיד את האינטגרציה בידינו?
יש לנו יותר מ-5 שנות ניסיון עם Bitrix24 ו-Asterisk. השלמנו יותר מ-30 פרויקטים של אינטגרציית טלפוניה. מומחים מוסמכים של 1C-Bitrix. אנו מבטיחים פעולה יציבה ותמיכה לאחר ההשקה. אם יש לכם תצורה לא סטנדרטית, נבחן את הפרויקט ונציע את הפתרון האופטימלי. צרו קשר כדי לדון בפרטים. קבלו ייעוץ ממהנדס.

