Description

xpl_osd_basic.pl est un script perl qui permet d’afficher un message xPL de type OSD.BASIC (On Screen Display) sur tous les équipements xPL du réseau. Il nécessite l’installation d’un hub xPL sur la machine (xplhub). Ce script a été testé sur une machine installée avec la distribution asterisk@home.

xpl_osd_basic.pl


#!/usr/bin/perl
#
# broadcast a OSD.BASIC xpl message
# UDP port 3865
#
# @author Thus0
#

use IO::Socket;
use IO::Select;
use Sys::Hostname;

# XPL parameters
my $computername     = hostname();
my $xpl_msg_type     = "cmnd";
my $xpl_msg_source   = "ag-asterisk.$computername";
my $xpl_msg_target   = "*";
my $xpl_schema_class = "osd";
my $xpl_schema_type  = "basic";

# OSD.BASIC parameters
# Edit these variables
my $osd_cmnd  = "clear";
my $osd_text1 = "hello world !";
my $osd_text2 = "d4 rulez !";
my $osd_delay = ""; # in seconds

# XPL message
my $xpl_msg = "xpl-$xpl_msg_type\x0A{\x0Ahop=1\x0Asource=$xpl_msg_source\x0Atarget=$xpl_msg_target\x0A}\x0A$xpl_schema_class\.$xpl_schema_type\x0A{command=$osd_cmnd\x0Atext=$osd_text1\\n$osd_text2\x0Adelay=$osd_delay}\x0A";

# NETWORK parameters
my $ip_addr   = inet_aton('255.255.255.255');
my $port_addr = sockaddr_in(3865, $ip_addr);

# Send XPL message
my $sockUDP = IO::Socket::INET->new(PeerPort => 3865, Proto => 'udp');
 $sockUDP->autoflush(1);
 $sockUDP->sockopt(SO_BROADCAST, 1);
 $sockUDP->send($xpl_msg, 0, $port_addr);
close $sockUDP;

Documentation

http://www.xplproject.org.uk/modules.php ?op=modload&name=Sections&file=index&req=viewarticle&artid=8&page=1