تنظیم سیپترانک و مسیر ورودی و خروجی در ایزابل
یک ترانک مبتنی بر ثبت حساب را به داخلی آزمایشی وصل کنید و خروجی را ابتدا به یک شمارهٔ مجاز محدود نگه دارید. مشخصات اپراتور، مسیر ورودی و مسیر خروجی سه بخش جدا از این کارند.
این راهنما براساس مستندات رسمی تهیه شده و توسط نتمسترز بهصورت عملی آزمایش نشده است.
آخرین بازبینی متن:
در این صفحه
سناریو و اطلاعات لازم
مبنای این آموزش Issabel 5 روی Rocky Linux 8 با Asterisk 18 و PJSIP است. نام و رفتار گزینهها با کد رسمی PBX در ثبت ۳۰ آوریل ۲۰۲۴ تطبیق داده شدهاند؛ این کار به معنی نصب یا آزمایش همان بستهها نیست. نسخهٔ واقعی مرکز و ماژولها را ثبت کنید و تفاوت گزینهها را پیش از تغییر بررسی کنید.
این سناریو برای کارشناس دارای دسترسی مجاز، روی مرکز آماده و یک خط آزمایشیِ فعال است که اپراتورش ثبت حساب با نام کاربری و رمز را میخواهد. داخلی 201 تماس آزمایشی را میگیرد و فقط همین داخلی اجازه دارد با یک شمارهٔ بیرونیِ تحت اختیار شما تماس بگیرد. تماس بیرونی ممکن است هزینه داشته باشد؛ زمان و مقصد آزمون را با مسئول خط هماهنگ کنید. این آموزش، ترانک تازهای را روی شبکهٔ آزمایش محلیِ بدون خط فرض نمیکند.
قبل از شروع، تماس داخلی و صدای دوطرفه باید سالم باشند؛ ساخت داخلی و اتصال سافتفون را در صورت نیاز انجام دهید. نسخهٔ پشتیبان و مقادیر قبلی ترانک و مسیرها را نگه دارید. برای معنای شماره و ظرفیت خط، سیپترانک چیست؟ راهنمای جدا دارد.
| اطلاعات | چیزی که باید روشن باشد |
|---|---|
| اتصال و احراز | نشانی SIP Server، پورت و Transport؛ ثبت حساب یا شناسایی IP؛ نام کاربری و رمز مخصوص خط |
| ورودی | DID دقیقاً با چه قالبی به مرکز میرسد و IPهای معتبر ارسالکنندهٔ تماس کداماند؟ |
| خروجی | قالب شمارهٔ مقصد، شمارهٔ نمایشی مجاز و نیاز احتمالی به From User، From Domain یا Proxy |
| صدا و شبکه | کدک و روش DTMF مورد توافق، مسیر SIP/RTP، NAT یا شبکهٔ اختصاصی و ظرفیت مجاز آزمون |
برای دیدن همه ستونها، جدول را به چپ یا راست بکشید؛ با کیبورد از کلیدهای جهت استفاده کنید.
رمز و آدرس اپراتور را از نمونههای اینترنتی کپی نکنید. اگر سرویس شما به ثبت حساب نیاز ندارد، مسیر احراز آن با این مثال متفاوت است؛ بخش بعد این تفاوت را توضیح میدهد.
ساخت ترانک PJSIP
در PBX → PBX Configuration، بخش Trunks و سپس Add PJSIP Trunk را باز کنید. نام توصیفی و Trunk Name را با نام یکتای SP-LAB مشخص کنید. جدول زیر برای همان سرویس مبتنی بر ثبت حساب است؛ عبارت «مقدار اپراتور» باید با دادهٔ واقعی جایگزین شود.
| فیلد | مقدار یا انتخاب |
|---|---|
| Username / Secret | نام احراز و رمز تحویلی اپراتور؛ مستقل از رمز مدیر و داخلی 201 |
| Authentication / Registration | Outbound / Send؛ فقط با تأیید همین روش در مشخصات سرویس |
| SIP Server / SIP Server Port | نشانی و پورت مقصد اعلامشده؛ پورت شنود داخلی مرکز جای این پورت نیست |
| Transport | UDP، TCP یا TLS مطابق سرویس و Transport فعال مرکز؛ انتخاب TLS بهتنهایی تنظیم گواهی را کامل نمیکند |
| Context | from-pstn برای ورود به مسیر تماس بیرونی؛ from-internal نگذارید |
| Match (Permit) | فقط IP یا شبکههای تأییدشدهٔ ارسال تماس اپراتور؛ نه همهٔ اینترنت |
| From User / From Domain / Outbound Proxy | فقط در صورت نیاز و با مقادیر همان اپراتور؛ شماره یا دامنهٔ حدسی ننویسید |
| Codecs / DTMF Mode | مطابق توافق دو سمت؛ برای مثال RFC 4733 فقط اگر سرویس آن را پشتیبانی میکند |
برای دیدن همه ستونها، جدول را به چپ یا راست بکشید؛ با کیبورد از کلیدهای جهت استفاده کنید.
در سرویس مبتنی بر IP که نه REGISTER و نه احراز نام/رمز میخواهد، معمولاً Registration و Authentication روی None هستند و شناسایی مبدأ به IPهای مجاز وابسته است. اما «بدون REGISTER» الزاماً «بدون احراز» نیست؛ بعضی سرویسها تماس خروجی را با رمز احراز میکنند. None را راهحل خطای رمز در سرویس ثبت حساب قرار ندهید.
Match (Permit) برای شناسایی مبدأ ترانک است و جای قواعد شبکه را نمیگیرد. دسترسی SIP و RTP را بر اساس نشانیها و پورتهای واقعی محدود کنید؛ تنظیم NAT نیز به توپولوژی بستگی دارد. تغییر همزمان همهٔ گزینهها یا خاموشکردن فایروال روش تشخیص نیست. فایلهای تولیدشدهٔ پنل را دستی بازنویسی نکنید.
برای این سناریو تبدیل شماره در خود ترانک اضافه نکنید؛ تبدیل را در مسیر خروجیِ مشخص انجام میدهیم. فرم را Submit و سپس Apply Config کنید. خطای اعمال را بررسی کنید و پیش از ادامه، ترانک ذخیرهشده را دوباره باز کنید.
ثبت حساب را مستقل بررسی کنید
در کنسول مجاز Asterisk ابتدا نسخه و فرمانهای موجود را ببینید؛ این فرمانها داخل Asterisk CLI هستند، نه شل لینوکس:
core show version
core show help pjsip show
pjsip show registrations
pjsip show endpointsبرای ترانک ثبتشونده، Registered انتظار ثبت موفق است؛ Rejected یا Unregistered را ثبت موفق ننویسید. نام واقعی Registration و Endpoint را از خروجی خود بردارید. نبود ردیف Registration در ترانکِ عمداً بدون ثبت، بهتنهایی خرابی نیست.
در PJSIP ثبت خروجی و شناسایی Endpoint دو مفهوم جدا هستند. موفقیت REGISTER ثابت نمیکند تماس ورودی به ترانک درست نسبت داده میشود یا صدا عبور میکند. در شکست ثبت، نشانی، پورت، Transport، حساب و پاسخ سرویس را بررسی کنید؛ یک پاسخ 401 در روند احراز، بهتنهایی تشخیص قطعی رمز اشتباه نیست.
مسیر ورودی را به داخلی آزمایشی برسانید
در Inbound Routes یک مسیر با Description برابر LAB-IN بسازید. DID Number را برابر شمارهای بگذارید که واقعاً در تماس ورودی به مرکز تحویل میشود؛ این قالب ممکن است با شمارهای که از بیرون میگیرید فرق کند. CallerID Number برای این آزمون خالی است تا تماسگیرنده را محدود نکند. در Set Destination، Extensions → 201 را انتخاب، Submit و Apply Config کنید.
DID مقصد شمارهگیریشده است؛ CallerID شمارهٔ تماسگیرنده است. هر دو را از روی حدس یکی نگذارید. اگر مقصد پیدا نمیشود، شمارهٔ رسیده به مرکز و Context را با مسیر تطبیق دهید. خالیگذاشتن همزمان DID و CallerID، مسیر عمومی برای تماسهای بدون تطبیق دقیق میسازد؛ برای پوشاندن خطای DID روی مرکز فعال چنین مسیری اضافه نکنید.
اول ورود به 201 را تأیید کنید؛ بعد مقصد را به شرط زمانی و تلفن گویا یا صف تماس تغییر دهید. این ترتیب کمک میکند خطای منو با خطای خط اشتباه نشود.
خروجی را به یک مقصد مجاز محدود کنید
یک شمارهٔ واقعیِ تحت اختیار خود را بهعنوان TEST-NUMBER انتخاب و آن را دقیقاً در قالب مورد قبول اپراتور یادداشت کنید. TEST-NUMBER نام متغیر توضیحی است؛ این متن را داخل فرم ننویسید. در Outbound Routes، Route Name را LAB-OUT-201 بگذارید و فقط یک ردیف مطابق جدول بسازید.
| فیلد | مقدار |
|---|---|
| prepend | خالی؛ چیزی به شماره اضافه نمیشود |
| prefix | خالی؛ چیزی از ابتدا حذف نمیشود |
| match pattern | فقط ارقام کامل شمارهٔ واقعیِ انتخابشده؛ بدون X یا نقطه |
| CallerID در ردیف الگو | 201؛ شمارهٔ داخلیِ مجاز، نه شمارهٔ نمایشی اپراتور |
| Trunk Sequence for Matched Routes | ترانک SP-LAB؛ بدون مسیر جایگزین ناشناخته |
برای دیدن همه ستونها، جدول را به چپ یا راست بکشید؛ با کیبورد از کلیدهای جهت استفاده کنید.
در این حالت از 201 همان شماره را بدون پیششمارهٔ دسترسی بگیرید. اگر طراحی شما پیششمارهٔ 9 دارد، فقط پس از تأیید آن، prefix را 9 کنید و هنگام گرفتن شماره، 9 را ابتدا بزنید؛ مرکز این 9 را حذف میکند. prepend برعکس، رقم به شمارهٔ ارسالی اضافه میکند. تبدیل همزمان در ترانک و Route میتواند شماره را دوباره تغییر دهد.
شمارهٔ نمایشی خروجی باید متعلق به خط و مجاز نزد اپراتور باشد؛ CallerID ستون الگو برای انتخاب داخلی است و آن را جعل نمیکند. ترتیب Routeها و الگوهای قبلی را بررسی کنید: یک Route عمومیِ زودتر میتواند مسیر آزمایش را بگیرد؛ وجود این ردیف محدود هم داخلیهای دیگر را از Routeهای عمومیِ باقیمانده منع نمیکند. پس از Submit و Apply Config، این محدودیت را با یک داخلی غیرمجاز نیز کنترل کنید.
آزمون تماس، خطا و بازگشت
- از تلفن بیرونیِ مجاز با DID تماس بگیرید؛ 201 باید زنگ بخورد. پاسخ و صدای هر دو جهت را بررسی کنید. سپس پایان تماس را از هر سمت در تماسهای جدا کنترل کنید.
- از 201 با شمارهٔ آزمایشی تماس بگیرید؛ مقصد، شمارهٔ نمایشی مجاز و صدای رفتوبرگشت را تطبیق دهید. نتیجهٔ ثبت، زنگ و مکالمه را جدا بنویسید.
- از داخلیای که نباید دسترسی داشته باشد همان مقصد را بگیرید؛ انتظار، نداشتن مسیر مجاز به آن خط است. اگر تماس عبور کرد، سایر Routeها و قواعد دسترسی را بررسی کنید.
- در حد ظرفیت تأییدشدهٔ خط، حالت مشغول یا بیپاسخ را بررسی کنید. یک تماس موفق اثبات ظرفیت کامل خط نیست؛ مسیر منو و کلیدهای DTMF را پس از افزودن منو جدا امتحان کنید.
اگر ثبت سالم است اما خروجی نمیرود، الگو، ترتیب Route، ترانک منتخب و قالب شماره را بررسی کنید. اگر تماس برقرار است ولی صدا یکطرفه است، مسیر رسانه و NAT موضوع جداست؛ راهنمای صدای یکطرفه کمک میکند. برای ورود ناموفق، نرسیدن تماس ورودی را ببینید.
در گزارش، نسخهها، مقادیر غیرمحرمانه، زمان و مسیر هر تماس و نتیجهٔ واقعی را ثبت کنید. تا تکمیل آزمون، خط را آمادهٔ بهرهبرداری اعلام نکنید. اگر تغییر شکست خورد، مقصد و Routeهای قبلی را از ثبت اولیه برگردانید، تنظیمات آزمایشیِ مرتبط را غیرفعال یا حذف کنید و Apply Config و تماس قبلی را دوباره کنترل کنید. رمز را در گزارش عمومی یا تصویر خطا نگذارید.