Grandstream idle screen: Unterschied zwischen den Versionen

Aus metasec wiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „ <pre> [grandstream-idle-screen-refresh] Event=>x-gs-screen Content-Length=>0 </pre> <pre> <?php include("/var/www/zphone/etc/config.inc.php"); include($CCBOX[…“)
 
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
=Allgemein=
 +
 +
Um bei den Grandstream Telefonen einen dynamischen Idle Screen zu installieren
 +
sind nachfolgende Schritte zu befolgen. Der dynamische Idle Screen kann z.b.
 +
dazu verwendet werden um den DND oder Umleitungsstatus einzublenden.
 +
 +
Der Screen als solches kann auch noch mit diversen Informationen "angereichert"
 +
werden. Datum, Benuztername, LineID, etc...
 +
 +
=Installation=
 +
 +
Als erstes muss ein weiterer SIP Notify Typ im System hinzugefügt werden. Dazu muss
 +
in der Datei /etc/asterisk/sip_notify.conf folgender Inhalt hinzugefügt werden:
  
 
<pre>
 
<pre>
Zeile 8: Zeile 21:
 
</pre>
 
</pre>
  
<pre>
+
Danach bitte auf der Asterisk CLI ein
<?php
+
include("/var/www/zphone/etc/config.inc.php");
+
include($CCBOX["INC"]."func_sql.inc.php");
+
include($CCBOX["INC"]."func_manager.inc.php");
+
  
 +
sip reload
  
function zphone_manager_db_get( $family, $key ) {
+
durchführen. Nun steht das SIP Notify im System zu verfügung. Dieses wird benötigt um
 +
den Telefonen mitzuteilen dass diese sich ein Update des Idle Screens holen sollen.
  
 +
Als nächstes muss noch etwas weitere Software auf dem System installiert werden.
 +
Dieses steht im diesem Archiv zum download bereit. Oder einfach folgendes auf der
 +
Konsole eingeben:
  
    $str    = trim(zphone_manager_exec_cmd("database get ".$family." ".$key));
+
wget http://dl.metasec.de/zphone/gs_active_idle_screen.tar.gz
    $uml_nr = (string)str_replace("Value: ","", $str );
+
  
    if ( $uml_nr == "" || $uml_nr == -1 || $uml_nr == "0I>" || $uml_nr == 0 )
+
danach das Archiv entpacken
        return -1;
+
    else
+
        return $uml_nr;
+
  
 +
tar xvzf gs_active_idle_screen.tar.gz -C /
  
    return true;
+
und den zphone_gs_msg_server starten.
  
}
+
/var/www/zphone/bin/zphone_gs_msg_server.php start
  
 +
Das System ist nun vollständig installier. Jetzt muss nur noch der Wahlplan erweitert werden.
  
 +
=Wahlplan=
  
 +
Das Regelwerk soll nur bei internen Anrufern greifen. Deshalb wird die Länge der CallerID
 +
geprüft. Im Beispiel gehen wir von zweistelligen Nummern aus! Dieses Regelwerk wird
 +
im default Kontext hinzugefügt.<br>
 +
Die "h" Extension wird ausgeführt wenn ein Anruf aufgelegt wird.
  
 +
<pre>
  
$str = $_SERVER["HTTP_USER_AGENT"];
+
exten => h, 1, NoOp(=== HANGUP ===)
$_arr = explode("DevId", $str);
+
exten => h, 2, GoToIf($[${LEN(${CALLERID(num)})}=2]?100)
$_arr[1] = trim($_arr[1]);
+
  
$s = new SQL;
+
exten => h, 100, NoOp(== INTERNER CALLER ==)
$s->query("SELECT ae_ext FROM ast_users WHERE ae_mac_ip='".strtoupper($_arr[1])."'");
+
exten => h, 101, DeadAGI(gs_sip_notify.agi,${CALLERID(num)})
$s->next_record();
+
$ae_ext = $s->f("ae_ext");
+
$s->free_result();
+
  
//$uml = $ae_ext;
+
</pre>
$uml = zphone_manager_db_get( "uml_target", $ae_ext );
+
print("<?xml version=\"1.0\"?>\n");
+
?>
+
<Screen>
+
  <IdleScreen>
+
      <ShowStatusLine>true</ShowStatusLine>
+
      <DisplayString font="f10h" halign="Center" a1reg="false">
+
          <DisplayStr>$N</DisplayStr>
+
          <X>64</X>
+
          <Y>1</Y>
+
      </DisplayString>
+
      <DisplayString font="f10b" halign="Center" a1reg="true">
+
          <DisplayStr>$N</DisplayStr>
+
          <X>64</X>
+
          <Y>1</Y>
+
      </DisplayString>
+
  
      <DisplayString font="f16" halign="Center" a1reg="false">
+
Nachdem der Wahlplan geändert worden ist, muss diese nur noch übernommen werden. Danach
          <DisplayStr>$X</DisplayStr>
+
steht die Funktion zur Verfügung...
          <X>64</X>
+
          <Y>10</Y>
+
      </DisplayString>
+
  
      <DisplayString font="f16b" halign="Center" a1reg="true">
+
=Telefon=
          <DisplayStr>$X</DisplayStr>
+
Im Telefon muss noch der Download des Idle Screens konfiguriert werden. Dieses wird unter
          <X>64</X>
+
"Erweitert" oder "Advanced Options" eingestellt. Einfach nach "Untaetiger Bildschirm XML Download"
          <Y>10</Y>
+
( ja ja ... google Translage :-> ) suchen und den Pfad angeben. Wenn der Zphone Server die IP
      </DisplayString>
+
192.168.1.1 hat, dann lautet dieser
  
<?php
+
http://192.168.1.1:99/grandstream.php?file=
if ( $uml > 0 ) {
+
?>
+
      <DisplayString font="f8" halign="Center" a1reg="true">
+
          <DisplayStr>UML: <?php
+
          print($uml);
+
          ?></DisplayStr>
+
          <X>64</X>
+
          <Y>28</Y>
+
      </DisplayString>
+
<?php
+
}
+
?>
+
      <DisplayString font="f8" halign="Center">
+
          <DisplayStr>$M $D, $Y</DisplayStr>
+
          <X>64</X>
+
          <Y>40</Y>
+
      </DisplayString>
+
  </IdleScreen>
+
</Screen>
+
  
</pre>
+
Diese Einstellung kann auch in der Mastervorlage eingegeben werden.
 +
<pre>
 +
 
 +
# XML Idle Screen
 +
# N/A for GXP1200
 +
#---------------------------------------
 +
# Enable Idle Screen XML Download
 +
# 0 = No
 +
# 1 = YES, HTTP
 +
# 2 = YES, TFTP
 +
P340 = 1
 +
 
 +
# Idle Screen XML Server Path
 +
# This is a string of up to 128 characters that should contain a path to the XML file.
 +
# It MUST be in the host/path format.  For example: "directory.grandstream.com/engineering"
 +
P341 = <%ae_srv_addr%>:99/grandstream.php?file=
  
  
<pre>
 
exten => h,n,System(/usr/sbin/asterisk -rx "sip notify grandstream-idle-screen-refresh ${CALLERID(num)}")
 
 
</pre>
 
</pre>
 +
 +
=Anpassung vom Screen=
 +
tbd

Aktuelle Version vom 21. März 2010, 20:02 Uhr

Allgemein

Um bei den Grandstream Telefonen einen dynamischen Idle Screen zu installieren sind nachfolgende Schritte zu befolgen. Der dynamische Idle Screen kann z.b. dazu verwendet werden um den DND oder Umleitungsstatus einzublenden.

Der Screen als solches kann auch noch mit diversen Informationen "angereichert" werden. Datum, Benuztername, LineID, etc...

Installation

Als erstes muss ein weiterer SIP Notify Typ im System hinzugefügt werden. Dazu muss in der Datei /etc/asterisk/sip_notify.conf folgender Inhalt hinzugefügt werden:


[grandstream-idle-screen-refresh]
Event=>x-gs-screen
Content-Length=>0

Danach bitte auf der Asterisk CLI ein

sip reload

durchführen. Nun steht das SIP Notify im System zu verfügung. Dieses wird benötigt um den Telefonen mitzuteilen dass diese sich ein Update des Idle Screens holen sollen.

Als nächstes muss noch etwas weitere Software auf dem System installiert werden. Dieses steht im diesem Archiv zum download bereit. Oder einfach folgendes auf der Konsole eingeben:

wget http://dl.metasec.de/zphone/gs_active_idle_screen.tar.gz

danach das Archiv entpacken

tar xvzf gs_active_idle_screen.tar.gz -C /

und den zphone_gs_msg_server starten.

/var/www/zphone/bin/zphone_gs_msg_server.php start

Das System ist nun vollständig installier. Jetzt muss nur noch der Wahlplan erweitert werden.

Wahlplan

Das Regelwerk soll nur bei internen Anrufern greifen. Deshalb wird die Länge der CallerID geprüft. Im Beispiel gehen wir von zweistelligen Nummern aus! Dieses Regelwerk wird im default Kontext hinzugefügt.
Die "h" Extension wird ausgeführt wenn ein Anruf aufgelegt wird.


exten => h, 1, NoOp(=== HANGUP ===)
exten => h, 2, GoToIf($[${LEN(${CALLERID(num)})}=2]?100)

exten => h, 100, NoOp(== INTERNER CALLER ==)
exten => h, 101, DeadAGI(gs_sip_notify.agi,${CALLERID(num)})

Nachdem der Wahlplan geändert worden ist, muss diese nur noch übernommen werden. Danach steht die Funktion zur Verfügung...

Telefon

Im Telefon muss noch der Download des Idle Screens konfiguriert werden. Dieses wird unter "Erweitert" oder "Advanced Options" eingestellt. Einfach nach "Untaetiger Bildschirm XML Download" ( ja ja ... google Translage :-> ) suchen und den Pfad angeben. Wenn der Zphone Server die IP 192.168.1.1 hat, dann lautet dieser

http://192.168.1.1:99/grandstream.php?file=

Diese Einstellung kann auch in der Mastervorlage eingegeben werden.


# XML Idle Screen
# N/A for GXP1200
#---------------------------------------
# Enable Idle Screen XML Download
# 0 = No
# 1 = YES, HTTP
# 2 = YES, TFTP
P340 = 1

# Idle Screen XML Server Path
# This is a string of up to 128 characters that should contain a path to the XML file.
# It MUST be in the host/path format.  For example: "directory.grandstream.com/engineering"
P341 = <%ae_srv_addr%>:99/grandstream.php?file=


Anpassung vom Screen

tbd