Digium Phones provide a Contacts application that integrates speed-dial, device busy-lamp field and user presence. The Contacts application is related to the Status application in that both are concerned with presence. The Status application is concerned only with setting the local user's presence. The Contacts application is concerned with the presence status of other users - those to which it's been programmed to subscribe.
Contacts without presence subscriptions may be loaded locally onto the phone by the phone's user. Most deployments of Digium phones will see the administrator specifying XML lists of contacts to load onto phones. Here, we will discuss the methods to direct the phone to load contacts as well as the contents of the contacts XML files.
Beginning with the DPMA 1.3, Digium phones can support storing phone-added contacts on the Asterisk server. To support server-side storage of contacts that are added, by the user, locally on the phone, the editable option for a phonebook must be set to 1 and an identifier, as set by the id option must be unique for the phonebooks loaded by that phone.
Loading a Contact List
Contacts files that the phone should load are defined in the phone's configuration XMl file and are served up by the DPMA. Contact file are specified for a phone configuration using the phone configuration parameter:
as noted above. Multiple "contact" lines may be used for each phone configuration.
Rapid Dial Keys
Rapid Dial, or BLF, keys are set using the phone configuration parameter:
The order of the contacts in this group is important. Those contacts fill in the BLF-keys in the same order as given in the xml, and those contacts are subscribed to, in order, up to a maximum of 40.
Contacts XML skeleton
A basic Contacts XML structure is defined here:
And, a more fleshed-out example looks like:
Defines the name of a contacts group. This name is used in the Contacts application to organize contacts by group
Sets whether or not the group can be editable from the phone. If the phone is configured for server-side contacts storage and the editable option is set for a group, a contact may be added to that group from the phone
Unique identifier for a group
Contact: Child Element of <contacts>
Sets the prefix title for a contact, e.g. "Mr."
Specifies the first name for a contact
Specifies a second name for a contact
Specifies a final name for a contact
Sets a suffix for a contact, e.g. "Jr."
Specifies that the contact is a SIP contact
Sets an organization for a contact
Specifies a job title for a contact
Sets a location for a contact, e.g. "Las Vegas"
Allows for provision of notes about a contact
If the contact is associated with a contact local to the system, the SIP peer name for a contact
If the contact is to have a SIP subscription associated with it, the SIP URI
Specifies whether or not a contact has a voicemail account associated with it. If so, then a context sensitive "to vm" softkey will be displayed for the contact.
Specifies whether or not a contact can be monitored (can have their calls listened to). If so, then a context sensitive "Monitor softkey will be displayed for the contact if the contact is subscribed to and the contact is on a call (IN USE)
Specifies whether or not a contact can be intercom'd. If so, then a context sensitive "Intercom" softkey will be displayed for the contact if the contact is subscribed to anad the contact is not on a call (IDLE)
Number: Child Element of <numbers>
The number to dial
A prefix to be added to a number before dialing. Currently not operable
A description of the number, e.g. "Extension" or "Mobile"
Sets a number as the primary number for a contact. Only one primary number per contact is permissible.
Email: Child Element of <email>
The e-mail address of the contact
A description of the e-mail address, e.g. "Work" or "Home"
Sets an email as the primary e-mail for a contact. Only one primary email per contact is permissible.