مجله ایرانیکاسرورآموزش سرور، هاست، وردپرس و شبکه
آموزشی

چرا تلفن سیسکو رجیستر است اما تماس ورودی نمی‌آید؟ علت و روش رفع مشکل NAT و Route

گاهی Cisco IP Phone بدون هیچ خطایی Registered است، تماس خروجی هم برقرار می‌کند، اما وقتی از داخلی دیگر یا از بیرون سازمان با آن تماس می‌گیرید تلفن اصلاً زنگ نمی‌خورد. این وضعیت یکی…

چرا تلفن سیسکو رجیستر است اما تماس ورودی نمی‌آید؟ علت و روش رفع مشکل NAT و Route
خلاصه سریع این آموزش

گاهی Cisco IP Phone بدون هیچ خطایی Registered است، تماس خروجی هم برقرار می‌کند، اما وقتی از داخلی دیگر یا از بیرون سازمان با آن تماس می‌گیرید تلفن اصلاً زنگ…

۲۲ دقیقه مطالعه ۰ دیدگاه ۲۲ مهر ۱۴۰۵ آخرین به‌روزرسانی
گاهی Cisco IP Phone بدون هیچ خطایی Registered است، تماس خروجی هم برقرار می‌کند، اما وقتی از داخلی دیگر یا از بیرون سازمان با آن تماس می‌گیرید تلفن اصلاً زنگ نمی‌خورد. این وضعیت یکی از خطاهای گیج‌کننده VoIP است، چون عبارت Registered باعث می‌شود تصور کنیم مسیر تماس کاملاً سالم است؛ در حالی که Registration فقط ثابت می‌کند Phone توانسته با Registrar ارتباط برقرار کند.

برای تماس ورودی یک مرحله دیگر لازم است: PBX باید بداند درخواست INVITE را به کدام Contact، IP و Port بفرستد. سپس NAT و Firewall باید اجازه دهند INVITE به Cisco برسد و خود Phone نیز نباید تماس را به‌دلیل DND، Call Forward، وضعیت Line یا Policy رد کند.

اگر Cisco Enterprise روی CUCM دارید، مسیر متفاوت است. ممکن است Phone کاملاً Registered باشد اما SIP Trunk یا Gateway به‌دلیل Calling Search Space نامناسب نتواند Partition داخلی را ببیند، شماره ورودی با DN تطبیق نداشته باشد یا Translation Pattern اشتباه باشد.

در این راهنما به‌جای تغییر تصادفی تنظیمات، تماس را مرحله‌به‌مرحله دنبال می‌کنیم: از Provider و PBX تا Route، Contact، NAT و در نهایت خود Cisco Phone. هدف این است که دقیقاً مشخص شود تماس در کدام نقطه متوقف می‌شود.

فهرست مطالب

Registered بودن دقیقاً چه چیزی را ثابت می‌کند؟

در یک Cisco MPP روی Asterisk یا FreePBX، Registration معمولاً چیزی شبیه این است:

Cisco Phone              PBX
     |                     |
     |----- REGISTER ----->|
     |<---- 401 -----------|
     |                     |
     |-- REGISTER + Auth ->|
     |<---- 200 OK --------|
     |                     |

این روند نشان می‌دهد PBX Registration را پذیرفته است.

اما برای تماس ورودی باید اتفاق دیگری بیفتد:

Caller
   |
   | INVITE
   v
PBX
   |
   | Route lookup
   |
   | Find Contact for 201
   |
   | INVITE
   v
Cisco Phone

اگر هر کدام از این مراحل خراب باشد، Phone می‌تواند Registered باقی بماند اما هیچ Ring دریافت نکند.

اول مشخص کنید مشکل دقیقاً چه نوعی است

تفکیک سناریوهای تماس ورودی
وضعیت تمرکز اصلی عیب‌یابی
داخلی به Cisco نمی‌رسد Contact، Extension Route، DND و PBX
داخلی کار می‌کند ولی PSTN نه Trunk، DID، Inbound Route یا CUCM Routing
فقط بعضی شماره‌ها نمی‌رسند DID Pattern، Translation، Provider یا CSS
فقط Cisco Remote مشکل دارد NAT، Contact، Firewall و Port Mapping
Phone زنگ نمی‌زند ولی Voicemail فعال می‌شود DND، Call Forward یا Line State
INVITE به Phone می‌رسد ولی رد می‌شود Response Code و تنظیمات خود Cisco

درخت تصمیم اصلی عیب‌یابی

برای هر تماس خراب فقط این سؤال‌ها را به ترتیب پاسخ دهید.

