| <?php |
| ######################################################################################################## |
| # Aastra XML API Classes - AastraIPPhoneImageScreen |
| # Copyright Aastra Telecom 2008-2010 |
| # |
| # AastraIPPhoneImageScreen object. |
| # |
| # Public methods |
| # |
| # Inherited from AastraIPPhone |
| # setCancelAction(uri) to set the cancel parameter with the URI to be called on Cancel (optional) |
| # @uri string |
| # setDestroyOnExit() to set DestroyonExit parameter to 'yes', 'no' by default (optional) |
| # setBeep() to enable a notification beep with the object (optional) |
| # setLockIn() to set the Lock-in tag to 'yes' (optional) |
| # setLockInCall() to set the Lock-in tag to 'call' (optional) |
| # setTimeout(timeout) to define a specific timeout for the XML object (optional) |
| # @timeout integer (seconds) |
| # addSoftkey(index,label,uri,icon_index) to add custom soktkeys to the object (optional) |
| # @index integer, softkey number |
| # @label string |
| # @uri string |
| # @icon_index integer, icon number |
| # setRefresh(timeout,URL) to add Refresh parameters to the object (optional) |
| # @timeout integer (seconds) |
| # @URL string |
| # setEncodingUTF8() to change encoding from default ISO-8859-1 to UTF-8 (optional) |
| # addIcon(index,icon) to add custom icons to the object (optional) |
| # @index integer, icon index |
| # @icon string, icon name or definition |
| # generate() to return the generated XML for the object |
| # output(flush) to display the object |
| # @flush boolean optional, output buffer to be flushed out or not. |
| # |
| # Specific to the object |
| # setImage(image) to define the image to be displayed |
| # @image string |
| # setGDImage(GDImage) to use a GDImage for display, the size is forced to 40x144 |
| # @GDImage GDImage |
| # setSPImage(SPImage) to use a SPImage for display, the size is forced to 40x144 |
| # @SPImage SPImage |
| # setAlignment(vertical,horizontal) to define image alignment |
| # @vertical string, "left", "right", "center" |
| # @horizontal string, "left", "right", "center" |
| # setSize(height,width) to define image size |
| # @height integer (pixels) |
| # @width integer (pixels) |
| # setAllowDTMF() to allow DTMF passthrough on the object |
| # setScrollUp(uri) to set the URI to be called when the user presses the Up arrow (optional) |
| # @uri string |
| # setScrollDown(uri) to set the URI to be called when the user presses the Down arrow (optional) |
| # @uri string |
| # setScrollLeft(uri) to set the URI to be called when the user presses the Left arrow (optional) |
| # @uri string |
| # setScrollRight(uri) to set the URI to be called when the user presses the Right arrow (optional) |
| # @uri string |
| # |
| # Example |
| # |
| # Using a Pixel image |
| # |
| # require_once('AastraIPPhoneImageScreen.class.php'); |
| # $images = new AastraIPPhoneImageScreen(); |
| # $images->setDestroyOnExit(); |
| # $images->setSize(40,40); |
| # $images->setImage('fffffffc02fffffffee4ffffbfffc05fffe7ff7a7ffffffffeffeebd7fffffea6bcfffffe796f3feff6fa289f0a86f4866fa20df42414595dd0134f8037ed1637f0e2522b2dd003b6eb936f05fffbd4f4107bba6eb0080e93715000010b754001281271408c640252081b1b22500013c5c66201368004e04467520dc11067152b82094d418e100247205805494780105002601530020931400020ac5c91088b0f2b08c21c07d0c2006009fdfe81f80efe0107fe0fb1c3ffff8ffc3fffef8f7febffbfcf87ffbff64'); |
| # $images->addSoftkey('1', 'Mail', 'http://myserver.com/script.php?action=1','1'); |
| # $images->addSoftkey('6', 'Exit', 'SoftKey:Exit'); |
| # $images->addIcon('1', 'Icon:Envelope'); |
| # $images->output(); |
| # |
| # Using a GD image |
| # |
| # require_once('AastraIPPhoneGDImage.class.php'); |
| # require_once('AastraIPPhoneImageScreen.class.php'); |
| # $PhoneImageGD = new AastraIPPhoneGDImage(); |
| # $object = new AastraIPPhoneImageScreen(); |
| # $time = strftime("%H:%M"); |
| # $PhoneImageGD->drawttftext(30, 0, 10, 39, $time, 1,'Ni7seg.ttf'); |
| # $object->setGDImage($PhoneImageGD); |
| # $object->output(); |
| # |
| # Using a SP image |
| # |
| # require_once('AastraIPPhoneImageScreen.class.php'); |
| # $object = new AastraIPPhoneImageScreen(); |
| # require_once('AastraIPPhoneSPImage.class.php'); |
| # $SPimage=new AastraIPPhoneSPImage(); |
| # $SPimage->addIcon('1','286CEE6C2800'); |
| # $SPimage->setBitmap('answered',3,1); |
| # $SPimage->setText('Jean Valjean',1,'left',3); |
| # $SPimage->setText('9057604454',2,'left',3); |
| # $SPimage->setText('Sep 9 10:14am',4,'left',3); |
| # $SPimage->setText('Use #1# to browse',5,'center'); |
| # $object->setSPImage($SPimage); |
| # $object->output(); |
| # |
| ######################################################################################################## |
| |
| require_once('AastraIPPhone.class.php'); |
| |
| class AastraIPPhoneImageScreen extends AastraIPPhone { |
| var $_image; |
| var $_verticalAlign=NULL; |
| var $_horizontalAlign=NULL; |
| var $_height=NULL; |
| var $_width=NULL; |
| var $_allowDTMF=''; |
| var $_scrollUp=''; |
| var $_scrollDown=''; |
| var $_scrollLeft=''; |
| var $_scrollRight=''; |
| |
| function setImage($image) |
| { |
| $this->_image = $image; |
| } |
| |
| function setAlignment($vertical=NULL,$horizontal=NULL) |
| { |
| $this->_verticalAlign = $vertical; |
| $this->_horizontalAlign = $horizontal; |
| } |
| |
| function setSize($height,$width) |
| { |
| $this->_height = $height; |
| $this->_width = $width; |
| } |
| |
| function setScrollUp($uri) |
| { |
| $this->_scrollUp = $uri; |
| } |
| |
| function setScrollDown($uri) |
| { |
| $this->_scrollDown = $uri; |
| } |
| |
| function setScrollLeft($uri) |
| { |
| $this->_scrollLeft = $uri; |
| } |
| |
| function setScrollRight($uri) |
| { |
| $this->_scrollRight = $uri; |
| } |
| |
| function setGDImage($GDImage) |
| { |
| $img = $GDImage->getGDImage(); |
| $byte = 0; |
| $i = 0; |
| $imageHexString = ""; |
| for ($x=0; $x < 144; $x++) |
| { |
| for ($y=0; $y < 40; $y++) |
| { |
| $rgb = imagecolorat($img, $x, $y); |
| if ($rgb > 0) $byte = $byte + pow(2,(7-($i%8))); |
| if ($i%8 == 7) |
| { |
| $byteHex = dechex($byte); |
| if (strlen($byteHex) == 1) $byteHex = "0".$byteHex; |
| $imageHexString = $imageHexString . $byteHex; |
| $byte=0; |
| } |
| $i++; |
| } |
| } |
| $this->setImage($imageHexString); |
| $this->setSize(40,144); |
| } |
| |
| function setSPImage($SPImage) |
| { |
| $this->setImage($SPImage->getSPImage()); |
| $this->setSize(40,144); |
| } |
| |
| function setAllowDTMF() |
| { |
| $this->_allowDTMF = 'yes'; |
| } |
| |
| function render() |
| { |
| # Beginning of root tag |
| $out = "<AastraIPPhoneImageScreen"; |
| |
| # DestroyOnExit |
| if($this->_destroyOnExit == 'yes') $out .= " destroyOnExit=\"yes\""; |
| |
| # CancelAction |
| if($this->_cancelAction != "") |
| { |
| $cancelAction = $this->escape($this->_cancelAction); |
| $out .= " cancelAction=\"{$cancelAction}\""; |
| } |
| |
| # Beep |
| if($this->_beep=='yes') $out .= " Beep=\"yes\""; |
| |
| # Lockin |
| if($this->_lockin!='') $out .= " LockIn=\"{$this->_lockin}\""; |
| |
| # Timeout |
| if($this->_timeout!=0) $out .= " Timeout=\"{$this->_timeout}\""; |
| |
| # AllowDTMF |
| if($this->_allowDTMF=='yes') $out .= " allowDTMF=\"yes\""; |
| |
| # Scrolls up/down/left/right |
| if($this->_scrollUp!='') $out .= " scrollUp=\"".$this->escape($this->_scrollUp)."\""; |
| if($this->_scrollDown!='') $out .= " scrollDown=\"".$this->escape($this->_scrollDown)."\""; |
| if($this->_scrollLeft!='') $out .= " scrollLeft=\"".$this->escape($this->_scrollLeft)."\""; |
| if($this->_scrollRight!='') $out .= " scrollRight=\"".$this->escape($this->_scrollRight)."\""; |
| |
| # End of root tag |
| $out .= ">\n"; |
| |
| # Beginning of Image tag |
| $out .= "<Image"; |
| |
| # VerticalAlign |
| if($this->_verticalAlign!=NULL) $out .= " verticalAlign=\"{$this->_verticalAlign}\""; |
| |
| # HorizontalAlign |
| if($this->_horizontalAlign!=NULL) $out .= " horizontalAlign=\"{$this->_horizontalAlign}\""; |
| |
| # Height |
| if($this->_height!=NULL) $out .= " height=\"{$this->_height}\""; |
| |
| # Width |
| if($this->_width!=NULL) $out .= " width=\"{$this->_width}\""; |
| |
| # Image and end of image tag |
| $out .= ">{$this->_image}</Image>\n"; |
| |
| # Softkeys |
| if (isset($this->_softkeys) && is_array($this->_softkeys)) |
| { |
| foreach ($this->_softkeys as $softkey) $out .= $softkey->render(); |
| } |
| |
| # Icons |
| if (isset($this->_icons) && is_array($this->_icons)) |
| { |
| $IconList=False; |
| foreach ($this->_icons as $icon) |
| { |
| if(!$IconList) |
| { |
| $out .= "<IconList>\n"; |
| $IconList=True; |
| } |
| $out .= $icon->render(); |
| } |
| if($IconList) $out .= "</IconList>\n"; |
| } |
| |
| # End tag |
| $out .= "</AastraIPPhoneImageScreen>\n"; |
| |
| # Return XML object |
| return $out; |
| } |
| } |
| ?> |