Sr s4500 v.1.5.3 api for external applications eng

33 %
67 %
Information about Sr s4500 v.1.5.3 api for external applications eng
Internet

Published on October 1, 2014

Author: voxtelecom

Source: slideshare.net

Description

N/A

SR-S4500 v.1.5.3 API for external applications © 2014 SwitchRay Inc.

SR-S4500 VoIP traffic management system Document type Software version Release date Department API for external applications 1.5.3 27.05.2014 Documentation Dept. SwitchRay Inc. reserves the right to change any information contained in this document without prior notice. COPYRIGHT INFORMATION The information contained in this document is the property of SwitchRay Inc. All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical, including photocopying, recording, taping, or information storage and retrieval systems - without the written permission of SwitchRay Inc. No third party, organization or individual, is authorized to grant such permission. Products that are referred to in this document may be either trademarks and/or registered trademarks of the respective owners. The publisher and SwitchRay Inc. make no claim to these trademarks. While every precaution has been taken in the preparation of this document, the publisher and the author assume no responsibility for errors or omissions, or for damages resulting from the use of information contained in this document or from the use of programs and source code that may accompany it. In no event shall the publisher and the author be liable for any loss of profit or any other commercial damage caused or alleged to have been caused directly or indirectly by this document. Connecting the World for a Brighter Future 25910 Acero, Ste 240, Mission Viejo, CA USA 92691 www.switchray.com

API for external applications SR-S4500 Table of Contents Introdu1ction 5 1.1 Docum...e..n..t. .p..r.o..f.i.l.e.................................................................................................................. 5 1.2 Audie.n..c..e.............................................................................................................................. 5 1.3 Notati.o..n..a..l. .c..o..n..v..e..n..t.i.o..n..s........................................................................................................ 5 1.4 Terms. ..a..n..d. ..a..c.r..o..n..y.m...s............................................................................................................ 5 1.5 Docum...e..n..t.a..t.i.o..n.. .s.e..t............................................................................................................... 6 Basic c2oncepts 8 2.1 What .i.s. ..A..P..I.......................................................................................................................... 8 2.2 APIs o..f. .S..R..-.S...4.5..0..0.................................................................................................................. 8 2.3 Authe.n..t.i.c..a..t.i.o..n...................................................................................................................... 8 2.4 Table. .a..n..d.. .p..r.o..c..e..d..u..r.e.. .i.d..e..n..t.i.f.i.c..a..t.i.o..n...................................................................................... 9 Commu3nicated data types 10 3.1 colum...n................................................................................................................................ 10 3.2 row ................................................................................................................................... 10 3.3 rows.e..t................................................................................................................................ 11 3.4 sort ................................................................................................................................... 13 3.5 filter................................................................................................................................... 14 3.6 avail.a..b..l.e.._..v..a..l.u..e..s................................................................................................................ 15 3.7 colum...n.._..d..e..s..c...................................................................................................................... 16 3.8 para.m...e..t.e..r.......................................................................................................................... 17 3.9 para.m...e..t.e..r.s......................................................................................................................... 17 3.10 obje.c.t._..i.d............................................................................................................................. 18 3.11 type................................................................................................................................... 18 3.12 types................................................................................................................................... 18 3.13 data..t.y..p..e............................................................................................................................ 19 3.14 ctl_ty..p..e............................................................................................................................... 19 3.15 direc..t.i.o..n............................................................................................................................. 21 3.16 colum...n.._..d..e..s..c.r..i.p..t.o..r./.p..a..r.a..m...e..t.e..r._..d..e..s..c.r..i.p..t.o..r.......................................................................... 22 3.17 colum...n.._..d..e..s..c.r..i.p..t.o..r.s./.p..a..r..a..m...e..t.e..r._..d..e..s.c..r.i.p..t.o..r.s........................................................................ 23 3.18 obje.c.t._..d..e..s..c.r..i.p..t.o..r............................................................................................................... 23 3.19 table...d..e..s..c..r.i.p..t.o..r................................................................................................................. 24 3.20 proc.e..d..u..r.e.._..d..e..s.c..r.i.p..t.o..r......................................................................................................... 24 3.21 proc.e..d..u..r.e.._..c.o..n..t.e..x..t._..d..e..s..c.r..i.p..t.o..r........................................................................................... 25 © 2014 SwitchRay Inc. 3 View slide

© 2014 SwitchRay Inc. API for external applications 4 SR-S4500 ...............................................................................................................................3.22 column_list .... 25 Availab4le functions 27 4.1 Serv.i.c..e. ..f.u..n..c.t.i.o..n..s................................................................................................................ 27 4.1.1 getObjec.t.I.d.. ................................................................................................................................................................ 27 4.1.2 getObjec.t.s.. ................................................................................................................................................................. 28 4.1.3 getLooku..p.. ................................................................................................................................................................. 28 4.1.4 describe.O..b...j.e..c..t. ......................................................................................................................................................... 29 4.1.5 describe.T..a..b..l.e.. ........................................................................................................................................................... 29 4.1.6 describe.P..r..o..c..e..d...u..r..e.. ................................................................................................................................................. 29 4.1.7 describe.P..r..o..c..e..d...u..r..e..C...o..n..t..e..x..t. ................................................................................................................................... 30 4.1.8 getTableB...y..T..i.t.l.e.. ......................................................................................................................................................... 30 4.1.9 describe.C..o...l.u..m....n..s.. .................................................................................................................................................... 31 4.1.10 getColu.m...n...L..o..o...k..u..p.. ................................................................................................................................................. 31 4.2 Row ..s.e..t. .f.u..n..c..t.i.o..n..s............................................................................................................... 32 4.2.1 selectRow....s..e..t. ............................................................................................................................................................ 32 4.2.2 countRow...s..e..t. ............................................................................................................................................................. 34 4.2.3 insertRow...s...e..t. ............................................................................................................................................................ 34 4.2.4 updateRo..w...s..e...t. .......................................................................................................................................................... 34 4.2.5 deleteRo.w...s..e...t. ........................................................................................................................................................... 35 4.3 Proc.e..d..u..r.e.. .c..a..l.l. .f.u..n..c..t.i.o..n..s.................................................................................................... 35 4.3.1 call ..................................................................................................................................................................... 35 4.3.2 callConte.x..t. ................................................................................................................................................................. 36 Error d5escriptions 37 Typical6 examples 38 6.1 Crea.t.i.n..g.. .n..e..w... .S..O...A..P.. .c..o..n..n..e..c..t.i.o..n......................................................................................... 38 6.2 Fetch..i.n..g.. .I.D...s....................................................................................................................... 38 6.3 Fetch..i.n..g.. .l.i.s..t. .o..f. .c..o..l.u..m...n..s./.p..a..r.a..m...e..t.e..r..s.................................................................................. 38 6.4 Inser.t.i.n..g.. .r..e..c.o..r..d..s................................................................................................................ 41 6.5 Editi.n..g. ..r.e..c..o..r.d..s................................................................................................................... 42 6.5.1 Updating .b...y. ..p..r..i.m...a..r..y.. .k..e...y. . ........................................................................................................................................ 43 6.5.2 Updating .w....i.t.h.. .f..i.l.t.e..r.. .................................................................................................................................................. 43 6.6 Dele.t.i.n..g.. .r.e..c..o..r.d..s................................................................................................................. 44 6.7 Sele.c..t.i.n..g. ..d..a..t.a. ..f.r.o..m... .t.h..e.. .t.a..b..l.e............................................................................................. 44 6.8 Calli.n..g.. .p..r.o..c..e..d..u..r.e..s............................................................................................................. 47 6.9 Fetch..i.n..g.. .l.i.s..t. .o..f. .a..v..a..i.l.a..b..l.e. ..o..b..j.e..c.t.s........................................................................................ 50 View slide