Decision Tree تماس ورودی Cisco
سؤال اگر پاسخ خیر است
INVITE از Provider به PBX رسیده؟ Provider، NAT، Firewall یا Trunk
PBX DID درست را دیده؟ DID Format یا Provider
Inbound Route مقصد صحیح دارد؟ Route را اصلاح کنید
Cisco Contact معتبر است؟ Registration/NAT/Contact
PBX برای Cisco INVITE ارسال می‌کند؟ Dialplan یا Endpoint Mapping
INVITE به خود Phone می‌رسد؟ NAT، Firewall یا Contact
Phone پاسخ 180 Ringing می‌دهد؟ DND، Forward، Busy یا Line State

شاخه اول: Cisco MPP روی Asterisk یا FreePBX

اگر Cisco 8841، 8851 یا مدل دیگری با MPP/3PCC دارید و روی Asterisk یا FreePBX رجیستر شده است، اولین بخش مهم Contact ثبت‌شده برای Extension است.

Contact چیست و چرا برای تماس ورودی مهم است؟

هنگام REGISTER، تلفن یک Contact URI به PBX معرفی می‌کند.

مثلاً:

Contact: <sip:201@192.168.20.45:5060>

Asterisk این Contact را داخل AoR مربوط به 201 ذخیره می‌کند.

وقتی کسی با 201 تماس می‌گیرد، Asterisk از همین Contact برای پیدا کردن مقصد SIP استفاده می‌کند.

Contact فعلی را روی Asterisk ببینید

asterisk -rx "pjsip show contacts"

یا برای Extension مشخص:

asterisk -rx "pjsip show aor 201"

و Endpoint:

asterisk -rx "pjsip show endpoint 201"

Registered است اما Contact اشتباه است

این یکی از کلاسیک‌ترین سناریوهاست.

Cisco در شبکه Remote این IP را دارد:

192.168.1.50

و پشت NAT با Public IP زیر دیده می‌شود:

203.0.113.25:42816

اما PBX Contact را این‌طور ذخیره کرده است:

sip:201@192.168.1.50:5060

Asterisk روی اینترنت نمی‌تواند INVITE جدید را به 192.168.1.50 ارسال کند.

در نتیجه Phone همچنان Registered دیده می‌شود ولی تماس ورودی به آن نمی‌رسد.

rewrite_contact در PJSIP برای همین مشکل است

Asterisk برای Endpoint پشت NAT گزینه زیر را دارد:

rewrite_contact=yes

این گزینه باعث می‌شود Contact برای درخواست‌های بعدی با IP و Port واقعی مبدأ SIP بازنویسی شود.

برای یک Cisco Remote معمولاً NAT Profile نیازمند بررسی این گزینه‌هاست:

rewrite_contact=yes
force_rport=yes
rtp_symmetric=yes

اما برای مشکل «تماس ورودی اصلاً به Phone نمی‌رسد»، مهم‌ترین مورد از این سه گزینه معمولاً Contact و Signaling است؛ `rtp_symmetric` بیشتر روی Media اثر دارد.

Contact قدیمی هم می‌تواند مشکل بسازد

فرض کنید Router بعد از مدتی NAT Port تلفن را از:

203.0.113.25:42816

به این مقدار تغییر دهد:

203.0.113.25:51742

اگر AoR چند Contact قدیمی داشته باشد، PBX ممکن است مسیر نامناسبی برای تماس انتخاب کند.

برای یک Cisco معمولاً چند Contact لازم است؟

اگر Extension فقط روی یک Phone استفاده می‌شود، طراحی ساده می‌تواند چنین باشد:

max_contacts=1
remove_existing=yes

Asterisk نیز هشدار می‌دهد هنگام استفاده از `rewrite_contact`، تغییر Source Port می‌تواند Contact جدید ایجاد کند و با Max Contacts تداخل داشته باشد؛ `remove_existing` یا `remove_unavailable` می‌توانند در طراحی مناسب به پاک‌سازی Contactهای قدیمی کمک کنند.

Registration Expires و NAT Mapping را فراموش نکنید

ممکن است Phone هر یک ساعت REGISTER کند ولی Router NAT Binding را زودتر حذف کند.

در این شرایط روی PBX هنوز Registration وجود دارد، ولی INVITE جدید به Mapping منقضی‌شده ارسال می‌شود.

این سناریو معمولاً چنین الگویی دارد:

نشانه NAT Mapping منقضی‌شده
رفتار نتیجه
بلافاصله بعد از Register تماس ورودی کار می‌کند
بعد از چند دقیقه Idle تماس ورودی قطع می‌شود
بعد از تماس خروجی مدتی دوباره درست می‌شود

اگر چنین الگویی دارید، Keepalive، Registration Interval و NAT Timeout را هم‌زمان بررسی کنید.

