内容

大規模なSIPパケットサイズを処理するにはどうすればよいですか。

ネットワークは、オーバーパケットがMTUを超えないように、ペイロードが1480バイトより大きいUDPパケットをセグメント化します。

セグメント化されたUDPパケットをブロックするのが一般的なルータポリシーです。ルータは、メッセージを転送する前に最後のセグメントが受信されるまで、UDPメッセージの各セグメントをメモリに保持する必要があります。これは、不完全なメッセージをルータのメモリがいっぱいになり、ルータに障害が発生するまでルータに送信することによって不正利用される可能性があります。このため、この状況に対する修正を含まないルータでは、セグメント化されたUDPパケットが拒否されることがよくあります。

UDPセグメンテーションを処理しない（または処理できない）ルータに対する回避策は、SIP over 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、TCPprefferedに設定したり、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