Maturing, I'll try to provide backwards compatibility for 2 freeswitch releases if I have to make an API change.

Size: px
Start display at page:

Download "Maturing, I'll try to provide backwards compatibility for 2 freeswitch releases if I have to make an API change."

Transcription

1 mod_erlang_event About mod_erlang_event is a derivative of mod_event_socket that sends events and receives commands in erlang's binary term format. This allows FreeSWITCH to behave like just another erlang node (albeit a hidden one). It uses the ei library to handle encoding/decoding the erlang binary format and the ei_connect functions to handle the network connections. (Erlang is a programming language and runtime system. It supports hot swapping, so that code can be changed without stopping a system. ) The module operates in two modes, inbound and outbound. Click here to expand Table of Contents Inbound In inbound mode your erlang application communicates with FreeSWITCH by sending messages. These messages can be used for example to check status, execute applications, originate calls and register to receive events. Outbound Outbound mode is used by erlang dialplan tool to allow your erlang application to handle a particular call. When the dialplan application is executed, the call is first parked. Messages relating to the call are then sent from FreeSWITCH to the specified erlang process on the specified node. The process can either be a pre-defined one (a registered process), a dynamic one (a spawned process) or a dynamically returned process (send a message to a registered process, it returns a pid that can either be newly spawned or already existent). Status Maturing, I'll try to provide backwards compatibility for 2 freeswitch releases if I have to make an API change. TODO Ability to have multiple event handler pids per node, each with their own event subscriptions? Figure out how to handle premature exits of spawned outbound processes Allow log/event handler and handle call processes to be registered processes or pids Check pids obtained via 'get_pid' to determine the node they're on in case they're not the node we requested a pid from (load balancing) Investigate supporting starting a gen_server/gen_fsm using proc_lib:spawn/4 and enter_loop Make datastructures more proplist friendly Compiling You need erlang (and its development headers) installed to compile this module. You must have Erlang development files installed *before* running the FreeSWITCH./configure (or rerun./configure after having Erlang installed). The FreeSWITCH configure script now checks for the erlang requirements and configures the Makefile appropriately. Windows As of SVN r13766, the module is known to work on windows (but it's not terribly well tested). Unfortunately the ei.lib that ships with windows releases of erlang isn't suitable for being used inside a DLL due to issues with thread local storage. The work around for this is to build it yourself following the README.win32 instructions included with the erlang source distribution and after you've run configure edit the eidefs.mk and remove -DUSE_DECLSPEC_THREAD from the THR_DEFS variable. Then you can just run `make release` in the libs/erl_interface directory and then edit mod_erlang_event's project options to point at the erl_interface/obj/win32/ei.lib for its linker flags. You'll probably also have to fix the include path in the compiler flags, too.

2 To add the erlang module to the freeswitch solution, right click on the solution and choose Add->Existing Project and browse to its.vcproj file. Once it's added edit the solution's properties, go to dependencies and for the module, make it depend on the freeswitch core lib. ei binaries for compiling the module against R13B01 can be found here. The release libs are in obj/win32 and the debug ones are in obj.debug/win32. OSX If after compiling the module, loading it in FreeSWITCH gives you an error like Error Loading module /usr/local/freeswitch/mod/mod_erlang_event.so **dlopen(/usr/local/freeswitch/mod/mod_erlang_event.so, 6): Symbol not found: erl_errno_place make sure you've built both Erlang AND FreeSWITCH with the same architecture. Erlang defaults to building 32 bit (even on a 64 bit kernel for some reason) and FreeSWITCH seems to default to 64 bit. The easiest solution is to rebuild erlang with the --enable-darwin-64bit argument to configure. Note, however, that 'make clean' doesn't work right for Erlang and its best to have a fresh source tree if recompiling to a new architecture. Configuration The configuration is very similar to the one for event_socket, but there are some different parameters. Here's an example config file: <configuration name="erlang_event.conf" description="erlang Socket Client"> <settings> <param name="listen-ip" value=" "/> <param name="listen-port" value="8031"/> <param name="nodename" value="freeswitch"/> <param name="cookie" value="cluecon"/> <param name="shortname" value="true"/> <param name="apply-inbound-acl" value="lan"/> <param name="encoding" value="string"/> </settings> </configuration> Note that it listens on a different port than the event socket, and instead of a password we set a cookie (used for inter-erlang node authentication). Nodename is just a name of the current node, it's used so that other erlang nodes know how to address a node. In addition, the 'shortname' parameter determines the form of the node's name. If shortname is enabled, the FQDN of the IP the module is configured to listen on is truncated at the first dot. So, for a module listening on the IP that resolves to example.com and the nodename set to 'freeswitch', with shortname enabled, the full nodename is 'freeswitch@example' with shortname off, it instead is 'freeswitch@example.com'. Erlang nodes with a shortname can only talk to other nodes with a shortname, and the same thing applies for nodes with long names. See here for more information. To force the nodename, specify the whole name (eg 'freeswitch@example.com') in the 'nodename' tag; mod_erlang_event will not try to guess what to call the node. The 'encoding' parameter indicates if you'd prefer events to be encoded as erlang binaries or as erlang strings. Binaries are faster and consume less memory, but strings can be easier to work with. Example Inbound Connection Here's a brief example of using the erlang shell 'erl' to communicate with FreeSWITCH using mod_erlang_event. We assume freeswitch running locally, with the cookie set to 'ClueCon', the nodename set to 'freeswitch' and shortnames enabled. The hostname is 'example.com', so the short nodename is freeswitch@example.

3 $erl -sname test -setcookie ClueCon Erlang (BEAM) emulator version [source] [async-threads:0] [hipe] [kernel-poll:false] Eshell V5.6.4 (abort with ^G) {api, status, ""}. {api,status,[]} We've just sent the API status command to FreeSWITCH. Note how the connection was negotiated automagically. FreeSWITCH will send the reply back to us asynchronously (all erlang messages are asynchronous), so we have to explicitly receive it: receive X -> X after > timeout end. {ok,"content-type: text/html\n\nup 0 years, 0 days, 0 hours, 0 minutes, 35 seconds, 692 milliseconds, 193 microseconds\n0 session(s) since startup\n0 session(s) 0/30\n"} We tried to receive anything in the current processes' mailbox with a 1000 millisecond timeout that will return the atom timeout as the result of the expression instead. However, there was indeed something waiting for us in the mailbox; the result of the API command we just made. Now, lets send an invalid command and listen for the reply: (test@example)3> {foo, freeswitch@example}! {api, wtf, ""}, receive Y -> Y after > timeout end. {error,"wtf: Command not found!\n"} So, as we can see, the command 'wtf' isn't valid. Note that in both cases, a 2 element tuple {} is returned. Depending on the result of the command, the first element is either the atom 'ok' or 'error'. Note that we had to use a different variable name to receive to this time, if we used X again, erlang would search the processes' mailbox for an event that matched what X was bound. You could also do f(x) to forget the value of X in the shell. We'll do a bgapi command as a final example: (test@example)4> {foo, freeswitch@example}! {bgapi, status, ""}, receive Z -> Z after > timeout end. {ok,"191d2b07-58ac-dd11-829b-000f1f68e553"} Note that all we got was job UUID of the background command. We have to receive one more time to get the actual command output: (test@example)5> receive A -> A after > timeout end. {bgok,"191d2b07-58ac-dd11-829b-000f1f68e553", "Content-Type: text/html\n\nup 0 years, 0 days, 1 hour, 11 minutes, 8 seconds, 654 milliseconds, 138 microseconds\n0 session(s) since startup\n0 session(s) 0/30\n"} Note that the status of the command is indicated by bgok/bgerror and the second element of the tuple is the job uuid we got as the initial reply. In addition to this directed reply, a normal BACKGROUND_JOB event is also fired, which you could alternately choose to receive. Example Outbound Connection Here's a simple example using outbound mode. First, add an entry in your dialplan to redirect an inbound call to the erlang dialplan application. You can do so by creating the file freeswitch/conf/dialplan/default/123456_erlang.xml with the following content:

4 <include> <extension name="to_erlang"> <condition field="destination_number" expression="^123456$"> <action application="erlang" data="myhandler </condition> </extension> </include> This will send calls for extension to a registered process called myhandler on the erlang node mynode@myserver. Replace myserver with your hostname, using either short or long form depending on your setting in the mod_erlang_event config file. Next, write some erlang code to handle the call. Save this in the file myhandler.erl: -module(myhandler). -export([start/0,run/0,launch/1]). start()-> %% start our handler process running Pid = spawn(?module,run,[]), %% register it with the same name as the module - myhandler register(?module,pid). run()-> %% wait for messages from FreeSWITCH receive {call,data}-> %% a new call is starting, find the UUID %% _Rest is a list of all the channel variable in the form {"<name>","<value"} {event, [UUID _Rest]} = Data, error_logger:info_msg("myhandler ~p: new call received, UUID is ~p~n",[self(), UUID]), run(); {call_event,data} -> %% we've got an event for a call we've been notified of already {event, [UUID Rest]} = Data, %% find out the name of the event Name = proplists:get_value("event-name", Rest), error_logger:info_msg("myhandler ~p: UUID ~p, event ~p~n",[self(), UUID,Name]), run(); {get_pid, UUID, Ref, Pid} -> %% request from FreeSWITCH for an outbound process to handle call at 'UUID' NewPid = spawn(?module, run, []), error_logger:info_msg("myhandler ~p: request to spawn new handler process, returning ~p~n", [self(), NewPid]), Pid! {Ref, NewPid}, run() end. launch(ref) -> %% rpc call to a function to return a new outbound call pid NewPid = spawn(?module, run, []), error_logger:info_msg("myhandler ~p: launch request, returning ~p~n", [self(), NewPid]), {Ref, NewPid}. And now run it:

5 $ erlc myhandler.erl $ erl -sname mynode -setcookie ClueCon Erlang (BEAM) emulator version [source] [async-threads:0] [hipe] [kernel-poll:false] Eshell V5.5.5 (abort with ^G) (mynode@myserver)1> myhandler:start(). true Now dial extension and see what happens at the erlang console: (mynode@myserver)2> =INFO REPORT==== 23-Jan-2009::11:59:38 === myhandler: new call received, UUID is "4f77b818-e945-11dd-a442-9fe384e7e5a2" =INFO REPORT==== 23-Jan-2009::11:59:39 === myhandler: UUID "4f77b818-e945-11dd-a442-9fe384e7e5a2", event "CHANNEL_PROGRESS" =INFO REPORT==== 23-Jan-2009::11:59:39 === myhandler: UUID "4f77b818-e945-11dd-a442-9fe384e7e5a2", event "CHANNEL_PROGRESS_MEDIA" =INFO REPORT==== 23-Jan-2009::11:59:39 === myhandler: UUID "4f77b818-e945-11dd-a442-9fe384e7e5a2", event "CHANNEL_PARK" We've received all the events up to CHANNEL_PARK. Now hang up the call, since we didn't add any code to answer it or do anything more interesting: =INFO REPORT==== 23-Jan-2009::11:59:43 === myhandler: UUID "4f77b818-e945-11dd-a442-9fe384e7e5a2", event "CHANNEL_HANGUP" To answer the call, execute applications and hang up, just as you would in the dialplan, you can send messages to freeswitch just as with inbound mode. If you wanted to send events to a dynamic process instead of a registered one, you can instead do: <action application="erlang" data="myhandler:launch mynode@myserver"/> This will make an RPC call to myhandler:launch with a single argument, a unique reference. The function is expected to return a tuple of the form {Ref, NewPid}. NewPid should be a spawned process or a newly launched gen_server or something, Ref is the original reference passed in. <action application="erlang" data="myhandler:! mynode@server"/> If the string after the : is a '!', then mod_erlang_event knows you want to send a new process request to the registered process 'myhandler' which will return a pid that all events for that call will be sent to. The message the registered process receives is of the form: {get_pid, UUID, Ref, Pid} Where Ref is a unique reference used to identify this request, UUID is the call's UUID and Pid is the process to send the response to. The expected response is of the form: {Ref, NewPid} Where Ref is the original reference passed with get_pid and NewPid is the pid you'd like FreeSWITCH to send the events to The old new_pid message, which didn't include the call's UUID is deprecated in favor of get_pid as of SVN revision (09/15/09)

6 The module also supports true spawn/4 behaviour, but it turned out not to be so useful, so the rpc:call functionality above replaced it. The myhandler example above supports all 3 outbound methods. API The api is very similar to the event socket, just expressed in erlang terms. You can send any of these terms by using the! operator as above. api Send an API command. Examples: {api, strftime, "%Y"} {api, status, ""} {api, originate, "sofia/mydomain.com/ext@yourvsp.com 1000"} Note that the 3rd element of the tuple is currently mandatory. I may make it optional. The result of the API call is sent as a message to the process that made the api call. The format of the reply is a tuple of the form {ok error, "some reply"} as seen above. bgapi Same as the api command, but is non blocking. The sending process gets 2 messages, the message indicating the event was accepted, and then sometime later the actual result of the api command. See the example above. filter Specify event types to listen for. Note, this is not a filter out but rather a "filter in"; that is, when a filter is applied only the filtered values are received. Multiple filters on a socket connection are allowed. Usage: {filter, '[add delete] <EventHeader1> <ValueToFilter>'[, '[add delete] <EventHeader2> <ValueToFilter>']} Where ValueToFilter has the following syntax: [+ -][character_expression] or /regex_expression/ If the symbol "+" is used then events containing header will be sent. If the symbol "-" is used then events will be sent excluding events containing the header. If the expression is " +value" then events with header = value will be sent. If the expression is "-value" then events will be sent excluding events containing header with that value. If symbols "+" or "-" have been omitted, then symbol "+" is assumed. Example: The following example will subscribe to all events and then create two filters, one to listen for HEARTBEATS and one to listen for CHANNEL_EXECUTE events.

7 ~]# erl -sname -setcookie ClueCon Erlang/OTP 17 [erts-6.2.1] [source] [64-bit] [smp:2:2] [async-threads:10] [hipe] [kernel-poll:false] Eshell V6.2.1 (abort with ^G) {foo, register_event_handler. register_event_handler flush(). Shell got ok ok {foo, {filter, 'CC-Action agent-offering', 'CC-Queue {filter,'cc-action agent-offering', 'CC-Queue flush(). Shell got {filter_command_processing_log, [{"added","cc-action","agent-offering"}, ok {foo, {event, 'CUSTOM', 'callcenter::info'}. {event,'custom','callcenter::info'} flush(). Shell got ok ok register_event_handler Send the atom register_event_handler to register the process that sent this as the process to receive all subscribed events. You need to use the events command to indicate what events to receive, none are subscribed by default. Events are received in the form: {event, [(UniqueID 'undefined'), {EventHeaderKey, EventHeaderValue}, {EventHeaderKey2, EventHeaderValue2},...]} This being, a tuple with the first element being the atom event followed by a variable length list of {Key, Value} tuples, the first value of which is the call's unique-id, or if the event doesn't relate to a call, the atom 'undefined'. This first element of the list is to make it easy to determine which call, if any, an event relates to without iterating through the entire list. If you send this command again, the new sending process becomes the one the events are sent to. event Subscribe to an event. Examples: {foo, freeswitch@example}! {event, 'ALL'} {event, 'CUSTOM', 'conference::maintenance'} {event, 'CHANNEL_CREATE', 'CHANNEL_DESTROY', 'CUSTOM', 'conference::maintenance', 'sofia::register', 'sofia::expire'} Note that atoms beginning with uppercase letters or containing colons need to be quoted in single quotes.

