ADC

SIP-Ausdrücke

Die Sprache für Richtlinienausdrücke von NetScaler Advanced enthält eine Reihe von Ausdrücken, die für SIP-Verbindungen (Session Initiation Protocol) verwendet werden. Diese Ausdrücke sollen in Richtlinien für jedes unterstützte Protokoll verwendet werden, das auf Anforderungs-/Antwortbasis arbeitet. Diese Ausdrücke können für Content Switching, Ratenbegrenzung, Responder und Umschreibrichtlinien verwendet werden.

Für SIP-Ausdrücke, die in Responder-Richtlinien verwendet werden, gelten bestimmte Einschränkungen. Auf einem virtuellen SIP-Lastausgleichsserver sind nur die Aktionen DROP, NOOP oder RESPONDWITH zulässig. Responder-Richtlinien können an einen virtuellen Lastausgleichsserver, einen globalen Override-Bindpunkt, einen globalen Standardbindpunkt oder ein sip_uddp-Richtlinienlabel gebunden werden.

Das vom SIP-Protokoll verwendete Header-Format ähnelt dem des HTTP-Protokolls, sodass viele der neuen Ausdrücke ähnlich wie ihre HTTP-Analoga aussehen und funktionieren. Jeder SIP-Header besteht aus einer Zeile, die die SIP-Methode, die URL und die Version enthält, gefolgt von einer Reihe von Name-Wert-Paaren, die wie HTTP-Header aussehen.

Im Folgenden finden Sie ein Beispiel für einen SIP-Header, auf den in den folgenden Ausdruckstabellen verwiesen wird:

INVITE sip:16@www.sip.com:5060;transport=udp SIP/2.0
Record-Route: <sip:200.200.100.22;lr=on>
Via: SIP/2.0/UDP 200.200.100.22;branch=z9hG4bK444b.c8e103d1.0;rport=5060;
    received=10.102.84.18
Via: SIP/2.0/UDP 10.102.84.180:5060;branch=z9hG4bK03e76d0b;rport=5060;
    received=10.102.84.160
From: "12" <sip:12@sip_example.com>;tag=00127f54ec85a6d90cc14f45-53cc0185
To: "16" <sip:16@sip_example.com>;tag=00127f54ec85a6d90cc14f45-53cc0185
Call-ID: 00127f54-ec850017-0e46f5b9-5ec149c2@10.102.84.180
Max-Forwards: 69CSeq: 101 INVITE
User-Agent: Cisco-CP7940G/8.0
Contact: <sip:12@10.102.84.180:5060;transport=udp>
Expires: 180
Accept: application/sdp
Allow: ACK,BYE,CANCEL,INVITE,NOTIFY,OPTIONS,REFER,REGISTER,UPDATE
Supported: replaces,join,norefersub
Content-Length: 277
Content-Type: application/sdp
Content-Disposition: session;handling=optiona
<!--NeedCopy-->

SIP-Referenztabellen

Die folgenden Tabellen enthalten Listen von Ausdrücken, die auf SIP-Headern ausgeführt werden. Die erste Tabelle enthält Ausdrücke, die für Anforderungsheader gelten. Die meisten antwortbasierten Ausdrücke sind fast identisch mit den entsprechenden anforderungsbasierten Ausdrücken. Um einen Antwortausdruck aus dem entsprechenden Anforderungsausdruck zu erstellen, ändern Sie die ersten beiden Abschnitte des Ausdrucks von SIP.REQ in SIP.RES und nehmen weitere offensichtliche Anpassungen vor. Die zweite Tabelle enthält die Antwortausdrücke, die nur für Antworten gelten und für die es keine Anforderungsäquivalente gibt. Sie können jedes Element in den folgenden Tabellen als eigenständigen vollständigen Ausdruck verwenden, oder Sie können verschiedene Operatoren verwenden, um diese Ausdruckselemente mit anderen zu kombinieren, um komplexere Ausdrücke zu bilden.

SIP-Anforderungsausdrücke

