سیپ ترانک

سیپ ترانکSIP Trunk چیست

همانطور که از اسم SIP Trunk سیپ ترانک مشخص است جهت برقراری ارتباط تلفنی ما بین دو یا چند PBX یا مرکز تلفن که پروتکل SIP را پشتیبانی نمایند استفاده می گردد. از نظر لغوی Trunk به معنی تنه درخت و یا حتی به عنوان لوله نیز معنی شده است که اگر با مفهوم ترانک آشنا باشیم درک این معانی لقوی می تواند آسان تر باشد چون به طور مثال اگر دو مرکز تلفن VoIP را به ظرف آب تشبیه کنید با استفاده از یک لوله یا ترانک می توانید آب را ما بین دو ظرف منتقل کنید. مفهوم ترانک در Network نیز بسیار پر کاربرد است و ارتباط بین دو سوئیچ از طریق ترانک برقرار می گردد.

SIP Trunk سیپ ترانک مفهوم جدیدی است که بعد از مطرح شدن مرکز تلفن های IP مورد توجه کاربران قرار گرفت. مرکز تلفن های اولیه چون از IP پشتیبانی نمی کردند در نتیجه SIP Trunk سیپ ترانک را نیز پشتیبانی نمی کردند و از Trunk های آنالوگ یا دیجیتال برای برقراری تماس استفاده می کردند با پیشرفت مرکز تلفن ها و پشتیبانی از IP نیاز به برقراری ارتباط ما بین مرکز تلفن های مختلف بیش از پیش احساس می شد به طوری که خیلی از شرکت ها به فکر ایجاد یک پروتکل اختصاصی جهت ارتباط بین مراکز تلفن خود افتادند ولی این راهکار خیلی موثر نبود چون برقراری ارتباط ما بین دو مرکز تلفن با برندهای مختلف با مشکل مواجه می شد برای همین با محبوب شدن پروتکل SIP شرکت های سازنده مرکز تلفن نیز به این فکر افتادند که SIP Trunk سیپ ترانک را جایگزین Trunk های اختصاصی خود کنند البته در حال حاضر و حتی با بالا رفتن محبوبیت SIP Trunk سیپ ترانک همچنان مرکز تلفن های مختلف امکان برقراری ترانک با پروتکل اختصاصی خود را حفظ کرده اند. به طور مثال برندهایی مانند Panasonic , Mitel , Alcatel , NEC و … علاوه بر SIP Trunk سیپ ترانک از Proprietary IP Trunk نیز پشتیبانی می کنند.

قبل از مطرح شدن پروتکل SIP و محبوبیت جهانی آن بسیاری از مراکز تلفن از H323 به عنوان پروتکل استاندارد بهره می بردند. H323 پروتکل بسیار قدرتمندی می باشد که همچنان با گذشت چندین سال از عرضه آن همچنان در بسیاری از شبکه ها از آن استفاده می گردد. پر کاربرد ترین عرصه در استفاده از این پروتکل ، شبکه تلفن های اینترنتی می باشد که وظیفه آنها برقراری تماس تلفنی بین کشورهای مختلف می باشد که به این شرکت های اصطلاحاً VoIP Carrier گفته می شود که با استفاده از Soft Switch و VoIP Gateway های مختلف این ارتباط تلفنی را در سرتاسر جهان برقرار می نمایند

در ادامه قصد داریم از لحاظ فنی برقراری SIP Trunk سیپ ترانک با مرکز تلفن های مختلف را مورد بررسی قرار دهیم

آشنایی با پروتکل SIP

Session Initiation Protocol یا SIP یک سیسگنالینگ پروتکل جهت برقراری و کنترل یک ارتباط VoIP می باشد. روش کار این پروتکل بر اساس Request/Response و ماهیت آن بر اساس Text می باشد و به همین خاطر این پروتکل بسیار شبیه HTTP می باشد.

به طور کلی تمامی SIP Message ها به دو دسته تقسیم می شوند

  • Request
  • Response

هر Request شامل یک سری Method می باشد که این Method ها همیشه در اولین خط Request ظاهر می شوند. علاوه بر Method همیشه یک SIP URI که نشان دهنده محل ارسال Request و در واقع آدرس مقصد می باشد نیز قرار دارد. به طور مشابه در خط اول Response همیشه یک Response Code که نشان دهنده وضعیت سمت مقابل است ، قرار دارد.

SIP Trunk