8 nixevent Same syntax as event. Does the inverse. noevents Just send the atom noevents to disable all events. register_log_handler Send the atom register_log_handler to make the current process the one to send log messages to. Logs are received in the format: {log, [{level, LogLevel}, {text_channel, TextChannel}, {file, FileName}, {func, FunctionName}, {line, LineNumber}, {data, "Log message"}]} Logs at DEBUG level by default. Sending this command again changes the process log messages are sent to to the sending process. set_log_level Change the log level. Valid levels are defined switch_types.h. Example: {set_log_level, info} {set_log_level, error} nolog Send nolog to disable logging. exit Send exit to close the connection.

9 sendevent {sendevent, 'NOTIFY', [{"profile", "internal"}, {"event-string","check-sync;reboot=false"}, {"user", "false"}, {"host", " "}, {"content-type", "application/simple-message-summary"}]} sendmsg {sendmsg, "d caf-dd11-829b-000f1f68e553", [{"call-command", "hangup"}, {"hangup-cause", "16"}]} UUID can be a binary or a string. getpid Send getpid to receive {ok,pid} where Pid is the fake erlang process id on the FreeSWITCH side. This is helpful if you want to link to the process so that, for example, FreeSWITCH can notice that your log handler process exited. handlecall {handlecall, "129d c-15aa-001a923f6a0f", mycallhandler} {handlecall, "129d c-15aa-001a923f6a0f"} Send handlecall to attach an outbound call handler to the specified UUID where mycallhandler is a registered process name. FreeSWITCH will then send events related to that call to the registered process on the node that sent the handlecall message. The event messages sent are the same as using outbound mode. Use this for example if you have originated a call from FreeSWITCH using inbound mode but want to handle it specifically. UUID can be a binary or a string. If you omit the registered process name and just send {handlecall, UUID} the call's events will be sent to the process that send the message. XML search bindings This module also supports mod_xml_curl style bindings to allow FreeSWITCH to fetch configuration/directory/dialplan/etc from Erlang. Unlike mod_xml_curl, and the other modules with this functionality, however, the bindings are dynamic, not statically configured. To register the current process send a {bind, <BindType>} message to mod_erlang_event, where BindType is an atom of one of the binding types supported (see the mo d_xml_curl documentation for these). After you do this, you will receive messages of the type: {fetch, <Section>, <Tag>, <Key>, <Value>, <FetchID>, <Params>} where Section is an atom describing the binding type, FetchID is a UUID associated with the fetch request and Params is a list of key/value tuples with the parameters for this request. To tell the switch to take some action, send back a reply of the format: {fetch_reply, <FetchID>, <XML>}

