Smart BLF question with DPMA

Community based support for the Digium Phone Application Programming Interface (API).

Moderators: jwitt, sruffell, malcolmd, Moderator

Smart BLF question with DPMA

Postby TomJohnson » Mon Jan 20, 2014 2:41 pm

Not sure if this forum is the right place for it, but references to BLF are in other messages.

Anyway, trying to add the "status" app to a BLF as it seems impossible to access while on a call except on a D70. Determined that I should set app_id="status" in the BLF item. The problem is that the label on the button is now "status". Is there some way to uppercase the 's' to match the softkey option? I tried app_id="Status", but it just stays on "Loading" when pressed.

Ideally, I would like a DND toggle that could be used while in a call, but have not had much luck with that.
TomJohnson
Newsterisk
 
Posts: 20
Joined: Thu Jun 23, 2011 6:23 am

Re: Smart BLF question with DPMA

Postby malcolmd » Mon Jan 20, 2014 3:19 pm

Howdy,

If you want to do that, you can't use the shortcut way of loading an app:

Code: Select all
<config>
<smart_blf>
        <blf_items>
            <blf_item location="side" index="0" paging="1" app_id="status"/>
        </blf_items>
    </smart_blf>
</config>


Doing that will put the status app on there, but you won't be able to edit the name. The status app is, under the hood, maintaining an app_id of "status" so that's that.

But, if you go about things using a contact that loads an application, e.g. in your Contacts file make a contact like:

Code: Select all
<?xml version="1.0" ?>
<phonebooks>
<contacts group_name="Directory" editable="0" id="0">
    <contact id="1234" prefix="" first_name="" second_name="" last_name="Status" suffix="" contact_type="special" organization="" job_title="" location="" notes="The Status Application" account_id="1234">
        <emails>
        </emails>
        <actions>
            <action id="primary" app_id="status" label="Status" name="Status App"/>
        </actions>
    </contact>
    </contacts>
</phonebooks>


And then, in your Smart BLF sheet, something like:

Code: Select all
<config>
<smart_blf>
        <blf_items>
            <blf_item location="side" index="0" paging="1" contact_id="1234">
                <behaviors>
                    <behavior press_action="primary" press_function="show_app" />
                </behaviors>
            </blf_item>
        </blf_items>
</smart_blf>
</config>


Then, you'll have an app mapped to a contact, where you've set the last name for the contact to "Status."

Note that I haven't fully tested my samples above, they're just hand-written, so there might be syntax errors. ;)

Having said all of that, if what you're trying to do is map a key on your phone to controlling your Status while you're on a call, you've got a couple of options. First, understand that the Status is actually controlled by a custom device state inside of Asterisk - https://wiki.asterisk.org/wiki/display/ ... erPresence

So, what you're doing then is just updating that device state in Asterisk. You'd need to make a BLF send something to Asterisk that it can parse using in-call DTMF (features.conf) or you'd have to write your own app that, when loaded into the foreground, fired something off to Asterisk that you could then grab (probably over AMI) and then feed back into Asterisk in terms of setting the device state.

Cheers
Malcolm Davenport
Digium, Inc. | Senior Product Manager
malcolmd
Moves Like Spencer
 
Posts: 3019
Joined: Wed Aug 03, 2005 3:53 pm
Location: Huntsville, AL, US


Return to Digium Phone API

Who is online

Users browsing this forum: No registered users and 1 guest