كيف يمكنني التعامل مع أحجام حزم SIP الكبيرة؟
ستقوم الشبكات بتقسيم حزم UDP بحمولة أكبر من 1480 بايت لضمان عدم تجاوز الحزمة الزائدة ل MTU.
من نهج الموجه الشائع حظر حزم UDP المجزأة. يجب أن تحتوي الموجهات على كل جزء من رسالة UDP في الذاكرة حتى يتم تلقي المقطع الأخير قبل إعادة توجيه الرسالة على. يمكن إستخدام هذا الأمر عن طريق إرسال رسائل غير كاملة إلى الموجه حتى تمتلئ الذاكرة الخاصة به مما يؤدي إلى فشل الموجه. لهذا السبب لا تحتوي الموجهات التي لا تحتوي على إصلاح لهذا الشرط على حزم UDP المقسمة غالبا.
هناك حل بديل للموجهات التي لا (أو لا يمكن) معالجة تجزئة UDP هو التحويل إلى SIP عبر TCP. يمكن تعيين BroadWorks في مواقع مختلفة لإرسالها و/أو توقع إستلامها على UDP أو TCP أو أي من (غير محدد). فيما يلي مواقع مختلفة تم فيها عمل هذه الإعدادات:
AS_CLI/Interface/SIP> get
[…]
supportTcp = true
AS_CLI/System/Device/NetworkServers/Routing> get
Net Address Port Transport Poll OpState Description
=====================================================================
ns1.ihs.broadsoft.com tcp false enabled ns1
ns2.ihs.broadsoft.com tcp false enabled ns2
AS_CLI/System/CallP/Routing/MediaServerSelection/MediaServerDevice> get
Net Address Port Transport Description
=====================================================
ms1.ihs.broadsoft.com 5060 tcp ms1
ms2.ihs.broadsoft.com 5060 tcp ms2
NS_CLI/System/Device/RoutingNE/Address> get
About to access 22 entries. Continue?
Please confirm (Yes, Y, No, N): y
Retrieving data... Please wait...
Routing NE Address Cost Weight Port Transport
=======================================================================
[…]
test3 10.2.2.2 1 99 5060 tcp
test1 10.6.6.6 1 90 5060 tcp
test2 10.1.1.1 1 90 5060 tcp
22 entries found.
كما تدعم العديد من بطاقات SBC كلا من UDP و TCP. يمكن أيضا لبعض بطاقات SBC تحويل UDP إلى TCP. هنا مثال تكوين من ACME SD (مواقع مختلفة حيث يمكن تحديد البروتوكول.
sip-interface
state enabled
realm-id access
description Public to IHS ACCESS SIP Interface
sip-port
address 64.212.220.94
port 5060
transport-protocol UDP
tls-profile
allow-anonymous all
sip-port
address 64.212.220.94
port 5060
transport-protocol TCP
tls-profile
allow-anonymous all
session-agent
hostname 10.48.7.56
ip-address 10.48.7.56
port 5060
state enabled
app-protocol SIP
app-type
transport-method TCP
كما يمكن تعيين الأجهزة لتحديد البروتوكول. على سبيل المثال، يمكن تعيين Polycom على TCPonly أو TCPpreered أو حتى السماح لاستجابة DNS بتحديد البروتوكول (DNSnaptr)
مثال على رسالة SIP UDP كبيرة
2010.08.17 08:22:44:815 EDT | Info | Sip | +12403645153 | callhalf-171159287:1
udp 1580 Bytes OUT to 10.10.10.1:5060
INVITE sip:2403640001@10.10.10.1:5060;user=phone;transport=udp SIP/2.0
Via:SIP/2.0/UDP 10.10.10.2;branch=z9hG4bKBroadWorks.11l7pom-10.10.10.1V5060-0-13480-1064780560-1282047764815-
From:\"test-cc1 travis\";tag=1064780560-1282047764815-
To:\"Mike - Test Acct Inmon\"
Call-ID:BW082244815170810-243190739@10.10.10.2
CSeq:13480 INVITE
Contact:
Remote-Party-ID:\"test-cc1 travis\";screen=yes;party=calling;privacy=off;id-type=subscriber
RPID-Privacy:party=calling;privacy=off;id-type=subscriber
Proxy-Require:privacy
Diversion:\"Mike - Test Acct Inmon\";privacy=off;diversion-inhibited;reason=follow-me;counter=5,\"Mike - Test Acct Inmon\";privacy=off;reason=follow-me;counter=1,\"test-cc1 travis\";privacy=off;hg-cc;delay-ccm;reason=unknown;counter=1
Supported: Allow:ACK,BYE,CANCEL,INFO,INVITE,OPTIONS,PRACK,REFER,NOTIFY,UPDATE
Accept:multipart/mixed,application/dtmf-relay,application/media_control+xml,application/sdp,application/x-broadworks-call-center+xml
Max-Forwards:5
Content-Type:application/sdp
Content-Length:283
v=0
o=BroadWorks 1618137 1 IN IP4 10.10.10.2
s=-
c=IN IP4 10.10.10.2
t=0 0
m=audio 16580 RTP/AVP 0 8 18 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=rtpmap:101 telephone-event/8000
a=silenceSupp:on - - - -
a=fmtp:101 0-15
a=ptime:20
a=sendrecv