מוניטור SIP בזמן אמת - מערכת SiP_panel
שימו לב, שירות זה דורש רישיון פעיל (חבילה בתשלום מול שירות הלקוחות, או התנסות). ניתן לבדוק את מצב הרישיון גם ללא רישיון באמצעות getLicenseInfo.
הפקודה היא - SipRealtimeMonitor
ניתן לקרוא לשירות ב-GET (פרמטרים ב-query string) או ב-POST עם JSON ב-body.
מתי חובה להשתמש ב-POST:
כשמועבר פרמטר accounts (מערך)
כשמועבר אחד מהפרמטרים: startDateTime, endDateTime, afterCallId
בכל פניה יש לצרף:
פרמטר
תיאור
סוג
token
טוקן
string
action
הפעולה לביצוע - יבואר
string
פעולות:
קבלת מצב הרישיון - getLicenseInfo
הפעולה היא - getLicenseInfo
מענה בעת הצלחה
מאפיין
סוג
הסבר
דוגמא
responseStatus
string
סטטוס הפעולה
OK
license.allowed
boolean
האם יש גישה לשירות
true
license.trial
boolean
האם זהו רישיון ניסיון
true
license.trialStart
number
Unix timestamp של תחילת הניסיון
1779705344
license.trialEnd
number
Unix timestamp של סיום הניסיון
1780310144
license.trialAvailable
boolean
האם ניסיון זמין להפעלה
false
דוגמא לתגובה כאשר השירות בניסון פעיל:
{
"responseStatus": "OK",
"license": {
"allowed": true,
"trial": true,
"trialStart": 1779705344,
"trialEnd": 1780310144
}
}
דוגמא לתגובה — אין רישיון, ניסיון זמין:
{
"responseStatus": "OK",
"license": {
"allowed": false,
"reason": "no_license",
"trialAvailable": true
}
}
הפעלת ניסיון חינם - startTrial
הפעולה היא - startTrial
מפעיל ניסיון חינם של 7 ימים. ניתן לבצע את הפעולה בכל מערכת פעם אחת בלבד!.
מענה בעת הצלחה
מאפיין
סוג
הסבר
דוגמא
responseStatus
string
סטטוס הפעולה
OK
trialStarted
boolean
האם הניסיון הופעל כעת
true
alreadyLicensed
boolean
האם כבר היה רישיון פעיל
true
license
object
פרטי הרישיון לאחר הפעלה
{
"responseStatus": "OK",
"trialStarted": true,
"license": {
"allowed": true,
"trial": true,
"trialStart": 1779705344,
"trialEnd": 1780310144
}
}
קבלת שיחות - getCalls
הפעולה היא - getCalls
שירות זה דורש רישיון פעיל.
הפרמטרים הנדרשים בנוסף (אופציונליים):
פרמטר
תיאור
סוג
ברירת מחדל
includeEnded
כלול שיחות שהסתיימו (ended[]) בתגובה לצד הפעילות
0 או 1
0
onlyEnded
החזר רק שיחות שהסתיימו, ללא שיחות פעילות
0 או 1
0
endedLimit
מגבלת מספר שיחות שהסתיימו להחזיר (החדשות ביותר לפי זמן ניתוק)
number
30
accounts
מערך חשבונות לסינון - רק חשבונות אלו יוחזרו. מצריך POST
string[]
ללא סינון
startDateTime
סינון שיחות שהסתיימו - החזר רק שיחות שניתקו אחרי תאריך/שעה זה. מצריך POST
string / number
ללא סינון
endDateTime
סינון שיחות שהסתיימו - החזר רק שיחות שניתקו לפני תאריך/שעה זה. מצריך POST
string / number
ללא סינון
afterCallId
החזר רק שיחות שניתקו אחרי שיחה זו (לפי זמן ניתוקה). שימושי לspolling יעיל - ראה הרחבה למטה. מצריך POST
string
ללא
פרמטר startDateTime / endDateTime - פורמטים תקינים:
פורמט
דוגמא
תאריך ושעה (רווח)
"2026-06-21 08:00:00"
ISO 8601
"2026-06-21T08:00:00"
ISO 8601 עם UTC
"2026-06-21T08:00:00Z"
Unix timestamp (שניות)
1750489200
Unix timestamp (מילישניות)
1750489200000
פרמטר afterCallId:
מיועד לשימוש בסקריפטים שמבצעים שליפה כל הזמן, ואז במקום לשלוף בכל פעם את כל הרשימה, מעבירים את ה-id של השיחה האחרונה שקיבלתם - והשרת מחזיר רק שיחות שניתקו אחריה.
אם ה-id כבר פג תוקף (20 דקות) - אין לי דרך לדעת מאיזה שיחה אתם רוצים ותקבלו את כל הרשימה עד endedLimit.
מענה בעת הצלחה
מאפיין
סוג
הסבר
responseStatus
string
סטטוס הפעולה
summary
object
סיכום מצטבר מכלל החשבונות שנבחרו
accounts
object
המפתח הוא שם החשבון, הערך הוא נתוני החשבון
license
object
מצורף רק כשהרישיון הוא רישיון התנסות
מבנה summary:
מאפיין
סוג
הסבר
totalActive
number
סה"כ שיחות פעילות כרגע
dialing
number
שיחות במצב חיוג
inCall
number
שיחות בשיחה ממש
totalCalls
number
סה"כ שיחות (סטטיסטיקה שבועית)
totalIncoming
number
סה"כ נכנסות
totalOutgoing
number
סה"כ יוצאות
totalAnswered
number
סה"כ נענו
totalMissed
number
סה"כ לא נענו
totalAnsweredIncoming
number
נענו נכנסות
totalAnsweredOutgoing
number
נענו יוצאות
totalMissedIncoming
number
לא נענו נכנסות
totalMissedOutgoing
number
לא נענו יוצאות
totalTalkTimeSeconds
number
סה"כ זמן שיחה בשניות
totalRecorded
number
סה"כ שיחות שהוקלטו
מבנה כל חשבון ב-accounts:
מאפיין
סוג
הסבר
summary
object
סטטיסטיקות החשבון (אותם שדות כמו summary הכללי)
calls
array
שיחות פעילות כרגע
ended
array
שיחות שהסתיימו (רק אם includeEnded=1 או onlyEnded=1)
מבנה שיחה (calls / ended):
מאפיין
סוג
הסבר
דוגמא
id
string
מזהה שיחה ייעודי
"xSP-3f2a1b4c-..."
account
string
שם חשבון ה-SIP
"06558877=2"
callType
string
סוג שיחה
"IN" / "OUT"
source
string
מספר מקור
"050000000"
destination
string
מספר יעד
"0773133333=2"
startTime
number
Unix timestamp - תחילת השיחה
1779710278
answeredTime
number|null
Unix timestamp - מענה (null אם לא נענה)
1779710282
endTime
number|null
Unix timestamp - ניתוק (null אם עדיין פעיל)
null
status
string
מצב השיחה
"dialing" / "in_call" / "ended"
hasRecord
boolean
האם יש הקלטה
true
recordPath
string|null
נתיב ההקלטה
"ivr2://Trash/SIPRecord/DID-..."
history
array
רצף אירועי השיחה
מבנה history event:
מאפיין
סוג
הסבר
דוגמא
event
string
סוג האירוע
"start" / "answer" / "transfer" / "end"
time
number
Unix timestamp
1779710278
to
string
יעד ההעברה (רק באירוע transfer)
"05200000"
דוגמא לתגובה מלאה:
{
"responseStatus": "OK",
"summary": {
"totalActive": 2,
"dialing": 1,
"inCall": 1,
"totalCalls": 4395,
"totalAnswered": 219,
"totalMissed": 4176,
"totalIncoming": 4380,
"totalOutgoing": 15,
"totalAnsweredIncoming": 211,
"totalAnsweredOutgoing": 8,
"totalMissedIncoming": 4169,
"totalMissedOutgoing": 7,
"totalTalkTimeSeconds": 13515,
"totalRecorded": 16
},
"accounts": {
"0888888888=2": {
"summary": {
"totalActive": 1,
"dialing": 0,
"inCall": 1,
"totalCalls": 250,
"totalAnswered": 8,
"totalMissed": 242,
"totalAnsweredIncoming": 7,
"totalAnsweredOutgoing": 1,
"totalMissedIncoming": 240,
"totalMissedOutgoing": 2,
"totalTalkTimeSeconds": 480,
"totalRecorded": 1
},
"calls": [
{
"id": "xSP-3f2a1b4c-5d6e-7f8a-9b0c-1d2e3f4a5b6c",
"account": "0888888888=2",
"callType": "IN",
"source": "050000000",
"destination": "0888888888=2",
"startTime": 1779710278,
"answeredTime": 1779710282,
"endTime": null,
"status": "in_call",
"hasRecord": true,
"recordPath": "ivr2://Trash/SIPRecord/DID-xxxx-Phone-xxxx-routing-0888888888=2-Date-2026-05-25-19-00-00.wav",
"history": [
{ "event": "start", "time": 1779710278 },
{ "event": "answer", "time": 1779710282 },
{ "event": "transfer", "time": 1779710290, "to": "079999999" }
]
}
],
"ended": [
{
"id": "xSP-7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d",
"account": "0888888888=2",
"callType": "IN",
"source": "052111111",
"destination": "0888888888=2",
"startTime": 1779709000,
"answeredTime": null,
"endTime": 1779709045,
"status": "ended",
"hasRecord": false,
"recordPath": null,
"history": [
{ "event": "start", "time": 1779709000 },
{ "event": "end", "time": 1779709045 }
]
}
]
}
}
}
קבלת שיחות לחשבון ספציפי - getCallsByAccount
הפעולה היא - getCallsByAccount
שירות זה דורש רישיון פעיל.
הפרמטרים:
פרמטר
תיאור
סוג
חובה
account
שם חשבון ה-SIP
string
כן
includeEnded
כלול שיחות שהסתיימו (ended[])
0 או 1
לא (ברירת מחדל: 0)
startDateTime
סינון שיחות שהסתיימו - החזר רק שיחות שניתקו אחרי תאריך/שעה זה. מצריך POST
string / number
לא
endDateTime
סינון שיחות שהסתיימו - החזר רק שיחות שניתקו לפני תאריך/שעה זה. מצריך POST
string / number
לא
afterCallId
החזר רק שיחות שניתקו אחרי שיחה זו. מצריך POST
string
לא
ראה הסבר מפורט על הפרמטרים startDateTime, endDateTime, afterCallId בסעיף getCalls למעלה - ההתנהגות זהה.
מענה בעת הצלחה
מאפיין
סוג
הסבר
responseStatus
string
סטטוס הפעולה
account
string
שם החשבון שנשאל
summary
object
סטטיסטיקות החשבון
calls
array
שיחות פעילות
ended
array
שיחות שהסתיימו (רק אם includeEnded=1)
{
"responseStatus": "OK",
"account": "09948949494=2",
"summary": {
"totalActive": 1,
"dialing": 0,
"inCall": 1,
"totalCalls": 250,
"totalAnswered": 8,
"totalMissed": 242,
"totalAnsweredIncoming": 7,
"totalAnsweredOutgoing": 1,
"totalMissedIncoming": 240,
"totalMissedOutgoing": 2,
"totalTalkTimeSeconds": 480,
"totalRecorded": 1
},
"calls": [],
"ended": []
}
שימו לב:
השירות מיועד לקבל מידע בזמן אמת על מצב חשבונות ה-SIP במערכת - ועל כן כל הנתונים לא נשמרים לטווח ארוך.
נכון לכתיבת שורות אלה - אלה פחות או יותר הזמנים שנשמרים הנתונים לאחר שהם כבר לא ״זמן אמת״:
נתון
זמן שמירה
שיחה בחיוג (dialing)
5 דקות — פג תוקף אוטומטית אם לא נענתה
שיחה פעילה (in_call)
עד 2.5 שעות מרגע המענה
שיחה שהסתיימה
20 דקות
סטטיסטיקות
7 ימים
שיחות שמועברות: כל העברה מתועדת כ-event מסוג transfer ב-history עם שדה to המכיל את מספר היעד, אבל לא יוצרת שיחה חדשה או מזהה שיחה ייחודי.
מזהי שיחה - id: המזהה נוצר בעת תחילת השיחה ונשמר, כולל אחרי ניתוק, עד פקיעת התוקף של 20 דקות. קיימים שני סוגים:
xSP-{uuid} - מזהה שנוצר על ידי השרת
xCP-{uuid} - מזהה שסופק על ידי הלקוח בכותרת X-YemotSiPanel-NewCallID בINVITE של השיחת SIP.