Sending a SIP MWI (Message Waiting Indicator) using Asterisk AMI is possible, but the syntax is just really confusing (and not documented), after rummaging through the source code for a bit I worked it out.
We need to use the SIPnotify AMI Action. The tricky part is getting the syntax right:
Action: SIPnotify ActionID: 1231541512 Channel: peername Variable: Event=message-summary,Content-Type=application/simple-message-summary,Content=Messages-Waiting: yes,Content=Voice-Message:1/3
Here is a complete example of some PHP code that uses Joshua Hatfield’s very helpful flowAPI Class which makes working with the Asterisk Manager Interface very easy in PHP.
$username="somesippeerusername";
$total_messages=5;
$unheard_messages=2;
$waiting="no";
if($unheard_messages > 0){
$waiting="yes";
}
$body1="Messages-Waiting: $waiting";
$body2="Voice-Message: $unheard_messages/$total_messages";
$ami=new floAPI();
$params=array(
"ActionID"=>rand(12,12),
"Channel"=> $username,
"Variable"=>"Event=message-summary,Content-Type=application/simple-message-summary,Content=$body1,Content=$body2");
$ami->request("SIPnotify",$params);
$ami->close();
Alternative ways of sending MWI
You could use a different SIP messaging program (besides Asterisk) to send a SIP MWI Notify.
Using SipSak
http://www.voip-info.org/wiki/view/Asterisk+Realtime+MWI+Hacks
Using PHPSip
https://code.google.com/p/php-sip/
Just make sure you use the right syntax as specified here.
References:
https://issues.asterisk.org/jira/browse/ASTERISK-13089?jql=text%20~%20%22SIPnotify%22
https://issues.asterisk.org/jira/browse/ASTERISK-23283?jql=text%20~%20%22SIPnotify%22
http://forums.asterisk.org/viewtopic.php?f=1&t=91498&start=0&hilit=SIPnotify
https://wiki.asterisk.org/wiki/display/AST/ManagerAction_SIPnotify