به طور کلی Request وظیفه برقراری ارتباط و Response وظیفه تکمیل ارتباط را بر عهده دارد و مشخص می کند که ارتباط موفق یا ناموفق بوده است. این نکته مهم است که حتی SIP Message هایی مانند ACK , BYE که جهت تایید برقراری تماس و یا تایید قطع ارتباط ارسال می شوند به عنوان SIP Request محسوب می گردند. در حال حاضر شش Method به عنوان متود اصلی یا Core Method شناخته می شوند. Method های اصلی SIP به شرح ذیل هستند:

  • Invite
  • BYE
  • Register
  • Cancel
  • ACK
  • Option

Method های فرعی به شرح ذیل می باشند:

  • Subscribe
  • Notify
  • Publish
  • Refer
  • Info
  • Update
  • PRACK
  • Message

همانطور که پیشتر به آن اشاره شد SIP Response توسط User Agent Server یا همان UAS جهت نشان دادن نتیجه Request دریافتی ارسال می گردد.

SIP Trunk

  • 1xx — جهت نشان دادن اینکه درخواست معتبر بوده و در حال پردازش است.
  • 2xx — یکی از SIP Response های مهم جهت پاسخ به Invite استفاده می شود و نشان از موفقیت در برقراری ارتباط می باشد. پر کاربردترین کد مربوط به این Response ، کد 200 یا همان OK است.
  • 3xx — نشان دهنده این است که جهت تکمیل SIP Request تماس می بایست Redirect شود ، در واقع Request باید با یک مقصد جدید تکمیل شود.
  • 4xx — نشان دهنده این است که Request مربوط به SIP به دلایل مختلف نمی تواند تکمیل شود. کد 400 یا Bad Request از پر کاربردترین کد مربوط به این Response می باشد.
  • 5xx — این Response نشان دهنده این است که سرور در پاسخ به درخواست SIP به ظاهر معتبر Client دچار مشکل داخلی یا Internal Server Error شده است.
  • 6xx — این SIP Response مشخص می کند که درخواست توسط هیچ سروری قابل پاسخگویی نیست و نشان دهنده یک مشکل سراسری است به طور مثال تمامی تلفن های مقصد اشغال هستند

راه اندازی SIP Trunk سیپ ترانک

در این پست قصد داریم راه اندازی SIP Trunk بین روتر Cisco و مرکز تلفن Elastix و همچنین بین تجهیزات Cisco را به طور کامل شرح دهیم. در پست های قبلی در خصوص راه اندازی سیپ ترانک مخابرات توضیحاتی ارائه گردید که در اینجا قصد داریم آنها را تکمیل کنیم.

برقراری SIP Trunk با Elastix

قبل از اینکه وارد مباحث فنی شویم لازم به ذکر است که نرم افزار Elastix توسط شرکت 3CX خریداری گردید و تیم توسعه دهنده آن مرکز تلفن Issabel را با شکل و شمایل جدید به بازار معرفی نمود ولی با توجه به محبوبیت Elastix همچنان خیلی از شرکت ها از این نرم افزار محبوب جهت راه اندازی سیستم تلفنی استفاده می کنند. توضیحاتی که در ادامه در خصوص راه اندازی سیپ ترانک با روتر Cisco ارائه می گردد قابل استفاده برای Elastix , Issabel و همچنین Asterisk می باشد. Asterisk به عنوان محبوب ترین مرکز تلفن Open Source که مبتنی بر IP می باشد ، Core و هسته اصلی Issabel و Elastix را تشکیل می دهد.

ابتدا تنظیمات مربوط به روتر سیسکو را مورد بررسی قرار می دهیم. قبل از انجام تنظیمات اصلی که نوشتن Dial-Peer می باشد می بایست یک سری از تنظیمات اولیه و در واقع آماده سازی روتر جهت برقراری SIP Trunk را انجام دهیم.

1-مشخص کردن Voice Codec

Codec یکی از مهمترین پارامترها در خصوص راه اندازی سیپ ترانک و به طور کلی یکی از نکات اساسی در برقراری موفق یک ارتباط VoIP می باشد. با استفاده از دستور Codec یا Voice-class Codec که داخل Dial-peer اعمال می گردد می توانیم کدک مورد نظرمان را تعریف نماییم. در صورتی که از دستور Codec استفاده کنیم به طور مثال:

Codec g711ulaw

این بدین معنی است که تماس می بایست فقط با کدک مذکور Match شود ولی در صورتیکه از دستور Voice-class codec استفاده کنیم این امکان فراهم می گردد که بتوانیم چندین Codec تعریف کنیم. اعمال این دستور دو مرحله دارد ابتدا آن را تعریف می کنیم و سپس داخل Dial-Peer آن را اعمال می کنیم به طور مثال:

voice class codec 1
codec preference 1 g711ulaw
codec preference 2 g711alaw

Dial-peer voice 1 voip
voice-class codec 1

در مثال بالا تماس می تواند با هر دو کدک ulaw یا alaw بسته به شرایط match شود.

2-تنظیمات مربوط به Toll Fraud

در IOS نسخه قبل از  (2)15.1 این امکان وجود داشت که تماس های ورودی بدون هیچ محدودیتی وارد روتر شوند و توسط Voice Gateway مورد پردازش قرار گیرند ولی از IOS نسخه (2)15.1 به بعد قبل از اینکه تماس وارد روتر شود باید توسط روتر Authenticate شود و روتر به آدرسی که تماس از آن ارسال شذه Trust داشته باشد. این نکته در خصوص راه اندازی SIP Trunk بسیار مهم است چون اگر این تنظیم تادیده گرفته شود تماس های ورودی از سمت سیپ ترانک ناموفق خواهد بود. این امکان وجود دارد که یک IP خاص یا یک رنج IP را به Trust List مان اضافه کنیم یا به طور کامل Toll-Fraud Application را غیر فعال کنیم به طور مثال:

voice service voip
ip address trusted list
ipv4 192.168.1.100 255.255.255.255
ipv4 192.168.2.0.255.255.0

دستورات بالا تنها IP:192.168.1.100 و رنج 192.168.2.0/24 را داخل Trust list مربوط به Voice Gateway قرار می دهد. ولی در مثال زیر Toll-fraud به طور کامل غیر فعال می گردد.

voice service voip
no ip address trusted authenticate

روتر Cisco به صورت اتوماتیک IP آدرسهایی که داخل Dial-peer و توسط دستور Session-target مشخص شده اند را به لیست Trusted اضافه می کند که با استفاده از دستور

show ip address trusted list

آدرس های Trusted و در واقع آدرسهایی که می توانند برای SIP Trunk تماس ارسال کنند را نشان می دهد.

3-تنظیمات Allow Connection

به طور پیش فرض برقراری تماس بین پروتکل های مختلف غیر فعال می باشد حتی بین دو پرتکل یکسان مثل SIP نیز امکان پذیر نمی باشد و برای اینکه ارتباط سیپ ترانک به صورت موفق برقرار گردد نیاز است که از Configuration Mode مربوط به Voice Service VoIP این ارتیاط فعال گردد.

voice service voip
allow-connections sip to sip

در صورتی که لازم باشد تماس از مبدا SIP بخواهد به مقصد H323 برقرار گردد دستور به شکل زیر تغییر می یابد:

voice service voip
allow-connections sip to h323

این نکته مهم است که در صورتی که در SIP Trunk جهت تماس تغییر کرد و نیاز شد که از مبدا H323 به SIP برقرار گردد دستور به شکل زیر تغییر می یابد:

voice service voip
allow-connections  h323 to sip

پس از انجام مراحل بالا پیش نیازهای لازم جهت راه اندازی سیپ ترانک به پایان می رسد و وارد مرحله اصلی می شویم که تعریف Dial-Peer می باشد.

تعریف Dial Peer

نوشتن Dial Peer در واقع هسته اصلی راه اندازی SIP Trunk بر روی روتر سیسکو  می باشد که با نوشتن آن داخل تنظیمات روتر Role یا نقش Dial Peer شکل خواهد گرفت توجه داشته باشید که در صورتی امکان نوشتن دستور Dial Peer بر روی روترهای ISR G2 فراهم خواهد شد که لایسنس UCK9 بر روی روتر نصب شده باشد و برای روتر های ISR G1 که شامل رونرهای 2800 و 3800 می باشند و IOS های سری 12 را پشتیبانی می کنند ، IOS حتماً از نوع Advance Enterprise یا Voice Support باشد. دو نکته مهم و اساسی در خصوص نوشتن Dial-Peer وجود دارد:

Pots Dial Peer و VoIP Dial Peer

به طور کلی دو نوع Dial Peer وجود دارد

  • Pots Dial-Peer این نوع از Dial-peer برای تماس هایی می باشد که از سمت PSTN آمده باشند یا نیاز است که به سمت PSTN ارسال گردند. PSTN می تواند شامل خط E1 یا خطوط شهری باشد.
  • VoIP Dial-Peer این نوع از Dial-Peer برای تماس هایی که از یک PBX یا مرکز تماس VoIP Support دیگر ارسال یا دریافت می شود استفاده می گردد به طور مثال در صورتی که سیپ ترانک ما بین Elastix یا CUCM باشد از Dial-Peer VoIP استفاده می کنیم.
