رفتن به محتوای اصلی
بازگشت به وبلاگ

صوت و اتصال فنی

شمارهٔ جهانی،داخلی و دستورِ شماره‌گیری؛ tel URI را دقیق بخوانیم

پنج tel URI آموزشی را parse و بازسازی کنید؛شماره،ext و phone-context جدا می‌مانند و حدِ parser با اعتبارِ عمومیِ شماره اشتباه نمی‌شود.

شمارهٔ جهانی،شمارهٔ محلی و داخلیِ تلفن سه خانهٔ متفاوت‌اند؛آن‌ها را با دستورِ شماره‌گیریِ دستگاه یکی نکنید. درtel URI،علامتِ+صورتِ جهانی را مشخص می‌کند،شمارهٔ محلی بهphone-contextنیاز دارد وextداخلی را جدا نگه می‌دارد. تمرینِ این صفحه پنج نمونه را با parserمحدود می‌خواند و دوباره می‌سازد؛هیچ شماره‌ای گرفته یا استعلام نمی‌شود.

شناسه با روشِ شماره‌گیری فرق دارد

ممکن است دستگاه برای خروج از مرکز تلفن،رقمِ دسترسی بخواهد یا کدِ بین‌المللی را به شکلِ دیگری بگیرد. این دستورهای وابسته به محل را نباید خودکار داخلِ شمارهٔ شناسایی چسباند. RFC3966،telرا شناسهٔ منبعِ تلفنی تعریف می‌کند؛شیوهٔ برقراریِ تماس به محیط هم وابسته است.

مثالِ جهانیِtel:+1-201-555-0123از نمونهٔ استاندارد گرفته شده است. خط‌تیره‌های نمایشی در خروجیِ محدود حذف می‌شوند وnumberبرابر+12015550123می‌شود؛این کار،صحتِ تخصیص،دسترسی از محلِ شما یا هویتِ صاحبِ شماره را آزمایش نمی‌کند.

داخلی را در خانهٔ خودش نگه داریم

در نمونهٔ دارای;ext=0042،رشتهٔ0042به همان صورت حفظ می‌شود. تبدیلِ آن به عدد۴۲یاچسباندنش به شمارهٔ اصلی،قرارداد را عوض می‌کند. extنشانیِ ایستگاهِ پشتِ مرکز تلفن است؛رقمِ دسترسی به خطِ بیرون یا دستورِ مکث وارسالِDTMFِدلخواه نیست.

نمونهٔ آموزشیخانهٔ مستقلبرداشتِ نادرست
شمارهٔ آغازشده با+numberجهانیاثباتِ مالکیتِ فرد
ext=0042extensionمتنیبخشِ خودکارِ شمارهٔ جهانی
phone-context=pbx.example.testزمینهٔ شمارهٔ محلیپیش‌شمارهٔ قابلِچسباندن

phone-context پیشوندِ شماره نیست

در مثالِ اصیلِtel:0042;phone-context=pbx.example.test،دامنه فقط زمینهٔ نام‌گذاریِ همین تمرین است و هیچDNSخوانده نمی‌شود.0042داخلِ آن زمینه شناسه دارد. parserهیچ کشور،صفرِ اول یا مسیرِ شماره‌گیری را حدس نمی‌زند.

نمونهٔ استانداردِtel:911;phone-context=+1هم در دفتر می‌آید؛وجودِ+1مجوزِ تبدیلِ آن به+1911نیست. منبع صریحاً می‌گویدcontextلزومأ پیشوندی برای ساختِE.164نیست. این نمونه فقط متن است؛لینکِ فعالِtelیاعملیاتِ تماس روی صفحه ساخته نشده است.

زیرمجموعهٔ parser را روشن ببینیم

کد،ASCII،schemeکوچکِtel،رقم‌های ده‌دهی و جداکننده‌های اعلامی،extوphone-contextرا می‌پذیرد. برای نمونهٔ محلی،contextالزامی است. خروجیِ serializeدوباره parseمی‌شود و باید همان چهار خانهٔnumber،global،extensionوcontextرا بدهد. این برابریِ ساختاری،آزمونِ کاملِ هم‌ارزیِ همهٔtel URIها نیست.

RFCبرای بعضی شماره‌های محلی حرف‌های خاص یا نمادها وپارامترهای دیگر هم دارد؛این تمرین همه را پیاده نمی‌کند. مقدارِ unsupported_subsetیعنی ابزارِ محدودِ ما آن صورت را پشتیبانی نمی‌کند؛نباید همهٔ آن‌ها را در کلِ استاندارد نامعتبر خواند. حتیschemeبزرگ در این parserپذیرفته نیست،درحالی‌که قواعدِ هم‌ارزیِ استاندارد دامنهٔ بیشتری دارند.

تعارض را بی‌صدا کنار نگذاریم

نه حالتِ ردشده در خروجی ثبت‌اند:شمارهٔ محلیِ بدونِcontext،extتکراری،هم‌زمانیِextوisub،ترتیبِ پارامترِ خارج از زیرمجموعه،پارامترهای ناشناخته،رقمِ فارسی،فاصلهٔ معمولی وschemeخارج از قرارداد. نامِ خطا مشخص می‌کند کدام قید یا حدِ پیاده‌سازی مطرح است.

ناشناخته‌بودنِ پارامتر با نادیده‌گرفتنِ مجازِ آن یکی نیست. کد هیچ پارامتری را حذف و سپس تماس را اجرا نمی‌کند. ورودی تا۲۵۶نویسه محدود است؛این سقفِ تمرین است،نه حداکثرِ طولِ شماره در جهان. نسخهٔ اجراPython۳٫۱۲٫۱۴است و هیچ سرویسِ تطبیقِ شماره یا سامانهٔ تلفنی اجرا نشده است.

برای اتصالِ واقعی چه چیزی ثبت شود؟

فرهنگِ فیلدها بایدnumber،extension،contextودستورِ شماره‌گیریِ مجاز را جدا تعریف کند. حفظِ صفرِ اول درCSV از رشته محافظت می‌کند؛این مقاله معنایِ خانه‌ها را روشن می‌کند. راهنمایCTI نیز تطبیقِ پرونده را از احرازِ هویت جدا می‌کند.

برای نیازِ منشیِ تلفنیِ اپرا،قواعدِ خط و داخلی را با مسئولِ همان مرکز مطرح کنید. شناسهٔ درست‌قالب به معنیِ رضایتِ تماس،دسترسیِ مجاز یا پاسخ‌گوییِ قطعی نیست؛این تمرین هیچ قابلیتی دربارهٔ تبدیلِ شماره یا انتقالِ تماسِ محصول را وعده نمی‌دهد.

فایل تمرین و منبع

کدِ کاملِ محلیِ تمرین و کنترل‌هایش · دادهٔ اصیل و نتیجهٔ اجرای واقعی؛ نویسه‌های کنترلی escape شده‌اند

منابع در 2026-11-04 خوانده شدند؛ این تاریخ، تاریخ انتشار منبع نیست. مثال‌ها و فایل‌های این راهنما آموزشی و ساختهٔ تحریریه‌اند.

برای این نیاز، کدام خدمت مناسب‌تر است؟

تماس و منشی، چت سایت و تحلیل مکالمه سه مسیر متفاوت‌اند. ابتدا خدمت متناسب نیازتان را انتخاب کنید.

انتخاب میان سه خدمتراهنمای شروع با تیم اپرا

برآورد هزینه