مرحله بعد: آیا PBX واقعاً INVITE را به Cisco ارسال می‌کند؟

روی Asterisk CLI:

asterisk -rvvv

سپس:

pjsip set logger on

حالا از داخلی دیگری با Cisco تماس بگیرید.

سناریوی سالم

PBX -------- INVITE --------> Cisco
PBX <------- 100 Trying ---- Cisco
PBX <------- 180 Ringing --- Cisco
PBX <------- 200 OK -------- Cisco

اگر 180 Ringing می‌بینید، تماس تا خود Phone رسیده است.

در آن مرحله مشکل دیگر Inbound Route یا Contact نیست.

اگر PBX INVITE می‌فرستد ولی هیچ پاسخی نمی‌گیرد

این وضعیت معمولاً مسیر را به این موارد محدود می‌کند:

Contact اشتباه، NAT، Firewall، Route شبکه، SIP ALG یا بسته‌شدن Mapping.

Packet Capture روی Phone و PBX بگیرید و همان INVITE را در دو سمت مقایسه کنید.

اگر Cisco با 486 Busy Here پاسخ می‌دهد

Phone INVITE را دریافت کرده اما Line را Busy تشخیص داده است.

در این مرحله بررسی کنید:

آیا تماس دیگری فعال است؟

Call Waiting غیرفعال شده؟

حد تماس Line پر شده؟

Call Forward Busy فعال است؟

یا PBX Device State را Busy می‌بیند؟

اگر 480 یا 603 دریافت می‌کنید

بسته به PBX، Firmware و Feature فعال، DND یا Policyهای Call Handling ممکن است پاسخ‌هایی مانند Temporarily Unavailable یا Decline ایجاد کنند.

این Response Codeها را به‌عنوان سرنخ ببینید، نه یک تشخیص قطعی مستقل از Log تلفن.

DND روی Cisco MPP را بررسی کنید

Cisco MPP اجازه می‌دهد Do Not Disturb روی همه Lineها یا فقط یک Line مشخص فعال شود.

اگر DND روشن باشد، کاربر ممکن است هیچ Ring عادی دریافت نکند و تماس بسته به تنظیمات به مقصد دیگری مثل Voicemail هدایت شود.

روی صفحه تلفن دنبال عبارت:

Do not disturb

یا آیکن DND بگردید.

DND مخصوص همان Line را هم بررسی کنید

روی Multiline Phone ممکن است DND فقط برای Extension مشکل‌دار فعال باشد.

در منوی Phone:

User preferences → Call preferences → Do not disturb

Line مربوط را بررسی کنید.

Feature Key Sync می‌تواند وضعیت DND را از PBX بگیرد

در MPP اگر Feature Key Sync یا FKS فعال باشد، وضعیت DND می‌تواند میان Phone و Server همگام شود.

یعنی فقط نگاه‌کردن به یک Setting محلی همیشه کافی نیست؛ PBX نیز ممکن است وضعیت Feature را مدیریت کند.

Call Forward All را بررسی کنید

اگر تماس هرگز روی Cisco Ring نمی‌شود ولی بلافاصله به Voicemail یا Extension دیگری می‌رود، یکی از اولین مظنون‌ها Call Forward All است.

در Cisco MPP:

User Login → Voice → User → Call Forward

موارد زیر را بررسی کنید:

Cfwd All
Cfwd All Dest
Cfwd Busy
Cfwd Busy Dest
Cfwd No Answer
Cfwd No Ans Dest

FKS و XSI می‌توانند Call Forward محلی را Override کنند

در MPP جدید، Cisco برای Call Forward سه منبع وضعیت دارد:

FKS، XSI و Local Setting.

در مستند Cisco اولویت به این شکل تعریف شده است:

FKS
 ↓
XSI
 ↓
Local

پس ممکن است Local Setting را خاموش ببینید اما Server Sync رفتار تماس را تغییر داده باشد.

Line درست Registered است؟

در Cisco 8841 یا 8851 ممکن است چند Extension داشته باشید.

عبارت Registered روی یک Line ثابت نمی‌کند همان Extensionی که تماس می‌گیرد Registered است.

برای مثال:

مثال Multiline
Line Extension Status
Line 1 201 Registered
Line 2 202 Not Registered

اگر تماس برای 202 می‌آید، سبز بودن Line 1 هیچ کمکی نمی‌کند.

تماس داخلی کار می‌کند ولی تماس بیرونی نه

این یکی از بهترین سرنخ‌هاست.

اگر:

Extension 202 → Cisco 201 = OK
PSTN DID → Cisco 201       = FAIL

خود Cisco، Contact و Line احتمالاً سالم‌اند.

تمرکز را به Trunk و Inbound Route منتقل کنید.

