معرفی کامل پارامتر Qualify
در ادامه مباحث سیپ ترانک در این بخش قرار است به صورت اختصاصی در رابطه با Qualify صحبت کنیم. اینکه پارامتر Qualify چه تاثیری دارد و اینکه چه زمانی میتوانیم از Qualify استفاده کنیم.
آنچه در این مقاله می خوانید:
در ویدئوی قبلی Sip trunk را راهاندازی کردیم و در رابطه با Context صحبت کردیم. در این بخش به صورت اختصاصی فقط میخواهیم پارامتر Qualify را بررسی کنیم.
بخش اول: مقدمهای درباره Qualify
روی مرکز تلفن ایزابل میرویم و ترانکی را که با نام sip trunk test ساختم و یک کانفیگ اولیه را برای آن گذاشتم.
به سراغ نرمافزار putty یا mobaxterm میرویم. گفته شد که نرمافزار mobaxterm بهتر است به همین دلیل از این نرمافزار استفاده میکنیم. در قسمت route جایی هست که logs Asterisk را به صورت لحظهای به ما نشان میدهد.
یعنی اگر شما بر روی مرکز تلفن ایزابل قرار بگیرید فرض کنید sip trunk خود را submit و ok کنید. هیچ تغییری بر روی استریسک انجام نشده و زمانی که Apply را میزنیم
در قسمت log که نگاه کنید دقیقاً دستورات به استریسک ارسال میشود و تعداد زیادی دستور از ایزابل به Asterisk انتقال پیدا کرده و اینها تنظیماتی هست که بر روی Asterisk دیده میشود.
پس اینجا به صورت لحظهای به ما نشان میدهد که چه اتفاقی افتاده است. ما با استفاده از یک سری دستوراتی که در داخل Asterisk هست میتوانیم وضعیت ترانک خود را ببینیم. اینها همه مقدمهای در رابطه با Qualify میباشد.
نحوه استفاده از sip show در پروتکلهای sip
یک دستوری به نام sip show داریم بعد از sip show یک علامت سوالی هست که وقتی آن را بزنیم به ما نشان میدهد.
شما بعد از sip show میتوانید هریک از این پارامترها را استفاده کنید و به شما میگوید که به عنوان مثال شما میتوانید هر کدام از پارمتر های داخل پرانتز را انتخاب نمایید.( sip show channel یا doming sip show و یا history، peer ، peers، registry )
به طور کلی پارامترهایی که بیشتر مورد استفاده ما قرار میگیرند peers ، registry و peer هستند. user، channel و channels هم پارامترهایی هستند که ممکن است به کار بیاید و بتوانید در پروژه های خود و یا جاهای دیگر اگر لازم باشد باید از آنها استفاده کنید.
دستور sip show
اگر من sip show را وارد کنم و علامت سوال را بزنم این گزینهها را به من میدهد. میتوانم peer را انتخاب کنم. اگر enter را بزنم خطا میدهد و میگوید که بعد از آن باید یک اسم را انتخاب کنید. اگر جهت بالا را بزنم دستوری که در ردیف قبلی نوشته بودم را مجدداً نشان میدهد.
یک فاصله میزنیم سپس علامت سوال را میزنیم میگوید بعد از sip show peer هر یک از این پارامترها را میتوانید انتخاب کنید. مثلا ۱۰۰، ۱۰۱، ۱۰۲، ۱۰۳ اگر دقت کرده باشید با دستور sip show ما فقط میتوانیم تمامی پروتکلهای سیپ را ببینیم و بستگی دارد که در ادامه چه چیزی را قرار دادیم.
نحوه نشستن sip trunk روی Asterisk
ما sip show peer را انتخاب کردیم حالا کدام یک را میتوانیم انتخاب کنیم. آخرین گزینه sip است که همان sip trunk ما میباشد. به روی محیط ایزابل میرویم در اینجا trunk name خود را با نام sip وارد کردم. دقیقاً همین را به ما نشان میدهد.
مقداری اسم آن را به صورت خاصتر انتخاب میکنم تا واضحتر مشخص شود. مثلاً نام آن را sip trunk test میگذارم سپس submit کرده و Apply میکنم حالا بر روی استریسک نشست.
نحوه نمایش پارامترهای یک Trunk خاص به صورت یکجا
در اینجا به طور مجدد sip show peer را میزنیم و بعد علامت سوال میگذاریم. اینجا دیگر ما sip نداریم و نوشته شده sip trunk test قبل از این نامش sip بود که آن را عوض کردیم و به sip trunk test تغییر دادیم.
اگر همین را اینجا بنویسم یعنی sip- که با استفاده از tab کامل میشود و این در شرایطی است که اسم تا جایی که نوشته شده یونیک باشد. ما الان ۱۰۳،۱۰۲ و۱۰۴ هم داریم مثلاً شما مینویسید sip show peer بعد ۱۰۰ بعد ۱ و tab را بزنید کامل نمیکند و میگوید بعد از ۱ باید چیز دیگری وارد کنید تا یونیک شود.
برای مثال صفر را بگذارم باز هم اگر tab را بزنم میگوید میتواند ۱۰۱،۱۰۲ یا ۱۰۳ باشد. کدام یک مورد نظر شماست. پس ما باید تا جایی که امکان دارد کامل بنویسیم. اگر sip trunk test را بنویسیم و enter را بزنیم تمام دستورات یا پارامترهایی که برای این ترانک ساخته شده است را به صورت یکجا به ما نشان میدهد.
اهمیت تعریف پارامتر روی Sip trunk
لازم است یک نکته ضروری به شما گفته شود اینکه پارامتری را که بر روی سیپ ترانک در اینجا تعریف کردید ممکن است که سه یا چهار پارامتر باشد اما به صورت پیشفرض تمام پارامترها را به صورت کامل ایزابل به سمت Asterisk میفرستد.
حال هر چیزی که شما set کنید قرار میدهد و هرچیزی را که set نکنید به صورت پیشفرض قرار میدهد. مثلاً در اینجا port را نگذاشتهاید، زمانی که شما trunk را میگذارید و میخواهید port دیگری را انتخاب کنید مانند پورت ۸۰۰۰ یا میخواهید dtmfmode آن را مشخص کنید که دارای چه نوع mode باشد که معمولاً به صورت پیشفرض rfc2833 است یا مثلاً میخواهید nat یا codec آن را مشخص کنید.
اینها پارامترهای دیگری هستند که کمی جلوتر در مورد آن صحبت میشود و خود ایزابل به صورت پیشفرض به سمت Asterisk ارسال میکند.
نحوه ارسال و دریافت data توسط Sip trunk
اگر به روی محیط log برویم port ما قاعدتاً باید ۵۰۶۰ باشد و مشخص نکردیم که به صورت پیشفرض همان ۵۰۶۰ است. rfc 2833 که DTMF mode آن است. insecure mode را ما گذاشتیم. port 5060 در ip 20.150 با port5060 است یا مثلاً کدکها gsm،ulaw،alaw که فعال هستند. وضعیت status آنها ok هست. زمانی که ok میدهد یعنی Sip trunk ما میتواند data را ارسال یا دریافت کند.
چگونگی ok شدن Sip trunk
اینکه در چه صورتی ok میشوند از اینجا به بعد در رابطه با qualify صحبت میکنیم. قبل از آن ما یک دستور دیگر را بررسی میکنیم به طور مثال اگر دستور sip show peers را وارد نماییم یعنی هر تعداد پروتکل Sip که داریم چه به صورت داخلی یا Sip trunk باشد را به ما نشان میدهد.
در دستور بالایی sip show peer اسم trunk را وارد کرده بودیم. ولی اینجا peers را مینویسیم یعنی همه را به ما نشان بده و sip show وضعیت کلی را به ما نشان میدهد.
مطابق تصویر بالا بر روی وضعیت آخر ستون آخر میرویم این status اینجا باید وضعیت trunk ما در حالت ok باشد. پس وضعیت ترانکی که ما میسازیم باید ok باشد.
Ok بودن Sip به چه معناست؟
نکته بسیار مهمی که میخواهم به شما بگویم و به خاطر داشته باشید این است که ما با دستور sip show peers زمانی که status در trunk را میبینیم نمیتوانیم بگوییم چون ok است پس register شده است. اصلاً همچنین چیزی وجود ندارد و در واقع ok بودن به معنای register شدن نیست.
Ok بودن صرفاً بدین صورت است که میتواند پورت ۵۰۶۰ را بفرستد یا دریافت کند. یعنی در عمل ping مرکز مقابل را دارد. پس اگر شما در اینجا مشاهده کردید که Sip trunk در وضعیت اوکی است این به معنای register شدن نیست.
آیا ترانکی که ما ساختیم قابلیت register شدن را دارد؟
خیر trunk ما از نوع تراست است و اصلاً user و password ندارد که بخواهد register شود. در نتیجه trunk ما اصلاً register شدنی نیست. خیلیها این اشتباه را میکنند و دستور sip show peers را میزنند و بعد مشاهده میکنند که status آن ok است و تصور میکنند که trunk آنها register شده است که در عمل اصلاً به این معنا و مفهوم نیست پس به آن دقت داشته باشید.
بخش دوم: دستور Qualify
این وضعیت را دقیقاً Qualify مشخص میکند. Qualify دستوری هست که با استفاده از آن میتوانیم به صورت پیشفرض هر شصت ثانیه ارتباط مرکز خود را با مرکز مقابل چک کنیم. تایم شصت ثانیه به صورت پیشفرض است و میتوانیم آن را کم یا زیاد کنیم پس تایم شصت ثانیه قابل تغییر است. روی مرکز ایزابل میرویم.
مفهوم yes در Qualify
یعنی این Sip trunk من قادر است هر شصت ثانیه ارتباطش را با مرکز مقابل چک کند که ببیند به عنوان مثال مرکز مقابل را به صورت شبکهای میبیند یا خیر. اگر شما به جای ۲۰۱۵۰ یک IP را به صورت اشتباه وارد کنید که وجود نداشته باشد و نتواند آن را ping کند، آنجا status ما به صورت unreachable درمیآید.
مثلا بزنیم ۲۰۱۹۸ این را submit میکنم بعد Apply را میزنم تا وضعیت trunk خود را ببینم sip show peers را میزنم sip trunk test گزینه سوم میشود.
20198 ok 20 میلی ثانیهای داده است. چک میکنیم که ببینیم اینجا در شبکه چیزی داریم unreachable هست و Qualify به ما ok میدهد. ۲۰۱۹۸ را به صورت unreachable نشان میدهد یعنی همچین چیزی وجود ندارد.
آیا unreachable نشان دهنده رجیستر شدن است؟
خیر چون وجود ندارد و ping را ندارد قابل register شدن نیست. اینجا من دستور ping را هم به صورت ping 192.168.20.198 وارد میکنم. دستور ping و دستورات linux در محیط Asterisk جواب نمیدهند. یعنی اگر خواستید این کار را بکنید اول خارج شوید که من پیشنهاد میکنم که یک Session جدید باز کنید.
اینجا محیط linux هست و در اینجا دستورات linux را میتوانیم اجرا کنیم. Ping 192.168.20.198 را وارد میکنیم. قاعدتاً نباید اینجا ping داشته باشیم. ۲۰.۱۵۰ یک مرکز تلفن ایزابل دیگر است که ping آن را داریم و موقعی که بر روی Sip trunk خود ۲۰.۱۵۰ را بگذاریم ping ما نشان داده میشود و وضعیت trunk ما ok میشود.
خوب در اینجا میتوانیم وضعیت ترانک را ببینیم. حالا اگر sip show peers را بزنیم، میبینیم که ۲۰.۱۵۰ ok شده است.
اگر Qualify را برداریم چه اتفاقی میافتد؟
دوستان این وضعیت trunk که در اینجا به ما نشان میدهد و میگوید ok هست دقیقاً در اپراتور پنل sip trunk test که ساختیم موقعی که به رنگ نارنجی پررنگ در میآید یعنی وضعیت status آن ok است و به معنای register شدن نیست.
زیرا trunk اصلاً قابلیت register ندارد و چون status آن ok هست و ping مرکز مقابل را دارد و میتواند با ۵۰۶۰ ارتباط برقرار کند، اینجا به رنگ نارنجی دیده میشود. پس اگر در sip show peers استاتوس ok باشد اینجا هم به رنگ نارنجی پررنگ تبدیل میشود.
حالا اگر از روی سیپ ترانک Qualify برداشته شود چه اتفاقی میافتد؟
Qualify را برمیداریم submit را انتخاب و در نهایت ok و Apply را میزنم. در حال حاضر Qualify ندارد. مجدداً sip show peers را میزنم و اینجا میبینم که Sip trunk test در حالت unmonitored شده است.
پس اگر Qualify را برداریم، وضعیت trunk ما به صورت unmonitored در میآید بدین معنا که Qualify نگذاشتهاید و نمیتواند سرور مقابل را چک کند و ارتباط را بررسی کند. انتظار داریم که در قسمت operator pannel هم سیپ ترانک ما از رنگ نارنجی خارج شود.
پس وقتی که trunk به رنگ نارنجی پررنگ باشد یعنی Qualify را گذاشتیم و مرکز مقابل را میبیند و به معنای register شدن نیست. زمانی که Qualify را برداریم هم اینجا به رنگ خاموش یا نارنجی کمرنگ درمیآید پس این نکته را هم مدنظر قرار دهید. اما به صورت کلی Qualify را چه بگذارید و چه نگذارید در عملکرد هیچ تاثیری ندارد.
یعنی شما بدون Qualify هم میتوانید Sip trunk خود را راهاندازی کنید. به سراغ بخشهای بعدی آموزش میرویم.
سلام
من اقدامات لازم جهت راه اندازی رو کامل انجام دادم
اکستنش ها ایجاد شده است
IVR تعریف شده
ترانک با تعاریف
host=tci sip ip
type=friend
qualify=yes
nat=yes
relaxdtmf=yes
insecure=very
dtmfmode=rfc2833
context=from-trunk ایجاد شده
تنظیمات مربوط به outboundroute و inboundroute هم انجام شده
2تا مشکل دارم
1- تماس های خروجی با تاخیر حدودا ۱۰ ثانیه ای میرسه به مرحله بوق خوردن
2- تماس های ورودی اصلا وصل نمیشه و همون ابتدای تماس call ended میشه
با سلام
دلیل تاخیر در تماس های خروجی قاعدتا به تلفن ویپ مرتبط هست که به زمان time out مربوط می شود
می توانید از طریق تلفن ویپ مدت زمان را کاهش دهید که راهکار خیلی خوبی نیست
بهترین کار این است که dial plan بنویسید برای تلفن های ویپ
آموزش این کار بصورت ویدئویی ضبط شده
https://pbxshop.co/ip-phone-panasonic/
https://pbxshop.co/installing-internals-on-the-ip-phone-grand-stream/
اما در ارتباط با تماس های ورودی به ایزابل
insecure=port,invite بگذارید
و NAT را در روتر بررسی کنید البته اگر از روتر استفاده کردید
و همچنین در بخش security به پکت های ناشناس اجازه ورود دهید