Dialogic SIP Profiler User guide

Type
User guide
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 1/117
SIP Profiler User Guide
Dialogic® BorderNet™ Session Border Controller (SBC)
Release 3.8.1
June 2019
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 2/117
Table of Contents
1. Introduction
1.1 Purpose of this Document
1.2 Glossary
1.3 References
1.4 Contact Us
2. Profiler Overview
2.1 Introduction
2.2 Profiler
2.2.1 Profiler Document Hierarchy
2.2.2 Profiler Document Structure
2.2.3 Profiler Variables
3. SipProfiler Elements
3.1 Group Elements
3.1.1 <SipProfiler>
3.1.2 <ProfilerRule>
3.1.3 <SipRule>
3.1.4 <Action>
3.2 Operator Elements
3.2.1 <And>
3.2.2 <BeginsWith>
3.2.3 <Concatenate>
3.2.4 <Contains>
3.2.5 <Dierence>
3.2.6 <EndsWith>
3.2.7 <Equal>
3.2.8 <Exists>
3.2.9 <Greater>
3.2.10 <GreaterOrEqual>
3.2.11 <Less>
3.2.12 <LessOrEqual>
3.2.13 <MatchPattern>
3.2.14 <Not>
3.2.15 <NotEqual>
3.2.16 <NotExists>
3.2.17 <Or>
3.2.18 <ParseIPAddress>
3.2.19 <Product>
3.2.20 <RegExpr>
3.2.21 <RemoveString >
3.2.22 <ReplaceString>
3.2.23 <SubString >
3.2.24 <Sum>
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 3/117
3.3 Data Elements
3.3.1 Constant Data Elements
3.3.2 SIP Data Elements
3.3.3 SDP Data Elements
3.3.4 <SdpSessionAttribute>
3.3.5 Other Data Elements
3.4 Action Elements
3.4.1 <Assign>
3.4.2 <Delete>
3.4.3 <DropSipMessage>
3.4.4 <Execute>
3.4.5 <Insert>
3.4.6 <RejectSipMessage>
3.4.7 <Return>
3.4.8 <Print>
3.4.9 <Trace>
4. Examples
4.1 Retrieving & Modifying SIP Header/Parameter Values
4.1.1 Retrieve a Header Field
4.1.2 Modify a Header Field
4.1.3 Retrieve a Header Parameter
4.2 Adding New SIP Headers
1.1.1. Insert a New Known SIP Header
1.1.2. Insert a New Unknown SIP Header
4.3 Deleting SIP Headers
4.3.1 Delete a SIP Header
4.3.2 Delete all SIP Headers of One Type
4.4 Adding New SIP Header Parameter
4.4.1 Insert a new parameter
4.5 Deleting SIP Header Parameter
4.5.1 Delete a SIP Header Parameter
4.6 Retrieving/Storing Data from/to Variables
4.6.1 Store a String in a Transaction Variable
4.6.2 Retrieve a String from a Session Variable
4.7 Retrieving Data from Configuration Tables
4.8 Retrieving Data from IP Layer fields
Appendix I: Known SIP Headers
Appendix II: SIP Header Fields
Appendix III: SIP Known Parameters
Appendix V: IP Fields
Appendix VI: SDP Known Parameters
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 4/117
Copyright and Legal Notice
Copyright © 2011-2019 Dialogic Corporation. All Rights Reserved. You may not reproduce this document in whole or in part
without permission in writing from Dialogic Corporation at the address provided below.
All contents of this document are furnished for informational use only and are subject to change without notice and do not
represent a commitment on the part of Dialogic Corporation and its ailiates or subsidiaries ("Dialogic"). Reasonable eort is
made to ensure the accuracy of the information contained in the document. However, Dialogic does not warrant the accuracy of
this information and cannot accept responsibility for errors, inaccuracies or omissions that may be contained in this document.
INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH DIALOGIC® PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED,
BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED
IN A SIGNED AGREEMENT BETWEEN YOU AND DIALOGIC, DIALOGIC ASSUMES NO LIABILITY WHATSOEVER, AND DIALOGIC DISCLAIMS
ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF DIALOGIC PRODUCTS INCLUDING LIABILITY OR
WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY INTELLECTUAL
PROPERTY RIGHT OF A THIRD PARTY.
Dialogic products are not intended for use in certain safety-aecting situations. Please see
http://www.dialogic.com/company/terms-of-use.aspx for more details.
Due to diering national regulations and approval requirements, certain Dialogic products may be suitable for use only in specific
countries, and thus may not function properly in other countries. You are responsible for ensuring that your use of such products
occurs only in the countries where such use is suitable. For information on specific products, contact Dialogic Corporation at the
address indicated below or on the web at www.dialogic.com.
It is possible that the use or implementation of any one of the concepts, applications, or ideas described in this document, in
marketing collateral produced by or on web pages maintained by Dialogic may infringe one or more patents or other intellectual
property rights owned by third parties. Dialogic does not provide any intellectual property licenses with the sale of Dialogic
products other than a license to use such product in accordance with intellectual property owned or validly licensed by Dialogic
and no such licenses are provided except pursuant to a signed agreement with Dialogic. More detailed information about such
intellectual property is available from Dialogic's legal department at 3300 Boulevard de la te-Vertu, Suite 112, Montreal, Quebec,
Canada H4R 1P8. Dialogic encourages all users of its products to procure all necessary intellectual property licenses required to
implement any concepts or applications and does not condone or encourage any intellectual property infringement and
disclaims any responsibility related thereto. These intellectual property licenses may dier from country to country and it is
the responsibility of those who develop the concepts or applications to be aware of and comply with dierent national license
requirements.
Dialogic, Dialogic Pro, Veraz, Brooktrout, Diva, BorderNet, PowerMedia, PowerVille, PowerNova, MSaaS, ControlSwitch, I-Gate,
Cantata, TruFax, SwitchKit, Eiconcard, NMS Communications, SIPcontrol, Exnet, EXS, Vision, inCloud9, and NaturalAccess, among
others as well as related logos, are either registered trademarks or trademarks of Dialogic Corporation and its ailiates or
subsidiaries. Dialogic's trademarks may be used publicly only with permission from Dialogic. Such permission may only be granted
by Dialogic's legal department at 3300 Boulevard de la Côte-Vertu, Suite 112, Montreal, Quebec, Canada H4R 1P8. Any authorized
use of Dialogic's trademarks will be subject to full respect of the trademark guidelines published by Dialogic from time to time and
any use of Dialogic's trademarks requires proper acknowledgement.
The names of actual companies and products mentioned herein are the trademarks of their respective owners.
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 5/117
This document discusses one or more open source products, systems and/or releases. Dialogic is not responsible for your decision
to use open source in connection with Dialogic products (including without limitation those referred to herein), nor is Dialogic
responsible for any present or future eects such usage might have, including without limitation eects on your products, your
business, or your intellectual property rights.
Document History
Revision Release Date Notes
1.0 October 20th 2011 Copied from NaBC
1.1 October 20th 2011 BorderNet SBC Modifications
1.2 November 11th 2011 IP Layer Additions
1.3 July 5th 2012 Release 2.0 Updates
1.4 July 16th 2012 More release 2.o updates
2.0 November 2016 Formatted
3.0 September 2017 Updated with new headers for SIP Profiler, for release 3.7.0
January 2019 Updated for BN 3.8.0
July 2019 Updated for BN 3.8.1
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 6/117
1. Introduction
1.1 Purpose of this Document
This document is intended to familiarize the reader with the BorderNet SBC, SIP Profiler feature.
1.2 Glossary
For the purposes of this document the following abbreviations apply:
Term Abbreviation
IP Internet Protocol
SBC Session Border Controller
SCS SIP Control Server
SIP Session Initiation Protocol
XML Extensible Markup Language
XSD XML Schema Definition Language
1.3 References
[1] Bray, T., et al. (eds).
Extensible Markup Language (XML) 1.0 (Fih Edition)
. W3C Candidate Recommendation, World Wide Web
Consortium, November 2008
[2] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler.
SIP: Session
Initiation Protocol
. RFC 3261, Internet Engineering Task Force, June 2002
[3] Shudi, Henry S. (eds).
XML Schema Definition Language (XSD) 1.1(Part 1. Data Structures)
. W3C Working Dra, World Wide Web
Consortium, December 2009
[4] David, Ashok, Shudi, Henry S. (eds).
XML Schema Definition Language (XSD) 1.1(Part 2. Datatypes)
. W3C Working Dra, World
Wide Web Consortium, December 2009
1.4 Contact Us
For a list of Dialogic locations and oices, please visit: https://www.dialogic.com/contact.aspx.
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 7/117
2. Profiler Overview
2.1 Introduction
This document explains the SCS SIP Profiler, which enables SIP header and parameter manipulation for both incoming and
outgoing SIP messages on any configured SCS SIP interface.
The SCS SIP Profiler supports the following types of SIP header operations:
1. Modifying existing headers.
2. Deleting existing headers.
3. Adding new headers.
4. Storing header/parameter values in a variable.
5. Rejecting SIP Messages with custom warning codes.
The SCS SIP Profiler enables header changes to be made twice for each SIP message as follows:
1. When a SIP message is received on an interface (incoming).
2. Before a SIP message is about to leave from an interface (outgoing).
Any SIP header field may be manipulated, such as a header value, header parameter and URI parameter. The Profiler is highly
flexible enabling rapid interworking between any types of SIP network.
2.2 Profiler
2.2.1 Profiler Document Hierarchy
The SCS Profiler consists of one or more SipProfiler documents, which are individual XML files. Each XML file contains rules with
associated actions that are used to manipulate SIP headers and parameters. Multiple files can be linked together logically for
enhanced organizational benefit and high eiciency.
For example, one XML file can be designed as a common building block that can be written once and called over and over on
dierent SIP interfaces as part of more complex header manipulations that may vary only slightly from one another.
When a SIP message enters on a SIP interface with a configured SipProfiler document the Profiler execution begins at the
invocation of the configured XML document called the root document. The outgoing SIP message on the same interface may have
a dierent XML document assigned to complete the desired header manipulation.
More complex SipProfiles may be defined by nesting multiple XML files in a pre-defined order to the root document. Each nested
XML documents is executed in order. The Profiler execution begins at the invocation of the root document associated with the SIP
interface.
During root document execution, the root document may call other SipProfiler XML documents, as illustrated in Figure 1.
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 8/117
Figure 1: SCS Profiler Nested Documents
Any number of SipProfiler XML documents can be called during Profiler execution as long as the total hierarchy levels do not
exceed five. Figure 1 illustrates a SipProfiler that executes five XML files within three hierarchy levels.
The order of execution begins with
Root Document-1
, moves to
Document-1.1
, and then
Document-1.1.1
before returning to
Root
Document-1
and then traversing
Document-1.2
and
Document
1.2.1
.
Profiler execution is explained further in Profiler Document Structure.
Profiler Document Creation and Loading
Profiler documents are 'rules' written in XML that are created oline and then loaded on the SCS through the View Manager. Once
loaded, the XML file can then be selected via a dropdown box in the configuration GUI and applied to either an incoming SIP
message or an outgoing SIP message on a particular SIP interface. XML syntax is automatically validated when each document is
uploaded to the SCS using XSD (XML Schema Definition language).
2.2.2 Profiler Document Structure
Each SipProfiler XML document consists of one or more
<ProfilerRule>
elements.
Each
<ProfilerRule>
element consists of a
<SipRule>
and
<Action>
element and is of the form:
If (condition) then (statement).
There is no limit to the number of elements that may be contained within one SipProfiler XML document.
The
<SipRule>
element contains the
conditions
and the
<Action>
element contains the
statements
to be executed if all conditions
inside the
<SipRule>
element return "true".
See Group Elements for an XML syntax example.
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 9/117
Figure 2: SCS Profiler Document Structure
Profiler execution begins with the execution of the first
<ProfilerRule>
element in the root document and continues execution from
this rule to the next rule until one of the following conditions is met:
All the
<ProfilerRule>
elements in the document are executed.
An
<Action>
element states to stop execution.
A SIP message is rejected by the Profiler.
The Profiler enables an operator to reject a SIP message based on precisely defined criteria. For example, a call may be released
early with a specific release code returned to the customer if a predefined mandatory SIP parameter is missing from an incoming
message.
An
<Action>
element inside a
<ProfilerRule>
element may state to jump to another XML document as illustrated in Figure 3. In that
scenario all
<ProfilerRule>
elements in the child XML document are executed before the rest of the
<ProfilerRule>
elements are
executed in the parent XML document.
Figure 3: Rule Processing Flow in Nested SipProfiler Documents
2.2.3 Profiler Variables
During header manipulation operations it may be advantageous to store certain header data from one operation and then call that
data during another operation. The Profiler supports data value storage into three dierent types of temporary variables each with
a dierent lifetime.
The following three types of variables are supported:
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 10/117
Local variables
Transaction variables
Session variables
Variable values: A variable can be assigned an initial value using the
<Assign>
tag and can be re-assigned a data value any number
of times using this same tag.
Variable scope: A child SipProfiler document can access a variable defined by the parent document and vice versa.
Variable quantities: The Profiler supports a limited number of variables of each type. While storing a data value inside a variable,
an index for that variable is assigned. An index number cannot exceed the maximum number of variables of each type and can be
used to access the variable during its lifetime.
See Local Variables for more details.
Variable names: A variable can be given a name that is used to access the variable value during the variable's lifetime. The variable
name can be assigned in the same statement that is used to assign the variable value.
Examples:
Local Variable
<!-Stores Sip Request Method name inside a Local variable stored at index 1, named Method -->
Session Variable
<!-Accesses local variable named Method, and stores it back in Session variable at index 1 -->
Local Variables
Lifetime: A local variable is accessible throughout one single Profiler execution. Once a SIP message leaves the Profiler (execution
is complete) all local variables are destroyed.
Maximum quantities: ten (10) local variables per Profiler execution.
Note: One single Profiler execution is the timeline between execution of the first and the last
<ProfilerRule>
element inside one
SipProfiler (including the root and all child SipProfiler documents).
<Assign>
<LocalVariable name="Method" index="1"/>
<SipRequestLine Field="Method"/>
</Assign>
<Assign>
<SessionVariable index="1"/>
<LocalVariable index="1"/>
</Assign>
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 11/117
Transaction Variables
Lifetime: A transaction variable is accessible throughout the entire SIP transaction lifetime. For example, a transaction variable
created when an initial INVITE message is received can be accessed in 180 Ringing or 200 OK for that INVITE.
A transaction variable created inside an incoming interface can be accessed from SipProfiler assigned to outgoing interface for the
same transaction.
Maximum quantities: five (5) transaction variables per transaction.
Session Variables
Lifetime: A session variable is accessible throughout the entire SIP session lifetime. For example, a session variable created when
an initial INVITE message is received can be accessed in 180 Ringing, 200 OK, or BYE for that INVITE. Once the session is over all
session variables are destroyed.
A session variable created inside an incoming interface can be accessed from SipProfiler assigned to outgoing interface for the
same SIP session.
Maximum quantities: five (5) session variables per SIP session.
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 12/117
3. SipProfiler Elements
This chapter describes the current SCS Profiler XML elements.
Note:
Element names are case sensitive. For example, the following names 'SipHeader', 'sipheader' and 'SIPHEADER' are not the same.
All elements in a SipProfiler XML document can be broadly classified as one of the following:
Group Element
Attributes: Groups elements together to create associations between them
Value Returned: None
Operator Element
Attributes: Performs some type of operation on data. (e.g. <And>, <Or>, <Concatenate>, etc.)
Value Returned: The value returned depends on the type of operation performed. For example, an <And> operation will
return Boolean true or false while a <Concatenate> operation will return a concatenated string.
Data Element
Attributes: References one of the following data values
SIP data: SIP header/parameter values
Configuration data: Data configured in SCS tables
IP layer data: IP layer information e.g. incoming IP, port etc.
Constant Data: String, Number, or Boolean constants
Value Returned: The value returned depends on the data value being referenced by the element. For example, referencing
an incoming IP address will return a string, while referencing an incoming port will return a number value.
Action Element
Attributes: Performs an action such as
Rejecting a SIP message
Inserting/deleting a SIP header
Stop further execution of Profiler rules.
3.1 Group Elements
3.1.1 <SipProfiler>
Parent
element None
1st Child
element <Id>
2nd Child
element <Name>
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 13/117
Parent
element None
3rd Child
element <ProfilerRule>
Attributes None
Usage
Guidelines
This is the root element of the SCS Profiler document. Other than the
<Id>
and
<Name>
, it contains only
<ProfilerRule>
elements as its children.
Restrictions
The content of the
<Id>
element, a number and
<Name>
element, a name, must be unique across all SIP
Profiler files. At least one
<ProfilerRule>
element should be present inside a
<SipProfiler>
element. There is no
limit to the maximum number of
<ProfilerRule>
child elements.
Example
<Id>10</Id>
<!-- -- >
<!-- -- >
The example above shows one Profiler document which contains two
<ProfilerRule>
elements.
3.1.2 <ProfilerRule>
<SipProfiler>
<Name>Example</Name>
<ProfilerRule id="Unique_Id_1" comment="Description of Rule 1">
<SipRule>
</SipRule>
<Action>
<!-- -- >
</Action>
</ProfilerRule>
<ProfilerRule id="Unique_Id_2" comment="Description of Rule 2">
<SipRule>
</SipRule>
<Action>
<!-- -- >
</Action>
</ProfilerRule>
</SipProfiler>
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 14/117
Parent
element <SipProfiler>
Parent
element <SipProfiler>
1st Child
element <SipRule>
2nd Child
element <Action>
Attributes
Name M/O Type Description Value Set Default Value
Id M String Unique id to identify the rule
Comment M String Description of rule
Table 1: <ProfilerRule> Attributes
Usage
Guidelines
This is a container element for the
<SipRule>
element and its corresponding
<Action>
element. It contains
exactly one Mandatory
<SipRule>
and one Mandatory
<Action>
element. There is a one to one (1:1) relationship
between a
<SipRule>
and
<Action>
element. Each SipRule has one corresponding Action element.
Example
<SipRule>
The example above shows the structure of a single
<ProfilerRule>
element. Each
<ProfilerRule>
consists of one
<SipRule>
and one
<Action>
element.
3.1.3 <SipRule>
Parent
element <ProfilerRule>
Child
elements
<Boolean>, <And>, <BeginsWith>, <Contains>, <EndsWith>, <Equal>, <Exists>, <Greater>, <GreaterOrEqual>,
<Less>, <LessOrEqual>, <MatchPattern>, <Not>, <NotEqual>, <NotExists>, <Or>, <ParseIPAddress>,
<LocalVariable>, <SessionVariable>, <TransactionVariable>, <Configuration>, <IP>, <SDRData>, <SipHeader>,
<SipParameter>, <SipRequestLine>, <SipStatusLine>, <SipBody>, <SdpBody>, <SdpSession>,
<SdpSessionAttribute>, <SdpMedia>, <SdpMediaAttribute>
Attributes None
<ProfilerRule id="Unique_Id_2" comment="Description of Rule 2">
<!-- -- >
</SipRule>
<Action>
<!-- -- >
</Action>
</ProfilerRule>
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 15/117
Parent
element <ProfilerRule>
Usage
Guidelines
Use this element to encapsulate all the elements that define a single SIP rule. The
<SipRule>
Element has only
one child element of type Boolean (Element that returns Boolean value aer execution), so it could be either an
operator element that returns a Boolean value aer the operation is performed or it could be a data element
that returns a Boolean data value.
Example
<And>
The example above checks, if 'SipRequestLine' does not exist in a Sip Message (i.e., it is a SIP response)
<And>
the data value
stored inside the
<SessionVariable>
at index "1" is "100" (a number). Note that the
<SipRule>
contains the child element
<And>,
a
Boolean operator element.
3.1.4 <Action>
Parent
element <ProfilerRule>
Child
elements <Assign>, <Delete>, <Execute>, <Insert>, <Print>, <Trace>, <DropSipMessage>, <Return>, <RejectSipMessage>
Attributes None
Usage
Guidelines Use this element to encapsulate all the Action elements corresponding to one <ProfilerRule> element.
Restrictions
The sequence of elements contained within the <Action> element can either be a single <RejectSipMessage>
element, or a combination of zero or more of the elements <Assign>, <Delete>, <Execute>, <Insert>, <Print>
and <Trace> followed optionally by a <DropSipMessage> or <Return> element.
Example
<SipRule>
<NotExists><SipRequestLine/></NotExists>
<Equal>
<SessionVariable index="1" />
<Number value="100"/>
</Equal>
</And>
</SipRule>
<Action>
<LocalVariable index ="1"/>
<String value="Test"/>
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 16/117
<Assign>
The example above stores a string "Test" inside a local variable at index "1" and then instructs the Profiler to stop execution of
further
<ProfilerRule>
elements using the
<Return>
element.
3.2 Operator Elements
3.2.1 <And>
Parent
elements <And>, <Assign>, <Equal>, <Insert>, <List>, <Not>, <NotEqual>, <Or>, <Print>, <SipRule>, <Trace>
Child
elements
<Boolean>, <And>, <BeginsWith>, <Contains>, <EndsWith>, <Equal>, <Exists>, <Greater>, <GreaterOrEqual>,
<Less>, <LessOrEqual>, <MatchPattern>, <Not>, <NotEqual>, <NotExists>, <Or>, <ParseIPAddress>,
<LocalVariable>, <SessionVariable>, <TransactionVariable>, <Configuration>, <IP>, <SDRData>, <SipHeader>,
<SipParameter>, <SipRequestLine>, <SipStatusLine>, <SipBody>, <SdpBody>, <SdpSession>,
<SdpSessionAttribute>, <SdpMedia>, <SdpMediaAttribute>
Returns Boolean
Attributes None
Usage
Guidelines
Use this element to perform the
<And>
operation on Boolean values. All child elements of
<And>
must be
Boolean, either an operator element that returns a Boolean result, or a data element that returns a Boolean
data value. Note: There must be at least two child elements.
Example
<NotExists><SipRequestLine/></NotExists>
The example above checks, if 'SipRequestLine' does not exist in a Sip Message (i.e. it is a SIP response)
<And>
the data value
stored inside the
<SessionVariable>
at index "1" is "100" (a number).
</Assign>
<Return/>
</Action>
<And>
<Equal>
<SessionVariable index="1" />
<Number value="100"/>
</Equal>
</And>
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 17/117
3.2.2 <BeginsWith>
Parent
elements <And>, <Assign>, <Equal>, <Insert>, <List>, <Not>, <NotEqual>, <Or>, <Print>, <SipRule>, <Trace>
Child
elements
<String>, <Concatenate>, <ReplaceString>, <RemoveString>, <SubString>, <LocalVariable>, <SessionVariable>,
<TransactionVariable>, <Configuration>, <IP>, <SDRData>, <SipHeader>, <SipParameter>, <SipRequestLine>,
<SipStatusLine>, <SipBody>, <SdpBody>, <SdpSession>, <SdpSessionAttribute>, <SdpMedia>,
<SdpMediaAttribute>
Returns Boolean
Attributes None
Usage
Guidelines
Use this element to check if a string begins with a sub string. This element has exactly two child elements. The
first element is the string to be checked and second element is the sub string. Both child elements of the
<BeginsWith> element must be strings, either operator elements, which return a string result value, or data
elements that return a string data value.
Example
<SipHeader Header="From" Field="Address_User"/>
The example above checks whether the user part of the Address field of a 'From' SIP header begins with string "test" or not. If so,
then "True" is returned, otherwise "False" is returned.
3.2.3 <Concatenate>
Parent
elements
<Assign>, <BeginsWith>, <Concatenate>, <Contains>, <EndsWith>, <Equal>, <Insert>, <List>, <MatchPattern>,
<NotEqual>, <ParseIPAddress>, <Print>, <RemoveString>, <ReplaceString>, <SubString>, <Trace>
Child
elements
<String>, <Concatenate>, <ReplaceString>, <RemoveString>, <SubString>, <LocalVariable>, <SessionVariable>,
<TransactionVariable>, <Configuration>, <IP>, <SDRData>, <SipHeader>, <SipParameter>, <SipRequestLine>,
<SipStatusLine>, <SipBody>, <SdpBody>, <SdpSession>, <SdpSessionAttribute>, <SdpMedia>,
<SdpMediaAttribute>
Returns String
Attributes None
Usage
Guidelines
Use this element to concatenate two or more strings. All child elements of <Concatenate> element must be
string, either operator elements, which return string result value, or data elements that return string data value.
Note: There should be at least two child elements.
Example
<BeginsWith>
<String Value="test"/>
</BeginsWith>
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 18/117
<SipHeader Header="From" Field="Address_User"/>
The example above performs a
concatenate
operation between the user part of an Address field of 'From' SIP header and a
constant string "@dialogic.com" and returns the concatenated string as result of the operation. If the user part value is "test" then
the resultant string will be [email protected]om
3.2.4 <Contains>
Parent
elements <And>, <Assign>, <Equal>, <Insert>, <List>, <Not>, <NotEqual>, <Or>, <Print>, <SipRule>, <Trace>
Child
elements
<String>, <Concatenate>, <ReplaceString>, <RemoveString>, <SubString>, <LocalVariable>, <SessionVariable>,
<TransactionVariable>, <Configuration>, <IP>, <SDRData>, <SipHeader>, <SipParameter>, <SipRequestLine>,
<SipStatusLine>, <SipBody>, <SdpBody>, <SdpSession>, <SdpSessionAttribute>, <SdpMedia>,
<SdpMediaAttribute>
Returns Boolean
Attributes None
Usage
Guidelines
Use this element to check if a string contains a sub string. This element has exactly two child elements. The first
element is the string to be checked and the second element is the sub string. Both child elements of the
<Contains> element must be string, either operator elements, which return a string result value, or data
elements that return a string data value.
Example
<SipHeader Header="From" Field="Address_User"/>
The example above checks, whether the user part of the Address field of the 'From' SIP header contains a sub string "test" or not.
If so, then "True" is returned, otherwise "False" is returned.
3.2.5 <Dierence>
Parent
elements
<Assign>, <Dierence>, <Equal>, <Greater>, <GreaterOrEqual>, <Insert>, <Less>, <LessOrEqual>, <List>,
<NotEqual>, <Print>, <Product>, <Sum>, <Trace>
<Concatenate>
<String Value="@dialogic.com"/>
</Concatenate>
<Contains>
<String Value="test"/>
</Contains>
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 19/117
Parent
elements
<Assign>, <Dierence>, <Equal>, <Greater>, <GreaterOrEqual>, <Insert>, <Less>, <LessOrEqual>, <List>,
<NotEqual>, <Print>, <Product>, <Sum>, <Trace>
Child
elements
<Number>, <Date>, <Day>, <Time>, <Sum>, <Dierence>, <Product>, <LocalVariable>, <SessionVariable>,
<TransactionVariable>, <Configuration>, <IP>, <SDRData>, <SipHeader>, <SipParameter>, <SipRequestLine>,
<SipStatusLine>, <SipBody>, <SdpBody>, <SdpSession>, <SdpSessionAttribute>, <SdpMedia>,
<SdpMediaAttribute>
Returns Number
Attributes None
Usage
Guidelines
Use this element to find dierence between two number elements. This element has exactly two child
elements. Both child elements must be of type number, either operator elements, which return number result
value, or data elements that return number data value.
Example
<SipHeader Header="Max-Forwards" Field="Value"/>
The example above finds the dierence between the
Max-Forwards
header value received in the SIP message and a number
constant "10". If the
Max-Forwards
value received in the SIP message is "65" then
<Dierence>
will return "55" as the result, since
65 - 10 = 55.
3.2.6 <EndsWith>
Parent
elements <And>, <Assign>, <Equal>, <Insert>, <List>, <Not>, <NotEqual>, <Or>, <Print>, <SipRule>, <Trace>
Child
elements
<String>, <Concatenate>, <ReplaceString>, <RemoveString>, <SubString>, <LocalVariable>, <SessionVariable>,
<TransactionVariable>, <Configuration>, <IP>, <SDRData>, <SipHeader>, <SipParameter>, <SipRequestLine>,
<SipStatusLine>, <SipBody>, <SdpBody>, <SdpSession>, <SdpSessionAttribute>, <SdpMedia>,
<SdpMediaAttribute>
Returns Boolean
Attributes None
Usage
Guidelines
Use this element to check if a string ends with a sub string. This element has exactly two child elements. The
first element is the string to be checked and the second element is the sub string. Both child elements of the
<EndsWith> element must be string, operator elements, which return a string result value, or data elements that
return a string data value.
Example
<Difference>
<Number Value="10" />
</Difference>
<EndsWith>
<String Value="test"/>
SIP Profiler User GuideDialogic Session Border Controller
Dialogic Inc. Proprietary Page 20/117
<SipHeader Header="From" Field="Address_User"/>
The example above checks whether or not the user part of the Address field of a 'From' SIP header ends with the string "test". If
so, then "True" is returned, otherwise "False" is returned.
3.2.7 <Equal>
Parent
elements <And>, <Assign>, <Equal>, <Insert>, <List>, <Not>, <NotEqual>, <Or>, <Print>, <SipRule>, <Trace>
1st Child
elements:
<Number>, <Sum>, <Dierence>, <Product>, <String>, <Concatenate>, <ReplaceString>, <RemoveString>,
<SubString>, <Boolean>, <And>, <BeginsWith>, <Contains>, <EndsWith>, <Equal>, <Exists>, <Greater>,
<GreaterOrEqual>, <Less>, <LessOrEqual>, <MatchPattern>, <Not>, <NotEqual>, <NotExists>, <Or>,
<ParseIPAddress>, <LocalVariable>, <SessionVariable>, <TransactionVariable>, <Configuration>, <IP>,
<SDRData>, <SipHeader>, <SipParameter>, <SipRequestLine>, <SipStatusLine>, <SipBody>, <SdpBody>,
<SdpSession>, <SdpSessionAttribute>, <SdpMedia>, <SdpMediaAttribute>
2nd Child
element: Same as 1st or <List>
Returns Boolean
Attributes None
Usage
Guidelines
Use this element to check if two data values are equal. This element has exactly two child elements. The data
type of both child elements should be the same for this operation to be successful. For example, you can equate
a Boolean value only to Boolean data.
Example
<SipRequestLine Field="Method"/>
</EndsWith>
<Equal>
<SipHeader Header="CSeq" Field="Method"/>
</Equal>
The example above checks whether the method name inside the SIP Request Line is equal to t
<Equal>
<SipRequestLine Field="Method"/>
<List>
<String Value="Subscribe"/>
<String Value="Notify"/>
<String Value="Refer"/>
<String Value="Update"/>
</List>
</Equal>
  • Page 1 1
  • Page 2 2
  • Page 3 3
  • Page 4 4
  • Page 5 5
  • Page 6 6
  • Page 7 7
  • Page 8 8
  • Page 9 9
  • Page 10 10
  • Page 11 11
  • Page 12 12
  • Page 13 13
  • Page 14 14
  • Page 15 15
  • Page 16 16
  • Page 17 17
  • Page 18 18
  • Page 19 19
  • Page 20 20
  • Page 21 21
  • Page 22 22
  • Page 23 23
  • Page 24 24
  • Page 25 25
  • Page 26 26
  • Page 27 27
  • Page 28 28
  • Page 29 29
  • Page 30 30
  • Page 31 31
  • Page 32 32
  • Page 33 33
  • Page 34 34
  • Page 35 35
  • Page 36 36
  • Page 37 37
  • Page 38 38
  • Page 39 39
  • Page 40 40
  • Page 41 41
  • Page 42 42
  • Page 43 43
  • Page 44 44
  • Page 45 45
  • Page 46 46
  • Page 47 47
  • Page 48 48
  • Page 49 49
  • Page 50 50
  • Page 51 51
  • Page 52 52
  • Page 53 53
  • Page 54 54
  • Page 55 55
  • Page 56 56
  • Page 57 57
  • Page 58 58
  • Page 59 59
  • Page 60 60
  • Page 61 61
  • Page 62 62
  • Page 63 63
  • Page 64 64
  • Page 65 65
  • Page 66 66
  • Page 67 67
  • Page 68 68
  • Page 69 69
  • Page 70 70
  • Page 71 71
  • Page 72 72
  • Page 73 73
  • Page 74 74
  • Page 75 75
  • Page 76 76
  • Page 77 77
  • Page 78 78
  • Page 79 79
  • Page 80 80
  • Page 81 81
  • Page 82 82
  • Page 83 83
  • Page 84 84
  • Page 85 85
  • Page 86 86
  • Page 87 87
  • Page 88 88
  • Page 89 89
  • Page 90 90
  • Page 91 91
  • Page 92 92
  • Page 93 93
  • Page 94 94
  • Page 95 95
  • Page 96 96
  • Page 97 97
  • Page 98 98
  • Page 99 99
  • Page 100 100
  • Page 101 101
  • Page 102 102
  • Page 103 103
  • Page 104 104
  • Page 105 105
  • Page 106 106
  • Page 107 107
  • Page 108 108
  • Page 109 109
  • Page 110 110
  • Page 111 111
  • Page 112 112
  • Page 113 113
  • Page 114 114
  • Page 115 115
  • Page 116 116
  • Page 117 117

Dialogic SIP Profiler User guide

Type
User guide

Ask a question and I''ll find the answer in the document

Finding information in a document is now easier with AI