How to enable /disable MWI ?

Unanswered Question
Jul 30th, 2007


I want to write a small application to enable/disable IP Phone lamp. But confused by how to enable MWI(Message Waiting indicator). TAPI ? AXL ? or some others , which can implement it . Could you give me some direction, thank you !

I have this problem too.
0 votes
  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 1 (1 ratings)
stephan.steiner Mon, 07/30/2007 - 04:58

JTAPI definitely does work - I guess TAPI would too. I don't think AXL is the proper interface for this kind of thing.. you may be able to write into the appropriate DB field starting from CCM 5.0, but whether that'll trigger the lamp is up to you to find out - I suspect you'd have to at least reset the phone for any change to become effective.

RichardXiong1982 Mon, 07/30/2007 - 19:01

Thanks, Stephan

You mean I should call JTAPI/TAPI directly change CCM 5.0 DB filed , right ?

I find two DB fileds like below from <> fkcallingsearchspace_mwi (FI-1078)

2.3.119 numplandynamic (TI-334)

But I can't find how to implement it . Could you give me some references about that or some

examples ? I am sorry for my fool.

Best Regards

stephan.steiner Wed, 08/01/2007 - 23:36

I never checked what happens on a database level. However, for any actions that have a direct influence on a device, writing directly into the database is the wrong approach.

As an example: if you set a forward (callforward all) via database (and not AXL), calls may well be forwarded, but the phone's status won't be adapted (so you don't have the callforward indicator and no information about the callforward). If you set the callforward via JTAPI or AXL, the phone's status will also be updated to show that it has been forwarded.

When you configure a phone, you'll see the same thing in many cases.. especially in older CCM releases, you were often told that you need to reset the phone to apply a change you've made. In newer versions, this is often (but not always done automatically.. you'll see the phone restart after pressing update).. it's the same thing here.. you write into the database, but then you also have to apply those changes to the phone (one good example is changing a line label.. you won't get the label to change on the phone by just writing to the database.. you have to restart the phone for it to load the new label name).

Even if you need to get the mwi status, JTAPI will do that for you (CiscoAddress.getMessageWaiting - and to set it, it's CiscoAddress.setMessageWaiting). Since you need a CTI command to set the MWI, you can as well resort to CTI to get the MWI status as well and don't bother with the database.

fkcallingsearchspace_mwi is definitely not it though - I can tell you that without looking at the diagram since fk_anything is a foreign key and you have an uuid value in that field. The mwi status would be a boolean since it can have just two values. In fact, it's numplan.ismessagewaitingon but as I said.. with any element that has a direct influence on a phone's appearance or behavior, you cannot just change it... at best you need a phone reset. And if you do it with JTAPI (and probably TAPI too.. I can't be sure because I've never done TAPI and hope to never have to), you can change the MWI status on the fly without having to restart the phone, which is much more elegant.

RichardXiong1982 Thu, 08/02/2007 - 01:40


Thanks for your reply. I am newer for Unified Communications. Could you mean use AXL ? Then

make a call to the ipphone and dial with the number of the MWI ON /OFF ?

Best Regards


It is not AXL.

IPP have a web server that can interpret commands.

You can send XML to IPP (via their IP) and tell them to execute some command like dialing, press button etc ...

For your question :

MWI ON & Off are just number on CUCC

so if on a phone you dial the MWI ON Number, the phone will automatically light the lamp.

and so on if you dial MWI off

You can try this easilly if you have a IPP.

So the idea I suggest is to push XML command to the phone to execute a Dial to MWI ON or OFF

It is very simple, the difficulty is to find all IP Adress of you IPP that you want to control

Example of request to send To IPP :

RichardXiong1982 Thu, 08/02/2007 - 17:53


Thanks for your reply!

Push XML command to the phone to execute a Dial to MWI ON /OFF , it is direct and simple method.

I try press extension MWI ON number on IPP, the lamp light, and really simple. :)

But do like that , the application who send xml will not communicate with CCM ,right ?

If I use JTAPI/TAPI , initialize a line , and make a call to phonenumber with MWI ON , it will implement same function , is it ?

Best Regards

hi Richard

Indeed, if you initiate a call in Tapi/Jtapi it will do the same.

My opinion is that it is just a little more complicate to initiate a call with JTAPI/TAPI, create a provider/superprovider, create observerse, what else .. than send an XML POST to a phone.

But it is your choice ;-)

Good Luck, don't hesitate


RichardXiong1982 Thu, 08/02/2007 - 01:32


Thanks for your patience and care!

I look for <>, find Cisco TAPI doesn't support PhoneGetLamp and PhoneSetLamp.

I will follow your direction (CiscoAddress.getMessageWaiting - and to set it, it's CiscoAddress.setMessageWaiting), learn about that.

Thanks again !

Best Regards

schemberg Wed, 08/08/2007 - 00:46

Hi all,

MWI is working very simple. You call the MWI-On-DN with the correct calling-number (where the MWI should be switched on), thats all.



RichardXiong1982 Mon, 08/13/2007 - 03:11


Could you supply your implement of thought? I mean how do you implement MWI with TAPI step by step.

initialize a line -> select a phone, go on ???

Best Regards

schemberg Mon, 08/13/2007 - 03:15

... dial ?!

We are not using TAPI, we are using SIP and it works like a charm!



RichardXiong1982 Tue, 08/14/2007 - 02:27

Do you means directly send SIP message to IP Phone?

I am a newbie. Could you guide me more clearly?

Best Regards


RichardXiong1982 Wed, 08/15/2007 - 18:04


Thanks for your reply.

Use Asterisk, when a user bind to the IP Phone have an unread voicemail, can Asterisk call the user's extension and switch on/off MWI automaticly ?

Best Regards

firebirdx Fri, 08/31/2007 - 05:52

I read the TAPI documents recently and know ITPhone interface can be used get/set lampMode. but this only works on local phone.

Acutally, my requirements are: I will write an application which will check user's voicemail, if there is any unread voice mail, the app will send Message Waiting Indicator on the user's phone. I am blocked at the place which send MWI to others phone. I mean my program will use TAPI/TSP to light other user's phone lamp(Message Waiting Indication). But from TAPI documents, IAddress Object can only get from my own phone, I can only get my ITPhone object and I can't get the ITPhone object of other user. So I can only control MY phone's lamp not others.

Does anyone have any idea on how to set other user's phone lamp using TAPI or other way (SIP?), If there is any way: I can dial a number which can light on other's phone lamp?


This Discussion