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