10 where FetchID is the ID you received in the request and XMLString is the XML reply you want to send. FetchID and XML can be binaries or strings. The binding is automatically removed when the process or the entire node exits or disconnects. Multiple bindings for one section type are supported as of SVN r16697, the first one to respond wins. Console Commands There are only 2 right now: erlang listeners - list all nodes connected and how many outbound sessions each has erlang sessions <nodename> - lists all the outbound sessions for the specified node Feel free to suggest any others that might be useful. Debugging If you wish to see all the erlang terms sent and received from the module, add #define EI_DEBUG to src/include/switch_am_config.h and do a make clean; make; make install in the mod_erlang_event directory. Now every erlang message will be printed at DEBUG level to the logfile and to the console if you enable debug messages at the console. freeswitch.erl In the mod_erlang_event source directory, there's an erlang file called freeswitch.erl. It's a a module to ease dealing with the above API. The module is fairly well documented and exposes most of the API documented here. It will do all the low level send/recv stuff for you, so you can do stuff like: (test@example)3> freeswitch:api(freeswitch@example,status). And the return value of that function call will be the result of the api command. The module also makes it easy to do bgapi commands effectively, as well as set up XML search bindings, event listeners and log handlers.

Erlang: distributed programming

Erlang: distributed programming Erlang: distributed May 11, 2012 1 / 21 Fault tolerance in Erlang links, exit signals, system process in Erlang OTP Open Telecom Platform 2 / 21 General idea Links Exit signals System processes Summary

More information

Erlang Concepts. Programming for Beginners, Summer 2011

Erlang Concepts. Programming for Beginners, Summer 2011 Programming for Beginners, Summer 2011 Erlang Concepts Erlang is a functional programming language that supports concurrent programming. Computations in Erlang can proceed in parallel on a network of computers,

