mirror of https://github.com/sipwise/kamailio.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
364 lines
8.6 KiB
364 lines
8.6 KiB
SpeedDial Module
|
|
|
|
Elena-Ramona Modroiu
|
|
|
|
<ramona@rosdev.ro>
|
|
|
|
Edited by
|
|
|
|
Elena-Ramona Modroiu
|
|
|
|
<ramona@rosdev.ro>
|
|
|
|
Copyright © 2004 Voice Sistem SRL
|
|
__________________________________________________________________
|
|
|
|
Table of Contents
|
|
|
|
1. Admin Guide
|
|
|
|
1. Overview
|
|
2. Dependencies
|
|
|
|
2.1. Kamailio Modules
|
|
2.2. External Libraries or Applications
|
|
|
|
3. Parameters
|
|
|
|
3.1. db_url (string)
|
|
3.2. user_column (string)
|
|
3.3. domain_column (string)
|
|
3.4. sd_user_column (string)
|
|
3.5. sd_domain_column (string)
|
|
3.6. new_uri_column (string)
|
|
3.7. domain_prefix (string)
|
|
3.8. use_domain (int)
|
|
|
|
4. Functions
|
|
|
|
4.1. sd_lookup(table [, owner])
|
|
|
|
5. Installation and Running
|
|
|
|
5.1. Kamailio config file
|
|
|
|
List of Examples
|
|
|
|
1.1. Set db_url parameter
|
|
1.2. Set user_column parameter
|
|
1.3. Set domain_column parameter
|
|
1.4. Set sd_user_column parameter
|
|
1.5. Set sd_domain_column parameter
|
|
1.6. Set new_uri_column parameter
|
|
1.7. Set domain_prefix parameter
|
|
1.8. Set use_domain parameter
|
|
1.9. sd_lookup usage
|
|
1.10. Kamailio config script - sample speeddial 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. db_url (string)
|
|
3.2. user_column (string)
|
|
3.3. domain_column (string)
|
|
3.4. sd_user_column (string)
|
|
3.5. sd_domain_column (string)
|
|
3.6. new_uri_column (string)
|
|
3.7. domain_prefix (string)
|
|
3.8. use_domain (int)
|
|
|
|
4. Functions
|
|
|
|
4.1. sd_lookup(table [, owner])
|
|
|
|
5. Installation and Running
|
|
|
|
5.1. Kamailio config file
|
|
|
|
1. Overview
|
|
|
|
This module provides on-server speed dial facilities. An user can store
|
|
records consisting of pairs short numbers (2 digits) and SIP addresses
|
|
into a table of Kamailio. Then it can dial the two digits whenever it
|
|
wants to call the SIP address associated with them.
|
|
|
|
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:
|
|
* database module (mysql, dbtext, ...).
|
|
|
|
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. db_url (string)
|
|
3.2. user_column (string)
|
|
3.3. domain_column (string)
|
|
3.4. sd_user_column (string)
|
|
3.5. sd_domain_column (string)
|
|
3.6. new_uri_column (string)
|
|
3.7. domain_prefix (string)
|
|
3.8. use_domain (int)
|
|
|
|
3.1. db_url (string)
|
|
|
|
The URL of database where the table containing speed dial records.
|
|
|
|
Default value is DEFAULT_RODB_URL.
|
|
|
|
Example 1.1. Set db_url parameter
|
|
...
|
|
modparam("speeddial", "db_url", "mysql://openser:xxx@localhost/openser")
|
|
...
|
|
|
|
3.2. user_column (string)
|
|
|
|
The name of column storing the user name of the owner of the speed dial
|
|
record.
|
|
|
|
Default value is “username”.
|
|
|
|
Example 1.2. Set user_column parameter
|
|
...
|
|
modparam("speeddial", "user_column", "userid")
|
|
...
|
|
|
|
3.3. domain_column (string)
|
|
|
|
The name of column storing the domain of the owner of the speed dial
|
|
record.
|
|
|
|
Default value is “domain”.
|
|
|
|
Example 1.3. Set domain_column parameter
|
|
...
|
|
modparam("speeddial", "domain_column", "userdomain")
|
|
...
|
|
|
|
3.4. sd_user_column (string)
|
|
|
|
The name of the column storing the user part of the short dial address.
|
|
|
|
Default value is “sd_username”.
|
|
|
|
Example 1.4. Set sd_user_column parameter
|
|
...
|
|
modparam("speeddial", "sd_user_column", "short_user")
|
|
...
|
|
|
|
3.5. sd_domain_column (string)
|
|
|
|
The name of the column storing the domain of the short dial address.
|
|
|
|
Default value is “sd_domain”.
|
|
|
|
Example 1.5. Set sd_domain_column parameter
|
|
...
|
|
modparam("speeddial", "sd_domain_column", "short_domain")
|
|
...
|
|
|
|
3.6. new_uri_column (string)
|
|
|
|
The name of the column containing the URI that will be use to replace
|
|
the short dial URI.
|
|
|
|
Default value is “new_uri”.
|
|
|
|
Example 1.6. Set new_uri_column parameter
|
|
...
|
|
modparam("speeddial", "new_uri_column", "real_uri")
|
|
...
|
|
|
|
3.7. domain_prefix (string)
|
|
|
|
If the domain of the owner (From URI) starts with the value of this
|
|
parameter, then it is stripped before performing the lookup of the
|
|
short number.
|
|
|
|
Default value is NULL.
|
|
|
|
Example 1.7. Set domain_prefix parameter
|
|
...
|
|
modparam("speeddial", "domain_prefix", "tel.")
|
|
...
|
|
|
|
3.8. use_domain (int)
|
|
|
|
The parameter specifies wheter or not to use the domain when searching
|
|
a speed dial record (0 - no domain, 1 - use domain from From URI, 2 -
|
|
use both domains, from From URI and from request URI).
|
|
|
|
Default value is 0.
|
|
|
|
Example 1.8. Set use_domain parameter
|
|
...
|
|
modparam("speeddial", "use_domain", 1)
|
|
...
|
|
|
|
4. Functions
|
|
|
|
4.1. sd_lookup(table [, owner])
|
|
|
|
4.1. sd_lookup(table [, owner])
|
|
|
|
The function lookups the short dial number from R-URI in 'table' and
|
|
replaces the R-URI with associated address.
|
|
|
|
Meaning of the parameters is as follows:
|
|
* table - The name of the table storing the speed dial records.
|
|
* owner - The SIP URI of the owner of short dialing codes. If not
|
|
pressent, URI of From header is used.
|
|
|
|
This function can be used from REQUEST_ROUTE.
|
|
|
|
Example 1.9. sd_lookup usage
|
|
...
|
|
# 'speed_dial' is the default table name created by openser db script
|
|
if(uri=~"sip:[0-9]{2}@.*")
|
|
sd_lookup("speed_dial");
|
|
# use auth username
|
|
if(uri=~"sip:[0-9]{2}@.*")
|
|
sd_lookup("speed_dial", "sip:$au@$fd");
|
|
...
|
|
|
|
5. Installation and Running
|
|
|
|
5.1. Kamailio config file
|
|
|
|
5.1. Kamailio config file
|
|
|
|
Next picture displays a sample usage of speeddial.
|
|
|
|
Example 1.10. Kamailio config script - sample speeddial usage
|
|
...
|
|
#
|
|
# $Id$
|
|
#
|
|
# sample config script to use speeddial module
|
|
#
|
|
|
|
# ----------- global configuration parameters ------------------------
|
|
|
|
check_via=no # (cmd. line: -v)
|
|
dns=no # (cmd. line: -r)
|
|
rev_dns=no # (cmd. line: -R)
|
|
|
|
# ------------------ module loading ----------------------------------
|
|
|
|
loadmodule "/usr/local/lib/kamailio/modules/sl.so"
|
|
loadmodule "/usr/local/lib/kamailio/modules/tm.so"
|
|
loadmodule "/usr/local/lib/kamailio/modules/rr.so"
|
|
loadmodule "/usr/local/lib/kamailio/modules/maxfwd.so"
|
|
loadmodule "/usr/local/lib/kamailio/modules/usrloc.so"
|
|
loadmodule "/usr/local/lib/kamailio/modules/registrar.so"
|
|
loadmodule "/usr/local/lib/kamailio/modules/textops.so"
|
|
loadmodule "/usr/local/lib/kamailio/modules/mysql.so"
|
|
loadmodule "/usr/local/lib/kamailio/modules/speeddial.so"
|
|
loadmodule "/usr/local/lib/kamailio/modules/mi_fifo.so"
|
|
|
|
# ----------------- setting module-specific parameters ---------------
|
|
|
|
# -- mi_fifo params --
|
|
|
|
modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")
|
|
|
|
# -- usrloc params --
|
|
|
|
modparam("usrloc", "db_mode", 0)
|
|
|
|
# -- rr params --
|
|
# add value to ;lr param to make some broken UAs happy
|
|
modparam("rr", "enable_full_lr", 1)
|
|
|
|
# ------------------------- request routing logic -------------------
|
|
|
|
# main routing logic
|
|
route{
|
|
|
|
# initial sanity checks
|
|
if (!mf_process_maxfwd_header("10"))
|
|
{
|
|
sl_send_reply("483","Too Many Hops");
|
|
exit;
|
|
};
|
|
if (msg:len >= max_len )
|
|
{
|
|
sl_send_reply("513", "Message too big");
|
|
exit;
|
|
};
|
|
|
|
if (!method=="REGISTER") record_route();
|
|
|
|
if (loose_route())
|
|
{
|
|
if (!t_relay())
|
|
{
|
|
sl_reply_error();
|
|
};
|
|
exit;
|
|
};
|
|
|
|
if (!uri==myself)
|
|
{
|
|
if (!t_relay())
|
|
{
|
|
sl_reply_error();
|
|
};
|
|
exit;
|
|
};
|
|
|
|
if (uri==myself)
|
|
{
|
|
if (method=="REGISTER")
|
|
{
|
|
save("location");
|
|
exit;
|
|
};
|
|
|
|
if(uri=~"sip:[0-9]{2}@.*")
|
|
sd_lookup("speeddial");
|
|
|
|
lookup("aliases");
|
|
if (!uri==myself)
|
|
{
|
|
if (!t_relay())
|
|
{
|
|
sl_reply_error();
|
|
};
|
|
exit;
|
|
};
|
|
|
|
if (!lookup("location"))
|
|
{
|
|
sl_send_reply("404", "Not Found");
|
|
exit;
|
|
};
|
|
};
|
|
|
|
if (!t_relay())
|
|
{
|
|
sl_reply_error();
|
|
};
|
|
}
|
|
|
|
|
|
...
|