[YMCS/YDMP Free Trial Program]Yealink would like to offer Free Trial Program of Yealink device management service for our current eligible customers. You can see the details below.
https://www.yealink.com/ydmp-freetrial-2020


Post Reply 
 
Thread Rating:
  • 1 Votes - 4 Average
  • 1
  • 2
  • 3
  • 4
  • 5
T38 wallpaper change
Author Message
cptjack Offline
Member
***

Posts: 97
Joined: Jan 2014
Reputation: 8
Post: #11
RE: T38 wallpaper change
There are several ways to achieve this. Either all in the dialplan, or all in the PHP script or a combination of both. I haven't played around with AGI, but I'm sure you it can also call the curl script from the dialplan if needed.

1) You can include this macro-wallaper in your dialplan and call it from the night-mode extensions like this:
Code:
[macro-wallpaper]
exten => s,1,NoOp(Setting wallpaper of phone ${CHANNEL(peerip)} to ${ARG1})
     same => n,Set(options=profileOpen("/phone/config/user.ini")profileSetString("PhoneSetting","BackGrounds","Config:${ARG1}")profileSave()msgBroadcastPostMessage("0x10007","43","0")))
     same => n,System(curl --form-string 'postCommands=${options}' http://${CHANNEL(peerip)}/cgi-bin/cgiServer.exx)

[night-mode-ext]
exten => *32,1,NoOp(CLOSED - Nightmode)
     same => n,Macro(wallpaper,wall01.jpg)
     same => n,Hangup()
exten => *34,1,NoOp(BACK - Backline-Group/Weekend)
     same => n,Macro(wallpaper,wall02.jpg)
     same => n,Hangup()
exten => *30,1,NoOp(HERE - Recept answering)
     same => n,Macro(wallpaper,wall03.jpg)
     same => n,Hangup()
exten => *31,1,NoOp(AWAY - Ring-Group answering (Lunch))
     same => n,Macro(wallpaper,wall04.jpg)
     same => n,Hangup()
Note: this uses the System() call and will execute the parameters passed to it in the shell. So, make sure the command is secure and do NOT pass anything to it that is not verified as safe. In this case we use ${CHANNEL(peerip)} to get the phone ip address and ${ARG1} to pass the name of the wallpaper to set.

2) You can change the PHP script above to use URI=DIAL:*3x instead of URI=Key:Cancel. It will accomplish the same thing, but via the external script:
PHP Code:
<?php
ini_set
('error_reporting'E_ALL);
ini_set('display_errors''0');

// Server and Phone URI
$scripturl 'http://' $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'];
$phoneip $_SERVER['REMOTE_ADDR'];    // Your phone IP

$maxnum 4;
$username"admin";
$password"admin";
$extensions = array(1=>"*32",2=>"*34",3=>"*30",4=>"*31");

$id 0;
if (isset(
$_GET["id"])) { $id += $_GET["id"]; }
if (isset(
$_GET["phoneip"])) { $phoneip $_GET["phoneip"]; }

if ((
$id>0) && ($id<=$maxnum)) {
    
// Change the Wallpaper and dial extension
    
setWallpaper("wall0$id.jpg"$phoneip$username$password);
    echo 
'<YealinkIPPhoneExecute Beep="no"><ExecuteItem URI="Dial:'.$extensions[$id].'"/></YealinkIPPhoneExecute>';
} else {
    
// List Options
    
echo '
    <?xml version="1.0" encoding="ISO-8859-1"?>
<YealinkIPPhoneTextScreen
        Beep="no"
        defaultIndex=""
        cancelAction=""
        doneAction=""
        Timeout="10000"
        LockIn="no">
<Title wrap="yes">RECEPTIONIST STATUS</Title>
<Text>
CLOSED'
."\t".'Nightmode
BACK'
."\t".'Backline-Group/Weekend
HERE'
."\t".'Recept answering
AWAY'
."\t".'Ring-Group answering (Lunch)
</Text>

<SoftKey index="1">
<Label>CLOSED</Label>
<URI>'
.$scripturl."?id=1".'</URI>
</SoftKey>

<SoftKey index="2">
<Label>BACK</Label>
<URI>'
.$scripturl."?id=2".'</URI>
</SoftKey>

<SoftKey index="3">
<Label>HERE</Label>
<URI>'
.$scripturl."?id=3".'</URI>
</SoftKey>


<SoftKey index="4">
<Label>AWAY</Label>
<URI>'
.$scripturl."?id=4".'</URI>
</SoftKey>

</YealinkIPPhoneTextScreen>'
;
    
 }
 
 
 function 