Ausdruck Beschreibung
SIP.REQ.METHOD Arbeitet nach der Methode der SIP-Anfrage. Die unterstützten SIP-Anforderungsmethoden sind ACK, BYE, CANCEL, INFO, INVITE, MESSAGE, NOTIFY, OPTIONS, PRACK, PUBLISH, REFER, REGISTER, SUBSCRIBE und UPDATE. Dieser Ausdruck ist eine Ableitung der Textklasse, sodass alle Operationen, die auf Text anwendbar sind, auf diese Methode anwendbar sind. Beispielsweise gibt dieser Ausdruck für eine SIP-Anfrage von INVITE sip:16@10.102.84.181:5060;transport=udp SIP/2.0 das Ergebnis INVITE zurück.
SIP.REQ.URL Arbeitet mit der SIP-Anforderungs-URL. Dieser Ausdruck ist eine Ableitung der Textklasse, sodass alle Operationen, die auf Text anwendbar sind, auf diese Methode anwendbar sind. For example, for a SIP request of INVITE sip:16@10.102.84.181:5060;transport=udp SIP/2.0, this expression returnssip:16@10.102.84.181:5060;transport=udp.
SIP.REQ.URL.PROTOCOL Gibt das URL-Protokoll zurück. For example, for a SIP URL ofsip:16@www.sip.com:5060;transport=udp, this expression returns sip.
SIP.REQ.URL.HOSTNAME Gibt den Hostnamen-Teil der SIP-URL zurück. For example, for a SIP URL ofsip:16@www.sip.com:5060;transport=udp, this expression returns www.sip.com:5060.
SIP.REQ.URL.HOSTNAME.PORT Gibt den Port-Teil des SIP-URL-Hostnamens zurück. Wenn kein Port angegeben ist, gibt dieser Ausdruck den Standard-SIP-Port 5060 zurück. For example, for a SIP hostname of www.sip.com:5060, this expression returns 5060.
SIP.REQ.URL.HOSTNAME.DOMAIN Gibt den Teil des Domainnamens des SIP-URL-Hostnamens zurück. Wenn der Host eine IP-Adresse ist, gibt dieser Ausdruck ein falsches Ergebnis zurück. Für den SIP-Hostnamen www.sip.com:5060 gibt dieser Ausdruck beispielsweise sip.com zurück. Für einen SIP-Hostnamen von 192.168.43. 15:5060 gibt dieser Ausdruck einen Fehler zurück.
SIP.REQ.URL.HOSTNAME.SERVER Gibt den Serverteil des Hosts zurück. Für den SIP-Hostnamen www.sip.com:5060 gibt dieser Ausdruck beispielsweise www zurück.
SIP.REQ.URL.USERNAME Gibt den Benutzernamen zurück, der dem Zeichen @ vorangeht. Für eine SIP-URL von sip: 16@www.sip.com:5060; transport=udp gibt dieser Ausdruck 16 zurück.
SIP.REQ.VERSION Gibt die SIP-Versionsnummer in der Anfrage zurück. For example, for a SIP request of INVITE sip:16@10.102.84.181:5060;transport=udp SIP/2.0, this expression returns SIP/2.0.
SIP.REQ.VERSION.MAJOR Gibt die Hauptversionsnummer zurück (die Zahl links neben dem Punkt). Für eine SIP-Versionsnummer von SIP/2.0 gibt dieser Ausdruck beispielsweise 2 zurück.
SIP.REQ.VERSION.MINOR Gibt die Nebenversionsnummer zurück (die Zahl rechts neben dem Punkt). Für eine SIP-Versionsnummer von SIP/2.0 gibt dieser Ausdruck beispielsweise 0 zurück.
SIP.REQ.CONTENT_LENGTH Gibt den Inhalt des Content-Length-Headers zurück. Dieser Ausdruck ist eine Ableitung der Klasse sip_header_t, sodass alle Operationen verwendet werden können, die für SIP-Header verfügbar sind. Für einen SIP-Content-Length-Header mit Content-Length: 277 gibt dieser Ausdruck beispielsweise 277 zurück.
SIP.REQ.TO Gibt den Inhalt des To Headers zurück. Beispiel: Bei einem SIP To-Header von To: “16” <sip:16@sip_example.com>;tag=00127f54ec85a6d90cc14f45-53cc0185 gibt dieser Ausdruck “16” <sip:16@sip_example.com>;tag=00127f54ec85a6d90cc14f45-53cc0185 zurück.
SIP.REQ.TO.ADDRESS Gibt die SIP-URI zurück, die sich im Objekt sip_url befindet. Alle Operationen, die für SIP-URIs verfügbar sind, können verwendet werden. Beispiel: Bei einem SIP To-Header von To: “16” <sip:16@sip_example.com>;tag=00127f54ec85a6d90cc14f45-53cc0185 gibt dieser Ausdruck sip:16@sip_example.com zurück.
SIP.REQ.TO.DISPLAY_NAME Gibt den Teil des Anzeigenamens des To -Headers zurück. Beispiel: Bei einem SIP To-Header von To: “16” <sip:16@sip_example.com>;tag=00127f54ec85a6d90cc14f45-53cc0185 gibt dieser Ausdruck 16 zurück.
SIP.REQ.TO.TAG Gibt den Wert des Tags aus dem “Tag”-Namen-Wertepaar im TO-Header zurück. Beispiel: Bei einem SIP To-Header von To: “16” <sip:16@sip_example.com>;tag=00127f54ec85a6d90cc14f45-53cc0185 gibt dieser Ausdruck 00127f54ec85a6d90cc14f45-53cc0185 zurück.
SIP.REQ.FROM Gibt den Inhalt des Frod-Headers zurück. For example, for a SIP From header of From: “12” <sip:12@sip_example.com>;tag=00127f54ec85a6d90cc14f45-53cc0185, this expression returns sip:12@sip_example.com.
SIP.REQ.FROM.ADDRESS Gibt die SIP-URI zurück, die sich im Objekt sip_url befindet. Alle Operationen, die für SIP-URIs verfügbar sind, können verwendet werden. For example, for a SIP From header of From: “12” <sip:12@sip_example.com>;tag=00127f54ec85a6d90cc14f45-53cc0185, this expression returns sip:12@sip_example.com.
SIP.REQ.FROM.DISPLAY_NAME Gibt den Teil des Anzeigenamens des To -Headers zurück. For example, for a SIP From header of From: “12” <sip:12@sip_example.com>;tag=00127f54ec85a6d90cc14f45-53cc0185, this expression returns 12.
SIP.REQ.FROM.TAG Gibt den Wert des Tags aus dem “Tag”-Namen-Wertepaar im TO-Header zurück. For example, for a SIP From header of From: “12” <sip:12@sip_example.com>;tag=00127f54ec85a6d90cc14f45-53cc0185, this expression returns 00127f54ec85a6d90cc14f45-53cc0185.
SIP.REQ.VIA Gibt den vollständigen Via-Header zurück. Wenn die Anfrage mehrere Via-Header enthält, wird der letzte Via-Header zurückgegeben. Für die beiden Via-Header im Beispiel-SIP-Header gibt dieser Ausdruck beispielsweise Via: SIP/2.0/UDP 10.102.84.180:5060;branch=z9hG4bK03e76d0b;rport=5060;received=10.102.84.160 zurück.
SIP.REQ.VIA.SENTBY_ADDRESS Gibt die Adresse zurück, von der die Anfrage gesendet wurde. For example, for the Via header Via: SIP/2.0/UDP 10.102.84.180:5060;branch=z9hG4bK03e76d0b;rport=5060;received=10.102.84.160, this expression returns 10.102.84.180.
SIP.REQ.VIA.SENTBY_PORT Gibt den Port zurück, der die Anfrage gesendet hat. For example, for the Via header Via: SIP/2.0/UDP 10.102.84.180:5060;branch=z9hG4bK03e76d0b;rport=5060;received=10.102.84.160, this expression returns 5060.
SIP.REQ.VIA.RPORT Gibt den Wert aus dem Paar Name/Wert des Berichts zurück. For example, for the Via header Via: SIP/2.0/UDP 10.102.84.180:5060;branch=z9hG4bK03e76d0b;rport=5060;received=10.102.84.160, this expression returns 5060.
SIP.REQ.VIA.BRANCH Gibt den Wert aus dem Zweigname/Wertepaar zurück. For example, for the Via header Via: SIP/2.0/UDP 10.102.84.180:5060;branch=z9hG4bK03e76d0b;rport=5060;received=10.102.84.160, this expression returns z9hG4bK03e76d0b.
SIP.REQ.VIA.RECEIVED Gibt den Wert aus dem empfangenen Name-Wert-Paar zurück. For example, for the Via header Via: SIP/2.0/UDP 10.102.84.180:5060;branch=z9hG4bK03e76d0b;rport=5060;received=10.102.84.160, this expression returns 10.102.84.160.
SIP.REQ.CALLID Gibt den Inhalt des Callid-Headers zurück. Dieser Ausdruck ist eine Ableitung der Klasse sip_header_t, sodass alle Operationen verwendet werden können, die für SIP-Header verfügbar sind. For example, for a SIP Callid header ofCall-ID: 00127f54-ec850017-0e46f5b9-5ec149c2@10.102.84.180, this expression returns00127f54-ec850017-0e46f5b9-5ec149c2@10.102.84.180.
SIP.REQ.CSEQ Gibt die CSEQ-Nummer aus dem CSEQ als Ganzzahl zurück. Für einen SIP-CSEQ-Header von CSeq: 101 INVITE gibt dieser Ausdruck beispielsweise 101 zurück.
SIP.REQ.HEADER() Gibt den angegebenen SIP-Header zurück. Ersetzen Sie durch den Namen des gewünschten Headers. Um beispielsweise den SIP From-Header zurückzugeben, geben Sie SIP.REQ.HEADER("From") ein.
SIP.REQ.HEADER().INSTANCE() Gibt die angegebene Instanz des angegebenen SIP-Headers zurück. Es können mehrere Instanzen desselben SIP-Headers auftreten. Wenn Sie eine bestimmte Instanz eines solchen SIP-Headers benötigen (z. B. einen bestimmten Via-Header), können Sie diesen Header angeben, indem Sie eine Zahl als die eingeben. Header-Instanzen werden vom letzten (0) bis zum ersten zugeordnet. In other words, SIP.REQ.HEADER("Via").INSTANCE(0) returns the last instance of the Via header, while SIP.REQ.HEADER("Via").INSTANCE(1) returns the last instance but one of the Via header, and so on. For example, if used on the example SIP header, SIP.REQ.HEADER("Via").INSTANCE(1) returnsVia: SIP/2.0/UDP 10.102.84.180:5060;branch=z9hG4bK03e76d0b;rport=5060.
SIP.REQ.HEADER().VALUE() Gibt den Inhalt der angegebenen Instanz des angegebenen SIP-Headers zurück. Die Verwendung ist fast dieselbe wie beim vorherigen Ausdruck. For example, if used on the SIP header example in the preceding table entry, SIP.REQ.HEADER(“Via”).VALUE(1) returns SIP/2.0/UDP 10.102.84.180:5060;branch=z9hG4bK03e76d0b;rport=5060.
SIP.REQ.HEADER().COUNT Gibt die Anzahl der Instanzen eines bestimmten Headers als Ganzzahl zurück. Wenn es beispielsweise im obigen SIP-Header-Beispiel verwendet wird, gibt SIP.REQ.HEADER(“Via”).COUNT den Wert 2 zurück.
SIP.REQ.HEADER().EXISTS Gibt den booleschen Wert true oder false zurück, je nachdem, ob der angegebene Header existiert oder nicht. Wenn es beispielsweise im obigen SIP-Header-Beispiel verwendet wird, gibt SIP.REQ.HEADER(“Expires”).EXISTS den Wert true zurück, während SIP.REQ.HEADER(“Caller-ID”).EXISTS den Wert false zurückgibt.
SIP.REQ.HEADER().LIST Gibt die kommagetrennte Parameterliste im angegebenen Header zurück. Wenn SIP.REQ.HEADER(“Allow”).LIST beispielsweise für das obige SIP-Header-Beispiel verwendet wird, gibt sie ACK,BYE,CANCEL,INVITE,NOTIFY,OPTIONS,REFER,REGISTER,UPDATE zurück. Sie können die Zeichenfolge .GET () anhängen, um ein bestimmtes Listenelement auszuwählen. Um beispielsweise das erste Element (ACK) aus der obigen Liste abzurufen, geben Sie SIP.REQ.HEADER("Allow").LIST.GET(0) ein. Um das zweite Element (BYE) zu extrahieren, geben Sie SIP.REQ.HEADER("Allow").LIST.GET(1) ein. Hinweis: Wenn der angegebene Header eine Liste von Name-Wert-Paaren enthält, wird das gesamte Name-Wert-Paar zurückgegeben.
SIP.REQ.HEADER().TYPECAST_SIP_HEADER_T("") Typecasts to . Jeder Text kann in die Klasse sip_header_t eingegeben werden. Danach können alle Header-basierten Operationen verwendet werden. Nachdem Sie diesen Vorgang ausgeführt haben, können Sie alle Operationen anwenden, die mit verwendet werden können. Der Ausdruck SIP.REQ.CONTENT_LENGTH.TYPECAST_SIP_HEADER_T typisiert beispielsweise alle Instanzen des Content-Length-Headers. Nachdem Sie diesen Vorgang ausgeführt haben, können Sie alle Header-Operationen auf alle Instanzen des angegebenen Headers anwenden.
SIP.REQ.HEADER().CONTAINS(). Gibt boolean true zurück, wenn die angegebene Textzeichenfolge in einer Instanz des angegebenen Headers vorhanden ist. Funktioniert auf allen Instanzen des angegebenen Headers. Header-Instanzen werden vom letzten (0) bis zum ersten zugeordnet.
SIP.REQ.HEADER().EQUALS_ANY() Gibt den booleschen Wert true zurück, wenn ein mit verknüpftes Muster mit dem Inhalt in einer Instanz des angegebenen Headers übereinstimmt. Funktioniert auf allen Instanzen des angegebenen Headers. Header-Instanzen werden vom letzten (0) bis zum ersten zugeordnet.
SIP.REQ.HEADER().CONTAINS_ANY() Gibt den booleschen Wert true zurück, wenn ein mit verknüpftes Muster mit dem Inhalt in einer Instanz des angegebenen Headers übereinstimmt. Funktioniert auf allen Instanzen des angegebenen Headers. Header-Instanzen werden vom letzten (0) bis zum ersten zugeordnet.
SIP.REQ.HEADER().CONTAINS_INDEX() Gibt den Index des übereinstimmenden Musters zurück, das mit verknüpft ist, wenn dieses Muster mit dem Inhalt in einer Instanz des angegebenen Headers übereinstimmt. Funktioniert auf allen Instanzen des angegebenen Headers. Header-Instanzen werden vom letzten (0) bis zum ersten zugeordnet.
SIP.REQ.HEADER().EQUALS_INDEX() Gibt den Index des übereinstimmenden Musters zurück, das mit verknüpft ist, wenn dieses Muster mit einer Instanz des angegebenen Headers übereinstimmt. Funktioniert auf allen Instanzen des angegebenen Headers. Header-Instanzen werden vom letzten (0) bis zum ersten zugeordnet.
SIP.REQ.HEADER().SUBSTR() Wenn die angegebene Zeichenfolge in einer Instanz des angegebenen Headers vorhanden ist, gibt dieser Ausdruck diese Zeichenfolge zurück. For example, for the SIP header Via: SIP/2.0/UDP 10.102.84.180:5060;branch=z9hG4bK03e76d0b;rport=5060;received=10.102.84.160”,SIP.REQ.HEADER(“Via”).SUBSTR(“rport=5060”) returns “rport=5060”.SIP.REQ.HEADER(“Via”).SUBSTR(“rport=5061”) returns an empty string.
SIP.REQ.HEADER().AFTER_STR() Wenn die angegebene Zeichenfolge in einer Instanz des angegebenen Headers vorhanden ist, gibt dieser Ausdruck die Zeichenfolge unmittelbar hinter dieser Zeichenfolge zurück. For example, for the SIP header Via: SIP/2.0/UDP 10.102.84.180:5060;branch=z9hG4bK03e76d0b;rport=5060;received=10.102.84.160, the expression SIP.REQ.HEADER(“Via”).AFTER_STR(“rport=”) returns 5060.
SIP.REQ.HEADER().REGEX_MATCH() Gibt boolean true zurück, wenn der angegebene reguläre Ausdruck (Regex) mit einer Instanz des angegebenen Headers übereinstimmt. Sie müssen den regulären Ausdruck im folgenden Format angeben: reregular expression. Der reguläre Ausdruck darf nicht länger als 1499 Zeichen sein. Es muss der PCRE-Bibliothek für reguläre Ausdrücke entsprechen. Dokumentation http://www.pcre.org/pcre.txt zur Syntax regulärer PCRE-Ausdrücke finden Sie unter. Die pcrepattern-Manpage enthält auch nützliche Informationen zur Spezifizierung von Mustern mithilfe regulärer PCRE-Ausdrücke. Die in diesem Ausdruck unterstützte Syntax regulärer Ausdrücke weist einige Unterschiede zu PCRE auf. Rückverweise sind nicht zulässig. Sie sollten rekursive reguläre Ausdrücke vermeiden. Obwohl einige funktionieren, funktionieren viele nicht. Das Metazeichen Punkt (.) entspricht Zeilenumbrüchen. Unicode wird nicht unterstützt.set_text_mode (IGNORECASE) überschreibt das (? i) interne Option, die im regulären Ausdruck angegeben ist.
SIP.REQ.HEADER().REGEX_SELECT() Wenn die angegebene Regex mit einem beliebigen Text in einer Instanz der angegebenen Kopfzeile übereinstimmt, gibt dieser Ausdruck den Text zurück. Zum Beispiel für den SIP-Header Via: SIP/2.0/UDP 10.102.84.180:5060;branch=z9hG4bK03e76d0b;rport=5060;received=10.102.84.160 gibt der Ausdruck SIP.REQ.HEADER(“Via”).REGEX_SELECT(“received=[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}”) Folgendes zurück: received=10.102.84.160.
SIP.REQ.HEADER().AFTER_REGEX() Wenn der angegebene Regex mit einem Text in einer beliebigen Instanz des angegebenen Headers übereinstimmt, gibt dieser Ausdruck die Zeichenfolge unmittelbar nach diesem Text zurück. Für den SIP-Header Via: SIP/2.0/UDP 10.102.84.180:5060;branch=z9hG4bK03e76d0b;rport=5060;received=10.102.84.160 gibt der Ausdruck SIP.REQ.HEADER(“Via”).AFTER_REGEX(“received=”) Folgendes zurück: 10.102.84.160.
SIP.REQ.HEADER().BEFORE_REGEX() Wenn der angegebene Regex mit einem Text in einer beliebigen Instanz des angegebenen Headers übereinstimmt, gibt dieser Ausdruck die Zeichenfolge unmittelbar vor diesem Text zurück. Zum Beispiel für den SIP-Header Via: SIP/2.0/UDP 10.102.84.180:5060;branch=z9hG4bK03e76d0b;rport=5060;received=10.102.84.160 gibt der Ausdruck SIP.REQ.HEADER(“Via”).BEFORE_REGEX(“[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}”) Folgendes zurück: received=.
SIP.REQ.FULL_HEADER Gibt den gesamten SIP-Header zurück, einschließlich des abschließenden CR/LF.
SIP.REQ.IS_VALID Gibt den booleschen Wert true zurück, wenn das Anforderungsformat gültig ist.
SIP.REQ.BODY() Gibt den Anforderungstext bis zur angegebenen Länge zurück. Wenn die angegebene Länge größer als die Länge des Anforderungstexts ist, gibt dieser Ausdruck den gesamten Anforderungstext zurück.
SIP.REQ.LB_VSERVER Gibt den Namen des virtuellen Load-Balancing-Servers (LB vserver) zurück, der die aktuelle Anfrage bedient.
SIP.REQ.CS_VSERVER Gibt den Namen des virtuellen Content Switching-Servers (CS vserver) zurück, der die aktuelle Anfrage bedient.

SIP-Antwortausdrücke

Ausdruck Beschreibung
SIP.RES.STATUS Gibt den SIP-Antwortstatuscode zurück. Wenn die erste Zeile der Antwort beispielsweise SIP/2.0 100 Trying lautet, gibt dieser Ausdruck 100 zurück.
SIP.RES.STATUS_MSG Gibt die SIP-Antwortstatusmeldung zurück. Lautet die erste Zeile der Antwort beispielsweise SIP/2.0 100 Trying, gibt dieser Ausdruck Trying zurück.
SIP.RES.IS_REDIRECT Gibt den booleschen Wert true zurück, wenn der Antwortcode eine Weiterleitung ist.
SIP.RES.METHOD Gibt die Antwortmethode zurück, die aus der Anforderungsmethodenzeichenfolge im CSEq-Header extrahiert wurde.
SIP-Ausdrücke