More information

Erlang: An Overview. Part 2 Concurrency and Distribution. Thanks to Richard Carlsson for most of the slides in this part

Erlang: An Overview. Part 2 Concurrency and Distribution. Thanks to Richard Carlsson for most of the slides in this part Erlang: An Overview Part 2 Concurrency and Distribution Thanks to Richard Carlsson for most of the slides in this part Processes P1 fib(0) -> 1; fib(1) -> 1; fib(n) when N > 0 -> fib(n-1) + fib(n-2). Whenever

More information

An Introduction to Erlang

An Introduction to Erlang An Introduction to Erlang Part 2 - Concurrency Richard Carlsson Processes P1 fib(0) -> 1; fib(1) -> 1; fib(n) when N > 0 -> fib(n-1) + fib(n-2). Whenever an Erlang program is running, the code is executed

More information

Introduction to Erlang. Franck Petit / Sebastien Tixeuil

Introduction to Erlang. Franck Petit / Sebastien Tixeuil Introduction to Erlang Franck Petit / Sebastien Tixeuil Firstname.Lastname@lip6.fr Hello World % starts a comment. ends a declaration Every function must be in a module one module per source file source

More information

Starting the System & Basic Erlang Exercises

Starting the System & Basic Erlang Exercises Starting the System & Basic Erlang Exercises These exercises will help you get accustomed with the Erlang development and run time environments. Once you have set up the Erlang mode for emacs, you will

More information

Pemrograman Jaringan Web Client Access PTIIK

Pemrograman Jaringan Web Client Access PTIIK Pemrograman Jaringan Web Client Access PTIIK - 2012 In This Chapter You'll learn how to : Download web pages Authenticate to a remote HTTP server Submit form data Handle errors Communicate with protocols

More information

20.5. urllib Open arbitrary resources by URL

20.5. urllib Open arbitrary resources by URL 1 of 9 01/25/2012 11:19 AM 20.5. urllib Open arbitrary resources by URL Note: The urllib module has been split into parts and renamed in Python 3.0 to urllib.request, urllib.parse, and urllib.error. The

More information

Message-passing concurrency in Erlang

Message-passing concurrency in Erlang Message-passing concurrency in Erlang Lecture 8 of TDA383/DIT390 (Concurrent Programming) Carlo A. Furia Chalmers University of Technology University of Gothenburg SP3 2016/2017 Today s menu Actors and

More information

SYNTHESYS.NET PORTAL WEB BROWSER

SYNTHESYS.NET PORTAL WEB BROWSER SYNTHESYS.NET PORTAL WEB BROWSER Synthesys.Net Portal Taking Calls 1 All rights reserved The contents of this documentation (and other documentation and training materials provided), is the property of

More information

Winter Lecture 4

Winter Lecture 4 Winter 2012-2013 Lecture 4 } Erlang includes a documentation-generator tool called edoc edoc is actually an Erlang module containing various entry-points, functions, etc. } edoc is inspired by Javadoc

More information

Foundations of Python

Foundations of Python Foundations of Python Network Programming The comprehensive guide to building network applications with Python Second Edition Brandon Rhodes John Goerzen Apress Contents Contents at a Glance About the

More information

QNX Software Development Platform 6.6. Quickstart Guide

QNX Software Development Platform 6.6. Quickstart Guide QNX Software Development Platform 6.6 QNX Software Development Platform 6.6 Quickstart Guide 2005 2014, QNX Software Systems Limited, a subsidiary of BlackBerry. All rights reserved. QNX Software Systems

More information

TFTP Copyright Ericsson AB. All Rights Reserved. TFTP 1.0 June 19, 2018

TFTP Copyright Ericsson AB. All Rights Reserved. TFTP 1.0 June 19, 2018 TFTP Copyright 1997-2018 Ericsson AB. All Rights Reserved. TFTP 1.0 June 19, 2018 Copyright 1997-2018 Ericsson AB. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you

More information

Erlang 101. Google Doc

Erlang 101. Google Doc Erlang 101 Google Doc Erlang? with buzzwords Erlang is a functional concurrency-oriented language with extremely low-weight userspace "processes", share-nothing messagepassing semantics, built-in distribution,

More information

Developing Ajax Applications using EWD and Python. Tutorial: Part 2

Developing Ajax Applications using EWD and Python. Tutorial: Part 2 Developing Ajax Applications using EWD and Python Tutorial: Part 2 Chapter 1: A Logon Form Introduction This second part of our tutorial on developing Ajax applications using EWD and Python will carry

More information

CIS 505: Software Systems

CIS 505: Software Systems CIS 505: Software Systems Fall 2017 Assignment 3: Chat server Due on November 3rd, 2017, at 10:00pm EDT 1 Overview For this assignment, you will implement a simple replicated chat server that uses multicast

More information

printf( Please enter another number: ); scanf( %d, &num2);

printf( Please enter another number: ); scanf( %d, &num2); CIT 593 Intro to Computer Systems Lecture #13 (11/1/12) Now that we've looked at how an assembly language program runs on a computer, we're ready to move up a level and start working with more powerful

More information

Master Syndication Gateway V2. User's Manual. Copyright Bontrager Connection LLC

Master Syndication Gateway V2. User's Manual. Copyright Bontrager Connection LLC Master Syndication Gateway V2 User's Manual Copyright 2005-2006 Bontrager Connection LLC 1 Introduction This document is formatted for A4 printer paper. A version formatted for letter size printer paper

More information

Compiler Application (COMPILER) version 4.4

Compiler Application (COMPILER) version 4.4 Compiler Application (COMPILER) version 4.4 Typeset in L A TEX from SGML source using the DocBuilder-0.9 Document System. Contents 1 Compiler Reference Manual 1 1.1 compile...........................................

More information

ECE QNX Real-time Lab

ECE QNX Real-time Lab Department of Electrical & Computer Engineering Concordia University ECE QNX Real-time Lab User Guide Dan Li 9/12/2011 User Guide of ECE Real-time QNX Lab Contents 1. About Real-time QNX Lab... 2 Contacts...

More information

Reltool Copyright Ericsson AB, All Rights Reserved Reltool June 19, 2018

Reltool Copyright Ericsson AB, All Rights Reserved Reltool June 19, 2018 Reltool Copyright 2009-2018 Ericsson AB, All Rights Reserved Reltool 0.7.6 June 19, 2018 Copyright 2009-2018 Ericsson AB, All Rights Reserved Licensed under the Apache License, Version 2.0 (the "License");

More information

M-Switch MIXER Evaluation Guide

