Skip to content

Telephony#

General telephony settings are combined within this telephony section.

To configure a basic connection to your telephony service or pbx you need to configure an Identity

Defaults#

Commented File-structure#

telephony.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- settings for local telephony features. -->
<telephony version="1.34.0">
  <!-- if and how a waiting call has to be signalised -->
  <callWaiting>
    <!-- enables the function callWaiting
         type: boolean -->
    <active>false</active>
    <!-- enables the signalisation of a waiting call
         type: boolean -->
    <tone>true</tone>
  </callWaiting>
  <!-- if an incoming call shall be rejected -->
  <doNotDisturb>
    <!-- enables the function doNotDisturb
         type: boolean -->
    <active>false</active>
  </doNotDisturb>
  <callForwarding>
    <unconditional>
      <!-- enables call forwarding
           type: boolean -->
      <active>false</active>
      <!-- the target to forward calls to
           type: string -->
      <target></target>
      <!-- the time [s] after which the call must be forwarded
           type: integer -->
      <timeout>20</timeout>
    </unconditional>
    <busy>
      <!-- enables call forwarding
           type: boolean -->
      <active>false</active>
      <!-- the target to forward calls to
           type: string -->
      <target></target>
      <!-- the time [s] after which the call must be forwarded
           type: integer -->
      <timeout>20</timeout>
    </busy>
    <noResponse>
      <!-- enables call forwarding
           type: boolean -->
      <active>false</active>
      <!-- the target to forward calls to
           type: string -->
      <target></target>
      <!-- the time [s] after which the call must be forwarded
           type: integer -->
      <timeout>20</timeout>
    </noResponse>
  </callForwarding>
  <!-- Tells the PBX to hide the callers identity in outgoing calls. -->
  <clir>
    <!-- type: boolean -->
    <active>false</active>
  </clir>
  <!-- default audio device in idle like headset or speaker
       type: enum
       accepted values:
         speaker
         headset -->
  <defaultAudioDevice>speaker</defaultAudioDevice>
  <!-- line to use for unspecified outgoing calls. Uses the first defined line if not defined -->
  <activeLine>
    <!-- type: string -->
    <id></id>
    <!-- type: string -->
    <component></component>
  </activeLine>
  <!-- Time delay to start the call when there is no activity. Measured in milliseconds. -1 = never
       type: integer -->
  <callStartTimeout>-1</callStartTimeout>
  <!-- connect incoming call automatically without user-interaction -->
  <autoAccept>
    <!-- allow calls to automatically connect when they want to (in SIP-
         invite -> Alert-Info-header with info=alert-autoanswer)
         type: boolean -->
    <immediatelyWhenRequested>false</immediatelyWhenRequested>
    <!-- Time delay to accept an incoming call automatically. Measured in
         milliseconds. -1 = never
         type: integer
         minimum: -1
         maximum: 60000 -->
    <afterTimeout>-1</afterTimeout>
    <!-- sound a short signal when a call gets auto-connected
         type: boolean -->
    <withAlarmBeep>true</withAlarmBeep>
    <!-- place ongoing calls on hold in order to connect auto-answer-call. With false just lets them knock.
         type: boolean -->
    <interruptWhenBusy>false</interruptWhenBusy>
  </autoAccept>
  <!-- when an outgoing call fails (busy 'CCBS', not responding 'CCNR')
       -> monitor the remote via subscription and inform the user when
          party becomes available -->
  <callCompletion>
    <!-- enables the function callCompletion
         type: boolean -->
    <active>true</active>
    <!-- time to wait for 'not responding' in seconds
         type: integer
         minimum: -1
         maximum: 60 -->
    <timeout>-1</timeout>
  </callCompletion>
  <!-- type: list -->
  <callBindings>
    <!-- Define custom softkeys and/or a camera to be used when in-call with a certain party.
         parameters:
           name: uniquely identifies this callBinding
                 type: string -->
    <callBinding name="">
      <!-- A regular expression that is matched against the sip-uri (username@host)
           of a remote party
           type: string -->
      <remoteParty>^555@.*$</remoteParty>
      <!-- name of one of the cameras to be shown when in-call with the
           specified remote party
           type: string -->
      <camera></camera>
      <!-- define custom softkeys to be displayed - up to two during a certain call-state.
           type: list -->
      <softKeys>
        <!-- define a custom softkey to be displayed during certain call-states. -->
        <inCallKey>
          <!-- Describes a single functionkey.
               parameters:
                 keyNumber: The number of the key. Uniquely identifies a key within a module.
                            type: integer
                            minimum: 1
                 label: The name of the key.
                        If starting with @string/ an android resource is used.
                        type: string
                 info: Detail info of the key mostly displayed on a second line
                       If starting with @string/ an android resource is used.
                       type: string
                 icon: The icon of the key, base64 encoded.
                       The icon is scaled to fit the display container.
                       If starting with @drawable/ an android resource is used.
                       type: string -->
          <key keyNumber="1" label="" info="" icon="">
            <!-- Reference to the text element of the template name.
                 type: string -->
            <templateName></templateName>
            <!-- List of parameters.
                 type: list -->
            <parameters>
              <!-- parameters:
                     name: Name of the parameter, has to be unique.
                           Often starts with "@string/" which enables to show the translated
                           name in WUI and PUI.
                           type: string
                     value: type: string -->
              <parameter name="" value="">
              </parameter>
            </parameters>
          </key>
          <!-- List of call-states in which the key should appear.
               type: list -->
          <callStates>
            <!-- State of a call. E.g.: a new outgoing call starts with ringing and
                 when accepted becomes connected.
                 Note: When you press hold on your device, the call's state will be
                       holding. But when instead the other party holds you, the state
                       will stay connected.
                 type: enum
                 accepted values:
                   calling
                   ringing
                   holding
                   connected
                   disconnected -->
            <callState>calling</callState>
            <callState>ringing</callState>
            <callState>holding</callState>
            <callState>connected</callState>
            <callState>disconnected</callState>
          </callStates>
        </inCallKey>
      </softKeys>
    </callBinding>
  </callBindings>
  <!-- decide whether the reached target or the initially called target
       should be used in the calllog.
       the default will show the called target.
       Set to true, the config will lead to the reached target stated in
       the calllog, while the initially called number can be found in
       the via section of the calllog details.
       type: boolean -->
  <callLogWithReachedTarget>false</callLogWithReachedTarget>
  <!-- Calls received or started by the phone are logged so they are
       available in the call-log e.g. to call back a missed call or
       redial a formerly called party.
       type: boolean -->
  <logCalls>true</logCalls>
  <!-- Wether or not to include calls into missed list that where received
       but got canceled by other side with description in sip reason header
       "Call completed elsewhere".
       type: boolean -->
  <logCallsCompletedElsewhere>true</logCallsCompletedElsewhere>
  <!-- List of patterns to be applied on alert info header of incoming
        calls. logCalls-attribute tells wether or no a call that matches
        a pattern gets logged.
       type: list -->
  <alertInfoCalllogFilters>
    <alertInfoCalllog>
      <!-- The pattern used to search for a match in the alert info.
           type: string -->
      <pattern></pattern>
      <!-- The ringtone to be used when this pattern is matched with the alert info
           type: boolean -->
      <logCalls>true</logCalls>
    </alertInfoCalllog>
  </alertInfoCalllogFilters>
  <!-- Wether or not to log incoming calls that did not match agains any
       of the alertInfoCalllogFilters.
       type: boolean -->
  <logCallsAfterAlertInfoFilters>true</logCallsAfterAlertInfoFilters>
  <!-- When the phone receives too many notifies to handle all at once,
       it build's up a queue. When this setting is enabled, each time the
       phone takes notifies out of that queue, it looks at all the queued
       notifies and only uses the most recent one from a subscription.
       Only works for subscriptions with event-type 'dialog'.
       type: boolean -->
  <discardObsoleteNotifies>true</discardObsoleteNotifies>
  <!-- start a call to a specified number after a specified time when the dialer is opened -->
  <directCall>
    <!-- the target of the direct call, if empty then the direct call deactivated
         type: string -->
    <target></target>
    <!-- the time [s] after which the call will be started
         type: integer
         minimum: 1
         maximum: 60 -->
    <timeout>10</timeout>
  </directCall>
  <pickupScreen>
    <!-- automatically opens the pickup-screen that list all available
         pickable calls from all participating keys. This screen will
         never open while user is in a call.
         type: boolean -->
    <showWhenNewPickupAvailable>false</showWhenNewPickupAvailable>
    <!-- type: enum
         accepted values:
           never
           onAutoPopup
           onNewPickup -->
    <playAlarmBeep>never</playAlarmBeep>
  </pickupScreen>
  <!-- Convert user-input for dialing numbers from "+1 (206) 555-1234" to
       "+12065551234" before making the call. Set to false if your pbx
       actually needs the special characters.
       type: boolean -->
  <cleanupPhoneNumbers>true</cleanupPhoneNumbers>
  <presence>
    <!-- type: enum
         accepted values:
           online
           offline -->
    <status>online</status>
    <!-- type: enum
         accepted values:
           unknown
           away
           busy -->
    <action>unknown</action>
    <!-- arbitrary text to send as a note
         type: string -->
    <note>I'm feeding my dog</note>
  </presence>
  <!-- type: list -->
  <multicast>
    <!-- parameters:
           name: a name appearing in the currently playing notification
                 type: string -->
    <multicastStream name="Fire Alarm">
      <!-- which multicast address to listen to
           type: string
           matched against: '^(((\d|23[0-9])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5]))|((ff.[3-8]):.*))?$' -->
      <address>239.255.255.230</address>
      <!-- the port to listen on
           type: integer
           minimum: 1
           maximum: 65535 -->
      <port>5555</port>
      <!-- what codec to expect (G.711 is PCMU)
           type: enum
           accepted values:
             G.711
             G.722
             G.726
             G.729
             iLBC
             speex
             opus -->
      <codec>G.711</codec>
      <!-- setting for audio behaviour in idle state
           type: enum
           accepted values:
             useSystemVolume
             fullVolume -->
      <loudness>useSystemVolume</loudness>
    </multicastStream>
  </multicast>
</telephony>