<?php ######################################################################################################## # Aastra XML API Classes - AastraIPPhoneImageScreen # Copyright Mitel Networks 2005-2015 # # AastraIPPhoneImageScreen object. # # Public methods # # Inherited from AastraIPPhone # setTopTitle(title,color,icon_index) to set the Top Title of the XML screen (6739i only) # @title string # @color string, "red", "blue", ... (optional) # @icon_index integer, icon number # 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(uri) to set the Lock-in tag to 'yes' and the GoodbyeLockInURI(optional) # @uri string, GoodByeLockInURI # setLockInCall() to set the Lock-in tag to 'call' (optional) # setCallProtection(notif) to protect the XML object against incoming calls # @notif to enable/disable (false by default) the display of an incoming call notification (optional) # setAllowAnswer() to set the allowAnswer tag to 'yes' (optional, only for non softkey phones) # setAllowDrop() to set the allowDrop tag to 'yes' (optional, only for non softkey phones) # setAllowXfer() to set the allowXfer tag to 'yes' (optional, only for non softkey phones) # setAllowConf() to set the allowConf tag to 'yes' (optional, only for non softkey phones) # setTimeout(timeout) to define a specific timeout for the XML object (optional) # @timeout integer (seconds) # setBackgroundColor(color) to change the XML object background color (optional) # @color string, "red", "blue", ... # 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,scaling) to define the image to be displayed # @image string # @scaling scaling indicator "yes"/"no" optional # 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, "top", "middle", "bottom" # @horizontal string, "left", "middle", "right" # setScaling() to indicate if image must be scaled # 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 # setMode(mode) to define the image mode to be displayed (normal,extended,fullscreen) (optional, 6739i only) # @mode string enum normal,extended,fullscreen # setDoneAction(uri) to set the URI to be called when the user selects the default "Done" key (optional) # @uri string # setImageAction(uri) to set the imageAction parameter with the URI to be called when user presses on the displayed image (optional, 6739i only) # @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 $_scaled=''; var $_height=NULL; var $_width=NULL; var $_allowDTMF=''; var $_scrollUp=''; var $_scrollDown=''; var $_scrollLeft=''; var $_scrollRight=''; var $_mode=NULL; var $_imageAction=''; var $_doneAction=''; function setImage($image) { $this->_image = $image; } function setAlignment($vertical=NULL,$horizontal=NULL) { $this->_verticalAlign = $vertical; $this->_horizontalAlign = $horizontal; } function setScaling() { $this->_scaled = 'yes'; } 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 setImageAction($action) { $this->_imageAction = $action; } function setDoneAction($uri) { $this->_doneAction = $uri; } function setMode($mode) { $this->_mode = $mode; } 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}\""; } # DoneAction if($this->_doneAction != "") { $doneAction = $this->escape($this->_doneAction); $out .= " doneAction=\"{$doneAction}\""; } # Beep if($this->_beep=='yes') $out .= " Beep=\"yes\""; # Lockin if($this->_lockin!='') { $out .= " LockIn=\"{$this->_lockin}\""; if($this->_lockin_uri!='') $out .= " GoodbyeLockInURI=\"".$this->escape($this->_lockin_uri)."\""; } # Call Protection if($this->_callprotection!='') { $out .= " CallProtection=\"{$this->_callprotection}\""; } # Timeout if($this->_timeout!=0) $out .= " Timeout=\"{$this->_timeout}\""; # Background color if ($this->_background_color!='') $out .= " bgColor=\"{$this->_background_color}\""; # AllowAnswer if ($this->_allowAnswer == 'yes') $out .= " allowAnswer=\"yes\""; # AllowDrop if ($this->_allowDrop == 'yes') $out .= " allowDrop=\"yes\""; # AllowXfer if ($this->_allowXfer == 'yes') $out .= " allowXfer=\"yes\""; # AllowConf if ($this->_allowConf == 'yes') $out .= " allowConf=\"yes\""; # 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)."\""; # ImageAction if($this->_imageAction != '') { $imageAction = $this->escape($this->_imageAction); $out .= " imageAction=\"{$imageAction}\""; } # Mode if($this->_mode != '') { $mode = $this->escape($this->_mode); $out .= " mode=\"{$mode}\""; } # End of root tag $out .= ">\n"; # Top Title if ($this->_toptitle!='') { $toptitle = $this->escape($this->_toptitle); $out .= "<TopTitle"; if ($this->_toptitle_icon!='') $out .= " icon=\"{$this->_toptitle_icon}\""; if ($this->_toptitle_color!='') $out .= " Color=\"{$this->_toptitle_color}\""; $out .= ">".$toptitle."</TopTitle>\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}\""; # Scaling if($this->_scaled!='') $out .= " scaled=\"{$this->_scaled}\""; # 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; } } ?>