مرحله بعد: آیا Provider اصلاً INVITE را به FreePBX می‌فرستد؟

در Asterisk:

pjsip set logger on

از موبایل با DID تماس بگیرید.

اولین سؤال:

آیا INVITE Provider داخل CLI دیده می‌شود؟

اگر INVITE اصلاً وارد PBX نمی‌شود

در این مرحله Cisco Phone تقریباً از عیب‌یابی خارج است.

بررسی کنید:

Trunk Provider، Public IP، Port Forward، Firewall، Provider ACL و Registration خود Trunk.

اگر INVITE وارد PBX می‌شود، DID واقعی را بخوانید

ممکن است شما Inbound Route را برای این شماره ساخته باشید:

02191302467

اما Provider شماره را این‌طور تحویل دهد:

982191302467

یا:

+982191302467

Route شما در این حالت ممکن است Match نشود.

Inbound Route در FreePBX را بررسی کنید

مسیر معمول:

Connectivity → Inbound Routes

در Route بررسی کنید:

موارد اصلی Inbound Route
فیلد بررسی
DID Number با فرمت واقعی Provider یکسان باشد
CallerID Number اگر نیاز ندارید بی‌دلیل محدود نشده باشد
Destination Extension صحیح Cisco باشد
Time Conditions تماس به مسیر دیگری هدایت نشود

FreePBX دقیقاً از Inbound Route برای تعیین مقصد تماس‌هایی استفاده می‌کند که از Trunk وارد PBX شده‌اند.

Any/Any Route فقط برای تشخیص موقت

اگر نمی‌دانید Provider DID را با چه فرمتی ارسال می‌کند، می‌توانید در یک محیط کنترل‌شده موقتاً Route بدون DID Match بسازید و آن را به Extension آزمایشی بفرستید.

اگر تماس ناگهان برقرار شد، مشکل از DID Matching است.

این Route عمومی را روی PBX دارای چند Trunk به‌عنوان راه‌حل دائمی رها نکنید، چون ممکن است تماس‌های دیگر را اشتباه Capture کند.

اگر تماس وارد Asterisk می‌شود ولی Endpoint Match نمی‌شود

برای Trunkهای PJSIP، Asterisk باید بداند INVITE ورودی متعلق به کدام Endpoint است.

این کار می‌تواند بر اساس Source IP انجام شود.

نمونه:

[provider-identify]
type=identify
endpoint=provider
match=203.0.113.50

اگر Provider چند IP دارد، تمام Sourceهای معتبر باید مطابق طراحی Trunk در نظر گرفته شوند.

Registered Trunk هم می‌تواند تماس ورودی نداشته باشد

Registration خروجی PBX به Provider و شناسایی INVITE ورودی دو موضوع جدا هستند.

Asterisk برای Outbound Registration حتی گزینه‌هایی مثل `endpoint` و `line` دارد تا تماس‌های مرتبط با Registration به Endpoint مناسب نسبت داده شوند.

بنابراین دیدن:

Registered

برای Trunk نیز به‌تنهایی تضمین نمی‌کند Inbound Call Routing صحیح است.

اگر Cisco پشت NAT است ولی داخل LAN تماس ورودی دارد

مثلاً:

Cisco in office LAN → OK
Cisco remote behind NAT → FAIL

این مقایسه Contact و NAT را بسیار پررنگ می‌کند.

مقادیر `pjsip show contacts` دو دستگاه را کنار هم قرار دهید و Public Source Address و Port را مقایسه کنید.

SIP ALG می‌تواند Registration را سالم و INVITE را خراب کند

گاهی Router روی REGISTER و Contact Header دخالت می‌کند، ولی رفتار Rewrite آن برای INVITEهای بعدی سازگار نیست.

برای اثبات SIP ALG، Packet Capture در دو سمت Router بگیرید و Contact Header و مقصد INVITE را مقایسه کنید.

به‌جای خاموش‌کردن تصادفی Featureها، مشخص کنید Router دقیقاً چه چیزی را تغییر داده است.

شاخه دوم: Cisco Enterprise روی CUCM Registered است ولی Ring نمی‌خورد

اگر Cisco Enterprise Firmware دارید و Phone در CUCM با Status Registered دیده می‌شود، Contact SIP مشابه MPP اولین نقطه عیب‌یابی شما نیست.

باید مسیر Digit Analysis، DN، Partition، CSS، Translation و Trunk/Gateway را بررسی کنید.

در CUCM اولین سؤال چیست؟

آیا تماس داخلی مستقیم به DN تلفن می‌رسد؟

مثلاً:

Extension 202 → DN 201 = OK