M-Switch MIXER Evaluation Guide M-Switch MIXER Evaluation Guide Configuring M-Switch as a MIXER (SMTP/X.400) Gateway M-Switch MIXER Evaluation Guide Page 1 of 46 Objectives The purpose of this guide is to give the reader the tools to

More information

Exim Practical. Patrick Okui. (based on materials from Brian Candler)

Exim Practical. Patrick Okui. (based on materials from Brian Candler) Exim Practical Patrick Okui (based on materials from Brian Candler) Objectives Part 1 is building and installing Exim.. Install Exim from ports. Replace Sendmail with Exim Part 2 is running basic tests.

More information

RadBlue s S2S Quick Start Package (RQS) Developer s Guide. Version 0.1

RadBlue s S2S Quick Start Package (RQS) Developer s Guide. Version 0.1 RadBlue s S2S Quick Start Package (RQS) Developer s Guide Version 0.1 www.radblue.com April 17, 2007 Trademarks and Copyright Copyright 2007 Radical Blue Gaming, Inc. (RadBlue). All rights reserved. All

More information

Learning Objectives. A Meta Comment. Exercise 1. Contents. From CS61Wiki

Learning Objectives. A Meta Comment. Exercise 1. Contents. From CS61Wiki From CS61Wiki Contents 1 Learning Objectives 2 A Meta Comment 3 Exercise 1 3.1 Questions 3.2 Running code and using GDB 3.3 Compiler Optimizations 3.4 hexdump: a handy function 3.4.1 Questions 3.5 Checkpoint

More information

<fifo name>[!<importance_number>] [in [<announce file> undef] [<music file> undef] out [wait nowait] [<announce file> undef] [<music file> undef]]

<fifo name>[!<importance_number>] [in [<announce file> undef] [<music file> undef] out [wait nowait] [<announce file> undef] [<music file> undef]] mod_fifo About mod_fifo is a call center app which allows you to make custom call queues with assigned priorities. FIFO stands for "First In, First Out". As calls enter the queue, they are arranged in

More information

$ /path/to/python /path/to/soardoc/src/soardoc.py

$ /path/to/python /path/to/soardoc/src/soardoc.py SoarDoc User s Manual Dave Ray ray@soartech.com October 16, 2003 Introduction SoarDoc is an embedded metadata documentation format and tool for Soar. This format facilitates the automatic generation of

More information

Debugger Copyright Ericsson AB. All Rights Reserved. Debugger September 24, 2018

Debugger Copyright Ericsson AB. All Rights Reserved. Debugger September 24, 2018 Debugger Copyright 1997-2018 Ericsson AB. All Rights Reserved. Debugger 4.2.6 September 24, 2018 Copyright 1997-2018 Ericsson AB. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the

More information

OSE Copyright Ericsson AB. All Rights Reserved. OSE 1.0 June 23, 2014

OSE Copyright Ericsson AB. All Rights Reserved. OSE 1.0 June 23, 2014 OSE Copyright 2014-2014 Ericsson AB. All Rights Reserved. OSE 1.0 June 23, 2014 Copyright 2014-2014 Ericsson AB. All Rights Reserved. The contents of this file are subject to the Erlang Public License,

More information

Command Manual Network Protocol. Table of Contents

Command Manual Network Protocol. Table of Contents Table of Contents Table of Contents Chapter 1 IP Address Configuration Commands... 1-1 1.1 IP Address Configuration Commands... 1-1 1.1.1 display ip host... 1-1 1.1.2 display ip interface... 1-1 1.1.3

More information

An Introduction to Erlang. Richard Carlsson

An Introduction to Erlang. Richard Carlsson An Introduction to Erlang Richard Carlsson Erlang Buzzwords Functional (strict) Single-assignment Dynamically typed Concurrent Distributed Message passing Soft real-time Fault tolerant No sharing Automatic

More information

Erlang in the Heroku Cloud

Erlang in the Heroku Cloud X Erlang in the Heroku Cloud X Who are we? Geoff Cant @archaelus Blake Gentry @blakegentry What do we do? Software Engineers Heroku Routing Team What is Heroku? Cloud Application PaaS We manage servers

More information

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files CSC209 Review CSC209: Software tools Unix files and directories permissions utilities/commands Shell programming quoting wild cards files ... and systems programming C basic syntax functions arrays structs

More information

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files. Compiler vs.

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files. Compiler vs. CSC209 Review CSC209: Software tools Unix files and directories permissions utilities/commands Shell programming quoting wild cards files... and systems programming C basic syntax functions arrays structs

More information

Release Notes for Dovecot Pro Minor release

Release Notes for Dovecot Pro Minor release Release Notes for Dovecot Pro Minor release 2.2.30.1 1. Shipped Products and Versions Dovecot Pro 2.2.30.1 Including Object Storage Plug-In, Full Text Search Plug-in and Unified Quota Plug-in. Important

More information

Admin Guide ( Unix System Administration )

Admin Guide ( Unix System Administration ) Admin Guide ( Unix System Administration ) ProFTPD Server Configuration ProFTPD is a secure and configurable FTP server, written for use on Unix and Unix-like operating systems. ProFTPD is modeled around

More information

Property and Copyright Information. Notice

Property and Copyright Information. Notice 1.0 Administrator Panel END USER DOCUMENTATION This document supports the version of each product listed and supports all subsequent versions until the document is replaced by a new edition. To check for

More information

SimpleChubby: a simple distributed lock service

SimpleChubby: a simple distributed lock service SimpleChubby: a simple distributed lock service Jing Pu, Mingyu Gao, Hang Qu 1 Introduction We implement a distributed lock service called SimpleChubby similar to the original Google Chubby lock service[1].

More information

CSP 1.3: An HTTP-Based Protocol for Parameterized, Aggregated Content

CSP 1.3: An HTTP-Based Protocol for Parameterized, Aggregated Content CSP 1.3: An HTTP-Based Protocol for Parameterized, Aggregated Content This document was modified: 9/26/2005 1. Introduction...3 1.1. Motivation and Design Goals...3 1.2. Glossary of Terms...3 2. Protocol

More information

Hadoop On Demand User Guide

Hadoop On Demand User Guide Table of contents 1 Introduction...3 2 Getting Started Using HOD... 3 2.1 A typical HOD session... 3 2.2 Running hadoop scripts using HOD...5 3 HOD Features... 6 3.1 Provisioning and Managing Hadoop Clusters...6

More information

CSC209 Review. Yeah! We made it!

CSC209 Review. Yeah! We made it! CSC209 Review Yeah! We made it! 1 CSC209: Software tools Unix files and directories permissions utilities/commands Shell programming quoting wild cards files 2 ... and C programming... C basic syntax functions

More information

Programming Paradigms

