|
@@ -10,43 +10,43 @@ Daniel-Constantin Mierla
|
|
|
|
|
|
<[email protected]>
|
|
|
|
|
|
- Copyright © 2006 voice-system.ro
|
|
|
- Revision History
|
|
|
- Revision $Revision$ $Date: 2008-08-06 12:08:33 +0200
|
|
|
- (Mi, 06 Aug 2008) $
|
|
|
- __________________________________________________________
|
|
|
+ Copyright © 2010 asipto.com
|
|
|
+
|
|
|
+ Copyright © 2006 voice-system.ro
|
|
|
+ __________________________________________________________________
|
|
|
|
|
|
Table of Contents
|
|
|
|
|
|
1. Admin Guide
|
|
|
|
|
|
- 1.1. Overview
|
|
|
- 1.2. Dependencies
|
|
|
+ 1. Overview
|
|
|
+ 2. Dependencies
|
|
|
|
|
|
- 1.2.1. Kamailio Modules
|
|
|
- 1.2.2. External Libraries or Applications
|
|
|
+ 2.1. Kamailio Modules
|
|
|
+ 2.2. External Libraries or Applications
|
|
|
|
|
|
- 1.3. Exported Parameters
|
|
|
+ 3. Exported Parameters
|
|
|
|
|
|
- 1.3.1. db_url (str)
|
|
|
- 1.3.2. table (str)
|
|
|
- 1.3.3. trace_flag (integer)
|
|
|
- 1.3.4. trace_on (integer)
|
|
|
- 1.3.5. traced_user_avp (str)
|
|
|
- 1.3.6. trace_table_avp (str)
|
|
|
- 1.3.7. duplicate_uri (str)
|
|
|
- 1.3.8. trace_local_ip (str)
|
|
|
+ 3.1. db_url (str)
|
|
|
+ 3.2. table (str)
|
|
|
+ 3.3. trace_flag (integer)
|
|
|
+ 3.4. trace_on (integer)
|
|
|
+ 3.5. traced_user_avp (str)
|
|
|
+ 3.6. trace_table_avp (str)
|
|
|
+ 3.7. duplicate_uri (str)
|
|
|
+ 3.8. trace_local_ip (str)
|
|
|
+ 3.9. trace_sl_acks (integer)
|
|
|
|
|
|
- 1.4. Exported Functions
|
|
|
+ 4. Exported Functions
|
|
|
|
|
|
- 1.4.1. sip_trace()
|
|
|
+ 4.1. sip_trace()
|
|
|
|
|
|
- 1.5. Exported MI Functions
|
|
|
+ 5. Exported MI Functions
|
|
|
|
|
|
- 1.5.1. sip_trace
|
|
|
+ 5.1. sip_trace
|
|
|
|
|
|
- 1.6. Database setup
|
|
|
- 1.7. Known issues
|
|
|
+ 6. Database setup
|
|
|
+ 7. Known issues
|
|
|
|
|
|
List of Examples
|
|
|
|
|
@@ -58,24 +58,55 @@ Daniel-Constantin Mierla
|
|
|
1.6. Set trace_table_avp parameter
|
|
|
1.7. Set duplicate_uri parameter
|
|
|
1.8. Set trace_local_ip parameter
|
|
|
- 1.9. sip_trace() usage
|
|
|
+ 1.9. Set trace_sl_acks parameter
|
|
|
+ 1.10. sip_trace() usage
|
|
|
|
|
|
Chapter 1. Admin Guide
|
|
|
|
|
|
-1.1. Overview
|
|
|
+ Table of Contents
|
|
|
+
|
|
|
+ 1. Overview
|
|
|
+ 2. Dependencies
|
|
|
+
|
|
|
+ 2.1. Kamailio Modules
|
|
|
+ 2.2. External Libraries or Applications
|
|
|
+
|
|
|
+ 3. Exported Parameters
|
|
|
+
|
|
|
+ 3.1. db_url (str)
|
|
|
+ 3.2. table (str)
|
|
|
+ 3.3. trace_flag (integer)
|
|
|
+ 3.4. trace_on (integer)
|
|
|
+ 3.5. traced_user_avp (str)
|
|
|
+ 3.6. trace_table_avp (str)
|
|
|
+ 3.7. duplicate_uri (str)
|
|
|
+ 3.8. trace_local_ip (str)
|
|
|
+ 3.9. trace_sl_acks (integer)
|
|
|
+
|
|
|
+ 4. Exported Functions
|
|
|
+
|
|
|
+ 4.1. sip_trace()
|
|
|
+
|
|
|
+ 5. Exported MI Functions
|
|
|
+
|
|
|
+ 5.1. sip_trace
|
|
|
+
|
|
|
+ 6. Database setup
|
|
|
+ 7. Known issues
|
|
|
+
|
|
|
+1. Overview
|
|
|
|
|
|
Offer a possibility to store incoming/outgoing SIP messages in
|
|
|
database.
|
|
|
|
|
|
There are two ways of storing information.
|
|
|
* by calling explicitely the sip_trace() method in Kamailio
|
|
|
- configuration file. In this case the original message is
|
|
|
- processed.
|
|
|
- * by setting the flag equal with the value of 'trace_flag'
|
|
|
- (e.g., setflag(__trace_flag__)) parameter of the module. In
|
|
|
- this case, the\ message sent forward is processed. The
|
|
|
- logging mechanism is based on TM/SL callbacks, so only
|
|
|
- messages processed with TM/SL are logged.
|
|
|
+ configuration file. In this case the original message is processed.
|
|
|
+ * by setting the flag equal with the value of 'trace_flag' (e.g.,
|
|
|
+ setflag(__trace_flag__)) parameter of the module. In this case,
|
|
|
+ the\ message sent forward is processed. The logging mechanism is
|
|
|
+ based on TM/SL callbacks, so only messages processed with TM/SL are
|
|
|
+ logged.
|
|
|
|
|
|
The tracing can be turned on/off using fifo commad.
|
|
|
|
|
@@ -83,24 +114,37 @@ Chapter 1. Admin Guide
|
|
|
|
|
|
kamctl fifo sip_trace off
|
|
|
|
|
|
-1.2. Dependencies
|
|
|
+2. Dependencies
|
|
|
|
|
|
-1.2.1. Kamailio Modules
|
|
|
+ 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, postrgress, dbtext, unixodbc...
|
|
|
- * tm and sl modules - optional, only if you want to trace
|
|
|
- messages forwarded by these modules.
|
|
|
+ * tm and sl modules - optional, only if you want to trace messages
|
|
|
+ forwarded by these modules.
|
|
|
|
|
|
-1.2.2. External Libraries or Applications
|
|
|
+2.2. External Libraries or Applications
|
|
|
|
|
|
- The following libraries or applications must be installed
|
|
|
- before running Kamailio with this module loaded:
|
|
|
+ The following libraries or applications must be installed before
|
|
|
+ running Kamailio with this module loaded:
|
|
|
* None.
|
|
|
|
|
|
-1.3. Exported Parameters
|
|
|
+3. Exported Parameters
|
|
|
+
|
|
|
+ 3.1. db_url (str)
|
|
|
+ 3.2. table (str)
|
|
|
+ 3.3. trace_flag (integer)
|
|
|
+ 3.4. trace_on (integer)
|
|
|
+ 3.5. traced_user_avp (str)
|
|
|
+ 3.6. trace_table_avp (str)
|
|
|
+ 3.7. duplicate_uri (str)
|
|
|
+ 3.8. trace_local_ip (str)
|
|
|
+ 3.9. trace_sl_acks (integer)
|
|
|
|
|
|
-1.3.1. db_url (str)
|
|
|
+3.1. db_url (str)
|
|
|
|
|
|
Database URL.
|
|
|
|
|
@@ -111,7 +155,7 @@ Chapter 1. Admin Guide
|
|
|
modparam("siptrace", "db_url", "mysql://user:passwd@host/dbname")
|
|
|
...
|
|
|
|
|
|
-1.3.2. table (str)
|
|
|
+3.2. table (str)
|
|
|
|
|
|
Name of the table where to store the SIP messages.
|
|
|
|
|
@@ -122,7 +166,7 @@ modparam("siptrace", "db_url", "mysql://user:passwd@host/dbname")
|
|
|
modparam("siptrace", "table", "strace")
|
|
|
...
|
|
|
|
|
|
-1.3.3. trace_flag (integer)
|
|
|
+3.3. trace_flag (integer)
|
|
|
|
|
|
Which flag is used to mark messages to trace
|
|
|
|
|
@@ -133,7 +177,7 @@ modparam("siptrace", "table", "strace")
|
|
|
modparam("siptrace", "trace_flag", 22)
|
|
|
...
|
|
|
|
|
|
-1.3.4. trace_on (integer)
|
|
|
+3.4. trace_on (integer)
|
|
|
|
|
|
Parameter to enable/disable trace (on(1)/off(0))
|
|
|
|
|
@@ -144,13 +188,12 @@ modparam("siptrace", "trace_flag", 22)
|
|
|
modparam("siptrace", "trace_on", 1)
|
|
|
...
|
|
|
|
|
|
-1.3.5. traced_user_avp (str)
|
|
|
+3.5. traced_user_avp (str)
|
|
|
|
|
|
- The name of the AVP storing the SIP URI of the traced user. If
|
|
|
- the AVP is set, messages are stored in database table and
|
|
|
- 'traced_user' column is filled with AVP's value. You can store
|
|
|
- the message many times for many users by having multiple values
|
|
|
- for this AVP.
|
|
|
+ The name of the AVP storing the SIP URI of the traced user. If the AVP
|
|
|
+ is set, messages are stored in database table and 'traced_user' column
|
|
|
+ is filled with AVP's value. You can store the message many times for
|
|
|
+ many users by having multiple values for this AVP.
|
|
|
|
|
|
Default value is "NULL" (feature disabled).
|
|
|
|
|
@@ -160,13 +203,13 @@ modparam("siptrace", "traced_user_avp", "$avp(i:123)")
|
|
|
modparam("siptrace", "traced_user_avp", "$avp(s:user)")
|
|
|
...
|
|
|
|
|
|
-1.3.6. trace_table_avp (str)
|
|
|
+3.6. trace_table_avp (str)
|
|
|
|
|
|
- The name of the AVP storing the name of the table where to
|
|
|
- store the SIP messages. If it is not set, the value of 'table'
|
|
|
- parameter is used. In this way one can select dynamically where
|
|
|
- to store the traced messages. The table must exists, and must
|
|
|
- have the same structure as 'sip_trace' table.
|
|
|
+ The name of the AVP storing the name of the table where to store the
|
|
|
+ SIP messages. If it is not set, the value of 'table' parameter is used.
|
|
|
+ In this way one can select dynamically where to store the traced
|
|
|
+ messages. The table must exists, and must have the same structure as
|
|
|
+ 'sip_trace' table.
|
|
|
|
|
|
Default value is "NULL" (feature disabled).
|
|
|
|
|
@@ -176,10 +219,10 @@ modparam("siptrace", "trace_table_avp", "$avp(i:345)")
|
|
|
modparam("siptrace", "trace_table_avp", "$avp(s:siptrace_table)")
|
|
|
...
|
|
|
|
|
|
-1.3.7. duplicate_uri (str)
|
|
|
+3.7. duplicate_uri (str)
|
|
|
|
|
|
- The address in form of SIP uri where to send a duplicate of
|
|
|
- traced message. It uses UDP all the time.
|
|
|
+ The address in form of SIP uri where to send a duplicate of traced
|
|
|
+ message. It uses UDP all the time.
|
|
|
|
|
|
Default value is "NULL".
|
|
|
|
|
@@ -188,11 +231,11 @@ modparam("siptrace", "trace_table_avp", "$avp(s:siptrace_table)")
|
|
|
modparam("siptrace", "duplicate_uri", "sip:10.1.1.1:5888")
|
|
|
...
|
|
|
|
|
|
-1.3.8. trace_local_ip (str)
|
|
|
+3.8. trace_local_ip (str)
|
|
|
|
|
|
- The address to be used in fromip field for local generated
|
|
|
- messages. If not set, the module sets it to the address of the
|
|
|
- socket that will be used to send the message.
|
|
|
+ The address to be used in fromip field for local generated messages. If
|
|
|
+ not set, the module sets it to the address of the socket that will be
|
|
|
+ used to send the message.
|
|
|
|
|
|
Default value is "NULL".
|
|
|
|
|
@@ -201,53 +244,72 @@ modparam("siptrace", "duplicate_uri", "sip:10.1.1.1:5888")
|
|
|
modparam("siptrace", "trace_local_ip", "10.1.1.1:5064")
|
|
|
...
|
|
|
|
|
|
-1.4. Exported Functions
|
|
|
+3.9. trace_sl_acks (integer)
|
|
|
+
|
|
|
+ Parameter to enable/disable tracing of SL-filtered ACKs (on=1 / off=0).
|
|
|
|
|
|
-1.4.1. sip_trace()
|
|
|
+ By default all ACKs to replies generated by SL module are traced. There
|
|
|
+ is no way to select among them. Now SL module is able to run an event
|
|
|
+ route when such ACK arrives (event_route[sl:filtered-ack]). You can set
|
|
|
+ this parameter to 0 and then execute sip_trace() in the event route,
|
|
|
+ accompanied by config rules to decide which ACK to trace.
|
|
|
|
|
|
- Store current processed SIP message in database. It is stored
|
|
|
- in the form prior applying chages made to it.
|
|
|
+ Default value is "1".
|
|
|
+
|
|
|
+ Example 1.9. Set trace_sl_acks parameter
|
|
|
+...
|
|
|
+modparam("siptrace", "trace_sl_acks", 0)
|
|
|
+...
|
|
|
+
|
|
|
+4. Exported Functions
|
|
|
+
|
|
|
+ 4.1. sip_trace()
|
|
|
+
|
|
|
+4.1. sip_trace()
|
|
|
+
|
|
|
+ Store current processed SIP message in database. It is stored in the
|
|
|
+ form prior applying chages made to it.
|
|
|
|
|
|
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
|
|
|
ONREPLY_ROUTE, BRANCH_ROUTE.
|
|
|
|
|
|
- Example 1.9. sip_trace() usage
|
|
|
+ Example 1.10. sip_trace() usage
|
|
|
...
|
|
|
sip_trace();
|
|
|
...
|
|
|
|
|
|
-1.5. Exported MI Functions
|
|
|
+5. Exported MI Functions
|
|
|
+
|
|
|
+ 5.1. sip_trace
|
|
|
|
|
|
-1.5.1. sip_trace
|
|
|
+5.1. sip_trace
|
|
|
|
|
|
Name: sip_trace
|
|
|
|
|
|
Parameters:
|
|
|
- * trace_mode : turns on/off SIP message tracing. Possible
|
|
|
- values are:
|
|
|
+ * trace_mode : turns on/off SIP message tracing. Possible values are:
|
|
|
+ on
|
|
|
+ off
|
|
|
- The parameter is optional - if missing, the command will
|
|
|
- return the status of the SIP message tracing (as string
|
|
|
- "on" or "off" ) without changing anything.
|
|
|
+ The parameter is optional - if missing, the command will return the
|
|
|
+ status of the SIP message tracing (as string “on� or “off� )
|
|
|
+ without changing anything.
|
|
|
|
|
|
MI FIFO Command Format:
|
|
|
:sip_trace:_reply_fifo_file_
|
|
|
trace_mode
|
|
|
_empty_line_
|
|
|
|
|
|
-1.6. Database setup
|
|
|
+6. Database setup
|
|
|
|
|
|
- Before running Kamailio with siptrace, you have to setup the
|
|
|
- database tables where the module will store the data. For that,
|
|
|
- if the table were not created by the installation script or you
|
|
|
- choose to install everything by yourself you can use the
|
|
|
- siptrace-create.sql SQL script in the database directories in
|
|
|
- the kamailio/scripts folder as template. You can also find the
|
|
|
- complete database documentation on the project webpage,
|
|
|
- http://www.kamailio.org/docs/db-tables/kamailio-db-devel.html.
|
|
|
+ Before running Kamailio with siptrace, you have to setup the database
|
|
|
+ tables where the module will store the data. For that, if the table
|
|
|
+ were not created by the installation script or you choose to install
|
|
|
+ everything by yourself you can use the siptrace-create.sql SQL script
|
|
|
+ in the database directories in the kamailio/scripts folder as template.
|
|
|
+ You can also find the complete database documentation on the project
|
|
|
+ webpage, http://www.kamailio.org/docs/db-tables/kamailio-db-devel.html.
|
|
|
|
|
|
-1.7. Known issues
|
|
|
+7. Known issues
|
|
|
|
|
|
- Stateless forwarded messages (forward()) are not logged if you
|
|
|
- set the flag, use sip_trace().
|
|
|
+ Stateless forwarded messages (forward()) are not logged if you set the
|
|
|
+ flag, use sip_trace().
|