اگر این کار می‌کند ولی PSTN Call نه، Phone و DN احتمالاً سالم‌اند و باید Ingress Trunk/Gateway Routing بررسی شود.

Partition و CSS را درست درک کنید

در CUCM، DN می‌تواند داخل یک Partition قرار داشته باشد.

مثلاً:

DN: 201
Partition: PT_INTERNAL

برای اینکه تماس ورودی از یک SIP Trunk بتواند به این DN برسد، Calling Search Space مورد استفاده تماس باید Partition مربوط را در دسترس داشته باشد.

نمونه CSS صحیح

CSS_PSTN_IN
  └── PT_INTERNAL

اگر PT_INTERNAL داخل CSS تماس ورودی نباشد، CUCM ممکن است DN 201 را برای همان Call Leg قابل دسترس نداند.

Incoming CSS روی SIP Trunk را بررسی کنید

در CUCM Administration وارد SIP Trunk شوید و بخش Inbound Calls را بررسی کنید.

Calling Search Space آن باید متناسب با طراحی Dial Plan بتواند Destination داخلی موردنظر را ببیند.

این تنظیم را بدون فکر روی CSS بسیار باز قرار ندهید؛ CSS بخشی از Class of Service و امنیت Dial Plan است.

چرا تماس داخلی کار می‌کند ولی Trunk نمی‌تواند همان DN را بگیرد؟

چون Phone داخلی ممکن است CSSای داشته باشد که PT_INTERNAL را می‌بیند، اما SIP Trunk ورودی CSS متفاوتی داشته باشد.

پس این دو تماس از نظر CUCM Caller Context یکسان نیستند.

شماره‌ای که Provider تحویل می‌دهد با DN یکی نیست

مثلاً DN تلفن:

201

است، ولی Trunk شماره کامل را می‌فرستد:

02155550201

CUCM باید بداند این Called Number چگونه به DN 201 تبدیل شود.

Translation Pattern در Inbound Routing چه زمانی لازم است؟

اگر شماره ورودی نیاز به حذف Prefix، تبدیل E.164 یا نگاشت DID به Extension دارد، Translation Pattern یکی از ابزارهای مناسب CUCM است.

مثلاً:

Incoming:
02155550201

Translated:
201

Partition خود Translation Pattern نیز باید توسط CSS تماس ورودی قابل مشاهده باشد.

Route Pattern را با Translation Pattern اشتباه نگیرید

Route Pattern معمولاً برای انتخاب مسیر تماس به Gateway، Trunk یا Route List استفاده می‌شود.

اگر PSTN Call وارد CUCM شده و قرار است مستقیم به DN داخلی برسد، مسئله اصلی معمولاً Incoming CSS، Partition و Digit Transformation است، نه ساختن یک Route Pattern تصادفی.

Route Pattern زمانی وارد مسیر می‌شود که Dialed Number پس از Digit Analysis باید دوباره به یک مسیر Off-Net، Trunk یا Route List هدایت شود.

Significant Digits و Called Number Transformation را بررسی کنید

اگر SIP Trunk یا Gateway بخشی از Digits را حذف یا Prefix اضافه می‌کند، Numberی که CUCM واقعاً تحلیل می‌کند ممکن است با چیزی که انتظار دارید متفاوت باشد.

برای عیب‌یابی ابتدا Called Party Number واقعی را از Trace یا SIP INVITE ثبت کنید.

DND روی Cisco Enterprise

Cisco Enterprise نیز DND دارد.

در CUCM می‌توان DND را با رفتارهایی مانند:

Ring Off
Call Reject

تنظیم کرد.

پس Registered بودن Phone باز هم تضمین نمی‌کند Incoming Call روی دستگاه Ring شود.

Call Forward در CUCM را بررسی کنید

روی Directory Number بررسی کنید آیا یکی از این موارد فعال شده است:

Call Forward All
Call Forward Busy
Call Forward No Answer
Call Forward Unregistered

اگر CFA فعال باشد، طبیعی است که Cisco زنگ نخورد.

Call Forward Unregistered را با مشکل Registration اشتباه نگیرید

گاهی Phone لحظه‌ای Registration را از دست می‌دهد و CUCM تماس را طبق CFUR به مقصد دیگری هدایت می‌کند.

کاربر ممکن است فقط بگوید «بعضی وقت‌ها Cisco زنگ نمی‌خورد».

در این سناریو Registration History و Eventها را هم بررسی کنید.

Shared Line و Hunt Pilot را هم در نظر بگیرید

اگر DN روی چند Device به‌صورت Shared Line قرار دارد یا تماس از Hunt Pilot وارد می‌شود، رفتار Ring فقط به Phone واحد بستگی ندارد.

