Contenu

Comment gérer les grandes tailles de paquets SIP ?

Les réseaux segmenteront les paquets UDP avec une charge utile supérieure à 1 480 octets pour s’assurer que le paquet supérieur ne dépassera pas le MTU.

Il est courant que le routeur bloque les paquets UDP segmentés. Les routeurs doivent contenir chaque segment du message UDP en mémoire jusqu’à ce que le dernier segment soit reçu avant de transmettre le message. Cela peut être exploité en envoyant des messages incomplets au routeur jusqu’à ce que sa mémoire soit saturée, ce qui entraîne l’échec du routeur. Pour cette raison, les routeurs qui ne contiennent pas de correctif pour cette condition interdisent souvent les paquets UDP segmentés.

Une solution de contournement pour les routeurs qui ne gèrent pas (ou ne peuvent pas) la segmentation UDP consiste à convertir en SIP sur TCP. BroadWorks peut être configuré à différents emplacements pour envoyer et/ou recevoir sur UDP, TCP ou l'un ou l'autre (non spécifié). Vous trouverez ci-dessous différents emplacements où ces paramètres sont définis :

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.

De nombreux SBC prennent également en charge UDP et TCP. Certains SBC peuvent même convertir UDP en TCP. Voici un exemple de configuration à partir d'un SD ACME (divers emplacements où le protocole peut être spécifié.

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

Les périphériques peuvent également être configurés pour spécifier le protocole. Par exemple, Polycom peut être défini sur TCPonly, TCPpreffered ou même autoriser la réponse DNS à spécifier le protocole (DNSnaptr)

Exemple de message SIP UDP volumineux

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