SR-S4500 Introduction | 5 © 2014 SwitchRay Inc. 1 Introduction 1.1 Document profile This document contains the detailed instruction on how to configure external applications interacting with SR-S4500. It provides examples of basic API operations using raw PHP and XML (as of WSDL). 1.2 Audience This document is intended for programmers who are writing applications that interact with SR-S4500. It is assumed the readers of this document understand the general principles of the SOAP protocol, WSDL and have knowledge of PHP and network technologies. 1.3 Notational conventions Example Convention Text Important information requiring special attention. Note: text Reference information and additional details. Array ( ... ) Examples of the PHP code. $ ./soap.php OS Linux console commands and their output. Example: Text Examples which help understand the matter. Name Names of web interface parameters, controls, objects, system files or folders. 1.4 Terms and acronyms Term Explanation API Application Programming Interface. See What is API. GUI Graphical User Interface, web interface. Lookup column Column, the respective parameter of which have a list of pre-defined values from another

6 | API for external applications SR-S4500 © 2014 SwitchRay Inc. Term Explanation table. Object Web interface table, procedure, table column or parameter. PHP PHP: Hypertext Preprocessor. Server-side HTML embedded scripting language. SOAP Simple Object Access Protocol. It is a protocol specification for exchanging structured information. VoIP Voice over Internet Protocol. Web service The SR-S4500 system which acts as the SOAP server responding to API requests from a third-party application. WSDL Web Services Description Language. WSDL is based on XML and is generally used for describing the functionality of a web service. A WSDL description is stored in a WSDL file which provides a machine-readable description of how the service can be called, what parameters it expects, and what data structures it returns. XML Extensible Markup Language. XML is a free open standard that defines a set of rules for encoding documents in a format that is both human- and machine-readable. XML specification is designed and maintained by the W3C. 1.5 Documentation set The supporting documentation for SR-S4500 v.1.5.3 includes the following documents: Document title Description API for external applications Contains the detailed instruction on how to configure external applications interacting with the System. Disk space monitoring Describes how to configure the utilities for monitoring of free disk space on servers hosting SR-S4500. Functional Specification Describes the SR-S4500 functional specification, i.e. general overview of the System, its hardware and software requirements, supported codecs, protocols and standards, etc. How tos Presents tips and real-life instructions on how to accomplish business-critical tasks in SR-S4500. The instructions are illustrated with real-life examples. Local Disconnect codes Describes local disconnect codes (LDCs) generated by the System. Using this document you will know why a particular code appears and what you can do to optimize your network. It will help you to quickly identify and solve problems with your traffic and to increase the amount of successful calls handled by your System. Operator's manual Provides the complete overview of the SR-S4500 application, a carrier-grade solution for efficient policy routing of VoIP traffic. Performance Fact Sheet SR-S4500 v.1.5.3 features improved performance of key data processing mechanisms such as invoicing, data export and import. This document presents the results of tests carried out to assess the performance of new CDR handling tools as compared to the performance of the same in previous System

SR-S4500 Introduction | 7 © 2014 SwitchRay Inc. Document title Description release 1.5.2. Also, the document provides information about v.1.5.3 call processing performance. Quick Start Guide Explains how to set up SR-S4500 for initial use and how to begin using the System. The content of this document presumes that SR-S4500 has been properly installed and deployed on the user network. The document covers only essential features. Traffic Switch administration This document provides the complete overview of the SR-S4500 component Traffic Switch.

8 | API for external applications SR-S4500 © 2014 SwitchRay Inc. 2 Basic concepts 2.1 What is API API stands for Application Programming Interface. An API is a library of functions you can use to work with a component, application, or operating system. It enables gathering data about the system settings and allows the external applications to dispatch requests to the system over various protocols. 2.2 APIs of SR-S4500 In SR-S4500, only the SOAP protocol may be used, so far. The WSDL document required for a client to interoperate with the web server can be accessed by the following URL: https://<your domain>/service/? wsdl_v2. Starting with version 1.5.3-70, SR-S4500 has two APIs: API v.1: use https://your_domain/service/?wsdl. API v.2: use https://your_domain/service/?wsdl_v2. It is strictly recommended to use API v.2. The first version is now considered obsolete and no longer supported. The both versions of API allow you to perform the following operations: 1. Select records from the DB. 2. Count records in the DB. 3. Insert records in the DB. 4. Modify records in the DB. 5. Remove records from the DB. 6. Other auxiliary operations necessary for the convenience of work. API v.2 also allows you to: 1. Call DB procedures. 2. Get detailed description of DB tables and procedures. 2.3 Authentication Authentication is the process of validating user identity. You provide your web interface login and password. If the credentials are valid, the web service authorizes a third-party application to perform API operations on your behalf. Authentication credentials must be supplied in every query addressed to the service. For this, include your login and password in the header of each packet, as shown below. API v.1: $client = new SoapClient( 'https://your_domain/service/?wsdl'

SR-S4500 Basic concepts | 9 © 2014 SwitchRay Inc. ); $headers = array(); $headers[] = new SoapHeader('http://mfisoft.ru/auth','Login','admin'); $headers[] = new SoapHeader('http://mfisoft.ru/auth','Password','admin'); $client->__setSoapHeaders($headers); API v.2: $client = new SoapClient( 'https://your_domain/service/?wsdl_v2' ); $headers = array(); $headers[] = new SoapHeader('auth','Login','admin'); $headers[] = new SoapHeader('auth','Password','admin'); $client->__setSoapHeaders($headers); 2.4 Table and procedure identification When carrying out operations and procedures with tables you need an identifier to refer to them. Each object ID is unique. Use the getTableByTitle (API v.1) or getObjectId (API v.2) function to find out the object’s ID.

10 | API for external applications SR-S4500 © 2014 SwitchRay Inc. 3 Communicated data types Along with basic data types (int, string, etc.) special data types are used. These data types are described below in this section. 3.1 column Description An associative array with two elements: internal name of a column and the value of this column in a specific row. API version v.1, v.2 Elements name – column internal name; value – column value. Examples API v.1: Array( [name] => user_id [value] => 186 ) API v.2: stdClass Object ( [name] => user_id [value] => 186 ) 3.2 row Description Table record. An associative array of elements with the type column. API version v.1, v.2 Examples API v.1: Array( Array( [name] => zone_id

Communicated SR-S4500 data types | 11 © 2014 SwitchRay Inc. [value] => 3 ), Array( [name] => zone_nm [value] => External ), Array( [name] => zone_desc [value] => IP zone of external Internet connection ), ) API v.2: stdClass Object ( [item] => Array ( [0] => stdClass Object ( [name] => zone_id [value] => 3 ) [1] => stdClass Object ( [name] => zone_nm [value] => External ) [2] => stdClass Object ( [name] => zone_desc [value] => IP zone of external Internet connection ) ) ) 3.3 rowset Description Set of table records. An associative array of elements with the type row. API version v.1, v.2 Examples API v.1: Array( Array( Array( [name] => zone_id

12 | API for external applications SR-S4500 © 2014 SwitchRay Inc. [value] => 3 ), Array( [name] => zone_nm [value] => External ) Array( [name] => zone_desc [value] => IP zone of external Internet connection ) ), Array( Array( [name] => zone_id [value] => 2 ), Array( [name] => zone_nm [value] => Internal ) Array( [name] => zone_desc [value] => IP zone of internal LAN ) ) ) API v.2: stdClass Object ( [item] => Array ( [0] => stdClass Object ( [item] => Array ( [0] => stdClass Object ( [name] => zone_id [value] => 3 ) [1] => stdClass Object ( [name] => zone_nm [value] => External ) [2] => stdClass Object ( [name] => zone_desc [value] => IP zone of external Internet connection )

Communicated SR-S4500 data types | 13 © 2014 SwitchRay Inc. ) ) [1] => stdClass Object ( [item] => Array ( [0] => stdClass Object ( [name] => zone_id [value] => 2 ) [1] => stdClass Object ( [name] => zone_nm [value] => Internal ) [2] => stdClass Object ( [name] => zone_desc [value] => IP zone of internal LAN ) ) ) ) ) 3.4 sort Description Sorting instructions. An array of sorted elements which in turn are associative arrays comprised of two elements: a column name and the type of sort. API version v.1, v.2 Elements column – column name; dir – type of sort ('asc' for ascending and 'desc' for descending). Examples Array( Array( ‘column’ => ‘num_call’, ‘dir’ => ‘desc’ ), Array( ‘column’ => ‘contr_hi’, ‘dir’ => ‘asc’ ) )

14 | API for external applications SR-S4500 © 2014 SwitchRay Inc. 3.5 filter Description Transmits a filter (the p_filter parameter in functions). An associative array, whose structure depends on the type of the filter used. API version v.1, v.2 Elements See the examples below. Examples 1. Filter of a condition type has this structure: Array( ‘type’ => ‘cond’, ‘column’ => ‘num_call’, ‘operator’ => ‘>’, ‘value’ => ‘1’ ) where: type – filter type (the value 'cond' shows that this is a condition); column – name of the column to which the condition is applied; operator – has these possible values: '=', '<>', '<', ‘<=', '>', '>=', 'like', 'not like', 'regexp'; value – value for the filter. The resulting filter is: num_call > 1 2. The second type is condition joining or aggregation. It is used to construct complex filters including several conditions: Array( ‘type’ => ‘agg’, ‘operator’ => ‘and’, ‘childs’ => Array( Array( ‘type’ => ‘cond’, ‘column’ => ‘contr_hi’, ‘operator’ => ‘like’, ‘value’ => ‘01%’ ), Array( ‘type’ => ‘cond’, ‘column’ => ‘contr_desc’, ‘operator’ => ‘=’, ‘value’ => ‘Company’ ) ) ) where:

Communicated SR-S4500 data types | 15 © 2014 SwitchRay Inc. type – filter type (the value 'agg' indicates that this is an aggregation of conditions); operator – operator joining the conditions. It can have the following values: 'and', 'or', 'not_and', ‘not_or'; childs – array of other filters of the first or second type. Thus, in the above-mentioned example the resulting filter is: (contr_hi like ‘01%’) and (contr_desc = Company). 3.6 available_values Description Available values for a lookup column. An array of associative arrays. API version v.1, v.2 Elements API v.1: k – available value of the column; v – string shown in the GUI. API v.2: key – abailable value of the column; value – string shown in the GUI. Examples API v.1: Array { [0] => Array { [k] => 01.01 [v] => Customer1 ( 01.01 ) } [1] => Array { [k] => 01.04 [v] => Customer2 ( 01.04 ) } [2] => Array { [k] => 01.03 [v] => Vendor1 ( 01.03 ) } } API v.2: stdClass Object {

16 | API for external applications SR-S4500 © 2014 SwitchRay Inc. [item] => Array { [0] => stdClass Object { [key] => 01.01 [value] => Customer1 ( 01.01 ) } [1] => stdClass Object { [key] => 01.04 [value] => Customer2 ( 01.04 ) } [2] => stdClass Object { [key] => 01.03 [value] => Vendor1 ( 01.03 ) } } } 3.7 column_desc Description Description of a column. An associative array with values of the string type. API version v.1. In API v.2, column_descriptor is used instead. Elements column_name – internal name of the column, used to identify the column in the DB; not_null – if 'true', the column can not assume NULL for the value; data_type – type of data in the column; ctl_type – name of GUI control used for the column; have_lookup – if 'true', the column has a predefined list of possible values, that can be returned by the getColumnLookup function; initital_value – default value that the column acquires when a new record is added in the GUI; data_mask – date mask or pattern for storing dates in the DB (for example, YMDhms, where Y – a 4- digit year, M – a 2-digit month, D – a 2-digit day, h – a 2-digit hour, m – 2-digit minutes, s – 2-digit seconds); title – name of the column visible in the GUI; verify_pattern – regular expression for verifying the validity of the column data; min_val – minimum numerical value for data in the column; max_val – maximum numerical value of the column data; min_val_exclude – if 'true', the minimum value is excluded from the set of possible values; max_val_exclude – if 'true', the maximum value is excluded from the set of possible values; delimiter – separator for values in the column; min_len – minimum field length (i.e. the minimum number of digits that the field can include); max_len – maximum field length (i.e. the maximum number of digits that the field can accommodate); action – rights for the column. The rights are defined by a bitmask represented by a decimal value,

Communicated SR-S4500 data types | 17 © 2014 SwitchRay Inc. where 1 denotes the right to view, 2 – the right to update, and 4 – the right to add data; character_maximum_length – maximum field length defined at the DB level. Example Array( [column_name] => lang_id [not_null] => 1 [data_type] => 5 [ctl_type] => COMBOBOX [have_lookup] => 1 [initial_value] => [data_mask] => [title] => Language [verify_pattern] => [transform_pattern] => [min_val] => [max_val] => [min_val_exclude] => [max_val_exclude] => [delimiter] => [min_len] => [max_len] => [action] => 7 [character_maximum_length] => ) 3.8 parameter Description An associative array with two elements: parameter identifier and value. API version v.2 Elements name – parameter ID; value – parameter value. Example Array( ‘name’ => ‘param1’, ‘value’ => ‘value1’ ) 3.9 parameters Description Transmits parameters to procedures. An associative array of elements with the type parameter.

18 | API for external applications SR-S4500 © 2014 SwitchRay Inc. API version v.2 Example Array( Array( ‘name’ => ‘param1’, ‘value’=> ‘value1’ ), Array( ‘name’ => ‘param2’, ‘value’=> ‘value2’ ), ) 3.10 object_id Description A unique hierarchical identifier of an object. API version v.2 Example 02.2110.10 3.11 type Description A type of an object. API version v.2 Allowed values table – GUI table (like Termination > Routes); procedure – GUI dialog window with a set of parameters (like Debugging > Call simulation); procedure_context – special function invoked from the pop-up menu in a table (like Special function > Get call log in the table of CDRs); column – column of a GUI table; parameter – parameter in the GUI. 3.12 types Description An array of elements with the type type. API version

Communicated SR-S4500 data types | 19 © 2014 SwitchRay Inc. v.2 Example Array( ‘table’, ‘procedure’ ) 3.13 data_type Description A data type of a column or parameter. API version v.2 Allowed values boolean, datetime, float, integer, number, string, clob. 3.14 ctl_type Description A type of a GUI control used for displaying the column. API version v.2 Allowed values Value Example and description arrangebox Note: Use the semicolon (;) as a delimiter for column values. bitmask Set of values transferred as a bit mask. button checkbox combobox

20 | API for external applications SR-S4500 © 2014 SwitchRay Inc. datebox ecombobox Control with a set of predefined values. iframe Element which detects HTML. Edit mode View mode interval Text box for entering number ranges (using the hyphen "-", as in the group of

Communicated SR-S4500 data types | 21 © 2014 SwitchRay Inc. parameters LAR (re-routing) disconnect codes in the equipment configuration). password set Note: Use the semicolon (;) as a delimiter for column values. textbox textarea Multiline text box. 3.15 direction Description A parameter type. API version v.2 Allowed values in – incoming; out – outgoing.

22 | API for external applications SR-S4500 © 2014 SwitchRay Inc. 3.16 column_descriptor/parameter_descriptor Description These types transmit column and parameter descriptions. Both types are associative arrays of elements. API version v.2 Elements object_id (type object_id) – column/parameter identifier; title (type string) – column/parameter name in the GUI; path (type string) – path to the column/parameter in the menu tree structure (with the semicolon (;) as a delimiter); type (type type) – object type; name (type string) – internal name of the column/parameter. It is used for identification of the columns/ parameters; not_null (type boolean) – if 'true', the column/parameter cannot have the NULL value; pk (type boolean) – if 'true', the column is the primary key of the table; data_type (type data_type) – data type; ctl_type (type ctl_type) – GUI control type; have_lookup (type boolean) – when 'true', the column/parameter has a predefined list of values which can be obtained by using the getLookup function. data_mask – a date mask or pattern for storing dates in the DB (for example, YMDhms, where Y – a 4- digit year, M – a 2-digit month, D – a 2-digit day, h – a 2-digit hour, m – 2-digit minutes, s – 2-digit seconds). verify_pattern (type string) – regular expression for verifying the validity of the data; delimiter (type string) – separator for values; min_val (type string) – minimum numeric value; max_val (type string) – maximum numeric value; min_len (type string) – minimum length of the field (i.e. the minimum allowed number of characters in the field); max_len (type string) – maximum length of the field (i.e. the maximum allowed number of characters in the field); min_val_exclude (type boolean) – if 'true', the minimum value is excluded from the set of possible values; max_val_exclude (type boolean) – if 'true', the maximum value is excluded from the set of possible values; character_maximum_length (type integer) – maximum length of the field set on the DB level; action (type integer, only for column_descriptor) – rights for the column. The rights are defined by a bitmask represented by a decimal value, where 1 denotes the right to view, 2 – the right to update, and 4 – the right to add data; represent (type integer, only for column_descriptor) – column visibility in different modes (1 – view, 2 – edit, 4 – add); direction (type direction, only for parameter_descriptor) – parameter type: incoming or outgoing. Example stdClass Object ( [object_id] => 02.2102.01.05 [title] => Name

Communicated SR-S4500 data types | 23 © 2014 SwitchRay Inc. [path] => [type] => column [name] => user_nm [not_null] => 1 [pk] => [data_type] => string [ctl_type] => textbox [have_lookup] => [data_mask] => [verify_pattern] => [delimiter] => [transform_pattern] => [min_val] => [max_val] => [min_len] => [max_len] => [min_val_exclude] => [max_val_exclude] => [character_maximum_length] => [action] => 7 [represent] => 15 ) 3.17 column_descriptors/parameter_descriptors Description Associative arrays of elements with the type column_descriptor and parameter_descriptor. API version v.2 3.18 object_descriptor Description Description of an object. An associative array of elements. API version v.2 Elements object_id (type object_id) – object identifier; title (type string) – object name; path (type string) – path to the object in the menu tree structure (with the semicolon (;) as a delimiter); type (type type) – object type; parent_id (type object_id) – identifier of the table to which the object belongs. Example stdClass Object (

24 | API for external applications SR-S4500 © 2014 SwitchRay Inc. [object_id] => 02.2102.01 [title] => System users [path] => Customers/Vendors;Administration;System users [type] => table ) 3.19 table_descriptor Description Description of a table. An associative array of elements. API version v.2 Elements object_id (type object_id) – table identifier; title (type string) – table name as in the GUI; path (type string) – path to the table in the menu tree structure (with the semicolon (;) as a delimiter); type (type type) – type; action (type integer) – rights for the table. The rights are defined by a bit mask represented by a decimal value, where 1 denotes the right to view, 2 – the right to update, 3 – the right to delete, and 4 – the right to add data; columns (type columns_descriptors) – description of columns; procedure_context (type object_descriptors) – description of context procedures of the table. Example See Fetching list of columns/parameters. 3.20 procedure_descriptor Description Description of a procedure. An associative array of elements. API version v.2 Elements object_id (type object_id) – procedure identifier; title (type string) – procedure name in the GUI; path (type string) – path to the table in the menu tree structure (with the semicolon (;) as a delimiter); type (type type) – object type; parameters (type parameter_descriptors) – description of incoming and outgoing parameters. Example stdClass Object ( [object_id] => 02.2268.01 [title] => Number translation testing [path] => Debugging;Number translation testing

Communicated SR-S4500 data types | 25 © 2014 SwitchRay Inc. [type] => procedure [parameters] => stdClass Object ( [item] => Array ( ... ) ) [relations] => ) 3.21 procedure_context_descriptor Description Description of a context procedure. API version v.2 Elements object_id (type object_id) – procedure identifier; title (type string) – procedure name in the GUI; type (type type) – object type; parent_id (type object_id) – identifier of the table to which the procedure belongs; parameters (type parameter_descriptors) – description of relations in the procedure. Example stdClass Object ( [object_id] => 02.2149.01.2245 [title] => Get call log [path] => [type] => procedure_context [parent_id] => 02.2149.01 [parameters] => stdClass Object ( ) ) 3.22 column_list Description An array containing column names. API version v.2 Example Array (

26 | API for external applications SR-S4500 © 2014 SwitchRay Inc. 'col_name1', 'col_name2', 'col_name3', 'col_name4', … )

Available SR-S4500 functions | 27 © 2014 SwitchRay Inc. 4 Available functions 4.1 Service functions Service functions are the functions used for reference purposes only. 4.1.1 getObjectId Description Takes a name of an object in the GUI and returns the ID of the first object with such name. Only tables and procedures are supported. API version v.2 Syntax getObjectId (p_title, p_path, p_type, p_parent_id) where: p_title (type string) – name of a table or procedure in the GUI; p_path (type string) – path to the object in the menu tree structure (with the semicolon (;) as a delimiter). If not set, the System will try to identify the object only by its name; p_type (type type) – object type. If not set, only tables and classic procedures are included. The following object types are supported: table, procedure, procedure_context. p_parent_id (type object_id) – identifier of an element to which the object belongs. Examples See Fetching IDs. Notes 1. The name should be in the language which was selected by the authorized user in the GUI. 2. Make sure that you use the table name from the table header and not the name in the object tree to the left. In some rare cases they can be different (see the figure below).

28 | API for external applications SR-S4500 3. To get an ID of an object with the type procedure_context define the table ID in the p_parent_id parameter. 4. Frequent ID queries through the getObjectId() function are unadvisable as they can affect performance of your external application. © 2014 SwitchRay Inc. 4.1.2 getObjects Description Returns a list of available objects. API version v.2 Syntax getObjects(p_types, p_parent_id) where: p_types (type types) – types of objects. If not set, only tables and procedures are included. p_parent_id (type object_id) – table identifier. Define, if you want to get all context procedures of the table. Example See Fetching list of available objects. 4.1.3 getLookup Description Returns an array of pre-defined column values with their GUI names. The returned array is of the available_values type. The function returns an empty array if no value type restrictions are set for the column. API version

Available SR-S4500 functions | 29 © 2014 SwitchRay Inc. v.2 Syntax getLookup(p_object_id, p_column_nm) where: p_object_id (type string) – ID of the table; p_column_nm (type string) – internal name of the look-up column. Example See Fetching list of columns/parameters. 4.1.4 describeObject Description Returns a general description of an object. The returned array is of the object_descriptor type. API version v.2 Syntax describeObject (p_object_id) where p_object_id (type object_id) is the object identifier. Example See object_descriptor. 4.1.5 describeTable Description Returns a detailed description of a table. The returned array is of the table_descriptor type. API version v.2 Syntax describeTable (p_object_id) where p_object_id (type object_id) is the table ID. Example See Fetching list of columns/parameters. 4.1.6 describeProcedure Description Returns a detailed description of a procedure. The returned array is of the procedure_descriptor type. API version v.2

30 | API for external applications SR-S4500 © 2014 SwitchRay Inc. Syntax describeProcedure (p_object_id) where p_object_id (type object_id) is the procedure ID. Example See procedure_descriptor. describeProcedureContex4.1.7 t Description Returns a detailed description of a context procedure. The returned array is of the procedure_context_descriptor type. API version v.2 Syntax describeProcedureContext (p_object_id) where p_object_id (type object_id) is the procedure ID. Example See procedure_context_descriptor. 4.1.8 getTableByTitle Description Takes a name of a table or procedure in the GUI and returns the ID of the first table/procedure with such name. The ID returned by the function is a character string. API version v.1. In API v.2, use getObjectId instead. Syntax getTableByTitle (p_title) where p_title (type string) – name of a table or procedure in the GUI. Example Request: getTableByTitle (‘System users’) Response: 02.2102 Notes 1. The name should be in the language which was selected by the authorized user in the GUI. 2. Make sure that you use the table name from the table header and not the name in the object tree to the left. In some rare cases they can be different (see the figure below).

Available SR-S4500 functions | 31 © 2014 SwitchRay Inc. 3. Frequent ID queries through the getTableByTitle() function are unadvisable as they can affect performance of your external application. 4.1.9 describeColumns Description Takes a table ID and returns an array of the column_desc type for all columns of the table. API version v.1. In API v.2, use describeTable, describeProcedure and describeProcedureContext instead. Syntax describeColumns (p_table_hi) where p_table_hi (type string) is the table ID. 4.1.10 getColumnLookup Description Returns a list of pre-defined column values with their GUI names. The returned array is of the available_values type. The function returns an empty array if no value type restrictions are set for the column. API version v.1. In API v.2, use getLookup instead. Syntax GetColumnLookup (p_table_hi, p_column_name) where: p_table_hi (type string) – ID of the table; p_column_name (type string) – the internal name of the look-up column.