Line Group، Distribution Algorithm، RNA Reversion و Login Status اعضای Hunt نیز می‌توانند مسیر تماس را تغییر دهند.

روش حرفه‌ای: پاسخ SIP را در هر مرحله ثبت کنید

برای MPP/SIP، Responseها می‌توانند سریع مشخص کنند مشکل کجاست.

Responseهای مفید هنگام تماس ورودی
Response برداشت اولیه
100 Trying Phone یا PBX درخواست را پردازش کرده
180 Ringing تماس تا Endpoint رسیده و Ring شده
200 OK تماس Answer شده
404 Not Found Destination یا Routing را بررسی کنید
480 Temporarily Unavailable Endpoint/Feature State بررسی شود
486 Busy Here Line Busy یا Call Handling
603 Decline Call Rejection یا Policy محتمل است
بدون Response Contact/NAT/Firewall بسیار محتمل‌تر است

Packet Capture را کجا بگیریم؟

اگر Log به نتیجه نرسید، Capture را در نقاط مختلف بگیرید.

نقاط مناسب Capture
محل سؤالی که پاسخ می‌دهد
Provider-facing Firewall INVITE وارد شبکه شده؟
PBX Route و INVITE خروجی چیست؟
Remote Router INVITE از NAT عبور کرده؟
Cisco Phone Phone واقعاً INVITE را دریافت کرده؟

Wireshark Filterهای مفید

فقط SIP:

sip

فقط INVITE:

sip.Method == "INVITE"

IP تلفن:

ip.addr == 192.168.20.45

Call-ID را برای دنبال‌کردن همان تماس استفاده کنید

از INVITE ورودی Call-ID را پیدا کنید.

مثلاً:

sip.Call-ID == "abc123@example.net"

توجه کنید اگر PBX مانند B2BUA عمل کند، Call-ID سمت Provider و سمت Cisco می‌تواند متفاوت باشد؛ در این حالت Timestamp و Called Number را نیز استفاده کنید.

سناریوی ۱: Cisco Registered است و تماس خروجی دارد، اما هیچ تماس ورودی داخلی ندارد

اول `pjsip show contacts` را بررسی کنید.

بعد از داخلی دیگر تماس بگیرید و با SIP Logger ببینید Asterisk INVITE را به چه IP و Portی می‌فرستد.

اگر INVITE به Contact قدیمی یا Private IP Remote Phone ارسال می‌شود، NAT/Contact مسئله اصلی است.

سناریوی ۲: فقط بعد از مدتی Idle تماس ورودی از کار می‌افتد

NAT Mapping و Keepalive را در اولویت قرار دهید.

اگر تماس خروجی از Cisco باعث می‌شود Incoming دوباره موقتاً درست شود، این الگو تقریباً مستقیماً به NAT Binding اشاره می‌کند.

سناریوی ۳: تماس داخلی سالم است ولی DID خارجی نمی‌رسد

خود Cisco را فعلاً کنار بگذارید.

INVITE ورودی Provider، DID Format و FreePBX Inbound Route را بررسی کنید.

سناریوی ۴: تماس بیرونی وارد FreePBX می‌شود ولی به Extension دیگری می‌رود

Inbound Route Destination، Time Condition، IVR، Ring Group و DID Matching را بررسی کنید.

ممکن است Route عمومی‌تر قبل از Route موردنظر Match شده باشد.

سناریوی ۵: Cisco Ring نمی‌خورد ولی تماس فوراً Voicemail می‌شود

DND، Call Forward All، Call Forward Busy و وضعیت PBX را بررسی کنید.

در MPP وضعیت FKS/XSI را هم در نظر بگیرید.

سناریوی ۶: فقط یکی از چند Line روی Cisco تماس ورودی ندارد

Registration State همان Line، Extension Mapping، DND per-line و Call Forward مخصوص همان Line را بررسی کنید.

سناریوی ۷: Cisco Enterprise داخلی کار می‌کند ولی PSTN نه

Incoming CSS روی SIP Trunk یا Gateway، Partition مقصد و Digit Transformation را بررسی کنید.

اگر Provider شماره کامل می‌فرستد ولی DN داخلی کوتاه است، Translation Pattern احتمالاً بخشی از راه‌حل است.

سناریوی ۸: CUCM Phone Registered است ولی 404 یا Not Found دریافت می‌کنید

Called Number واقعی، DN، Partition، CSS و Translation Pattern را مقایسه کنید.

Registered بودن Phone ثابت نمی‌کند Digit Analysis تماس ورودی Destination را پیدا می‌کند.

سناریوی ۹: با حذف Partition تماس ناگهان کار می‌کند

این نتیجه معمولاً نشان می‌دهد Call Leg ورودی CSS مناسب برای دیدن Partition مقصد ندارد.