setWallpaper($rname$host$username$password) {
        
$ch curl_init();
        
        
// Login to the web interface
        
curl_setopt($chCURLOPT_USERPWD$username ":" $password);
        
curl_setopt($chCURLOPT_URL'http://'.$host);
        
curl_setopt($chCURLOPT_COOKIEFILE'/dev/null');
        
curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
$store curl_exec($ch);
        
        
// Post Wallpaper Choice
        
curl_setopt($chCURLOPT_URL'http://'.$host.'/cgi-bin/cgiServer.exx');
        
$postCommands='profileOpen("/phone/config/user.ini")profileSetString("PhoneSetting","BackGrounds","Config:'.$rname.'")profileSave()msgBroadcastPostMessage("0x10007","43","0"))';
        
$fields = array('postCommands' => $postCommands);
        
curl_setopt($chCURLOPT_POSTFIELDS$fields);
        
$content curl_exec($ch);

        return 
$content;
}
?>

3) Lastly, you can call the php script from the dialplan too:
Code:
exten => *32,1,NoOp(CLOSED - Nightmode)
     same => n,Set(Result=${CURL(http://serverip/script.php?id=1&phoneip=${CHANNEL(peerip)})})
     same => n,Hangup()
exten => *34,1,NoOp(BACK - Backline-Group/Weekend)
     same => n,Set(Result=${CURL(http://serverip/script.php?id=2&phoneip=${CHANNEL(peerip)})})
     same => n,Hangup()
exten => *30,1,NoOp(HERE - Recept answering)
     same => n,Set(Result=${CURL(http://serverip/script.php?id=3&phoneip=${CHANNEL(peerip)})})
     same => n,Hangup()
exten => *31,1,NoOp(AWAY - Ring-Group answering (Lunch))
     same => n,Set(Result=${CURL(http://serverip/script.php?id=4&phoneip=${CHANNEL(peerip)})})
     same => n,Hangup()

Please use the reputation button below if you like this post.
(This post was last modified: 06-19-2014 04:12 PM by cptjack.)
06-19-2014 06:48 AM
Find all posts by this user    like0    dislike0 Quote this message in a reply
Post Reply 


Messages In This Thread
T38 wallpaper change - CWR - 04-29-2014, 06:51 AM
RE: T38 wallpaper change - cptjack - 06-08-2014, 09:42 AM
RE: T38 wallpaper change - CWR - 06-08-2014, 12:33 PM
RE: T38 wallpaper change - cptjack - 06-08-2014, 11:09 PM
RE: T38 wallpaper change - CWR - 06-09-2014, 09:34 PM
RE: T38 wallpaper change - habile - 06-09-2014, 01:47 AM
RE: T38 wallpaper change - cptjack - 06-09-2014, 02:21 AM
RE: T38 wallpaper change - habile - 06-09-2014, 02:46 AM
RE: T38 wallpaper change - cptjack - 06-10-2014, 02:11 AM
RE: T38 wallpaper change - CWR - 06-18-2014, 01:06 AM
RE: T38 wallpaper change - cptjack - 06-19-2014 06:48 AM
RE: T38 wallpaper change - CWR - 06-19-2014, 07:49 AM
RE: T38 wallpaper change - cptjack - 06-19-2014, 04:19 PM
RE: T38 wallpaper change - CWR - 06-19-2014, 10:53 PM
RE: T38 wallpaper change - cptjack - 06-21-2014, 04:22 AM
RE: T38 wallpaper change - lorn10 - 01-22-2015, 11:35 PM
RE: T38 wallpaper change - CWR - 01-23-2015, 12:15 AM
RE: T38 wallpaper change - lorn10 - 01-24-2015, 01:03 AM
RE: T38 wallpaper change - CWR - 01-24-2015, 01:09 AM
RE: T38 wallpaper change - lorn10 - 01-24-2015, 01:20 AM

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  Register Failed after network change pdoerr 6 46,968 02-01-2015 06:03 AM
Last Post: CWR
  T32 and 38 wallpaper size aboodoo 1 6,669 02-20-2014 07:00 PM
Last Post: Yealink Support

Forum Jump:


User(s) browsing this thread:

Contact Us   Yealink   Return to Top   Return to Content   Lite (Archive) Mode   RSS Syndication