Incoming dial-peer و Outgoing dial-peer

نکته مهم دیگر در خصوص Dial Peer ها این است که هر تماس که وارد روتر می شود شامل دو عدد call leg است ، Inbound call leg و outbound call leg که باید متناظر با این call leg ها و به ترتیب Incoming dial-peer و Outgoing dial-peer داخل روتر ایجاد گردد در نتیجه برای برقراری سیپ ترانک به حداقل دو عدد Dial-peer نیاز داریم

پنج حالت مختلف ممکن است رخ دهد تا یک تماس با Incoming Dial-Peer منطبق گردد :

1-شماره مقصد با دستور Incoming Called-number منطبق گردد.

2-شماره مبدا با دستور answer-address منطبق گردد

3-شماره مبدا با دستور Destination-pattern منطبق گردد.

4-در صورتی که تماس از طریق PSTN وارد روتر شود با دستور Port منطبق می گردد.

5-در نهایت اگر هیچ کدام از حالت های بالا رخ نداد با Dial-Peer صفر Match خواهد شد که پیشنهاد می گردد تنظیمات به گونه ای صورت گیرد که تماس با یک Incoming dial-peer به غیر از Dial peer صفر match شود چون کاربر یا مدیر سیستم هیچ گونه دخل و تصرفی در این Dial-peer نمی تواند انجام دهد و قابل Config نیست به طور مثال تنظیم مربوط به Codec یا DTMF Relay را نمی توان بر روی Dial-peer 0 انجام داد.

بر خلاف Incoming dial-peer برای اینکه تماس با Outgoing dial-peer منطبق گردد تنها لازم است که از دستور Destination Pattern استفاده شود و در نهایت با استفاده از دستور Session target به سمت مقصد ارسال می گردد. جهت درک هر چه بیشتر توضیحات بالا می توانید این لینک را مشاهده کنید. در ادامه یک مثال واقعی از یک sip trunk بین روتر سیسکو و Elastix را بررسی می کنیم. در این مثال فرض می کنیم بر روی روتر سیسکو سیستم تلفنی CME نصب و راه اندازی شده است و شامل داخلی رنج 1xx می باشند و Elastix شامل داخلی رنج 2xx می باشند.

Router  IP Address:192.168.1.1  exten:1xx

Elastix   IP Address:192.168.1.2  exten:2xx

تنطیمات روتر سیسکو جهت برقراری سیپ ترانک به شرح ذیل است. Dial-Peer 1 جهت دریافت تماس از Elastix و در واقع یک Incoming Dial-Peer می باشد و Dial-Peer 2 جهت ارسال تماس به Elastix و دراقع یک Outbound Dial-Peer می باشد.

dial-peer voice 1 voip
answer-address 2..$
session protocol sipv2
codec g711ulaw
dtmf-relay rtp-nte
no vad

—————————

dial-peer voice 2 voip
destination-pattern 2..$
session protocol sipv2
session target ipv4:192.168.1.2
dtmf-relay rtp-nte
codec g711ulaw
no vad

همانطور که در دستورات بالا مشخص است Dial-peer 1 چون از نوع Incoming می باشد به دستور Session target نیاز ندارد چون نمی خواهد تماس را به مقصدی ارسال نماید. در این dial-peer می توانستیم به جای Answer Address از دستور Incoming Called-number نیز استفاده کنیم که در این صورت دستور به شکل زیر تغییر می کرد:

incoming called-number 1..$

این امکان نیز وجود دارد که Dial-peer یک و دو با یکدیگر ادغام گردد و تبدیل به یک Dial Peer شود.

dial-peer voice 1 voip
answer-address 2..$
destination-pattern 2..$
session protocol sipv2
codec g711ulaw
dtmf-relay rtp-nte
no vad

در خصوص تنظیمات Elastix یا Issabel تنها کافی است یک Trunk با مشخصات ذیل تعریف گردد:

[SIP-Trunk]
disallow=all
host=192.168.1.1
type=friend
insecure=port,invite
allow=ulaw
allow=alaw
dtmfmode=rfc2833
context=from-internal

در نهایت در قسمت Outbound pattern یک pattern به صورت 1xx جهت ارسال تماس به سمت روتر cisco نوشته شود و ترانک مربوطه نیز SIP Trunk ی که در بالا ایجاد شده ، انتخاب گردد.

جهت راه اندازی سیپ ترانک با ما تماس بگیرید.

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *