Difference between revisions of "Operation daml"

From help.aarenet.com
Jump to: navigation, search
(HTTP POST Data Exchange {{Help_Status | |   }})
(HTTP POST Data Exchange {{Help_Status | |   }})
Line 296: Line 296:
 
</daml>
 
</daml>
 
}}
 
}}
<br style="clear:both">
 
  
  

Revision as of 09:44, 12 June 2017

Template:Page Help Links



The Aarenet VoIP Switch Administrator, Operator and 3rd party CRM programmer find here:

  • How to access the DataAccessCenter
  • The description of the Data Access Markup Language DAML protocol


Contents



→ Top

Overview of the DataAccessCenter  

The DataAccessCenter offers a HTTP/HTTPS based interface which allows 3rd-party applications to access the operational data of the Aarenet VoIP Switch. Therefore it is predestined for the configuration of the Aarenet VoIP Switch via a CRM system of the provider.

The DataAccessCenter offers with the DAML interface (Data Access Markup Language DAML) an API and protocol to configure operational data of the Aarenet VoIP Switch.


The following features distinguish the DataAccessCenter:

  • The DAML interface allows the configuration of all customer parameters of the VoIP Switch.
  • The DAML documents are exchanged with the HTTP/HTTPS protocol.
  • The access is protected by a HTTP-Authentication.
  • The interface supports XML-based data (version XML 1.0).
  • The XLS transformation XSLT is supported for checks and formalizing.
  • For the immediate use DAML-Formats are prepared for managing of account, phone numbers and other often used features.
  • Customized DAML-Formats can be created when required.


DAML allows to configure the following operative parameters:

  • "Account":
    For the creation and treatment of customers account
  • "Address"
    For the creation and treatment of public and internal phone numbers in customer accounts and vPBX
  • etc.


DAML allows queries of the configured parameters or other data:

  • Account:
    Query of all account names
  • Connection list:
    Query of the CDR of the last N connections of a phone number
  • etc.


The DAML protocol bases on XML formatted documents (Introduction to XML):

  • The basic rules of the XML standards are valid, version XML 1.0
  • The order of the XML elements is free
  • If XML elements are not provided during the creation of an instance, the default value of the Aarenet VoIP Switch is considered.


The DAML protocol can be customized with XLST script. Possibilities are:

  • Make the interface stable
  • Define defaults
  • Do some rough checks

With XLST a XML document can be converted into another XML document. With the DAML interface it is possible to treat incoming XML documents, e.g. from a CRM application, with defined XLST commands, before they are processed as DAM-documents. Vice versa outgoing XML documents can be reworked with defined XLST commands and the result sent to the CRM application.


Note

XLST conversions must be developed and checked in corporation with the Aarenet engineering.





→ Top

How To Start with the DataAccessCenter  


→ Top

Get in Touch with DAML  

  1. Get an DataAccessCenter account on:
    • Test Aarenet VoIP Switch
    • Pre-productive Aarenet VoIP Switch
  2. Get IP access to the DataAccessCenter of this Aarenet VoIP Switch
  3. Download the executable DAML Test Scripts:
    "Download DAML Test Scripts for a Residential User" ZIP
    "Download DAML Test Scripts for a SIP Trunk" ZIP
    "Download DAML Test Scripts for a vPBX" ZIP
  4. Play around with the DAML Test Scripts for getting a feeling how it works
  5. Do configuration in the ConfigCenter and read it out with DAML




→ Top

CRM Implementation  

  1. Implement the DataAccessCenter access and HTTP-Digest Authentication
  2. For a starter implement HTTP-Get for a query
    • Basic read
    • Queries for, e.g.:
      • Ruleset
  3. Implement the basic HTTP-Post data exchange for "write, "read", "delete"
  4. Implement the "Account Treating" :
    • Basic create, read, delete
    • Parameter add, modify, delete for:
      • account
      • tenant
      • info
      • SIP credentials
      • etc.
  5. Implement the "Address Treating" :
    • Basic create, read, delete
    • Parameter add, modify, delete for:
      • number
      • etc.
  6. Implement the basic HTTP-Get data exchange for data queries :
    • Queries for:
      • Ruleset
      • etc.




→ Top

Best Practices with DAML Parameters  


→ Top

Not Documented DAML Parameter  

The DAML interface development evolves continuously. This documentation may lag behind the development of features and parameters


If upon a DAML read out such a DAML parameter is discovered and its naming points to a feature of interest then:

  1. Login into the ConfigCenter
  2. Search for a matching parameter name and study its possible configurations
  3. Modify this possibly matching parameter
  4. Make e new read out via DAML and compare it with the first read out. See if it matches your expectataions.


If this process is not successfull then contact the "VoIP Switch Supplier Support"




→ Top

Usage of Diverse DAML Parameter  

  • Use for the "Account Name" the CRM "Customer ID"
  • Write in the "Account Info" information that a supporter helps to find a customer, without consulting the CRM for its ID




→ Top

Provisioning the DataAccessCenter for CRM Application Access  

To grant an external CRM application access to the operational data via DataAccessCenter the following configuration at DataAccessCenter component level must be set up:

  1. HTTP / HTTPS- Authorization-Credentials:
    Defines the username and password the CRM application has to use for accessing the DataAccessCenter
  2. Group-based Authorization:
    Defines to which groups the CRM application has access.
  3. Authorization for the use of to DAML-Documents and DAML-Queries:
    Defines which DAML-Documents and DAML-Queries the CRM application is allowed to use. It is possible to specifiy the rights to "create", "read", "write", "delete".
  4. XLTS files to be used for interpretation and formatting:
    Defines, whether the configuration data must be pre and/or reworked by means of XLST conversions.


Note

The configuration of the DataAccessCenter component has to be accomplished in close collaboration between the provider and the Aarenet project manager.





→ Top

Access via IP Network to the DataAccessCenter  

For the DataAccessCenter the URL must have the following form:

DAML Access:

https://</nowiki><IP_ADDRESS>:8447/dataaccesscenter




→ Top

DAML-Document Exchange via HTTP/HTTPS  


→ Top

HTTP DIGEST Authentication  

Prior the transfer of DAML-documents a CRM application has to apply the HTTP-Digest authentication in order to get access to the DataAccessCenter interface.




→ Top

HTTP POST Data Exchange  

The CRM application must transmit its instructions with a HTTP-POST-Request toward the DataAccessCenter. By the use of the directive POST big data volumes can be transmitted in the HTTP body. Moreover, they are not visible within the URL.


The CRM must transfer with HTTP POST a DAML-document with the following directives:

write:

  • The given data will be written. This directive creates or modifies instances.

read:

  • The given data will be read and delivered.

delete:

  • The given data will be deleted.


DAML-Document Example:

 

<daml command="read">

. . .

</daml>





→ Top

HTTP GET Data Exchange  

DAMl Queries permit the queries of data which cannot be determined with usual DAML-Directives, e.g. connections list.

DAML-Queries are executed with HTTP GET Requests.

For the DataAccessCenter the URL must have the following form:

DAML-Query Example:

https://</nowiki><IP_ADDRESS>:8447/dataaccesscenter/daml?query=DAML_QUERY_NAME




→ Top

HTTP RESPONSE (Execution and Error Codes)  

After the data were successfully transmitted and treated, the response code "200 OK" is returned.


Note

"200 OK" means that the request could be treated by the DataAccessCenter but not that the outcome is correct.


For example:

  • Unknown XML fields are ignored and not reported with an error code
  • A read request for an account with a wrong written account name will return a "200 OK" with an empty response
  • A write request to an account with a wrong written account name will return a "200 OK" but the expected account was not modified but a new account with the wrong written name was created with just the modified parameter configuration in it.
  • A query without correct query directive will return a "200 OK" with an empty response.



In the case of an error a code "4xx <ERROR_DESCRIPTION>" or "5xx <ERROR_DESCRIPTION>" is returned, e.g., "500 Internal Server Error".

If the cause of the problem is not deductive from the error message, the error situation can be examined from the information in the log file of the component DataAccessCenter.




→ Top

DAML-Document "Account" for Treating Customer Accounts  

This DAML-document allows the treatment of accounts, its features and parameters:


The SIP addresses (phone numbers) which are associated with the account are treated with the DAML-Document for Treating "Address".




→ Top

DAML XML-Container for "Account"  

All XML fields are listed in the account container:

  • The XML field <account> defines the XLS account container
  • Mandatory is the XML field <accountName> which identifies the account unambiguously.
  • The order of the XML fields is arbitrary


Account-Container for "Account":

 
<account>
< accountName>ACC_NAME</accountName>
. . .
<featureN>
<parameterN>PARAMETER_N</parameterN>
. . .
</featureN>
. . .
<parameterA>PARAMETER_A</parameterA>
. . .
</account>





→ Top

DAML-Document for Create, Delete, Read and Write an "Account"  


→ Top

Create an "Account"  

By creating an account all its features and parameters may be configured too.

DAML-Document:

 

<daml command="write">

<account>
<accountName>ACC_NAME</accountName>
. . .
<featureN>
<parameterN>PARAMETER_N</parameterN>
. . .
</featureN>
. . .
<parameterA>PARAMETER_A</parameterA>
. . .
</account>

</daml>



Examples see:




→ Top

Delete an "Account"  

By deleting an account all its:

  • Feature and parameter configurations will be deleted too
  • Associated addresses and their configurations will be deleted too


DAML-Document Example:

 

<daml command="delete">

<account>
<accountName>an-acc-0021</accountName>
</account>

</daml>





→ Top

Read an "Account"  

By reading an account all its:

  • Feature and parameter configurations will be read


DAML-Document Example:

 

<daml command="read">

<account>
<accountName>an-acc-0021</accountName>
</account>

</daml>





→ Top

Modify, Add or Delete an Account's Parameter or Feature  

By writing to an existing account its parameters can be:

  • Modified
  • Added
  • Deleted


Warning

Make sure that you write the account name and/or XML names correctly. Else the result may be unpredictable even when the response is 200 OK!

For details see chapter "HTTP RESPONSE"



Modifing:
By re-writing an account's parameter its configuration will be changed:

  • The feature and/or parameter configurations will be modified
  • Special modifying procedures are required for:


Adding:
By adding a parameter its configuration will be created:

  • The feature and/or parameter configurations will be created


Deleting:
By writing an "empty" value to a parameter:

  • The feature and/or parameter will be deleted
  • Special deleting procedures are required for:


DAML-Document Example "Modify a parameter":

 

<daml command="write">

<account>
<accountName>an-acc-0021</accountName>
<info>Test Account: Tel 012 345 67 89, invalidated 1.1.2016</info>
</account>

</daml>



DAML-Document Example "Add a parameter":

 

<daml command="write">

<account>
<accountName>an-acc-0021</accountName>
<validUntil>2016-01-01T09:30:00</validUntil>
</account>

</daml>



DAML-Document Example "Delete a parameter ":

 

<daml command="write">

<account>
<accountName>an-acc-0021</accountName>

<!-- Variant 1: -->

<parameterA></parameterA>

<!-- Variant 2: -->

<parameter/>
</account>

</daml>





→ Top

"Account" Parameter Configuration  


→ Top

"Account" Basic Parameter  

DAML Authorization needed for:

  grantAccessToAccounts <USERNAME> read/write



List of Parameters:

 
<account>
. . .
<accountName>ACC_NAME</accountName>
<info>ACC_INFO</info>
<tenant>ACC_TENANT</tenant>
. . .
<username>ACC_SIP_USERNAME</username>
<password>ACC_SIP_PASSWORD</password>
<maxChannels>ACC_CHANNEL</maxChannels>
<emergencyLocation>ACC_LOCATION</emergencyLocation>
. . .
</account>




  Variable: Format: Range: Default: Description: Version:
1
<accountName>
     ACC_NAME
</accountName>
String max. 32 characters none Mandatory configuration!

Assigns the unambiguous name of the account

5.2
2
<tenant>
     ACC_TENANT
</tenant>
String max. 128 characters none Assigns the tenant of the account

Note:
The tenant must be already created in the system of the VoIP Switch!

5.2
3
<info>
     ACC_INFO
</info>
String max. 128 characters none Any information 5.2
4
<username>
     ACC_SIP_USERNAME
</username>
String max. 32 characters none Mandatory configuration!

Assigns the unambiguous SIP user name of the account

Note:
Without SIP username no SIP CPE can register to a telephone number (SIP address) of this account!

5.2
5
<password>
     ACC_SIP_PASSWORD
</password>
String max. 32 characters none Mandatory configuration!

Assigns the SIP password of the account

Note:
Without SIP password no SIP CPE can register to a telephone number (SIP address) of this account!

5.2
6
<maxChannels>
     ACC_CHANNEL
</maxChannels>
String Empty

or
number >=0

empty Determines how many concurrent connections are possible for this account.

Value Range:

  • empty: No limitations
  • 0  : no channels → no incoming and outgoing connections are possible
  • >=1  : Exact number of possible channels
5.2
7
<emergencyLocation>
     ACC_LOCATION
</emergencyLocation>
String empty or defined emergency location; max. 64 characters empty Assigns one Emergency Location to the account.

Value Range:

  • empty:
The system-wide default emergency location is used
  • Location Name:
The location must be already configured in the emergency call configuration of this Aarenet VoIP Switch!

The available locations can be requested with DAML-Query: "List of all Emergency Locations"

5.2





→ Top

"Account" Routing Parameter  

DAML Authorization needed for:

  grantAccessToAccounts <USERNAME> read/write



List of Parameters:

 
<account>
. . .
<routingTable>ACC_ROUTING_TABLE</routingTable>
<ruleset>ACC_RULESET</ruleset>
. . .
<account>



  Variable: Format: Range: Default: Description: Version:
1
<routingTable>
     ACC_ROUTING_TABLE
</routingTable>
String empty or defined Routing Table Name; max. 45 characters empty Assigns one Routing Table to the account

Value Range:

  • empty:
Only OnNet connections are possible
  • Routing Table Name:
The routing table name must be already configured in the routing configuration of this Aarenet VoIP Switch!
5.2
2
<ruleset>
     ACC_RULESET
</ruleset>
String defined Ruleset Name; max. 128 characters none Assigns none or n Rulesets to the account

Value Range:

  • none:
No Ruleset are used
  • Ruleset Name:
The Ruleset name must be already configured in the routing configuration of this Aarenet VoIP Switch!
5.2



Note

Remarks for modifying or deleting of Ruleset:

  1. If a Ruleset Name has to be modified/deleted then all configured Ruleset’s of this account must be deleted first, e.g.:
    <daml command="write">
    <account>
    <accountName>SIP_TRUNK_DAML</accountName>
    <ruleset/>
    </account>
    </daml>
  2. Then all needed Ruleset have to be rewritten again, e.g.:
    <daml command="write">
    <account>
    <accountName>SIP_TRUNK_DAML</accountName>
    <ruleset>Subscriber</ruleset>
    <ruleset>Block : All Outgoing 090* Calls</ruleset>
    <ruleset>Signal : 3 Digit Signaling</ruleset>
    </account>
    </daml>





→ Top

"Account" Rating Parameter  

DAML Authorization needed for:

  grantAccessToAccounts <USERNAME> read/write



List of Parameters:

 
<account>
. . .
<pricelist>ACC_PRICELIST</pricelist>
<sendAoc>ACC_AOC</sendAoc>
. . .
<account>



  Variable: Format: Range: Default: Description: Version:
1
<pricelist>
     ACC_PRICELIST
</pricelist>
String empty or defined Pricelist Name; max. 32 characters empty A configured Pricelist Name

Value Range:

  • empty:
No AOC, TopStop or Call Rating is possible if no price list is assigned to the account
  • Pricelist Name:
The pricelist must be already configured in the rating configuration of this Aarenet VoIP Switch!
5.2
2
<sendAoc>
     ACC_AOC
</sendAoc>
String Selection:
  • true
  • false
false Activate sending advice of charge AOC to all addresses of the account. 5.2





→ Top

"Account" TopStop Parameter  

DAML Authorization needed for:

  grantAccessToAccounts <USERNAME> read/write



List of Parameters:

 
<account>
. . .
<sysAccountTopStop>
<type>TOPSTOP_OWNER</type>
 
<valueMax>TOPSTOP_MAX</valueMax>
<monthlyReset>TOPSTOP_RESET</monthlyReset>
<alarmLevel>TOPSTOP_ALARM_LEVEL</alarmLevel>
 
<dailyMax>TOPSTOP_DAILY_MAX</dailyMax>
<dailyReset>TOPSTOP_DAILY_RESET</dailyReset>
 
<alarmEmail>TOPSTOP_EMAIL</alarmEmail>
<blockAlarmSent>TOPSTOP_EMAIL_SENT</blockAlarmSent>
 
<valueCurrent>TOPSTOP_CURRENT_VALUE</valueCurrent>
<valueCurrent mode="TOPSTOP_CURRENT_VALUE_UPDATE_MODE">TOPSTOP_CURRENT_VALUE_UPDATE</dailyCurrent>
 
<dailyCurrent>TOPSTOP_CURRENT_DAILY_VALUE</dailyCurrent>
<dailyCurrent mode="TOPSTOP_CURRENT_DAILY_UPDATE_MODE">TOPSTOP_DAILY_VALUE_UPDATE</dailyCurrent>::: </sysAccountTopStop>
. . .
</account>




  Variable: Format: Range: Default: Description: Version:
1
<type>
     TOPSTOP_OWNER
</type>
String Selection:
  • SYS
  • ACC
  • ADD
SYS Assigns with which user role a TopStop was created. This defines also for which role the TopStop is visible.

SYS:

The TopStop was created by a system administrator. It is visible only for the role system administrator.

ACC:

The TopStop was created by an account operator. It is visible for the roles system administrator and account operator.

ADD:

The TopStop was created by a subscriber. It is visible for the roles system administrator, account operator and subscriber.
5.2
2
<valueMax>
     TOPSTOP_MAX
</valueMax>
Number Empty

or
value >= 0.00

Empty Assigns the charging limit per month for the account. It may not be exceeded by the charging sum of all connections of this account.

Empty:

No charging limit is supervised
5.2
3
<monthlyReset>
     TOPSTOP_RESET
</monthlyReset>
String Selection:
  • true
  • false
true Assigns if the monthly maximum limit is reset at the starting of a new month.

If set to "false" the maximum limit can be interpreted as prepaid charge.

5.9
4
<alarmLevel>
     TOPSTOP_ALARM_LEVEL
</alarmLevel>
Number Empty

or
value = 0.0 – 1.0

Empty Assigns at with percentage of the monthly maximum limit a warning email is generated; e.g. 70%:
150.00 * 0.7 = 105.00

Empty:

No near limit is monitored.
5.2
5
<dailyMax>
     TOPSTOP_DAILY_MAX
</dailyMax>
Number Empty

or
value >= 0.00

Empty Assigns the charging limit per day for the account. It may not be exceeded by the charging sum of all connections of this account.

Empty:

No charging limit is supervised
5.2
6
<dailyReset>
     TOPSTOP_DAILY_RESET
</dailyReset>
String Selection:
  • true
  • false
true Assigns if the daily maximum limit is reset at the starting of a new day.

If set to "false" the maximum limit can be interpreted as prepaid charge.

5.9
7
<alarmEmail>
     TOPSTOP_EMAIL
</alarmEmail>
String Empty

or
Email Address, max. 64 characters

Empty Assigns the email address which is informed when the:
  • the monthly near limit level is reached
  • the daily or monthly charging limits is reached

Empty:

No email will be sent.

Email address:

At overrun of the level and the charging limit an email is sent.
5.2
8
<blockAlarmSent>
     TOPSTOP_EMAIL_SENT
</blockAlarmSent>
String Selection:
  • true
  • false
false Read Only!

Indicates that an email was sent when the daily or monthly charging limit was reached.

5.9
9
<valueCurrent>
     TOPSTOP_CURRENT_VALUE
</valueCurrent>
Number >= 0.00 Read Only!

Current total charges since resetting the charging limit.

5.9
10
mode="TOPSTOP_CURRENT_VALUE_UPDATE_MODE" String Selection:
  • force
  • update
To modify current value in <valueCurrent> the "mode" attribute is required


  • force:
  • This forces the counter to be set to the given value.
The current value is lost, the daily-max may be exceeded.
  • update:
  • No value may be specified as it is recalculated from rating-database.
→ This might slow down the provisioning!


Examples:
<valueCurrent mode="force">10.00<valueCurrent/>
<valueCurrent mode="update"/>

5.9
11
TOPSTOP_CURRENT_VALUE_UPDATE Number value >= 0.00 Assigns the new value for the "mode=force"

Example:
<valueCurrent mode="force">10.00<valueCurrent/>

5.9
12
<dailyCurrent>
     TOPSTOP_CURRENT_DAILY_VALUE
</dailyCurrent>
Number >= 0.00 Read Only!

Current total charges since resetting the charging limit.

5.9
13
mode="TOPSTOP_CURRENT_DAILY_UPDATE_MODE" String Selection:
  • force
  • update
To modify current daily value in <dailyCurrent> the "mode" attribute is required


  • force:
  • This forces the counter to be set to the given value.
The current value is lost, the daily-max may be exceeded.
  • update:
  • No value may be specified as it is recalculated from rating-database.
→ This might slow down the provisioning!


Examples:
<dailyCurrent mode="force">10.00<dailyCurrent/>
<dailyCurrent mode="update"/>

5.9
14
TOPSTOP_DAILY_VALUE_UPDATE Number value >= 0.00 Assigns the new value for the "mode=force"

Example:
<dailyCurrent mode="force">10.00<dailyCurrent/>

5.9



Note

Remarks for modifying or deleting of TopStop:

  1. If a TopStop has to be modified/deleted then all configured TopStop of this account must be deleted first, e.g.:
    <daml command="write">
    <account>
    <accountName>SIP_TRUNK_DAML</accountName>
    <sysAccountTopStop/>
    </account>
    </daml>
  2. Then all needed TopStop have to be rewritten again, e.g.:
    <daml command="write">
    <account>
    <accountName>SIP_TRUNK_DAML</accountName>
    <sysAccountTopStop>
    <type>SYS</type>
    <valueMax>20.0</valueMax>
    <alarmLevel>0.7</alarmLevel>
    <monthlyReset>true</monthlyReset>
    <alarmEmail>info@company.com</alarmEmail>
    <valueCurrent mode="update"/>
    </sysAccountTopStop>
    </account>
    </daml>





→ Top

"Account" Advanced Parameter  

DAML Authorization needed for:

  grantAccessToAccounts <USERNAME> read/write



List of Parameters:

 
<account>
. . .
<validAfter>ACC_VALID_AFTER</validAfter>
<validUntil>ACC_VALID_UNTIL</validUntil>
 
<specialArrangement>ACC_SPECIAL_ARRAGEMENT</specialArrangement>
<useMediaServer>ACC_USE_MEDIA_SERVER</useMediaServer>
<network/>
 
<sendingHoldStream>ACC_HOLD_STREAM</sendingHoldStream>
 
<alarmOnExpiry>ACC_ALARM_ON_EXPIRY</alarmOnExpiry>
<maliciousCallerId>ACC_MCID</maliciousCallerId>
. . .
</account>




  Variable: Format: Range: Default: Description: Version:
1
<validAfter>
     ACC_VALID_AFTER
</validAfter>
String Empty

or
Date/Time

Empty Date/time of the activation of the account (and its associated addresses)

Empty:

The account is active.

Account Valid From:

The account is active beginning at Date/Time.


Date/Time-Format:

The format conforms to the XML standard „xml-DateTime Data Type“:
yyyy-MM-dd'T'HH:mm:ss
5.2
2
<validUntil>
     ACC_VALID_UNTIL
</validUntil>
String Empty

or
Date/Time

Empty Date/Time of the deactivation of the account (and its associated addresses)

Empty:

The account is active.

Account Valid Until:

The account is deactivated beginning at Date/Time.


Date/Time-Format:

The format conforms to the XML standard „xml-DateTime Data Type“:
yyyy-MM-dd'T'HH:mm:ss
5.2


3
<specialArrangement>
     ACC_SPECIAL_ARRAGEMENT
</specialArrangement>
String

Selection:

  • true
  • false
{{{range}}} false When "Special Arrangement" is enabled then the CLIP delivered by the SIP CPE is accepted by the Aarenet VoIP Switch. The feature is also known as "CLIP no Screening".

If it is not activated then the Aarenet VoIP Switch compares the delivered CLIP with the addresses of this account and replaces it with the best match. If there is no best no best then the main number is used as CLIP. If the account has no main number defined in then the Aarenet VoIP Switch rejects the connection setup. Note:
According to the juridical situation of a country this feature may not used or only restrictively!

5.2
4
<useMediaServer>
     ACC_USE_MEDIA_SERVER
</useMediaServer>
String

Selection:

  • true
  • false
{{{range}}} false This parameter is not yet described in detail. Proposed procedure see section "Not Documented DAML Parameter" 5.2
5
<sendingHoldStream>
     ACC_HOLD_STREAM
</sendingHoldStream>
String

Selection:

  • true
  • false
{{{range}}} false 5.2
6
<alarmOnExpiry>
     ACC_ALARM_ON_EXPIRY
</alarmOnExpiry>
String

Selection:

  • true
  • false
{{{range}}} false This parameter is not yet described in detail. Proposed procedure see section "Not Documented DAML Parameter" 5.2
7
<maliciousCallerId>
     ACC_MCID
</maliciousCallerId>
String

Selection:

  • true
  • false
{{{range}}} false This parameter is not yet described in detail. Proposed procedure see section "Not Documented DAML Parameter" 5.2





→ Top

DAML-Document for Treating "Address"  

This DAML-document allows the treatment of a SIP address (telephone number), its features and parameters:

The account which is associated with an address is treated with the DAML-Document for Treating "Account".




→ Top

DAML XML-Container for "Address"  

All XML fields are listed in the address container:

  • The XML field <address> defines the XLS address container
  • Mandatory is the XML field <number> which identifies the address unambiguously.
  • Mandatory is the XML field is <account> which identifies the associated account unambiguously
  • The order of the XML fields is arbitrary


XLS Address-Container for "Address":

 
<address>
<account>ACC_NAME</account>
<number>ADDR_NUMBER</number>
. . .
<featureN>
<parameterN>PARAMETER_N</parameterN>
. . .
</featureN>
. . .
<parameterA>PARAMETER_A</parameterA>
. . .
</address>





→ Top

DAML-Document for Create, Delete, Read and Write an "Address" (Telephony Number)  


→ Top

Create an "Address"  

By creating an address all its features and parameters may be configured too.

DAML-Document:

 

<daml command="write">

<address>
<accountName>ACC_NAME</accountName>
<number>ADDR_NUMBER</number>
. . .
<featureN>
<parameterN>PARAMETER_N</parameterN>
. . .
</featureN>
. . .
<parameterA>PARAMETER_A</parameterA>
. . .
</address>

</daml>



Examples see:




→ Top

Delete an "Address"  

By deleting an address all its:

  • Feature and parameter configurations will be deleted too
  • Associated VoiceBox messages will be deleted too


DAML-Document Example:

 

<daml command="delete">

<address>
<accountName>an-acc-0021</accountName>
<number>0123456789</number>
</address>

</daml>





→ Top

Read an "Address"  

By reading an address all its:

  • Feature and parameter configurations will be read


DAML-Document Example:

 

<daml command="read">

<address>
<accountName>an-acc-0021</accountName>
<number>0123456789</number>
</address>

</daml>





→ Top

Modify, Add or Delete an Address's Parameter or Feature  

By writing to an existing address its parameters can be:

  • Modified
  • Added
  • Deleted


Warning

Make sure that you write the account name, number and/or XML names correctly. Else the result may be unpredictable even when the response is 200 OK!

For details see HTTP RESPONSE



Modifing:
By re-writing an account's parameter its configuration will be changed:

  • The feature and/or parameter configurations will be modified


Adding:
By adding a parameter its configuration will be created:

  • The feature and/or parameter configuration will be created


Deleting:
By writing an "empty" value to a parameter:

  • the feature and/or parameter will be deleted


DAML-Document Example "Modify a parameter":

 

<daml command="write">

<account>
<accountName>an-acc-0021</accountName>
<number>0123456789</number>
<language>en</language>
</account>

</daml>



DAML-Document Example "Add a parameter":

 

<daml command="write">

<account>
<accountName>an-acc-0021</accountName>
<number>0123456789</number>
<validUntil>2016-01-01T09:30:00</validUntil>
</account>

</daml>



DAML-Document Example "Delete a parameter ":

 

<daml command="write">

<address>
<accountName>an-acc-0021</accountName>

<!-- Variant 1: -->

<validUntil></validUntil>

<!-- Variant 2: -->

<validUntil/>
</address>

</daml>





→ Top

"Address" Parameter Configuration  

DAML Authorization needed for:

  grantAccessToAccounts <USERNAME> read/write



List of Parameters:

 
<address>

<!-- SIP Address Main Parameterr -->

<account>ADDR_ACC_NAME</account>
<number>ADDR_NUMBER</number>
<domain>ADDR_DOMAIN</domain>
<displayName>ADDR_DISPLAY</displayName>
 

<!-- SIP Address Registration Parameter -->

<validAfter>ADDR_VALID_AFTER</validAfter>
<validUntil>ADDR_VALID_UNTIL</validUntil>
<portoutNumber>ADDR_PORTOUT_NUMBER</portoutNumber>
<registersViaMainNumber>ADDR_REG_VIA_MAIN</registersViaMainNumber>
<balancedRouting>ADDR_REG_BALANCED</balancedRouting>
 

<!-- Number Attributes & Directives -->

<mainNumber>ADDR_MAIN_NUMB</mainNumber>
<privateNumber>ADDR_PRIVATE_NUMB</privateNumber>
<baseNumber>ADDR_BASE_NUMB</baseNumber>
<signalingOnly>ADDR_SIGNAL_ONLY</signalingOnly>
<singleLocation>ADDR_SINGLE_LOCATION</singleLocation>
<preferredNumber>ADDR_PREFERRED_NUMB</preferredNumber>
<disabled>ADDR_DISABLED</disabled>
<blocked>ADDR_BLOCKED</blocked>
 
<queueLen>ADDR_QUEUE_LENGTH</queueLen>
<priorityCall>ADDR_PRIORITY_CALL</priorityCall>
 
<endpointName>ADDR_ENPOINT_NAME</endpointName>
<mgcpProfile>ADDR_MGCP_PROfIL</mgcpProfile>
<msisdn>ADDR_FMC_1</msisdn>
<msisdn2>ADDR_FMC_2</msisdn2>
 

<!-- Feature: Outgoing Number Presentation -->

<showClip>ADDR_CLIP_SHOW</showClip>
<hideClip>ADDR_CLIP_HIDE</hideClip>
<publicClip>ADDR_CLIP_PUBLIC</publicClip>
 

<!-- Feature: VoiceMail Box -->

<messageBox>
<autoAuthentication>ADDR_VM_AUTO_AUTH</autoAuthentication>
<skipMessageMenu>ADDR_VM_SKIP_MESSAGE</skipMessageMenu>
<language>ADDR_VM_LANGUAGE</language>
<signalNewMessage>ADDR_VM_SIGNAL_NEW_MESSAGE</signalNewMessage>
<subscribedMwiOnly>ADDR_VM_SIGNAL_MWI_ONLY</subscribedMwiOnly>
<email>ADDR_VM_EMAIL</email>
<formatMp3>ADDR_VM_AUDIO_FORMAT</formatMp3>
<blocked>ADDR_VM_BLOCKED</blocked>
<faxOnly>ADDR_VM_FAX_ONLY</faxOnly>
<faxAutoDetect>ADDR_VM_FAX_VOICE_DETECT</faxAutoDetect>
</messageBox>
 

<!-- Feature: Call Forwarding -->

<cfu>ADDR_CFU</cfu>
<cff>ADDR_CFF</cff>
<cfb>ADDR_CFB</cfb>
<cfnr>ADDR_CFNR</cfnr>
<cfo>ADDR_CFO</cfo>
<dnd>ADDR_DND</dnd>
<rrn>ADDR_RRN</rrn>
 

<!-- Feature: Diverse -->

<language>ADDR_LANGUAGE</language>
<callWaiting>ADDR_MGCP_CALL_WAITING</callWaiting>
<callHold>ADDR_MGCP_CALL_HOLD</callHold>
<noOfferOnBusy>ADDR_CALL_NO_OFFER</noOfferOnBusy>
<autoRecord>ADDR_CALL_RECORD_AUTOMATIC</autoRecord>
<recordingEmail>ADDR_CALL_RECORD_EMAIL<recordingEmail>
 

<!-- Feature: vPBX -->

<pbx>ADDR_GROUP_VPBX</pbx>
<groupMember>ADDR_GROUP_VPBX_MEMBER</groupMember>
<presenceGroup>ADDR_GROUP_PRESENCE</presenceGroup>
<monitorGroup>ADDR_GROUP_MONITOR</monitorGroup>
<messageGroup>ADDR_GROUP_MESSAGE</messageGroup>
 

<!-- Feature: AdminCenter Access -->

<addressAdmin>
<username>ADDR_ADMIN_UN</username>
<password>ADDR_ADMIN_PW</password>
<language>ADDR_ADMIN_LANGUAGE</language>
<email>ADDR_ADMIN_EMAIL</email>
</addressAdmin>
</address>





→ Top

"Address" SIP Address Main Parameter  

  Variable: Format: Range: Default: Description: Version:
1
<account>
     ADDR_ACC_NAME
</account>
String max. 32 characters Empty Mandatory configuration!

Assigns the unambiguous name of the account to which the telephone number belongs

5.2
2
<number>
     ADDR_NUMBER
</number>
Number max. 50 characters false Mandatory configuration!

Assigns an unambiguous telephone number

5.2
3
<domain>
     ADDR_DOMAIN
</domain>
String max. 128 characters Empty IP address or FQDN of the Aarenet VoIP Switch. 5.2
4
<displayName>
     ADDR_DISPLAY
</displayName>
String max. 64 characters Empty Displayed name information at the called party side. 5.2





→ Top

"Address" SIP Address Registration Parameter  

  Variable: Format: Range: Default: Description: Version:
1
<validAfter>
     ADDR_VALID_AFTER
</validAfter>
String Date/Time Empty

or
yyyy-MM-dd'T'HH:mm:ss

Date/time of the activation of the telephony number (SIP address)

Empty:

  • The number is active.

Address Valid From:

  • The number becomes active starting at Date/Time.
5.2
2
<validUntil>
     ADDR_VALID_UNTIL
</validUntil>
String Date/Time Empty

or
yyyy-MM-dd'T'HH:mm:ss

Date/time of the deactivation of the telephony number (SIP address)

Empty:

  • The number is active.

Address Valid Until:

  • The number becomes inactive starting at Date/Time.
5.2
3
<portoutNumber>
     ADDR_PORTOUT_NUMBER
</portoutNumber>
String Empty

or
Outpotzing Prefix, max. 50 characters

Empty Needed in Switzerland only!

When ADD_PORT_OUT_NUMBER is assigned and the number deactivated in ADD_VALID_UNTIL then the Aarenet VoIP Switch will redirect an incoming call toward this telephone number back into the PSTN.

Example:

  • Outported Number : 0123456789
  • NPRN new provider : 098000
  • Setting in ADD_PORT_OUT_NUMBER : 98000
  • The rewriting result will be: 0980000123456789
5.2
4
<registersViaMainNumber>
     ADDR_REG_VIA_MAIN
</registersViaMainNumber>
String Selection:
  • true
  • false
false Assigns that this telephone number is registered via the main number of this account. 5.2
5
<singleLocation>
     ADDR_SINGLE_LOCATION
</singleLocation>
String Selection:
  • true
  • false
false Assigns that only one SIP CPE can register to this telephone number. 5.10
6
<balancedRouting>
     ADDR_REG_BALANCED
</balancedRouting>
String Selection:
  • true
  • false
false Assigns that registering SIP CPEs can provide a balancing Q value directive.

The Aarenet VoIP Switch will routing incoming calls according the balancing directive toward the SIP CPEs.

5.2





→ Top

"Address" Number Attributes & Directives  

  Variable: Format: Range: Default: Description: Version:
1
<mainNumber>
     ADDR_MAIN_NUMB
</mainNumber>
String Selection:
  • true
  • false
false Assigns this telephone number as the main number of this account.

→ Per account only one main number is allowed!

5.2
2
<privateNumber>
     ADDR_PRIVATE_NUMB
</privateNumber>
String Selection:
  • true
  • false
false Assigns this telephone number as the internal telephone number of this vPBX. 5.2
3
<baseNumber>
     ADDR_BASE_NUMB
</baseNumber>
String Selection:
  • true
  • false
false This number is the base number of this account. The base number serves as a search pattern to identify an open number space.

→ Per account there can be only one base number!

Example:

Base Number : 012345
Regexp: 012345.*


Matches, e.g. the numbers:

012345 0
012345 100
012345 99999
5.2
4
<signalingOnly>
     ADDR_SIGNAL_ONLY
</signalingOnly>
String Selection:
  • true
  • false
false Assigns that this telephone number can be used only for outgoing connections. 5.2
5
<preferredNumber>
     ADDR_PREFERRED_NUMB
</preferredNumber>
String Selection:
  • true
  • false
false Assigns that this telephone number will always be used as CLIP for all outgoing calls from any telephone number of this account.

The number will be signaled as preferred. Either in the SIP Header "From-" or "P-Preferred".

5.2
6
<disabled>
     ADDR_DISABLED
</disabled>
String Selection:
  • true
  • false
false Assigns that this telephone number is disabled for incoming and outgoing connections.

This number cannot be created a second time on this Aarenet VoIP Switch. This feature can be used for the reservation of a telephone number.

5.2
7
<blocked>
     ADDR_BLOCKED
</blocked>
String Selection:
  • true
  • false
false Assigns that this telephone number cannot used for outgoing connections.

Incoming connection to this telephone number are possible.

5.2
8
<queueLen>
     ADDR_QUEUE_LENGTH
</queueLen>
Number Empty

or
value >= 0

0 Assigns how many concurrent incoming calls toward this internal vPBX telephone number can be offered at the same time.

The calling sides receive the alerting tone.

The call queue is used for presenting incoming calls by the monitor function (see below VPBX_MONITOR_GROUP).

If this this feature is working depends also from the implementation on the called SIP device!

5.2
9
<priorityCall>
     ADDR_PRIORITY_CALL
</priorityCall>
String Selection:
  • true
  • false
false Assigns that outgoing calls from this telephone number are handled with priority.

In extreme cases the Aarenet VoIP Switch terminates existing connections for routing a priority call toward the PSTN.

5.2
10
<endpointName>
     ADDR_ENPOINT_NAME
</endpointName>
String This parameter is not yet described in detail. Proposed procedure see section "Not Documented DAML Parameter" 6.2
11
<mgcpProfile>
     ADDR_MGCP_PROfIL
</mgcpProfile>
String This parameter is not yet described in detail. Proposed procedure see section "Not Documented DAML Parameter" 5.2
12
<msisdn>
     ADDR_FMC_1
</msisdn>
Do not use!

This parameter is not yet described in detail. Proposed procedure see section "Not Documented DAML Parameter"

5.10
13
<msisdn2>
     ADDR_FMC_2
</msisdn2>
String Do not use!

This parameter is not yet described in detail. Proposed procedure see section "Not Documented DAML Parameter"

5.10




→ Top

"Address" Feature: Outgoing Number Presentation  

  Variable: Format: Range: Default: Description: Version:
1
<showClip>
     ADDR_CLIP_SHOW
</showClip>
String Selection:
  • true
  • false
false These two parameters ADDR_CLIP_SHOW and ADDR_CLIP_HIDE determine whether and how the CLIP of the calling side is modified by the Aarenet VoIP Switch.


ADD_SHOW_CLIP: false ADD_HIDE_CLIP: false

The CLIP will not be modified by the Aarenet VoIP Switch


ADD_SHOW_CLIP: true ADD_HIDE_CLIP: false

The Aarenet VoIP Switch forces to display the CLIP.


ADD_SHOW_CLIP: false ADD_HIDE_CLIP: true

The Aarenet VoIP Switch forces to hide the CLIP → Calling Restriction CLIR


ADD_SHOW_CLIP: true ADD_HIDE_CLIP: true

Invalid, the result is undefined!
5.2
2
<hideClip>
     ADDR_CLIP_HIDE
</hideClip>
String Selection:
  • true
  • false
false See description of ADDR_CLIP_SHOW above. 5.2
3
<publicClip>
     ADDR_CLIP_PUBLIC
</publicClip>
Number max. 50 characters Empty Assigns this telephone number as CLIP of this internal vPBX telephone number for outgoing connections toward the PSTN. The assigned public number must be from the public number range of this vPBX.

Note:

  • This parameter is valid only with private numbers.
  • If no public number is configured as a public identity then no outgoing connections from this internal vPBX telephone number toward the PSTN is possible!
5.4





→ Top

"Address" Feature: VoiceMail Box  

  Variable: Format: Range: Default: Description: Version:
1
<messageBox>
     . . .
</messageBox>
XML container which defines the VoiceMail Box parameters that is associated with this telephone number. 5.2
2
<autoAuthentication>
     ADDR_VM_PIN
</autoAuthentication>
Number Empty

or
value >= 0

Write only!


Assigns the PIN to be used for the VoiceMail Box access.


Note:

It is recommended to use only digits, else the user will have problems with a legacy telephone keypad.
5.2
3
<autoAuthentication>
     ADDR_VM_AUTO_AUTH
</autoAuthentication>
String Selection:
  • true
  • false
false Assigns whether the PIN is needed when the access is coming from this telephone number. 5.2
4
<skipMessageMenu>
     ADDR_VM_SKIP_MESSAGE
</skipMessageMenu>
String Selection:
  • true
  • false
false Assigns that the main menu of the VoiceMail Box are recited. 5.2
5
<language>
     ADDR_VM_LANGUAGE
</language>
String Selection:
  • de
  • en
  • fr
  • it
Depends on the address language ADDR_LANGUAGE Assigns the language of the announcement texts of the VoiceMail Box.

de: German
en: English
fr: French
it: Italian

5.2
6
<signalNewMessage>
     ADDR_VM_SIGNAL_NEW_MESSAGE
</signalNewMessage>
String Selection:
  • true
  • false
true Assigns that a new recorded message is signaled by the message server of the Aarenet VoIP Switch to the SIP CPE. 5.2
7
<subscribedMwiOnly>
     ADDR_VM_SIGNAL_MWI_ONLY
</subscribedMwiOnly>
String Selection:
  • true
  • false
true Defines whether and how the telephone is informed about a new message in the VoiceMailBox. The format is „Message Waiting Information MWI”.


true:

Explicit MWI Subscription only:
MWI messages are sent to the telephone when it prior subscribed for the WMI service.

false:

Implicitly, all registered devices:
A MWI message is automatically sent to all telephones registered to this address. The telephone must not log in with the WMI service.
5.2
8
<email>
     ADDR_VM_EMAIL
</email>
String Empty

or
Email Address, max. 64 characters

Empty Assigns the email address to which a VoiceMail message will be sent. 5.2
9
<formatMp3>
     ADDR_VM_AUDIO_FORMAT
</formatMp3>
String Selection:
  • true
  • false
false Assigns that the message audio file is MP3 formatted.

Note:
The default is WAV PCM coded.

5.2
10
<blocked>
     ADDR_VM_BLOCKED
</blocked>
String Status:
  • no
  • Blocked Minutes
no Read Only!

States, if the VoiceMail Box is blocked and how long it is blocked.

no:

If “no” is returned then the VoiceMailBox is not blocked.

Blocked Minutes:

Remaining duration of the blocking in minutes
5.2
11
<faxOnly>
     ADDR_VM_FAX_ONLY
</faxOnly>
String Selection:
  • true
  • false
false Assigns if this VoiceMail Box is enabled to receive Fax only. 5.7
12
<faxAutoDetect>
     ADDR_VM_FAX_VOICE_DETECT
</faxAutoDetect>
String Selection:
  • true
  • false
false Assigns that this VoiceMail Box detects automatically if an incoming message is a voice message or a Fax. 5.7





→ Top

"Address" Feature: Call Forwarding  

Note

It is recommended not to use the call forward CF for vPBX call distributions. Use the AdminCenter feature "Distributions" for this purpose.



  Variable: Format: Range: Default: Description: Version:
1
<cfu>
     ADDR_CFU
</cfu>
Telephone Number max. 50 characters Empty Assigns an "Call Forwarding Unconditional CFU" redirection telephone number for this telephone number. 5.2
2
<cff>
     ADDR_CFF
</cff>
Telephone Number max. 50 characters Empty Assigns a "Call Forwarding Fallback CFF" redirection telephone number for this telephone number. 5.2
3
<cfb>
     ADDR_CFB
</cfb>
Telephone Number max. 50 characters Empty Assigns a "Call Forwarding Busy CFB" redirection telephone number for this telephone number. 5.2
4
<cfnr>
     ADDR_CFNR
</cfnr>
Telephone Number max. 50 characters Empty Assigns a "Call Forwarding Not Reachable CFNR" redirection telephone number for this telephone number. 5.2
5
<cfo>
     ADDR_CFO
</cfo>
Telephone Number max. 50 characters Empty Assigns an "Call Forking CFO" redirection telephone number for this telephone number. 5.2
6
<dnd>
     ADDR_DND
</dnd>
String Selection:
  • true
  • false
false Assigns "Do not Disturb DND" for this telephone number. Incoming calls are connected to a corresponding announcement. 5.2
7
<rrn>
     ADDR_RRN
</rrn>
String Selection:
  • true
  • false
false Assigns "Reject anonymous calls RRN" for this telephone number. Incoming calls are connected to a corresponding announcement. 5.2





→ Top

"Address" Feature: Diverse  

  Variable: Format: Range: Default: Description: Version:
1
<language>
     ADDR_LANGUAGE
</language>
String Selection:
  • de
  • en
  • fr
  • it
Depends on the address language ADDR_LANGUAGE Assigns the language of the announcement, e.g. do not disturb, used for this telephone number.

de: German
en: English
fr: French
it: Italian

5.2
2
<callWaiting>
     ADDR_MGCP_CALL_WAITING
</callWaiting>
String Selection:
  • true
  • false
false Assigns for MGCP MTA if it is allowed to signal a new incoming call during a running call

false:

Incoming calls in busy state are not signaled.

true:

Incoming calls in busy state are signaled.
5.2
3
<callHold>
     ADDR_MGCP_CALL_HOLD
</callHold>
String Selection:
  • true
  • false
false Assigns for MGCP MTA if it is allowed to set the calling side on hold.

false:

Incoming calls cannot be set on hold.

true:

Incoming calls can be set on hold.
5.2
4
<noOfferOnBusy>
     ADDR_CALL_NO_OFFER
</noOfferOnBusy>
String Selection:
  • true
  • false
false Assigns if this telephone number is signaled a new incoming call during busy state. 5.9
5
<recordingEmail>
     ADDR_CALL_RECORD_EMAIL
</recordingEmail>
String Empty

or
Email Address, max. 64 characters

Empty Assigns the email address to which a recorded call will be sent.

Note:

The recording is started and stopped on a by call basis by the user due to pressing the record key or stimulus *#-procedure on its telephone keypad.
5.7
6
<autoRecord>
     ADDR_CALL_RECORD_AUTOMATIC
</autoRecord>
String Selection:
  • true
  • false
false Assigns if all calls will be recorded automatically and sent to the assigned email address in ADDR_CALL_RECORD_EMAIL. 5.8





→ Top

"Address" Feature: Group  

Note

Groups are an important feature for the creation of a vPBX and the presence services within a vPBX.



  Variable: Format: Range: Default: Description: Version:
1
<pbx>
     ADDR_GROUP_VPBX
</pbx>
String max. 64 characters none Assigns to which vPBX this telephone number belongs.


Note:

  • The vPBX group must be created already in the system of the VoIP Switch!
5.2
2
<groupMember>
     ADDR_GROUP_VPBX_MEMBER
</groupMember>
String Assigns from which other groups this telephone number may refer additional authorizations.

A telephone number can be member of n groups.


Note:

  • The groups must be created already in the system of the VoIP Switch!
5.2
3
<presenceGroup>
     ADDR_GROUP_PRESENCE
</presenceGroup>
String max. 64 characters none Assigns the group whose members are allowed to subscribe for the Presence service of this telephone number.


Note:

  • The group must be created already in the system of the VoIP Switch!
  • Presence information are visible in this group and related superior groups
5.2
4
<monitorGroup>
     ADDR_GROUP_MONITOR
</monitorGroup>
String max. 64 characters none Assigns the group whose members are allowed to subscribe for the Monitor service of this telephone number.


Note:

  • The group must be created already in the system of the VoIP Switch!
  • Monitoring information are visible in this group and related superior groups
5.2
5
<messageGroup>
     ADDR_GROUP_MESSAGE
</messageGroup>
String max. 64 characters none Assigns the group whose members are allowed to subscribe for the Message service of this telephone number.


Note:

  • The group must be created already in the system of the VoIP Switch!
  • Message information are visible in this group and related superior groups
5.2





→ Top

"Address" Feature: AdminCenter Access  

  Variable: Format: Range: Default: Description: Version:
1
<addressAdmin>
     . . .
</addressAdmin>
String This parameter is not yet described in detail. Proposed procedure see section "Not Documented DAML Parameter" 5.2
2
<username>
     ADDR_ADMIN_UN
</username>
String This parameter is not yet described in detail. Proposed procedure see section "Not Documented DAML Parameter" 5.2
3
<password>
     ADDR_ADMIN_PW
</password>
String This parameter is not yet described in detail. Proposed procedure see section "Not Documented DAML Parameter" 5.2
4
<language>
     ADDR_ADMIN_LANGUAGE
</language>
String This parameter is not yet described in detail. Proposed procedure see section "Not Documented DAML Parameter" 5.2
5
<email>
     ADDR_ADMIN_EMAIL
</email>
String Empty This parameter is not yet described in detail. Proposed procedure see section "Not Documented DAML Parameter" 5.2





→ Top

DAML-Query  


→ Top

DAML-Query: "List of All Account Names"  

This Query requests the names of all accounts which are configured in this Aarenet VoIP Switch.


The CRM must transfer a HTTP GET with the following parameters:

query=account

  • Query directive to request all account names


DAML-Query Example:

 

https://<IP_ADDRESS>:8447/dataaccesscenter/daml?query=account



DAML-Response Example:

 

<daml status="ok">

<account>an-acc-0020</account>
<account>an-acc-0021</account>
<account>an-acc-0022</account>
<account>an-acc-0023</account>

</daml>





→ Top

DAML-Query: "List of the n Last Connections of a Telephone Number"  

This query requests a list of the last n connections and connection attempts of a phone number. This DAML query delivers the raw data of a connection. It is the job of the CRM application to transform these data into the desired form and representation.


Warning

Limit the requested number of entries as it blocks the database during the query execution!
This can cause alarming messages from the Aarenet VoIP Switch monitoring.



The CRM must transfer a HTTP GET with the following parameters:

query=calls

  • Query directive to request the last connections and connection attempts of a telephone number

account=QUERY_ACCOUNT

  • Unambiguous name of an account

number=QUERY_NUMBER

  • Unambiguous telephone number or SIP address

entries=QUERY_ENTRY

  • Number of the requested connections and connection attempts


DAML-Query Example:

 

https://<IP_ADDRESS>:8447/dataaccesscenter/daml?query=calls&account=an-acc-0021&number=01234567890&entries=10



DAML-Response:

 

<daml status="ok">

<call>
<time>CALL_START</time>
<duration>CALL_DURATION</duration>
<direction>CALL_DIRECTION</direction>
<number>CALL_PEER_NUMBER</number>
<charge>CALL_CHARGE</charge>
</call>
. . .

</daml>



DAML-Response Example:

 

<daml status="ok">

<call>
<time>2013-05-24T14:55:13</time>
<duration>12527</duration>
<direction>out</direction>
<number>0987654321</number>
<charge>0.16</charge>
</call>
<call>
<time>2013-05-24T10:20:38</time>
<duration>0</duration>
<direction>in</direction>
<number>0987654321</number>
</call>

</daml>



Parameters:

  Variable: Format: Range: Default: Description: Version:
1 <call>
    
. . .

</call>
none none none Container which holds the call details 5.2
2 <time>
     CALL_START
</time>
yyyy-MM-dd'T'HH:mm:ss none none Date/time of the call’s start 5.2
3 <duration>
     CALL_DURATION
</duration>
yyyy-MM-dd'T'HH:mm:ss >=0 none Duration of the connection in milliseconds.

If the duration is 0 then it was a call attempt.

5.2
4 <direction>
     CALL_DIRECTION
</direction>
String Selection:
in
out
none Indicates whether it is an incoming or outgoing connection.

in:

Incoming connection

out:

Outgoing connection
5.2
5 <number>
     CALL_PEER_NUMBER
</number>
String Telephone Number none Shows the telephone number of the other participant of the connection.

The meaning depends on the CALL_DIRECTION :
in:

At incoming connections this is the number of the calling side (CLIP)

out:

At Outgoing connection this is the dialed number
5.2
6 <charge>
     CALL_CHARGE
</charge>
String >= 0.00 none Charge of an outgoing connection 5.2





→ Top

DAML-Query: "List of all Ruleset Names"  

This Query requests the names of all ruleset which are configured in this Aarenet VoIP Switch.

The CRM must transfer a HTTP GET with the following parameters:

query=rulesets

  • Query directive to request all configured ruleset names


DAML-Query Example:

 

https://<IP_ADDRESS>:8447/dataaccesscenter/daml?query=rulesets



DAML-Response Example:

 

<daml status="ok">

<ruleset>Route: Subscriber</ruleset>
<ruleset>Signal: 2 Digit Signaling</ruleset>
<ruleset>Signal: 3 Digit Signaling</ruleset>
<ruleset>Block: International Calls</ruleset>
<ruleset>Block: Satellite Calls</ruleset>
<ruleset>Block: Block All Except Emergency Calls</ruleset>

</daml>





→ Top

DAML-Query: "List of all Emergency Locations"  

This Query requests the names of all emergency locations which are configured in this Aarenet VoIP Switch.

The CRM must transfer a HTTP GET with the following parameters:

query=emergencyLocations

  • Query directive to request all configured emergency locations


DAML-Query Example:

 

https://<IP_ADDRESS>:8447/dataaccesscenter/daml?query=emergencyLocations



DAML-Response Example:

 

<daml status="ok">

<emergencyLocation>GN0001 Aeugst am Albis</emergencyLocation>
<emergencyLocation>GN0002 Affoltern am Albis</emergencyLocation>
<emergencyLocation>GN0003 Bonstetten</emergencyLocation>

</daml>





→ Top

DAML-Query: "List of All Announcement Names of a Telephone Number"  

This query requests the names of all announcement names of a telephone number.


The CRM must transfer a HTTP GET with the following parameters:

query=announcements

  • Query directive to request all announcement names of a telephone number.

account=QUERY_ACCOUNT

  • Unambiguous name of an account

number=QUERY_NUMBER

  • Unambiguous telephone number or SIP address


DAML-Query Example:

 

https://<IP_ADDRESS>:8447/dataaccesscenter/daml?query=announcements&account=an-acc-0021&number=01234567890



DAML-Response:

 

<daml status="ok">

<message>
<id>ANNONCEMENT_ID</id>
<duration>ANNONCEMENT_DURATION</duration>
<name>ANNONCEMENT_NAME</name>
</message>
. . .

</daml>



DAML-Response Example:

 

<daml status="ok">

<message>
<id>179</id>
<name>Office Time</name>
<duration>16325</duration>
</message>
<message>
<id>180</id>
<name>Weekend</name>
<duration>253346</duration>
</message>

</daml>



Parameters:

  Variable: Format: Range: Default: Description: Version:
1 <message>
    
. . .

</message>
none none none Container which holds the announcement parameters 5.2
2 <id>
     ANNONCEMENT_ID
</id>
Number >=0 none Unambiguous identification of the announcement 5.2
3 <name>
     ANNONCEMENT_NAME
</name>
String none Name of the announcement 5.2
4 <duration>
     ANNONCEMENT_DURATION
</duration>
Number >=0, in milliseconds none Duration of the announcement 5.2





→ Top

DAML-Query: "List of all VoiceMail Messages of a Telephone Number"  

This query requests the identifications of all messages of a telephone number's VoiceMail box.


The CRM must transfer a HTTP GET with the following parameters:

query=voiceMessages

  • Query directive to request all message information of a telephone number’s VoiceMail Box.

account=QUERY_ACCOUNT

  • Unambiguous name of an account

number=QUERY_NUMBER

  • Unambiguous telephone number or SIP address


DAML-Query Example:

 

https://<IP_ADDRESS>:8447/dataaccesscenter/daml?query=voiceMessages&account=an-acc-0021&number=01234567890



DAML-Response:

 

<daml status="ok">

<message>
<id>MESSAGE_ID</id>
<name>MESSAGE_NAME</name>
<number>MESSAGE_NUMBER</number>
<timeStart>MESSAGE_DATE_TIME</timeStart>
<timePlayed>MESSAGE_PLAYED</timePlayed>
<duration>MESSAGE_DURATION</duration>
<saved>MESSAGE_SAVED</saved>
</message>
. . .

</daml>



DAML-Response Example:

 

<daml status="ok">

<message>
<id>167</id>
<name>Dani</name>
<number>0987654321</number>
<timeStart>2016-01-14T10:29:00</timeStart>
<timePlayed>never</timePlayed>
<duration>35563</duration>
<saved>false</saved>
</message>
<message>
<id>786</id>
<name></name>
<number>0283746551</number>
<timeStart>2016-01-20T16:12:54</timeStart>
<timePlayed>never</timePlayed>
<duration>13876</duration>
<saved>false</saved>
</message>

</daml>



Parameters:

  Variable: Format: Range: Default: Description: Version:
1 <message>
    
. . .

</message>
none none none Container which holds the message parameters 5.2
2 <id>
     MESSAGE_ID
</id>
Number >=0 none Unambiguous identification of the message 5.2
3 <name>
     MESSAGE_NAME
</name>
String none Name in the <Display> part of the SIP-Header "From:" 5.2
4 <number>
     MESSAGE_NUMBER
</number>
Number >=0 none Telephony number of the calling side. 5.2
5 <timeStart>
     MESSAGE_DATE_TIME
</timeStart>
yyyy-MM-dd'T'HH:mm:ss none Date/time of the recording of the message 5.2
6 <timePlayed>
     MESSAGE_PLAYED
</timePlayed>
String Selection:
never
yyyy-MM-dd'T'HH:mm:ss
none Date/time, when the message was played the last time.

never:

The message was never played.
5.2
7 <timeStart>
     MESSAGE_DATE_TIME
</timeStart>
yyyy-MM-dd'T'HH:mm:ss none Date/time of the recording of the message 5.2
8 <duration>
     MESSAGE_DURATION
</duration>
Number >=0, in milliseconds none Duration of the message 5.2
9 <saved>
     MESSAGE_SAVED
</saved>
String Selection:
true
false
none Indicates whether the message was marked by the user for a longer retention 5.2





→ Top

DAML-Document Examples  


→ Top

Create a "Residential Account" with 1 Public Number  

Requirement:

  • Account for private customer with one telephone number
  • Customer public number 0987654321
  • Account TopStop with 50.00, warning at 70%, email to user@home.com
  • Block calls toward 09* numbers
  • VoiceMail Box active with email to user@home.com
  • CFF to telephone number 0123456789


See also: "Download DAML Test Scripts for a Residential User"


 

<daml command="write">

<!-- Define the Residential Account -->

<account>
<accountName>RESIDENTIAL_DAML</accountName>
<info>Residential Test Account</info>
<password>1gRP9vBe</password>
<username>5umWIuce</username>
<validAfter>2016-01-01 00:00:00</validAfter>
<validUntil/>
<tenant>DAML_Tenant</tenant>
<routingTable>Routing_to_PSTN</routingTable>
<pricelist>Price_DAML_SUBSCRIBER</pricelist>
<emergencyLocation>Default_Location</emergencyLocation>
<sysAccountTopStop>
<type>SYS</type>
<monthlyReset>true</monthlyReset>
<valueMax>50.0</valueMax>
<alarmLevel>0.7</alarmLevel>
<alarmEmail>user@home.com</alarmEmail>
</sysAccountTopStop>
<ruleset>Subscriber</ruleset>
<ruleset>Block 09*</ruleset>
</account>


<!-- Define Residential Telephone Number -->

<address>
<account>RESIDENTIAL_DAML</account>
<number>0987654321</number>
<language>de</language>
<disabled>false</disabled>
<validAfter>2016-01-01 00:00:00</validAfter>
<validUntil/>
<portoutNumber/>
<messageBox>
<language>de</language>
<email>user@home.com</email>
<signalNewMessage>true</signalNewMessage>
<skipMessageMenu>false</skipMessageMenu>
<autoAuthentication>false</autoAuthentication>
<subscribedMwiOnly>true</subscribedMwiOnly>
<faxOnly>false</faxOnly>
<faxAutoDetect>false</faxAutoDetect>
<formatMp3>false</formatMp3>
</messageBox>
<cff>0123456789</cff>
</address>

</daml>





→ Top

Create a "SIP Trunk" Account with 100 Public Numbers for ISDN PBX behind SIP CPE  

Requirement:

  • SIP Trunk Account for a customer with an ISDN PBX connected to SIP CPE
  • 100 public telephone number block 0555555550 – 99
  • The main telephone number is 0555555550, the other telephone numbers are registered via main number
  • Account TopStop with 2000.00, warning at 70%, email to info@customer.com
  • Block calls toward 09* numbers
  • CFF to mobile number 03333333
  • Signaling 3 digit 500 – 599 toward the SIP CPE/PBX
  • No VoiceMail Boxes


See also: "Download DAML Test Scripts for a SIP Trunk"


 

<daml command="write">

<!-- Define the SIP Trunk Account -->

<account>
<accountName>SIP_TRUNK_DAML</accountName>
<info>SIP Trunk Test Account</info>
<password>1j3RRw3r</password>
<username>MQa0b3eM</username>
<validAfter>2016-01-01 00:00:00</validAfter>
<validUntil/>
<tenant>DAML_Tenant</tenant>
<routingTable>Routing_to_PSTN</routingTable>
<pricelist>Price_DAML_SUBSCRIBER</pricelist>
<emergencyLocation>Default_Location</emergencyLocation>
<sysAccountTopStop>
<type>SYS</type>
<monthlyReset>true</monthlyReset>
<valueMax>2000.00</valueMax>
<alarmLevel>0.7</alarmLevel>
<alarmEmail>info@customer.com</alarmEmail>
</sysAccountTopStop>
<ruleset>Subscriber</ruleset>
<ruleset>Block 09*</ruleset>
<ruleset>Signaling: 3 Digit</ruleset>
</account>


<!-- Define CFF -->

<callForward>
<name>CFF 03333333</name>
<type>CFF</type>
<destReplace>03333333</destReplace>
<priority>10</priority>
</callForward>


<!-- Define SIP Trunk Main Telephone Number -->

<address>
<account>SIP_TRUNK_DAML</account>
<number>0555555550</number>
<language>de</language>
<disabled>false</disabled>
<validAfter>2016-01-01 00:00:00</validAfter>
<validUntil/>
<portoutNumber/>
<mainNumber>true</mainNumber>
<registersViaMainNumber>false</registersViaMainNumber>
</address>


<!-- Define the other SIP Trunk Telephone Numbers -->

<address>
<account>SIP_TRUNK_DAML</account>
<number>0555555551</number>
<language>de</language>
<disabled>false</disabled>
<validAfter>2016-01-01 00:00:00</validAfter>
<validUntil/>
<portoutNumber/>
<mainNumber>false</mainNumber>
<registersViaMainNumber>true</registersViaMainNumber>
</address>
<address>
<account>SIP_TRUNK_DAML</account>
<number>0555555552</number>
<language>de</language>
<disabled>false</disabled>
<validAfter>2016-01-01 00:00:00</validAfter>
<validUntil/>
<portoutNumber/>
<mainNumber>false</mainNumber>
<registersViaMainNumber>true</registersViaMainNumber>
</address>


<!-- . . . -->

</daml>





→ Top

Create a vPBX Account with 5 Public Numbers  

Requirement:

  • Account for vPBX
  • 3 public telephone numbers 0123456787 – 89
  • vPBX requirement:
  • Access for vPBX administrator
  • Max. 8 channels
  • Max. 10 internal telephone numbers
  • Max. 5 App "an IP-Phone"
  • Account TopStop with 150.00, warning at 70%, email to info@customer.com
  • Block calls toward 09* numbers


See also: "Download DAML Test Scripts for a vPBX"


 

<daml command="write">

<!-- Define the vPBX -->

<group>
<name>VPBX_DAML</name>
<parent>DAML_Tenant</parent>
<tenant>DAML_Tenant</tenant>
<pbx>true</pbx>
</group>


<!-- Define the vPBX Administrator -->

<admin>
<username>VPBX_DAML_admin</username>
<language>en</language>
<password>E4igy5f!</password>
<tenant>DAML_Tenant</tenant>
<role>PBX</role>
<pbx>VPBX_DAML</pbx>
</admin>


<!-- Define the vPBX Attributes -->

<groupAttribute>
<group>VPBX_DAML</group>
<name>maxPrivateAddr</name>
<value>10</value>
</groupAttribute>
<groupAttribute>
<group>VPBX_DAML</group>
<name>maxDevAnIpPhone</name>
<value>5</value>
</groupAttribute>
<groupAttribute>
<group>VPBX_DAML</group>
<name>channels</name>
<value>8</value>
</groupAttribute>


<!-- Define the vPBX Account -->

<account>
<accountName>VPBX_DAML</accountName>
<info>vPBX Test Account </info>
<password>a27fKuwer</password>
<username>4wku4sPE8r</username>
<validAfter>2016-01-01 00:00:00</validAfter>
<validUntil/>
<tenant>DAML_Tenant</tenant>
<routingTable>Routing_to_PSTN</routingTable>
<pricelist>Price_DAML_Tenant</pricelist>
<emergencyLocation>Default_Location</emergencyLocation>
<sysAccountTopStop>
<type>SYS</type>
<monthlyReset>true</monthlyReset>
<valueMax>150.00</valueMax>
<alarmLevel>0.7</alarmLevel>
<alarmEmail>info@customer.com</alarmEmail>
</sysAccountTopStop>
<ruleset>Subscriber</ruleset>
<ruleset>Block 09*</ruleset>
</account>


<!-- Define the vPBX Public Telephone Numbers -->

<address>
<number>0123456787</number>
<account>VPBX_DAML</account>
<language>en</language>
<disabled>false</disabled>
<validAfter>2016-01-01 00:00:00</validAfter>
<validUntil/>
<portoutNumber/>
<pbx>VPBX_DAML</pbx>
<presenceGroup>VPBX_DAML</presenceGroup>
<monitorGroup>VPBX_DAML</monitorGroup>
<messageGroup>VPBX_DAML</messageGroup>
<groupMember>VPBX_DAML</groupMember>
<groupMember>DAML_Tenant</groupMember>
</address>
<address>
<number>0123456788</number>
<account>VPBX_DAML</account>
<language>en</language>
<disabled>false</disabled>
<validAfter>2016-01-01 00:00:00</validAfter>
<validUntil/>
<portoutNumber/>
<pbx>VPBX_DAML</pbx>
<presenceGroup>VPBX_DAML</presenceGroup>
<monitorGroup>VPBX_DAML</monitorGroup>
<messageGroup>VPBX_DAML</messageGroup>
<groupMember>VPBX_DAML</groupMember>
<groupMember>DAML_Tenant</groupMember>
</address>
<address>
<number>0123456789</number>
<account>VPBX_DAML</account>
<language>en</language>
<disabled>false</disabled>
<validAfter>2016-01-01 00:00:00</validAfter>
<validUntil/>
<portoutNumber/>
<pbx>VPBX_DAML</pbx>
<presenceGroup>VPBX_DAML</presenceGroup>
<monitorGroup>VPBX_DAML</monitorGroup>
<messageGroup>VPBX_DAML</messageGroup>
<groupMember>VPBX_DAML</groupMember>
<groupMember>DAML_Tenant</groupMember>
</address>

</daml>




→ Top



© Aarenet Inc 2018

Version: 3.0     Author:  Aarenet     Date: May 2017