التوثيق
صفحة واحدة، أربعة مسارات. ابدأ من هنا، وسلّم المسارَين الأوسطَين لمن يردّ على الهاتف ولمن يدير العمل، وأرسل الأخير لمن يكتب الكود.
للبداية
مقسمك في خمس دقائق
كل ما يلي موجود في حسابك أصلًا. ولا شيء منه يحتاج إلى تركيب، ولا إلى زيارة فنّي، ولا إلى جهاز تشتريه.
- لديك أرقام وتحويلات بالفعل. تُنشأ مع حسابك، ومعها بيانات اعتماد SIP التي يحتاجها كل جهاز. التحويلة شخصٌ أو مكتب، والرقم هو ما يطلبه العالم من الخارج.
- وجِّه رقمًا إلى مكان. في تبويب الأرقام تحدّد ما يجب أن تفعله مكالمة تصل على ذلك الرقم: أن ترنّ تحويلة، أو مجموعة، أو تفتح قائمة صوتية، أو تدخل طابورًا، أو تتبع مواعيد دوامك.
- ردّ عليها من المتصفّح. افتح تبويب الهاتف، واسمح بالميكروفون، فيصير التبويب هاتفًا يعمل. اتصل باختبار الصدى (
*43) فتسمع صوتك عائدًا إليك. - ثم اضبط مواعيدك وبريدك الصوتي. هذان الاثنان هما ما يمنع ضياع مكالمة في السابعة مساءً، وهما أكثر ما ينقص مقسمًا حديث التشغيل.
على عجل؟ هناك خمسة قوالب بداية — عيادة، ومكتب محاماة، وورشة، ومتجر، وخط منزل — تُنشئ مواعيد الدوام ومسار الدخول وصندوق ما بعد الدوام في طلب واحد. ولا تكتب أبدًا فوق شيء ضبطته أنت.
كيف تدخل إلى لوحتكعبر واجهة البرمجة
اللوحة موجودة في صفحة VOICE الخاصة بك ولا تظهر إلا بجلسة. تلك الجلسة تُصدرها منطقة العملاء، ولا يُكتب هنا شيء.
| الخطوة | ماذا يفعل |
|---|---|
| 1 | تدخل إلى منطقة العملاء على elportaldelcliente.com. |
| 2 | تختار «إدارة مقسمي» من قائمة حسابك. فتطلب منطقة العملاء من VOICE جلسةً باسمك، وتنقلك إلى صفحة VOICE ومعك بيانات الاعتماد في جزء الوسم من العنوان. |
| 3 | تحلّ اللوحة محلّ الصفحة التسويقية. وتُمحى بيانات الاعتماد من شريط العنوان قبل رسم أي شيء، وتنتهي صلاحيتها وحدها. |
لمن سيبني ذلك الزر، هذا هو العقد كاملًا:
POST /inquilinos/:inquilino/sesiones # نطاق النظام: البوابة وحدها تستطيع إصداره
{ "minutos": 15 }
→ { "clave": "pbx_ses_…", "caduca": "…", "ambito": "sesion", "minutos_max": 60 }
/nizam-hatif#t=<clave>&exp=<ISO>&v=<inquilino>
تنتقل بيانات الاعتماد في جزء الوسم لا في الاستعلام، وذلك عن قصد: جزء الوسم لا يُرسَل إلى الخادم أبدًا، فلا ينتهي في ترويسة Referer، ولا في سجلات الوصول، ولا عند وسيطٍ في الطريق. تنتهي صلاحيتها خلال دقائق، ولها سقف، ولا تستطيع أن تصنع مفتاحًا دائمًا.
لمن يردّ على الهاتف
اللوحة، تبويبًا تبويبًاعبر واجهة البرمجة
16 أقسام، هي 16 نفسها في اللغات الثماني. وكل ما هنا موجود أيضًا في واجهة البرمجة.
| التبويب | ماذا يفعل |
|---|---|
| نظرة عامة | كيف حال مقسمك الآن: مكالمات اليوم، والمردود عليها، والجارية، وذروتك، ومدى إمكان الوصول إلى أجهزتك. |
| أرقامي | أرقامك، وماذا يفعل كلٌّ منها حين يرنّ. |
| القوائم | القوائم الصوتية: اضغط 1 للمبيعات، وداخل المبيعات قائمة أخرى. |
| التحويلات | الأشخاص والأجهزة، بقواعد لكل شخص: التحويل إلى الجوال، والتحويلات، وعدم الإزعاج، وما يُسمح له بطلبه، والبوّاب. |
| الهاتف | الهاتف نفسه: الطلب، والردّ، والتحويل، والتعليق، ومعرفة من هو في مكالمة. |
| طوابير الانتظار | الطوابير بالموقع، ومدة الانتظار المقيسة، ومعاودة الاتصال، ومن هو على الوردية ومن يتولّى ماذا. |
| الغرف | غرف الاجتماعات بمفتاح، ومن بداخلها في هذه اللحظة. |
| البريد الصوتي | الرسائل مع تفريغها النصّي، والتحيات، والرمز السرّي، وسلة المحذوفات، وحدّ الحجم. |
| الدليل | دليل الأسماء الذي يصل إليه من يتهجّى على لوحة الأرقام. |
| الاستقبال | عامل الهاتف، والمكالمات المعلَّقة مباشرةً، ونوافذ الصيانة، وجدول الرموز. |
| التصفية | قائمة الحظر، وتصفية المجهولين، وتنبيهات من يتصل مرارًا، وكل ما يخصّ من يستطيع الوصول إليك. |
| الدوام | أوقات الدوام، والعُطل، ومفتاح النهار والليل. |
| الموسيقى | موسيقى الانتظار، والمقاطع التي يشغّلها كل مسار. |
| المكالمات | كل مكالمة برقمها ومدّتها ومسارها وتسجيلها. |
| الخطوط | الخطوط المتزامنة: ما هو مضمون لك، وما تستعيره، وذروتك. |
| الاستهلاك | ما استهلكته هذا الشهر، يومًا بيوم. |
الهاتف داخل متصفّحكمكالمة حقيقية
التبويب هاتف. لا تطبيق تثبّته، ولا جهاز مكتبيّ تشتريه، ولا رقم تنقله: إنه تحويلة من مقسمك أنت، مسجَّلة من المتصفّح.
- إنها تحويلة حقيقية. يسجّل المتصفّح لدى مقسمك كما يفعل هاتف المكتب، ويمرّ الصوت عبر اتصال مشفّر. فمن يتصل برقمك يصل إلى التبويب، والتبويب يستطيع الاتصال بالخارج.
- يجب أن يبقى التبويب مفتوحًا. التبويب المغلق هاتف منزوع القابس. هذا هو الحدّ الصادق لهاتف المتصفّح، وسببُ أنه يرافق هاتف المكتب بدل أن يحلّ محلّه في كل مكان.
- ترى من هو في مكالمة.مكالمة حقيقية تتحدّث مصابيح زملائك مباشرةً — متاح، يرنّ، يتكلّم — فتعرف قبل التحويل إن كان هناك من تحوّل إليه.
- تنقل مكالمة جارية إلى جهاز آخر.لم يُجرَّب بعد «عليّ الخروج وأنا في مكالمة»: تنتقل المكالمة إلى جوّالك دون أن تقطعها. جعلناها زرًّا لا رمزًا على لوحة الأرقام عن قصد — فمن ينقل مكالمة أمامه شاشة.
- التحويل والتعليق والتسجيل هي الرموز نفسها في أي هاتف. تُطلب ولا تُنقر، فما تتعلّمه على هاتف المتصفّح يعمل على هاتف المكتب وعلى جوّالك.
هاتف المتصفّح لا يسجّل على حاسوبك أبدًا. التسجيل يحدث داخل المقسم، حيث تُطبَّق قواعد من يجوز تسجيله ومن يجب إعلامه — انظر «التسجيل، والقانون».
رموز تُطلب من الهاتف
احتفظنا بالمتعارف عليه حيث وُجد عرف: التحويل (*72)، وعدم الإزعاج (*78)، والبريد الصوتي (*97)، والالتقاط (*8)، ومَن اتصل للتوّ (*69). هذه كل قيمة رمز لوحة الأرقام: الوظيفة موجودة في اللوحة أصلًا، والرمز هو ما يجعل مَن ظلّ عشرين عامًا يطلب الرمز ذاته يصدّق اللوحة.
تُطلب والهاتف حرّ
| الرمز | ماذا يفعل | التحقّق |
|---|---|---|
*43 | اختبار الصدى. يسجّل ما تقوله ويعيده إليك، ويعرف أن يقول «لم يصلني شيء». | لم يُجرَّب بعد |
*44 | الشيء نفسه لكن بتأخير: يكشف الكلمات التي تضيع. | لم يُجرَّب بعد |
*45 | اختبار لوحة الأرقام. يقول كل مفتاحٍ عند ضغطه. | لم يُجرَّب بعد |
*46 | حالة خطّك: التسجيل، والترميز، والعنوان، وزمن التأخير. | لم يُجرَّب بعد |
*60 | الوقت والتاريخ، منطوقَين كما ينبغي. | منصّة الاختبار |
*62 | استهلاكك هذا الشهر (مكالمات ودقائق؛ أما المبلغ فمع تفعيل الاحتساب). | عبر واجهة البرمجة |
*69 | من اتصل بك آخر مرة، منطوقًا، والمكالمات الفائتة معه — ثم اضغط 1 لمعاودة الاتصال. | لم يُجرَّب بعد |
*72 | تحويل غير مشروط. يعيد قراءة الرقم عليك. | عبر واجهة البرمجة |
*73 | إلغاء كل التحويلات. | عبر واجهة البرمجة |
*74 | تحويل متوازٍ: يرنّ تحويلتك والرقم في الوقت نفسه. | عبر واجهة البرمجة |
*75 | التحويل عند الانشغال. | عبر واجهة البرمجة |
*76 | التحويل عند عدم الردّ. | عبر واجهة البرمجة |
*78 | تفعيل عدم الإزعاج، بتأكيدٍ منطوق. | عبر واجهة البرمجة |
*79 | إلغاء عدم الإزعاج. | عبر واجهة البرمجة |
*80 | الدخول إلى الوردية في كل طوابيرك. | عبر واجهة البرمجة |
*81 | الخروج من الوردية في كل طوابيرك. | عبر واجهة البرمجة |
*90 | حظر رقم (المفتاح # وحده يحظر رقم آخر مكالمة). | لم يُجرَّب بعد |
*91 | رفع الحظر. | لم يُجرَّب بعد |
*97 | بريدك الصوتي، برمزك السرّي. | منصّة الاختبار |
*98 | تسجيل تحيّتك. | منصّة الاختبار |
*99 | تسجيل اسمك — يستخدمه الدليل وغرفة الاجتماعات. | منصّة الاختبار |
*8 | التقاط المكالمة التي ترنّ على المكتب المجاور. | عبر واجهة البرمجة |
*66 | الوضع: عادي · غداء · مغلق · عطلة · تلقائي. | عبر واجهة البرمجة |
*411 | الدليل بالاسم. | منصّة الاختبار |
*57 | يفتح ملفّ مكالمة مؤذية عن المكالمة التي تلقّيتها للتوّ. يتوقّف التسجيل عن الانتهاء، ويُحفَظ الوقت والمسار والصوت لأجل شكوى. ولا يحظر المتصل: ذلك قرارك أنت. | لم يُجرَّب بعد |
*85 | انتظار التحويلة: أخبِرني حين تتفرّغ. | لم يُجرَّب بعد |
*86 | إلغاء ذلك. | لم يُجرَّب بعد |
*82 | الإنصات إلى مكالمة داخل شركتك. ولا يسمعك أيٌّ من الطرفين. | لم يُجرَّب بعد |
*83 | الهمس: يسمعك زميلك وحده، لا العميل. | لم يُجرَّب بعد |
*84 | الدخول في المكالمة: يسمعك الطرفان. | لم يُجرَّب بعد |
*88 | المكالمات التي لم يردّها أحد، منطوقة — ثم اضغط 1 لمعاودة أقدمها. | لم يُجرَّب بعد |
*47 | المقسم يشرح نفسه: يتلو عليك رموزه، والمفتاح 9 للتالي والمفتاح 0 للخروج. | لم يُجرَّب بعد |
70N | استلام المكالمة المعلَّقة في الموضع N. | عبر واجهة البرمجة |
تُطلب أثناء محادثة
| الرمز | ماذا يفعل | التحقّق |
|---|---|---|
*1 | سجّل هذه المكالمة الآن. ويُبلَّغ الطرفان. | عبر واجهة البرمجة |
*7 | علّقها: تبقى المكالمة مع الموسيقى ويُنطَق رقم الموضع بصوتٍ عالٍ. | عبر واجهة البرمجة |
##<ext># | تحويل أعمى: تمرّرها ثم تُغلق. | مكالمة حقيقية |
#<ext># | تحويل دون اختيار نوعه. يتحقّق المقسم إن كان هناك أحد، وإن لم يكن حوّلها تحويلًا أعمى. | لم يُجرَّب بعد |
*2<ext># | تحويل مرافَق: تتحدّث إلى زميلك أولًا. | لم يُجرَّب بعد |
أثناء الاستشارة في تحويل مرافَق
| الرمز | ماذا يفعل | التحقّق |
|---|---|---|
*1 | إتمام التحويل. | لم يُجرَّب بعد |
*0 | الإلغاء والعودة إلى المتصل. | لم يُجرَّب بعد |
*3 | جمعكم ثلاثتكم في المكالمة نفسها. | لم يُجرَّب بعد |
داخل غرفة اجتماعات
| الرمز | ماذا يفعل | التحقّق |
|---|---|---|
*6 | للجميع: كتم الميكروفون وفتحه. | عبر واجهة البرمجة |
*7 | للجميع: كم شخصًا في الغرفة. | عبر واجهة البرمجة |
*9 | للجميع: الخروج. | عبر واجهة البرمجة |
*1 | للمنظّم: إغلاق الغرفة دون تغيير المفتاح. | عبر واجهة البرمجة |
*2 | للمنظّم: فتحها من جديد. | عبر واجهة البرمجة |
*3 | للمنظّم: بدء التسجيل أو إيقافه. | عبر واجهة البرمجة |
بعض الرموز تعني شيئين ولا تتصادم: رمز التسجيل (*1) هو «سجّل الآن» في محادثة عادية، و«أكمل التحويل» أثناء الاستشارة، و«أغلق الغرفة» داخل غرفة اجتماعات. هي حالات مختلفة للهاتف نفسه، ويتولّاها كودٌ مختلف.
قبل أن تثق بهاتف جديد: هواتف المكتب والمحوّلات تعالج رموز النجمة الخاصة بها ولا تمرّرها أبدًا. فإن طلبتَ رمزًا وسمعت صمتًا ثم نغمة الطلب، فقد ابتلعه الجهاز ولم يصل إلى المقسم شيء. اطلب منّا مراجعة أي طراز جديد على قائمة اليوم قبل توزيعه.
البريد الصوتي من أي هاتفمنصّة الاختبار
اطلب رمز البريد الصوتي (*97)، وأدخل رمزك السرّي، فيكون الصندوق كله بين يديك: بلا تطبيق وبلا متصفّح. كُتب لصاحب العمل الذي يتصل من هاتف مستعار.
القائمة الرئيسية
| المفتاح | ماذا يفعل |
|---|---|
1 | الرسائل الجديدة. |
2 | الرسائل المحفوظة. |
4 | التحيات واسمك المسجَّل. |
5 | تغيير رمزك السرّي. |
0 | الخروج إلى عامل الهاتف. |
9 | إنهاء المكالمة. |
أثناء تشغيل رسالة
| المفتاح | ماذا يفعل |
|---|---|
1 | إعادتها. |
2 | حفظها. |
3 | حذفها. ثم اضغط 8 خلال خمس ثوانٍ للتراجع. |
4 | معاودة الاتصال بذلك الشخص. |
6 | التالية، مع إبقاء هذه جديدة. |
7 | إعادة توجيهها إلى زميل مع ملاحظةٍ منك مسجَّلة قبلها. |
قائمة التحيات
| المفتاح | ماذا يفعل |
|---|---|
1 | تسجيل التحية الرئيسية. |
2 | تسجيل اسمك. |
3 | وضع تحية إجازة. |
4 | إزالتها. |
استقبال المكالمة نفسها
مجموعة الرنين تقول «فليرنّ في عدة أماكن». وكل ما في هذه القائمة يفعل شيئًا لا تستطيعه مجموعة رنين.
- الطوابير.عبر واجهة البرمجة الطابور يعرف كم شخصًا أمامك وكم يستغرق الأمر عادةً، فيستطيع أن يقول ذلك. وتُقاس مدة الانتظار من مكالماتك الأخيرة أنت، ولا تُختلق أبدًا — وبأقل من ثلاث عيّنات لا يقول شيئًا. وإن لم يكن أحد على الوردية، لا يُترك أحد في الانتظار.
- معاودة الاتصال من الطابور.عبر واجهة البرمجة تُعرَض بعد انتظار، ولا تُعرَض إن كانت المكالمة على وشك أن يُردّ عليها. ويبقى الطلب بعد إعادة التشغيل، لأن من يطلبه يُغلق الخط، وتدخل المعاودة في مقدّمة الصفّ، وهذا ما وُعد به.
- غرف الاجتماعات.عبر واجهة البرمجة غرفة برقم ومفتاحين: واحد للدخول وآخر لإدارتها. ولا يحتاج أحد إلى حساب في أي مكان. ويُعلَن الدخول والخروج بالاسم الذي سجّله كل شخص بنفسه.
- دليل الأسماء.منصّة الاختبار يتهجّى المتصل اسمًا على لوحة الأرقام فيُوصَل. وتُفهرَس كل كلمة من الاسم على حدة، لأن اسمَي العائلة أمر معتاد هنا، والبحث بالأول وحده يجد نصف الشركة. وتُوحَّد الحركات وحرف الـñ، فيُعثر على «Muñoz» بطلب 686.
- الصفر لعامل الهاتف.عبر واجهة البرمجة لعلّه أكثر توقّع شائع عن الهاتف: أن تصل إلى إنسان. ينحدر الصفر من عامل هاتفك إلى الصندوق العام إلى قولها بصوتٍ مسموع — ولا ينتهي بإغلاقٍ صامت أبدًا.
- التعليق والالتقاط.عبر واجهة البرمجة علّق مكالمة فتنتظر في موضع مرقّم مع الموسيقى بينما تمشي إلى مكتب آخر. ويستطيع أي أحد استعادتها بطلب رقم ذلك الموضع. أما التقاط الهاتف الذي يرنّ بجوارك فرمزه هو (
*8).
لمن يدير العمل
القنوات: الضمان والإعارة والردّعبر واجهة البرمجة
هذا هو الجزء الذي لا يستطيع سقفٌ جامد أن يفعله، ويستحق أن تفهمه قبل اختيار الباقة.
- المضمونة. المكالمات المتزامنة التي تبيعها باقتك. تتّسع دائمًا مهما فعل المقسم، ولا يستطيع أحد أن يسحبها منك.
- المُعارة. فوق ضمانك تستخدم ما يتوفّر في المقسم. في معظم الأيام ستكون هنا، ولا يكلّف ذلك شيئًا إضافيًا.
- الاحتياطي. وسادةٌ من القنوات لا تُعار لأحد، حتى يستطيع كل مشترك بلوغ ضمانه في أي لحظة.
- الردّ. حين يضيق المقسم، يمكن ردّ المكالمات المُعارة لحماية ضمان غيرك. وهذا لا يسري إلا على الحسابات التي فعّلته، ولا يمسّ أبدًا مكالمةً داخل ضمان، ولا مكالمة طوارئ، ولا يحدث بصمت: يتكلّم المقسم قبل أن يُفلت.
- لا يمكن بيعه مرّتين. مجموع كل الضمانات مضافًا إليه الاحتياطي يجب أن يتّسع. يتحقّق التفعيل من ذلك ويرفض باقةً لا تتّسع، وهذا ما يجعل لكلمة «مضمون» معنى.
- وترى متى عضّ الضيق. يُبلَّغ عن الازدحام على شكل وقائع بساعتها، لا كمجموع شهري. «اثنتا عشرة مكالمة مرفوضة في ثلاثين يومًا» تُقرأ كضجيج؛ أما «الثلاثاء الماضي بين العاشرة والحادية عشرة سمع خمسة أشخاص إشارة انشغال» فشيء يمكن التصرّف بناءً عليه.
ماذا يحدث حين يتعطّل شيء
يُحكَم على المقسم يوم ينقطع التيار، لا يوم يعمل كل شيء.
- أكثر من مخرج. يصل المقسم إلى العالم الخارجي عبر عدة اتصالات مستقلّة ويختار بينها وحده. وأنت لا تضبط هذا ولا تراه يحدث.
- «يعمل» تُقاس على الشيء الصحيح. لا يدخل اتصالٌ في الاختيار إلا إذا كان يصل إلى الإنترنت وإلى شبكة الهاتف معًا. والاكتفاء بالأول هو كيف ينتهي مقسمٌ بلا خطّ وكل المصابيح خضراء.
- يعود وحده بعد انقطاع التيار. حين يعود التيار، يبدأ المقسم وأجهزة الشبكة في وقت واحد، وليس دائمًا بالترتيب الصحيح. وبدل الوثوق بذلك الترتيب، يظلّ المقسم يقارن ما لديه فعلًا بما ينبغي أن يكون لديه ويصلح نفسه — بسقفٍ لعدد المحاولات، حتى يُصعَّد العطل الحقيقي بدل أن يدور في حلقة.
- ولا يقطع مكالمة ليصلح نفسه. أي إصلاح قد يقطع محادثات ينتظر حتى لا تبقى واحدة.
التسجيلات ورسائل البريد الصوتي تُحفَظ خارج المقسم، فتبقى حتى لو ذهبت الآلة نفسها.
الباقات والدقائق
5 باقات، من $100 إلى $300 سنويًا، ورقم واحد لكل ترخيص. والدقيقة الواردة على رقم كوستاريكي بـ$0.00.
| الباقة | متزامنة، حتى | منها مضمونة | التحويلات | الحفظ (أيام) | سنويًا |
|---|---|---|---|---|---|
| VOICE I | 3 | 1 | 3 | 3 | $100 |
| VOICE II | 4 | 2 | 4 | 4 | $150 |
| VOICE III | 6 | 3 | 6 | 6 | $200 |
| VOICE IV | 8 | 4 | 8 | 8 | $250 |
| VOICE V | 10 | 5 | بلا حدّ | 28 | $300 |
الدقائق
| الوجهة | للدقيقة |
|---|---|
| المكالمات الواردة | $0.00 |
| كوستاريكا · أرضي | $0.03 |
| كوستاريكا · جوال | $0.08 |
| أمريكا الوسطى | $0.45 |
| الكاريبي | $0.55 |
| بقية العالم | $2.30 |
الأسعار بالدولار الأمريكي شاملةً الضرائب. ويقيس المشغّل مكالمات الجوال بالثانية. كل ترخيص يشمل 1 رقمًا؛ والأرقام الإضافية تتشارك المقسم نفسه والمسارات نفسها واللوحة نفسها.
التسجيل، والقانونعبر واجهة البرمجة
الصوت المسجَّل أصوات أناس آخرين. يحكمه القانون الكوستاريكي 8968، ومن هناك جاء التصميم، لا مما هو أيسر.
- أنت تقرّر ما يُسجَّل.عبر واجهة البرمجة كل شيء، أو تحويلات بعينها، أو المكالمات الواردة على رقم بعينه. أو لا شيء، وهو جواب مشروع.
- مدة الحفظ تأتي مع باقتك. تُمحى التسجيلات تلقائيًا عند انتهاء مدّتها: مدّة الباقة، أو 90 يومًا للتسجيلات التي تُطلب أثناء المكالمة (بـ
*1) وتسجيلات غرفة المؤتمرات. والاستثناء الوحيد تسجيلٌ مرتبط بملفّ مكالمة مؤذية، فيتوقّف عن الانتهاء حتى تُغلق الملفّ — وإغلاقه يعيد مهلةً عادية، لا «امحُه الآن». - مشاركة تسجيل ليست منح وصول. رابط موقَّع يشغّل تسجيلًا واحدًا، وتنتهي صلاحيته وحدها، ويمكن إبطاله. ومن ترسله إليه لا يرى حسابك أبدًا.
- كل استماع مسجَّل. من شغّل أي تسجيل ومتى. إنه صوت شخص آخر: وأن تعرف من سمعه جزء من حفظه.
- ويمكن تصنيفها. عميل، أو عميل محتمل، أو داخلي. ولا قيمة افتراضية عن قصد: «غير مصنَّف» صادق، والوسم الذي خمّنته الآلة لا يمكن تمييزه لاحقًا عن وسمٍ اختاره إنسان.
يُبلَّغ الطرفان دائمًا. أن تطلب من المقسم أن يسجّل يعيد إليك أيضًا واجب الإعلان — ولا يمكن فصل الاثنين، لأن فصلهما هو كيف ينتهي أحدهم مسجَّلًا دون أن يدري. وفي غرفة الاجتماعات يُبلَّغ كل شخص عند دخوله.
الحدود والحماية والتراجع
ما يقرّر إلى أي حدّ يسوء يومٌ سيّئ: بيانات اعتماد مسروقة، أو خطأ في التوجيه، أو رقم لا يكفّ عن الاتصال.
- سقف إنفاق، يومي وشهري.منصّة الاختبار هذا ما يمنع بيانات اعتماد مسروقة من أن تكلّف مالًا. وعند بلوغ السقف تتوقّف المكالمات.
- ما يجوز لكل تحويلة أن تطلبه.عبر واجهة البرمجة داخلي فقط، أو محلّي، أو جوّال، أو كل شيء. فلا سبب لأن يستطيع هاتف المستودع الاتصال برقمٍ مدفوع. ومكالمات الطوارئ لا تتأثّر بهذا أبدًا.
- السعر قبل الطلب.عبر واجهة البرمجة اسأل كم يكلّف رقم معيّن، فتحسب الجواب الآلية نفسها التي ستُجري المكالمة فعلًا — لا جدول تعرفة قد لا يكون هو المطبَّق.
- إنذار احتيال يراقب السلوك.لم يُجرَّب بعد سرعة غير معتادة، أو بلد لم تتصل به قط، أو ساعة لا يعمل فيها أحد. ينبّه ولا يقطع: فالإيجابية الكاذبة هنا ليست تنبيهًا مزعجًا، بل مكالمة لم تحدث. ويحتاج إلى إشارتين قبل أن يقول شيئًا، لأن إنذارًا ينطلق يوميًا يُتجاهَل.
- من يتصل مرارًا يُوسَم.لم يُجرَّب بعد الرقم نفسه خمس مرات في دقيقتين ليس عميلًا ملحاحًا بل مُهاتِفًا آليًا. وهو ينبّه فقط في وضعه الأصلي؛ أما الحظر التلقائي فخانةٌ تؤشّرها أنت، لأن إيجابية كاذبة تكلّفك عميلًا لن يستطيع الاتصال بك أبدًا.
- ملفّ لمكالمة مؤذية.لم يُجرَّب بعد الوقت والمسار والصوت، محفوظة معًا لأجل شكوى. وفتح ملفّ لا يحظر المتصل: كل مكالمة جديدة دليل إضافي، وذلك قرارك أنت لا قرارنا.
- مدى إمكان الوصول إلى أجهزتك.عبر واجهة البرمجة ليس زمن تشغيلنا نحن، بل زمنك أنت. ويُظهر دائمًا كم من الفترة قِيس فعلًا، لأن نسبةً تُسقط بصمت الساعات التي لم ينظر إليها أحد تُخطئ دائمًا في الاتجاه المريح.
- ما الذي تغيّر، ومن غيّره، وكيف تتراجع.عبر واجهة البرمجة «كان يعمل أمس» سؤال له جواب. كل تغيير في الإعداد يُسجَّل ويمكن التراجع عنه، والتراجع يتحقّق أن أحدًا آخر لم يمسّ تلك الحقول في الأثناء بدل أن يكتب فوقها بصمت.
ما هو مُطفأ، ولماذا
الدليل الذي يذكر ما يعمل فقط يُجبرك على اكتشاف الباقي وحدك، ويُكتشف دائمًا في أسوأ لحظة. وهذه القائمة تُولَّد من المقسم نفسه، فلا تستطيع أن تصف شيئًا بأنه مُطفأ بعد أن يُشغَّل.
| ماذا يفعل | لماذا |
|---|---|
| البريد الصوتي إلى البريد الإلكتروني | الصوت مرفقًا، دون الاتصال بالصندوق. يحتاج إلى بيانات اعتماد بريد للصندوق، وهي غير موجودة بعد. |
| الاحتساب التلقائي بالدقيقة | القياس يعمل وكل مكالمة تُقاس؛ وما ليس مفعَّلًا هو الخصم من رصيدٍ مدفوعٍ مسبقًا. وإلى ذلك الحين تُفوتَر الدقائق. |
| عنوان احتياطي للأجهزة | حتى تنتقل الهواتف وحدها بين مدخلَي المقسم. يحتاج إلى بيانات اعتماد للنطاق بصلاحية كتابة؛ والتي لدينا تقرأ فقط. |
| الفاكس الوارد | كشف النغمة والإخبار بها مبنيّ، وهو مُطفأ عن قصد: الكشف يستمع إلى كل مكالمة واردة، وإيجابيةٌ كاذبة تُسقط مكالمةً صوتيةً حقيقية. ويبقى مُطفأً إلى أن يوجد فاكس حقيقي نقيسه به. |
لمن يدمج
واجهة البرمجةعبر واجهة البرمجة
اللوحة ليست إلا عميلًا من عملاء هذه الواجهة. وما تغيّره بيدك يمكن تغييره ببرنامج، بمفتاحٍ يخصّ حسابك.
curl -H "authorization: Bearer <clave>" \
https://api.voice.forhosting.com/inquilinos/<cuenta>/numeros
النطاقات
| النطاق | ماذا يفعل |
|---|---|
sistema | التزويد، فوق الحسابات. ولن يُصدَر لك واحد من هذه. |
inquilino | حسابك، قراءةً وكتابة. هذا هو المفتاح الذي تدمج به. |
lectura | حسابك، بـGET فقط. للوحات المعلومات التي لا يجوز أن تغيّر شيئًا. |
sesion | المدى نفسه لمفتاح حسابك، لكنه ينتهي خلال دقائق. وهو ما تستخدمه اللوحة، حتى لا يحتفظ متصفّحٌ ببيانات اعتماد دائمة. |
dispositivo | جهاز واحد لتحويلة واحدة، وينتهي خلال دقائق. هو ما يحمله تطبيق الهاتف: لا يصل إلا إلى ما يحتاجه الهاتف، ولتحويلته فقط. |
حين يسوء شيء
| الرمز | ماذا يفعل |
|---|---|
400 | الطلب مشوّه، أو قيمة ليست مما نقبله. والرسالة تقول أيّها. |
401 | بلا مفتاح، أو بمفتاح مجهول، أو بجلسة انتهت صلاحيتها. |
403 | المفتاح صحيح لكنه لا يملك هذا: بيانات حساب آخر، أو مسار تزويد، أو كتابة بمفتاح للقراءة فقط. |
404 | لا وجود لذلك في حسابك. |
405 | المسار موجود، والطريقة لا. ونميّزه عن 404 عن قصد: يوفّر ساعة. |
503 · 504 | تعذّر الوصول إلى المقسم، أو لم يردّ في الوقت المتاح. ولا يُجاب عن ذلك أبدًا بـ«ليس لديك شيء»: فألّا تستطيع النظر غير أن لا يكون هناك شيء. |
كل ما يمكن أن ترده الواجهة البرمجية عند الرفض
هذه هي السلاسل النصية التي تعيدها الواجهة في الحقل error حرفيًا، مقروءة من الشيفرة المصدرية للمقسم. تصدر بالإسبانية وتُعرض هنا كما هي عن قصد: ما عليك مطابقته هو ما يصلك، لا ترجمته. تشير … إلى الموضع الذي تُدرج فيه قيمة.
كل خطأ يحمل رمزًا ثابتًا. اعتمد على codigo لا على نص الرسالة. وهو موجود دائمًا: وما لا يعلن رمزًا خاصًا يأخذ رمز فئته المشتق من حالة HTTP. نص error مكتوب ليقرأه إنسان وقد تُعاد صياغته؛ أما الرمز فلا.
{ "error": "…", "codigo": "de_otra_cuenta" }
| الرمز | HTTP | متى يصلك |
|---|---|---|
mala_peticion | 400 | الطلب غير سليم، أو أن إحدى القيم ليست مما نقبله. والرسالة تحدّد أيّها. |
no_autorizado | 401 | بلا مفتاح، أو بمفتاح مجهول، أو بجلسة منتهية. |
prohibido | 403 | المفتاح صحيح لكنه لا يملك صلاحية هذا الإجراء. |
no_existe | 404 | لا يوجد شيء لتنفيذ الإجراء عليه. |
metodo_no_permitido | 405 | المسار موجود، أما هذه الطريقة فلا. ونفرّق بينه وبين مسار غير موجود عن قصد: يوفّر ذلك ساعة من البحث. |
conflicto | 409 | حالة الحساب لا تسمح بذلك الآن. |
precondicion_fallida | 412 | الشرط الذي وضعه طلبك (If-Match) لم يعد متحققًا: ما طلبت تغييره تغيّر منذ أن قرأته. |
ambito_insuficiente | مفتاحك لا يبلغ هذا المسار. التزويد من شأن البوابة لا من شأنك. | |
audio_ilegible | وصل الصوت لكن تعذّرت قراءته: فهو تالف أو مقطوع. والرسالة تذكر السبب. | |
audio_no_valido | سلسلة الصوت غير صالحة: لا تقبل إلا أصوات المقسم نفسه، بلا مسارات، وبحد أقصى 1000 حرف ومن دون فواصل أسطر. والرسالة تسمّي الأجزاء المرفوضة. | |
cambio_de_sistema | هذا التغيير أجراه مزوّدك، أو يمسّ شيئًا لا يغيّره سواه: مفتاحك لا يستطيع التراجع عنه. | |
canales_por_troncal | لا يمكن قبول توزيع القنوات المُرسل عند التهيئة، ولا يُحفظ أي جزء منه. يوضّح التفصيل ما الخطأ. هذا من شأن التهيئة، لا من شأن حسابك. | |
cedula_mal_formada | رقم الهوية لا يطابق شكل نوعه: الـ cédula física من 9 أرقام والـ cédula jurídica من 10. | |
central_no_disponible | لا يمكن بلوغ المقسم الآن. أعد المحاولة بفواصل متزايدة: لا خطأ في طلبك. | |
central_suspendida | المقسم موقوف: ما دام كذلك لا تُعتمد هواتف جديدة. | |
clase_de_servicio | هذه القيمة ليست من صلاحيات الاتصال التي يمكن أن تحملها التحويلة. | |
clave_sin_cuenta | المفتاح غير مرتبط بأي حساب. | |
consulta_no_valida | أحد معاملات الاستعلام يحمل قيمة لا نقبلها، مثل قيمة نعم/لا ليست 1/0 ولا true/false. | |
cuenta_distinta | هذه العملية تخصّ حسابًا آخر في البوابة. الشراء لا يغيّر مالكه. | |
cuenta_invalida | حساب البوابة غائب، أو ليس بالشكل المتوقع. | |
cuenta_portal_en_uso | حساب البوابة هذا مرتبط بالفعل بترخيص أو مقسم آخر. لكلٍّ منها حسابه. | |
cuenta_suspendida | حسابك موقوف: يمكنك الاطلاع، ولا يمكنك تغيير شيء حتى يُعاد تفعيله. | |
cupo_lleno | الخطة لا تتسع لتحويلات أخرى. حرّر واحدة أو انتقل إلى خطة أكبر. | |
cursor_no_valido | مؤشر الترقيم لا يصلح هنا: فهو من مقسم آخر أو قائمة أخرى أو مرشحات أخرى. اطلب الصفحة الأولى بالمرشحات نفسها. | |
de_otra_cuenta | يخصّ حسابًا آخر — أو لا وجود له في حسابك. الحالتان تتشاركان الرمز عن قصد: التفريق بينهما يكشف ما إذا كان موجودًا. | |
demasiado_grande | حجم الصوت يتجاوز الحد الأقصى (HTTP 413). والرسالة تذكر الحد. | |
duracion | التحية أقصر أو أطول من اللازم. والرسالة تذكر مدتها والحد. | |
es_titular | هذا هو تثبيت المالك: لا يُلغى ولا يُوقف؛ الذي يُوقف هو المقسم. | |
estado_invalido | هذه الحالة ليست مما نقبله. الرسالة تذكر القيم الصالحة. | |
extension_ajena | هذه التحويلة لا تخص مقسمك. | |
extension_de_la_tienda | هذه التحويلة مقعد مُعتمد عبر المتجر (ترخيص أو المالك أو عضو): لا تُحذف من هنا، بل تُلغى من التطبيق. | |
falta_confirmar | حذف الحساب لا يمكن التراجع عنه: يجب أن يتضمن الطلب confirmar: 'suprimir'. | |
falta_credencial | لم ترسل أي مفتاح. | |
formato_no_soportado | صيغة الصوت غير مدعومة (HTTP 415): AAC داخل MP4 (m4a) أو MP3 أو WAV أو Ogg. | |
garantia_no_cabe | لم تتبقَّ سعة مضمونة لما طُلب. هذا ليس عطلًا: إنه ما يمنع بيع القناة نفسها مرتين. توضّح الرسالة كم تبقّى. | |
identidad_ajena | لا يمكنك طلب الإذن إلا برقم من حسابك أنت. | |
identidad_de_otro | رقم الهوية هذا مُسنَد مسبقًا إلى ترخيص آخر. لنقله، أرسل mover: true. | |
instalacion_invalida | معرّف التثبيت ليس بالشكل المتوقع: من 8 إلى 128 حرفًا أو رقمًا أو نقطة أو شرطة أو نقطتين أو شرطة سفلية. | |
instalacion_sin_licencia | هذا التثبيت ليس تثبيت هذا الترخيص ولا هذا المقعد. كل ترخيص، وكل مقعد في مقسم مشترى من المتجر، يخدم هاتفًا واحدًا. | |
licencia_solo_app | ترخيص التطبيق لا يضم إلا هاتف تثبيته: لا يقبل أجهزة أخرى. | |
mensaje_con_enlace | لا يجوز أن تحتوي رسالة طلب الإذن على روابط. | |
mensaje_largo | رسالة طلب الإذن لا تتجاوز 140 حرفًا. | |
misma_casa | هذا الرقم من حسابك أنت: لا حاجة إلى إذن بين خطوطك. | |
nacional | العطلة الوطنية لا تُعدَّل ولا تُحذف. لفتح ذلك اليوم، أنشئ استثناءً مع cerrado:false. | |
no_editable | هذا الحقل يغيّره مزوّدك، ولا يُعدَّل من هنا. | |
no_es_de_la_tienda | هذا الحساب لم يُشترَ من المتجر: إلغاؤه يتبع إجراءً آخر. | |
no_es_de_tienda | هذا المقسم لم يُشترَ من المتجر: يُدار من البوابة. | |
no_existe | لا يوجد شيء لتنفيذ الإجراء عليه. | |
no_pude_mirar | انقطاع رؤية، لا تشخيص: تعذّر سؤال المقسم (توقّف ARI، أو قاعدة البيانات، أو الحاوية). هذا لا يعني أن الأمور بخير، بل يعني أننا لا نعرف. | |
permiso_no_existe | هذا الرقم ليس لديه إذن بالاتصال بك: لا يوجد ما يُلغى. | |
plan_desconocido | هذه الخطة غير معروضة للبيع. الصالحة هي المنشورة. | |
plan_legado | يحتفظ هذا المقسم بالخطة التي بيع بها. نقله إلى السلّم الحالي يحتاج طلبًا صريحًا. | |
prueba_distinta | المقسم التجريبي لا يصبح حقيقيًا، ولا الحقيقي يصبح تجريبيًا. الشراء الحقيقي يحمل مرجعه الخاص. | |
reconfigurando | المقسم يبدّل الوصلة ويعلن ذلك بنفسه. يستغرق ثوانٍ وهو التصرّف الصحيح، لا عطلًا. تنتهي هذه النافذة وحدها بعد ثلاث دقائق كي لا يُسكِت إشعارٌ منسيّ الإنذارَ الحقيقي. | |
ref_de_otro_tipo | هذا المرجع لترخيص وطُلب كمقسم، أو العكس. | |
ref_invalida | مرجع البوابة ليس بالشكل المتوقع. | |
sesion_vieja_para_gastar | مضى على الجلسة أكثر من 15 دقيقة. لعملية تستهلك الرصيد، مثل إجراء مكالمة أو ضمّها، اطلب جلسة جديدة. | |
sin_numero_voice | تعذّر تخصيص رقم VOICE الآن. أعد المحاولة بعد ثوانٍ. | |
sin_registrar | العطل الحقيقي: المشغّل لا يسجّلنا لديه، ولا تدخل المكالمات من هناك. هذا وحده يستحق إيقاظ أحد. | |
solicitud_cerrada | طلب الإذن هذا لم يعد معلّقًا: فقد قُبل أو رُفض أو سُحب أو انتهت مدته. | |
solicitud_no_existe | طلب الإذن هذا غير موجود أو لا يخص حسابك. | |
solo_la_titular | في مقسم يتشاركه عدة أشخاص، صاحبة الحساب هي من تقرر ذلك؛ لا يستطيع العضو. | |
solo_lectura | مفتاحك للقراءة فقط وهذا الإجراء يكتب. | |
tope_aparatos | هذه التحويلة لديها كل الأجهزة التي تتسع لها. افصل واحدًا قبل إضافة آخر. | |
tunel_retirado | هذا العنوان كان للنفق الذي أُلغي في 25-09-2026: الواجهة البرمجية تصل الآن مباشرة إلى المقسم. استدعِ المسار العادي؛ حالة المسار على /_directo/salud. | |
url_no_permitida | هذا العنوان غير مقبول لخطاف ويب: يجب أن يكون https وعامًا، لا على شبكة خاصة أبدًا. | |
version_distinta | تغيّر هذا الإعداد منذ أن قرأته. اقرأه من جديد وقرّر بناءً على الموجود الآن، ثم اكتب بالإصدار الجديد؛ يحمل التفصيل الإصدار والقيمة الحاليين. | |
ya_existe | يوجد بالفعل شيء بهذا الاسم أو الرقم. أعد المحاولة بغيره لا بالحمولة نفسها. |
| الرمز | كم | الرسالة |
|---|---|---|
400 | 218 |
|
401 | 1 |
|
403 | 16 |
|
404 | 58 |
|
409 | 43 |
|
336 رسالة مختلفة في 407 موضعًا من شيفرة المقسم. تُشتق مع كل عملية بناء: ما يتغيّر هناك يتغيّر هنا.
لا حدّ للمعدّل اليوم إلا بالكاد. الحدّ الوحيد مهلةُ ثوانٍ قليلة بين محاولات فتح هاتف المتصفّح. ولا توجد حصّة عامة، ونفضّل أن نقولها على أن تبني على افتراض. كن معقولًا، وإن كنت تخطّط لشيء ثقيل فأخبرنا أولًا لنقيسه معك لا بعدك.
إلى أين تصل
| المجال | نقاط النهاية | أمثلة |
|---|---|---|
| صناديق البريد الصوتي | 15 | GET /buzones POST /buzones DELETE /buzones/:buz |
| التحويلات | 13 | GET /extensiones POST /extensiones DELETE /extensiones/:ext |
| من يمكنه الاتصال بك مجانًا من الشبكة | 13 | GET /red/bloqueos DELETE /red/bloqueos/:numero PUT /red/bloqueos/:numero |
| الطوابير | 12 | GET /colas POST /colas DELETE /colas/:cola |
| موسيقى الانتظار | 12 | GET /discos POST /discos DELETE /discos/:disco |
| التسجيلات | 9 | GET /grabaciones PUT /grabaciones/:grabacion/categoria DELETE /grabaciones/:grb |
| مجموعات الرنين | 8 | GET /grupos POST /grupos DELETE /grupos/:grp |
| القوائم الصوتية | 8 | GET /ivrs POST /ivrs DELETE /ivrs/:ivr |
| ورديات المناوبة | 8 | GET /turnos POST /turnos DELETE /turnos/:turno |
| غرف الاجتماعات | 7 | GET /conferencias POST /conferencias DELETE /conferencias/:sala |
| أوقات الدوام | 7 | GET /horarios POST /horarios DELETE /horarios/:hor |
| Webhooks | 7 | GET /webhooks POST /webhooks DELETE /webhooks/:whk |
| خطوات المسار القابل للبرمجة | 6 | GET /pasos POST /pasos DELETE /pasos/:pso |
| العُطل | 5 | GET /feriados POST /feriados DELETE /feriados/:fer |
| ما يقوله كل خط | 5 | GET /guiones POST /guiones DELETE /guiones/:gui |
| الرسائل | 5 | GET /mensajes DELETE /mensajes/:msg GET /mensajes/:msg |
| مسارات الدخول | 5 | GET /rutas POST /rutas DELETE /rutas/:ruta |
| الأسماء البديلة القابلة للطلب | 4 | GET /alias POST /alias DELETE /alias/:als |
| تذكيرات المواعيد | 4 | GET /citas POST /citas DELETE /citas/:cita |
| جهات اتصالك | 4 | GET /contactos POST /contactos DELETE /contactos/:con |
| محادثة موصولة بالصوت | 4 | GET /conversaciones GET /conversaciones/:cnv POST /conversaciones/:cnv/cerrar |
| الأجهزة | 4 | DELETE /dispositivos/:disp POST /dispositivos/:disp/estado POST /dispositivos/:disp/provision |
| ملفّات المكالمات المؤذية | 4 | GET /expedientes POST /expedientes GET /expedientes/:exp |
| قواعد التسجيل | 4 | GET /grabacion/decidir GET /grabacion/reglas PUT /grabacion/reglas |
| سجل المكالمات | 4 | GET /llamadas GET /llamadas/:llamada GET /llamadas/csv |
| الأرقام | 4 | GET /numeros DELETE /numeros/:numero/aviso-cambio GET /numeros/:numero/aviso-cambio |
| الخطوط المتزامنة | 3 | GET /canales GET /canales/episodios PUT /canales/modo |
| سجل التغييرات والتراجع | 3 | GET /historial GET /historial/:cambio POST /historial/:cambio/revertir |
| قائمة الحظر | 3 | GET /lista-negra POST /lista-negra DELETE /lista-negra/:neg |
| نوافذ الصيانة | 3 | GET /mantenimientos POST /mantenimientos POST /mantenimientos/:mnt/cerrar |
| حسابك وحالته | 2 | GET / PATCH / |
| الدليل | 2 | GET /directorio GET /directorio/buscar |
| روابط المشاركة | 2 | GET /enlaces DELETE /enlaces/:token |
| رنين التطبيق | 2 | GET /timbres/:timbre POST /timbres/:timbre/rechazar |
| أخرى | 1 | GET /guiones/claves |
| المكالمات المعلَّقة | 1 | GET /aparcadas |
| ما يستطيعه مفتاحك | 1 | GET /capacidades |
| من يتصل، وفي أي شأن | 1 | GET /contexto |
| كم تكلّف مكالمة | 1 | GET /cotizar-llamada |
| إلى أين يمكن إرسال مكالمة | 1 | GET /destinos |
| إمكان الوصول إلى أجهزتك | 1 | GET /disponibilidad |
| كشف الحساب | 1 | GET /estado-cuenta |
| القناة المباشرة | 1 | POST /eventos/ticket |
| تثبيتات التطبيق | 1 | DELETE /instalaciones/:instalacion |
| المكالمات الجارية | 1 | GET /llamadas-en-curso |
| الاتصال بنقرة | 1 | POST /llamar |
| عامل الهاتف | 1 | PUT /operadora |
| إلى أين تتصل هذه الشركة | 1 | GET /paises |
| قوالب البداية | 1 | POST /plantilla |
| ما يجوز طلبه | 1 | GET /politica-salida |
| الحضور | 1 | GET /presencia |
| أن يتصل بك المقسم ويشغّل لك شيئًا | 1 | POST /probar-audio |
| اختبار أين تحطّ المكالمة | 1 | GET /probar-entrada |
| تجربة مكالمة صادرة دون إجرائها | 1 | GET /probar-salida |
| الرصيد | 1 | GET /saldo |
| المكالمات التي لم يردّها أحد | 1 | GET /sin-devolver |
| وصل رقمين من الخارج | 1 | POST /unir |
| المتصلون ذوو الأولوية | 1 | GET /vips |
| الهاتف في المتصفّح | 1 | POST /webphone/sesion |
304 نقطة نهاية في المجموع، قُرئت من المقسم نفسه في 2026-10-21.
هذا الجدول ملخّص. أما القائمة التي لا يمكن أن تتقادم فهي التي يولّدها المقسم عن نفسه: GET /api.
كل نقطة وصول، واحدة تلو الأخرى
مقروءة من موجّه المقسم نفسه، فلا يمكنها وصف مسار غير موجود ولا إغفال مسار موجود. لا يظهر هنا إلا نطاق حسابك: مسارات التزويد تخصّ البوابة، ولن يُسلَّم إليك مفتاح يصل إليها.
| ماذا يفعل | ما تفعله | مثال |
|---|---|---|
GET /guiones/claves | Qué frases admite un guion | |
GET / | عبر واجهة البرمجة | |
PATCH / | Editar la ficha (el cliente, sus datos; plan y límites, el portal). Parcial; If-Match → 412عبر واجهة البرمجة | |
GET /alias | عبر واجهة البرمجة | |
POST /alias | عبر واجهة البرمجة | |
DELETE /alias/:als | عبر واجهة البرمجة | |
PATCH /alias/:als | عبر واجهة البرمجة | |
GET /aparcadas | Las llamadas aparcadas ahora mismo (#60)عبر واجهة البرمجة | عرضه |
GET /buzones | مكالمة حقيقية | |
POST /buzones | مكالمة حقيقية | |
DELETE /buzones/:buz | Borrar un buzón. If-Match opcional → 412مكالمة حقيقية | |
GET /buzones/:buz | مكالمة حقيقية | |
PATCH /buzones/:buz | Saludo, correo, transcripción, duración máxima. Parcial; If-Match → 412عبر واجهة البرمجة | |
GET /buzones/:buz/mensajes | Mensajes de un buzón. ?paginar=1 / ?cursor= → {elementos, siguiente}عبر واجهة البرمجة | |
PUT /buzones/:buzon/clave | Poner o quitar la clave del buzón (#10)منصّة الاختبار | |
GET /buzones/:buzon/ocupacion | Cuántos mensajes hay y cuántos caben (#14)منصّة الاختبار | |
GET /buzones/:buzon/papelera | Lo borrado que todavía se puede recuperar (#15)منصّة الاختبار | |
POST /buzones/:buzon/papelera/:mensaje/recuperar | Deshacer un borrado (#15)منصّة الاختبار | |
GET /buzones/:buzon/saludos | Los saludos del buzón, por motivo (con su audio: duración, bytes, huella)منصّة الاختبار | |
POST /buzones/:buzon/saludos | Poner el saludo de un motivo (normal, ocupado, vacaciones…): de texto, o volver a un audio de la cuentaمنصّة الاختبار | |
DELETE /buzones/:buzon/saludos/:saludo | منصّة الاختبار | |
GET /buzones/:buzon/saludos/:saludo/audio | Escuchar un saludo: WAV o MP3 (Accept), con Range y ETagمنصّة الاختبار | |
PUT /buzones/:buzon/saludos/:tipo/audio | Subir el saludo de un motivo con la voz del cliente (bytes: m4a, mp3, wav u ogg; 1-90 s)منصّة الاختبار | |
GET /canales | عبر واجهة البرمجة | |
GET /canales/episodios | عبر واجهة البرمجة | |
PUT /canales/modo | عبر واجهة البرمجة | |
GET /capacidades | Qué puede esta llave, qué campos edita cada ajuste y con qué límites, y qué hay en cada áreaعبر واجهة البرمجة | |
GET /citas | عبر واجهة البرمجة | |
POST /citas | Programar un recordatorio de cita por teléfonoعبر واجهة البرمجة | عرضه |
DELETE /citas/:cita | عبر واجهة البرمجة | عرضه |
GET /citas/:cita | عبر واجهة البرمجة | عرضه |
GET /colas | عبر واجهة البرمجة | عرضه |
POST /colas | Crear una cola de espera con agentesعبر واجهة البرمجة | عرضه |
DELETE /colas/:cola | Borrar una cola. If-Match opcional → 412عبر واجهة البرمجة | |
GET /colas/:cola | عبر واجهة البرمجة | عرضه |
PUT /colas/:cola | Estrategia, tiempos, anuncios, música y destinos. PUT PARCIAL; If-Match → 412عبر واجهة البرمجة | عرضه |
GET /colas/:cola/callbacks | Las devoluciones de llamada pedidasعبر واجهة البرمجة | عرضه |
GET /colas/:cola/estado | Cuánta gente espera, quién está de turno y cuánto se tardaعبر واجهة البرمجة | |
GET /colas/:cola/habilidades | Qué habilidades existen hoy en esta cola | |
POST /colas/:cola/miembros | Añadir un agente (extensión o número de fuera)عبر واجهة البرمجة | |
DELETE /colas/:cola/miembros/:miembro | عبر واجهة البرمجة | |
PUT /colas/:cola/miembros/:miembro/habilidades | Las etiquetas de un agente (#70) | |
POST /colas/turno | Entrar o salir de turno (lo mismo que *80 / *81)عبر واجهة البرمجة | |
GET /conferencias | عبر واجهة البرمجة | |
POST /conferencias | Crear una sala con número y claveعبر واجهة البرمجة | عرضه |
DELETE /conferencias/:sala | عبر واجهة البرمجة | |
GET /conferencias/:sala | عبر واجهة البرمجة | عرضه |
PUT /conferencias/:sala | Cambiar la sala (las claves se cambian, no se leen)عبر واجهة البرمجة | |
GET /conferencias/:sala/historial | Quién estuvo y cuántoعبر واجهة البرمجة | |
POST /conferencias/:sala/invitar | Llamar a alguien y meterlo en la salaعبر واجهة البرمجة | |
GET /contactos | عبر واجهة البرمجة | |
POST /contactos | Alta o importación masivaعبر واجهة البرمجة | |
DELETE /contactos/:con | عبر واجهة البرمجة | |
PUT /contactos/:contacto/vip | Marcar o quitar el VIP de un contacto | |
GET /contexto | Quién llama y de qué habló la última vezعبر واجهة البرمجة | |
GET /conversaciones | منصّة الاختبار | |
GET /conversaciones/:cnv | منصّة الاختبار | |
POST /conversaciones/:cnv/cerrar | منصّة الاختبار | |
POST /conversaciones/:cnv/turnos | منصّة الاختبار | |
GET /cotizar-llamada | Cuánto costaría llamar a ese número, antes de marcarloعبر واجهة البرمجة | |
GET /destinos | Qué destinos se pueden elegir en esta cuentaمكالمة حقيقية | |
GET /directorio | Quién sale en el directorio por nombreمنصّة الاختبار | |
GET /directorio/buscar | A quién encontraría el directorio con esas teclasمنصّة الاختبار | |
GET /discos | عبر واجهة البرمجة | |
POST /discos | عبر واجهة البرمجة | |
DELETE /discos/:disco | عبر واجهة البرمجة | |
GET /discos/:disco | عبر واجهة البرمجة | |
PATCH /discos/:disco | عبر واجهة البرمجة | |
GET /discos/:disco/estadisticas | عبر واجهة البرمجة | |
GET /discos/:disco/frases | عبر واجهة البرمجة | |
PUT /discos/:disco/frases | عبر واجهة البرمجة | |
DELETE /discos/:disco/frases/:frase | عبر واجهة البرمجة | |
PUT /discos/:disco/pistas | عبر واجهة البرمجة | |
DELETE /discos/:disco/pistas/:pista | عبر واجهة البرمجة | |
GET /discos/:disco/probar | عبر واجهة البرمجة | |
GET /disponibilidad | Cuánto tiempo estuvo arriba cada extensiónعبر واجهة البرمجة | |
DELETE /dispositivos/:disp | Revocar una credencial (y colgar lo que ese aparato tenga en curso)هاتف حقيقي | |
POST /dispositivos/:disp/estado | Suspender o reactivar un dispositivoهاتف حقيقي | |
POST /dispositivos/:disp/provision | Emitir un token para configurar la app sin teclear la claveعبر واجهة البرمجة | |
POST /dispositivos/:disp/rotar | Cambiar la clave de un dispositivoهاتف حقيقي | |
GET /enlaces | منصّة الاختبار | |
DELETE /enlaces/:token | Revocar un enlace compartido por errorمنصّة الاختبار | |
GET /estado-cuenta | Estado de cuenta: movimientos, consumo y lo pendiente de reportar, con su semántica (el disponible es del portal)عبر واجهة البرمجة | |
POST /eventos/ticket | Ticket para mirar el canal de eventos en vivo (sin teléfono)عبر واجهة البرمجة | عرضه |
GET /expedientes | Los expedientes abiertos (#64) | |
POST /expedientes | Abrir expediente sobre una llamada | |
GET /expedientes/:exp | Un expediente, con su llamada y su grabación | |
POST /expedientes/:exp/cerrar | Cerrar un expediente (la fila NUNCA se borra) | |
GET /extensiones | عبر واجهة البرمجة | عرضه |
POST /extensiones | Alta de extensión (crea buzón y credencial)عبر واجهة البرمجة | عرضه |
DELETE /extensiones/:ext | Borrar una extensión. If-Match opcional → 412عبر واجهة البرمجة | |
GET /extensiones/:ext | عبر واجهة البرمجة | |
PATCH /extensiones/:ext | Editar una extensión. Parcial; If-Match → 412عبر واجهة البرمجة | |
POST /extensiones/:ext/dispositivos | Añadir un dispositivo (celular, computadora…)عبر واجهة البرمجة | |
POST /extensiones/:ext/no-molestar | عبر واجهة البرمجة | |
GET /extensiones/:ext/reglas | مكالمة حقيقية | |
PUT /extensiones/:ext/reglas | Sígueme, desvío, no molestar y destino de fallo. PUT PARCIAL; If-Match → 412عبر واجهة البرمجة | |
GET /extensiones/:extension/camp | Los avisos de desocupado que pidió esta extensión (#58) | |
DELETE /extensiones/:extension/camp/:objetivo | Cancelar un aviso de desocupado | |
POST /extensiones/:extension/mover | Mover la llamada en curso a otro aparato de la misma extensión (#57) | |
GET /extensiones/siguiente-libre | عبر واجهة البرمجة | عرضه |
GET /feriados | عبر واجهة البرمجة | |
POST /feriados | Feriado propio o excepción a uno nacional (idempotente por fecha)عبر واجهة البرمجة | |
DELETE /feriados/:fer | Borrar un feriado de la cuenta. If-Match opcional → 412عبر واجهة البرمجة | |
GET /feriados/:fer | Un feriado de la cuenta o nacional, con su versión (ETag)عبر واجهة البرمجة | |
PATCH /feriados/:fer | Nombre y cerrado de un feriado de la cuenta (la fecha ES el feriado). If-Match → 412عبر واجهة البرمجة | |
GET /grabacion/decidir | ¿Se grabaría esta llamada? Y con qué avisoعبر واجهة البرمجة | |
GET /grabacion/reglas | عبر واجهة البرمجة | |
PUT /grabacion/reglas | Qué se graba y cuánto se guardaعبر واجهة البرمجة | |
DELETE /grabacion/reglas/:regla | عبر واجهة البرمجة | |
GET /grabaciones | Grabaciones; desde/hasta son fechas. ?paginar=1 / ?cursor= → {elementos, siguiente}منصّة الاختبار | |
PUT /grabaciones/:grabacion/categoria | cliente | prospecto | interno, o nada (#68) | |
DELETE /grabaciones/:grb | منصّة الاختبار | |
GET /grabaciones/:grb | Ficha: transcripción, resumen, acuerdos y hablantesلم يُجرَّب بعد | |
GET /grabaciones/:grb/accesos | Quién ha escuchado esta grabaciónمنصّة الاختبار | |
POST /grabaciones/:grb/analizar | Volver a transcribir y resumirلم يُجرَّب بعد | |
GET /grabaciones/:grb/audio | El audio (queda auditado)منصّة الاختبار | |
POST /grabaciones/:grb/enlace | Enlace firmado para compartir sin dar acceso a la cuentaمنصّة الاختبار | |
GET /grabaciones/buscar | Buscar por lo que se dijo dentro de las llamadasمنصّة الاختبار | |
GET /grupos | عبر واجهة البرمجة | |
POST /grupos | عبر واجهة البرمجة | |
DELETE /grupos/:grp | Borrar un grupo. If-Match opcional → 412عبر واجهة البرمجة | |
GET /grupos/:grp | عبر واجهة البرمجة | |
PUT /grupos/:grp | Estrategia, timbrado, fallo y miembros (si vienen, reemplazan la lista). Parcial; If-Match → 412عبر واجهة البرمجة | |
POST /grupos/:grp/miembros | عبر واجهة البرمجة | |
DELETE /grupos/:grp/miembros/:miembro | عبر واجهة البرمجة | |
GET /grupos/:grp/orden | En qué orden sonaría ahora mismoعبر واجهة البرمجة | |
GET /guiones | مكالمة حقيقية | |
POST /guiones | Los textos que dice una líneaمكالمة حقيقية | |
DELETE /guiones/:gui | مكالمة حقيقية | |
GET /guiones/:gui | مكالمة حقيقية | |
PATCH /guiones/:gui | Cambiar textos, nombre o voz declaradaمكالمة حقيقية | |
GET /historial | Qué cambió en esta cuenta, quién y cuándoعبر واجهة البرمجة | عرضه |
GET /historial/:cambio | عبر واجهة البرمجة | عرضه |
POST /historial/:cambio/revertir | Deshacer un cambio de configuraciónعبر واجهة البرمجة | عرضه |
GET /horarios | عبر واجهة البرمجة | |
POST /horarios | عبر واجهة البرمجة | |
DELETE /horarios/:hor | Borrar un horario. If-Match opcional → 412عبر واجهة البرمجة | |
GET /horarios/:hor | عبر واجهة البرمجة | |
PUT /horarios/:hor | Nombre, zona y tramos (si vienen, reemplazan la lista). Parcial; If-Match → 412عبر واجهة البرمجة | |
GET /horarios/:hor/estado | ¿Abierto ahora? Y por quéعبر واجهة البرمجة | |
POST /horarios/:hor/manual | Interruptor: abierto, cerrado, almuerzo o feriado, con caducidad; null vuelve al automáticoعبر واجهة البرمجة | |
DELETE /instalaciones/:instalacion | Desvincular el teléfono de una instalación de la app (borra sus aparatos y cuelga sus llamadas)عبر واجهة البرمجة | |
GET /ivrs | مكالمة حقيقية | |
POST /ivrs | Crear un menú (detecta bucles al guardar)مكالمة حقيقية | |
DELETE /ivrs/:ivr | Borrar un menú. If-Match opcional → 412مكالمة حقيقية | |
GET /ivrs/:ivr | مكالمة حقيقية | |
PUT /ivrs/:ivr | Saludo, espera, reintentos, agotado y opciones (si vienen, reemplazan la lista). Parcial; If-Match → 412; ciclo → 409مكالمة حقيقية | |
GET /ivrs/:ivr/guion | El texto exacto que se va a decirعبر واجهة البرمجة | |
DELETE /ivrs/:ivr/opciones/:tecla | مكالمة حقيقية | |
PUT /ivrs/:ivr/opciones/:tecla | مكالمة حقيقية | |
GET /lista-negra | عبر واجهة البرمجة | |
POST /lista-negra | Bloquear un número entranteعبر واجهة البرمجة | |
DELETE /lista-negra/:neg | عبر واجهة البرمجة | |
GET /llamadas | Registro de llamadas; desde/hasta son fechas (con la llave de un aparato, las de su extensión). ?paginar=1 / ?cursor= → {elementos, siguiente}مكالمة حقيقية | |
GET /llamadas-en-curso | Las llamadas del inquilino ahora mismo (vista de operadora)عبر واجهة البرمجة | عرضه |
GET /llamadas/:llamada | مكالمة حقيقية | |
GET /llamadas/csv | Exportar el CDRمكالمة حقيقية | |
GET /llamadas/resumen | Totales, atención y repartoمكالمة حقيقية | |
POST /llamar | Timbrar a la extensión y conectarla con un destinoمكالمة حقيقية | |
GET /mantenimientos | عبر واجهة البرمجة | عرضه |
POST /mantenimientos | Avisar a quien llame de que hay un mantenimiento en cursoعبر واجهة البرمجة | عرضه |
POST /mantenimientos/:mnt/cerrar | عبر واجهة البرمجة | عرضه |
GET /mensajes | Bandeja de toda la cuenta (con la llave de un aparato, la de su extensión). ?paginar=1 / ?cursor= → {elementos, siguiente}عبر واجهة البرمجة | |
DELETE /mensajes/:msg | عبر واجهة البرمجة | |
GET /mensajes/:msg | عبر واجهة البرمجة | |
GET /mensajes/:msg/audio | El audio del mensaje: WAV o MP3 (Accept), con Range y ETag; no lo marca leído y queda auditadoعبر واجهة البرمجة | |
POST /mensajes/:msg/leido | عبر واجهة البرمجة | |
GET /numeros | عبر واجهة البرمجة | عرضه |
DELETE /numeros/:numero/aviso-cambio | Apagar el aviso de cambio y devolver la línea a su destinoلم يُجرَّب بعد | |
GET /numeros/:numero/aviso-cambio | Estado del aviso de cambio de númeroلم يُجرَّب بعد | |
POST /numeros/:numero/aviso-cambio | Anunciar que este número cambió y decir el nuevoلم يُجرَّب بعد | |
PUT /operadora | A dónde va el cero (#109)عبر واجهة البرمجة | عرضه |
GET /paises | La memoria del cortafuegos de fraude: a dónde llama esta casa (#65) | |
GET /pasos | Pasos de flujo del cliente | |
POST /pasos | Alta de un paso de flujo | |
DELETE /pasos/:pso | ||
GET /pasos/:pso | ||
PUT /pasos/:pso | ||
POST /pasos/:pso/rotar-secreto | Rotar el secreto con el que se firma la consulta | |
POST /plantilla | Aplicar una plantilla de arranque (horario + ruta + buzón)عبر واجهة البرمجة | |
GET /politica-salida | عبر واجهة البرمجة | |
GET /presencia | Presencia de las extensiones de la cuenta, agregada por extensiónعبر واجهة البرمجة | |
POST /probar-audio | Llamarte y reproducirte una cadena de audio — la prueba de verdadمكالمة حقيقية | |
GET /probar-entrada | A dónde iría una llamada ahora mismoمكالمة حقيقية | |
GET /probar-salida | Simular una salida sin cursarlaمكالمة حقيقية | |
GET /red/bloqueos | Los números bloqueadosعبر واجهة البرمجة | |
DELETE /red/bloqueos/:numero | Desbloquear un númeroعبر واجهة البرمجة | |
PUT /red/bloqueos/:numero | Bloquear un número (cuelga sus llamadas de red en curso)عبر واجهة البرمجة | |
GET /red/enviadas | Las solicitudes que envié (pendiente | aprobada | no_aprobada)عبر واجهة البرمجة | |
POST /red/enviadas | Pedir permiso para llamar gratis (202 siempre igual)عبر واجهة البرمجة | |
DELETE /red/enviadas/:sol | Retirar una solicitud, o renunciar a un permiso concedidoعبر واجهة البرمجة | |
GET /red/permisos | Quién me puede llamar gratisعبر واجهة البرمجة | |
DELETE /red/permisos/:numero | Revocar un permiso (la llamada en curso sigue; la siguiente ya no es gratis)عبر واجهة البرمجة | |
GET /red/solicitudes | Las solicitudes de llamada gratis que le llegaron (estado=pendiente)عبر واجهة البرمجة | |
POST /red/solicitudes/:sol/aprobar | Aceptar: ese número llama gratis (en una central, la titular; extension_id = dónde suena)عبر واجهة البرمجة | |
POST /red/solicitudes/:sol/bloquear | Rechazar y bloquear ese númeroعبر واجهة البرمجة | |
POST /red/solicitudes/:sol/rechazar | Rechazar (a quien pidió no se le avisa)عبر واجهة البرمجة | |
GET /red/veredicto | Antes de llamar: gratis | pago (con su tarifa) | solicitud | no_disponibleعبر واجهة البرمجة | |
GET /rutas | مكالمة حقيقية | |
POST /rutas | Qué hace una llamada que entra por un númeroمكالمة حقيقية | |
DELETE /rutas/:ruta | Borrar una ruta de entrada. If-Match opcional → 412مكالمة حقيقية | |
GET /rutas/:ruta | مكالمة حقيقية | |
PATCH /rutas/:ruta | Destino, horario, modos, saludo y grabación. Parcial; If-Match → 412مكالمة حقيقية | |
GET /saldo | Saldo: el espejo local, los topes y el gasto, con su semántica (el disponible es del portal)منصّة الاختبار | |
GET /sin-devolver | Las perdidas que nadie ha devuelto, agrupadas por número (#67) | |
GET /timbres/:timbre | Estado de un timbre de la app (conciliar al despertar)عبر واجهة البرمجة | |
POST /timbres/:timbre/rechazar | Rechazar un timbre desde la app (antes o después de registrarse)عبر واجهة البرمجة | |
GET /turnos | Las rotas de guardia (#66) | |
POST /turnos | Crear una rota de guardia | |
DELETE /turnos/:turno | Borrar una rota (falla si una ruta apunta a ella) | |
GET /turnos/:turno | Una rota, con quién está de guardia AHORA | |
PUT /turnos/:turno | Cambiar una rota | |
POST /turnos/:turno/miembros | Meter a alguien en la rota, con su franja | |
DELETE /turnos/:turno/miembros/:miembro | Sacar a alguien de la rota | |
PUT /turnos/:turno/miembros/:miembro | Cambiar la franja de alguien | |
POST /unir | Llamar a dos números externos y unirlosمكالمة حقيقية | |
GET /vips | Quién se salta la fila de la cola (#61) | |
GET /webhooks | عبر واجهة البرمجة | |
POST /webhooks | عبر واجهة البرمجة | |
DELETE /webhooks/:whk | عبر واجهة البرمجة | |
PATCH /webhooks/:whk | عبر واجهة البرمجة | |
GET /webhooks/:whk/entregas | عبر واجهة البرمجة | |
POST /webhooks/:whk/probar | Mandar un evento de pruebaعبر واجهة البرمجة | |
POST /webhooks/:whk/rotar | عبر واجهة البرمجة | |
POST /webphone/sesion | Registrar el navegador o la app como teléfono de una extensión (la app manda su instalacion)عبر واجهة البرمجة |
أمثلة مسجَّلة
لم تُكتب يدويًا، بل سُجّلت من تنفيذ حقيقي على هذه الواجهة داخل حساب مؤقّت حُذف بعد ذلك: الطلب والحالة والرد كما مرّت فعلًا. استُبدلت معرّفات الحساب والكائنات برموز، ولم يُمسّ سواها. المثال المكتوب يثبت ما ظنّه كاتبه، أما المسجَّل فيثبت ما فعله المقسم.
24 من أصل 226 مسار لها مثال مسجَّل، من تنفيذ 2026-10-16. أما البقية فمدرجة أعلاه ولم تُختبر بهذه الطريقة بعد — نفضّل أن نُريك الرقم على أن تفترض أنها كلها كذلك.
GET /inquilinos/:inquilino/aparcadas 200
الرد
{
"plazas": []
}
DELETE /inquilinos/:inquilino/citas/:id 200
الرد
{
"id": "<id>",
"inquilino": "<cuenta>",
"numero": "50688889999",
"nombre": null,
"cuando": "2026-10-16T22:44:57.219Z",
"avisar_el": "2026-10-15T22:44:57.219Z",
"guion": null,
"estado": "cancelada",
"intentos": 0,
"ultimo_intento": null,
"respondido_el": null,
"nota": null,
"creado": "2026-10-16T21:44:58.732Z",
"actualizado": "2026-10-16T21:44:58.942Z"
}
GET /inquilinos/:inquilino/citas/:id 200
الرد
{
"id": "<id>",
"inquilino": "<cuenta>",
"numero": "50688889999",
"nombre": null,
"cuando": "2026-10-16T22:44:57.219Z",
"avisar_el": "2026-10-15T22:44:57.219Z",
"guion": null,
"estado": "pendiente",
"intentos": 0,
"ultimo_intento": null,
"respondido_el": null,
"nota": null,
"creado": "2026-10-16T21:44:58.732Z",
"actualizado": "2026-10-16T21:44:58.732Z"
}
POST /inquilinos/:inquilino/citas 201
الطلب
{
"numero": "50688889999",
"cuando": "2026-10-16T22:44:57.219Z",
"texto": "ensayo"
}
الرد
{
"id": "<id>",
"inquilino": "<cuenta>",
"numero": "50688889999",
"nombre": null,
"cuando": "2026-10-16T22:44:57.219Z",
"avisar_el": "2026-10-15T22:44:57.219Z",
"guion": null,
"estado": "pendiente",
"intentos": 0,
"ultimo_intento": null,
"respondido_el": null,
"nota": null,
"creado": "2026-10-16T21:44:58.732Z",
"actualizado": "2026-10-16T21:44:58.732Z"
}
GET /inquilinos/:inquilino/colas/:id/callbacks 200
الرد
[]
GET /inquilinos/:inquilino/colas/:id 200
الرد
{
"id": "<id>",
"inquilino": "<cuenta>",
"nombre": "Soporte",
"numero": null,
"estrategia": "todos",
"timbrado_s": 20,
"espera_max_s": 600,
"decir_posicion": 1,
"decir_espera": 1,
"anuncio_cada_s": 30,
"musica": "default",
"callback": 1,
"callback_min_espera_s": 45,
"agotada_tipo": "buzon",
"agotada_id": "<id>",
"vacia_tipo": null,
"vacia_id": null,
"creado": "2026-10-16T21:44:57.230Z",
"actualizado": "2026-10-16T21:44:57.230Z",
"miembros": [],
"estado": {
"de_turno": 0,
"miembros": 0,
"espera_estimada_s": null,
"callbacks_pendientes": 0,
"atendidas_hoy": 0,
"abandonos_hoy": 0
}
}
PUT /inquilinos/:inquilino/colas/:id 200
الطلب
{
"nombre": "Ya editada"
}
الرد
{
"id": "<id>",
"inquilino": "<cuenta>",
"nombre": "Ya editada",
"numero": null,
"estrategia": "todos",
"timbrado_s": 20,
"espera_max_s": 600,
"decir_posicion": 1,
"decir_espera": 1,
"anuncio_cada_s": 30,
"musica": "default",
"callback": 1,
"callback_min_espera_s": 45,
"agotada_tipo": "buzon",
"agotada_id": "<id>",
"vacia_tipo": null,
"vacia_id": null,
"creado": "2026-10-16T21:44:59.058Z",
"actualizado": "2026-10-16T21:44:59.287Z",
"miembros": [],
"estado": {
"de_turno": 0,
"miembros": 0,
"espera_estimada_s": null,
"callbacks_pendientes": 0,
"atendidas_hoy": 0,
"abandonos_hoy": 0
}
}
GET /inquilinos/:inquilino/colas 200
الرد
[
{
"id": "<id>",
"inquilino": "<cuenta>",
"nombre": "Soporte",
"numero": null,
"estrategia": "todos",
"timbrado_s": 20,
"espera_max_s": 600,
"decir_posicion": 1,
"decir_espera": 1,
"anuncio_cada_s": 30,
"musica": "default",
"callback": 1,
"callback_min_espera_s": 45,
"agotada_tipo": "buzon",
"agotada_id": "<id>",
"vacia_tipo": null,
"vacia_id": null,
"creado": "2026-10-16T21:44:57.230Z",
"actualizado": "2026-10-16T21:44:57.230Z",
"version": "\"v1-73d179cfb86c534a9bfccc\""
}
]
POST /inquilinos/:inquilino/colas 201
الطلب
{
"nombre": "Soporte",
"estrategia": "todos"
}
الرد
{
"id": "<id>",
"inquilino": "<cuenta>",
"nombre": "Soporte",
"numero": null,
"estrategia": "todos",
"timbrado_s": 20,
"espera_max_s": 600,
"decir_posicion": 1,
"decir_espera": 1,
"anuncio_cada_s": 30,
"musica": "default",
"callback": 1,
"callback_min_espera_s": 45,
"agotada_tipo": "buzon",
"agotada_id": "<id>",
"vacia_tipo": null,
"vacia_id": null,
"creado": "2026-10-16T21:44:57.230Z",
"actualizado": "2026-10-16T21:44:57.230Z",
"miembros": [],
"estado": {
"de_turno": 0,
"miembros": 0,
"espera_estimada_s": null,
"callbacks_pendientes": 0,
"atendidas_hoy": 0,
"abandonos_hoy": 0
}
}
GET /inquilinos/:inquilino/conferencias/:id 200
الرد
{
"id": "<id>",
"inquilino": "<cuenta>",
"nombre": "Sala 1",
"numero": null,
"max_personas": 10,
"esperar_organizador": 0,
"anunciar_entradas": 1,
"pedir_nombre": 1,
"bloqueada": 0,
"grabar": 0,
"musica": "default",
"activa": 1,
"creado": "2026-10-16T21:44:57.733Z",
"actualizado": "2026-10-16T21:44:57.733Z",
"tiene_pin": false,
"tiene_pin_organizador": false,
"dentro": 0,
"grabando": false
}
POST /inquilinos/:inquilino/conferencias 201
الطلب
{
"nombre": "Sala 1",
"clave": "<secreto>"
}
الرد
{
"id": "<id>",
"inquilino": "<cuenta>",
"nombre": "Sala 1",
"numero": null,
"max_personas": 10,
"esperar_organizador": 0,
"anunciar_entradas": 1,
"pedir_nombre": 1,
"bloqueada": 0,
"grabar": 0,
"musica": "default",
"activa": 1,
"creado": "2026-10-16T21:44:57.733Z",
"actualizado": "2026-10-16T21:44:57.733Z",
"tiene_pin": false,
"tiene_pin_organizador": false
}
POST /inquilinos/:inquilino/eventos/ticket 201
الطلب
{}
الرد
{
"ticket": "<secreto>",
"eventos": [
"wss://<puerta>:<puerto>/eventos",
"wss://<puerta>:<puerto>/eventos",
"wss://<puerta>:<puerto>/eventos"
],
"inquilino": "<cuenta>"
}
POST /inquilinos/:inquilino/extensiones/:id/credencial-dispositivo 201
الطلب
{
"instalacion": "ejercicio-api-ventana-tranquila"
}
الرد
{
"id": "<id>",
"clave": "<secreto>",
"caduca": "2026-10-16T22:00:02.449Z",
"segundos": 900,
"ambito": "dispositivo",
"vinculo": {
"inquilino": "<cuenta>",
"extension": "<id>",
"dispositivo": "<id>"
},
"extension": {
"id": "<id>",
"numero": "100",
"nombre": "Ejercicio API"
},
"dispositivo_nuevo": true,
"minutos_max": 60,
"resumen": "credencial de UN aparato de UNA extensión, que caduca; para la app móvil"
}
GET /inquilinos/:inquilino/extensiones/siguiente-libre 200
الرد
{
"numero": "100"
}
GET /inquilinos/:inquilino/extensiones 200
الرد
[
{
"id": "<id>",
"inquilino": "<cuenta>",
"numero": "100",
"nombre": "Ejercicio API",
"correo": null,
"cid_saliente": null,
"timbrado_s": 25,
"estado": "activa",
"creado": "2026-10-16T21:45:00.167Z",
"actualizado": "2026-10-16T21:45:00.167Z",
"nombre_audio": null,
"en_directorio": 1,
"departamento": null,
"version": "\"v1-a1a25e330e8bc32c8289ab\""
}
]
POST /inquilinos/:inquilino/extensiones 201
الطلب
{
"nombre": "Ejercicio API",
"numero": "100"
}
الرد
{
"id": "<id>",
"inquilino": "<cuenta>",
"numero": "100",
"nombre": "Ejercicio API",
"correo": null,
"cid_saliente": null,
"timbrado_s": 25,
"estado": "activa",
"creado": "2026-10-16T21:45:00.167Z",
"actualizado": "2026-10-16T21:45:00.167Z",
"nombre_audio": null,
"en_directorio": 1,
"departamento": null,
"reglas": {
"extension_id": "<id>",
"dnd": 0,
"dnd_hasta": null,
"sigueme": 0,
"sigueme_numeros": [],
"sigueme_modo": "tras",
"sigueme_confirmar": 1,
"sigueme_s": 20,
"desvio_siempre": null,
"desvio_ocupado": null,
"desvio_nocontesta": null,
"fallo_tipo": "buzon",
"fallo_id": "<id>",
"actualizado": "2026-10-16T21:45:00.168Z",
"desvio_confirmar": 1,
"screening": 0,
"clase_servicio": "todo",
"supervisar": 0,
"transferencia_retorno": 0
},
"dispositivos": [
{
"id": "<id>",
"etiqueta": "principal",
"usuario_sip": "tf3zfmm96cfq100",
"transporte": "udp",
"estado": "activo",
"ultimo_registro": null,
"ultima_ip": null,
"creado": "2026-10-16T21:45:00.168Z",
"rotado": null,
"instalacion": null
}
],
"buzon": {
"id": "<id>",
"inquilino": "<cuenta>",
"extension_id": "<id>",
"nombre": "Buzón de Ejercicio API",
"saludo_texto": "Ha llamado a Ejercicio API. Deje su mensaje después del tono.",
"saludo_audio": null,
"correo": null,
"enviar_correo": 1,
"adjuntar": 1,
"transcribir": 1,
"max_s": 120,
"creado": "2026-10-16T21:45:00.168Z",
"actualizado": "2026-10-16T21:45:00.168Z",
"max_mensajes": 50,
"aviso_activo": 0,
"aviso_numero": null,
"revisar": 0,
"ofrecer_operadora": 1,
"guion": null,
"aviso_numeros": null,
"aviso_modo": "tras",
"reintentar": 0,
"reintentos_max": 2,
"compartido": 0,
"extensiones_acceso": null,
"abrir_caso": 1,
"tiene_pin": false
},
"credencial": {
"id": "<id>",
"usuario_sip": "tf3zfmm96cfq100",
"clave": "<secreto>",
"realm": "pbx.forhosting.com",
"transporte": "udp"
}
}
POST /inquilinos/:inquilino/historial/:id/revertir 201
الطلب
{}
الرد
{
"revertido": "<id>",
"tabla": "colas",
"fila_id": "<id>",
"columnas": [
"nombre"
],
"fila": {
"id": "<id>",
"inquilino": "<cuenta>",
"nombre": "Para editar",
"numero": null,
"estrategia": "todos",
"timbrado_s": 20,
"espera_max_s": 600,
"decir_posicion": 1,
"decir_espera": 1,
"anuncio_cada_s": 30,
"musica": "default",
"callback": 1,
"callback_min_espera_s": 45,
"agotada_tipo": "buzon",
"agotada_id": "<id>",
"vacia_tipo": null,
"vacia_id": null,
"creado": "2026-10-16T21:44:59.058Z",
"actualizado": "2026-10-16T21:44:59.671Z"
}
}
GET /inquilinos/:inquilino/historial/:id 200
الرد
{
"id": "<id>",
"inquilino": "<cuenta>",
"tabla": "colas",
"fila_id": "<id>",
"columna_clave": "id",
"antes": {
"id": "<id>",
"inquilino": "<cuenta>",
"nombre": "Para editar",
"numero": null,
"estrategia": "todos",
"timbrado_s": 20,
"espera_max_s": 600,
"decir_posicion": 1,
"decir_espera": 1,
"anuncio_cada_s": 30,
"musica": "default",
"callback": 1,
"callback_min_espera_s": 45,
"agotada_tipo": "buzon",
"agotada_id": "<id>",
"vacia_tipo": null,
"vacia_id": null,
"creado": "2026-10-16T21:44:59.058Z",
"actualizado": "2026-10-16T21:44:59.058Z"
},
"despues": {
"id": "<id>",
"inquilino": "<cuenta>",
"nombre": "Ya editada",
"numero": null,
"estrategia": "todos",
"timbrado_s": 20,
"espera_max_s": 600,
"decir_posicion": 1,
"decir_espera": 1,
"anuncio_cada_s": 30,
"musica": "default",
"callback": 1,
"callback_min_espera_s": 45,
"agotada_tipo": "buzon",
"agotada_id": "<id>",
"vacia_tipo": null,
"vacia_id": null,
"creado": "2026-10-16T21:44:59.058Z",
"actualizado": "2026-10-16T21:44:59.287Z"
},
"actor": "apikey:<id> primera clave de sistema (sistema)",
"origen": "api",
"revertido_de": null,
"creado": "2026-10-16T21:44:59.287Z",
"cambios": {
"nombre": {
"antes": "Para editar",
"despues": "Ya editada"
}
}
}
GET /inquilinos/:inquilino/historial 200
الرد
{
"inquilino": "<cuenta>",
"cambios": [
{
"id": "<id>",
"tabla": "colas",
"fila_id": "<id>",
"actor": "apikey:<id> primera clave de sistema (sistema)",
"origen": "api",
"revertido_de": null,
"creado": "2026-10-16T21:44:59.287Z",
"cambios": {
"nombre": {
"antes": "Para editar",
"despues": "Ya editada"
}
}
}
]
}
GET /inquilinos/:inquilino/llamadas-en-curso 200
الرد
{
"activas": []
}
POST /inquilinos/:inquilino/mantenimientos/:id/cerrar 201
الطلب
{}
الرد
{
"id": "<id>",
"inquilino": "<cuenta>",
"motivo": "ensayo",
"desde": "2026-10-16T21:44:58.365Z",
"hasta": "2026-10-16T21:44:58.588Z",
"avisar": 1,
"activo": 0,
"creado": "2026-10-16T21:44:58.365Z"
}
GET /inquilinos/:inquilino/mantenimientos 200
الرد
[
{
"id": "<id>",
"inquilino": "<cuenta>",
"motivo": "ensayo",
"desde": "2026-10-16T21:44:58.365Z",
"hasta": null,
"avisar": 1,
"activo": 1,
"creado": "2026-10-16T21:44:58.365Z"
}
]
POST /inquilinos/:inquilino/mantenimientos 201
الطلب
{
"motivo": "ensayo",
"minutos": 5
}
الرد
{
"id": "<id>",
"inquilino": "<cuenta>",
"motivo": "ensayo",
"desde": "2026-10-16T21:44:58.365Z",
"hasta": null,
"avisar": 1,
"activo": 1,
"creado": "2026-10-16T21:44:58.365Z"
}
GET /inquilinos/:inquilino/numeros 200
الرد
[]
PUT /inquilinos/:inquilino/operadora 200
الطلب
{
"destino": "buzon"
}
الرد
{
"operadora": null
}
DELETE /inquilinos/:inquilino 200
الرد
{
"borrado": "<cuenta>"
}
POST /inquilinos 201
الطلب
{
"nombre": "Ejercicio API 2026-10-16T21:44:54"
}
الرد
{
"id": "<cuenta>",
"nombre": "Ejercicio API 2026-10-16T21:44:54",
"cuenta_portal": null,
"cedula": null,
"correo": null,
"telefono": null,
"plan": "zero",
"zona": "America/Costa_Rica",
"idioma": "es",
"estado": "activo",
"canales_max": 4,
"notas": null,
"creado": "2026-10-16T21:44:56.852Z",
"actualizado": "2026-10-16T21:44:56.852Z",
"canales_garantizados": 2,
"modo_presion": "firme",
"presion_canales": 1,
"duracion_max_s": null,
"operadora_tipo": null,
"operadora_id": null,
"filtro_anonimas": 0,
"cdr_retencion_dias": null,
"codigo_asunto_digitos": 0,
"supervision_activa": 0,
"canales_troncal": null,
"limites": {
"canales": 2,
"canales_max": 4,
"extensiones": 3,
"retencion": 30,
"tope_diario": 3,
"tope_mensual": 25
},
"canales": {
"existe": true,
"garantizados": 2,
"max": 4,
"modo": "firme",
"presion_canales": 1,
"por_troncal": null
}
}
الجلسات: المتصفّح لا يحمل مفتاحًا دائمًا أبدًا
بيانات اعتماد قصيرة العمر، بسقف 60 دقيقة، ولا تستطيع أن تصنع مفتاحًا دائمًا. هذا هو العقد إن كنت أنت من يبني الزر.
- البوابة وحدها تستطيع إصدارها. إصدار جلسة يحتاج إلى مفتاح تزويد، لأن البوابة وحدها تستطيع أن تؤكّد أن خلف الطلب عميلًا سجّل دخوله. وVOICE لا يعرف كلمات مرور العملاء ولا سبب لأن يعرفها.
- ولا تولد بلا انتهاء صلاحية. إن لم يطلب أحد مدّة، وُضعت لها واحدة. ونطاقٌ وُجد لكي ينتهي وقد يولد أبديًا أسوأ من عدمه، لأن الناس يثقون به.
- وطلب مدة أطول لا ينفع. هناك سقف صارم. وأن يطلب المتصل ثماني ساعات لا يجعل بيانات الاعتماد آمنة.
- ولا تستطيع ترقية نفسها. إدارة المفاتيح كلها خلف نطاق التزويد، فلا تستطيع جلسة أن تصنع مفتاحًا دائمًا. ويُفرَض ذلك في الموجّه، قبل تشغيل أي معالج.
- ويمكن إنهاؤها مبكرًا. يعود المعرّف عند الإصدار، تحديدًا كي تستطيع إبطالها قبل موعدها.
Webhooksعبر واجهة البرمجة
تُبلَّغ أنظمتك بما حدث بدل أن تسأل كل بضع ثوانٍ. 31 حدثًا، موقَّعة، ويُعاد إرسالها، ولا يسقط منها شيء بصمت.
x-pbx-evento: llamada.entrante
x-pbx-marca: 1755300000
x-pbx-firma: <hex>
{ "evento": "llamada.entrante", "inquilino": "…", "cuando": "…", "datos": { … } }
كل تسليم موقَّع: يغطّي التوقيع الطابع الزمني والجسم الذي استلمته بالضبط، فتحقّق منه على البايتات الخام لا على نسخة أُعيدت صياغتها. ويُعرَض السرّ مرة واحدة عند إنشاء الاشتراك، ويمكن تدويره دون إيقاف التسليمات.
التسليم الفاشل يُعاد بعد 10 · 30 · 60 · 300 · 900 · 3600 ثانية، ولكل محاولة 10 ثانية. والاشتراك الذي يستمرّ في الفشل يُوقَف مؤقتًا بعد 20 إخفاقات متتالية بدل أن يسقط بصمت — ويمكنك رؤية كل محاولة.
الأحداث
| الحدث | متى يُطلق |
|---|---|
llamada.entrante | مكالمة واردة، مع الرقم والمسار والوجهة. |
llamada.contestada | ردّ عليها أحد. |
llamada.terminada | انتهت، مع المدة وكيف انتهت. |
llamada.perdida | رنّت ولم يردّ أحد. |
buzon.mensaje | ترك أحدهم رسالة، مع تفريغها النصّي. |
grabacion.lista | انتهت معالجة تسجيل وصار قابلًا للتنزيل. |
grabacion.analizada | جاهز تفريغه النصّي ومتحدّثوه وملخّصه. |
saldo.bajo | الرصيد يقارب النفاد. |
tope.alcanzado | بُلغ سقف إنفاق وتوقّفت المكالمات. |
registro.anomalo | تسجيل جهاز يبدو خاطئًا — عدة بيانات اعتماد من المكان نفسه مثلًا. |
canales.al_limite | أنت قرب سقف خطوطك المتزامنة. |
cita.confirmada | أكّد أحدهم موعده على لوحة الأرقام. |
cita.reagendar | طلب أحدهم موعدًا آخر. وهو طلبٌ لإنسان، لا شيء يحلّه المقسم وحده. |
cita.cancelada | ألغى أحدهم موعده. |
desvio.activado | فُعّل تحويل. |
desvio.recordatorio | ما زال تحويل مفعَّلًا. والتحويل المنسيّ أشيع عطل شبحي في أي مقسم. |
buzon.lleno | امتلأ صندوق — ومن هنا فصاعدًا تضيع الرسائل. |
buzon.casi_lleno | صندوق يقارب الامتلاء، بينما ما زال في الوقت متّسع للتصرّف. |
cola.vacia | لا أحد على الوردية في طابور. |
cola.callback | طلب أحدهم أن يُعاد الاتصال به بدل الانتظار. |
conferencia.entra | دخل أحدهم غرفة. |
conferencia.sale | خرج أحدهم من غرفة. |
canales.desalojo | رُدّ خط مُعار لحماية ضمان أحدهم. |
emergencia.marcada | طلب أحدهم رقم الطوارئ من تحويلة. ولا تتأخّر المكالمة بسبب هذا أبدًا. |
fax.entrante | رُصدت نغمة فاكس في مكالمة واردة. |
supervision.iniciada | أنصت أحدهم إلى مكالمة أو همس فيها أو دخلها. وهذا ما يفصل أداة الإشراف عن التنصّت: أن تستطيع الإجابة عن «من سمع هذه المكالمة، ومتى». |
fraude.sospecha | نمط سلوك يشبه الاحتيال. ينبّه؛ ولا يقطع. |
filtro.insistencia | رقم يتصل أكثر مما ينبغي بكثير. |
red.solicitud.nueva | طلب خط آخر على الشبكة الإذن بالاتصال بك مجانًا. |
red.solicitud.respondida | وافق حسابك على طلب إذن أو رفضه. |
red.permiso.revocado | سحب حسابك من رقمٍ الإذنَ بالاتصال بك مجانًا. |
القناة المباشرةمكالمة حقيقية
تسافر إشعارات Webhook على دفعات وتصل خلال ثوانٍ. لكن هناك ما يجب أن يكون على الشاشة الآن: مصباحٌ يقول إن زميلك في مكالمة لا يصحّ أن يتأخّر خمس عشرة ثانية.
- ماذا تحمل. المكالمات وهي تحدث، والرسائل الجديدة، وحالة مصباح كل تحويلة — وهو ما يجعل لوحة المصابيح على الشاشة حيّة فعلًا.
- للقراءة فقط.عبر واجهة البرمجة تستطيع فتح تذكرة للقناة دون تسليم هاتف: فمشاهدة ما يجري لا ينبغي أن تتطلّب بيانات اعتماد تستطيع أيضًا تغيير الأشياء.
- ولا تحلّ محلّ Webhooks. القناة المباشرة لشاشة ينظر إليها أحد. وإن كان يهمّك أن يعلم نظامك، فاستعمل Webhook: يعيد المحاولة، ولا يعتمد على بقاء وصلة مفتوحة.
مرجع
كيف تُقرأ الشارات
كل وظيفة في هذه الصفحة تحمل شارة تقول كيف تحقّقنا منها. وننشر أيضًا ما لم يُجرَّب بعد، موسومًا بذلك، لأن أن تكتشفه أنت وحدك أسوأ.
| الشارة | ماذا يفعل | كم |
|---|---|---|
| مكالمة حقيقية | أجرى أحدهم مكالمة حقيقية ففعلت ما هو مكتوب هنا. | 14 |
| مكالمة اختبار | مكالمة حقيقية على المقسم الحيّ، بمفاتيح ضُغطت فعلًا — لكن بلا صوت وبلا مستمع. وكل ما يعتمد على أن يتكلّم المتصل ما زال غير مُختبَر. | 3 |
| هاتف حقيقي | مُثبَت بهاتف حقيقي يسجّل. | 1 |
| عبر واجهة البرمجة | جُرِّب عبر واجهة البرمجة العامة. | 47 |
| منصّة الاختبار | جُرِّب على منصّة الاختبار، على نسخة قابلة للإتلاف من قاعدة البيانات. | 13 |
| لم يُجرَّب بعد | الكود موجود ويُحمَّل، لكن لم يشغّله أحد بعد. | 36 |
114 وظيفة، مُحصاة من المقسم في 2026-09-19.
الشارة تخصّ وظيفة لا صفًّا واحدًا: وحيث تغطّي وظيفة عدة رموز، تظهر جميعها بمستوى المجموعة. أي أن الشارة قد تقول أقلّ مما جُرِّب فعلًا — ولا تقول أكثر أبدًا، وهو الاتجاه الوحيد الذي نقبل أن نخطئ فيه في صفحة تقرأها كوعد.
مسرد المصطلحات
الكلمات التي يستعملها المقسم الهاتفي ولا يستعملها شيء آخر.
| المصطلح | ماذا يفعل |
|---|---|
| التحويلة | شخص أو مكتب داخل شركتك، له رقم قصير يطلبه الآخرون. وليست هاتفًا: فالتحويلة الواحدة قد يكون لها عدة أجهزة. |
| الرقم (DID) | ما يطلبه العالم من الخارج للوصول إليك. والرقم يشير إلى شيء — تحويلة، أو مجموعة، أو قائمة — وأنت من يقرّر إلى أيّها. |
| مجموعة الرنين | عدة تحويلات ترنّ للمكالمة نفسها. بسيطة، ولا تعلم شيئًا عمّن ينتظر ولا منذ متى. |
| الطابور | مجموعة تمسك بالصفّ أيضًا. تعرف الموقع ومدة الانتظار المقيسة ومن على الوردية، وتستطيع عرض معاودة الاتصال. |
| القائمة الصوتية (IVR) | «اضغط 1 للمبيعات». القوائم قد تحوي قوائم، ويستطيع المتصل دائمًا أن يعود أو يصل إلى إنسان. |
| الخط المتزامن (القناة) | محادثة واحدة جارية. عشر قنوات تعني عشر مكالمات في آن واحد، مهما بلغ عدد هواتفك. |
| سجل المكالمة (CDR) | سطر لكل مكالمة: من، ومتى، وكم دامت، وعبر أي مسار، وكيف انتهت. ومنه تُبنى الفاتورة. |
| مصباح الانشغال | المؤشّر الذي يبيّن إن كان الزميل متاحًا أو يرنّ أو يتكلّم، دون الاتصال به لمعرفة ذلك. |
| نغمات لوحة الأرقام (DTMF) | الأصوات التي يصدرها الهاتف عند ضغط مفتاح. بها تسمعك القائمة الصوتية والصندوق وكل رمز في هذه الصفحة. |
| التحويل إلى الجوال | ترنّ تحويلتك على جوّالك أيضًا، أو بدلًا منها. وهي أكثر ميزة استعمالًا في أي مقسم صغير. |
| التعليق | ترك مكالمة تنتظر في موضع مرقّم ليستطيع أي أحد، من أي هاتف، استعادتها بطلب رقم ذلك الموضع. |
| التحويل المرافَق | أن تتحدّث إلى زميلك قبل تمرير المكالمة، مع إمكان استعادتها. |