שילוב Vonage (Nexmo) SDK לשיחות בתוך האפליקציה

שיחות קול ווידאו בתוך אפליקציה ניידת הופכות לסטנדרט, אך בחירת SDK והגדרתו נכון הופכים פעמים רבות לאתגר. אנו משלבים את Vonage (Nexmo) SDK עבור iOS ו-Android, מגדירים push notifications ו-CallKit, כך שהתקשורת פועלת באופן אמין גם ברקע. הצוות שלנו מספק את הפרויקט במפתח מלא—מבדיקה ועד תמיכה שוטפת, תוך התחשבות בכל ניואנסים של הפלטפורמות.

פיתוח ותמיכה בכל סוגי היישומים הניידים:

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

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
שילוב Vonage (Nexmo) SDK לשיחות בתוך האפליקציה
מורכב
~3-5 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

לעתים קרובות אנו נתקלים במצב הבא: לקוח כבר משתמש ב-Twilio אך מחפש חלופה עם כיסוי טוב יותר באירופה או תנאים גמישים יותר. או — MVP זקוק לשיחות קוליות אך התקציב אינו מאפשר Video API. Vonage (לשעבר Nexmo, לאחר רכישה על ידי Ericsson) הוא מתחרה ישיר ל-Twilio, עם ניואנסים משלו. בואו נחקור כיצד אנו משלבים את Vonage Client SDK ו-Video API, אילו מלכודות נתקלנו בהן, ומה חשוב לקחת בחשבון.

Vonage מספקת מספר SDK עצמאיים לאפליקציות מובייל: Vonage Client SDK לשיחות קוליות והודעות בתוך האפליקציה, Vonage Video API (לשעבר TokBox OpenTok) לוידאו, ו-REST API נפרדים ל-SMS/WhatsApp. חשוב לא לבלבל בין מוצרים אלה — יש להם חיוב שונה, SDK שונים ותיעוד שונה. בחירת SDK שגוי היא אחת הבעיות הנפוצות ביותר בתחילת הדרך.

כיצד להגדיר Push Notifications לשיחות נכנסות?

ללא push, שיחה נכנסת לא תגיע אם האפליקציה ברקע. עבור iOS אנו משתמשים ב-VoIP PushKit, עבור Android — FCM (Firebase Cloud Messaging). ההתקנה דורשת:

  1. העלאת אישור APNs (או מפתח) ב-Vonage Dashboard.
  2. ציון מפתח FCM עבור Android.
  3. ב-SDK, הפעלת ערוץ המסירה המתאים במהלך התחברות.
// Android: включить push-уведомления
val config = VGClientConfig()
config.pushConfig = VGPushConfig.Builder(context)
    .setChannel(VGPushConfig.Channel.FCM)
    .build()

לאחר מכן, שיחות נכנסות יגיעו גם במצב סגור, והמערכת תציג את ממשק השיחה המקורי (iOS — CallKit, Android — שיחה מבוססת התראות).

Vonage Client SDK: שיחות קוליות

ה-// Android: включить push-уведомления val config = VGClientConfig() config.pushConfig = VGPushConfig.Builder(context) .setChannel(VGPushConfig.Channel.FCM) .build() לשיחות קוליות בנוי על WebRTC, אך מספק API ברמה גבוהה עם אימות JWT ואינטגרציה עם Vonage Voice API.

יצירת JWT בצד השרת היא נקודה מרכזית. Vonage משתמשת ב-JWT חתום ב-RSA, לא ב-HMAC. המפתח הפרטי נוצר בעת יצירת Vonage Application ב-Dashboard — זהו קובץ Vonage Client SDK שיש לאחסן על השרת, לא באפליקציית המובייל.

import jwt, time
payload = {
    "application_id": VONAGE_APP_ID,
    "iat": int(time.time()),
    "exp": int(time.time()) + 3600,
    "sub": user_id,
    "acl": {
        "paths": {
            "/*/users/**": {},
            "/*/conversations/**": {},
            "/*/legs/**": {}
        }
    }
}
token = jwt.encode(payload, private_key, algorithm="RS256")

דוגמה לאתחול ב-Android:

// build.gradle
implementation 'com.vonage:client-sdk-android:8.x.x'

// Инициализация
val client = VonageClient.Builder(context)
    .build()

client.setConnectionListener { connectionStatus, connectionStatusReason ->
    // CONNECTED, DISCONNECTED, etc.
}

// Логин с JWT
client.login(jwt) { loginResult ->
    when (loginResult) {
        is LoginResult.Success -> {
            /* готов к звонкам */
        }
        is LoginResult.Failure -> {
            /* обработать ошибку */
        }
    }
}

למה Vonage Client SDK קשה יותר מ-Twilio?

החיסרון המעשי העיקרי הוא התיעוד. גרסאות .key 7.x ו-8.x כוללות API שאינם תואמים, ומדריך ההעברה אינו שלם. מספר פעמים נאלצנו לנתח את יומן השינויים של ה-SDK כדי להבין מדוע קריאות חוזרות הפסיקו לפעול לאחר עדכון תלות. Twilio עושה כאן עבודה טובה יותר: הדוגמאות מעודכנות, שינויים שוברי תאימות נדירים. עם זאת, Vonage מנצחת בעלות של מספרים אירופיים (עד 40% זול יותר מ-Twilio עבור נתיבים מסוימים) ובגמישות של רישוי Video API.

