COREX Module

Daniel-Constantin Mierla

   <miconda@gmail.com>

Edited by

Daniel-Constantin Mierla

   <miconda@gmail.com>

   Copyright © 2012 asipto.com
     __________________________________________________________________

   Table of Contents

   1. Admin Guide

        1. Overview
        2. Dependencies

              2.1. Kamailio Modules
              2.2. External Libraries or Applications

        3. Parameters

              3.1. alias_subdomains (string)

        4. Functions

              4.1. append_branch([ uri, [ q ] ])
              4.2. send([ host [ :port ] ])
              4.3. send_tcp([ host [ :port ] ])

        5. RPC Commands

              5.1. corex.list_sockets
              5.2. corex.list_aliases

   List of Examples

   1.1. Set alias_subdomains parameter
   1.2. append_branch usage
   1.3. send usage

Chapter 1. Admin Guide

   Table of Contents

   1. Overview
   2. Dependencies

        2.1. Kamailio Modules
        2.2. External Libraries or Applications

   3. Parameters

        3.1. alias_subdomains (string)

   4. Functions

        4.1. append_branch([ uri, [ q ] ])
        4.2. send([ host [ :port ] ])
        4.3. send_tcp([ host [ :port ] ])

   5. RPC Commands

        5.1. corex.list_sockets
        5.2. corex.list_aliases

1. Overview

   This module provides reimplementation of a few very old functions that
   used to be in the core and supported only static string or integer
   parameters. The new versions bring support for dynamic parameters
   (allowing variables inside the parameters).

   There are also brand new features, related to core internals, but
   controlled from configuration file or via control interfaces.

   Contributions to this module must be done under the BSD license, to
   follow the requirements of the core contributions.

2. Dependencies

   2.1. Kamailio Modules
   2.2. External Libraries or Applications

2.1. Kamailio Modules

   The following modules must be loaded before this module:
     * None.

2.2. External Libraries or Applications

   The following libraries or applications must be installed before
   running Kamailio with this module loaded:
     * None

3. Parameters

   3.1. alias_subdomains (string)

3.1. alias_subdomains (string)

   Register a domain and all its sub-domains to match the "myself"
   condition. It can be set many times. Its full format is:
   'proto:domain:port', allowing to set restrictions on protocol and port
   as well. Protocol and port are optional.

   Default value is "NULL".

   Example 1.1. Set alias_subdomains parameter
...
modparam("corex", "alias_subdomains", "kamailio.org")
modparam("corex", "alias_subdomains", "udp:sip-router.org:5060")
...

4. Functions

   4.1. append_branch([ uri, [ q ] ])
   4.2. send([ host [ :port ] ])
   4.3. send_tcp([ host [ :port ] ])

4.1.  append_branch([ uri, [ q ] ])

   Append a new branch to the destination set, useful to build the set of
   destination addresses for parallel forking or redirect replies.

   Both parameters are optional, If no uri parameter is provided, then the
   address from request URI (r-uri) is used to build the new branch.

   Meaning of the parameters is as follows:
     * uri - SIP address of the branch to be used as R-URI in the outgoing
       request.
     * q - the Q value to set the priority of the branch based on Contact
       address specifications

   This function can be used from REQUEST_ROUTE or FAILURE_ROUTE.

   Example 1.2. append_branch usage
...
    append_branch();
    append_branch("$avp(uri)", "0.5");
...

4.2.  send([ host [ :port ] ])

   Send the original SIP message to a specific destination in stateless
   mode. No changes are applied to received message, no Via header is
   added. Host can be an IP address or hostname. Port is optional and
   defaults to 5060. Used protocol: UDP.

   The parameter is optional and defaults to the destination URI from the
   SIP message if left out. Otherwise it's a string parameter (supporting
   pseudo-variables) in format "hostname" or "hostname:port", where
   hostname" can also be a numeric IP address.

   This function can be used from REQUEST_ROUTE or FAILURE_ROUTE.

   Example 1.3. send usage
...
        send();
        send("10.20.15.10");
        send("sip.example.com:5070");
        send("$var(res)");
...

4.3.  send_tcp([ host [ :port ] ])

   This function is identical to send() described above, except that it
   sends the SIP message using the TCP protocol instead of UDP.

5. RPC Commands

   5.1. corex.list_sockets
   5.2. corex.list_aliases

5.1.  corex.list_sockets

   Print the list of sockets the application is listening on.

   Example:
                kamcmd corex.list_sockets

5.2.  corex.list_aliases

   Print the list of hostname aliases used to match the myself condition.

   Example:
                kamcmd corex.list_aliases
