diff --git a/src/modules/pua/doc/pua.xml b/src/modules/pua/doc/pua.xml index 97fbf8f7edb..1daf326e072 100644 --- a/src/modules/pua/doc/pua.xml +++ b/src/modules/pua/doc/pua.xml @@ -35,11 +35,11 @@ - + - - + + diff --git a/src/modules/pua/doc/pua_admin.xml b/src/modules/pua/doc/pua_admin.xml index f7a58ebc538..a2ae2ac89ef 100644 --- a/src/modules/pua/doc/pua_admin.xml +++ b/src/modules/pua/doc/pua_admin.xml @@ -82,12 +82,12 @@
<varname>hash_size</varname> (int) - The size of the hash table used for storing SUBSCRIBE and - PUBLISH information. + The size of the hash table used for storing SUBSCRIBE and + PUBLISH information. This parameter will be used as the power of 2 when computing table size. - Default value is 9. + Default value is 9. @@ -175,8 +175,8 @@ modparam("pua", "default_expires", 3600) <varname>update_period</varname> (int) The interval at which the information in database and hash table - should be updated. In the case of the hash table updating means - deleting expired messages. + should be updated. In the case of the hash table updating means + deleting expired messages. Setting a value less than or equal to zero, disables updates. @@ -216,13 +216,13 @@ modparam("pua", "outbound_proxy", "sip:outbound.example.com") <varname>dlginfo_increase_version</varname> (int) When sending PUBLISH messages for Event: dialog, the body contains an - XML document according to RFC 4235. This XML document contains a + XML document according to RFC 4235. This XML document contains a version attribute to easily detect changes in the dialog state. By setting this parameter, the pua module parses the XML document and sets the version attribute to the proper value. If the receiver of the PUBLISH does not care about the version parameter (e.g. like - &kamailio; presence_dialoginfo module) it makes no sense to waste - CPU resources for parsing the XML body and the parameter should be + &kamailio; presence_dialoginfo module) it makes no sense to waste + CPU resources for parsing the XML body and the parameter should be set to 0. @@ -242,13 +242,13 @@ modparam("pua", "dlginfo_increase_version", 1) <varname>reginfo_increase_version</varname> (int) When sending PUBLISH messages for Event: reg, the body contains an - XML document according to RFC 4235(?). This XML document contains a + XML document according to RFC 4235(?). This XML document contains a version attribute to easily detect changes in the registration state. By setting this parameter, the pua module parses the XML document and sets the version attribute to the proper value. If the receiver of the PUBLISH does not care about the version parameter (e.g. like - &kamailio; presence_reginfo module) it makes no sense to waste - CPU resources for parsing the XML body and the parameter should be + &kamailio; presence_reginfo module) it makes no sense to waste + CPU resources for parsing the XML body and the parameter should be set to 0. @@ -268,7 +268,7 @@ modparam("pua", "reginfo_increase_version", 1) <varname>db_mode</varname> (int) The module supports 2 modes of operation, high speed memory - based storage (mode 0), and database only (mode 2) where all + based storage (mode 0), and database only (mode 2) where all data is stored in a database, allowing scalability at the expense of speed. Mode 1 is reserved. @@ -306,7 +306,7 @@ modparam("pua", "db_table_lock_write", 0)
- +
<varname>check_remote_contact</varname> (int) @@ -355,7 +355,7 @@ modparam("pua", "fetch_rows", 1000)
Functions - +
<function moreinfo="none">pua_update_contact()</function> @@ -364,7 +364,7 @@ modparam("pua", "fetch_rows", 1000) The remote target can be updated by the Contact of a subsequent in dialog request. In the PUA watcher case (sending a SUBSCRIBE messages), this means that the remote target for the following Subscribe messages - can be updated at any time by the contact of a Notify message. + can be updated at any time by the contact of a Notify message. If this function is called on request route on receiving a Notify message, it will try to update the stored remote target. </para> @@ -386,7 +386,7 @@ modparam("pua", "fetch_rows", 1000) </listitem> </itemizedlist> </para> - + <example> <title><function>pua_update_contact</function> usage @@ -428,8 +428,8 @@ if(method=="NOTIFY")
Installation - The module requires one table in the &kamailio; database: pua. The SQL - syntax to create it can be found in presence_xml-create.sql + The module requires one table in the &kamailio; database: pua. The SQL + syntax to create it can be found in presence_xml-create.sql script in the database directories in the kamailio/scripts folder. You can also find the complete database documentation on the project webpage, &kamailiodbdocslink;. diff --git a/src/modules/pua/doc/pua_devel.xml b/src/modules/pua/doc/pua_devel.xml index 08a24d04eb9..6bf889002af 100644 --- a/src/modules/pua/doc/pua_devel.xml +++ b/src/modules/pua/doc/pua_devel.xml @@ -10,7 +10,7 @@ - + &develguide; The module provides the following functions that can be used @@ -21,7 +21,7 @@ bind_pua(pua_api_t* api) - This function binds the pua modules and fills the structure + This function binds the pua modules and fills the structure with the two exported functions. @@ -53,9 +53,9 @@ typedef struct pua_api { typedef int (*send_publish_t)(publ_info_t* publ); ... - + - This function receives as a parameter a structure with Publish + This function receives as a parameter a structure with Publish required information and sends a Publish message. @@ -67,14 +67,14 @@ typedef struct publ_info str id; /* (optional )a value unique for one combination of pres_uri and flag */ - str* pres_uri; /* the presentity uri */ - str* body; /* the body of the Publish message; - can be NULL in case of an update expires*/ + str* pres_uri; /* the presentity uri */ + str* body; /* the body of the Publish message; + can be NULL in case of an update expires*/ int expires; /* the expires value that will be used in - Publish Expires header*/ + Publish Expires header*/ int flag; /* it can be : INSERT_TYPE or UPDATE_TYPE - if missing it will be established according - to the result of the search in hash table*/ + if missing it will be established according + to the result of the search in hash table*/ int source_flag; /* flag identifying the resource ; supported values: UL_PUBLISH, MI_PUBLISH, BLA_PUBLISH, XMPP_PUBLISH*/ @@ -86,7 +86,7 @@ typedef struct publ_info for that event)*/ str* etag; /* (optional) the value of the etag the request should match */ - str* outbound_proxy;/* outbound_proxy to use when sending the + str* outbound_proxy;/* outbound_proxy to use when sending the Publish request */ str* extra_headers /* (optional) extra_headers that should be added to Publish msg*/ @@ -106,9 +106,9 @@ typedef struct publ_info typedef int (*send_subscribe_t)(subs_info_t* subs); ... - + - This function receives as a parameter a structure with Subscribe + This function receives as a parameter a structure with Subscribe required information and sends a Subscribe message. @@ -119,24 +119,24 @@ typedef struct subs_info str id; /* an id value unique for one combination of pres_uri and flag */ - str* pres_uri; /* the presentity uri */ + str* pres_uri; /* the presentity uri */ str* watcher_uri; /* the watcher uri */ str* contact; /* the uri that will be used in - Contact header*/ + Contact header*/ str* remote_target; /* the uri that will be used as R-URI for the Subscribe message(not compulsory; if not set the value of the pres_uri field is used) */ - str* outbound_proxy; /* the outbound_proxy to use when sending the + str* outbound_proxy; /* the outbound_proxy to use when sending the Subscribe request*/ - int event; /* the event flag; supported value: - PRESENCE_EVENT, BLA_EVENT, PWINFO_EVENT*/ + int event; /* the event flag; supported value: + PRESENCE_EVENT, BLA_EVENT, PWINFO_EVENT*/ int expires; /* the expires value that will be used in - Subscribe Expires header */ + Subscribe Expires header */ int flag; /* it can be : INSERT_TYPE or UPDATE_TYPE - not compulsory */ + not compulsory */ int source_flag; /* flag identifying the resource ; - supported values: MI_SUBSCRIBE, + supported values: MI_SUBSCRIBE, BLA_SUBSCRIBE, XMPP_SUBSCRIBE, XMPP_INITIAL_SUBS */ }subs_info_t; @@ -155,21 +155,21 @@ typedef struct subs_info typedef int (*query_dialog_t)(ua_pres_t* presentity); ... - + This function checks is the parameter corresponds to a stored - Subscribe initiated dialog. + Subscribe initiated dialog. <function>pua_is_dialog </function>usage example -... +... if(pua_is_dialog(dialog) < 0) { LM_ERR("querying dialog\n"); goto error; } -... +...
@@ -186,7 +186,7 @@ typedef int (*register_puacb_t)(int types, pua_cb f, void* param ); ...
- + This function registers a callback to be called on receiving the reply message for a sent Publish or Subscribe request. @@ -205,7 +205,7 @@ typedef int (*register_puacb_t)(int types, pua_cb f, void* param ); LM_ERR("Could not register callback\n"); return -1; } -... +... The callback function type: @@ -226,14 +226,14 @@ typedef int (pua_cb)(ua_pres_t* hentity, struct sip_msg*); Field type: ... -typedef int (*add_pua_event_t)(int ev_flag, char* name, +typedef int (*add_pua_event_t)(int ev_flag, char* name, char* content_type,evs_process_body_t* process_body); -- ev_flag : an event flag defined as a macro in pua module +- ev_flag : an event flag defined as a macro in pua module - name : the event name to be used in Event request headers -- content_type: the default content_type for Publish body for +- content_type: the default content_type for Publish body for that event (NULL if winfo event) -- process_body: function that processes the received body before +- process_body: function that processes the received body before using it to construct the PUBLISH request (NULL if winfo event) ... @@ -241,25 +241,25 @@ typedef int (*add_pua_event_t)(int ev_flag, char* name, This function allows registering new events to the pua module. - Now there are 4 events supported by the pua module: presence, - presence;winfo, message-summary, dialog;sla, application/reginfo+xml. + Now there are 4 events supported by the pua module: presence, + presence;winfo, message-summary, dialog;sla, application/reginfo+xml. These events are registered from within the pua module. - Filed type for process_body: + Filed type for process_body: ... -typedef int (evs_process_body_t)(struct publ_info* publ, +typedef int (evs_process_body_t)(struct publ_info* publ, str** final_body, int ver, str* tuple); -- publ : the structure received as a parameter in send_publish +- publ : the structure received as a parameter in send_publish function ( initial body found in publ->body) -- final_body: the pointer where the result(final_body) should be stored +- final_body: the pointer where the result(final_body) should be stored - ver : a counter for the sent Publish requests (used for winfo events) - tuple : a unique identifier for the resource; if an initial Publish it should be returned as a result and it will be stored for that record, otherwise it will - be given as a parameter; + be given as a parameter; ... @@ -267,13 +267,13 @@ typedef int (evs_process_body_t)(struct publ_info* publ, <function>add_event </function>usage example ... - if(pua.add_event((PRESENCE_EVENT, "presence", "application/pidf+xml", + if(pua.add_event((PRESENCE_EVENT, "presence", "application/pidf+xml", pres_process_body) & 0) { LM_ERR("Could not register new event\n"); return -1; } -... +...