32 | API for external applications SR-S4500 © 2014 SwitchRay Inc. 4.2 Row set functions Row set functions allow you to perform all the basic operations with tables. 4.2.1 selectRowset Description Returns a selection of rows from a table with a filter and sort applied. The returned array is of the rowset type. API version v.1, v.2 Syntax selectRowset (p_table_hi, p_filter, p_sort, p_limit, p_offset, p_columns) where: p_table_hi (type string) – ID of the target table for rows selection; p_filter (type filter) – filter applied to the table (by default the value is NULL and no filter is applied); p_sort (type sort) – sorting method applied to the table (by default the value is NULL and no sorting is done); p_limit (type int) – maximum number of rows selected (the default value is NULL and there is no limitation); p_offset (type int) – offset for the selection start row; p_columns (type columns_list, only for API v.2) – list of columns to select data from. Examples The returned array has the following format: Array ( [0] => Array ( [col1] => value1 [col2] => value2 [col3] => value3 ) [1] => Array ( [col1] => value1 [col2] => value2 [col3] => value3 ) The returned array in API v.2 has different format: stdClass Object ( [item] => Array ( [0] => stdClass Object (

Available SR-S4500 functions | 33 © 2014 SwitchRay Inc. [item] => Array ( [0] => stdClass Object ( [name] => col1 [value] => value1 ) [1] => stdClass Object ( [name] => col2 [value] => value2 ) [2] => stdClass Object ( [name] => col3 [value] => value3 ) ) ) [1] => stdClass Object ( [item] => Array ( [0] => stdClass Object ( [name] => col1 [value] => value1 ) [1] => stdClass Object ( [name] => col2 [value] => value2 ) [2] => stdClass Object ( [name] => col3 [value] => value3 ) ) ) ) ) Notes For the parameters p_limit and p_offset to be applied, they should not be equal to NULL. Correct request: selectRowset(table_hi, filter, sort, 1, 0) Incorrect requests: selectRowset(table_hi, filter, sort, 1) selectRowset(table_hi, filter, sort, 1, NULL)

34 | API for external applications SR-S4500 © 2014 SwitchRay Inc. 4.2.2 countRowset Description Returns the number of rows in the table matching the filter applied. API version v.1, v.2 Syntax countRowset (p_table_hi, p_filter) where: p_table_hi (type string) – ID of table p_filter (type filter) – filter applied to table data (by default the value is NULL and no filter is applied). 4.2.3 insertRowset Description Inserts a set of rows in the table and returns the number of inserted rows. API version v.1, v.2 Syntax insertRowset (p_table_hi, p_rowset) where: p_table_hi (type string) – ID of the table, where the rows are inserted; p_rowset (type rowset) – set of rows for insertion. Example See Inserting records. 4.2.4 updateRowset Description Modifies records in the table. The records are selected by the filter or by the primary key defined in the row set. API version v.1, v.2 Syntax updateRowset (p_table_hi, p_rowset, p_filter) where: p_table_hi (type string) – ID of the modified table; p_rowset (type rowset) – row set to be changed; p_filter (type filter) – filter applied to the table data.

Available SR-S4500 functions | 35 © 2014 SwitchRay Inc. Example See Editing records. Notes 1. If the p_filter parameter is NULL, the web service searches for primary keys in the p_rowset, finds the rows subject to editing in the table according to the primary keys, and changes the column values according to the values sent in the p_rowset. 2. If the p_filter parameter is not NULL, the web service selects the rows according to the p_filter filter and updates the selected rows according to the first p_rowset row. 4.2.5 deleteRowset Description Removes records from the table according to the filter applied or to the primary keys from the row set. API version v.1, v.2 Syntax deleteRowset (p_table_hi, p_rowset, p_filter) where: p_table_hi (type string) – ID of the target table; p_rowset (type rowset) – row set to be deleted; p_filter (type filter) – filter applied to the table. Notes 1. If the p_filter parameter is NULL, the web service searches the p_rowset for primary keys, and removes rows from the table according to the primary keys. 2. If the p_filter parameter is not NULL, the web service selects rows for removal according to the p_filter values. 4.3 Procedure call functions In API v.2, there are two types of procedures you may call: 1. Classic procedures – GUI dialog windows with a set of parameters (like Debugging > Call simulation); 2. Context procedures – special functions invoked from the pop-up menu in a table (like Special function > Get call log in the table of CDRs). In API v.1, you cannot call procedures. 4.3.1 call Description Calls a classic procedure. The returned array is a list of outgoing parameters described separately for each procedure. API version

36 | API for external applications SR-S4500 © 2014 SwitchRay Inc. v.2 Syntax call (p_object_id, p_params) where: p_object_id (type object_id) – object ID obtained with the getObjectId function; p_params (type parameters) – list of procedure parameters. Example See Calling procedures. Notes Use the describeProcedure function to get incoming and outgoing parameters of the procedure. 4.3.2 callContext Description Calls a context procedure. API version v.2 Syntax callContext (p_object_id, p_pk_rowset, p_filter) where: p_object_id (type object_id) – procedure ID; p_pk_rowset (type rowset) – rows to apply the procedure to; p_filter (type filter) – filter applied to the rows. Notes 1. The parameter p_filter overrides p_pk_rowset (similar to the deleteRowset function). 2. Use the describeProcedureContext function to get incoming and outgoing parameters of the procedure.

Error SR-S4500 descriptions | 37 © 2014 SwitchRay Inc. 5 Error descriptions The SOAP Fault object is used to convey error messages. The range of possible errors encompasses GUI errors, syntax errors happening during filter and sort construction and errors occurring during providing authentication credentials.

38 | API for external applications SR-S4500 © 2014 SwitchRay Inc. 6 Typical examples This section provides instructions based on some simple examples. The code is PHP. 6.1 Creating new SOAP connection Authentication credentials must be supplied in every query addressed to the service. For this, include your login and password in the header of each packet, as shown in the example below. #!/usr/bin/env php <?php // Creating a new SOAP client $client = new SoapClient( 'https://switchray.com/service/?wsdl_v2' ); // Setting authentication headers $headers = array(); // Write your password unencrypted as all the information goes through the secure SSL connection $headers[] = new SoapHeader('auth','Login','admin'); $headers[] = new SoapHeader('auth','Password','admin'); $client->__setSoapHeaders($headers); // ------- The main block begins here ------- // Performing all required actions // ------- The main block ends here ------- ?> In fact this is a typical scenario for performing actions. Later only the main block will be shown, the rest of the scenario remains the same and will be omitted. 6.2 Fetching IDs Perform all actions over tables and procedures with the help of a unique hierarchical identifier "hi". Before performing any actions with objects, you need to obtain this identifier with the help of the getObjectId function. This function takes the table/procedure name as written in the GUI and returns the ID. Example of fetching an ID of the System users table. $obj_id = $client->getObjectId('System users', 'Customers/ Vendors;Administration;System users'); echo $obj_id; The result is 02.2102.01. 6.3 Fetching list of columns/parameters Now that you have the ID of the table/procedure, you may get a list of its columns/parameters. For this, use the functions describeTable and describeProcedure respectively. These functions are for reference purposes only. Let's get a list of columns of the System users table:

Typical SR-S4500 examples | 39 © 2014 SwitchRay Inc. $table = $client->describeTable('02.2102.01'); print_r($table); The output looks like this (shortened version): stdClass Object ( [object_id] => 02.2102.01 [title] => System users [path] => Customers/Vendors;Administration;System users [type] => table [action] => 15 [columns] => stdClass Object ( [item] => Array ( [0] => stdClass Object ( [object_id] => 02.2102.01.01 [title] => ID [path] => [type] => column [name] => user_id [not_null] => [pk] => 1 [data_type] => number [ctl_type] => textbox [have_lookup] => [initial_value] => :user_user_id [data_mask] => [verify_pattern] => [delimiter] => [transform_pattern] => [min_val] => [max_val] => [min_len] => [max_len] => [min_val_exclude] => [max_val_exclude] => [character_maximum_length] => [action] => 1 [represent] => 11 ) ... ) ) [relations] => ) The list of columns is in the array $table->columns->item. There you can find internal column names used in SOAP (name) with their GUI equivalents (title). For more information about other array elements, refer to the section column_descriptor/parameter_descriptor. It is recommended to save this list somewhere for further use. Some of the columns may have a predefined set of values (for instance, some drop-down lists). If a value

40 | API for external applications SR-S4500 does not match any value from this set, the query will not be validated and you will get an error. Such columns have the flag have_lookup=1. To get a list of possible values for such column, use the getLookup function (also for reference purposes only): © 2014 SwitchRay Inc. print_r($client->getLookup('02.2102.01', 'role_id')); The result is the following: stdClass Object ( [item] => Array ( [0] => stdClass Object ( [key] => 7 [value] => Accounting manager ) [1] => stdClass Object ( [key] => 1 [value] => Administrator ) [2] => stdClass Object ( [key] => 3 [value] => Administrator (hosted softswitch) ) [3] => stdClass Object ( [key] => 4 [value] => Administrator (hosted softswitch, view only) ) [4] => stdClass Object ( [key] => 2 [value] => Administrator (view only) ) [5] => stdClass Object ( [key] => 6 [value] => DP and RP manager ) [6] => stdClass Object ( [key] => 5 [value] => Equipment manager )

Typical SR-S4500 examples | 41 © 2014 SwitchRay Inc. [7] => stdClass Object ( [key] => 8 [value] => Report manager ) ) ) You may use either internal values (key) or GUI strings (value). 6.4 Inserting records Now let's insert records into the table. For this, use the insertRowset function. You can insert not only single table rows, but also row sets. Each row is an associative array ("name"-"value" elements). If you miss some mandatory column, the web service will respond with an error message. For example, let's insert two rows in the table: echo $client->insertRowset( '02.2201.01', array( array( array( 'name' => 'enable', 'value' => '1' ), array( 'name' => 'domain_hi', 'value' => '01' ), array( 'name' => 'lang_id', 'value' => 'English' ), array( 'name' => 'role_id', 'value' => 'Administrator' ) ), array( array( 'name' => 'enable', 'value' => '1' ), array( 'name' => 'domain_hi', 'value' => '01' ), array( 'name' => 'lang_id', 'value' => 'English' ),

42 | API for external applications SR-S4500 © 2014 SwitchRay Inc. array( 'name' => 'role_id', 'value' => 'Administrator' ) ) ) ); The web service responds: Fatal error: Uncaught SoapFault exception: [500] Error. Row 1, column(s): user_nm: value must be non-empty in /var/www/mvts2/test_api.php:87 Stack trace: #0 /var/www/mvts2/test_api.php(87): SoapClient->__call('insertRowset', Array) #1 /var/www/mvts2/test_api.php(87): SoapClient->insertRowset('02.2102.01', Array) #2 {main} thrown in /var/www/mvts2/test_api.php on line 87 This means that we missed the mandatory column 'user_nm'. Let's include it into the both rows: array( 'name' => 'user_nm', 'value' => 'test1' ) and array( 'name' => 'user_nm', 'value' => 'test2' ) The function will return the number of successfully inserted rows: 2. In the DB (the table System users) two new users with the names test1 and test2 will appear. The web service validates uniqueness of values where required. For example, if you launch the above script again, you will get an error: Fatal error: Uncaught SoapFault exception: [501] Column(s) "Customer/Vendor", "Name" are constrained to be unique. Entered value is already present. in /var/ www/mvts2/test_api.php:95 Stack trace: #0 /var/www/mvts2/test_api.php(95): SoapClient->__call('insertRowset', Array) #1 /var/www/mvts2/test_api.php(95): SoapClient->insertRowset('02.2102.01', Array) #2 {main} thrown in /var/www/mvts2/test_api.php on line 95 6.5 Editing records To edit a record, use the updateRowset function. To define rows to be updated, you can specify a filter or let the function find the record automatically by primary key. Assume there is a row set in the table System users with a primary key. When you send a query for editing, the web service will find a primary key in the supplied rows (in our case it is user_id) and update values in the row with the primary key matching the one from the query. If there is no such row, the function will return

Typical SR-S4500 examples | 43 © 2014 SwitchRay Inc. an empty result and no update will happen. If you need to update a group of users according to some specific criteria or by a field which is not a primary key, use the filter parameter. 6.5.1 Updating by primary key Consider the following example: echo $client->updateRowset( '02.2201.01', array( array( array( 'name' => 'user_id', 'value' => '168' ), array( 'name' => 'role_id', 'value' => 'Report manager' ) ), array( array( 'name' => 'user_id', 'value' => '169' ), array( 'name' => 'role_id', 'value' => 'Report manager' ) ) ) ); The result of this script will be: 2. That is, two rows updated. In the supplied row, the web service finds 'user_id' (it is the primary key) and changes other parameters (in this example it is 'role_id') of the updated row. When using updates in this fashion it is possible to perform a batch update. The rows will be processed in the order they are supplied to the server. If the server receives two updates with identical keys, the last update will take precedence. 6.5.2 Updating with filter A simple filter is shown in the example below (for more information about building more complex filters, refer to the section filter). $filter = array( 'type' => 'cond', 'column' => 'user_nm', 'operator' => 'like',

44 | API for external applications SR-S4500 © 2014 SwitchRay Inc. 'value' => 'test%' ); echo $client->updateRowset( '02.2201.01', array( array( array( 'name' => 'role_id', 'value' => 'Report manager' ) ) ), $filter ); The result of this script will be: 2. That is, two rows updated. When updating with filter, the web service uses only the first updateRowset query. All others are ignored. 6.6 Deleting records You can delete table rows with the help of the deleteRowset function in the way similar to the updating: either using the primary key, or using the filter. The filter is used only if the p_rowset parameter is empty. 6.7 Selecting data from the table This example shows how to select data from the System users table. Only users with the IDs starting with “test” are selected. 1. Get the table ID: $table_hi = $client->getObjectId('System users', 'Customers/ Vendors;Administration;System users'); The obtained $table_hi value is “02.2209.01”. It is recommended to save it for further use. Frequent ID queries through the getObjectId()function are unadvisable as they can affect the performance of your external application. 2. Request the information about columns and print it onscreen. print_r($client->describeTable($table_hi)); The expected output will look similar to the following: Array ( [0] => stdClass Object ( [object_id] => 02.2102.01.01 [title] => ID [path] => [type] => column [name] => user_id

Typical SR-S4500 examples | 45 © 2014 SwitchRay Inc. [not_null] => [pk] => 1 [data_type] => number [ctl_type] => textbox [have_lookup] => [initial_value] => :user_user_id [data_mask] => [verify_pattern] => [delimiter] => [transform_pattern] => [min_val] => [max_val] => [min_len] => [max_len] => [min_val_exclude] => [max_val_exclude] => [character_maximum_length] => [action] => 1 [represent] => 11 ) [1] => stdClass Object ( [object_id] => 02.2102.01.02 [title] => Enabled [path] => [type] => column [name] => enable [not_null] => [pk] => [data_type] => boolean [ctl_type] => checkbox [have_lookup] => [initial_value] => 1 [data_mask] => [verify_pattern] => [delimiter] => [transform_pattern] => [min_val] => [max_val] => [min_len] => [max_len] => [min_val_exclude] => [max_val_exclude] => [character_maximum_length] => [action] => 7 [represent] => 7 ) … [5] => stdClass Object ( [object_id] => 02.2102.01.07 [title] => Role [path] => [type] => column

46 | API for external applications SR-S4500 © 2014 SwitchRay Inc. [name] => role_id [not_null] => 1 [pk] => [data_type] => number [ctl_type] => combobox [have_lookup] => 1 [initial_value] => [data_mask] => [verify_pattern] => [delimiter] => [transform_pattern] => [min_val] => [max_val] => [min_len] => [max_len] => [min_val_exclude] => [max_val_exclude] => [character_maximum_length] => [action] => 7 [represent] => 15 ) ) This means that the table comprises 6 columns. 3. Create a filter for the selection: $filter = array( 'type' => 'cond', 'column' => 'user_nm', 'operator' => 'like', 'value' => 'test%' ); And a sort method: $sort = array( array( 'column' => 'user_nm', 'dir' => 'asc' ) ); 4. Make a list of columns to be selected: $columns = Array( 'user_nm', 'lang_id', 'role_id' ); 5. Make a selection of 10 rows starting from the second one (numbering starts from zero) applying the filter and sort: $rowset = $client->selectRowset($table_hi,$filter,$sort,10,1,$columns);

Typical SR-S4500 examples | 47 © 2014 SwitchRay Inc. print_r($rowset); Thus, the desired selection is returned in the $rowset array and output onscreen as: stdClass Object ( [item] => stdClass Object ( [item] => Array ( [0] => stdClass Object ( [name] => user_nm [value] => test2 ) [1] => stdClass Object ( [name] => lang_id [value] => 1 ) [2] => stdClass Object ( [name] => role_id [value] => 8 ) [3] => stdClass Object ( [name] => sys_rownum [value] => 2 ) ) ) ) 6.8 Calling procedures To run a classic procedure, use the call function. It takes an ID of the procedure and a list of parameters. Let's build a statistical report via API: 1. Get the procedure ID: $obj_hi = $client->getObjectId('Create report', 'Statistics;Advanced reports'); The obtained $obj_hi value is “02.2204.01”. It is recommended to save it for further use. Frequent ID queries through the getObjectId()function are unadvisable as they can affect the performance of your external application. 2. Request the information about parameters in the Create report dialog box and print it onscreen. print_r($client->describeProcedure($obj_hi)->parameters->item); The expected output will look similar to the following: Array

48 | API for external applications SR-S4500 © 2014 SwitchRay Inc. ( [0] => stdClass Object ( [object_id] => 02.2204.01.01 [title] => Report to be based on [path] => [type] => parameter [name] => p_can_use_stat [not_null] => 1 [data_type] => string [ctl_type] => combobox [have_lookup] => 1 [initial_value] => 1 [data_mask] => [verify_pattern] => [delimiter] => [transform_pattern] => [min_val] => [max_val] => [min_len] => [max_len] => [min_val_exclude] => [max_val_exclude] => [character_maximum_length] => [direction] => in ) [1] => stdClass Object ( [object_id] => 02.2204.01.02 [title] => From [path] => [type] => parameter [name] => p_start_date [not_null] => 1 [data_type] => datetime [ctl_type] => datebox [have_lookup] => [initial_value] => select trunc(sysdate, 'dd') from dual [data_mask] => [verify_pattern] => [delimiter] => [transform_pattern] => [min_val] => [max_val] => [min_len] => [max_len] => [min_val_exclude] => [max_val_exclude] => [character_maximum_length] => [direction] => in ) [2] => stdClass Object

Typical SR-S4500 examples | 49 © 2014 SwitchRay Inc. ( [object_id] => 02.2204.01.03 [title] => Through [path] => [type] => parameter [name] => p_end_date [not_null] => 1 [data_type] => datetime [ctl_type] => datebox [have_lookup] => [initial_value] => select sysdate from dual [data_mask] => [verify_pattern] => [delimiter] => [transform_pattern] => [min_val] => [max_val] => [min_len] => [max_len] => [min_val_exclude] => [max_val_exclude] => [character_maximum_length] => [direction] => in ) … ) 3. Define the required parameters: $parameters = array( array( 'name' => 'p_can_use_stat', 'value' => 'CDR only' ), array( 'name' => 'p_start_date', 'value' => '2013-08-01 00:00:00' ), array( 'name' => 'p_end_date', 'value' => '2013-09-01 00:00:00' ), array( 'name' => 'p_area_basis', 'value' => 'area' ), array( 'name' => 'p_src_lerg_basis', 'value' => 'src_num' ), array( 'name' => 'p_dst_lerg_basis', 'value' => 'dst_num'

50 | API for external applications SR-S4500 © 2014 SwitchRay Inc. ), array( 'name' => 'p_time_unit', 'value' => 'MI' ), array( 'name' => 'p_dial_string_group', 'value' => '1' ), array( 'name' => 'p_dial_string_lrn_group', 'value' => '1' ), ar

Add a comment

Related presentations

Online rank tracker!

Online rank tracker!

October 20, 2014

Rank tracker is a tool that helps everyone to find the traffic which a particular ...

Facebook y sus avances

Facebook y sus avances

November 11, 2014

facebook y sus avances

Preguntas Investigación

Preguntas Investigación

November 11, 2014

es una presentación de preguntas interesantes

Cartes interactives, frises chronologiques, diaporamas, carte Google Streetview in...