---
name: "message-pass"
section: "1p"
platform: "linux"
package: "libmessage-passing-perl"
version: "0.117-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/message-pass"
---

# message-pass(1p)

command line Message::Passing runner script

## NAME

message-pass - command line Message::Passing runner script

## SYNOPSIS

```
  message-pass [options]
  Options:
   --input           - Input short name (required)
   --output          - Output short name (required)
   --filter          - Filter short name (default Null)
   --decoder         - Decoder short name (default JSON)
   --encoder         - Encoder short name (default JSON)
   --input_options   - JSON options string for input
   --output_options  - JSON options string for output
   --filter_options  - JSON options string for filter
   --decoder_options - JSON options string for decoder
   --encoder_options - JSON options string for encoder
  OR:
   --configfile     - Config file (to load with Config::Any)
                      supplying the above options
```

## DESCRIPTION

Builds a simple chain of Message::Passing components, looking like this:

```
    Input => Decoder => Filter => Encoder => Output
```

This allows you to input a message from one protocol, decode it, process it and then output it again having encoded it.

The simplest example of doing this is:

```
    message-pass --input STDIN --output STDOUT
```

Which will echo JSON strings you type back to the terminal.

## CLASS NAME EXPANSION

All short class names undergo expansion as detailed below, except for names which are prefixed with a '+', which implies a full class name.

E.g.

```
    message-pass --input '+My::Example::Input' --output STDOUT
```

The expansions are:

- input

  Message::Passing::Input::XXX

- output

  Message::Passing::Output::XXX

- filter

  Message::Passing::Filter::XXX

- encoder

  Message::Passing::Filter::Encoder::XXX

- decoder

  Message::Passing::Filter::Decoder::XXX

## CONFIG FILE

If the `"--configfile"` option is supplied, then a config file will be used.

The format of data in this config file matches that required of the command line options, e.g.

```
    {
        "input":"XXX",
        "input_options":{},
        "output":"XXX",
        "output_options":{},
        "filter":"XXX",
        "filter_options":{},
        "encoder":"XXX",
        "encoder_options":{},
        "decoder":"XXX",
        "decoder_options":{}
    }
```

Any config format supported by Config::Any can be used, however JSON is the only format which is certain to work without additional dependencies which are not required by this module.

## SEE ALSO

- Message::Passing

  - Message::Passing::Manual

  ## SPONSORSHIP

This module exists due to the wonderful people at Suretec Systems Ltd. \<http://www.suretecsystems.com/\> who sponsored its development for its VoIP division called SureVoIP \<http://www.surevoip.co.uk/\> for use with the SureVoIP API -  \<http://www.surevoip.co.uk/support/wiki/api\_documentation\>

## AUTHOR, COPYRIGHT AND LICENSE

See Message::Passing.