راه‌حل اصولی حذف Partition از DN نیست؛ CSS درست را به تماس ورودی بدهید.

سناریوی ۱۰: Phone پاسخ 180 Ringing می‌دهد ولی صدای زنگ ندارد

در این حالت Routing تا Phone سالم است.

حالا Ringer Volume، Ringtone، DND Mode، Headset Hookswitch و Local Phone Behavior را بررسی کنید.

این سناریو دیگر مشکل Inbound Route نیست.

سناریوی ۱۱: تماس فقط از بعضی شماره‌های PSTN نمی‌آید

CallerID-based Route، Provider Filtering، Translation Rule و Route Patternهای خاص را بررسی کنید.

یک تماس سالم و یک تماس خراب را با هم Capture کنید و Called/Calling Headerها را مقایسه کنید.

سناریوی ۱۲: تماس فقط روی یک اینترنت یا Router خاص نمی‌آید

Contact، NAT Mapping، SIP ALG و Firewall را میان دو شبکه مقایسه کنید.

این تست بسیار باارزش است چون Phone و PBX ثابت می‌مانند و فقط Network Path تغییر می‌کند.

چک‌لیست نهایی MPP / FreePBX

وقتی Cisco MPP Registered است اما تماس ورودی ندارد
بررسی نتیجه مطلوب
Registration Line صحیح Registered
AoR Contact IP/Port قابل دسترس
rewrite_contact متناسب با NAT
Stale Contact وجود نداشته باشد
DND خاموش
Call Forward طبق طراحی
Inbound Route DID صحیح و Destination درست
Trunk INVITE وارد PBX شود
PBX → Cisco INVITE به Contact واقعی ارسال شود
Phone Response 100/180 یا Response قابل تحلیل

چک‌لیست نهایی Enterprise / CUCM

وقتی Cisco Enterprise Registered است اما تماس ورودی ندارد
بررسی نتیجه مطلوب
Phone Registration Registered
DN روی Device صحیح
Partition در Dial Plan صحیح
Inbound CSS Partition مقصد را ببیند
Called Digits با DN/Pattern هماهنگ
Translation Pattern در صورت نیاز صحیح
Route Pattern فقط اگر مسیر تماس واقعاً به آن نیاز دارد
DND رفتار مورد انتظار
Call Forward مقصد ناخواسته نداشته باشد
Trace Digit Analysis مسیر را تأیید کند

پرسش‌های متداول درباره نرسیدن تماس ورودی Cisco

چرا Cisco Registered است ولی تماس ورودی ندارد؟

Registration فقط ارتباط Phone با Registrar را ثابت می‌کند. Contact اشتباه، NAT، Inbound Route، DND، Call Forward یا در CUCM مشکل CSS و Partition می‌توانند مانع تماس ورودی شوند.

Contact در SIP چه نقشی در تماس ورودی دارد؟

PBX Contact ثبت‌شده را برای پیدا کردن IP و Port Endpoint استفاده می‌کند. اگر Contact پشت NAT اشتباه یا قدیمی باشد، INVITE ممکن است هرگز به Cisco نرسد.

rewrite_contact در Asterisk چه کاری می‌کند؟

این گزینه Contact ورودی Endpoint را با Source IP و Port واقعی درخواست SIP بازنویسی می‌کند تا درخواست‌های بعدی به مسیر قابل دسترس‌تری ارسال شوند.

چرا بعد از یک تماس خروجی، تماس ورودی دوباره کار می‌کند؟

این رفتار معمولاً می‌تواند نشانه NAT Mapping منقضی‌شده باشد. تماس خروجی Mapping را دوباره ایجاد می‌کند و برای مدتی INVITE ورودی قابل عبور می‌شود.

چرا تماس داخلی Cisco کار می‌کند ولی تماس از بیرون نمی‌آید؟

در این حالت Cisco و Contact احتمالاً سالم‌اند. Trunk، DID Format، Inbound Route و مسیر تماس PSTN را بررسی کنید.

DND می‌تواند باعث شود Cisco اصلاً زنگ نخورد؟

بله. در MPP، DND می‌تواند برای همه Lineها یا یک Line فعال شود و تماس بسته به تنظیمات به مقصدی مانند Voicemail هدایت شود.

چرا Call Forward خاموش است ولی تماس هنوز Redirect می‌شود؟

در بعضی MPPها FKS یا XSI می‌توانند وضعیت Feature را از Server همگام کنند و اولویت آن‌ها از تنظیم Local بیشتر باشد.

در CUCM چرا Phone Registered است ولی PSTN به آن نمی‌رسد؟

Incoming CSS روی Trunk/Gateway ممکن است Partition DN را نبیند یا Called Number ورودی نیاز به Translation داشته باشد.