Programming Paradigms PP 2017/18 Unit 15 Concurrent Programming with Erlang 1/32 Programming Paradigms Unit 15 Concurrent Programming with Erlang J. Gamper Free University of Bozen-Bolzano Faculty of Computer Science IDSE PP

More information

52 Remote Target. Simulation. Chapter

52 Remote Target. Simulation. Chapter Chapter 52 Remote Target Simulation This chapter describes how to run a simulator on a target and connect it to the SDL simulator interface (SimUI) on the host via TCP/IP communication. July 2003 Telelogic

More information

Connector for Microsoft SharePoint 2013, 2016 and Online Setup and Reference Guide

Connector for Microsoft SharePoint 2013, 2016 and Online Setup and Reference Guide Connector for Microsoft SharePoint 2013, 2016 and Online Setup and Reference Guide Published: 2018-Oct-09 Contents 1 Microsoft SharePoint 2013, 2016 and Online Connector 4 1.1 Products 4 1.2 Supported

More information

BEAWebLogic RFID. Edge Server. Using the Administration Console

BEAWebLogic RFID. Edge Server. Using the Administration Console BEAWebLogic RFID Edge Server Using the Administration Console Version 2.1 Revised: June 29, 2006 Contents 1. Introduction and Roadmap Document Scope and Audience.............................................

More information

Distributed Places. Version 6.3. Kevin Tew. November 20, (require racket/place/distributed)

Distributed Places. Version 6.3. Kevin Tew. November 20, (require racket/place/distributed) Distributed Places Version 6.3 Kevin Tew November 20, 2015 (require racket/place/distributed) package: distributed-places-lib See also 20.3 Distributed Places in The Racket Guide. Distributed places support

More information

Pack Manager Program System Design Document

Pack Manager Program System Design Document PACK MANAGER PROGRAM SYSTEM DESIGN DOCUMENT 1 Pack Manager Program System Design Document Latest Revision: 26 March 2014 Prepared by: Naing Htet Abstract This document describes the design of the software

More information

Advanced option settings on the command line. Set the interface and ports for the OpenVPN daemons

Advanced option settings on the command line. Set the interface and ports for the OpenVPN daemons Advanced option settings on the command line docs.openvpn.net/command-line/advanced-option-settings-on-the-command-line Set the interface and ports for the OpenVPN daemons In the Admin UI under Server

More information

Robot Raconteur using MATLAB Version 0.8 Beta

Robot Raconteur using MATLAB Version 0.8 Beta Robot Raconteur using MATLAB Version 0.8 Beta http://robotraconteur.com Dr. John Wason Wason Technology, LLC PO Box 669 Tuxedo, NY 10987 wason@wasontech.com http://wasontech.com May 3, 2016 1 Contents

More information

Slide 1 CS 170 Java Programming 1 Testing Karel

Slide 1 CS 170 Java Programming 1 Testing Karel CS 170 Java Programming 1 Testing Karel Introducing Unit Tests to Karel's World Slide 1 CS 170 Java Programming 1 Testing Karel Hi Everybody. This is the CS 170, Java Programming 1 lecture, Testing Karel.

More information

Starting to Program in C++ (Basics & I/O)

Starting to Program in C++ (Basics & I/O) Copyright by Bruce A. Draper. 2017, All Rights Reserved. Starting to Program in C++ (Basics & I/O) On Tuesday of this week, we started learning C++ by example. We gave you both the Complex class code and

More information

Monitoring Apache Tomcat Servers With Nagios XI

Monitoring Apache Tomcat Servers With Nagios XI Purpose This document describes how to add custom Apache Tomcat plugins and checks, namely check_tomcatsessions, to your server. Implementing Apache Tomcat plugins within will allow you the to monitor

More information

Macros, and protocols, and metaprogramming - Oh My!

Macros, and protocols, and metaprogramming - Oh My! Macros, and protocols, and metaprogramming - Oh My! (aka "What is Elixir and why should you care?") jim mccoy, Facebook Infosec Tools mccoy@fb.com (jim.mccoy@gmail.com) Who? Currently build and maintain

More information

CNIT 129S: Securing Web Applications. Ch 12: Attacking Users: Cross-Site Scripting (XSS) Part 2

CNIT 129S: Securing Web Applications. Ch 12: Attacking Users: Cross-Site Scripting (XSS) Part 2 CNIT 129S: Securing Web Applications Ch 12: Attacking Users: Cross-Site Scripting (XSS) Part 2 Finding and Exploiting XSS Vunerabilities Basic Approach Inject this string into every parameter on every

More information

Delegating Samba Administration

Delegating Samba Administration Delegating Samba Administration Jeremy Allison Novell, Inc. May 5, 2006 Why Samba needs to change Windows allows delegation of Administration tasks by allowing groups to be assigned capabilities. Example

More information

Client Side JavaScript and AJAX

Client Side JavaScript and AJAX Client Side JavaScript and AJAX Client side javascript is JavaScript that runs in the browsers of people using your site. So far all the JavaScript code we've written runs on our node.js server. This is

More information

Sysinternals DebugView

Sysinternals DebugView Sysinternals DebugView Copyright 1999-2004 Mark Russinovich Sysinternals - www.sysinternals.com DebugView is an application that lets you monitor debug output on your local system, or any computer on the

More information

BEAAquaLogic. Service Bus. MQ Transport User Guide

BEAAquaLogic. Service Bus. MQ Transport User Guide BEAAquaLogic Service Bus MQ Transport User Guide Version: 3.0 Revised: February 2008 Contents Introduction to the MQ Transport Messaging Patterns......................................................

More information

Configuring Global Optimization Settings

Configuring Global Optimization Settings CHAPTER 5 Configuring Global Optimization Settings This chapter describes how to configure the global optimization settings on the Cisco 4700 Series Application Control Engine (ACE) appliance. This chapter

More information

Introduction to computer networking

Introduction to computer networking Introduction to computer networking First part of the assignment Academic year 2017-2018 Abstract In this assignment, students will have to implement a client-server application using Java Sockets. The

More information

*roff code is suitable for display on a terminal using nroff(1), normally via man(1), or printing using troff(1).

