تسعى مجموعة الوثائق لهذا المنتج جاهدة لاستخدام لغة خالية من التحيز. لأغراض مجموعة الوثائق هذه، يتم تعريف "خالية من التحيز" على أنها لغة لا تعني التمييز على أساس العمر، والإعاقة، والجنس، والهوية العرقية، والهوية الإثنية، والتوجه الجنسي، والحالة الاجتماعية والاقتصادية، والتمييز متعدد الجوانب. قد تكون الاستثناءات موجودة في الوثائق بسبب اللغة التي يتم تشفيرها بشكل ثابت في واجهات المستخدم الخاصة ببرنامج المنتج، أو اللغة المستخدمة بناءً على وثائق RFP، أو اللغة التي يستخدمها منتج الجهة الخارجية المُشار إليه. تعرّف على المزيد حول كيفية استخدام Cisco للغة الشاملة.
ترجمت Cisco هذا المستند باستخدام مجموعة من التقنيات الآلية والبشرية لتقديم محتوى دعم للمستخدمين في جميع أنحاء العالم بلغتهم الخاصة. يُرجى ملاحظة أن أفضل ترجمة آلية لن تكون دقيقة كما هو الحال مع الترجمة الاحترافية التي يقدمها مترجم محترف. تخلي Cisco Systems مسئوليتها عن دقة هذه الترجمات وتُوصي بالرجوع دائمًا إلى المستند الإنجليزي الأصلي (الرابط متوفر).
يصف هذا المستند كيفية تكوين تجمع Cisco Meeting Server (CMS) CallBridge باستخدام Skype for Business كمجموعة مكملة من الأدلة الرسمية. يقدم هذا المستند مثالا على CallBridge واحد ومثالا آخر على مجموعة ثلاثة CallBridge، ولكن يمكن إضافة CallBridge إضافية عند الضرورة. تم أيضا دعم عنصري CallBridge.
تمت المساهمة بواسطة روجيليو جاليندو وتحريرها فيريانا فوينتيس، مهندسو TAC من Cisco.
توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:
ملاحظة: يمكن العثور على دليل التكوين هنا: https://www.cisco.com/c/dam/en/us/td/docs/conferencing/ciscoMeetingServer/Deployment_Guide/Version-2-2/Cisco-Meeting-Server-2-2-Scalable-and-Resilient-Deployments.pdf
يقدم الجدول 1a مثالا على شهادة CallBridge لبيئة CallBridge واحدة.
الجدول 1 ألف
شهادات CallBridge | الوصف |
Single CallBridge | |
CN:cms.uc.local | CallBridge FQDN |
يقدم الجدول 1b مثالا على شهادات CallBridge لبيئة CallBridge المجمعة. يمكن مشاركة شهادة واحدة عبر CallBridges في نظام مجموعة.
الجدول 1 باء
شهادات CallBridge | الوصف |
الخادم 1: cms1.uc.local | |
CN:cms.uc.local | مجموعة CallBridge FQDN. يجب حل هذا السجل إلى كافة نظائر نظام المجموعة ل CallBridge. |
شبكة منطقة التخزين (SAN):cms.uc.local | مجموعة CallBridge FQDN. يجب حل هذا السجل إلى كافة نظائر نظام المجموعة ل CallBridge. |
شبكة منطقة التخزين (SAN):cms1.uc.local | CallBridge 1 FQDN. |
شبكة منطقة التخزين (SAN):cms2.uc.local | CallBridge 2 FQDN. |
شبكة منطقة التخزين (SAN):cms3.uc.local | شبكة FQDN الخاصة ب CallBridge 3. |
الخادم 2: cms2.uc.local |
|
CN:cms.uc.local | مجموعة CallBridge FQDN. يجب حل هذا السجل إلى كافة نظائر نظام المجموعة ل CallBridge. |
شبكة منطقة التخزين (SAN):cms.uc.local | مجموعة CallBridge FQDN. يجب حل هذا السجل إلى كافة نظائر نظام المجموعة ل CallBridge. |
شبكة منطقة التخزين (SAN):cms1.uc.local | CallBridge 1 FQDN. |
شبكة منطقة التخزين (SAN):cms2.uc.local | CallBridge 2 FQDN. |
شبكة منطقة التخزين (SAN):cms3.uc.local | شبكة FQDN الخاصة ب CallBridge 3. |
الخادم 3: cms3.uc.local | |
CN:cms.uc.local | مجموعة CallBridge FQDN. يجب حل هذا السجل إلى كافة نظائر نظام المجموعة ل CallBridge. |
شبكة منطقة التخزين (SAN):cms.uc.local | مجموعة CallBridge FQDN. يجب حل هذا السجل إلى كافة نظائر نظام المجموعة ل CallBridge. |
شبكة منطقة التخزين (SAN):cms1.uc.local | CallBridge 1 FQDN. |
شبكة منطقة التخزين (SAN):cms2.uc.local | CallBridge 2 FQDN. |
شبكة منطقة التخزين (SAN):cms3.uc.local | شبكة FQDN الخاصة ب CallBridge 3. |
يمكن إستخدام واجهة سطر الأوامر (CLI) ل CMS لعرض محتويات الشهادة:
cms1> pki inspect cmsuccluster.cer Checking ssh public keys...not found Checking user configured certificates and keys...found File contains a PEM encoded certificate Certificate: Data: Version: 3 (0x2) Serial Number: 60:00:00:00:21:db:36:e8:b9:0d:96:44:41:00:00:00:00:00:21 Signature Algorithm: sha256WithRSAEncryption Issuer: DC=local, DC=uc, CN=DC-CA Validity Not Before: Mar 16 19:00:53 2018 GMT Not After : Mar 16 19:10:53 2020 GMT Subject: C=US, ST=NC, L=RTP, O=Systems, OU=Cisco, CN=CMS.UC.local Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:b8:41:69:d9:1d:47:ef:b1:23:70:ae:69:da:e3: ff:12:f8:97:2b:ee:1e:c0:6c:66:e4:95:3f:8a:74: 4d:ec:fc:1e:0d:38:56:1b:00:5c:ce:6d:d3:68:13: e4:9d:b6:e7:7d:de:c4:a4:f3:00:02:11:e5:33:06: b4:f6:64:29:c3:77:62:a9:dc:9d:ad:a2:e9:c1:0b: 72:f4:18:af:df:d3:e3:f4:4a:5d:66:e5:e8:4f:63: 09:15:5f:8e:ec:df:86:fb:35:47:99:db:18:d1:b7: 40:4e:b6:b3:b6:66:28:8e:89:15:8b:cc:0f:e6:5c: e6:2d:de:83:6c:f8:e3:46:49:97:a6:a9:0e:6d:b1: 65:08:8e:aa:fc:f0:ae:2f:c1:c2:cd:b6:4f:a5:eb: 29:32:9a:48:8c:86:6d:1e:3a:c2:22:70:a3:56:e9: 17:01:ef:3a:ce:bb:9f:04:47:e5:24:e0:16:ba:c0: 85:df:92:4d:51:d2:95:bf:84:f7:9a:2e:c0:31:e9: 9f:91:4f:4a:ce:2c:27:17:f8:ae:3e:96:4e:3b:0a: 15:1a:66:cf:e9:12:96:e1:17:ee:65:3c:04:7a:c0: a0:b3:09:fd:3e:16:08:c6:0b:36:51:57:cb:d8:09: a3:40:d0:2c:ae:d6:06:e0:8c:06:de:b7:ce:24:83: 28:69 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Alternative Name: DNS:CMS.UC.local, DNS:CMS.UC.local, DNS:CMS1.UC.local, DNS:CMS2.UC.local, DNS:CMS3.UC.local X509v3 Subject Key Identifier: FE:EF:64:D6:85:7A:62:C5:CA:7B:64:10:B7:F9:E7:18:1D:65:0B:70 X509v3 Authority Key Identifier: keyid:B5:FC:2D:1E:7F:D9:3E:68:F4:B2:78:1F:F0:E8:B2:FC:80:7F:9C:E8 X509v3 CRL Distribution Points: Full Name: URI:ldap:///CN=DC-CA,CN=DC,CN=CDP,CN=Public%20Key%20Services,CN=Services,CN=Configuration,DC=uc,DC=local?certificateRevocationList?base?objectClass=cRLDistributionPoint Authority Information Access: CA Issuers - URI:ldap:///CN=DC-CA,CN=AIA,CN=Public%20Key%20Services,CN=Services,CN=Configuration,DC=uc,DC=local?cACertificate?base?objectClass=certificationAuthority X509v3 Key Usage: critical Digital Signature, Key Encipherment 1.3.6.1.4.1.311.21.7: 0..&+.....7.....\...........A........N...O..d... X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication 1.3.6.1.4.1.311.21.10: 0.0 ..+.......0 ..+....... Signature Algorithm: sha256WithRSAEncryption 83:31:16:15:74:41:98:e4:40:02:70:cc:6e:c0:53:15:8a:7a: 8a:87:0a:aa:c8:99:ff:5b:23:e4:8b:ce:dd:c0:61:9c:06:b4: 3d:22:91:b6:91:54:3a:99:8d:6e:db:18:27:ef:f7:5e:60:e6: 48:a2:dd:d5:85:1d:85:55:79:e0:64:1a:55:22:9e:39:0c:27: 53:a4:d8:3f:54:fd:bc:f9:d4:6e:e1:dd:91:49:05:3e:65:59: 6e:d4:cd:f6:de:90:cb:3d:b3:15:03:4b:b8:9d:41:f1:78:f5: d9:42:33:62:b5:18:4f:47:54:c9:fa:58:4b:88:aa:0d:f6:26: 9b:fb:8f:98:b4:82:96:97:24:fe:02:5b:03:04:67:c2:9e:63: 3d:02:ae:ef:92:a7:be:ad:ca:7e:4e:d2:1e:54:e6:bf:75:3b: 72:32:7c:d6:78:3f:5e:b9:e6:43:bd:1c:74:20:46:57:1b:81: c2:4b:b4:fc:9f:cc:c9:63:a8:2d:fd:dd:09:3f:24:d6:ac:f7: 7c:bd:26:80:a5:b4:d1:a7:c8:fb:3d:d4:a7:93:70:d1:5c:77: 06:9e:1c:f8:6a:81:a5:97:91:e9:21:e9:7a:df:a3:64:ab:ed: 15:c7:be:89:5f:1e:53:a7:b5:01:55:ab:a2:cd:8f:67:8d:14: 83:bc:29:a1 cms1>
الرجاء ملاحظة حقلي الموضوع و X509v3 Subject Alternative Name. ستكون هذه الأمور مهمة للغاية في وقت لاحق عندما نبني علاقات الثقة بيننا في بيئة Microsoft.
Subject: C=US, ST=NC, L=RTP, O=Systems, OU=Cisco, CN=CMS.UC.local
X509v3 Subject Alternative Name: DNS:CMS.UC.local, DNS:CMS.UC.local, DNS:CMS1.UC.local, DNS:CMS2.UC.local, DNS:CMS3.UC.local
ملاحظة: يمكن العثور على دليل تكوين الشهادة هنا: https://www.cisco.com/c/dam/en/us/td/docs/conferencing/ciscoMeetingServer/Deployment_Guide/Version-2-2/Certificate-Guidelines-Single-Split_Server-Deployment-2-2.pdf
يقدم الجدول 2a مثالا على كيفية تكوين خادم DNS. فهو يقدم شرحا لما يعنيه كل حقل.
الجدول 2 ألف
سجل | مثال IP | الوصف |
cms.uc.local | 10.10.10.1 | كول بريج |
fe.skype.local | 10.10.10.5 | اسم المجال المؤهل بالكامل (FQDN) ل Skype Front End |
يقدم الجدول 2b مثالا على كيفية تكوين خادم DNS. فهو يقدم شرحا لما يعنيه كل حقل.
الجدول 2(ب)
سجل | مثال IP | الوصف |
cms1.uc.local | 10.10.10.1 | CallBridge 1 |
cms2.uc.local | 10.10.10.2 | CallBridge 2 |
cms3.uc.local | 10.10.10.3 | CallBridge 3 |
cms.uc.local | 10.10.10.1 10.10.10.2 10.10.10.3 |
سجل يتم تحديده لكافة CallBridges في نظام المجموعة. وسيشار إلى هذا باسم المجال المؤهل بالكامل (FQDN) لمجموعة CallBridge |
fe.skype.local | 10.10.10.5 | اسم المجال المؤهل بالكامل (FQDN) ل Skype Front End |
انتقل إلى إعدادات المكالمات Configuration>. يجب تعيين تضمين وسائط SIP على مسموح به.
يوضح الجدول 3 ما يعنيه كل حقل في المكالمات الواردة - تكوين مطابقة المكالمات.
الجدول 3
حقل خطة طلب مطابقة المكالمة الواردة | الوصف |
اسم المجال | في حالة تلقي مكالمة مع هذا المجال، أستخدم جزء المستخدم من URI للبحث عن التطابقات في الأهداف الممكنة. |
أولوية | وهذا يحدد الترتيب الذي سيتم به النظر في القواعد. سيتم فحص الأرقام الأعلى أولا. سيتم التحقق من الأرقام الأقل كآخر مرة. |
مساحات الأهداف | إذا تم تعيينه إلى نعم: إذا تطابق جزء المستخدم من URI مع مساحة، فسيتم اتصال المكالمة بتلك المساحة. |
المستخدمون المستهدفون | إذا تم تعيينه إلى "نعم": إذا تطابق جزء المستخدم من URI مع مستخدم CMA، فسيحاول الاستدعاء إستدعاء هذا المستخدم. |
الأهداف IVR | إذا تم تعيينه إلى "نعم": إذا تطابق جزء المستخدم من معرف مواقع المعلومات (URI) مع IVR تم تكوينه، فسيتم اتصال المكالمة بهذا المعرف. |
الأهداف Lync | في حالة التعيين إلى "نعم": إذا كان جزء المستخدم من معرف مواقع المعلومات (URI) يطابق رقم اتصال PSTN الخاص باجتماع Skype for Business، فقم بالاتصال بذلك الاجتماع كمكالمة مزدوجة. |
أهداف Lync Simplejoin | إذا تم تعيينه إلى "نعم": قم بتحويل جزء المستخدم من URI إلى هدف HTTPS وحاول العثور على إجتماع Office365 مستضاف في عنوان URL هذا. |
مستأجر | يحدد هذا المستأجرين الذين سيتم مراعاة هذه القاعدة لهم. |
يوضح الجدول 4 ما يعنيه كل حقل في المكالمات الواردة - تكوين إعادة توجيه المكالمات.
الجدول 4
حقل خطة طلب إعادة توجيه المكالمات الواردة | تحرر |
نمط مطابقة المجال | في حالة تلقي مكالمة مع هذا المجال، قم بإعادة توجيه المجال أو رفضه كما تم تكوينه. |
أولوية | وهذا يحدد الترتيب الذي سيتم به النظر في القواعد. سيتم فحص الأرقام الأعلى أولا. سيتم التحقق من الأرقام الأقل كآخر مرة. |
إلى الأمام | في حالة التعيين لإعادة توجيه المكالمة سيتم التعامل معها بواسطة القواعد الصادرة. في حالة التعيين لرفض الاستدعاء سيتم رفضه ولن تتم إعادة توجيهه. |
معرف المتصل |
في حالة التعيين للمرور من خلال الجزء من المجال، سيتم عرضه. إذا تم تعيينه لاستخدام خطة الطلب، فسيتم إعادة كتابة الجزء كما هو مكون في القاعدة الصادرة. ملاحظة: لا يمكن إستخدام المرور للقواعد التي تطابق مجال Lync/Skype إذا كان CallBridge في نظام مجموعة. سيؤدي هذا إلى كسر العرض التقديمي في مكالمات البوابة. |
مجال إعادة الكتابة | في حالة التمكين، قم بتغيير المجال المستدعى إلى القيمة التي تم تكوينها في حقل مجال إعادة التوجيه. |
مجال إعادة التوجيه | إذا تم تمكين مجال إعادة الكتابة، سيتغير المجال الذي تم استدعاؤه إلى قيمة هذا الحقل. |
في هذه البيئة تكون الأمور بسيطة بشكل ملحوظ. نظرا لأننا لا نستخدم CallBridges المجمعة، يمكننا تعيين كل مجال لاستخدام المرور من خلاله كمعرف المتصل الخاص به. لا يمكن القيام بذلك في بيئة مجموعة نظرا لأنه سيؤدي إلى كسر مشاركة العرض التقديمي.
بالإضافة إلى ذلك، توجد قاعدة مطابقة للمكالمات للمجال Skype.local مع تعيين "Target Lync" إلى true. وهذا يعني أنه إذا قمنا بالاتصال باجتماع Lync/Skype بواسطة رقم اتصال PSTN، فيجب أن نتمكن من الاتصال كمكالمة منزلية مزدوجة.
في هذه البيئة، نستخدم مجموعة CallBridge تتكون من ثلاثة CallBridge. ولهذا السبب، نحتاج إلى قاعدة واحدة لإعادة توجيه المكالمات لكل CallBridge تم تكوينه لإعادة كتابة المجال إلى uc.local. وذلك لأنه عندما يقوم مستخدمو Lync/Skype باستدعاء المستخدمين من بيئة الاتصالات الموحدة، فإنهم سيقومون بالفعل بإجراء المكالمات في مجال cms1.uc.local أو cms2.uc.local أو cms3.uc.local. ولسوء الحظ، يعد هذا قيدا على التكوين المطلوب لتشغيل المحتوى في بيئة CallBridge مجمعة. نحتاج إلى تحويل هذا مرة أخرى إلى uc.local قبل إعادة توجيه المكالمة إلى وكيل UC.local sip.
بالإضافة إلى ذلك، توجد قاعدة مطابقة للمكالمات للمجال Skype.local مع تعيين "Target Lync" إلى true. وهذا يعني أنه إذا قمنا بالاتصال باجتماع Lync/Skype بواسطة رقم اتصال PSTN، فيجب أن نتمكن من الاتصال كمكالمة منزلية مزدوجة.
يوضح الجدول 5 ما يعنيه تكوين كل حقل في المكالمات الصادرة.
الجدول 5
حقل خطة الطلب الصادر | الوصف |
مجال | للاستدعاءات إلى هذا المجال أستخدم قاعدة الصادر هذه |
وكيل SIP المطلوب إستخدامه | وكيل SIP لإرسال المكالمات إلى هذا المجال |
مجال جهة الاتصال المحلية | يحدد ذلك القيمة التي سيتم وضعها في رأس جهة الاتصال. بالنسبة لتكامل Lync/Skype، يجب تعيين هذه القيمة على FQDN الخاص ب CallBridge. ملاحظة: بالنسبة لأي قواعد صادرة تستخدم وكيل SIP ل Lync/Skype، يجب تكوين هذا الحقل. بالنسبة لأي قواعد صادرة تستخدم وكيل SIP ليس Lync/Skype، يجب عدم تكوين هذا الحقل. |
محلي من المجال | هذا يحدد القيمة التي سيتم وضعها في الرأس من. سيكون هذا هو عنوان معرف المتصل الذي تمت مشاهدته على وكيل SIP. إذا ترك هذا الحقل فارغا، فإنه سيستخدم "مجال جهة الاتصال المحلية" الذي تم تكوينه. سيستخدم Lync/Skype هذا كمعرف مواقع المعلومات (URI) الوجهة لعمليات الاستدعاء ومشاركة العرض التقديمي. ملاحظة: لا يتم إستخدام هذه القيمة إذا كان الاستدعاء عبارة عن إستدعاء عبارة وكانت قاعدة الطلب الواردة المستخدمة تتضمن تعيين "معرف المتصل" إلى المرور. |
نوع خط الاتصال | وهذا يحدد تباين SIP الذي سيتم إستخدامه في الاتصال بوكيل SIP. |
سلوك | يحدد ذلك ما إذا كنا سنستمر في التحقق من قواعد الأولوية الأدنى أو سنتوقف عن البحث في حالة التطابق حيث لم نتمكن من إكمال المكالمة. |
أولوية | وهذا يحدد الترتيب الذي سيتم به النظر في القواعد. سيتم فحص الأرقام الأعلى أولا. سيتم التحقق من الأرقام الأقل كآخر مرة. |
تشفير | وهذا يحدد ما إذا كنا سنستخدم بروتوكول SIP المشفر أو غير المشفر. |
مستأجر | يحدد هذا المستأجرين الذين سيتم مراعاة هذه القاعدة لهم. |
نطاق جسر الاتصال | يحدد هذا الإجراء CallBridges التي سيتم مراعاة قاعدة الطلب الصادر هذه لها. في CallBridge المجمعة، يلزم هذا لضمان إرسال مجال الاتصال الصحيح من كل CallBridge. ملاحظة: لا يمكن تعيين هذه القيمة إلا باستخدام واجهة برمجة تطبيقات (API) كما هو موضح أدناه. |
مرة أخرى نرى أن بيئة CallBridge الفردية أبسط بشكل ملحوظ من بيئة المجموعات. أحد الأشياء التي تستحق الملاحظة أعلاه هو أن لدينا مجال اتصال محدد. وذلك لأنه إذا لم نحدد اسم المجال المؤهل بالكامل ل CallBridge حيث أن مجال الاتصال المحلي Lync/Skype سيرفض المكالمات لأسباب أمنية. نظرا لأنه قد تم تعيين قواعد إعادة التوجيه الواردة لاستخدام المرور، فلن نقوم فعليا بإعادة كتابة المجال من هذا المثال.
في هذه البيئة، نستخدم مجموعة CallBridge تتكون من ثلاثة CallBridge. ولهذا السبب، نحتاج إلى قاعدة صادرة واحدة لكل CallBridge مع مجالات اتصال محلية مختلفة، ومحلية من المجالات، والنطاقات. يلزم وجود قاعدة صادرة واحدة فقط لتوجيه المكالمات من جميع CallBridges إلى مدير الاتصالات الموحدة من Cisco. لتعيين النطاق الذي نحتاج إليه لاستخدام واجهة برمجة التطبيقات (API).
بعد إنشاء قاعدة إستدعاء صادرة، سيتم تعيين النطاق إلى <all> لهذه القاعدة. وهذا يعني أنه سيتم إستخدام القاعدة الصادرة على كافة CallBridges في نظام مجموعة. بالنسبة للقواعد الصادرة التي تشير إلى Lync/Skype، نحتاج إلى إستخدام جهات اتصال مختلفة ومن الرؤوس وفقا لأي CallBridge يتم تشغيله. للقيام بذلك، نحتاج إلى إنشاء قاعدة صادرة مختلفة لكل CallBridge تطابق فيها حقول جهة الاتصال/من التي تطابق CallBridge. باستخدام واجهة برمجة التطبيقات (API)، نحتاج إلى تعيين نطاق قواعد الطلب الصادرة هذه بحيث تتم معالجتها فقط على CallBridge التي تطابق هذه القاعدة.
في المستعرض، انتقل إلى صفحة /callbridges الخاصة ب CMS API. سيظهر هذا كل CallBridges في نظام المجموعة الخاص بك.
الآن لدي هويات لكل إتصالاتي بريدجز. ستكون معرفات المستخدم مختلفة في بيئة عملك. أرى أنه إذا كنت أريد الرجوع إلى CallBridge cms1.uc.local يجب إستخدام معرف e4ab61ea-b5b4-4fac-ad4a-9979badea4e4.
بعد ذلك، علي البحث عن قوانيني الصادرة والحصول على هوياتهم. في مستعرض انتقل إلى صفحة /outdDialplanrules في واجهة برمجة التطبيقات.
<outboundDialPlanRules total="4"> <outboundDialPlanRule id="7c76b6c7-4c42-45b0-af47-796cb6737e4e"> <domain>UC.local</domain> <priority>0</priority> </outboundDialPlanRule> <outboundDialPlanRule id="b8cf4056-7f56-43a5-b67b-861253d5ca32"> <domain>skype.local</domain> <priority>0</priority> </outboundDialPlanRule> <outboundDialPlanRule id="4ae1d777-48b7-423b-a646-a329e1e822af"> <domain>skype.local</domain> <priority>0</priority> </outboundDialPlanRule> <outboundDialPlanRule id="05f00293-50fd-4c17-9452-dec224b43430"> <domain>skype.local</domain> <priority>0</priority> </outboundDialPlanRule> </outboundDialPlanRules>
الآن لدي هويات لكل قوانيني، لكن لا أستطيع تحديد أي منها. نحن لا نهتم بالقاعدة الأولى بما أن هذه مقولة لفرع الاتصالات الموحدة المحلي ونحن لسنا بحاجة لتحديد نطاق لذلك. نحتاج إلى معرفة القاعدة الخاصة بالقواعد الصادرة المتبقية ل Skype.local. لذلك فإن البدء كل مرة بمطابقة بطاقات الهوية مع بطاقات CallBridges.
سأنتقل إلى /outbounddialplanrules/b8cf4056-7f56-43a5-b67b-861253d5ca32 في المستعرض الخاص بي. عند قراءة رأس جهة الاتصال المسرودة هناك، يمكنني أن أقول هذه القاعدة ل CMS1.UC.local. لذلك نحن بحاجة إلى تحديد نطاق هذه القاعدة إلى CMS1.UC.local.
باستخدام أداة واجهة برمجة التطبيقات (API) المفضلة لدي، سأرسل نقطة وصول (PUT) إلى واجهة برمجة التطبيقات (API) على /outbounddialplanrules/b8cf4056-7f56-43a5-b67b-861253d5ca32 مع النص التالي:
scope: callBridge callBridge: e4ab61ea-b5b4-4fac-ad4a-9979badea4e4
في لقطة الشاشة هذه، أستخدم PostMan لإرسال هذا الطلب.
إذا نجح HTTP هذا في إستخدام صفحة قواعد الطلب الصادر في WebAdmin يجب أن تعكس الآن نطاقا تم تطبيقه. إذا تم عرضه من مسؤول ويب الخاص ب CallBridge الذي تم تطبيق النطاق عليه، فيجب إظهار <local>. إذا تم إستخدام WebAdmin الخاصة ب CallBridge آخر لعرض قواعد الطلب الصادرة، فيجب إظهار FQDN ل CallBridge في حقل النطاق. نطاق <all> يعني إستخدام القاعدة على كافة CallBridges. يعني نطاق <none> أنه تم تمكين نطاق، ولكن لا يوجد CallBridges تطابق النطاق.
بعد تعيين النطاق ل CallBridge واحد، يلزم تكوينه لكل CallBridge إضافية. بعد اكتمال هذا التكوين، يجب أن يكون لكل قاعدة صادرة لمجال Skype نطاق.
في صفحة التكوين العام ل WebAdmin يوجد قسم إعدادات Lync Edge. لاستخدام خدمات TURN أو الانضمام إلى إجتماعات Dual Home من خلال رقم اتصال PSTN يجب تكوين هذا.
يوضح الجدول 6 ما يعنيه كل حقل في تكوين إعدادات Lync Edge.
الجدول 6
حقل إعدادات Lync Edge | الوصف |
عنوان الخادم | اسم المجال المؤهل بالكامل (FQDN) لتجمع طرائك الأمامي |
Username | اسم مستخدم حساب الخدمة الذي تريد إستخدامه ل CMS |
عدد التسجيلات | كم حساب مستخدم مختلف تريد تسجيله. إذا لم يتم تكوين قيمة هنا، فسيتم تسجيل اسم المستخدم فقط كما هو مدرج أعلاه. إذا تم تطبيق رقم هنا، فسيتم تطبيق الأرقام 1-X كلاحق لجزء المستخدم من URI حيث يمثل X الرقم الذي تم تكوينه في هذا الحقل. |
التكوين على CMS1:
سيقوم هذا التكوين بتسجيل cms1serviceuser1@skype.local و cms1serviceuser2@skype.local و cms1serviceuser3@skype.local و ... cms1serviceuser11@skype.local و cms1serviceuser12@skype.local to fe.skype.local. بما أنني في هذا المثال في بيئة مجمعة، فسأحتاج أيضا إلى إنشاء حسابات خدمات ل CallBridges الأخرى الخاصة بي وتكوينها بشكل منفصل. الرجاء ملاحظة أن أسماء المستخدمين في هذا المثال مختلفة. في CMS1، يتم تثبيت أسماء المستخدمين مسبقا ب CMS1. في CMS2، يتم تثبيت أسماء المستخدمين مسبقا ب CMS2. في CMS3 البادئة هي CMS3. تم إنشاء كافة هذه الحسابات وتمكينها في بيئة Skype for Business. نظرا لأنه قد تم تكوين تجمع التطبيقات الموثوق به لدينا باستخدام "التعامل كمصدق عليه"، فإننا لا نحتاج إلى توفير كلمات المرور للتسجيل.
التكوين على CMS2:
التكوين على CMS3:
ستظهر صفحة الحالة الخاصة ب CMS WebAdmin إذا قام مستخدمو Lync/Skype بالتسجيل بنجاح. في المثال التالي، يتم تكوين تسجيل واحد فقط وقد تم إكماله بنجاح. إذا لاحظت أن الحالة تظهر التسجيلات قيد التقدم لفترة طويلة قم بتجميع سجلات SIP و DNS لتحديد سبب حدوث الفشل.
تطبيق الأوامر التالية في Lync/Skype Management Shell. تطبيق الأوامر على الخادم الأمامي.
ملاحظة: الأوامر المقترحة هي للتوجيه. في حالة وجود شكوك حول التكوين على خادم Skype، ستحتاج إلى الاتصال بمسؤول Lync/Skype و/أو بفريق الدعم.
أولا، علينا أن نخبر سكايب أن يثق في مكالمتنا CallBridge. وللقيام بذلك، نقوم بإضافة تجمع تطبيقات موثوق به. في مصطلحات Microsoft "تجمع" يعني فقط "نظام المجموعة". في هذا السيناريو، لا تمثل مجموعتنا سوى مجموعة واحدة من CallBridge. يجب أن تتطابق هوية المجموعة الخاصة بنا مع الاسم الشائع للشهادة المستخدمة على CallBridge. تستخدم Microsoft هذا كتدقيق أمان. لا يكفي توفر الهوية في شبكة منطقة تخزين (SAN). إذا لم يتطابق الاسم الشائع مع Microsoft، فستؤدي هذه العملية إلى قطع اتصال TCP. عند إستخدام هذا الأمر، يجب أن تكون الهوية هي CallBridge FQDN. يجب أن يكون السجل هو FQDN الخاص بالحركة الأمامية التي تخدم هذه الاتصالات. يجب أن يكون الموقع هو معرف موقع Lync/Skype. إذا لم تكن متأكدا من القيم التي يجب إستخدامها للمسجل أو الموقع، الرجاء الاتصال بمسؤول Lync/Skype.
New-CsTrustedApplicationPool -Identity CMS.UC.local -Registrar fe.skype.local -site 1 -RequiresReplication $false -ThrottleAsServer $true -TreatAsAuthenticated $true
بعد ذلك يجب تكوين بيئة Microsoft للسماح بالاتصال الوارد من CallBridge (تجمع التطبيقات الموثوق بها) على المنفذ 5061.
New-CsTrustedApplication -ApplicationId AcanoApplication -TrustedApplicationPoolFqdn CMS.UC.local -Port 5061
تم تكوين بيئة Microsoft حاليا لقبول المكالمات، ولكن يتعذر عليها إجراء المكالمات مرة أخرى ولا يمكنها إرسال عرض تقديمي لاستدعاءات العبارة. لتصحيح هذا، نحتاج إلى إضافة مسار ثابت. في سيناريو CallBridge الواحد، نحتاج فقط إلى مسار واحد للسماح بكافة المكالمات إلى مجال UC.local. في وجهة الأوامر أدناه هي FQDN الخاصة ب CallBridge التي نريد إرسال طلبات SIP إليها. حقل MatchURI هو جزء المجال من URI الذي يجب إستخدامه. الرجاء ملاحظة أنه في بيئة Lync/Skype يمكن إنشاء مسار ثابت واحد فقط لكل MatchURI.
$x1=New-CsStaticRoute -TLSRoute -Destination “CMS.UC.local" -MatchUri “UC.local" -Port 5061 -UseDefaultCertificate $true Set-CsStaticRoutingConfiguration -Identity global -Route @{Add=$x1}
وأخيرا، يتعين علينا مطالبة سكايب بتطبيق كافة التغييرات التي أجريناها للتو.
Enable-CsTopology
أولا، علينا أن نخبر سكايب أن يثق في مجموعة CallBridge. وللقيام بذلك، نقوم بإضافة تجمع تطبيقات موثوق به. في مصطلحات Microsoft "تجمع" يعني فقط "نظام المجموعة". يجب أن تتطابق هوية المجموعة الخاصة بنا مع الاسم الشائع للشهادة (الشهادات) المستخدمة على CallBridge (آت) الخاصة بنا. تستخدم Microsoft هذا كتدقيق أمان. لا يكفي توفر الهوية في شبكة منطقة تخزين (SAN). إذا لم يتطابق الاسم الشائع مع Microsoft، فستؤدي هذه العملية إلى قطع اتصال TCP. عند إستخدام هذا الأمر، يجب أن تكون الهوية هي CallBridge FQDN. يجب أن يكون ComputerFQDN هو FQDN الخاص بأول CallBridge في نظام المجموعة لديك. من خلال تحديد ComputerFqdn، فأنت تشير إلى بيئة Lync/Skype إلى أن هذا النظام ليس عبارة عن نظام مجموعة يحتوي على خادم واحد فقط. يجب أن يكون السجل هو FQDN الخاص بالحركة الأمامية التي تخدم هذه الاتصالات. يجب أن يكون الموقع هو معرف موقع Lync/Skype. إذا لم تكن متأكدا من القيم التي يجب إستخدامها للمسجل أو الموقع، الرجاء الاتصال بمسؤول Lync/Skype.
New-CsTrustedApplicationPool -Identity CMS.UC.local -ComputerFqdn CMS1.UC.local -Registrar fe.skype.local -site 1 -RequiresReplication $false -ThrottleAsServer $true -TreatAsAuthenticated $true
في هذه البيئة، نحتاج إلى إضافة جهازي CallBridge كأجهزة كمبيوتر تطبيقات موثوق بها. تمت إضافة أول CallBridge بالفعل عند إنشاء تجمع التطبيقات الموثوق به أعلاه. عندما نجمع هذه الحواسيب نحتاج أن نربطها مع المسبح الذي أنشأناه للتو. وهذا يوضح ل Skype أن لدينا أجهزة كمبيوتر إضافية في المجموعة الخاصة بنا تحتاج إلى الثقة. يجب إدراج كافة هويات الكمبيوتر هنا كشبكات تخزين (SAN) في شهادة (شهادات) CallBridge. يجب أن تتطابق هذه الهويات أيضا مع رؤوس جهات الاتصال في قواعد الطلب الصادرة في CallBridges. إذا لم تتطابق مع Microsoft، سيتم قطع اتصال TCP.
New-CsTrustedApplicationComputer -Identity CMS2.UC.local -Pool CMS.UC.local New-CsTrustedApplicationComputer -Identity CMS3.UC.local -Pool CMS.UC.local
بعد ذلك يجب تكوين بيئة Microsoft للسماح بالاتصال الوارد من مجموعة CallBridge (تجمع التطبيقات الموثوق بها) على المنفذ 5061.
New-CsTrustedApplication -ApplicationId AcanoApplication -TrustedApplicationPoolFqdn CMS.UC.local -Port 5061
تم تكوين بيئة Microsoft حاليا لقبول المكالمات، ولكن يتعذر عليها إجراء المكالمات مرة أخرى ولا يمكنها إرسال عرض تقديمي لاستدعاءات العبارة. لتصحيح هذا، نحتاج إلى إضافة مسارات ثابتة. نحتاج أولا إلى إضافة مسار ثابت للسماح بكافة المكالمات إلى مجال UC.local. في وجهة الأوامر أدناه هي FQDN الخاصة ب CallBridge التي نريد إرسال طلبات SIP إليها. حقل MatchURI هو جزء المجال من URI الذي يجب إستخدامه. الرجاء ملاحظة أنه في بيئة Lync/Skype يمكن إنشاء مسار ثابت واحد فقط لكل MatchURI. بما أن الوجهة هي FQDN الخاصة بمجموعة CallBridge الخاصة بنا، كما أنها تحتوي على DNS A سجل لكل عضو في المجموعة يمكن ل Lync/Skype إرسال حركة مرور البيانات إلى جميع CallBridge الخاصة بنا. إذا ذهبت إحداها إلى الأسفل، يمكنها توجيه الطلبات الخاصة بمجال خدماتنا تلقائيا إلى CallBridge آخر في نظام المجموعة.
$x1=New-CsStaticRoute -TLSRoute -Destination “CMS.UC.local" -MatchUri “UC.local" -Port 5061 -UseDefaultCertificate $true Set-CsStaticRoutingConfiguration -Identity global -Route @{Add=$x1}
بعد ذلك، نحتاج إلى إنشاء مسار ثابت إضافي لكل CallBridge في المجموعة. هذا أحد متطلبات عمل الاستدعاء والعرض التقديمي.
$x2=New-CsStaticRoute -TLSRoute -Destination “CMS1.UC.local" -MatchUri “CMS1.UC.local" -Port 5061 -UseDefaultCertificate $true Set-CsStaticRoutingConfiguration -Identity global -Route @{Add=$x2} $x3=New-CsStaticRoute -TLSRoute -Destination “CMS2.UC.local" -MatchUri “CMS2.UC.local" -Port 5061 -UseDefaultCertificate $true Set-CsStaticRoutingConfiguration -Identity global -Route @{Add=$x3} $x4=New-CsStaticRoute -TLSRoute -Destination “CMS3.UC.local" -MatchUri “CMS3.UC.local" -Port 5061 -UseDefaultCertificate $true Set-CsStaticRoutingConfiguration -Identity global -Route @{Add=$x4}
وأخيرا، يتعين علينا مطالبة سكايب بتطبيق كافة التغييرات التي أجريناها للتو.
Enable-CsTopology
تتمثل الخطوة الأولى في تشخيص أي مشكلة في تحديد مكان المشكلة. للقيام بذلك، نحتاج إلى تحليل السجلات من خادم الاجتماعات من Cisco، ولكن نحتاج أولا إلى تجميعها. إليك توصياتي الشخصية حول السجلات المطلوب تجميعها.
قم أولا بتمكين تصحيح أخطاء SIP و DNS لجميع CallBridges عبر واجهة WebAdmin. للقيام بهذا الانتقال إلى WebAdmin ثم إلى سجلات > التتبع التفصيلي. من هنا، قم بتمكين تسجيل SIP و DNS للثلاثين دقيقة التالية. وينبغي أن يكون هذا الوقت أكثر من كاف للقبض على المشكلة وتشخيصها. تذكر أنه يجب القيام بذلك بشكل فردي لجميع CallBridges حيث أن تمكين السجل لا يتم مشاركته عبر نظام مجموعة.
ثانيا، قم بتمكين التقاط الحزم على جميع CallBridge. لتنفيذ هذا الاتصال عبر SSH إلى كل CallBridge وتشغيل الأمر pcap <interface> حيث يكون <interface> هو حركة مرور الواجهة التي يجب إستخدامها. في معظم الحالات سيكون هذا واجهة A. لذلك فإن الأمر "pcap a" سيبدأ التقاط الحزمة على الواجهة A ل CallBridge المتصل بها.
بمجرد تشغيل التقاط الحزمة على جميع الواجهات، تكون الخطوة التالية هي إنتاج المشكلة. هيا حاول إجراء مكالمة أو قم بأي شيء كان فاشلا. بعد اكتمال هذا إنهاء جميع عمليات التقاط الحزمة. ويمكن القيام بذلك من خلال إدخال Ctrl-C في جميع نوافذ SSH. بمجرد اكتمال التقاط الحزمة، ستتم كتابة اسم الملف الذي تم إنشاؤه على الشاشة. تتبع اسم الملف هذا حيث نحتاج إلى تنزيله في الخطوة التالية.
وأخيرا، نحتاج إلى جمع السجلات من CallBridges. لتنفيذ هذا الاتصال عبر SFTP لكل CallBridge. قم بتنزيل ملف logbundle.tar.gz وملف التقاط الحزمة الذي تم إنشاؤه. هذا الملف متوفر فقط في CMS2.2+. في CMS الإصدار 2.3+ سيتضمن التكوين الكامل ل CMS الخاص بك. إذا كنت تقوم بتشغيل الإصدار 2.2 فلن يتضمن القواعد الواردة/الصادرة، لذا سيكون من الأفضل أخذ لقطات شاشة لتلك الصفحات بالإضافة إلى إعدادات Lync Edge كمرجع. تأكد من تخزين السجلات/لقطات الشاشة التي تم تجميعها في مجلدات منفصلة لها اسم مطابق للسجلات التي تم سحبها من CallBridge. سيساعد ذلك في التأكد من عدم الخلط بين السجلات.
ستكون هذه الأوامر مفيدة للغاية عند أستكشاف أخطاء تكوين Lync/Skype وإصلاحها. في هذا المستند، يتم إعطاء أوامر لإنشاء التكوين وعرضه، ولكن لا يتم منح أي أوامر لإزالة التكوين. وذلك لأن إزالة التكوين قد تكون خطيرة ما لم يتم تنفيذها بواسطة المسؤولين الذين لديهم فهم كامل لبيئة Lync/Skype. إذا كنت بحاجة إلى إزالة التكوين، فالرجاء العمل مع مسؤول Lync/Skype للقيام بذلك.
الوصف | |
Get-CsTrustedApplicationPool | يسرد هذا الأمر مجموعات (تجمعات) موثوق بها من قبل Lync/Skype. يجب أن تتطابق هوية هذا التجمع مع الاسم الشائع لشهادة (شهادات) CallBridge. حتى في بيئة CallBridge واحدة، يجب تحديد مجموعة (تجمع) CallBridge لواحدة هنا. |
كمبيوتر Get-CsTrustedApplication | يسرد هذا الأمر الخوادم الموثوق بها من قبل Lync/Skype وتجميع هذه الخوادم المقترن به. يجب تعريف جميع أجهزة الكمبيوتر هنا في الشهادة التي تم إرسالها بواسطة CallBridges. في بيئة CallBridge واحدة، يكون هذا هو الاسم الشائع عادة. في بيئة تجميعية، يجب إدراج أجهزة الكمبيوتر هذه كإدخالات اسم بديل للموضوع (SAN). بالإضافة إلى ذلك، يجب تعريف جميع أجهزة الكمبيوتر هنا بواسطة إدخالات مجال جهة الاتصال المحلية في قواعد الطلب الصادرة ل CallBridge. |
تطبيق Get-CsTrustedApplication | يسرد هذا الأمر الخدمات التي يسمح لتجمعات التطبيقات الموثوق بها بالاتصال بها. بالنسبة لاتصال CMS مع Lync/Skype، سنستخدم منفذ TCP رقم 5061 ل TLS Encrypted SIP. |
get-csStaticRoutingConfiguration | Select-Object -ExpansionProperty Route |
يسرد هذا الأمر المسارات الثابتة التي يستخدمها Lync/Skype لإعادة توجيه طلبات. حقل MatchURI هو مجال الوجهة لرسالة SIP. يجب أن يعرض الحقل "TLS FQDN" في XML خادم الوجهة لحركة المرور هذه. |
فيما يلي مخرج أوامر Lync/Skype Get المذكورة أعلاه التي تم إصدارها في سيناريو نظام المجموعة الثلاثة من CallBridge الذي تمت تغطيته في هذا المستند
PS C:\Users\administrator.SKYPE> Get-CsTrustedApplicationPool Identity : TrustedApplicationPool:CMS.UC.local Registrar : Registrar:lyncpoolfe01.skype.local FileStore : ThrottleAsServer : True TreatAsAuthenticated : True OutboundOnly : False RequiresReplication : False AudioPortStart : AudioPortCount : 0 AppSharingPortStart : AppSharingPortCount : 0 VideoPortStart : VideoPortCount : 0 Applications : {urn:application:acanoapplication} DependentServiceList : {} ServiceId : 1-ExternalServer-1 SiteId : Site:RTP PoolFqdn : CMS.UC.local Version : 7 Role : TrustedApplicationPool PS C:\Users\administrator.SKYPE> Get-CsTrustedApplicationComputer Identity : CMS1.UC.local Pool : CMS.UC.local Fqdn : CMS1.UC.local Identity : CMS2.UC.local Pool : CMS.UC.local Fqdn : CMS2.UC.local Identity : CMS3.UC.local Pool : CMS.UC.local Fqdn : CMS3.UC.local PS C:\Users\administrator.SKYPE> Get-CsTrustedApplication Identity : CMS.UC.local/urn:application:acanoapplication ComputerGruus : {CMS1.UC.local sip:CMS1.UC.local@skype.local;gruu;opaque=srvr:acanoapplication:GMqDXW_1rVCEMQi4qS6ZxwAA, CMS2.UC.local sip:CMS2.UC.local@skype.local;gruu;opaque=srvr:acanoapplication:_Z9CnV49LFufGDXjnFFi4gAA, CMS3.UC.local sip:CMS3.UC.local@skype.local;gruu;opaque=srvr:acanoapplication:dt8XJKciSlGhEeT62tyNogAA} ServiceGruu : sip:CMS.UC.local@skype.local;gruu;opaque=srvr:acanoapplication:dQFM4E4YgV6J0rjuNgqxIgAA Protocol : Mtls ApplicationId : urn:application:acanoapplication TrustedApplicationPoolFqdn : CMS.UC.local Port : 5061 LegacyApplicationName : acanoapplication PS C:\Users\administrator.SKYPE> Get-CsStaticRoutingConfiguration | Select-Object -ExpandProperty Route Transport : TransportChoice=Certificate=Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.UseDefaultCert;Fqdn=CMS.UC.local;Port=5061 MatchUri : UC.local MatchOnlyPhoneUri : False Enabled : True ReplaceHostInRequestUri : False Element : <Route xmlns="urn:schema:Microsoft.Rtc.Management.Settings.SipProxy.2008" MatchUri="UC.local" MatchOnlyPhoneUri="false" Enabled="true" ReplaceHostInRequestUri="false"> <Transport Port="5061"> <TLS Fqdn="CMS.UC.local"> <UseDefaultCert /> </TLS> </Transport> </Route> Transport : TransportChoice=Certificate=Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.UseDefaultCert;Fqdn=CMS1.UC.local;Port=5061 MatchUri : CMS1.UC.local MatchOnlyPhoneUri : False Enabled : True ReplaceHostInRequestUri : False Element : <Route xmlns="urn:schema:Microsoft.Rtc.Management.Settings.SipProxy.2008" MatchUri="CMS1.UC.local" MatchOnlyPhoneUri="false" Enabled="true" ReplaceHostInRequestUri="false"> <Transport Port="5061"> <TLS Fqdn="CMS1.UC.local"> <UseDefaultCert /> </TLS> </Transport> </Route> Transport : TransportChoice=Certificate=Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.UseDefaultCert;Fqdn=CMS2.UC.local;Port=5061 MatchUri : CMS2.UC.local MatchOnlyPhoneUri : False Enabled : True ReplaceHostInRequestUri : False Element : <Route xmlns="urn:schema:Microsoft.Rtc.Management.Settings.SipProxy.2008" MatchUri="CMS2.UC.local" MatchOnlyPhoneUri="false" Enabled="true" ReplaceHostInRequestUri="false"> <Transport Port="5061"> <TLS Fqdn="CMS2.UC.local"> <UseDefaultCert /> </TLS> </Transport> </Route> Transport : TransportChoice=Certificate=Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.UseDefaultCert;Fqdn=CMS3.UC.local;Port=5061 MatchUri : CMS3.UC.local MatchOnlyPhoneUri : False Enabled : True ReplaceHostInRequestUri : False Element : <Route xmlns="urn:schema:Microsoft.Rtc.Management.Settings.SipProxy.2008" MatchUri="CMS3.UC.local" MatchOnlyPhoneUri="false" Enabled="true" ReplaceHostInRequestUri="false"> <Transport Port="5061"> <TLS Fqdn="CMS3.UC.local"> <UseDefaultCert /> </TLS> </Transport> </Route> PS C:\Users\administrator.SKYPE>
إن يواجه أنت خطأ مع هذا تنفيذ رجاء اتصل ب cisco TAC. عند فتح طلب الخدمة، يرجى تضمين إرتباط بهذا المستند. سيساعد مهندسي TAC على فهم التكوين الخاص بك. وبالإضافة إلى ذلك، سيكون من المفيد للغاية إذا تم إرفاق سجلات خادم الاجتماعات من Cisco بالحالة كما هو موضح أعلاه وتم إدخال إخراج جميع أوامر GET من الطرف الأمامي ل Lync/Skype في ملاحظات الحالة. إذا لم تقم بتضمين هذه المعلومات فمن المؤكد أنك ستكون أحد أول الأشياء التي يطلبها مهندسو TAC، فالرجاء المضي قدما وتجميعها قبل فتح حالتك.
المراجعة | تاريخ النشر | التعليقات |
---|---|---|
1.0 |
12-Oct-2017 |
الإصدار الأولي |