آیا برای تماس ورودی CUCM باید Route Pattern بسازیم؟

نه همیشه. اگر تماس قرار است مستقیماً به DN داخلی برسد، Incoming CSS، Partition و Translation Pattern معمولاً مهم‌ترند. Route Pattern زمانی لازم می‌شود که Number باید به Trunk، Gateway یا Route List هدایت شود.

چطور بفهمیم INVITE به Cisco می‌رسد؟

روی PBX SIP Logger و در صورت نیاز روی Phone یا Network Packet Capture بگیرید. اگر Phone پاسخ 100 Trying یا 180 Ringing بدهد، INVITE تا Endpoint رسیده است.

اگر PBX INVITE می‌فرستد ولی Cisco هیچ پاسخی ندارد چه؟

Contact، NAT، Firewall، SIP ALG و Route شبکه را بررسی کنید. مقصد IP و Port INVITE را با Source واقعی آخرین REGISTER مقایسه کنید.

Any/Any Inbound Route در FreePBX مناسب است؟

برای تست کوتاه و کنترل‌شده می‌تواند به تشخیص DID Matching کمک کند، اما روی سیستم Production با چند Trunk بهتر است Route دقیق برای DIDها تعریف شود.

جمع‌بندی

وقتی Cisco IP Phone Registered است اما تماس ورودی ندارد، خود Registration را پایان عیب‌یابی ندانید. در MPP ابتدا Contact را بررسی کنید؛ PBX باید INVITE را به IP و Portی بفرستد که واقعاً از سمت Phone قابل دسترس است. برای Endpointهای پشت NAT، `rewrite_contact` و مدیریت Contactهای قدیمی اهمیت زیادی دارند.

بعد بررسی کنید آیا تماس اصلاً وارد PBX می‌شود، DID با Inbound Route تطبیق دارد و Destination به Extension درست اشاره می‌کند. اگر PBX INVITE را به Cisco ارسال می‌کند اما هیچ Response دریافت نمی‌کند، NAT و Firewall را بررسی کنید. اگر Phone 180 Ringing می‌دهد، Routing سالم است و باید سراغ DND، Call Forward یا رفتار محلی Phone بروید.

در Cisco Enterprise روی CUCM مسیر متفاوت است. Registered بودن Device تضمین نمی‌کند SIP Trunk یا Gateway اجازه دسترسی به DN را دارد. Incoming CSS باید Partition مقصد را ببیند و Called Number نیز باید بعد از Digit Manipulation یا Translation با DN قابل Route تطبیق پیدا کند.

مهم‌ترین روش این است که تماس را مرحله‌به‌مرحله دنبال کنید: Provider → Trunk → Route → PBX/CUCM → Contact یا DN → Cisco Phone. اولین نقطه‌ای که INVITE دیگر دیده نمی‌شود معمولاً همان جایی است که باید مشکل را حل کنید.

منابع و مستندات
برای تهیه این راهنما، رفتار DND و Call Forward در Cisco MPP، ساختار Contact و NAT در PJSIP، Inbound Route در FreePBX و CSS/Partition در CUCM با مستندات رسمی بررسی شده‌اند.
Cisco MPP
رفتار DND، Forward All، Forward Busy و Forward No Answer روی Cisco 8800 MPP
Cisco CUCM
نقش Partition و CSS در تعیین Destinationهای قابل دسترس برای Phone، Gateway و Trunk
Cisco CUCM
Route Pattern، Route List، Route Group، Translation و مسیرهای Call Routing
Asterisk
rewrite_contact، force_rport و رفتار Endpointهای Remote پشت NAT
Asterisk
نقش Contactهای ساخته‌شده توسط REGISTER و شناسایی تماس‌های ورودی بر اساس IP
FreePBX / Sangoma
DID Matching، Destination و تشخیص خطاهای رایج نرسیدن تماس ورودی
Cisco رجیستر است اما تماس ورودی هنوز نمی‌رسد؟

Contact، NAT، PBX و مسیر تماس را بر اساس Log بررسی کنید

اگر تلفن Cisco شما Registered است اما تماس ورودی روی MPP، FreePBX، Asterisk یا CUCM به مقصد نمی‌رسد، می‌توانید درخواست بررسی کانفیگ ثبت کنید تا مسیر تماس از Trunk تا Endpoint به‌صورت مرحله‌ای بررسی شود.

تماس با پشتیبانی ایرانیکاسرور

021-91302467

اشتراک‌گذاری مقاله
گفت‌وگو درباره آموزش

دیدگاه‌ها (۰)

هنوز دیدگاهی ثبت نشده است.

دیدگاه یا سؤال خود را بنویسید

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