*roff code is suitable for display on a terminal using nroff(1), normally via man(1), or printing using troff(1). NAME SYNOPSIS DESCRIPTION OPTIONS pod2man - Convert POD data to formatted *roff input pod2man [--section= manext] [--release= version] [--center= string] [--date= string] [--fixed= ] [ --fixedbold= ] [--fixeditalic=

More information

Internet Explorer Script Error Invalid Character Code 0

Internet Explorer Script Error Invalid Character Code 0 Internet Explorer Script Error Invalid Character Code 0 _title_websocket Handling QUnit Tests_/title script type="text/javascript" Error: global failure (1, 0, 1)Rerun1 ms1.invalid character@ 1 mssource:

More information

[Software Development] Development Tools. Davide Balzarotti. Eurecom Sophia Antipolis, France

[Software Development] Development Tools. Davide Balzarotti. Eurecom Sophia Antipolis, France [Software Development] Development Tools Davide Balzarotti Eurecom Sophia Antipolis, France Version Control Version (revision) control is the process of tracking and recording changes to files Most commonly

More information

CS390 Principles of Concurrency and Parallelism. Lecture Notes for Lecture #5 2/2/2012. Author: Jared Hall

CS390 Principles of Concurrency and Parallelism. Lecture Notes for Lecture #5 2/2/2012. Author: Jared Hall CS390 Principles of Concurrency and Parallelism Lecture Notes for Lecture #5 2/2/2012 Author: Jared Hall This lecture was the introduction the the programming language: Erlang. It is important to understand

More information

Learning vrealize Orchestrator in action V M U G L A B

Learning vrealize Orchestrator in action V M U G L A B Learning vrealize Orchestrator in action V M U G L A B Lab Learning vrealize Orchestrator in action Code examples If you don t feel like typing the code you can download it from the webserver running on

More information

User Manual. Admin Report Kit for IIS 7 (ARKIIS)

User Manual. Admin Report Kit for IIS 7 (ARKIIS) User Manual Admin Report Kit for IIS 7 (ARKIIS) Table of Contents 1 Admin Report Kit for IIS 7... 1 1.1 About ARKIIS... 1 1.2 Who can Use ARKIIS?... 1 1.3 System requirements... 2 1.4 Technical Support...

More information

HOD User Guide. Table of contents

HOD User Guide. Table of contents Table of contents 1 Introduction...3 2 Getting Started Using HOD... 3 2.1 A typical HOD session... 3 2.2 Running hadoop scripts using HOD...5 3 HOD Features... 6 3.1 Provisioning and Managing Hadoop Clusters...6

More information

Log Analyzer Reference

Log Analyzer Reference IceWarp Unified Communications Reference Version 11 Published on 11/25/2013 Contents... 4 Quick Start... 5 Required Steps... 5 Optional Steps... 6 Advanced Configuration... 8 Log Importer... 9 General...

More information

Chapter 1 Getting Started

Chapter 1 Getting Started Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different

More information

Project 5 - The Meta-Circular Evaluator

Project 5 - The Meta-Circular Evaluator MASSACHVSETTS INSTITVTE OF TECHNOLOGY Department of Electrical Engineering and Computer Science 6.001 Structure and Interpretation of Computer Programs Spring Semester, 2005 Project 5 - The Meta-Circular

More information

A. Upon receiving this query, I set about writing a program called WINDOS (see News column) to do this very task.

A. Upon receiving this query, I set about writing a program called WINDOS (see News column) to do this very task. HELPLINE Dilwyn Jones Q. How can I rename the medium name of some of my QXL.WIN files to something more meaningful than something like 'WIN2'? As I keep my fonts, documents and graphics in separate QXL.WIN

More information

Dialyzer Copyright Ericsson AB. All Rights Reserved. Dialyzer December 9, 2014

Dialyzer Copyright Ericsson AB. All Rights Reserved. Dialyzer December 9, 2014 Dialyzer Copyright 2006-2014 Ericsson AB. All Rights Reserved. Dialyzer 2.7.3 December 9, 2014 Copyright 2006-2014 Ericsson AB. All Rights Reserved. The contents of this file are subject to the Erlang

More information

Shell Scripting. Todd Kelley CST8207 Todd Kelley 1

Shell Scripting. Todd Kelley CST8207 Todd Kelley 1 Shell Scripting Todd Kelley kelleyt@algonquincollege.com CST8207 Todd Kelley 1 If we have a set of commands that we want to run on a regular basis, we could write a script A script acts as a Linux command,

More information

TRex Control Plane Design - Phase 1. TRex Control Plane Design - Phase 1

TRex Control Plane Design - Phase 1. TRex Control Plane Design - Phase 1 TRex Control Plane Design - Phase 1 i TRex Control Plane Design - Phase 1 TRex Control Plane Design - Phase 1 ii REVISION HISTORY NUMBER DATE DESCRIPTION NAME TRex Control Plane Design - Phase 1 iii Contents

More information

7 Cmicro Targeting. Tutorial. Chapter

7 Cmicro Targeting. Tutorial. Chapter 7 Cmicro Targeting Tutorial This tutorial takes you through the first steps of targeting. Currently this tutorial is designed for using a Borland C or a Microsoft Visual C compiler in Windows, and gcc

More information

Content index. Request and Response Request types Errors Error codeṣ Response types DH Api Documentation

Content index. Request and Response Request types Errors Error codeṣ Response types DH Api Documentation Content index DH Api Documentation Request and Response... 12 Request types... 13 Xmlrpc... 13 Jsonrpc... 13 Simplẹ... 13 Response types... 14 Xmlrpc... 14 Jsonrpc... 14 Tesṭ... 14 Simplẹ... 14 Debug...

More information

A simpler alternative means of handling incoming call queues is with mod_fifo, a first-in, first-out (FIFO) queuing system.

A simpler alternative means of handling incoming call queues is with mod_fifo, a first-in, first-out (FIFO) queuing system. mod_callcenter About mod_callcenter is an inbound call queuing application that can be used for call center needs. The callcenter dialplan application provides call center functionality by distributing

More information

Batches and Commands. Overview CHAPTER

Batches and Commands. Overview CHAPTER CHAPTER 4 This chapter provides an overview of batches and the commands contained in the batch. This chapter has the following sections: Overview, page 4-1 Batch Rules, page 4-2 Identifying a Batch, page

More information

CSP 1.4: An HTTP-Based Protocol for Parameterized, Aggregated Content

CSP 1.4: An HTTP-Based Protocol for Parameterized, Aggregated Content CSP 1.4: An HTTP-Based Protocol for Parameterized, Aggregated Content This document was modified: 6/25/2007 1. Introduction... 3 1.1. Motivation and Design Goals... 3 1.2. Glossary of Terms... 3 2. Protocol

More information

Installing Cisco Unified CallConnector for Microsoft Dynamics CRM 3.0

Installing Cisco Unified CallConnector for Microsoft Dynamics CRM 3.0 Installing Cisco Unified CallConnector for Microsoft Dynamics CRM 3.0 This chapter describes how to install the Cisco Unified CallConnector for Microsoft Dynamics CRM 3.0 with the following software: Cisco

More information

Kernel Copyright Ericsson AB. All Rights Reserved. Kernel November

Kernel Copyright Ericsson AB. All Rights Reserved. Kernel November Kernel Copyright 1997-2009 Ericsson AB. All Rights Reserved. Kernel 2.13.4 November 23 2009 Copyright 1997-2009 Ericsson AB. All Rights Reserved. The contents of this file are subject to the Erlang Public

More information

porcelain Documentation

porcelain Documentation porcelain Documentation Release August 20, 2014 Contents 1 Overview 3 2 Installation 5 3 Usage 7 3.1 Launching one-off programs....................................... 7 3.2 Passing input and

More information

BEAAquaLogic. Service Bus. Native MQ Transport User Guide

BEAAquaLogic. Service Bus. Native MQ Transport User Guide BEAAquaLogic Service Bus Native MQ Transport User Guide Version: 2.6 RP1 Revised: November 2007 Contents Introduction to the Native MQ Transport Advantages of Using the Native MQ Transport................................

More information

Experiments in OTP-Compliant Dataflow Programming

Experiments in OTP-Compliant Dataflow Programming Experiments in OTP-Compliant Dataflow Programming Introducing Erlang Services Platform (Erlang/SP) San Francisco Erlang Factory, March 21, 2013 Jay Nelson Twitter: @duomark Email: Jay@duomark.com Manycore

More information

Erlang in the battlefield. Łukasz Kubica Telco BSS R&D Department Cracow Erlang Factory Lite, 2013

Erlang in the battlefield. Łukasz Kubica Telco BSS R&D Department Cracow Erlang Factory Lite, 2013 Erlang in the battlefield Łukasz Kubica Telco BSS R&D Department Cracow Erlang Factory Lite, 2013 Agenda Introduction to the SCM Erlang vm and upgrades Tracing Mnesia Final thoughts Questions 2 The Session

More information

ACSC271 Operating Systems Answer Sheet: 3 Semester: Fall 2017 Instructor:

ACSC271 Operating Systems Answer Sheet: 3 Semester: Fall 2017 Instructor: ACSC271 Operating Systems Answer Sheet: 3 Semester: Fall 2017 Instructor: Christos Markides 1) Informally, a process is a program in execution. A process is more than the program code, which is sometimes

