From: Brent D. <br...@de...> - 2005-04-15 02:29:50
|
OK, since there is no class type for xPL like there is for xAP on incoming messages, I am trying to find a way to distinguish whether an incoming message is the message I am actually looking for (cid notification from Asterisk) or not (for example, a heartbeat). The problem I've run into is that hash items are not de-allocated/de-initialized from message to message, they are just over-written. So when a heartbeat message is received, the object still has the hash information from the previous callerid message, so I can't test with exists() because if there has ever been a callerid event since MH was started, the test will be positive. I am getting around this now by deleting the part of the hash that contains the cid info after I process it (see code below). $xpl_asterisk = new xPL_Item('ag-asterisk.asterisk1local'); if (($state = state_now $xpl_asterisk) && ($xpl_asterisk->{'cid.asterisk'}{phone}!='')) { speak("There is an incoming call from ".$xpl_asterisk->{'cid.asterisk'}{cln}.", number is ".$xpl_asterisk->{'cid.asterisk'}{phone}); delete $xpl_asterisk->{'cid.asterisk'}; } Is this the best or only way to handle this? Boy, the class functionality of xAP would sure come in handy here...is that just not part of the xPL specification, or is this just how it is implemented in MH? Thanks, Brent |