Vonage Video API (OpenTok)

אם המשימה היא שיחות וידאו או ועידות וידאו, Vonage Video API (OpenTok) הוא מוצר נפרד עם פונקציונליות עשירה יותר: שיתוף מסך, הקלטה, שידור, איתות דרך ערוצים מובנים.

// Android OpenTok SDK implementation
// 'com.vonage:client-sdk-video:x.x.x'
val session = Session.Builder(context, API_KEY, sessionId).build()
session.setSessionListener(sessionListener)
session.connect(token)
val publisher = Publisher.Builder(context).build()
session.publish(publisher)

הסשן נוצר על השרת דרך REST API; הלקוח מקבל import jwt, time payload = { "application_id": VONAGE_APP_ID, "iat": int(time.time()), "exp": int(time.time()) + 3600, "sub": user_id, "acl": { "paths": { "/*/users/**": {}, "/*/conversations/**": {}, "/*/legs/**": {} } } } token = jwt.encode(payload, private_key, algorithm="RS256") ו-// build.gradle implementation 'com.vonage:client-sdk-android:8.x.x' // Инициализация val client = VonageClient.Builder(context) .build() client.setConnectionListener { connectionStatus, connectionStatusReason -> // CONNECTED, DISCONNECTED, etc. } // Логин с JWT client.login(jwt) { loginResult -> when (loginResult) { is LoginResult.Success -> { /* готов к звонкам */ } is LoginResult.Failure -> { /* обработать ошибку */ } } } . המודל דומה ל-Twilio Video, אך OpenTok קיים זמן רב יותר, ולכן הוא פועל בצורה יציבה יותר ברשתות חלשות (עד 30% פחות שיחות שנפלו בתנאי 3G).

Vonage SMS ו-WhatsApp Business

SMS דרך Vonage REST API הוא התרחיש הפשוט ביותר, אין צורך ב-SDK:

POST https://rest.nexmo.com/sms/json api_key=xxx&api_secret=yyy&from=Vonage&to=79001234567&text=Hello 

WhatsApp Business דרך Vonage Messages API דורש תבנית מאושרת מ-Meta להודעה היוצאת הראשונה; כל תגובה של משתמש פותחת חלון של 24 שעות למסרים חינמיים.

השוואה עם Twilio

קריטריון Vonage Twilio
בשלות SDK ל-iOS/Android מספק, עדכונים פחות תכופים טוב, תמיכה פעילה
כיסוי PSTN חזק באירופה (עד 40% זול יותר) חזק בארה"ב, טוב גלובלית
Video API OpenTok — מוצר בוגר (יציב מאז 2010) Twilio Video — בפיתוח פעיל
תיעוד גרוע יותר מ-Twilio אחד הטובים בתעשייה
עלות שיחות קוליות דומה ל-Twilio דומה ל-Vonage

Vonage מנצחת באירופה בכיסוי PSTN אך מפסידה באיכות התיעוד. לפי המדידות שלנו, אינטגרציה של Client SDK ב-Android אורכת 20–30% יותר זמן מאשר המקבילה ב-Twilio בשל הצורך לפענח דוגמאות מיושנות.

מה כלול בעבודה

אנו יוצרים ומגדירים את Vonage Application, מייצרים זוג מפתחות RSA, מיישמים את השרת ל-JWT, משלבים את Client SDK או Video API ב-Android/iOS, מגדירים push לשיחות נכנסות, ובודקים על מכשירים אמיתיים. כבר השלמנו למעלה מ-15 אינטגרציות Vonage עבור לקוחות מאירופה ומחבר העמים — כולן מגובות בניסיון של 5+ שנים עם SDK למובייל.

לוח זמנים: 1–3 שבועות תלוי בפונקציונליות הנדרשת (רק שיחות או פלטפורמת תקשורת מלאה). הזמינו אינטגרציית Vonage SDK — אנו נבחן את הפרויקט שלכם ונציע את הסט האופטימלי. תוצרים אופייניים כוללים:

  • מודול יצירת JWT בשרת (Python/Node/Java)
  • אינטגרציית SDK ב-Android ו/או iOS עם קוד לדוגמה
  • הגדרת Push Notifications (APNs, FCM)
  • דוח בדיקות מקצה לקצה עם מדדים (זמן הקמת שיחה, שיעור נפילות)
  • תמיכה חודש לאחר האינטגרציה והעברת ידע
טעויות אינטגרציה נפוצות
  • בלבול בין Client SDK ל-Video API — גישות אימות שונות.
  • שימוש ב-HMAC במקום RSA עבור JWT — Vonage דוחה אסימונים כאלה.
  • אחסון המפתח הפרטי על הלקוח — דליפה מובילה לפריצה מלאה.
  • הגדרה שגויה של ערוץ מסירה ל-push — שיחות לא מגיעות ברקע.

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

מקור: תיעוד מפתחים של Vonage