More information

By Lucas Marshall. All materials Copyright Developer Shed, Inc. except where otherwise noted.

By Lucas Marshall. All materials Copyright Developer Shed, Inc. except where otherwise noted. By Lucas Marshall All materials Copyright 1997 2002 Developer Shed, Inc. except where otherwise noted. Using XML RPC with PHP Table of Contents Introduction...1 Compiling PHP with XML RPC Support...2 Dissection

More information

ERRS: Homework 4 Scalability

ERRS: Homework 4 Scalability ERRS: Homework 4 Scalability For this homework, you will be writing a server for a bank. The focus of this homework is scalability, so the feature set for the bank is pretty minimal. In particular, you

More information

SIOS (Shop Interface to Other Software)

SIOS (Shop Interface to Other Software) SIOS (Shop Interface to Other Software) User Manual PhD. Guillem Plasencia Gallofré Lead Molecular Design, S.L. I. Introduction SIOS (Shop Interface to Other Software), as its name says, is an interface

More information

Amazon Virtual Private Cloud. User Guide API Version

Amazon Virtual Private Cloud. User Guide API Version Amazon Virtual Private Cloud User Guide Amazon Web Services Amazon Virtual Private Cloud: User Guide Amazon Web Services Copyright 2012 Amazon Web Services LLC or its affiliates. All rights reserved. The

More information

6.170 Laboratory in Software Engineering Eclipse Reference for 6.170

6.170 Laboratory in Software Engineering Eclipse Reference for 6.170 6.170 Laboratory in Software Engineering Eclipse Reference for 6.170 Contents: CVS in Eclipse o Setting up CVS in Your Environment o Checkout the Problem Set from CVS o How Do I Add a File to CVS? o Committing

More information

BEGINNER PHP Table of Contents

BEGINNER PHP Table of Contents Table of Contents 4 5 6 7 8 9 0 Introduction Getting Setup Your first PHP webpage Working with text Talking to the user Comparison & If statements If & Else Cleaning up the game Remembering values Finishing

More information

mod_sms Compile and Load Config About make mod_sms-install load mod_sms

mod_sms Compile and Load Config About make mod_sms-install load mod_sms mod_sms About This page is working on progresss... mod_sms provide a way to route messages in freeswitch, potentially allowing one to build a powerful chatting system like in XMPP using using SIP SIMPLE

More information

Solutions Reference Guide. IP TalkSM. Voic & Navigator Web Portal

Solutions Reference Guide. IP TalkSM. Voic & Navigator Web Portal IP Talk SM Solutions Reference Guide IP TalkSM Voicemail & Navigator Web Portal Table of Contents Voicemail Accessing Your Voicemail................... 1 Voicemail Main Menu........................ 2

More information

Contents: 1 Basic socket interfaces 3. 2 Servers 7. 3 Launching and Controlling Processes 9. 4 Daemonizing Command Line Programs 11

Contents: 1 Basic socket interfaces 3. 2 Servers 7. 3 Launching and Controlling Processes 9. 4 Daemonizing Command Line Programs 11 nclib Documentation Release 0.7.0 rhelmot Apr 19, 2018 Contents: 1 Basic socket interfaces 3 2 Servers 7 3 Launching and Controlling Processes 9 4 Daemonizing Command Line Programs 11 5 Indices and tables

More information

web.xml Deployment Descriptor Elements

web.xml Deployment Descriptor Elements APPENDIX A web.xml Deployment Descriptor s The following sections describe the deployment descriptor elements defined in the web.xml schema under the root element . With Java EE annotations, the

More information

AHHHHHHH!!!! NOT TESTING! Anything but testing! Beat me, whip me, send me to Detroit, but don t make me write tests!

AHHHHHHH!!!! NOT TESTING! Anything but testing! Beat me, whip me, send me to Detroit, but don t make me write tests! NAME DESCRIPTION Test::Tutorial - A tutorial about writing really basic tests AHHHHHHH!!!! NOT TESTING! Anything but testing! Beat me, whip me, send me to Detroit, but don t make me write tests! *sob*

More information

Chris' Makefile Tutorial

Chris' Makefile Tutorial Chris' Makefile Tutorial Chris Serson University of Victoria June 26, 2007 Contents: Chapter Page Introduction 2 1 The most basic of Makefiles 3 2 Syntax so far 5 3 Making Makefiles Modular 7 4 Multi-file

More information

1 Setting Up GroupWise to Work with

1 Setting Up GroupWise to Work with 1 Setting Up GroupWise to Work with POP3 Mailboxes Overview If you use domain mail forwarding, incoming Internet e-mail for your organization can be handled by a program called the POP Forwarding Agent

More information