From d77df08ab601e721f0ce95abfbbbe365022e57ee Mon Sep 17 00:00:00 2001 From: Daniel-Constantin Mierla Date: Fri, 7 Mar 2008 18:19:45 +0000 Subject: [PATCH] - modules documentation migrated from sgml to xml docbook format - many thanks to Edson <4lists (at) gmail (dot) com> for providing script to replace headers and rename files - contact updated - follows re-sync with todays changes and update of Makefile to generate README and html files from XML git-svn-id: https://openser.svn.sourceforge.net/svnroot/openser/trunk@3886 689a6050-402a-0410-94f2-e92a70836424 --- modules_k/acc/README | 351 ++-- modules_k/acc/doc/{acc.sgml => acc.xml} | 14 +- .../acc/doc/{acc_user.sgml => acc_admin.xml} | 15 +- .../acc/doc/{acc_faq.sgml => acc_faq.xml} | 3 +- modules_k/alias_db/README | 90 +- .../doc/{alias_db.sgml => alias_db.xml} | 21 +- ...{alias_db_user.sgml => alias_db_admin.xml} | 0 modules_k/auth/README | 167 +- modules_k/auth/doc/{auth.sgml => auth.xml} | 14 +- .../doc/{auth_user.sgml => auth_admin.xml} | 6 +- modules_k/auth_db/README | 110 +- .../auth_db/doc/{auth_db.sgml => auth_db.xml} | 14 +- .../{auth_db_user.sgml => auth_db_admin.xml} | 40 +- modules_k/auth_diameter/README | 94 +- .../{auth_diameter.sgml => auth_diameter.xml} | 14 +- ...eter_user.sgml => auth_diameter_admin.xml} | 2 +- modules_k/auth_radius/README | 92 +- .../doc/{auth_radius.sgml => auth_radius.xml} | 14 +- ...radius_user.sgml => auth_radius_admin.xml} | 9 +- modules_k/avp_radius/README | 75 +- .../doc/{avp_radius.sgml => avp_radius.xml} | 16 +- ..._radius_user.sgml => avp_radius_admin.xml} | 1 + modules_k/avpops/README | 218 ++- .../avpops/doc/{avpops.sgml => avpops.xml} | 14 +- .../{avpops_user.sgml => avpops_admin.xml} | 5 +- modules_k/benchmark/README | 112 +- .../doc/{benchmark.sgml => benchmark.xml} | 15 +- ...enchmark_user.sgml => benchmark_admin.xml} | 1 + ...nchmark_devel.sgml => benchmark_devel.xml} | 3 +- modules_k/carrierroute/README | 310 ++-- .../{carrierroute.sgml => carrierroute.xml} | 22 +- ...route_user.sgml => carrierroute_admin.xml} | 4 +- modules_k/cfgutils/README | 152 +- .../doc/{cfgutils.sgml => cfgutils.xml} | 14 +- ...{cfgutils_user.sgml => cfgutils_admin.xml} | 2 +- modules_k/cpl-c/README | 164 +- modules_k/cpl-c/doc/{cpl-c.sgml => cpl-c.xml} | 14 +- .../doc/{cpl-c_user.sgml => cpl-c_admin.xml} | 10 +- modules_k/db_berkeley/README | 101 +- .../doc/{db_berkeley.sgml => db_berkeley.xml} | 10 +- ...rkeley_user.sgml => db_berkeley_admin.xml} | 0 modules_k/db_flatstore/README | 56 +- .../{db_flatstore.sgml => db_flatstore.xml} | 16 +- ...store_user.sgml => db_flatstore_admin.xml} | 0 ...tore_devel.sgml => db_flatstore_devel.xml} | 0 modules_k/db_mysql/README | 65 +- .../doc/{db_mysql.sgml => db_mysql.xml} | 22 +- ...{db_mysql_user.sgml => db_mysql_admin.xml} | 0 modules_k/db_postgres/README | 51 +- .../doc/{db_postgres.sgml => db_postgres.xml} | 14 +- ...stgres_user.sgml => db_postgres_admin.xml} | 2 +- modules_k/db_text/README | 97 +- .../db_text/doc/{db_text.sgml => db_text.xml} | 23 +- .../{db_text_user.sgml => db_text_admin.xml} | 2 +- .../{db_text_devel.sgml => db_text_devel.xml} | 0 modules_k/db_unixodbc/README | 71 +- .../doc/{db_unixodbc.sgml => db_unixodbc.xml} | 16 +- ...ixodbc_user.sgml => db_unixodbc_admin.xml} | 4 +- ...xodbc_devel.sgml => db_unixodbc_devel.xml} | 0 modules_k/dialog/README | 244 +-- .../dialog/doc/{dialog.sgml => dialog.xml} | 16 +- .../{dialog_user.sgml => dialog_admin.xml} | 8 +- .../{dialog_devel.sgml => dialog_devel.xml} | 0 .../doc/{dialog_faq.sgml => dialog_faq.xml} | 0 modules_k/dispatcher/README | 245 ++- .../doc/{dispatcher.sgml => dispatcher.xml} | 19 +- ...patcher_user.sgml => dispatcher_admin.xml} | 0 ...dispatcher_faq.sgml => dispatcher_faq.xml} | 0 modules_k/diversion/README | 62 +- .../doc/{diversion.sgml => diversion.xml} | 16 +- ...iversion_user.sgml => diversion_admin.xml} | 0 ...version_devel.sgml => diversion_devel.xml} | 0 modules_k/domain/README | 90 +- .../domain/doc/{domain.sgml => domain.xml} | 16 +- .../{domain_user.sgml => domain_admin.xml} | 0 .../{domain_devel.sgml => domain_devel.xml} | 0 modules_k/domainpolicy/README | 135 +- .../{domainpolicy.sgml => domainpolicy.xml} | 14 +- ...olicy_user.sgml => domainpolicy_admin.xml} | 8 +- modules_k/enum/README | 118 +- modules_k/enum/doc/{enum.sgml => enum.xml} | 14 +- .../doc/{enum_user.sgml => enum_admin.xml} | 0 modules_k/exec/README | 83 +- modules_k/exec/doc/{exec.sgml => exec.xml} | 14 +- .../doc/{exec_user.sgml => exec_admin.xml} | 0 modules_k/gflags/README | 88 +- .../gflags/doc/{gflags.sgml => gflags.xml} | 16 +- .../{gflags_user.sgml => gflags_admin.xml} | 0 modules_k/group/README | 113 +- modules_k/group/doc/{group.sgml => group.xml} | 14 +- .../doc/{group_user.sgml => group_admin.xml} | 0 modules_k/group_radius/README | 63 +- .../{group_radius.sgml => group_radius.xml} | 14 +- ...adius_user.sgml => group_radius_admin.xml} | 1 + modules_k/h350/README | 104 +- modules_k/h350/doc/{h350.sgml => h350.xml} | 12 +- .../doc/{h350_user.sgml => h350_admin.xml} | 12 +- modules_k/imc/README | 98 +- modules_k/imc/doc/{imc.sgml => imc.xml} | 17 +- .../imc/doc/{imc_user.sgml => imc_admin.xml} | 4 +- modules_k/jabber/README | 187 +- .../jabber/doc/{jabber.sgml => jabber.xml} | 19 +- .../{jabber_user.sgml => jabber_admin.xml} | 0 modules_k/lcr/README | 244 +-- modules_k/lcr/doc/{lcr.sgml => lcr.xml} | 14 +- .../lcr/doc/{lcr_user.sgml => lcr_admin.xml} | 0 modules_k/ldap/README | 252 +-- modules_k/ldap/doc/{ldap.sgml => ldap.xml} | 14 +- .../doc/{ldap_user.sgml => ldap_admin.xml} | 16 +- .../doc/{ldap_devel.sgml => ldap_devel.xml} | 4 +- modules_k/mangler/README | 98 +- .../mangler/doc/{mangler.sgml => mangler.xml} | 14 +- .../{mangler_user.sgml => mangler_admin.xml} | 0 modules_k/maxfwd/README | 70 +- .../maxfwd/doc/{maxfwd.sgml => maxfwd.xml} | 14 +- .../{maxfwd_user.sgml => maxfwd_admin.xml} | 2 +- modules_k/mediaproxy/README | 121 +- .../doc/{mediaproxy.sgml => mediaproxy.xml} | 14 +- ...iaproxy_user.sgml => mediaproxy_admin.xml} | 0 modules_k/mi_datagram/README | 118 +- .../doc/{mi_datagram.sgml => mi_datagram.xml} | 10 +- ...tagram_user.sgml => mi_datagram_admin.xml} | 0 ..._datagram_faq.sgml => mi_datagram_faq.xml} | 0 modules_k/mi_fifo/README | 85 +- .../mi_fifo/doc/{mi_fifo.sgml => mi_fifo.xml} | 14 +- .../{mi_fifo_user.sgml => mi_fifo_admin.xml} | 0 modules_k/mi_xmlrpc/README | 79 +- .../doc/{mi_xmlrpc.sgml => mi_xmlrpc.xml} | 14 +- ...i_xmlrpc_user.sgml => mi_xmlrpc_admin.xml} | 2 +- modules_k/msilo/README | 188 +- modules_k/msilo/doc/{msilo.sgml => msilo.xml} | 19 +- .../doc/{msilo_user.sgml => msilo_admin.xml} | 15 +- modules_k/nathelper/README | 249 ++- .../doc/{nathelper.sgml => nathelper.xml} | 14 +- ...athelper_user.sgml => nathelper_admin.xml} | 10 +- .../{nathelper_faq.sgml => nathelper_faq.xml} | 0 modules_k/options/README | 72 +- .../options/doc/{options.sgml => options.xml} | 14 +- .../{options_user.sgml => options_admin.xml} | 2 +- modules_k/osp/README | 165 +- modules_k/osp/doc/{osp.sgml => osp.xml} | 16 +- .../osp/doc/{osp_user.sgml => osp_admin.xml} | 0 .../osp/doc/{osp_devel.sgml => osp_devel.xml} | 0 modules_k/path/README | 82 +- modules_k/path/doc/{path.sgml => path.xml} | 14 +- .../doc/{path_user.sgml => path_admin.xml} | 0 modules_k/pdt/README | 138 +- modules_k/pdt/doc/{pdt.sgml => pdt.xml} | 14 +- .../pdt/doc/{pdt_user.sgml => pdt_admin.xml} | 4 +- modules_k/perl/README | 237 +-- modules_k/perl/doc/{perl.sgml => perl.xml} | 18 +- .../doc/{perl_user.sgml => perl_admin.xml} | 15 +- .../perl/doc/{perl_faq.sgml => perl_faq.xml} | 0 modules_k/perlvdb/README | 59 +- .../perlvdb/doc/{perlvdb.sgml => perlvdb.xml} | 14 +- .../{perlvdb_user.sgml => perlvdb_admin.xml} | 0 .../{perlvdb_devel.sgml => perlvdb_devel.xml} | 0 modules_k/permissions/README | 315 ++-- .../doc/{permissions.sgml => permissions.xml} | 14 +- ...ssions_user.sgml => permissions_admin.xml} | 21 +- modules_k/pike/README | 75 +- modules_k/pike/doc/{pike.sgml => pike.xml} | 16 +- .../doc/{pike_user.sgml => pike_admin.xml} | 0 .../doc/{pike_devel.sgml => pike_devel.xml} | 2 +- modules_k/presence/README | 139 +- .../doc/{presence.sgml => presence.xml} | 14 +- ...{presence_user.sgml => presence_admin.xml} | 4 +- ...presence_devel.sgml => presence_devel.xml} | 20 +- modules_k/presence_mwi/README | 49 +- .../{presence_mwi.sgml => presence_mwi.xml} | 10 +- ...e_mwi_user.sgml => presence_mwi_admin.xml} | 0 modules_k/presence_xml/README | 77 +- .../{presence_xml.sgml => presence_xml.xml} | 12 +- ...e_xml_user.sgml => presence_xml_admin.xml} | 1 - ..._xml_devel.sgml => presence_xml_devel.xml} | 0 modules_k/pua/README | 125 +- modules_k/pua/doc/{pua.sgml => pua.xml} | 16 +- .../pua/doc/{pua_user.sgml => pua_admin.xml} | 0 .../pua/doc/{pua_devel.sgml => pua_devel.xml} | 7 +- modules_k/pua_bla/README | 79 +- .../pua_bla/doc/{pua_bla.sgml => pua_bla.xml} | 10 +- .../{pua_bla_user.sgml => pua_bla_admin.xml} | 4 +- modules_k/pua_mi/README | 63 +- .../pua_mi/doc/{pua_mi.sgml => pua_mi.xml} | 14 +- .../{pua_mi_user.sgml => pua_mi_admin.xml} | 20 +- modules_k/pua_usrloc/README | 62 +- .../doc/{pua_usrloc.sgml => pua_usrloc.xml} | 14 +- ..._usrloc_user.sgml => pua_usrloc_admin.xml} | 6 +- modules_k/pua_xmpp/README | 74 +- .../doc/{pua_xmpp.sgml => pua_xmpp.xml} | 12 +- ...{pua_xmpp_user.sgml => pua_xmpp_admin.xml} | 6 +- ...pua_xmpp_devel.sgml => pua_xmpp_devel.xml} | 0 modules_k/ratelimit/README | 140 +- .../doc/{ratelimit.sgml => ratelimit.xml} | 14 +- ...atelimit_user.sgml => ratelimit_admin.xml} | 7 +- modules_k/registrar/README | 246 ++- .../doc/{registrar.sgml => registrar.xml} | 14 +- ...egistrar_user.sgml => registrar_admin.xml} | 3 +- .../{registrar_faq.sgml => registrar_faq.xml} | 6 +- modules_k/rls/README | 119 +- modules_k/rls/doc/{rls.sgml => rls.xml} | 12 +- .../rls/doc/{rls_user.sgml => rls_admin.xml} | 1 + .../rls/doc/{rls_devel.sgml => rls_devel.xml} | 0 modules_k/rr/README | 177 +- modules_k/rr/doc/{rr.sgml => rr.xml} | 17 +- .../rr/doc/{rr_user.sgml => rr_admin.xml} | 12 +- .../rr/doc/{rr_devel.sgml => rr_devel.xml} | 7 +- modules_k/seas/README | 258 ++- modules_k/seas/doc/seas.sgml | 45 - modules_k/seas/doc/seas.xml | 1637 +---------------- .../doc/{seas_user.sgml => seas_admin.xml} | 7 +- .../doc/{seas_devel.sgml => seas_devel.xml} | 87 +- modules_k/siptrace/README | 101 +- .../doc/{siptrace.sgml => siptrace.xml} | 22 +- ...{siptrace_user.sgml => siptrace_admin.xml} | 0 modules_k/sl/README | 74 +- modules_k/sl/doc/{sl.sgml => sl.xml} | 14 +- .../sl/doc/{sl_user.sgml => sl_admin.xml} | 0 modules_k/sms/README | 109 +- modules_k/sms/doc/{sms.sgml => sms.xml} | 16 +- .../sms/doc/{sms_user.sgml => sms_admin.xml} | 4 +- .../sms/doc/{sms_devel.sgml => sms_devel.xml} | 0 modules_k/snmpstats/README | 136 +- .../doc/{snmpstats.sgml => snmpstats.xml} | 14 +- ...nmpstats_user.sgml => snmpstats_admin.xml} | 4 +- .../{snmpstats_faq.sgml => snmpstats_faq.xml} | 4 +- modules_k/speeddial/README | 102 +- .../doc/{speeddial.sgml => speeddial.xml} | 14 +- ...peeddial_user.sgml => speeddial_admin.xml} | 2 +- modules_k/sst/README | 90 +- modules_k/sst/doc/{sst.sgml => sst.xml} | 14 +- .../sst/doc/{sst_user.sgml => sst_admin.xml} | 2 +- modules_k/statistics/README | 66 +- .../doc/{statistics.sgml => statistics.xml} | 14 +- ...tistics_user.sgml => statistics_admin.xml} | 0 modules_k/textops/README | 254 ++- .../textops/doc/{textops.sgml => textops.xml} | 16 +- .../{textops_user.sgml => textops_admin.xml} | 3 +- modules_k/tm/README | 301 ++- modules_k/tm/doc/{tm.sgml => tm.xml} | 16 +- .../tm/doc/{tm_user.sgml => tm_admin.xml} | 11 +- .../tm/doc/{tm_devel.sgml => tm_devel.xml} | 0 modules_k/uac/README | 122 +- modules_k/uac/doc/{uac.sgml => uac.xml} | 14 +- .../uac/doc/{uac_user.sgml => uac_admin.xml} | 12 +- modules_k/uac_redirect/README | 110 +- .../{uac_redirect.sgml => uac_redirect.xml} | 14 +- ...irect_user.sgml => uac_redirect_admin.xml} | 0 modules_k/uri/README | 100 +- modules_k/uri/doc/{uri.sgml => uri.xml} | 14 +- .../uri/doc/{uri_user.sgml => uri_admin.xml} | 0 modules_k/uri_db/README | 186 +- .../uri_db/doc/{uri_db.sgml => uri_db.xml} | 14 +- .../{uri_db_user.sgml => uri_db_admin.xml} | 98 +- modules_k/uri_radius/README | 68 +- .../doc/{uri_radius.sgml => uri_radius.xml} | 14 +- ..._radius_user.sgml => uri_radius_admin.xml} | 1 + modules_k/userblacklist/README | 97 +- .../{userblacklist.sgml => userblacklist.xml} | 10 +- ...list_user.sgml => userblacklist_admin.xml} | 9 +- modules_k/usrloc/README | 273 ++- .../usrloc/doc/{usrloc.sgml => usrloc.xml} | 16 +- .../{usrloc_user.sgml => usrloc_admin.xml} | 4 +- .../{usrloc_devel.sgml => usrloc_devel.xml} | 1 - modules_k/xcap_client/README | 97 +- .../doc/{xcap_client.sgml => xcap_client.xml} | 12 +- ...client_user.sgml => xcap_client_admin.xml} | 4 +- ...lient_devel.sgml => xcap_client_devel.xml} | 3 +- modules_k/xlog/README | 87 +- modules_k/xlog/doc/{xlog.sgml => xlog.xml} | 14 +- .../doc/{xlog_user.sgml => xlog_admin.xml} | 10 +- modules_k/xmpp/README | 100 +- modules_k/xmpp/doc/{xmpp.sgml => xmpp.xml} | 25 +- .../doc/{xmpp_user.sgml => xmpp_admin.xml} | 3 +- 274 files changed, 6945 insertions(+), 7274 deletions(-) rename modules_k/acc/doc/{acc.sgml => acc.xml} (75%) rename modules_k/acc/doc/{acc_user.sgml => acc_admin.xml} (98%) rename modules_k/acc/doc/{acc_faq.sgml => acc_faq.xml} (96%) rename modules_k/alias_db/doc/{alias_db.sgml => alias_db.xml} (58%) rename modules_k/alias_db/doc/{alias_db_user.sgml => alias_db_admin.xml} (100%) rename modules_k/auth/doc/{auth.sgml => auth.xml} (72%) rename modules_k/auth/doc/{auth_user.sgml => auth_admin.xml} (99%) rename modules_k/auth_db/doc/{auth_db.sgml => auth_db.xml} (70%) rename modules_k/auth_db/doc/{auth_db_user.sgml => auth_db_admin.xml} (93%) rename modules_k/auth_diameter/doc/{auth_diameter.sgml => auth_diameter.xml} (65%) rename modules_k/auth_diameter/doc/{auth_diameter_user.sgml => auth_diameter_admin.xml} (99%) rename modules_k/auth_radius/doc/{auth_radius.sgml => auth_radius.xml} (73%) rename modules_k/auth_radius/doc/{auth_radius_user.sgml => auth_radius_admin.xml} (97%) rename modules_k/avp_radius/doc/{avp_radius.sgml => avp_radius.xml} (54%) rename modules_k/avp_radius/doc/{avp_radius_user.sgml => avp_radius_admin.xml} (99%) rename modules_k/avpops/doc/{avpops.sgml => avpops.xml} (65%) rename modules_k/avpops/doc/{avpops_user.sgml => avpops_admin.xml} (99%) rename modules_k/benchmark/doc/{benchmark.sgml => benchmark.xml} (74%) rename modules_k/benchmark/doc/{benchmark_user.sgml => benchmark_admin.xml} (99%) rename modules_k/benchmark/doc/{benchmark_devel.sgml => benchmark_devel.xml} (98%) rename modules_k/carrierroute/doc/{carrierroute.sgml => carrierroute.xml} (56%) rename modules_k/carrierroute/doc/{carrierroute_user.sgml => carrierroute_admin.xml} (99%) rename modules_k/cfgutils/doc/{cfgutils.sgml => cfgutils.xml} (71%) rename modules_k/cfgutils/doc/{cfgutils_user.sgml => cfgutils_admin.xml} (99%) rename modules_k/cpl-c/doc/{cpl-c.sgml => cpl-c.xml} (64%) rename modules_k/cpl-c/doc/{cpl-c_user.sgml => cpl-c_admin.xml} (98%) rename modules_k/db_berkeley/doc/{db_berkeley.sgml => db_berkeley.xml} (75%) rename modules_k/db_berkeley/doc/{db_berkeley_user.sgml => db_berkeley_admin.xml} (100%) rename modules_k/db_flatstore/doc/{db_flatstore.sgml => db_flatstore.xml} (60%) rename modules_k/db_flatstore/doc/{db_flatstore_user.sgml => db_flatstore_admin.xml} (100%) rename modules_k/db_flatstore/doc/{db_flatstore_devel.sgml => db_flatstore_devel.xml} (100%) rename modules_k/db_mysql/doc/{db_mysql.sgml => db_mysql.xml} (56%) rename modules_k/db_mysql/doc/{db_mysql_user.sgml => db_mysql_admin.xml} (100%) rename modules_k/db_postgres/doc/{db_postgres.sgml => db_postgres.xml} (64%) rename modules_k/db_postgres/doc/{db_postgres_user.sgml => db_postgres_admin.xml} (96%) rename modules_k/db_text/doc/{db_text.sgml => db_text.xml} (57%) rename modules_k/db_text/doc/{db_text_user.sgml => db_text_admin.xml} (99%) rename modules_k/db_text/doc/{db_text_devel.sgml => db_text_devel.xml} (100%) rename modules_k/db_unixodbc/doc/{db_unixodbc.sgml => db_unixodbc.xml} (62%) rename modules_k/db_unixodbc/doc/{db_unixodbc_user.sgml => db_unixodbc_admin.xml} (98%) rename modules_k/db_unixodbc/doc/{db_unixodbc_devel.sgml => db_unixodbc_devel.xml} (100%) rename modules_k/dialog/doc/{dialog.sgml => dialog.xml} (62%) rename modules_k/dialog/doc/{dialog_user.sgml => dialog_admin.xml} (98%) rename modules_k/dialog/doc/{dialog_devel.sgml => dialog_devel.xml} (100%) rename modules_k/dialog/doc/{dialog_faq.sgml => dialog_faq.xml} (100%) rename modules_k/dispatcher/doc/{dispatcher.sgml => dispatcher.xml} (70%) rename modules_k/dispatcher/doc/{dispatcher_user.sgml => dispatcher_admin.xml} (100%) rename modules_k/dispatcher/doc/{dispatcher_faq.sgml => dispatcher_faq.xml} (100%) rename modules_k/diversion/doc/{diversion.sgml => diversion.xml} (62%) rename modules_k/diversion/doc/{diversion_user.sgml => diversion_admin.xml} (100%) rename modules_k/diversion/doc/{diversion_devel.sgml => diversion_devel.xml} (100%) rename modules_k/domain/doc/{domain.sgml => domain.xml} (57%) rename modules_k/domain/doc/{domain_user.sgml => domain_admin.xml} (100%) rename modules_k/domain/doc/{domain_devel.sgml => domain_devel.xml} (100%) rename modules_k/domainpolicy/doc/{domainpolicy.sgml => domainpolicy.xml} (68%) rename modules_k/domainpolicy/doc/{domainpolicy_user.sgml => domainpolicy_admin.xml} (99%) rename modules_k/enum/doc/{enum.sgml => enum.xml} (59%) rename modules_k/enum/doc/{enum_user.sgml => enum_admin.xml} (100%) rename modules_k/exec/doc/{exec.sgml => exec.xml} (64%) rename modules_k/exec/doc/{exec_user.sgml => exec_admin.xml} (100%) rename modules_k/gflags/doc/{gflags.sgml => gflags.xml} (53%) rename modules_k/gflags/doc/{gflags_user.sgml => gflags_admin.xml} (100%) rename modules_k/group/doc/{group.sgml => group.xml} (64%) rename modules_k/group/doc/{group_user.sgml => group_admin.xml} (100%) rename modules_k/group_radius/doc/{group_radius.sgml => group_radius.xml} (69%) rename modules_k/group_radius/doc/{group_radius_user.sgml => group_radius_admin.xml} (99%) rename modules_k/h350/doc/{h350.sgml => h350.xml} (72%) rename modules_k/h350/doc/{h350_user.sgml => h350_admin.xml} (91%) rename modules_k/imc/doc/{imc.sgml => imc.xml} (69%) rename modules_k/imc/doc/{imc_user.sgml => imc_admin.xml} (99%) rename modules_k/jabber/doc/{jabber.sgml => jabber.xml} (57%) rename modules_k/jabber/doc/{jabber_user.sgml => jabber_admin.xml} (100%) rename modules_k/lcr/doc/{lcr.sgml => lcr.xml} (58%) rename modules_k/lcr/doc/{lcr_user.sgml => lcr_admin.xml} (100%) rename modules_k/ldap/doc/{ldap.sgml => ldap.xml} (70%) rename modules_k/ldap/doc/{ldap_user.sgml => ldap_admin.xml} (94%) rename modules_k/ldap/doc/{ldap_devel.sgml => ldap_devel.xml} (99%) rename modules_k/mangler/doc/{mangler.sgml => mangler.xml} (65%) rename modules_k/mangler/doc/{mangler_user.sgml => mangler_admin.xml} (100%) rename modules_k/maxfwd/doc/{maxfwd.sgml => maxfwd.xml} (63%) rename modules_k/maxfwd/doc/{maxfwd_user.sgml => maxfwd_admin.xml} (98%) rename modules_k/mediaproxy/doc/{mediaproxy.sgml => mediaproxy.xml} (56%) rename modules_k/mediaproxy/doc/{mediaproxy_user.sgml => mediaproxy_admin.xml} (100%) rename modules_k/mi_datagram/doc/{mi_datagram.sgml => mi_datagram.xml} (76%) rename modules_k/mi_datagram/doc/{mi_datagram_user.sgml => mi_datagram_admin.xml} (100%) rename modules_k/mi_datagram/doc/{mi_datagram_faq.sgml => mi_datagram_faq.xml} (100%) rename modules_k/mi_fifo/doc/{mi_fifo.sgml => mi_fifo.xml} (67%) rename modules_k/mi_fifo/doc/{mi_fifo_user.sgml => mi_fifo_admin.xml} (100%) rename modules_k/mi_xmlrpc/doc/{mi_xmlrpc.sgml => mi_xmlrpc.xml} (71%) rename modules_k/mi_xmlrpc/doc/{mi_xmlrpc_user.sgml => mi_xmlrpc_admin.xml} (99%) rename modules_k/msilo/doc/{msilo.sgml => msilo.xml} (58%) rename modules_k/msilo/doc/{msilo_user.sgml => msilo_admin.xml} (99%) rename modules_k/nathelper/doc/{nathelper.sgml => nathelper.xml} (70%) rename modules_k/nathelper/doc/{nathelper_user.sgml => nathelper_admin.xml} (99%) rename modules_k/nathelper/doc/{nathelper_faq.sgml => nathelper_faq.xml} (100%) rename modules_k/options/doc/{options.sgml => options.xml} (64%) rename modules_k/options/doc/{options_user.sgml => options_admin.xml} (98%) rename modules_k/osp/doc/{osp.sgml => osp.xml} (67%) rename modules_k/osp/doc/{osp_user.sgml => osp_admin.xml} (100%) rename modules_k/osp/doc/{osp_devel.sgml => osp_devel.xml} (100%) rename modules_k/path/doc/{path.sgml => path.xml} (65%) rename modules_k/path/doc/{path_user.sgml => path_admin.xml} (100%) rename modules_k/pdt/doc/{pdt.sgml => pdt.xml} (69%) rename modules_k/pdt/doc/{pdt_user.sgml => pdt_admin.xml} (99%) rename modules_k/perl/doc/{perl.sgml => perl.xml} (63%) rename modules_k/perl/doc/{perl_user.sgml => perl_admin.xml} (97%) rename modules_k/perl/doc/{perl_faq.sgml => perl_faq.xml} (100%) rename modules_k/perlvdb/doc/{perlvdb.sgml => perlvdb.xml} (68%) rename modules_k/perlvdb/doc/{perlvdb_user.sgml => perlvdb_admin.xml} (100%) rename modules_k/perlvdb/doc/{perlvdb_devel.sgml => perlvdb_devel.xml} (100%) rename modules_k/permissions/doc/{permissions.sgml => permissions.xml} (71%) rename modules_k/permissions/doc/{permissions_user.sgml => permissions_admin.xml} (98%) rename modules_k/pike/doc/{pike.sgml => pike.xml} (62%) rename modules_k/pike/doc/{pike_user.sgml => pike_admin.xml} (100%) rename modules_k/pike/doc/{pike_devel.sgml => pike_devel.xml} (98%) rename modules_k/presence/doc/{presence.sgml => presence.xml} (68%) rename modules_k/presence/doc/{presence_user.sgml => presence_admin.xml} (99%) rename modules_k/presence/doc/{presence_devel.sgml => presence_devel.xml} (98%) rename modules_k/presence_mwi/doc/{presence_mwi.sgml => presence_mwi.xml} (72%) rename modules_k/presence_mwi/doc/{presence_mwi_user.sgml => presence_mwi_admin.xml} (100%) rename modules_k/presence_xml/doc/{presence_xml.sgml => presence_xml.xml} (73%) rename modules_k/presence_xml/doc/{presence_xml_user.sgml => presence_xml_admin.xml} (99%) rename modules_k/presence_xml/doc/{presence_xml_devel.sgml => presence_xml_devel.xml} (100%) rename modules_k/pua/doc/{pua.sgml => pua.xml} (66%) rename modules_k/pua/doc/{pua_user.sgml => pua_admin.xml} (100%) rename modules_k/pua/doc/{pua_devel.sgml => pua_devel.xml} (98%) rename modules_k/pua_bla/doc/{pua_bla.sgml => pua_bla.xml} (76%) rename modules_k/pua_bla/doc/{pua_bla_user.sgml => pua_bla_admin.xml} (96%) rename modules_k/pua_mi/doc/{pua_mi.sgml => pua_mi.xml} (71%) rename modules_k/pua_mi/doc/{pua_mi_user.sgml => pua_mi_admin.xml} (95%) rename modules_k/pua_usrloc/doc/{pua_usrloc.sgml => pua_usrloc.xml} (67%) rename modules_k/pua_usrloc/doc/{pua_usrloc_user.sgml => pua_usrloc_admin.xml} (95%) rename modules_k/pua_xmpp/doc/{pua_xmpp.sgml => pua_xmpp.xml} (75%) rename modules_k/pua_xmpp/doc/{pua_xmpp_user.sgml => pua_xmpp_admin.xml} (95%) rename modules_k/pua_xmpp/doc/{pua_xmpp_devel.sgml => pua_xmpp_devel.xml} (100%) rename modules_k/ratelimit/doc/{ratelimit.sgml => ratelimit.xml} (76%) rename modules_k/ratelimit/doc/{ratelimit_user.sgml => ratelimit_admin.xml} (99%) rename modules_k/registrar/doc/{registrar.sgml => registrar.xml} (67%) rename modules_k/registrar/doc/{registrar_user.sgml => registrar_admin.xml} (99%) rename modules_k/registrar/doc/{registrar_faq.sgml => registrar_faq.xml} (92%) rename modules_k/rls/doc/{rls.sgml => rls.xml} (74%) rename modules_k/rls/doc/{rls_user.sgml => rls_admin.xml} (99%) rename modules_k/rls/doc/{rls_devel.sgml => rls_devel.xml} (100%) rename modules_k/rr/doc/{rr.sgml => rr.xml} (71%) rename modules_k/rr/doc/{rr_user.sgml => rr_admin.xml} (97%) rename modules_k/rr/doc/{rr_devel.sgml => rr_devel.xml} (97%) delete mode 100644 modules_k/seas/doc/seas.sgml rename modules_k/seas/doc/{seas_user.sgml => seas_admin.xml} (99%) rename modules_k/seas/doc/{seas_devel.sgml => seas_devel.xml} (94%) rename modules_k/siptrace/doc/{siptrace.sgml => siptrace.xml} (58%) rename modules_k/siptrace/doc/{siptrace_user.sgml => siptrace_admin.xml} (100%) rename modules_k/sl/doc/{sl.sgml => sl.xml} (65%) rename modules_k/sl/doc/{sl_user.sgml => sl_admin.xml} (100%) rename modules_k/sms/doc/{sms.sgml => sms.xml} (64%) rename modules_k/sms/doc/{sms_user.sgml => sms_admin.xml} (99%) rename modules_k/sms/doc/{sms_devel.sgml => sms_devel.xml} (100%) rename modules_k/snmpstats/doc/{snmpstats.sgml => snmpstats.xml} (66%) rename modules_k/snmpstats/doc/{snmpstats_user.sgml => snmpstats_admin.xml} (99%) rename modules_k/snmpstats/doc/{snmpstats_faq.sgml => snmpstats_faq.xml} (99%) rename modules_k/speeddial/doc/{speeddial.sgml => speeddial.xml} (70%) rename modules_k/speeddial/doc/{speeddial_user.sgml => speeddial_admin.xml} (99%) rename modules_k/sst/doc/{sst.sgml => sst.xml} (64%) rename modules_k/sst/doc/{sst_user.sgml => sst_admin.xml} (99%) rename modules_k/statistics/doc/{statistics.sgml => statistics.xml} (63%) rename modules_k/statistics/doc/{statistics_user.sgml => statistics_admin.xml} (100%) rename modules_k/textops/doc/{textops.sgml => textops.xml} (66%) rename modules_k/textops/doc/{textops_user.sgml => textops_admin.xml} (99%) rename modules_k/tm/doc/{tm.sgml => tm.xml} (71%) rename modules_k/tm/doc/{tm_user.sgml => tm_admin.xml} (99%) rename modules_k/tm/doc/{tm_devel.sgml => tm_devel.xml} (100%) rename modules_k/uac/doc/{uac.sgml => uac.xml} (64%) rename modules_k/uac/doc/{uac_user.sgml => uac_admin.xml} (96%) rename modules_k/uac_redirect/doc/{uac_redirect.sgml => uac_redirect.xml} (64%) rename modules_k/uac_redirect/doc/{uac_redirect_user.sgml => uac_redirect_admin.xml} (100%) rename modules_k/uri/doc/{uri.sgml => uri.xml} (69%) rename modules_k/uri/doc/{uri_user.sgml => uri_admin.xml} (100%) rename modules_k/uri_db/doc/{uri_db.sgml => uri_db.xml} (68%) rename modules_k/uri_db/doc/{uri_db_user.sgml => uri_db_admin.xml} (69%) rename modules_k/uri_radius/doc/{uri_radius.sgml => uri_radius.xml} (64%) rename modules_k/uri_radius/doc/{uri_radius_user.sgml => uri_radius_admin.xml} (99%) rename modules_k/userblacklist/doc/{userblacklist.sgml => userblacklist.xml} (71%) rename modules_k/userblacklist/doc/{userblacklist_user.sgml => userblacklist_admin.xml} (98%) rename modules_k/usrloc/doc/{usrloc.sgml => usrloc.xml} (67%) rename modules_k/usrloc/doc/{usrloc_user.sgml => usrloc_admin.xml} (99%) rename modules_k/usrloc/doc/{usrloc_devel.sgml => usrloc_devel.xml} (99%) rename modules_k/xcap_client/doc/{xcap_client.sgml => xcap_client.xml} (73%) rename modules_k/xcap_client/doc/{xcap_client_user.sgml => xcap_client_admin.xml} (99%) rename modules_k/xcap_client/doc/{xcap_client_devel.sgml => xcap_client_devel.xml} (99%) rename modules_k/xlog/doc/{xlog.sgml => xlog.xml} (71%) rename modules_k/xlog/doc/{xlog_user.sgml => xlog_admin.xml} (94%) rename modules_k/xmpp/doc/{xmpp.sgml => xmpp.xml} (54%) rename modules_k/xmpp/doc/{xmpp_user.sgml => xmpp_admin.xml} (99%) diff --git a/modules_k/acc/README b/modules_k/acc/README index 043776ebb..a582ba872 100644 --- a/modules_k/acc/README +++ b/modules_k/acc/README @@ -3,25 +3,35 @@ Acc Module Jiri Kuthan iptel.org + Bogdan-Andrei Iancu voice-system.ro + Ramona-Elena Modroiu rosdev.ro + Edited by Bogdan-Andrei Iancu + voice-system.ro + + Copyright © 2002, 2003 FhG FOKUS Copyright © 2004, 2006 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -92,45 +102,45 @@ Bogdan-Andrei Iancu 2. Frequently Asked Questions List of Examples - 1-1. early_media example - 1-2. failed_transaction_flag example - 1-3. report_ack example - 1-4. report_cancels example - 1-5. detect_direction example - 1-6. multi_leg_info example - 1-7. log_flag example - 1-8. log_missed_flag example - 1-9. log_level example - 1-10. log_facility example - 1-11. log_extra example - 1-12. radius_config example - 1-13. radius_flag example - 1-14. radius_missed_flag example - 1-15. service_type example - 1-16. radius_extra example - 1-17. db_flag example - 1-18. db_missed_flag example - 1-19. db_table_acc example - 1-20. db_table_missed_calls example - 1-21. db_url example - 1-22. acc_method_column example - 1-23. acc_from_tag_column example - 1-24. acc_to_tag_column example - 1-25. acc_callid_column example - 1-26. acc_sip_code_column example - 1-27. acc_sip_reason_column example - 1-28. acc_time_column example - 1-29. db_extra example - 1-30. diameter_flag example - 1-31. diameter_missed_flag example - 1-32. diameter_client_host example - 1-33. diameter_client_host example - 1-34. diameter_extra example - 1-35. acc_log_request usage - 1-36. acc_db_request usage - 1-37. acc_rad_request usage - 1-38. acc_diam_request usage - __________________________________________________________ + + 1.1. early_media example + 1.2. failed_transaction_flag example + 1.3. report_ack example + 1.4. report_cancels example + 1.5. detect_direction example + 1.6. multi_leg_info example + 1.7. log_flag example + 1.8. log_missed_flag example + 1.9. log_level example + 1.10. log_facility example + 1.11. log_extra example + 1.12. radius_config example + 1.13. radius_flag example + 1.14. radius_missed_flag example + 1.15. service_type example + 1.16. radius_extra example + 1.17. db_flag example + 1.18. db_missed_flag example + 1.19. db_table_acc example + 1.20. db_table_missed_calls example + 1.21. db_url example + 1.22. acc_method_column example + 1.23. acc_from_tag_column example + 1.24. acc_to_tag_column example + 1.25. acc_callid_column example + 1.26. acc_sip_code_column example + 1.27. acc_sip_reason_column example + 1.28. acc_time_column example + 1.29. db_extra example + 1.30. diameter_flag example + 1.31. diameter_missed_flag example + 1.32. diameter_client_host example + 1.33. diameter_client_host example + 1.34. diameter_extra example + 1.35. acc_log_request usage + 1.36. acc_db_request usage + 1.37. acc_rad_request usage + 1.38. acc_diam_request usage Chapter 1. User's Guide @@ -142,23 +152,23 @@ Chapter 1. User's Guide To account a transaction and to choose which set of backends to be used, the script writer just has to set some flags (see the - module parameters section for flag definitions Section 1.5). If - the accouting flag for a specific backend is set, the acc - module will then report on completed transaction. A typical - usage of the module takes no acc-specific script command -- the - functionality binds invisibly through transaction processing. - Script writers just need to mark the transaction for accounting - with proper setflag. Even so, the module allows the script - writter to force accouting in special cases via some script - functions. + module parameters section for flag definitions Section 1.5, + "Exported Parameters"). If the accouting flag for a specific + backend is set, the acc module will then report on completed + transaction. A typical usage of the module takes no + acc-specific script command -- the functionality binds + invisibly through transaction processing. Script writers just + need to mark the transaction for accounting with proper + setflag. Even so, the module allows the script writter to force + accouting in special cases via some script functions. The accouting module will log by default a fixed set of attributes for the transaction - if you customize you accouting by adding more information to be logged, please see the next - chapter about extra accouting - Section 1.2. + chapter about extra accouting - Section 1.2, "Extra + accounting". The fixed minimal accouting information is: - * Request Method name * From header TAG parameter * To header TAG parameter @@ -171,7 +181,6 @@ Chapter 1. User's Guide accounted instead. Note that: - * A single INVITE may produce multiple accounting reports -- that's due to SIP forking feature * All flags related to accouting need to be set in request @@ -211,7 +220,6 @@ Chapter 1. User's Guide specifications were updated in the meantime. Thus, the DIAMETER part in the module is obsolete and needs rework to be usable with opendiameter or other DIAMETER servers. - __________________________________________________________ 1.1.1. General Example @@ -227,7 +235,7 @@ if (uri=~"sip:+40") /* calls to Romania */ { exit; } - if (method=="INVITE" & !check_from()) { + if (method=="INVITE" && !check_from()) { log("from!=digest\n"); sl_send_reply("403","Forbidden"); } @@ -235,7 +243,6 @@ if (uri=~"sip:+40") /* calls to Romania */ { setflag(1); /* set for accounting (the same value as in log_flag!) t_relay(); /* enter stateful mode now */ }; - __________________________________________________________ 1.2. Extra accounting @@ -245,7 +252,6 @@ if (uri=~"sip:+40") /* calls to Romania */ { dynamical selection of extra information to be logged. This allows you to log any pseudo-variable (AVPs, parts of the request, etc). - __________________________________________________________ 1.2.2. Definitions and syntax @@ -254,7 +260,6 @@ if (uri=~"sip:+40") /* calls to Romania */ { log. This information is defined via pseudo-variables and may include headers or AVPs values or other message or system values. The syntax of the parameter is: - * xxx_extra = extra_definition (';'extra_definition)* * extra_definition = log_name '=' pseudo_variable @@ -264,7 +269,6 @@ if (uri=~"sip:+40") /* calls to Romania */ { Via log_name you define how/where the data will be logged. Its meaning depends of the accounting support which is used: - * LOG accounting - log_name will be just printed along with the data in log_name=data format; * DB accounting - log_name will be the name of the DB column @@ -278,14 +282,12 @@ if (uri=~"sip:+40") /* calls to Romania */ { for packing the data into DIAMETER message. The AVP code is given directly as integer, since DIAMETER has no dictionary support yet. IMPORTANT: log_name must be a number. - __________________________________________________________ 1.2.3. How it works Some pseudo variables may return more than one value (like headers or AVPs). In this case, the returned values are embedded in a single string in a comma-separated format. - __________________________________________________________ 1.3. Multi Call-Legs accounting @@ -301,7 +303,6 @@ if (uri=~"sip:+40") /* calls to Romania */ { Call forwarding on server is only one example which shows the necessity of the having an accounting engine with multiple legs support. - __________________________________________________________ 1.3.2. Configuration @@ -323,14 +324,12 @@ if (uri=~"sip:+40") /* calls to Romania */ { By default, the multiple call-legs support is disabled - it can be enabled just be setting the per-leg set of AVPs via the multi_leg_info module parameter. - __________________________________________________________ 1.3.3. Logged data For each call, all the values of the AVP set (which defines a call-leg) will be logged. How the information will be actually logged, depends of the data backend: - * syslog -- all leg-sets will be added to one record string as AVP1=xxx, AVP2=xxxx ,... sets. * database -- each pair will be separately logged (due DB @@ -338,20 +337,18 @@ if (uri=~"sip:+40") /* calls to Romania */ { written, the difference between them being only the fields corresponding to the call-leg info. - Note - - You will need to add in your DB (all acc related tables) the - colums for call-leg info (a column for each AVP for the set). +Note + You will need to add in your DB (all acc related tables) + the colums for call-leg info (a column for each AVP for the + set). * Radius -- all sets will be added to same Radius accounting message as RADIUS AVPs - for each call-leg a set of RADIUS AVPs will be added (corresponding to the per-leg AVP set) - Note - - You will need to add in your dictionaty the RADIUS AVPs used in - call-leg AVP set definition. +Note + You will need to add in your dictionaty the RADIUS AVPs + used in call-leg AVP set definition. * Diameter same as for RADIUS. - __________________________________________________________ 1.4. Dependencies @@ -359,22 +356,18 @@ if (uri=~"sip:+40") /* calls to Romania */ { The module depends on the following modules (in the other words the listed modules must be loaded before this module): - * tm -- Transaction Manager * a database module -- If SQL support is used. * rr -- Record Route, if "detect_direction" module parameter is enabled. - __________________________________________________________ 1.4.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * radiusclient-ng 0.5.0 or higher -- if compiled with RADIUS support. See http://developer.berlios.de/projects/radiusclient-ng/. - __________________________________________________________ 1.5. Exported Parameters @@ -384,9 +377,8 @@ if (uri=~"sip:+40") /* calls to Romania */ { Default value is 0 (no). - Example 1-1. early_media example + Example 1.1. early_media example modparam("acc", "early_media", 1) - __________________________________________________________ 1.5.2. failed_transaction_flag (integer) @@ -395,9 +387,8 @@ modparam("acc", "early_media", 1) Default value is not-set (no flag). - Example 1-2. failed_transaction_flag example + Example 1.2. failed_transaction_flag example modparam("acc", "failed_transaction_flag", 4) - __________________________________________________________ 1.5.3. report_ack (integer) @@ -408,9 +399,8 @@ modparam("acc", "failed_transaction_flag", 4) Default value is 0 (no). - Example 1-3. report_ack example + Example 1.3. report_ack example modparam("acc", "report_ack", 1) - __________________________________________________________ 1.5.4. report_cancels (integer) @@ -420,9 +410,8 @@ modparam("acc", "report_ack", 1) Default value is 0 (no). - Example 1-4. report_cancels example + Example 1.4. report_cancels example modparam("acc", "report_cancels", 1) - __________________________________________________________ 1.5.5. detect_direction (integer) @@ -437,21 +426,20 @@ modparam("acc", "report_cancels", 1) Default value is 0 (disabled). - Example 1-5. detect_direction example + Example 1.5. detect_direction example modparam("acc", "detect_direction", 1) - __________________________________________________________ 1.5.6. multi_leg_info (string) Defines the AVP set to be used in per-call-leg accoutning. See - Section 1.3 for a detailed description of the Multi Call-Legs - accounting. + Section 1.3, "Multi Call-Legs accounting" for a detailed + description of the Multi Call-Legs accounting. If empty, the multi-leg accouting support will be disabled. Default value is 0 (disabled). - Example 1-6. multi_leg_info example + Example 1.6. multi_leg_info example # for syslog-based accouting, use any text you want to be printed modparam("acc", "multi_leg_info", "text1=$avp(src);text2=$avp(dst)") @@ -464,7 +452,6 @@ modparam("acc", "multi_leg_info", # for DIAMETER-based accouting, use the DIAMETER AVP ID (as integer) modparam("acc", "multi_leg_info", "2345=$avp(src);2346=$avp(dst)") - __________________________________________________________ 1.5.7. log_flag (integer) @@ -473,9 +460,8 @@ modparam("acc", "multi_leg_info", Default value is not-set (no flag). - Example 1-7. log_flag example + Example 1.7. log_flag example modparam("acc", "log_flag", 2) - __________________________________________________________ 1.5.8. log_missed_flag (integer) @@ -484,9 +470,8 @@ modparam("acc", "log_flag", 2) Default value is not-set (no flag). - Example 1-8. log_missed_flag example + Example 1.8. log_missed_flag example modparam("acc", "log_missed_flag", 3) - __________________________________________________________ 1.5.9. log_level (integer) @@ -494,9 +479,8 @@ modparam("acc", "log_missed_flag", 3) Default value is L_NOTICE. - Example 1-9. log_level example + Example 1.9. log_level example modparam("acc", "log_level", 2) # Set log_level to 2 - __________________________________________________________ 1.5.10. log_facility (string) @@ -506,9 +490,8 @@ modparam("acc", "log_level", 2) # Set log_level to 2 Default value is LOG_DAEMON. - Example 1-10. log_facility example + Example 1.10. log_facility example modparam("acc", "log_facility", "LOG_DAEMON") - __________________________________________________________ 1.5.11. log_extra (string) @@ -516,9 +499,8 @@ modparam("acc", "log_facility", "LOG_DAEMON") Default value is NULL. - Example 1-11. log_extra example + Example 1.11. log_extra example modparam("acc", "log_extra", "ua=$hdr(User-Agent);uuid=$avp(i:123)") - __________________________________________________________ 1.5.12. radius_config (string) @@ -535,9 +517,8 @@ modparam("acc", "log_extra", "ua=$hdr(User-Agent);uuid=$avp(i:123)") Default value is "/usr/local/etc/radiusclient/radiusclient.conf ". - Example 1-12. radius_config example + Example 1.12. radius_config example modparam("acc", "radius_config", "/etc/radiusclient/radiusclient.conf") - __________________________________________________________ 1.5.13. radius_flag (integer) @@ -546,9 +527,8 @@ modparam("acc", "radius_config", "/etc/radiusclient/radiusclient.conf") Default value is not-set (no flag). - Example 1-13. radius_flag example + Example 1.13. radius_flag example modparam("acc", "radius_flag", 2) - __________________________________________________________ 1.5.14. radius_missed_flag (integer) @@ -557,9 +537,8 @@ modparam("acc", "radius_flag", 2) Default value is not-set (no flag). - Example 1-14. radius_missed_flag example + Example 1.14. radius_missed_flag example modparam("acc", "radius_missed_flag", 3) - __________________________________________________________ 1.5.15. service_type (integer) @@ -567,9 +546,8 @@ modparam("acc", "radius_missed_flag", 3) Default value is 15 (SIP). - Example 1-15. service_type example + Example 1.15. service_type example modparam("acc", "service_type", 16) - __________________________________________________________ 1.5.16. radius_extra (string) @@ -577,9 +555,8 @@ modparam("acc", "service_type", 16) Default value is NULL. - Example 1-16. radius_extra example + Example 1.16. radius_extra example modparam("acc", "radius_extra", "via=$hdr(Via[*]); email=$avp(s:email)") - __________________________________________________________ 1.5.17. db_flag (integer) @@ -588,9 +565,8 @@ modparam("acc", "radius_extra", "via=$hdr(Via[*]); email=$avp(s:email)") Default value is not-set (no flag). - Example 1-17. db_flag example + Example 1.17. db_flag example modparam("acc", "db_flag", 2) - __________________________________________________________ 1.5.18. db_missed_flag (integer) @@ -599,9 +575,8 @@ modparam("acc", "db_flag", 2) Default value is not-set (no flag). - Example 1-18. db_missed_flag example + Example 1.18. db_missed_flag example modparam("acc", "db_missed_flag", 3) - __________________________________________________________ 1.5.19. db_table_acc (string) @@ -610,9 +585,8 @@ modparam("acc", "db_missed_flag", 3) Default value is "acc" - Example 1-19. db_table_acc example + Example 1.19. db_table_acc example modparam("acc", "db_table_acc", "myacc_table") - __________________________________________________________ 1.5.20. db_table_missed_calls (string) @@ -620,9 +594,8 @@ modparam("acc", "db_table_acc", "myacc_table") Default value is "missed_calls" - Example 1-20. db_table_missed_calls example + Example 1.20. db_table_missed_calls example modparam("acc", "db_table_missed_calls", "myMC_table") - __________________________________________________________ 1.5.21. db_url (string) @@ -631,9 +604,8 @@ modparam("acc", "db_table_missed_calls", "myMC_table") Default value is "NULL" (SQL disabled). - Example 1-21. db_url example + Example 1.21. db_url example modparam("acc", "db_url", "mysql://user:password@localhost/openser") - __________________________________________________________ 1.5.22. acc_method_column (string) @@ -642,9 +614,8 @@ modparam("acc", "db_url", "mysql://user:password@localhost/openser") Default value is "method". - Example 1-22. acc_method_column example + Example 1.22. acc_method_column example modparam("acc", "acc_method_column", "method") - __________________________________________________________ 1.5.23. acc_from_tag_column (string) @@ -653,9 +624,8 @@ modparam("acc", "acc_method_column", "method") Default value is "from_tag". - Example 1-23. acc_from_tag_column example + Example 1.23. acc_from_tag_column example modparam("acc", "acc_from_tag_column", "from_tag") - __________________________________________________________ 1.5.24. acc_to_tag_column (string) @@ -664,9 +634,8 @@ modparam("acc", "acc_from_tag_column", "from_tag") Default value is "to_tag". - Example 1-24. acc_to_tag_column example + Example 1.24. acc_to_tag_column example modparam("acc", "acc_to_tag_column", "to_tag") - __________________________________________________________ 1.5.25. acc_callid_column (string) @@ -675,9 +644,8 @@ modparam("acc", "acc_to_tag_column", "to_tag") Default value is "callid". - Example 1-25. acc_callid_column example + Example 1.25. acc_callid_column example modparam("acc", "acc_callid_column", "callid") - __________________________________________________________ 1.5.26. acc_sip_code_column (string) @@ -686,9 +654,8 @@ modparam("acc", "acc_callid_column", "callid") Default value is "sip_code". - Example 1-26. acc_sip_code_column example + Example 1.26. acc_sip_code_column example modparam("acc", "acc_sip_code_column", "sip_code") - __________________________________________________________ 1.5.27. acc_sip_reason_column (string) @@ -697,9 +664,8 @@ modparam("acc", "acc_sip_code_column", "sip_code") Default value is "sip_reason". - Example 1-27. acc_sip_reason_column example + Example 1.27. acc_sip_reason_column example modparam("acc", "acc_sip_reason_column", "sip_reason") - __________________________________________________________ 1.5.28. acc_time_column (string) @@ -708,9 +674,8 @@ modparam("acc", "acc_sip_reason_column", "sip_reason") Default value is "time". - Example 1-28. acc_time_column example + Example 1.28. acc_time_column example modparam("acc", "acc_time_column", "time") - __________________________________________________________ 1.5.29. db_extra (string) @@ -718,10 +683,9 @@ modparam("acc", "acc_time_column", "time") Default value is NULL. - Example 1-29. db_extra example + Example 1.29. db_extra example modparam("acc", "db_extra", "ct=$hdr(Content-type); email=$avp(s:email)" ) - __________________________________________________________ 1.5.30. diameter_flag (integer) @@ -730,9 +694,8 @@ modparam("acc", "db_extra", "ct=$hdr(Content-type); email=$avp(s:email)" Default value is not-set (no flag). - Example 1-30. diameter_flag example + Example 1.30. diameter_flag example modparam("acc", "diameter_flag", 2) - __________________________________________________________ 1.5.31. diameter_missed_flag (integer) @@ -741,9 +704,8 @@ modparam("acc", "diameter_flag", 2) Default value is not-set (no flag). - Example 1-31. diameter_missed_flag example + Example 1.31. diameter_missed_flag example modparam("acc", "diameter_missed_flag", 3) - __________________________________________________________ 1.5.32. diameter_client_host (string) @@ -752,9 +714,8 @@ modparam("acc", "diameter_missed_flag", 3) Default value is "localhost". - Example 1-32. diameter_client_host example + Example 1.32. diameter_client_host example modparam("acc", "diameter_client_host", "3a_server.net") - __________________________________________________________ 1.5.33. diameter_client_port (int) @@ -763,9 +724,8 @@ modparam("acc", "diameter_client_host", "3a_server.net") Default value is 3000. - Example 1-33. diameter_client_host example + Example 1.33. diameter_client_host example modparam("acc", "diameter_client_port", 3000) - __________________________________________________________ 1.5.34. diameter_extra (string) @@ -773,14 +733,13 @@ modparam("acc", "diameter_client_port", 3000) Default value is NULL. - Example 1-34. diameter_extra example + Example 1.34. diameter_extra example modparam("acc", "diameter_extra", "7846=$hdr(Content-type);7847=$avp(s:e mail)") - __________________________________________________________ 1.6. Exported Functions -1.6.1. acc_log_request(comment) +1.6.1. acc_log_request(comment) acc_request reports on a request, for example, it can be used to report on missed calls to off-line users who are replied 404 @@ -789,123 +748,117 @@ mail)") processing. Meaning of the parameters is as follows: - * comment - Comment to be appended. This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-35. acc_log_request usage + Example 1.35. acc_log_request usage ... acc_log_request("Some comment"); ... - __________________________________________________________ -1.6.2. acc_db_request(comment, table) +1.6.2. acc_db_request(comment, table) Like acc_log_request, acc_db_request reports on a request. The report is sent to database at "db_url", in the table referred to in the second action parameter. Meaning of the parameters is as follows: - * comment - Comment to be appended. * table - Database table to be used. This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-36. acc_db_request usage + Example 1.36. acc_db_request usage ... acc_log_request("Some comment", "Some table"); ... - __________________________________________________________ -1.6.3. acc_rad_request(comment) +1.6.3. acc_rad_request(comment) Like acc_log_request, acc_rad_request reports on a request. It reports to radius server as configured in "radius_config". Meaning of the parameters is as follows: - * comment - Comment to be appended. This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-37. acc_rad_request usage + Example 1.37. acc_rad_request usage ... acc_rad_request("Some comment"); ... - __________________________________________________________ -1.6.4. acc_diam_request(comment) +1.6.4. acc_diam_request(comment) Like acc_log_request, acc_diam_request reports on a request. It reports to the configured Diameter server. Meaning of the parameters is as follows: - * comment - Comment to be appended. This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-38. acc_diam_request usage + Example 1.38. acc_diam_request usage ... acc_diam_request("Some comment"); ... - __________________________________________________________ Chapter 2. Frequently Asked Questions - 2.1. What happend with old log_fmt parameter - 2.2. What happend with old multi_leg_enabled parameter - 2.3. What happend with old src_leg_avp_id & dst_leg_avp_id - parameters + 2.1. + + What happend with old log_fmt parameter + + The parameter became obsolete with the restructure of the data + logged by ACC module (refer to the Overview chapter). For + similar behaviour you can use the extra accouting (see the + coresponding chapter). + + 2.2. - 2.4. Where can I find more about OpenSER? - 2.5. Where can I post a question about this module? - 2.6. How can I report a bug? + What happend with old multi_leg_enabled parameter - 2.1. What happend with old log_fmt parameter + The parameter becaome obsolete by the addition of the new + multi_leg_info parameter. The multi-leg accouting is + automatically enabled when multi_leg_info is defined. - The parameter became obsolete with the restructure of the data - logged by ACC module (refer to the Overview chapter). For - similar behaviour you can use the extra accouting (see the - coresponding chapter). + 2.3. - 2.2. What happend with old multi_leg_enabled parameter + What happend with old src_leg_avp_id and dst_leg_avp_id + parameters - The parameter becaome obsolete by the addition of the new - multi_leg_info parameter. The multi-leg accouting is - automatically enabled when multi_leg_info is defined. + The parameter was replaced by the more generic new parameter + multi_leg_info. This allows logging (per-leg) of more + information than just dst and src. - 2.3. What happend with old src_leg_avp_id & dst_leg_avp_id - parameters + 2.4. - The parameter was replaced by the more generic new parameter - multi_leg_info. This allows logging (per-leg) of more - information than just dst and src. + Where can I find more about OpenSER? - 2.4. Where can I find more about OpenSER? + Take a look at http://openser.org/. - Take a look at http://openser.org/. + 2.5. - 2.5. Where can I post a question about this module? + Where can I post a question about this module? - First at all check if your question was already answered on one - of our mailing lists: + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel - * User Mailing List - - http://openser.org/cgi-bin/mailman/listinfo/users - * Developer Mailing List - - http://openser.org/cgi-bin/mailman/listinfo/devel + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . - E-mails regarding any stable OpenSER release should be sent to - and e-mails regarding development versions - should be sent to . + If you want to keep the mail private, send it to + . - If you want to keep the mail private, send it to - . + 2.6. - 2.6. How can I report a bug? + How can I report a bug? - Please follow the guidelines provided at: - http://sourceforge.net/tracker/?group_id=139143. + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/acc/doc/acc.sgml b/modules_k/acc/doc/acc.xml similarity index 75% rename from modules_k/acc/doc/acc.sgml rename to modules_k/acc/doc/acc.xml index 3473681ab..a61382ab8 100644 --- a/modules_k/acc/doc/acc.sgml +++ b/modules_k/acc/doc/acc.xml @@ -1,10 +1,12 @@ - + - + + - + %docentities; ]> @@ -51,8 +53,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/acc/doc/acc_user.sgml b/modules_k/acc/doc/acc_admin.xml similarity index 98% rename from modules_k/acc/doc/acc_user.sgml rename to modules_k/acc/doc/acc_admin.xml index 1f6b6172e..5924f13c2 100644 --- a/modules_k/acc/doc/acc_user.sgml +++ b/modules_k/acc/doc/acc_admin.xml @@ -15,7 +15,7 @@ To account a transaction and to choose which set of backends to be used, the script writer just has to set some flags (see the module - parameters section for flag definitions ). + parameters section for flag definitions ). If the accouting flag for a specific backend is set, the acc module will then report on completed transaction. A typical usage of the module takes no acc-specific script command -- the functionality @@ -28,7 +28,7 @@ The accouting module will log by default a fixed set of attributes for the transaction - if you customize you accouting by adding more information to be logged, please see the next chapter about extra - accouting - . + accouting - . The fixed minimal accouting information is: @@ -136,7 +136,7 @@ if (uri=~"sip:+40") /* calls to Romania */ { exit; } - if (method=="INVITE" & !check_from()) { + if (method=="INVITE" && !check_from()) { log("from!=digest\n"); sl_send_reply("403","Forbidden"); } @@ -163,7 +163,7 @@ if (uri=~"sip:+40") /* calls to Romania */ { Definitions and syntax Selection of extra information is done via - xxx_extra parameters by specifying the names + xxx_extra parameters by specifying the names of additional information you want to log. This information is defined via pseudo-variables and may include headers or AVPs values or other message or system values. The syntax of the parameter is: @@ -193,14 +193,14 @@ if (uri=~"sip:+40") /* calls to Romania */ { DB accounting - log_name will be the name of the DB column where the data will be - stored.IMPORTANT: add in db + stored.IMPORTANT: add in db acc table the columns corresponding to each extra data; RADIUS accounting - log_name will be the AVP name used for packing the data into RADIUS message. The log_name will be translated to AVP number - via the dictionary. IMPORTANT: add in + via the dictionary. IMPORTANT: add in RADIUS dictionary the log_name attribute. DIAMETER accounting - @@ -335,6 +335,7 @@ if (uri=~"sip:+40") /* calls to Romania */ { The following libraries or applications must be installed before running &ser; with this module loaded: + radiusclient-ng 0.5.0 or higher -- @@ -442,7 +443,7 @@ modparam("acc", "detect_direction", 1) <varname>multi_leg_info</varname> (string) Defines the AVP set to be used in per-call-leg accoutning. - See for a + See for a detailed description of the Multi Call-Legs accounting. diff --git a/modules_k/acc/doc/acc_faq.sgml b/modules_k/acc/doc/acc_faq.xml similarity index 96% rename from modules_k/acc/doc/acc_faq.sgml rename to modules_k/acc/doc/acc_faq.xml index 5848b3772..647a25f73 100644 --- a/modules_k/acc/doc/acc_faq.sgml +++ b/modules_k/acc/doc/acc_faq.xml @@ -34,7 +34,8 @@ - What happend with old src_leg_avp_id & dst_leg_avp_id parameters + What happend with old src_leg_avp_id and dst_leg_avp_id + parameters diff --git a/modules_k/alias_db/README b/modules_k/alias_db/README index 39dca07f2..b5d0a0369 100644 --- a/modules_k/alias_db/README +++ b/modules_k/alias_db/README @@ -2,16 +2,18 @@ ALIAS_DB Module Daniel-Constantin Mierla - voice-system.ro - Edited by Daniel-Constantin Mierla Copyright © 2005 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -34,16 +36,18 @@ Daniel-Constantin Mierla 1.4.1. alias_db_lookup(table_name) + 2. Frequently Asked Questions + List of Examples - 1-1. Set db_url parameter - 1-2. Set user_column parameter - 1-3. Set domain_column parameter - 1-4. Set alias_user_column parameter - 1-5. Set alias_domain_column parameter - 1-6. Set use_domain parameter - 1-7. Set domain_prefix parameter - 1-8. alias_db_lookup() usage - __________________________________________________________ + + 1.1. Set db_url parameter + 1.2. Set user_column parameter + 1.3. Set domain_column parameter + 1.4. Set alias_user_column parameter + 1.5. Set alias_domain_column parameter + 1.6. Set use_domain parameter + 1.7. Set domain_prefix parameter + 1.8. alias_db_lookup() usage Chapter 1. User's Guide @@ -58,24 +62,19 @@ Chapter 1. User's Guide the provisioning is easier. With very fast databases like MySQL the speed penalty can be lowered. Also, the search can be performed on different tables in the same script. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * database module (mysql, dbtext, ...). - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -85,11 +84,10 @@ Chapter 1. User's Guide Default value is "DEFAULT_RODB_URL". - Example 1-1. Set db_url parameter + Example 1.1. Set db_url parameter ... modparam("alias_db", "db_url", "mysql://user:passwd@localhost/openser") ... - __________________________________________________________ 1.3.2. user_column (str) @@ -97,11 +95,10 @@ modparam("alias_db", "db_url", "mysql://user:passwd@localhost/openser") Default value is "username". - Example 1-2. Set user_column parameter + Example 1.2. Set user_column parameter ... modparam("alias_db", "user_column", "susername") ... - __________________________________________________________ 1.3.3. domain_column (str) @@ -109,11 +106,10 @@ modparam("alias_db", "user_column", "susername") Default value is "domain". - Example 1-3. Set domain_column parameter + Example 1.3. Set domain_column parameter ... modparam("alias_db", "domain_column", "sdomain") ... - __________________________________________________________ 1.3.4. alias_user_column (str) @@ -121,11 +117,10 @@ modparam("alias_db", "domain_column", "sdomain") Default value is "alias_username". - Example 1-4. Set alias_user_column parameter + Example 1.4. Set alias_user_column parameter ... modparam("alias_db", "alias_user_column", "auser") ... - __________________________________________________________ 1.3.5. alias_domain_column (str) @@ -133,11 +128,10 @@ modparam("alias_db", "alias_user_column", "auser") Default value is "alias_domain". - Example 1-5. Set alias_domain_column parameter + Example 1.5. Set alias_domain_column parameter ... modparam("alias_db", "alias_domain_column", "adomain") ... - __________________________________________________________ 1.3.6. use_domain (int) @@ -147,11 +141,10 @@ modparam("alias_db", "alias_domain_column", "adomain") Default value is "o". - Example 1-6. Set use_domain parameter + Example 1.6. Set use_domain parameter ... modparam("alias_db", "use_domain", 1) ... - __________________________________________________________ 1.3.7. domain_prefix (str) @@ -160,15 +153,14 @@ modparam("alias_db", "use_domain", 1) Default value is "NULL". - Example 1-7. Set domain_prefix parameter + Example 1.7. Set domain_prefix parameter ... modparam("alias_db", "domain_prefix", "sip.") ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. alias_db_lookup(table_name) +1.4.1. alias_db_lookup(table_name) The function takes the R-URI and search to see whether it is an alias or not. If it is an alias for a local user, the R-URI is @@ -178,13 +170,45 @@ modparam("alias_db", "domain_prefix", "sip.") by user's SIP uri. Meaning of the parameters is as follows: - * table_name - the name of the table where to search for alias. This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-8. alias_db_lookup() usage + Example 1.8. alias_db_lookup() usage ... alias_db_lookup("dbaliases"); ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/alias_db/doc/alias_db.sgml b/modules_k/alias_db/doc/alias_db.xml similarity index 58% rename from modules_k/alias_db/doc/alias_db.sgml rename to modules_k/alias_db/doc/alias_db.xml index f260382e9..f02b177e5 100644 --- a/modules_k/alias_db/doc/alias_db.sgml +++ b/modules_k/alias_db/doc/alias_db.xml @@ -1,14 +1,14 @@ - + - + + - - - + %docentities; ]> @@ -21,16 +21,15 @@ Daniel-Constantin Mierla - &voicesystem;
- &developeremail; + miconda@gmail.com
Daniel-Constantin Mierla
- &developeremail; + miconda@gmail.com
@@ -40,8 +39,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/alias_db/doc/alias_db_user.sgml b/modules_k/alias_db/doc/alias_db_admin.xml similarity index 100% rename from modules_k/alias_db/doc/alias_db_user.sgml rename to modules_k/alias_db/doc/alias_db_admin.xml diff --git a/modules_k/auth/README b/modules_k/auth/README index 3cc5bbdb4..870019a1c 100644 --- a/modules_k/auth/README +++ b/modules_k/auth/README @@ -3,25 +3,34 @@ Auth Module Jan Janak FhG Fokus + Juha Heinanen Song Networks + Bogdan-Andrei Iancu voice-system.ro + Edited by Jan Janak + + Copyright © 2002, 2003 FhG FOKUS Copyright © 2005 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -53,25 +62,27 @@ Jan Janak 1.4.7. pv_www_authorize(realm) 1.4.8. pv_proxy_authorize(realm) + 2. Frequently Asked Questions + List of Examples - 1-1. secret parameter example - 1-2. nonce_expire parameter example - 1-3. rpid_prefix parameter example - 1-4. rpid_suffix parameter example - 1-5. realm_prefix parameter example - 1-6. rpid_avp parameter example - 1-7. username_spec parameter usage - 1-8. password_spec parameter usage - 1-9. calculate_ha1 parameter usage - 1-10. www_challenge usage - 1-11. proxy_challenge usage - 1-12. consume_credentials example - 1-13. is_rpid_user_e164 usage - 1-14. append_rpid_hf usage - 1-15. append_rpid_hf(prefix, suffix) usage - 1-16. pv_www_authorize usage - 1-17. pv_proxy_authorize usage - __________________________________________________________ + + 1.1. secret parameter example + 1.2. nonce_expire parameter example + 1.3. rpid_prefix parameter example + 1.4. rpid_suffix parameter example + 1.5. realm_prefix parameter example + 1.6. rpid_avp parameter example + 1.7. username_spec parameter usage + 1.8. password_spec parameter usage + 1.9. calculate_ha1 parameter usage + 1.10. www_challenge usage + 1.11. proxy_challenge usage + 1.12. consume_credentials example + 1.13. is_rpid_user_e164 usage + 1.14. append_rpid_hf usage + 1.15. append_rpid_hf(prefix, suffix) usage + 1.16. pv_www_authorize usage + 1.17. pv_proxy_authorize usage Chapter 1. User's Guide @@ -81,7 +92,6 @@ Chapter 1. User's Guide by other authentication related modules. Also, it can perform authentication taking username and password from pseudo-variables. - __________________________________________________________ 1.2. Dependencies @@ -89,17 +99,13 @@ Chapter 1. User's Guide The module depends on the following modules (in the other words the listed modules must be loaded before this module): - * sl -- Stateless replies - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * none - __________________________________________________________ 1.3. Exported Parameters @@ -118,9 +124,8 @@ Chapter 1. User's Guide to stay with the default. Any clients should send the reply to the server that issued the request. - Example 1-1. secret parameter example + Example 1.1. secret parameter example modparam("auth", "secret", "johndoessecretphrase") - __________________________________________________________ 1.3.2. nonce_expire (integer) @@ -135,9 +140,8 @@ modparam("auth", "secret", "johndoessecretphrase") The value is in seconds and default value is 300 seconds. - Example 1-2. nonce_expire parameter example + Example 1.2. nonce_expire parameter example modparam("auth", "nonce_expire", 600) # Set nonce_expire to 600s - __________________________________________________________ 1.3.3. rpid_prefix (string) @@ -146,9 +150,8 @@ modparam("auth", "nonce_expire", 600) # Set nonce_expire to 600s Default value is "". - Example 1-3. rpid_prefix parameter example + Example 1.3. rpid_prefix parameter example modparam("auth", "rpid_prefix", "Whatever <") - __________________________________________________________ 1.3.4. rpid_suffix (string) @@ -158,9 +161,8 @@ modparam("auth", "rpid_prefix", "Whatever <") Default value is ";party=calling;id-type=subscriber;screen=yes". - Example 1-4. rpid_suffix parameter example + Example 1.4. rpid_suffix parameter example modparam("auth", "rpid_suffix", "@1.2.3.4>") - __________________________________________________________ 1.3.5. realm_prefix (string) @@ -174,9 +176,8 @@ modparam("auth", "rpid_suffix", "@1.2.3.4>") Default value is empty string. - Example 1-5. realm_prefix parameter example + Example 1.5. realm_prefix parameter example modparam("auth", "realm_prefix", "sip.") - __________________________________________________________ 1.3.6. rpid_avp (string) @@ -190,9 +191,8 @@ modparam("auth", "realm_prefix", "sip.") Default value is "$avp(s:rpid)". - Example 1-6. rpid_avp parameter example + Example 1.6. rpid_avp parameter example modparam("auth", "rpid_avp", "$avp(i:13)") - __________________________________________________________ 1.3.7. username_spec (string) @@ -200,9 +200,8 @@ modparam("auth", "rpid_avp", "$avp(i:13)") Default value is "NULL". - Example 1-7. username_spec parameter usage + Example 1.7. username_spec parameter usage modparam("auth", "username_spec", "$var(username)") - __________________________________________________________ 1.3.8. password_spec (string) @@ -210,9 +209,8 @@ modparam("auth", "username_spec", "$var(username)") Default value is "NULL". - Example 1-8. password_spec parameter usage + Example 1.8. password_spec parameter usage modparam("auth", "password_spec", "$avp(s:password)") - __________________________________________________________ 1.3.9. calculate_ha1 (integer) @@ -229,13 +227,12 @@ modparam("auth", "password_spec", "$avp(s:password)") Default value of this parameter is 0. - Example 1-9. calculate_ha1 parameter usage + Example 1.9. calculate_ha1 parameter usage modparam("auth", "calculate_ha1", 1) - __________________________________________________________ 1.4. Exported Functions -1.4.1. www_challenge(realm, qop) +1.4.1. www_challenge(realm, qop) The function challenges a user agent. It will generate a WWW-Authorize header field containing a digest challenge, it @@ -246,7 +243,6 @@ modparam("auth", "calculate_ha1", 1) regarding digest authentication see RFC2617. Meaning of the parameters is as follows: - * realm - Realm is a opaque string that the user agent should present to the user so he can decide what username and password to use. Usually this is domain of the host the @@ -274,15 +270,14 @@ modparam("auth", "calculate_ha1", 1) This function can be used from REQUEST_ROUTE. - Example 1-10. www_challenge usage + Example 1.10. www_challenge usage ... if (www_authorize("siphub.net", "subscriber")) { www_challenge("siphub.net", "1"); }; ... - __________________________________________________________ -1.4.2. proxy_challenge(realm, qop) +1.4.2. proxy_challenge(realm, qop) The function challenges a user agent. It will generate a Proxy-Authorize header field containing a digest challenge, it @@ -293,7 +288,6 @@ if (www_authorize("siphub.net", "subscriber")) { regarding digest authentication see RFC2617. Meaning of the parameters is as follows: - * realm - Realm is a opaque string that the user agent should present to the user so he can decide what username and password to use. Usually this is domain of the host the @@ -319,15 +313,14 @@ if (www_authorize("siphub.net", "subscriber")) { This function can be used from REQUEST_ROUTE. - Example 1-11. proxy_challenge usage + Example 1.11. proxy_challenge usage ... if (!proxy_authorize("", "subscriber)) { proxy_challenge("", "1"); # Realm will be autogenerated }; ... - __________________________________________________________ -1.4.3. consume_credentials() +1.4.3. consume_credentials() This function removes previously authorized credentials from the message being processed by the server. That means that the @@ -339,15 +332,14 @@ if (!proxy_authorize("", "subscriber)) { This function can be used from REQUEST_ROUTE. - Example 1-12. consume_credentials example + Example 1.12. consume_credentials example ... if (www_authorize("", "subscriber)) { consume_credentials(); }; ... - __________________________________________________________ -1.4.4. is_rpid_user_e164() +1.4.4. is_rpid_user_e164() The function checks if the SIP URI received from the database or radius server and will potentially be used in @@ -358,15 +350,14 @@ if (www_authorize("", "subscriber)) { This function can be used from REQUEST_ROUTE. - Example 1-13. is_rpid_user_e164 usage + Example 1.13. is_rpid_user_e164 usage ... if (is_rpid_user_e164()) { # do something here }; ... - __________________________________________________________ -1.4.5. append_rpid_hf() +1.4.5. append_rpid_hf() Appends to the message a Remote-Party-ID header that contains header 'Remote-Party-ID: ' followed by the saved value of the @@ -377,22 +368,20 @@ if (is_rpid_user_e164()) { This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-14. append_rpid_hf usage + Example 1.14. append_rpid_hf usage ... append_rpid_hf(); # Append Remote-Party-ID header field ... - __________________________________________________________ -1.4.6. append_rpid_hf(prefix, suffix) +1.4.6. append_rpid_hf(prefix, suffix) - This function is the same as Section 1.4.5. The only difference - is that it accepts two parameters--prefix and suffix to be - added to Remote-Party-ID header field. This function ignores - rpid_prefix and rpid_suffix parameters, instead of that allows - to set them in every call. + This function is the same as Section 1.4.5, " + append_rpid_hf()". The only difference is that it accepts two + parameters--prefix and suffix to be added to Remote-Party-ID + header field. This function ignores rpid_prefix and rpid_suffix + parameters, instead of that allows to set them in every call. Meaning of the parameters is as follows: - * prefix - Prefix of the Remote-Party-ID URI. The string will be added at the begining of body of the header field, just before the URI. @@ -403,14 +392,13 @@ append_rpid_hf(); # Append Remote-Party-ID header field This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-15. append_rpid_hf(prefix, suffix) usage + Example 1.15. append_rpid_hf(prefix, suffix) usage ... # Append Remote-Party-ID header field append_rpid_hf("", ";party=calling;id-type=subscriber;screen=yes"); ... - __________________________________________________________ -1.4.7. pv_www_authorize(realm) +1.4.7. pv_www_authorize(realm) The function verifies credentials according to RFC2617. If the credentials are verified successfully then the function will @@ -421,7 +409,6 @@ append_rpid_hf("", ";party=calling;id-type=subscriber;screen=yes"); which will challenge the user again. Negative codes may be interpreted as follows: - * -5 (generic error) - some generic error occurred and no reply was sent out; * -4 (no credentials) - credentials were not found in @@ -431,7 +418,6 @@ append_rpid_hf("", ";party=calling;id-type=subscriber;screen=yes"); * -1 (invalid user) - authentication user does not exist. Meaning of the parameters is as follows: - * realm - Realm is a opaque string that the user agent should present to the user so he can decide what username and password to use. Usually this is domain of the host the @@ -445,7 +431,7 @@ append_rpid_hf("", ";party=calling;id-type=subscriber;screen=yes"); This function can be used from REQUEST_ROUTE. - Example 1-16. pv_www_authorize usage + Example 1.16. pv_www_authorize usage ... $var(username)="abc"; $avp(s:password)="xyz"; @@ -453,9 +439,8 @@ if (pv_www_authorize("openser.org")) { www_challenge("openser.org", "1"); }; ... - __________________________________________________________ -1.4.8. pv_proxy_authorize(realm) +1.4.8. pv_proxy_authorize(realm) The function verifies credentials according to RFC2617. If the credentials are verified successfully then the function will @@ -467,7 +452,6 @@ if (pv_www_authorize("openser.org")) { negative return codes, see the above function. Meaning of the parameters is as follows: - * realm - Realm is a opaque string that the user agent should present to the user so he can decide what username and password to use. Usually this is domain of the host the @@ -479,7 +463,7 @@ if (pv_www_authorize("openser.org")) { This function can be used from REQUEST_ROUTE. - Example 1-17. pv_proxy_authorize usage + Example 1.17. pv_proxy_authorize usage ... $var(username)="abc"; $avp(s:password)="xyz"; @@ -487,3 +471,36 @@ if (!pv_proxy_authorize("")) { proxy_challenge("", "1"); # Realm will be autogenerated }; ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/auth/doc/auth.sgml b/modules_k/auth/doc/auth.xml similarity index 72% rename from modules_k/auth/doc/auth.sgml rename to modules_k/auth/doc/auth.xml index 2e4ab6e46..b91ffaf53 100644 --- a/modules_k/auth/doc/auth.sgml +++ b/modules_k/auth/doc/auth.xml @@ -1,10 +1,12 @@ - + - + + - + %docentities; ]> @@ -49,8 +51,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/auth/doc/auth_user.sgml b/modules_k/auth/doc/auth_admin.xml similarity index 99% rename from modules_k/auth/doc/auth_user.sgml rename to modules_k/auth/doc/auth_admin.xml index c31a16364..4622f4549 100644 --- a/modules_k/auth/doc/auth_user.sgml +++ b/modules_k/auth/doc/auth_admin.xml @@ -32,6 +32,7 @@ The following libraries or applications must be installed before running &ser; with this module loaded: + none @@ -99,7 +100,7 @@ modparam("auth", "nonce_expire", 600) # Set nonce_expire to 600s rpid_prefix parameter example -modparam("auth", "rpid_prefix", "Whatever <") +modparam("auth", "rpid_prefix", "Whatever <") @@ -201,6 +202,7 @@ modparam("auth", "password_spec", "$avp(s:password)") This parameter tells the server whether it should expect plaintext passwords in the pseudo-variable or a pre-calculated HA1 string. + If the parameter is set to 1 then the server will assume that the password_spec pseudo-variable contains plaintext passwords @@ -429,7 +431,7 @@ append_rpid_hf(); # Append Remote-Party-ID header field This function is the same as - . The only difference is + . The only difference is that it accepts two parameters--prefix and suffix to be added to Remote-Party-ID header field. This function ignores rpid_prefix and rpid_suffix parameters, instead of that allows to set them in every diff --git a/modules_k/auth_db/README b/modules_k/auth_db/README index 34912808b..7e0b2c10b 100644 --- a/modules_k/auth_db/README +++ b/modules_k/auth_db/README @@ -3,23 +3,33 @@ Auth_db Module Jan Janak FhG Fokus + Jakob Schlyter + + Bogdan-Andrei Iancu voice-system.ro + Edited by Jan Janak + + Copyright © 2002, 2003 FhG FOKUS Copyright © 2005 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -44,18 +54,20 @@ Jan Janak 1.4.1. www_authorize(realm, table) 1.4.2. proxy_authorize(realm, table) + 2. Frequently Asked Questions + List of Examples - 1-1. db_url parameter usage - 1-2. user_column parameter usage - 1-3. domain_column parameter usage - 1-4. password_column parameter usage - 1-5. password_column_2 parameter usage - 1-6. calculate_ha1 parameter usage - 1-7. use_domain parameter usage - 1-8. load_credentials parameter usage - 1-9. www_authorize usage - 1-10. proxy_authorize usage - __________________________________________________________ + + 1.1. db_url parameter usage + 1.2. user_column parameter usage + 1.3. domain_column parameter usage + 1.4. password_column parameter usage + 1.5. password_column_2 parameter usage + 1.6. calculate_ha1 parameter usage + 1.7. use_domain parameter usage + 1.8. load_credentials parameter usage + 1.9. www_authorize usage + 1.10. proxy_authorize usage Chapter 1. User's Guide @@ -68,7 +80,6 @@ Chapter 1. User's Guide want to use database to store authentication information like subscriber usernames and passwords. If you want to use radius authentication, then use auth_radius instead. - __________________________________________________________ 1.2. Dependencies @@ -76,19 +87,15 @@ Chapter 1. User's Guide The module depends on the following modules (in the other words the listed modules must be loaded before this module): - * auth -- Generic authentication functions * database -- Any database module (currently mysql, postgres, dbtext) - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * none - __________________________________________________________ 1.3. Exported Parameters @@ -104,10 +111,9 @@ Chapter 1. User's Guide Default value is "mysql://openserro:openserro@localhost/openser". - Example 1-1. db_url parameter usage + Example 1.1. db_url parameter usage modparam("auth_db", "db_url", "dbdriver://username:password@dbhost/dbnam e") - __________________________________________________________ 1.3.2. user_column (string) @@ -117,9 +123,8 @@ e") Default value is "username". - Example 1-2. user_column parameter usage + Example 1.2. user_column parameter usage modparam("auth_db", "user_column", "user") - __________________________________________________________ 1.3.3. domain_column (string) @@ -129,9 +134,8 @@ modparam("auth_db", "user_column", "user") Default value is "domain". - Example 1-3. domain_column parameter usage + Example 1.3. domain_column parameter usage modparam("auth_db", "domain_column", "domain") - __________________________________________________________ 1.3.4. password_column (string) @@ -144,9 +148,8 @@ modparam("auth_db", "domain_column", "domain") Default value is "ha1". - Example 1-4. password_column parameter usage + Example 1.4. password_column parameter usage modparam("auth_db", "password_column", "password") - __________________________________________________________ 1.3.5. password_column_2 (string) @@ -158,9 +161,8 @@ modparam("auth_db", "password_column", "password") Default value of the parameter is ha1b. - Example 1-5. password_column_2 parameter usage + Example 1.5. password_column_2 parameter usage modparam("auth_db", "password_column_2", "ha1_2") - __________________________________________________________ 1.3.6. calculate_ha1 (integer) @@ -191,9 +193,8 @@ modparam("auth_db", "password_column_2", "ha1_2") Default value of this parameter is 0. - Example 1-6. calculate_ha1 parameter usage + Example 1.6. calculate_ha1 parameter usage modparam("auth_db", "calculate_ha1", 1) - __________________________________________________________ 1.3.7. use_domain (integer) @@ -207,9 +208,8 @@ modparam("auth_db", "calculate_ha1", 1) Default value is "0 (false)". - Example 1-7. use_domain parameter usage + Example 1.7. use_domain parameter usage modparam("auth_db", "use_domain", 1) - __________________________________________________________ 1.3.8. load_credentials (string) @@ -220,7 +220,6 @@ modparam("auth_db", "use_domain", 1) name as the column name. Parameter syntax: - * load_credentials = credential (';' credential)* * credential = (avp_specification '=' column_name) | (column_name) @@ -229,15 +228,14 @@ modparam("auth_db", "use_domain", 1) Default value of this parameter is "rpid". - Example 1-8. load_credentials parameter usage + Example 1.8. load_credentials parameter usage # load rpid column into $avp(i:13) and email_address column # into $avp(s:email_address) modparam("auth_db", "load_credentials", "$avp(i:13)=rpid;email_address") - __________________________________________________________ 1.4. Exported Functions -1.4.1. www_authorize(realm, table) +1.4.1. www_authorize(realm, table) The function verifies credentials according to RFC2617. If the credentials are verified successfully then the function will @@ -248,7 +246,6 @@ modparam("auth_db", "load_credentials", "$avp(i:13)=rpid;email_address") which will challenge the user again. Negative codes may be interpreted as follows: - * -5 (generic error) - some generic error occurred and no reply was sent out; * -4 (no credentials) - credentials were not found in @@ -258,7 +255,6 @@ modparam("auth_db", "load_credentials", "$avp(i:13)=rpid;email_address") * -1 (invalid user) - authentication user does not exist. Meaning of the parameters is as follows: - * realm - Realm is a opaque string that the user agent should present to the user so he can decide what username and password to use. Usually this is domain of the host the @@ -274,15 +270,14 @@ modparam("auth_db", "load_credentials", "$avp(i:13)=rpid;email_address") This function can be used from REQUEST_ROUTE. - Example 1-9. www_authorize usage + Example 1.9. www_authorize usage ... if (www_authorize("siphub.net", "subscriber")) { www_challenge("siphub.net", "1"); }; ... - __________________________________________________________ -1.4.2. proxy_authorize(realm, table) +1.4.2. proxy_authorize(realm, table) The function verifies credentials according to RFC2617. If the credentials are verified successfully then the function will @@ -293,7 +288,6 @@ if (www_authorize("siphub.net", "subscriber")) { which will challenge the user again. Negative codes may be interpreted as follows: - * -5 (generic error) - some generic error occurred and no reply was sent out; * -4 (no credentials) - credentials were not found in @@ -303,7 +297,6 @@ if (www_authorize("siphub.net", "subscriber")) { * -1 (invalid user) - authentication user does not exist. Meaning of the parameters is as follows: - * realm - Realm is a opaque string that the user agent should present to the user so he can decide what username and password to use. Usually this is domain of the host the @@ -317,9 +310,42 @@ if (www_authorize("siphub.net", "subscriber")) { This function can be used from REQUEST_ROUTE. - Example 1-10. proxy_authorize usage + Example 1.10. proxy_authorize usage ... if (!proxy_authorize("", "subscriber)) { proxy_challenge("", "1"); # Realm will be autogenerated }; ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/auth_db/doc/auth_db.sgml b/modules_k/auth_db/doc/auth_db.xml similarity index 70% rename from modules_k/auth_db/doc/auth_db.sgml rename to modules_k/auth_db/doc/auth_db.xml index e97268853..5f2139cb9 100644 --- a/modules_k/auth_db/doc/auth_db.sgml +++ b/modules_k/auth_db/doc/auth_db.xml @@ -1,10 +1,12 @@ - + - + + - + %docentities; ]> @@ -47,8 +49,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/auth_db/doc/auth_db_user.sgml b/modules_k/auth_db/doc/auth_db_admin.xml similarity index 93% rename from modules_k/auth_db/doc/auth_db_user.sgml rename to modules_k/auth_db/doc/auth_db_admin.xml index 6c9920bcb..e6a5fed90 100644 --- a/modules_k/auth_db/doc/auth_db_user.sgml +++ b/modules_k/auth_db/doc/auth_db_admin.xml @@ -42,6 +42,7 @@ The following libraries or applications must be installed before running &ser; with this module loaded: + none @@ -59,13 +60,14 @@ This is URL of the database to be used. Value of the parameter depends on the database module used. For example for mysql and postgres modules this is something like mysql://username:password@host:port/database. - For dbtext module (which stores data in plaintext files) it is directory - in which the database resides. + For dbtext module (which stores data in plaintext files) it is + directory in which the database resides. Default value is &defaultrodb;. + <varname>db_url</varname> parameter usage @@ -154,26 +156,32 @@ modparam("auth_db", "password_column_2", "ha1_2") This parameter tells the server whether it should use plaintext passwords or a pre-calculated HA1 string for authentification. + - If the parameter is set to 1 and the username parameter of credentials contains - also @domain (some user agents append the domain to the username - parameter), then the server will use the HA1 values from the column specified in the - password_column_2 parameter. If the username parameter doesn't contain - a domain, the server will use the HA1 values from the column given in the - password_columnparameter. + If the parameter is set to 1 and the username parameter of credentials + contains also @domain (some user agents append the + domain to the username parameter), then the server will use the HA1 + values from the column specified in the + password_column_2 parameter. If the username parameter + doesn't contain a domain, the server will use the HA1 values from the + column given in the password_columnparameter. + - If the parameter is set to 0 then the HA1 value will be calculated from the column - specified in the password_column parameter. + If the parameter is set to 0 then the HA1 value will be calculated + from the column specified in the password_column + parameter. - The password_column_2column contain also HA1 strings but they - should be calculated including the domain in the username parameter (as opposed to - password_column which (when containing HA1 strings) should always contains HA1 - strings calculated without domain in username. + The password_column_2column contain also HA1 strings + but they should be calculated including the domain in the username + parameter (as opposed to password_column which (when containing HA1 + strings) should always contains HA1 strings calculated without domain + in username. - This ensures that the authentication will always work when using pre-calculated - HA1 strings, not depending on the presence of the domain in username. + This ensures that the authentication will always work when using + pre-calculated HA1 strings, not depending on the presence of the + domain in username. Default value of this parameter is 0. diff --git a/modules_k/auth_diameter/README b/modules_k/auth_diameter/README index e09b29cb6..916c93d09 100644 --- a/modules_k/auth_diameter/README +++ b/modules_k/auth_diameter/README @@ -9,9 +9,13 @@ Edited by Elena-Ramona Modroiu Copyright © 2003, 2004 FhG FOKUS + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -32,17 +36,19 @@ Elena-Ramona Modroiu 1.4.2. diameter_proxy_authorize(realm) 1.4.3. diameter_is_user_in(who, group) - 1.5. Installation & Running + 1.5. Installation and Running + + 2. Frequently Asked Questions List of Examples - 1-1. Digest Authentication - 1-2. Set diameter_client_host parameter - 1-3. Set diameter_client_port parameter - 1-4. Set use_domain parameter - 1-5. diameter_www_authorize usage - 1-6. diameter_proxy_authorize usage - 1-7. diameter_is_user_in usage - __________________________________________________________ + + 1.1. Digest Authentication + 1.2. Set diameter_client_host parameter + 1.3. Set diameter_client_port parameter + 1.4. Set use_domain parameter + 1.5. diameter_www_authorize usage + 1.6. diameter_proxy_authorize usage + 1.7. diameter_is_user_in usage Chapter 1. User's Guide @@ -61,7 +67,7 @@ Chapter 1. User's Guide The digest authentication mechanism is presented in next figure. - Example 1-1. Digest Authentication + Example 1.1. Digest Authentication ... a) First phase of Digest Authentication for SIP: @@ -89,24 +95,19 @@ Chapter 1. User's Guide Result-Code=2001 ... - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * sl - used to send stateless replies. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -116,11 +117,10 @@ Chapter 1. User's Guide Default value is "localhost". - Example 1-2. Set diameter_client_host parameter + Example 1.2. Set diameter_client_host parameter ... modparam("auth_diameter", "diameter_client_host", "10.10.10.10") ... - __________________________________________________________ 1.3.2. diameter_client_port (int) @@ -128,11 +128,10 @@ modparam("auth_diameter", "diameter_client_host", "10.10.10.10") Default value is "3000". - Example 1-3. Set diameter_client_port parameter + Example 1.3. Set diameter_client_port parameter ... modparam("auth_diameter", "diameter_client_port", 3000) ... - __________________________________________________________ 1.3.3. use_domain (int) @@ -141,15 +140,14 @@ modparam("auth_diameter", "diameter_client_port", 3000) Default value is "0 (0==false and 1==true )". - Example 1-4. Set use_domain parameter + Example 1.4. Set use_domain parameter ... modparam("auth_diameter", "use_domain", 1) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. diameter_www_authorize(realm) +1.4.1. diameter_www_authorize(realm) SIP Server checks for authorization having a DIAMETER server in backend. If no credentials are provided inside the SIP request @@ -158,28 +156,25 @@ modparam("auth_diameter", "use_domain", 1) back. Negative codes may be interpreted as follows: - * -5 (generic error) - some generic error occurred and no reply was sent out; * -3 (stale nonce) - stale nonce; Meaning of the parameters is as follows: - * realm - the realm to be use for authentication and authorization. The string may contain pseudo variables. This function can be used from REQUEST_ROUTE. - Example 1-5. diameter_www_authorize usage + Example 1.5. diameter_www_authorize usage ... if(!diameter_www_authorize("siphub.net")) { /* user is not authorized */ exit; }; ... - __________________________________________________________ -1.4.2. diameter_proxy_authorize(realm) +1.4.2. diameter_proxy_authorize(realm) SIP Proxy checks for authorization having a DIAMETER server in backend. If no credentials are provided inside the SIP request @@ -189,27 +184,24 @@ if(!diameter_www_authorize("siphub.net")) function. Meaning of the parameters is as follows: - * realm - the realm to be use for authentication and authorization. The string may contain pseudo variables. This function can be used from REQUEST_ROUTE. - Example 1-6. diameter_proxy_authorize usage + Example 1.6. diameter_proxy_authorize usage ... if(!diameter_proxy_authorize("siphub.net")) { /* user is not authorized */ exit; }; ... - __________________________________________________________ -1.4.3. diameter_is_user_in(who, group) +1.4.3. diameter_is_user_in(who, group) The method performs group membership checking with DISC. Meaning of the parameters is as follows: - * who - what header to be used to get the SIP URI that is wanted to be checked being member in a certain group. It can be: "Request-URI", "From", "To" or "Credentials". @@ -218,15 +210,47 @@ if(!diameter_proxy_authorize("siphub.net")) This function can be used from REQUEST_ROUTE. - Example 1-7. diameter_is_user_in usage + Example 1.7. diameter_is_user_in usage ... if(!diameter_is_user_in("From", "voicemail")) { /* user is not authorized */ exit; }; ... - __________________________________________________________ -1.5. Installation & Running +1.5. Installation and Running Notes about installation and running. + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/auth_diameter/doc/auth_diameter.sgml b/modules_k/auth_diameter/doc/auth_diameter.xml similarity index 65% rename from modules_k/auth_diameter/doc/auth_diameter.sgml rename to modules_k/auth_diameter/doc/auth_diameter.xml index ec0a34d0e..a78870cb3 100644 --- a/modules_k/auth_diameter/doc/auth_diameter.sgml +++ b/modules_k/auth_diameter/doc/auth_diameter.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -38,8 +40,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/auth_diameter/doc/auth_diameter_user.sgml b/modules_k/auth_diameter/doc/auth_diameter_admin.xml similarity index 99% rename from modules_k/auth_diameter/doc/auth_diameter_user.sgml rename to modules_k/auth_diameter/doc/auth_diameter_admin.xml index a79442d32..f60edd86c 100644 --- a/modules_k/auth_diameter/doc/auth_diameter_user.sgml +++ b/modules_k/auth_diameter/doc/auth_diameter_admin.xml @@ -266,7 +266,7 @@ if(!diameter_is_user_in("From", "voicemail"))
- Installation & Running + Installation and Running Notes about installation and running.
diff --git a/modules_k/auth_radius/README b/modules_k/auth_radius/README index 447eede03..cdf0bc171 100644 --- a/modules_k/auth_radius/README +++ b/modules_k/auth_radius/README @@ -3,27 +3,36 @@ Auth_radius Module Jan Janak FhG Fokus + Juha Heinanen Song Networks + Stelios Sidiroglou-Douskos Bogdan-Andrei Iancu voice-system.ro + Edited by Jan Janak + + Copyright © 2002, 2003 FhG FOKUS Copyright © 2005 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -44,14 +53,16 @@ Jan Janak 1.5.1. radius_www_authorize(realm) 1.5.2. radius_proxy_authorize(realm [, uri_user]) + 2. Frequently Asked Questions + List of Examples - 1-1. "SIP-AVP" RADIUS AVP exmaples - 1-2. radius_config parameter usage - 1-3. service_type parameter usage - 1-4. use_ruri_flag parameter usage - 1-5. radius_www_authorize usage - 1-6. proxy_authorize usage - __________________________________________________________ + + 1.1. "SIP-AVP" RADIUS AVP exmaples + 1.2. radius_config parameter usage + 1.3. service_type parameter usage + 1.4. use_ruri_flag parameter usage + 1.5. radius_www_authorize usage + 1.6. proxy_authorize usage Chapter 1. User's Guide @@ -69,7 +80,6 @@ Chapter 1. User's Guide draft-sterman-aaa-sip-00. This module requires radiusclient-ng library version 0.5.0 or higher which is available from http://developer.berlios.de/projects/radiusclient-ng/. - __________________________________________________________ 1.2. Additional Credentials @@ -80,7 +90,6 @@ Chapter 1. User's Guide The additional credentials are embedded in the RADIUS reply as AVPs "SIP-AVP". The syntax of the value is: - * value = SIP_AVP_NAME SIP_AVP_VALUE * SIP_AVP_NAME = STRING_NAME | '#'ID_NUMBER * SIP_AVP_VALUE = ':'STRING_VALUE | '#'NUMBER_VALUE @@ -90,18 +99,17 @@ Chapter 1. User's Guide The RPID value may be fetch via this mechanism. - Example 1-1. "SIP-AVP" RADIUS AVP exmaples + Example 1.1. "SIP-AVP" RADIUS AVP exmaples .... "email:joe@yahoo.com" - -> STRING NAME AVP (email) with STRING VALUE (joe@yahoo.com) + - STRING NAME AVP (email) with STRING VALUE (joe@yahoo.com) "#14:joe@yahoo.com" - -> ID AVP (14) with STRING VALUE (joe@yahoo.com) + - ID AVP (14) with STRING VALUE (joe@yahoo.com) "age#28" - -> STRING NAME AVP (age) with INTEGER VALUE (28) + - STRING NAME AVP (age) with INTEGER VALUE (28) "#14#28" - -> ID AVP (14) with INTEGER VALUE (28) + - ID AVP (14) with INTEGER VALUE (28) .... - __________________________________________________________ 1.3. Dependencies @@ -109,19 +117,15 @@ Chapter 1. User's Guide The module depends on the following modules (in the other words the listed modules must be loaded before this module): - * auth -- Generic authentication functions - __________________________________________________________ 1.3.2. External Libraries or Applications The following libraries or applications must be installed before compilling OpenSER with this module loaded: - * radiusclient-ng 0.5.0 or higher -- library and development files. See http://developer.berlios.de/projects/radiusclient-ng/. - __________________________________________________________ 1.4. Exported Parameters @@ -133,9 +137,8 @@ Chapter 1. User's Guide Default value is "/usr/local/etc/radiusclient-ng/radiusclient.conf". - Example 1-2. radius_config parameter usage + Example 1.2. radius_config parameter usage modparam("auth_radius", "radius_config", "/etc/radiusclient.conf") - __________________________________________________________ 1.4.2. service_type (integer) @@ -146,9 +149,8 @@ modparam("auth_radius", "radius_config", "/etc/radiusclient.conf") Default value is "15". - Example 1-3. service_type parameter usage + Example 1.3. service_type parameter usage modparam("auth_radius", "service_type", 15) - __________________________________________________________ 1.4.3. use_ruri_flag (integer) @@ -164,9 +166,8 @@ modparam("auth_radius", "service_type", 15) Default value is "-1". - Example 1-4. use_ruri_flag parameter usage + Example 1.4. use_ruri_flag parameter usage modparam("auth_radius", "use_ruri_flag", 22) - __________________________________________________________ 1.5. Exported Functions @@ -181,7 +182,6 @@ modparam("auth_radius", "use_ruri_flag", 22) which will challenge the user again. Negative codes may be interpreted as follows: - * -5 (generic error) - some generic error occurred and no reply was sent out; * -4 (no credentials) - credentials were not found in @@ -194,7 +194,6 @@ modparam("auth_radius", "use_ruri_flag", 22) they are valid or not. Meaning of the parameter is as follows: - * realm - Realm is a opaque string that the user agent should present to the user so he can decide what username and password to use. Usually this is domain of the host the @@ -208,13 +207,12 @@ modparam("auth_radius", "use_ruri_flag", 22) This function can be used from REQUEST_ROUTE. - Example 1-5. radius_www_authorize usage + Example 1.5. radius_www_authorize usage ... if (!radius_www_authorize("siphub.net")) { www_challenge("siphub.net", "1"); }; ... - __________________________________________________________ 1.5.2. radius_proxy_authorize(realm [, uri_user]) @@ -233,7 +231,6 @@ if (!radius_www_authorize("siphub.net")) { they are valid or not. Meaning of the parameters is as follows: - * realm - Realm is a opaque string that the user agent should present to the user so he can decide what username and password to use. This is usually one of the domains the @@ -250,7 +247,7 @@ if (!radius_www_authorize("siphub.net")) { This function can be used from REQUEST_ROUTE. - Example 1-6. proxy_authorize usage + Example 1.6. proxy_authorize usage ... if (!radius_proxy_authorize("")) { # Realm and URI user will be autoge nerated @@ -262,3 +259,36 @@ ken proxy_challenge("$pd", "1"); # from P-Preferred-Identity }; # header field ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/auth_radius/doc/auth_radius.sgml b/modules_k/auth_radius/doc/auth_radius.xml similarity index 73% rename from modules_k/auth_radius/doc/auth_radius.sgml rename to modules_k/auth_radius/doc/auth_radius.xml index 0c389a801..289a92a58 100644 --- a/modules_k/auth_radius/doc/auth_radius.sgml +++ b/modules_k/auth_radius/doc/auth_radius.xml @@ -1,10 +1,12 @@ - + - + + - + %docentities; ]> @@ -52,8 +54,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/auth_radius/doc/auth_radius_user.sgml b/modules_k/auth_radius/doc/auth_radius_admin.xml similarity index 97% rename from modules_k/auth_radius/doc/auth_radius_user.sgml rename to modules_k/auth_radius/doc/auth_radius_admin.xml index 33af7e3b2..bfa77a501 100644 --- a/modules_k/auth_radius/doc/auth_radius_user.sgml +++ b/modules_k/auth_radius/doc/auth_radius_admin.xml @@ -56,13 +56,13 @@ .... "email:joe@yahoo.com" - -> STRING NAME AVP (email) with STRING VALUE (joe@yahoo.com) + - STRING NAME AVP (email) with STRING VALUE (joe@yahoo.com) "#14:joe@yahoo.com" - -> ID AVP (14) with STRING VALUE (joe@yahoo.com) + - ID AVP (14) with STRING VALUE (joe@yahoo.com) "age#28" - -> STRING NAME AVP (age) with INTEGER VALUE (28) + - STRING NAME AVP (age) with INTEGER VALUE (28) "#14#28" - -> ID AVP (14) with INTEGER VALUE (28) + - ID AVP (14) with INTEGER VALUE (28) ....
@@ -88,6 +88,7 @@ The following libraries or applications must be installed before compilling &ser; with this module loaded: + radiusclient-ng 0.5.0 or higher -- diff --git a/modules_k/avp_radius/README b/modules_k/avp_radius/README index 9059b3a70..6fa52416a 100644 --- a/modules_k/avp_radius/README +++ b/modules_k/avp_radius/README @@ -2,14 +2,22 @@ avp_radius Module Juha Heinanen + + Edited by Daniel-Constantin Mierla + + Copyright © 2004 Juha Heinanen + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -28,13 +36,15 @@ Daniel-Constantin Mierla 1.4.1. avp_load_radius(user) + 2. Frequently Asked Questions + List of Examples - 1-1. "SIP-AVP" RADIUS AVP exmaples - 1-2. radius_config parameter usage - 1-3. caller_service_type parameter usage - 1-4. callee_service_type parameter usage - 1-5. avp_load_radius() usage - __________________________________________________________ + + 1.1. "SIP-AVP" RADIUS AVP exmaples + 1.2. radius_config parameter usage + 1.3. caller_service_type parameter usage + 1.4. callee_service_type parameter usage + 1.5. avp_load_radius() usage Chapter 1. User's Guide @@ -46,12 +56,11 @@ Chapter 1. User's Guide The module assumes that Radius returns the AVPs as values of reply attribute SIP-AVP. Its value must be a string of form: - * value = SIP_AVP_NAME SIP_AVP_VALUE * SIP_AVP_NAME = STRING_NAME | '#'ID_NUMBER * SIP_AVP_VALUE = ':'STRING_VALUE | '#'NUMBER_VALUE - Example 1-1. "SIP-AVP" RADIUS AVP exmaples + Example 1.1. "SIP-AVP" RADIUS AVP exmaples .... "email:joe@yahoo.com" -> STRING NAME AVP (email) with STRING VALUE (joe@yahoo.com) @@ -66,7 +75,6 @@ Chapter 1. User's Guide For AVP with STRING NAME, the module prefixes each attribute name as returned from Radius by string "caller_" or "callee_" depending if caller's or callee's attributes are loaded. - __________________________________________________________ 1.2. Dependencies @@ -74,19 +82,15 @@ Chapter 1. User's Guide The module depends on the following modules (in the other words the listed modules must be loaded before this module): - * none - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before compilling OpenSER with this module loaded: - * radiusclient-ng 0.5.0 or higher -- library and development files. See http://developer.berlios.de/projects/radiusclient-ng/. - __________________________________________________________ 1.3. Exported Parameters @@ -98,9 +102,8 @@ Chapter 1. User's Guide Default value is "/usr/local/etc/radiusclient-ng/radiusclient.conf". - Example 1-2. radius_config parameter usage + Example 1.2. radius_config parameter usage modparam("avp_radius", "radius_config", "/etc/radiusclient.conf") - __________________________________________________________ 1.3.2. caller_service_type (integer) @@ -110,9 +113,8 @@ modparam("avp_radius", "radius_config", "/etc/radiusclient.conf") Default value is dictionary value of "SIP-Caller-AVPs" Service-Type. - Example 1-3. caller_service_type parameter usage + Example 1.3. caller_service_type parameter usage modparam("avp_radius", "caller_service_type", 18) - __________________________________________________________ 1.3.3. callee_service_type (integer) @@ -122,9 +124,8 @@ modparam("avp_radius", "caller_service_type", 18) Default value is dictionary value of "SIP-Callee-AVPs" Service-Type. - Example 1-4. callee_service_type parameter usage + Example 1.4. callee_service_type parameter usage modparam("avp_radius", "callee_service_type", 19) - __________________________________________________________ 1.4. Exported Functions @@ -133,7 +134,6 @@ modparam("avp_radius", "callee_service_type", 19) The functions loads user's attributes from radius and stores them into AVPs. Parameter "user" is used to indicate, whose attributes are loaded. Possible values are: - * caller - attributes belong to the user of the From URI are loaded * callee - attributes belong to the user of the Request URI @@ -147,7 +147,40 @@ modparam("avp_radius", "callee_service_type", 19) This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-5. avp_load_radius() usage + Example 1.5. avp_load_radius() usage ... avp_load_radius("callee"); ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/avp_radius/doc/avp_radius.sgml b/modules_k/avp_radius/doc/avp_radius.xml similarity index 54% rename from modules_k/avp_radius/doc/avp_radius.sgml rename to modules_k/avp_radius/doc/avp_radius.xml index fd3d3325b..11706e7c1 100644 --- a/modules_k/avp_radius/doc/avp_radius.sgml +++ b/modules_k/avp_radius/doc/avp_radius.xml @@ -1,10 +1,12 @@ - + - + + - + %docentities; ]> @@ -21,7 +23,7 @@ Daniel-Constantin Mierla - daniel@voice-system.ro + miconda@gmail.com @@ -30,8 +32,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/avp_radius/doc/avp_radius_user.sgml b/modules_k/avp_radius/doc/avp_radius_admin.xml similarity index 99% rename from modules_k/avp_radius/doc/avp_radius_user.sgml rename to modules_k/avp_radius/doc/avp_radius_admin.xml index 385172f5e..5e496dac6 100644 --- a/modules_k/avp_radius/doc/avp_radius_user.sgml +++ b/modules_k/avp_radius/doc/avp_radius_admin.xml @@ -68,6 +68,7 @@ The following libraries or applications must be installed before compilling &ser; with this module loaded: + radiusclient-ng 0.5.0 or higher -- diff --git a/modules_k/avpops/README b/modules_k/avpops/README index a92150394..1ed3f02b6 100644 --- a/modules_k/avpops/README +++ b/modules_k/avpops/README @@ -9,9 +9,13 @@ Edited by Ramona-Elena Modroiu Copyright © 2004, 2005 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -53,34 +57,36 @@ Ramona-Elena Modroiu 1.5.13. is_avp_set(name) 1.5.14. avp_print() + 2. Frequently Asked Questions + List of Examples - 1-1. AVP naming examples - 1-2. Set avp_url parameter - 1-3. Set avp_table parameter - 1-4. Set avp_aliases in config file - 1-5. Set use_domain parameter - 1-6. Set uuid_column parameter - 1-7. Set username_column parameter - 1-8. Set domain_column parameter - 1-9. Set attribute_column parameter - 1-10. Set value_column parameter - 1-11. Set type_column parameter - 1-12. Set db_scheme parameter - 1-13. avp_db_load usage - 1-14. avp_db_store usage - 1-15. avp_db_delete usage - 1-16. avp_db_query usage - 1-17. avp_write migration - 1-18. avp_delete usage - 1-19. avp_pushto usage - 1-20. avp_check usage - 1-21. avp_copy usage - 1-22. avp_printf usage - 1-23. avp_subst usage - 1-24. avp_op usage - 1-25. is_avp_set usage - 1-26. avp_print usage - __________________________________________________________ + + 1.1. AVP naming examples + 1.2. Set avp_url parameter + 1.3. Set avp_table parameter + 1.4. Set avp_aliases in config file + 1.5. Set use_domain parameter + 1.6. Set uuid_column parameter + 1.7. Set username_column parameter + 1.8. Set domain_column parameter + 1.9. Set attribute_column parameter + 1.10. Set value_column parameter + 1.11. Set type_column parameter + 1.12. Set db_scheme parameter + 1.13. avp_db_load usage + 1.14. avp_db_store usage + 1.15. avp_db_delete usage + 1.16. avp_db_query usage + 1.17. avp_write migration + 1.18. avp_delete usage + 1.19. avp_pushto usage + 1.20. avp_check usage + 1.21. avp_copy usage + 1.22. avp_printf usage + 1.23. avp_subst usage + 1.24. avp_op usage + 1.25. is_avp_set usage + 1.26. avp_print usage Chapter 1. User's Guide @@ -106,31 +112,25 @@ Chapter 1. User's Guide explanations and commented examples) can be found on Voice Sistem documentation web page at http://voice-system.ro/docs/avpops . - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * Optionally a database module - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None - __________________________________________________________ 1.3. AVP naming format The format of the parameters specifying an AVP in functions exported by this module is: $avp(avp_flags:avp_name) or $avp(avp_alias). - * avp_flags = type_flags [script_flags]; type_flags = 'I' | 'i' | 'S' | 's'; script_flags = 0..255 'I' or 'i' means that the type of avp name is integer (ID) @@ -150,7 +150,7 @@ Chapter 1. User's Guide string - might be any alphanumeric string, wich contain following characters: [a-z] [A-Z] [0-9] '_' - Example 1-1. AVP naming examples + Example 1.1. AVP naming examples ... $avp(i:11) - the AVP identified by integer 11 $avp(s:foo) - the AVP identified by the string 'foo' @@ -159,7 +159,6 @@ $avp(i3:123) - the AVP identified by the integer 123 which has script fl ags 1 and 2 set ... - __________________________________________________________ 1.4. Exported Parameters @@ -169,16 +168,14 @@ ags 1 This parameter is optional, it's default value being NULL. - Example 1-2. Set avp_url parameter + Example 1.2. Set avp_url parameter ... modparam("avpops","avp_url","mysql://user:passwd@host/database") ... - __________________________________________________________ 1.4.2. db_url (string) This parameter has the same meaning as "avp_url" parameter. - __________________________________________________________ 1.4.3. avp_table (string) @@ -186,11 +183,10 @@ modparam("avpops","avp_url","mysql://user:passwd@host/database") This parameter is optional, it's default value being NULL. - Example 1-3. Set avp_table parameter + Example 1.3. Set avp_table parameter ... modparam("avpops","avp_table","avptable") ... - __________________________________________________________ 1.4.4. avp_aliases (string) - removed @@ -198,11 +194,10 @@ modparam("avpops","avp_table","avptable") can be defined directly in configuration script, in global parameters section. - Example 1-4. Set avp_aliases in config file + Example 1.4. Set avp_aliases in config file ... avp_aliases="uuid=I:660;email=s:email_addr;fwd=i:753" ... - __________________________________________________________ 1.4.5. use_domain (integer) @@ -211,11 +206,10 @@ avp_aliases="uuid=I:660;email=s:email_addr;fwd=i:753" Default value is 0 (no). - Example 1-5. Set use_domain parameter + Example 1.5. Set use_domain parameter ... modparam("avpops","use_domain",1) ... - __________________________________________________________ 1.4.6. uuid_column (string) @@ -223,11 +217,10 @@ modparam("avpops","use_domain",1) Default value is "uuid". - Example 1-6. Set uuid_column parameter + Example 1.6. Set uuid_column parameter ... modparam("avpops","uuid_column","uuid") ... - __________________________________________________________ 1.4.7. username_column (string) @@ -235,11 +228,10 @@ modparam("avpops","uuid_column","uuid") Default value is "username". - Example 1-7. Set username_column parameter + Example 1.7. Set username_column parameter ... modparam("avpops","username_column","username") ... - __________________________________________________________ 1.4.8. domain_column (string) @@ -247,11 +239,10 @@ modparam("avpops","username_column","username") Default value is "domain". - Example 1-8. Set domain_column parameter + Example 1.8. Set domain_column parameter ... modparam("avpops","domain_column","domain") ... - __________________________________________________________ 1.4.9. attribute_column (string) @@ -259,11 +250,10 @@ modparam("avpops","domain_column","domain") Default value is "attribute". - Example 1-9. Set attribute_column parameter + Example 1.9. Set attribute_column parameter ... modparam("avpops","attribute_column","attribute") ... - __________________________________________________________ 1.4.10. value_column (string) @@ -271,11 +261,10 @@ modparam("avpops","attribute_column","attribute") Default value is "value". - Example 1-10. Set value_column parameter + Example 1.10. Set value_column parameter ... modparam("avpops","value_column","value") ... - __________________________________________________________ 1.4.11. type_column (string) @@ -283,11 +272,10 @@ modparam("avpops","value_column","value") Default value is "type". - Example 1-11. Set type_column parameter + Example 1.11. Set type_column parameter ... modparam("avpops","type_column","type") ... - __________________________________________________________ 1.4.12. db_scheme (string) @@ -295,7 +283,6 @@ modparam("avpops","type_column","type") Database information. Definition of a DB scheme. Scheme syntax is: - * db_scheme = name':'element[';'element]* * element = + 'uuid_col='string @@ -307,16 +294,15 @@ modparam("avpops","type_column","type") Default value is "NULL". - Example 1-12. Set db_scheme parameter + Example 1.12. Set db_scheme parameter ... modparam("avpops","db_scheme", "scheme1:table=subscriber;uuid_col=uuid;value_col=first_name") ... - __________________________________________________________ 1.5. Exported Functions -1.5.1. avp_db_load(source,name) +1.5.1. avp_db_load(source,name) Loads from DB into memory the AVPs corresponding to the given source. If given, it sets the script flags for loaded AVPs. It @@ -324,7 +310,6 @@ modparam("avpops","db_scheme", (db error, no avp loaded ...). Meaning of the parameters is as follows: - * source - what info is used for identifying the AVPs. Parameter syntax: + source = (pvar|str_value) @@ -347,16 +332,15 @@ modparam("avpops","db_scheme", This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE and ONREPLY_ROUTE. - Example 1-13. avp_db_load usage + Example 1.13. avp_db_load usage ... avp_db_load("$fu","$(i:678)"); avp_db_load("$ru/domain","i:/domain_preferences"); avp_db_load("$uuid","$avp(s:404fwd)/fwd_table"); avp_db_load("$ru","$avp(i1:123)/$some_scheme"); ... - __________________________________________________________ -1.5.2. avp_db_store(source,name) +1.5.2. avp_db_store(source,name) Stores to DB the AVPs corresponding to the given source. @@ -367,14 +351,13 @@ avp_db_load("$ru","$avp(i1:123)/$some_scheme"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE and ONREPLY_ROUTE. - Example 1-14. avp_db_store usage + Example 1.14. avp_db_store usage ... avp_db_store("$tu","$avp(i:678)"); avp_db_store("$ru/username","$avp(email)"); ... - __________________________________________________________ -1.5.3. avp_db_delete(source,name) +1.5.3. avp_db_delete(source,name) Deletes from DB the AVPs corresponding to the given source. @@ -385,20 +368,18 @@ avp_db_store("$ru/username","$avp(email)"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE and ONREPLY_ROUTE. - Example 1-15. avp_db_delete usage + Example 1.15. avp_db_delete usage ... avp_db_delete("$tu","$avp(i:678)"); avp_db_delete("$ru/username","$avp(email)"); avp_db_delete("$uuid","$avp(s:404fwd)/fwd_table"); ... - __________________________________________________________ -1.5.4. avp_db_query(query[,dest]) +1.5.4. avp_db_query(query[,dest]) Make a database query and store the result in AVPs. The meaning and usage of the parameters: - * query - must be a valid SQL query. The parameter can contain pseudo-variables. You must escape any pseudo-variables manually to prevent @@ -419,22 +400,21 @@ avp_db_delete("$uuid","$avp(s:404fwd)/fwd_table"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE and ONREPLY_ROUTE. - Example 1-16. avp_db_query usage + Example 1.16. avp_db_query usage ... avp_db_query("select password, ha1 from subscriber where username='$tu'" , "$avp(i:678);$avp(i:679)"); avp_db_query("delete from subscriber"); ... - __________________________________________________________ -1.5.5. avp_write(value,name) - removed +1.5.5. avp_write(value,name) - removed The function has been removed from 'avpops' module. Same functionality can be achived directly in configuration script - via assignment operator. + via assignement operator. - Example 1-17. avp_write migration + Example 1.17. avp_write migration ... avp_write("$tu","$avp(i:678)"); => $avp(i:678) = $tu; avp_write("$ru/username","$avp(email)"); => $avp(email) = $rU; @@ -444,14 +424,12 @@ avp_write("$hdr(call-id)","$avp(i:11)"); => $avp(i:11) = $hdr(call-id); avp_write("i:333","$avp(i:6)"); => $avp(i:6) = 333; avp_write("s:abc","$avp(i:7)"); => $avp(i:7) = "abc"; ... - __________________________________________________________ -1.5.6. avp_delete(name) +1.5.6. avp_delete(name) Deletes from memory the AVPs with name or, if empty, all AVPs. Meaning of the parameters is as follows: - * name - which AVPs will be deleted from memory. Parameter syntax is: + name = (matching_flags|avp_name|avp_alias)['/'flag] @@ -462,21 +440,19 @@ avp_write("s:abc","$avp(i:7)"); => $avp(i:7) = "abc"; This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE and ONREPLY_ROUTE. - Example 1-18. avp_delete usage + Example 1.18. avp_delete usage ... avp_delete("$avp(i:678)/g"); avp_delete("$avp(email)"); avp_delete("i"); avp_delete("a3"); ... - __________________________________________________________ -1.5.7. avp_pushto(destination,name) +1.5.7. avp_pushto(destination,name) Pushes the value of AVP(s) into the SIP message. Meaning of the parameters is as follows: - * destination - as what will be the AVP value pushed into SIP message. Parameter syntax: + destination = '$ru' ['/'('username'|'domain')] | '$du' @@ -494,7 +470,7 @@ avp_delete("a3"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE and ONREPLY_ROUTE. - Example 1-19. avp_pushto usage + Example 1.19. avp_pushto usage ... avp_pushto("$ru/domain","$fd"); avp_pushto("$ru","$avp(i:678)"); @@ -502,14 +478,12 @@ avp_pushto("$ru/domain","$avp(s:backup_domains)/g"); avp_pushto("$du","$avp(i:679)"); avp_pushto("$br","$avp(i:680)"); ... - __________________________________________________________ -1.5.8. avp_check(name,op_value) +1.5.8. avp_check(name,op_value) Checks the value of the AVP(s) against an operator and value. Meaning of the parameters is as follows: - * name - which AVP(s) should be checked. Parameter syntax is: + name = ( pseudo-variable ) * op_value - define the operator, the value and flags for @@ -538,7 +512,7 @@ avp_pushto("$br","$avp(i:680)"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE and ONREPLY_ROUTE. - Example 1-20. avp_check usage + Example 1.20. avp_check usage ... avp_check("$avp(i:678)", "lt/i:345/g"); avp_check("$fd","eq/$td/I"); @@ -546,14 +520,12 @@ avp_check("$avp(s:foo)","gt/$avp($bar)/g"); avp_check("$avp(s:foo)","re/sip:.*@bar.net/g"); avp_check("$avp(s:foo)","fm/$avp(fm_avp)/g"); ... - __________________________________________________________ -1.5.9. avp_copy(old_name,new_name) +1.5.9. avp_copy(old_name,new_name) Copy / move an avp under a new name. Meaning of the parameters is as follows: - * name1 - which AVP(s) should be copied/moved. Parameter syntax is: + name = ( avp_name | avp_alias ) @@ -565,14 +537,13 @@ avp_check("$avp(s:foo)","fm/$avp(fm_avp)/g"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE and ONREPLY_ROUTE. - Example 1-21. avp_copy usage + Example 1.21. avp_copy usage ... avp_copy("$avp(i:678)", "$avp(s:345)/g"); avp_copy("$avp(old)","$avp(new)/gd"); ... - __________________________________________________________ -1.5.10. avp_printf(dest, format) +1.5.10. avp_printf(dest, format) NOTE: since OpenSER 1.3.0 the function has been moved to core and it is an alias to pv_printf(). @@ -583,7 +554,6 @@ avp_copy("$avp(old)","$avp(new)/gd"); found at: http://openser.org/dokuwiki/. Meaning of the parameters is as follows: - * dest - in which AVP should be stored the result. Parameter syntax is: + name = ( avp_name | avp_alias ) @@ -592,19 +562,17 @@ avp_copy("$avp(old)","$avp(new)/gd"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE and ONREPLY_ROUTE. - Example 1-22. avp_printf usage + Example 1.22. avp_printf usage ... avp_printf("$avp(i:20)", "This is a $rm request with call-id $hdr(call-i d)"); ... - __________________________________________________________ -1.5.11. avp_subst(avps, subst) +1.5.11. avp_subst(avps, subst) Perl/sed-like subst applied to AVPs having string value. Meaning of the parameters is as follows: - * avps - source AVP, destination AVP and flags. Parameter syntax is: + avps = src_avp [ '/' dst_avp [ '/' flags ] ] @@ -626,7 +594,7 @@ d)"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE and ONREPLY_ROUTE. - Example 1-23. avp_subst usage + Example 1.23. avp_subst usage ... # if avp i:678 has a string value in e-mail format, replace the # domain part with the value of domain part from R-URI @@ -643,14 +611,12 @@ avp_subst("$avp(i:678)/$avp(i:679)/g", "/(.*)@(.*)/\1@$rd/"); you have many src_avp and you make the substitution to be applied to all of them, after the first src_avp is processed, it will be added in avp list and next processing will use it. - __________________________________________________________ -1.5.12. avp_op(name,op_value) +1.5.12. avp_op(name,op_value) Different integer operations with avps. Meaning of the parameters is as follows: - * name - 'source_avp/destination_avp' - which AVP(s) should be processed and where to store the result. If 'destination_avp' is missing, same name as 'source_avp' is @@ -673,19 +639,17 @@ avp_subst("$avp(i:678)/$avp(i:679)/g", "/(.*)@(.*)/\1@$rd/"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE and ONREPLY_ROUTE. - Example 1-24. avp_op usage + Example 1.24. avp_op usage ... avp_op("$avp(i:678)", "add/i:345/g"); avp_op("$avp(number)","sub/$avp(number2)/d"); ... - __________________________________________________________ -1.5.13. is_avp_set(name) +1.5.13. is_avp_set(name) Check if any AVP with name is set. Meaning of the parameters is as follows: - * name - name of AVP to look for. Parameter syntax is: + name = avp_name|avp_alias [ '/' flags ]) flags = ('e'|'s'|'n') - e = empty value; s = value @@ -694,14 +658,13 @@ avp_op("$avp(number)","sub/$avp(number2)/d"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE and ONREPLY_ROUTE. - Example 1-25. is_avp_set usage + Example 1.25. is_avp_set usage ... if(is_avp_set("$avp(i:678)")) log("AVP with integer id 678 exists\n"); ... - __________________________________________________________ -1.5.14. avp_print() +1.5.14. avp_print() Prints the list with all the AVPs from memory. This is only a helper/debug function. @@ -709,7 +672,40 @@ if(is_avp_set("$avp(i:678)")) This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE and ONREPLY_ROUTE. - Example 1-26. avp_print usage + Example 1.26. avp_print usage ... avp_print(); ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/avpops/doc/avpops.sgml b/modules_k/avpops/doc/avpops.xml similarity index 65% rename from modules_k/avpops/doc/avpops.sgml rename to modules_k/avpops/doc/avpops.xml index ef6297705..317c8a4f1 100644 --- a/modules_k/avpops/doc/avpops.sgml +++ b/modules_k/avpops/doc/avpops.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -38,8 +40,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/avpops/doc/avpops_user.sgml b/modules_k/avpops/doc/avpops_admin.xml similarity index 99% rename from modules_k/avpops/doc/avpops_user.sgml rename to modules_k/avpops/doc/avpops_admin.xml index caf916f13..de4cc950f 100644 --- a/modules_k/avpops/doc/avpops_user.sgml +++ b/modules_k/avpops/doc/avpops_admin.xml @@ -304,6 +304,7 @@ modparam("avpops","value_column","value") <varname>type_column</varname> (string) Name of column containing the AVP type. + Default value is type. @@ -470,6 +471,7 @@ avp_db_store("$ru/username","$avp(email)"); Deletes from DB the AVPs corresponding to the given source. + The meaning and usage of the parameters are identical as for avp_db_load(source,name) function. Please refer to its description. @@ -522,6 +524,7 @@ avp_db_delete("$uuid","$avp(s:404fwd)/fwd_table"); many rows, then multiple AVPs with corresponding name will be added. The value type of the AVP (string or integer) will be derived from the type of the columns. + @@ -546,7 +549,7 @@ avp_db_query("delete from subscriber"); The function has been removed from 'avpops' module. Same functionality can be achived directly in configuration script - via assignment operator. + via assignement operator. <function>avp_write</function> migration diff --git a/modules_k/benchmark/README b/modules_k/benchmark/README index b903cc2ea..5a6ed89ff 100644 --- a/modules_k/benchmark/README +++ b/modules_k/benchmark/README @@ -6,8 +6,6 @@ Bastian Friedrich Daniel-Constantin Mierla - Voice System SRL - Edited by Bastian Friedrich @@ -15,9 +13,13 @@ Bastian Friedrich Copyright © 2007 Collax GmbH Copyright © 2007 Voice System SRL + Revision History + Revision $Revision: 1.1.1.1 $ $Date: 2007-04-11 14:40:39 +0200 + (Mi, 11 Apr 2007) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -53,18 +55,21 @@ Bastian Friedrich 2.1.1. bm_register(name, mode, id) 2.1.2. bm_start(id) 2.1.3. bm_log(id) - 2.1.4. Benchmark API Example + + 2.2. Benchmark API Example + + 3. Frequently Asked Questions List of Examples - 1-1. Set enable parameter - 1-2. Set granularity parameter - 1-3. Set loglevel parameter - 1-4. bm_start_timer usage - 1-5. bm_log_timer usage - 1-6. Enabling a timer - 1-7. benchmark usage - 2-1. Using the benchmark module's API from another module - __________________________________________________________ + + 1.1. Set enable parameter + 1.2. Set granularity parameter + 1.3. Set loglevel parameter + 1.4. bm_start_timer usage + 1.5. bm_log_timer usage + 1.6. Enabling a timer + 1.7. benchmark usage + 2.1. Using the benchmark module's API from another module Chapter 1. User's Guide @@ -79,24 +84,19 @@ Chapter 1. User's Guide stored and logged via OpenSER's logging facility. Please note that all durations are given as microseconds (don't confuse with milliseconds!). - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -104,7 +104,6 @@ Chapter 1. User's Guide Even when the module is loaded, benchmarking is not enabled per default. This variable may have three different values: - * -1 - Globally disable benchmarking * 0 - Enable per-timer enabling. Single timers are inactive by default and can be activated through the MI interface as @@ -113,11 +112,10 @@ Chapter 1. User's Guide Default value is "0". - Example 1-1. Set enable parameter + Example 1.1. Set enable parameter ... modparam("benchmark", "enable", 1) ... - __________________________________________________________ 1.3.2. granularity (int) @@ -127,17 +125,15 @@ modparam("benchmark", "enable", 1) Default value is "100". - Example 1-2. Set granularity parameter + Example 1.2. Set granularity parameter ... modparam("benchmark", "granularity", 500) ... - __________________________________________________________ 1.3.3. loglevel (int) Set the log level for the benchmark logs. These levels should be used: - * -3 - L_ALERT * -2 - L_CRIT * -1 - L_ERR @@ -148,32 +144,29 @@ modparam("benchmark", "granularity", 500) Default value is "3" (L_INFO). - Example 1-3. Set loglevel parameter + Example 1.3. Set loglevel parameter ... modparam("benchmark", "loglevel", 4) ... This will set the logging level to L_DBG. - __________________________________________________________ 1.4. Exported Functions -1.4.1. bm_start_timer(name) +1.4.1. bm_start_timer(name) Start timer "name". A later call to "bm_log_timer()" logs this timer.. - Example 1-4. bm_start_timer usage + Example 1.4. bm_start_timer usage ... bm_start_timer("test"); ... - __________________________________________________________ -1.4.2. bm_log_timer(name) +1.4.2. bm_log_timer(name) This function logs the timer with the given ID. The following data are logged: - * Last msgs is the number of calls in the last logging interval. This equals the granularity variable. @@ -198,11 +191,10 @@ bm_start_timer("test"); * Global avg possibly the most interesting value. - Example 1-5. bm_log_timer usage + Example 1.5. bm_log_timer usage ... bm_log_timer("test"); ... - __________________________________________________________ 1.5. Exported MI Functions @@ -210,41 +202,36 @@ bm_log_timer("test"); Enables/disables the module. Parameter may be -1, 0 or 1. See discription of "enable" parameter. - __________________________________________________________ 1.5.2. bm_enable_timer Enable or disable a single timer. The following example enables timer "test" (the second parameter must be 0 to disable): - Example 1-6. Enabling a timer + Example 1.6. Enabling a timer ... openserctl fifo bm_enable_timer test 1 ... - __________________________________________________________ 1.5.3. bm_granularity Modifies the benchmarking granularity. See "granularity" variable. - __________________________________________________________ 1.5.4. bm_loglevel Modifies the module log level. See "loglevel" variable. - __________________________________________________________ 1.6. Example of usage Measure the duration of user location lookup. - Example 1-7. benchmark usage + Example 1.7. benchmark usage ... bm_start_timer("usrloc-lookup"); lookup("location"); bm_log_timer("usrloc-lookup"); ... - __________________________________________________________ Chapter 2. Developer's Guide @@ -254,33 +241,29 @@ Chapter 2. Developer's Guide Please note that this module is intended mainly for developers. It should be used with caution in production environments. - __________________________________________________________ 2.1. Available Functions -2.1.1. bm_register(name, mode, id) +2.1.1. bm_register(name, mode, id) This function register a new timer and/or returns the internal ID associated with the timer. mode controls the creation of new timer if not found. id is to be used by start and log timer functions. - __________________________________________________________ -2.1.2. bm_start(id) +2.1.2. bm_start(id) This function equals the user-exported function bm_start_timer. The id is passed as an integer, though. - __________________________________________________________ -2.1.3. bm_log(id) +2.1.3. bm_log(id) This function equals the user-exported function bm_log_timer. The id is passed as an integer, though. - __________________________________________________________ -2.1.4. Benchmark API Example +2.2. Benchmark API Example - Example 2-1. Using the benchmark module's API from another + Example 2.1. Using the benchmark module's API from another module ... #include "../benchmark/benchmark.h" @@ -301,3 +284,36 @@ bmb.bm_start(id); do_something(); bmb.bm_log(id); ... + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/benchmark/doc/benchmark.sgml b/modules_k/benchmark/doc/benchmark.xml similarity index 74% rename from modules_k/benchmark/doc/benchmark.sgml rename to modules_k/benchmark/doc/benchmark.xml index 791125f6a..393b1bade 100644 --- a/modules_k/benchmark/doc/benchmark.sgml +++ b/modules_k/benchmark/doc/benchmark.xml @@ -1,12 +1,14 @@ - + - - + + + - + %docentities; ]> @@ -27,9 +29,8 @@ Daniel-Constantin Mierla - Voice System SRL
- daniel@voice-system.ro + miconda@gmail.com
diff --git a/modules_k/benchmark/doc/benchmark_user.sgml b/modules_k/benchmark/doc/benchmark_admin.xml similarity index 99% rename from modules_k/benchmark/doc/benchmark_user.sgml rename to modules_k/benchmark/doc/benchmark_admin.xml index d1c5cbf11..629027391 100644 --- a/modules_k/benchmark/doc/benchmark_user.sgml +++ b/modules_k/benchmark/doc/benchmark_admin.xml @@ -15,6 +15,7 @@ The duration between calls to start_timer and log_timer is stored and logged via &ser;'s logging facility. Please note that all durations are given as microseconds (don't confuse with milliseconds!). +
Dependencies diff --git a/modules_k/benchmark/doc/benchmark_devel.sgml b/modules_k/benchmark/doc/benchmark_devel.xml similarity index 98% rename from modules_k/benchmark/doc/benchmark_devel.sgml rename to modules_k/benchmark/doc/benchmark_devel.xml index bc9f78607..1a48c8580 100644 --- a/modules_k/benchmark/doc/benchmark_devel.sgml +++ b/modules_k/benchmark/doc/benchmark_devel.xml @@ -28,7 +28,7 @@
-
+
<function moreinfo="none">bm_start(id)</function> @@ -47,6 +47,7 @@ is passed as an integer, though.
+
diff --git a/modules_k/carrierroute/README b/modules_k/carrierroute/README index 6b326a7f8..ad8a4017b 100644 --- a/modules_k/carrierroute/README +++ b/modules_k/carrierroute/README @@ -13,9 +13,13 @@ Henning Westerholt 1&1 Internet AG Copyright © 2007 1&1 Internet AG + Revision History + Revision $Revision: 3794 $ $Date: 2008-02-28 19:22:36 +0200 + (Thu, 28 Feb 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -87,64 +91,66 @@ Henning Westerholt 1.5.7. cr_delete_host 1.6. Examples - 1.7. Installation & Running + 1.7. Installation and Running 1.7.1. Database setup + 2. Frequently Asked Questions + List of Examples - 1-1. Set db_url parameter - 1-2. Set db_table parameter - 1-3. Set id_column parameter - 1-4. Set carrier_column parameter - 1-5. Set scan_prefix_column parameter - 1-6. Set domain_column parameter - 1-7. Set prob_column parameter - 1-8. Set rewrite_host_column parameter - 1-9. Set strip_column parameter - 1-10. Set comment_column parameter - 1-11. Set carrier_table parameter - 1-12. Set rewrite_prefix_column parameter - 1-13. Set rewrite_suffix_column parameter - 1-14. Set id_col parameter - 1-15. Set carrier_name_col parameter - 1-16. Set subscriber_table parameter - 1-17. Set subscriber_user_col parameter - 1-18. Set subscriber_domain_col parameter - 1-19. Set subscriber_carrier_col parameter - 1-20. Set config_source parameter - 1-21. Set config_file parameter - 1-22. Set default_tree parameter - 1-23. Set use_domain parameter - 1-24. Set fallback_default parameter - 1-25. Set db_failuretable parameter - 1-26. Set failure_id_column parameter - 1-27. Set failure_carrier_column parameter - 1-28. Set failure_scan_prefix_column parameter - 1-29. Set failure_domain_column parameter - 1-30. Set failure_host_name_column parameter - 1-31. Set failure_reply_code_column parameter - 1-32. Set failure_flags_column parameter - 1-33. Set failure_mask_column parameter - 1-34. Set failure_next_domain_column parameter - 1-35. Set failure_comment_column parameter - 1-36. cr_replace_host usage - 1-37. cr_deactivate_host usage - 1-38. cr_activate_host usage - 1-39. cr_add_host usage - 1-40. cr_delete_host usage - 1-41. Configuration example - Routing to default tree - 1-42. Configuration example - Routing to user tree - 1-43. Configuration example - module configuration - 1-44. Example database content - carrierroute table - 1-45. Example database content - simple carrierfailureroute + + 1.1. Set db_url parameter + 1.2. Set db_table parameter + 1.3. Set id_column parameter + 1.4. Set carrier_column parameter + 1.5. Set scan_prefix_column parameter + 1.6. Set domain_column parameter + 1.7. Set prob_column parameter + 1.8. Set rewrite_host_column parameter + 1.9. Set strip_column parameter + 1.10. Set comment_column parameter + 1.11. Set carrier_table parameter + 1.12. Set rewrite_prefix_column parameter + 1.13. Set rewrite_suffix_column parameter + 1.14. Set id_col parameter + 1.15. Set carrier_name_col parameter + 1.16. Set subscriber_table parameter + 1.17. Set subscriber_user_col parameter + 1.18. Set subscriber_domain_col parameter + 1.19. Set subscriber_carrier_col parameter + 1.20. Set config_source parameter + 1.21. Set config_file parameter + 1.22. Set default_tree parameter + 1.23. Set use_domain parameter + 1.24. Set fallback_default parameter + 1.25. Set db_failuretable parameter + 1.26. Set failure_id_column parameter + 1.27. Set failure_carrier_column parameter + 1.28. Set failure_scan_prefix_column parameter + 1.29. Set failure_domain_column parameter + 1.30. Set failure_host_name_column parameter + 1.31. Set failure_reply_code_column parameter + 1.32. Set failure_flags_column parameter + 1.33. Set failure_mask_column parameter + 1.34. Set failure_next_domain_column parameter + 1.35. Set failure_comment_column parameter + 1.36. cr_replace_host usage + 1.37. cr_deactivate_host usage + 1.38. cr_activate_host usage + 1.39. cr_add_host usage + 1.40. cr_delete_host usage + 1.41. Configuration example - Routing to default tree + 1.42. Configuration example - Routing to user tree + 1.43. Configuration example - module configuration + 1.44. Example database content - carrierroute table + 1.45. Example database content - simple carrierfailureroute table - 1-46. Example database content - more complex + 1.46. Example database content - more complex carrierfailureroute table - 1-47. Example database content - route_tree table - 1-48. Necessary extensions for the user table - __________________________________________________________ + 1.47. Example database content - route_tree table + 1.48. Necessary extensions for the user table Chapter 1. User's Guide @@ -200,14 +206,12 @@ Chapter 1. User's Guide order to relay the message to the new target. Its also supportes the usage of database derived failure routing descisions with the carrierfailureroute table. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following module must be loaded before this module: - * a database module, when a database is used as configuration data source. Only SQL based databases are supported, as this module needs the capability to issue raw queries. Its @@ -215,15 +219,12 @@ Chapter 1. User's Guide moment. * The tm module, when you want to use the $T_reply_code pseudo-variable in the "cr_next_domain" function. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * libconfuse, a configuration file parser library. - __________________________________________________________ 1.3. Exported Parameters @@ -234,12 +235,11 @@ Chapter 1. User's Guide Default value is "mysql://openserro:openserro@localhost/openser". - Example 1-1. Set db_url parameter + Example 1.1. Set db_url parameter ... modparam("carrierroute", "db_url", "dbdriver://username:password@dbhost/ dbname") ... - __________________________________________________________ 1.3.2. db_table (string) @@ -247,11 +247,10 @@ dbname") Default value is "carrierroute". - Example 1-2. Set db_table parameter + Example 1.2. Set db_table parameter ... modparam("carrierroute", "db_table", "carrierroute") ... - __________________________________________________________ 1.3.3. id_column (string) @@ -259,11 +258,10 @@ modparam("carrierroute", "db_table", "carrierroute") Default value is "id". - Example 1-3. Set id_column parameter + Example 1.3. Set id_column parameter ... modparam("carrierroute", "id_column", "id") ... - __________________________________________________________ 1.3.4. carrier_column (string) @@ -271,11 +269,10 @@ modparam("carrierroute", "id_column", "id") Default value is "carrier". - Example 1-4. Set carrier_column parameter + Example 1.4. Set carrier_column parameter ... modparam("carrierroute", "carrier_column", "carrier") ... - __________________________________________________________ 1.3.5. scan_prefix_column (string) @@ -288,11 +285,10 @@ modparam("carrierroute", "carrier_column", "carrier") Default value is "scan_prefix". - Example 1-5. Set scan_prefix_column parameter + Example 1.5. Set scan_prefix_column parameter ... modparam("carrierroute", "scan_prefix_column", "scan_prefix") ... - __________________________________________________________ 1.3.6. domain_column (string) @@ -303,11 +299,10 @@ modparam("carrierroute", "scan_prefix_column", "scan_prefix") Default value is "domain". - Example 1-6. Set domain_column parameter + Example 1.6. Set domain_column parameter ... modparam("carrierroute", "domain_column", "domain") ... - __________________________________________________________ 1.3.7. prob_column (string) @@ -327,11 +322,10 @@ modparam("carrierroute", "domain_column", "domain") Default value is "prob". - Example 1-7. Set prob_column parameter + Example 1.7. Set prob_column parameter ... modparam("carrierroute", "prob_column", "prob") ... - __________________________________________________________ 1.3.8. rewrite_host_column (string) @@ -341,11 +335,10 @@ modparam("carrierroute", "prob_column", "prob") Default value is "rewrite_host". - Example 1-8. Set rewrite_host_column parameter + Example 1.8. Set rewrite_host_column parameter ... modparam("carrierroute", "rewrite_host_column", "rewrite_host") ... - __________________________________________________________ 1.3.9. strip_column (string) @@ -355,11 +348,10 @@ modparam("carrierroute", "rewrite_host_column", "rewrite_host") Default value is "strip". - Example 1-9. Set strip_column parameter + Example 1.9. Set strip_column parameter ... modparam("carrierroute", "strip_column", "strip") ... - __________________________________________________________ 1.3.10. comment_column (string) @@ -369,11 +361,10 @@ modparam("carrierroute", "strip_column", "strip") Default value is "comment". - Example 1-10. Set comment_column parameter + Example 1.10. Set comment_column parameter ... modparam("carrierroute", "comment_column", "comment") ... - __________________________________________________________ 1.3.11. carrier_table (string) @@ -382,11 +373,10 @@ modparam("carrierroute", "comment_column", "comment") Default value is "route_tree". - Example 1-11. Set carrier_table parameter + Example 1.11. Set carrier_table parameter ... modparam("carrierroute", "carrier_table", "route_tree") ... - __________________________________________________________ 1.3.12. rewrite_prefix_column (string) @@ -395,11 +385,10 @@ modparam("carrierroute", "carrier_table", "route_tree") Default value is "rewrite_prefix". - Example 1-12. Set rewrite_prefix_column parameter + Example 1.12. Set rewrite_prefix_column parameter ... modparam("carrierroute", "rewrite_prefix_column", "rewrite_prefix") ... - __________________________________________________________ 1.3.13. rewrite_suffix_column (string) @@ -408,12 +397,11 @@ modparam("carrierroute", "rewrite_prefix_column", "rewrite_prefix") Default value is "rewrite_suffix". - Example 1-13. Set rewrite_suffix_column parameter + Example 1.13. Set rewrite_suffix_column parameter ... modparam("carrierroute", "rewrite_suffix_col umn", "rewrite_suffix") ... - __________________________________________________________ 1.3.14. carrier_id_col (string) @@ -422,11 +410,10 @@ umn", "rewrite_suffix") Default value is "id". - Example 1-14. Set id_col parameter + Example 1.14. Set id_col parameter ... modparam("carrierroute", "carrier_id_col", "id") ... - __________________________________________________________ 1.3.15. carrier_name_col (string) @@ -435,11 +422,10 @@ modparam("carrierroute", "carrier_id_col", "id") Default value is "carrier". - Example 1-15. Set carrier_name_col parameter + Example 1.15. Set carrier_name_col parameter ... modparam("carrierroute", "carrier_name_col", "carrier") ... - __________________________________________________________ 1.3.16. subscriber_table (string) @@ -447,11 +433,10 @@ modparam("carrierroute", "carrier_name_col", "carrier") Default value is "subscriber". - Example 1-16. Set subscriber_table parameter + Example 1.16. Set subscriber_table parameter ... modparam("carrierroute", "subscriber_table", "subscriber") ... - __________________________________________________________ 1.3.17. subscriber_user_col (string) @@ -460,11 +445,10 @@ modparam("carrierroute", "subscriber_table", "subscriber") Default value is "username". - Example 1-17. Set subscriber_user_col parameter + Example 1.17. Set subscriber_user_col parameter ... modparam("carrierroute", "subscriber_user_col", "username") ... - __________________________________________________________ 1.3.18. subscriber_domain_col (string) @@ -473,11 +457,10 @@ modparam("carrierroute", "subscriber_user_col", "username") Default value is "domain". - Example 1-18. Set subscriber_domain_col parameter + Example 1.18. Set subscriber_domain_col parameter ... modparam("carrierroute", "subscriber_domain_col", "domain") ... - __________________________________________________________ 1.3.19. subscriber_carrier_col (string) @@ -486,12 +469,11 @@ modparam("carrierroute", "subscriber_domain_col", "domain") Default value is "cr_preferred_carrier". - Example 1-19. Set subscriber_carrier_col parameter + Example 1.19. Set subscriber_carrier_col parameter ... modparam("carrierroute", "subscriber_carrier_col", "cr_preferred_carrier ") ... - __________________________________________________________ 1.3.20. config_source (string) @@ -500,11 +482,10 @@ modparam("carrierroute", "subscriber_carrier_col", "cr_preferred_carrier Default value is "file". - Example 1-20. Set config_source parameter + Example 1.20. Set config_source parameter ... modparam("carrierroute", "config_source", "file") ... - __________________________________________________________ 1.3.21. config_file (string) @@ -512,12 +493,11 @@ modparam("carrierroute", "config_source", "file") Default value is "/etc/openser/carrierroute.conf". - Example 1-21. Set config_file parameter + Example 1.21. Set config_file parameter ... modparam("carrierroute", "config_file", "/etc/openser/carrierroute.conf" ) ... - __________________________________________________________ 1.3.22. default_tree (string) @@ -526,11 +506,10 @@ modparam("carrierroute", "config_file", "/etc/openser/carrierroute.conf" Default value is "default". - Example 1-22. Set default_tree parameter + Example 1.22. Set default_tree parameter ... modparam("carrierroute", "default_tree", "default") ... - __________________________________________________________ 1.3.23. use_domain (int) @@ -539,11 +518,10 @@ modparam("carrierroute", "default_tree", "default") Default value is "0". - Example 1-23. Set use_domain parameter + Example 1.23. Set use_domain parameter ... modparam("carrierroute", "use_domain", 0) ... - __________________________________________________________ 1.3.24. fallback_default (int) @@ -554,11 +532,10 @@ modparam("carrierroute", "use_domain", 0) Default value is "1". - Example 1-24. Set fallback_default parameter + Example 1.24. Set fallback_default parameter ... modparam("carrierroute", "fallback_default", 1) ... - __________________________________________________________ 1.3.25. db_failure_table (string) @@ -566,11 +543,10 @@ modparam("carrierroute", "fallback_default", 1) Default value is "carrierfailureroute". - Example 1-25. Set db_failuretable parameter + Example 1.25. Set db_failuretable parameter ... modparam("carrierroute", "db_failuretable", "carrierfailureroute") ... - __________________________________________________________ 1.3.26. failure_id_column (string) @@ -578,11 +554,10 @@ modparam("carrierroute", "db_failuretable", "carrierfailureroute") Default value is "id". - Example 1-26. Set failure_id_column parameter + Example 1.26. Set failure_id_column parameter ... modparam("carrierroute", "failure_id_column", "id") ... - __________________________________________________________ 1.3.27. failure_carrier_column (string) @@ -590,11 +565,10 @@ modparam("carrierroute", "failure_id_column", "id") Default value is "carrier". - Example 1-27. Set failure_carrier_column parameter + Example 1.27. Set failure_carrier_column parameter ... modparam("carrierroute", "failure_carrier_column", "carrier") ... - __________________________________________________________ 1.3.28. failure_scan_prefix_column (string) @@ -607,11 +581,10 @@ modparam("carrierroute", "failure_carrier_column", "carrier") Default value is "scan_prefix". - Example 1-28. Set failure_scan_prefix_column parameter + Example 1.28. Set failure_scan_prefix_column parameter ... modparam("carrierroute", "failure_scan_prefix_column", "scan_prefix") ... - __________________________________________________________ 1.3.29. failure_domain_column (string) @@ -622,11 +595,10 @@ modparam("carrierroute", "failure_scan_prefix_column", "scan_prefix") Default value is "domain". - Example 1-29. Set failure_domain_column parameter + Example 1.29. Set failure_domain_column parameter ... modparam("carrierroute", "failure_domain_column", "domain") ... - __________________________________________________________ 1.3.30. failure_host_name_column (string) @@ -635,11 +607,10 @@ modparam("carrierroute", "failure_domain_column", "domain") Default value is "host_name". - Example 1-30. Set failure_host_name_column parameter + Example 1.30. Set failure_host_name_column parameter ... modparam("carrierroute", "failure_host_name_column", "host_name") ... - __________________________________________________________ 1.3.31. failure_reply_code_column (string) @@ -647,11 +618,10 @@ modparam("carrierroute", "failure_host_name_column", "host_name") Default value is "reply_code". - Example 1-31. Set failure_reply_code_column parameter + Example 1.31. Set failure_reply_code_column parameter ... modparam("carrierroute", "failure_reply_code_column", "reply_code") ... - __________________________________________________________ 1.3.32. failure_flags_column (string) @@ -659,11 +629,10 @@ modparam("carrierroute", "failure_reply_code_column", "reply_code") Default value is "flags". - Example 1-32. Set failure_flags_column parameter + Example 1.32. Set failure_flags_column parameter ... modparam("carrierroute", "failure_flags_column", "flags") ... - __________________________________________________________ 1.3.33. failure_mask_column (string) @@ -671,11 +640,10 @@ modparam("carrierroute", "failure_flags_column", "flags") Default value is "mask". - Example 1-33. Set failure_mask_column parameter + Example 1.33. Set failure_mask_column parameter ... modparam("carrierroute", "failure_mask_column", "mask") ... - __________________________________________________________ 1.3.34. failure_next_domain_column (string) @@ -683,11 +651,10 @@ modparam("carrierroute", "failure_mask_column", "mask") Default value is "next_domain". - Example 1-34. Set failure_next_domain_column parameter + Example 1.34. Set failure_next_domain_column parameter ... modparam("carrierroute", "failure_next_domain_column", "next_domain") ... - __________________________________________________________ 1.3.35. failure_comment_column (string) @@ -695,11 +662,10 @@ modparam("carrierroute", "failure_next_domain_column", "next_domain") Default value is "comment". - Example 1-35. Set failure_comment_column parameter + Example 1.35. Set failure_comment_column parameter ... modparam("carrierroute", "failure_comment_column", "comment") ... - __________________________________________________________ 1.4. Exported Functions @@ -730,9 +696,8 @@ cr_user_rewrite_uri(uri, domain) cr_tree_rewrite_uri(tree, domain) -> cr_route(tree, domain, "$rU", "$rU", "call_id", "crc32") - __________________________________________________________ -1.4.1. cr_user_carrier(user, domain, dstavp) +1.4.1. cr_user_carrier(user, domain, dstavp) This function loads the carrier and stores it in an AVP. It cannot be used in the config file mode, as it needs a mapping @@ -741,16 +706,14 @@ cr_tree_rewrite_uri(tree, domain) "subscriber_table" variable. Meaning of the parameters is as follows: - * user - Name of the user for the carrier tree lookup. Additional to a string any pseudo-variable could be used as input. * domain - Name of the routing domain to be used. Additional to a string any pseudo-variable could be used as input. * dstavp - Name of the AVP where to store the carrier id. - __________________________________________________________ -1.4.2. cr_route(carrier, domain, prefix_matching, rewrite_user, +1.4.2. cr_route(carrier, domain, prefix_matching, rewrite_user, hash_source, dstavp) This function searches for the longest match for the user given @@ -765,7 +728,6 @@ hash_source, dstavp) algorithm to calculate the hash values. Meaning of the parameters is as follows: - * carrier - The routing tree to be used. Additional to a string any pseudo-variable could be used as input. * domain - Name of the routing domain to be used. Additional @@ -784,10 +746,9 @@ hash_source, dstavp) to_user. * dstavp - Name of the AVP where to store the rewritten host. This parameter is optional. - __________________________________________________________ -1.4.3. cr_prime_route(carrier, domain, prefix_matching, rewrite_user, -hash_source, dstavp) +1.4.3. cr_prime_route(carrier, domain, prefix_matching, +rewrite_user, hash_source, dstavp) This function searches for the longest match for the user given in prefix_matching at the given domain in the given carrier @@ -801,7 +762,6 @@ hash_source, dstavp) to calculate the hash values. Meaning of the parameters is as follows: - * carrier - The routing tree to be used. Additional to a string any pseudo-variable could be used as input. * domain - Name of the routing domain to be used. Additional @@ -820,9 +780,8 @@ hash_source, dstavp) to_user. * dstavp - Name of the AVP where to store the rewritten host. This parameter is optional. - __________________________________________________________ -1.4.4. cr_next_domain(carrier, domain, prefix_matching, host, +1.4.4. cr_next_domain(carrier, domain, prefix_matching, host, reply_code, flags, dstavp) This function searches for the longest match for the user given @@ -837,7 +796,6 @@ reply_code, flags, dstavp) with prefix_matching containing a valid numerical only string. Meaning of the parameters is as follows: - * carrier - The routing tree to be used. Additional to a string any pseudo-variable could be used as input. * domain - Name of the routing domain to be used. Additional @@ -857,7 +815,6 @@ reply_code, flags, dstavp) could be used as input. * dstavp - Name of the AVP where to store the next routing domain. - __________________________________________________________ 1.5. MI Commands @@ -866,7 +823,6 @@ reply_code, flags, dstavp) passed to MI interface. Each option except host and new host can be wildcarded by * (but only * and not things like "-d prox*"). - __________________________________________________________ 1.5.1. cr_reload_routes @@ -879,18 +835,15 @@ reply_code, flags, dstavp) ids used in the script could differ from the one used internally from the server. Modifying of already existing domains is no problem. - __________________________________________________________ 1.5.2. cr_dump_routes This command prints the route rules on the command line. - __________________________________________________________ 1.5.3. cr_replace_host This command can replace the rewrite_host of a route rule, it is only usable in file mode. Following options are possible: - * -d - the domain containing the host * -p - the prefix containing the host * -h - the host to be replaced @@ -898,18 +851,16 @@ reply_code, flags, dstavp) Use the "null" prefix to specify an empty prefix. - Example 1-36. cr_replace_host usage + Example 1.36. cr_replace_host usage ... openserctl fifo cr_replace_host "-d proxy -p 49 -h proxy1 -t proxy2" ... - __________________________________________________________ 1.5.4. cr_deactivate_host This command deactivates the specified host, i.e. it sets its status to 0. It is only usable in file mode. Following options are possible: - * -d - the domain containing the host * -p - the prefix containing the host * -h - the host to be deactivated @@ -922,35 +873,31 @@ openserctl fifo cr_replace_host "-d proxy -p 49 -h proxy1 -t proxy2" Use the "null" prefix to specify an empty prefix. - Example 1-37. cr_deactivate_host usage + Example 1.37. cr_deactivate_host usage ... openserctl fifo cr_deactivate_host "-d proxy -p 49 -h proxy1" ... - __________________________________________________________ 1.5.5. cr_activate_host This command activates the specified host, i.e. it sets its status to 1. It is only usable in file mode. Following options are possible: - * -d - the domain containing the host * -p - the prefix containing the host * -h - the host to be activated Use the "null" prefix to specify an empty prefix. - Example 1-38. cr_activate_host usage + Example 1.38. cr_activate_host usage ... openserctl fifo cr_activate_host "-d proxy -p 49 -h proxy1" ... - __________________________________________________________ 1.5.6. cr_add_host This command adds a route rule, it is only usable in file mode. Following options are possible: - * -d - the domain containing the host * -p - the prefix containing the host * -h - the host to be added @@ -962,18 +909,16 @@ openserctl fifo cr_activate_host "-d proxy -p 49 -h proxy1" Use the "null" prefix to specify an empty prefix. - Example 1-39. cr_add_host usage + Example 1.39. cr_add_host usage ... openserctl fifo cr_add_host "-d proxy -p 49 -h proxy1 -w 0.25" ... - __________________________________________________________ 1.5.7. cr_delete_host This command delete the specified hosts or rules, i.e. remove them from the route tree. It is only usable in file mode. Following options are possible: - * -d - the domain containing the host * -p - the prefix containing the host * -h - the host to be added @@ -985,15 +930,14 @@ openserctl fifo cr_add_host "-d proxy -p 49 -h proxy1 -w 0.25" Use the "null" prefix to specify an empty prefix. - Example 1-40. cr_delete_host usage + Example 1.40. cr_delete_host usage ... openserctl fifo cr_delete_host "-d proxy -p 49 -h proxy1 -w 0.25" ... - __________________________________________________________ 1.6. Examples - Example 1-41. Configuration example - Routing to default tree + Example 1.41. Configuration example - Routing to default tree ... route { # route calls based on hash over callid @@ -1027,7 +971,7 @@ failure_route[2] { } - Example 1-42. Configuration example - Routing to user tree + Example 1.42. Configuration example - Routing to user tree ... route[1] { cr_user_carrier("$fU", "$fd", "$avp(s:carrier)"); @@ -1067,7 +1011,7 @@ failure_route[1] { } ... - Example 1-43. Configuration example - module configuration + Example 1.43. Configuration example - module configuration The following config file specifies within the default carrier two domains, each with an prefix that contains two hosts. It is @@ -1124,9 +1068,8 @@ domain register { } } ... - __________________________________________________________ -1.7. Installation & Running +1.7. Installation and Running 1.7.1. Database setup @@ -1145,7 +1088,7 @@ domain register { For a minimal configuration either use the config file given above, or insert some data into the tables of the module. - Example 1-44. Example database content - carrierroute table + Example 1.44. Example database content - carrierroute table ... +----+---------+--------+-------------+------+-------+---------------+ | id | carrier | domain |scan_prefix | prob | strip | rewrite_host | @@ -1178,7 +1121,7 @@ domain register { section. The usage of strings for the domains is also possible, for example at carrier 3. - Example 1-45. Example database content - simple + Example 1.45. Example database content - simple carrierfailureroute table ... +----+---------+--------+---------------+------------+-------------+ @@ -1200,7 +1143,7 @@ domain register { corresponding entry in the carrierroute table, otherwise the module will not load the routing data. - Example 1-46. Example database content - more complex + Example 1.46. Example database content - more complex carrierfailureroute table ... +----+---------+-----------+------------+--------+-----+-------------+ @@ -1227,7 +1170,7 @@ domain register { holds domain entries for this routing rules. Not all table colums are show here for brevity. - Example 1-47. Example database content - route_tree table + Example 1.47. Example database content - route_tree table ... +----+----------+ | id | carrier | @@ -1246,9 +1189,42 @@ domain register { that you specified as modul parameter) to choose the actual carrier for the users. - Example 1-48. Necessary extensions for the user table + Example 1.48. Necessary extensions for the user table Suggested changes: ... ALTER TABLE subscriber ADD cr_preferred_carrier int(10) default NULL; ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/carrierroute/doc/carrierroute.sgml b/modules_k/carrierroute/doc/carrierroute.xml similarity index 56% rename from modules_k/carrierroute/doc/carrierroute.sgml rename to modules_k/carrierroute/doc/carrierroute.xml index a53d409ec..e736d38cc 100644 --- a/modules_k/carrierroute/doc/carrierroute.sgml +++ b/modules_k/carrierroute/doc/carrierroute.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -18,17 +20,17 @@ Jonas Appel - 1&1 Internet AG + 1&1 Internet AG Hardy Kahl - 1&1 Internet AG + 1&1 Internet AG Henning Westerholt - 1&1 Internet AG + 1&1 Internet AG
henning.westerholt@1und1.de
@@ -45,12 +47,12 @@ 2007 - 1&1 Internet AG + 1&1 Internet AG - $Revision$ - $Date$ + $Revision: 3794 $ + $Date: 2008-02-28 19:22:36 +0200 (Thu, 28 Feb 2008) $ diff --git a/modules_k/carrierroute/doc/carrierroute_user.sgml b/modules_k/carrierroute/doc/carrierroute_admin.xml similarity index 99% rename from modules_k/carrierroute/doc/carrierroute_user.sgml rename to modules_k/carrierroute/doc/carrierroute_admin.xml index 57d309133..ea0d1ba83 100644 --- a/modules_k/carrierroute/doc/carrierroute_user.sgml +++ b/modules_k/carrierroute/doc/carrierroute_admin.xml @@ -1230,6 +1230,7 @@ openserctl fifo cr_activate_host "-d proxy -p 49 -h proxy1" -s - an optional strip value + Use the "null" prefix to specify an empty prefix. @@ -1273,6 +1274,7 @@ openserctl fifo cr_add_host "-d proxy -p 49 -h proxy1 -w 0.25" -s - an optional strip value + Use the "null" prefix to specify an empty prefix. @@ -1433,7 +1435,7 @@ domain register {
- Installation & Running + Installation and Running
Database setup diff --git a/modules_k/cfgutils/README b/modules_k/cfgutils/README index 2f3193445..d4fd8037e 100644 --- a/modules_k/cfgutils/README +++ b/modules_k/cfgutils/README @@ -3,6 +3,7 @@ cfgutils Module Henning Westerholt 1und1 Internet AG + Carsten Bock @@ -14,9 +15,13 @@ Elena-Ramona Modroiu Copyright © 2007, 2008 1und1 Internet AG, BASIS AudioNet GmbH, Elena-Ramona Modroiu + Revision History + Revision $Revision: 3839 $ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -52,27 +57,29 @@ Elena-Ramona Modroiu 1.6.2. $time(name) 1.6.3. $shv(name) + 2. Frequently Asked Questions + List of Examples - 1-1. initial_probability parameter usage - 1-2. hash_file parameter usage - 1-3. shvset parameter usage - 1-4. rand_event() usage - 1-5. rand_set_prob() usage - 1-6. rand_reset_prob() usage - 1-7. rand_get_prob() usage - 1-8. sleep usage - 1-9. usleep usage - 1-10. rand_set_prob usage - 1-11. rand_reset_prob usage - 1-12. rand_get_prob usage - 1-13. check_config_hash usage - 1-14. get_config_hash usage - 1-15. shv_set usage - 1-16. shv_get usage - 1-17. RANDOM pseudo-variable usage - 1-18. time(name) pseudo-variable usage - 1-19. shv(name) pseudo-variable usage - __________________________________________________________ + + 1.1. initial_probability parameter usage + 1.2. hash_file parameter usage + 1.3. shvset parameter usage + 1.4. rand_event() usage + 1.5. rand_set_prob() usage + 1.6. rand_reset_prob() usage + 1.7. rand_get_prob() usage + 1.8. sleep usage + 1.9. usleep usage + 1.10. rand_set_prob usage + 1.11. rand_reset_prob usage + 1.12. rand_get_prob usage + 1.13. check_config_hash usage + 1.14. get_config_hash usage + 1.15. shv_set usage + 1.16. shv_get usage + 1.17. RANDOM pseudo-variable usage + 1.18. time(name) pseudo-variable usage + 1.19. shv(name) pseudo-variable usage Chapter 1. User's Guide @@ -117,15 +124,12 @@ Chapter 1. User's Guide modifications of this file after the server start. This functions are available as the FIFO commands "check_config_hash" and "get_config_hash". - __________________________________________________________ 1.2. Dependencies The module depends on the following modules (in the other words the listed modules must be loaded before this module): - * none - __________________________________________________________ 1.3. Exported Parameters @@ -135,10 +139,10 @@ Chapter 1. User's Guide Default value is "10". - Example 1-1. initial_probability parameter usage + Example 1.1. initial_probability parameter usage modparam("cfgutils", "initial_probability", "15"); - __________________________________________________________ + 1.3.2. hash_file (string) @@ -148,10 +152,10 @@ modparam("cfgutils", "initial_probability", "15"); The default value is equal the config file that is used from the server, for example "/etc/openser/openser.cfg". - Example 1-2. hash_file parameter usage + Example 1.2. hash_file parameter usage modparam("cfgutils", "hash_file", "/etc/openser/openser.cfg"); - __________________________________________________________ + 1.3.3. shvset (string) @@ -160,7 +164,6 @@ modparam("cfgutils", "hash_file", "/etc/openser/openser.cfg"); The value of the parameter has the format: _name_ '=' _type_ ':' _value_ - * _name_: shared variable name * _type_: type of the value + "i": integer value @@ -169,12 +172,11 @@ modparam("cfgutils", "hash_file", "/etc/openser/openser.cfg"); Default value is "NULL". - Example 1-3. shvset parameter usage + Example 1.3. shvset parameter usage ... modparam("cfgutils", "shvset", "debug=i:1") modparam("cfgutils", "shvset", "pstngw=s:sip:10.10.10.10") ... - __________________________________________________________ 1.4. Exported Functions @@ -183,7 +185,7 @@ modparam("cfgutils", "shvset", "pstngw=s:sip:10.10.10.10") Return true or false, depending on a random value and a probability value. - Example 1-4. rand_event() usage + Example 1.4. rand_event() usage ... if (rand_event()) { append_to_reply("Retry-After: 120\n"); @@ -192,7 +194,6 @@ if (rand_event()) { }; # normal message processing follows ... - __________________________________________________________ 1.4.2. rand_set_prob(probabiltiy) @@ -200,65 +201,59 @@ if (rand_event()) { "probability" can have a value from the range 0..99. - Example 1-5. rand_set_prob() usage + Example 1.5. rand_set_prob() usage ... rand_set_prob("4"); ... - __________________________________________________________ 1.4.3. rand_reset_prob() Reset the probability back to the inital value. - Example 1-6. rand_reset_prob() usage + Example 1.6. rand_reset_prob() usage ... rand_reset_prob(); ... - __________________________________________________________ 1.4.4. rand_get_prob() Return the current probability setting, e.g. for logging purposes. - Example 1-7. rand_get_prob() usage + Example 1.7. rand_get_prob() usage ... rand_get_prob(); - __________________________________________________________ -1.4.5. sleep(time) + +1.4.5. sleep(time) Waits "time" seconds. Meaning of the parameters is as follows: - * time - Time to wait in seconds. This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-8. sleep usage + Example 1.8. sleep usage ... sleep("1"); ... - __________________________________________________________ -1.4.6. usleep(time) +1.4.6. usleep(time) Waits "time" milli-seconds. Meaning of the parameters is as follows: - * time - Time to wait in milli-seconds. This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-9. usleep usage + Example 1.9. usleep usage ... usleep("500"); ... - __________________________________________________________ 1.5. MI Commands @@ -269,11 +264,10 @@ usleep("500"); The parameter value must be a number from 0 to 99. - Example 1-10. rand_set_prob usage + Example 1.10. rand_set_prob usage ... $ openserctl fifo rand_set_prob 10 ... - __________________________________________________________ 1.5.2. rand_reset_prob @@ -281,11 +275,10 @@ $ openserctl fifo rand_set_prob 10 This command don't need a parameter. - Example 1-11. rand_reset_prob usage + Example 1.11. rand_reset_prob usage ... $ openserctl fifo rand_reset_prob ... - __________________________________________________________ 1.5.3. rand_get_prob @@ -293,12 +286,11 @@ $ openserctl fifo rand_reset_prob The function return the actual probability value. - Example 1-12. rand_get_prob usage + Example 1.12. rand_get_prob usage ... $ openserctl fifo get_prob The actual probability is 50 percent. ... - __________________________________________________________ 1.5.4. check_config_hash @@ -309,12 +301,11 @@ The actual probability is 50 percent. 400 if there are not identical and 500 on errors. Additional a short text message is printed. - Example 1-13. check_config_hash usage + Example 1.13. check_config_hash usage ... $ openserctl fifo check_config_hash The actual config file hash is identical to the stored one. ... - __________________________________________________________ 1.5.5. get_config_hash @@ -322,19 +313,17 @@ The actual config file hash is identical to the stored one. The function returns 200 OK and the hash value. - Example 1-14. get_config_hash usage + Example 1.14. get_config_hash usage ... $ openserctl fifo get_config_hash 1580a37104eb4de69ab9f31ce8d6e3e0 ... - __________________________________________________________ 1.5.6. shv_set Set the value of a shared variable ($shv(name)). Parameters: - * _name_: shared variable name * _type_: type of the value + "int": integer value @@ -348,18 +337,16 @@ $ openserctl fifo get_config_hash _value_ _empty_line_ - Example 1-15. shv_set usage + Example 1.15. shv_set usage ... $ openserctl fifo shv_set debug int 0 ... - __________________________________________________________ 1.5.7. shv_get Get the value of a shared variable ($shv(name)). Parameters: - * _name_: shared variable name. If this parameter is missing, all shared variables are returned. @@ -368,12 +355,11 @@ $ openserctl fifo shv_set debug int 0 _name_ _empty_line_ - Example 1-16. shv_get usage + Example 1.16. shv_get usage ... $ openserctl fifo shv_get debug $ openserctl fifo shv_get ... - __________________________________________________________ 1.6. Exported pseudo-variables @@ -381,7 +367,7 @@ $ openserctl fifo shv_get Returns a random value from the [0 - 2^31) range. - Example 1-17. RANDOM pseudo-variable usage + Example 1.17. RANDOM pseudo-variable usage ... if (get_random()) { $avp(i:10) = ($RANDOM / 16777216); # 2^24 @@ -394,14 +380,12 @@ if (get_random()) { }; # normal message processing follows - __________________________________________________________ 1.6.2. $time(name) The PV provides access to broken-down time attributes. The "name" can be: - * sec - return seconds (int 0-59) * min - return minutes (int 0-59) * hour - return hours (int 0-23) @@ -413,13 +397,12 @@ if (get_random()) { * isdst - return daylight saving time status (int, 0 - DST off, >0 DST on) - Example 1-18. time(name) pseudo-variable usage + Example 1.18. time(name) pseudo-variable usage ... if ($time(year) == 2008) { xlog("request: $rm from $fu to $ru in year 2008\n"); } ... - __________________________________________________________ 1.6.3. $shv(name) @@ -430,7 +413,7 @@ if ($time(year) == 2008) { variable. The module exports a set of MI functions to get/set the value of shared variables. - Example 1-19. shv(name) pseudo-variable usage + Example 1.19. shv(name) pseudo-variable usage ... modparam("cfgutils", "shvset", "debug=i:1") ... @@ -438,3 +421,36 @@ if ($shv(debug) == 1) { xlog("request: $rm from $fu to $ru\n"); } ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/cfgutils/doc/cfgutils.sgml b/modules_k/cfgutils/doc/cfgutils.xml similarity index 71% rename from modules_k/cfgutils/doc/cfgutils.sgml rename to modules_k/cfgutils/doc/cfgutils.xml index 457c4add4..85bb19ecb 100644 --- a/modules_k/cfgutils/doc/cfgutils.sgml +++ b/modules_k/cfgutils/doc/cfgutils.xml @@ -1,10 +1,12 @@ - + - + + - + %docentities; ]> @@ -45,8 +47,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/cfgutils/doc/cfgutils_user.sgml b/modules_k/cfgutils/doc/cfgutils_admin.xml similarity index 99% rename from modules_k/cfgutils/doc/cfgutils_user.sgml rename to modules_k/cfgutils/doc/cfgutils_admin.xml index 9fcd7b844..b79286b46 100644 --- a/modules_k/cfgutils/doc/cfgutils_user.sgml +++ b/modules_k/cfgutils/doc/cfgutils_admin.xml @@ -441,7 +441,7 @@ $ openserctl fifo shv_get ... if (get_random()) { $avp(i:10) = ($RANDOM / 16777216); # 2^24 - if ($avp(i:10) < 10) { + if ($avp(i:10) < 10) { $avp(i:10) = 10; } append_to_reply("Retry-After: $avp(i:10)\n"); diff --git a/modules_k/cpl-c/README b/modules_k/cpl-c/README index b670168b9..c92fc033d 100644 --- a/modules_k/cpl-c/README +++ b/modules_k/cpl-c/README @@ -9,9 +9,13 @@ Edited by Bogdan-Andrei Iancu Copyright © 2003 FhG FOKUS + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -51,31 +55,33 @@ Bogdan-Andrei Iancu 1.5.2. REMOVE_CPL 1.5.3. GET_CPL - 1.6. Installation & Running + 1.6. Installation and Running 1.6.1. Database setup + 2. Frequently Asked Questions + List of Examples - 1-1. Set db_url parameter - 1-2. Set db_table parameter - 1-3. Set username_column parameter - 1-4. Set domain_column parameter - 1-5. Set cpl_xml_column parameter - 1-6. Set cpl_bin_column parameter - 1-7. Set cpl_dtd_file parameter - 1-8. Set log_dir parameter - 1-9. Set proxy_recurse parameter - 1-10. Set proxy_route parameter - 1-11. Set case_sensitive parameter - 1-12. Set realm_prefix parameter - 1-13. Set timer_avp parameter - 1-14. Set lookup_domain parameter - 1-15. Set lookup_append_branches parameter - 1-16. Set use_domain parameter - 1-17. cpl_run_script usage - 1-18. cpl_process_register usage - 1-19. cpl_process_register_norpl usage - __________________________________________________________ + + 1.1. Set db_url parameter + 1.2. Set db_table parameter + 1.3. Set username_column parameter + 1.4. Set domain_column parameter + 1.5. Set cpl_xml_column parameter + 1.6. Set cpl_bin_column parameter + 1.7. Set cpl_dtd_file parameter + 1.8. Set log_dir parameter + 1.9. Set proxy_recurse parameter + 1.10. Set proxy_route parameter + 1.11. Set case_sensitive parameter + 1.12. Set realm_prefix parameter + 1.13. Set timer_avp parameter + 1.14. Set lookup_domain parameter + 1.15. Set lookup_append_branches parameter + 1.16. Set use_domain parameter + 1.17. cpl_run_script usage + 1.18. cpl_process_register usage + 1.19. cpl_process_register_norpl usage Chapter 1. User's Guide @@ -84,14 +90,12 @@ Chapter 1. User's Guide cpl-c modules implements a CPL (Call Processing Language) interpreter. Support for uploading/downloading/removing scripts via SIP REGISTER method is present. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * any DB module- a DB module for interfacing the DB operations (modules like mysql, postgres, dbtext, etc) * TM (Transaction) module- used for proxying/forking requests @@ -101,17 +105,14 @@ Chapter 1. User's Guide * USRLOC (User Location) module - used for implementing lookup("registration") tag (adding into location set of the users' contact) - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * libxml2 and libxml2-devel - on some SO, these to packages are merged into libxml2. This library contains an engine for XML parsing, DTD validation and DOM manipulation. - __________________________________________________________ 1.3. Exported Parameters @@ -124,11 +125,10 @@ Chapter 1. User's Guide Default value is "mysql://openser:openserrw@localhost/openser". - Example 1-1. Set db_url parameter + Example 1.1. Set db_url parameter ... modparam("cpl-c","db_url","dbdriver://username:password@dbhost/dbname") ... - __________________________________________________________ 1.3.2. db_table (string) @@ -139,11 +139,10 @@ modparam("cpl-c","db_url","dbdriver://username:password@dbhost/dbname") Default value is "cpl". - Example 1-2. Set db_table parameter + Example 1.2. Set db_table parameter ... modparam("cpl-c","cpl_table","cpl") ... - __________________________________________________________ 1.3.3. username_column (string) @@ -151,11 +150,10 @@ modparam("cpl-c","cpl_table","cpl") Default value is "username". - Example 1-3. Set username_column parameter + Example 1.3. Set username_column parameter ... modparam("cpl-c","username_column","username") ... - __________________________________________________________ 1.3.4. domain_column (string) @@ -163,11 +161,10 @@ modparam("cpl-c","username_column","username") Default value is "domain". - Example 1-4. Set domain_column parameter + Example 1.4. Set domain_column parameter ... modparam("cpl-c","domain_column","domain") ... - __________________________________________________________ 1.3.5. cpl_xml_column (string) @@ -176,11 +173,10 @@ modparam("cpl-c","domain_column","domain") Default value is "cpl_xml". - Example 1-5. Set cpl_xml_column parameter + Example 1.5. Set cpl_xml_column parameter ... modparam("cpl-c","cpl_xml_column","cpl_xml") ... - __________________________________________________________ 1.3.6. cpl_bin_column (string) @@ -189,11 +185,10 @@ modparam("cpl-c","cpl_xml_column","cpl_xml") Default value is "cpl_bin". - Example 1-6. Set cpl_bin_column parameter + Example 1.6. Set cpl_bin_column parameter ... modparam("cpl-c","cpl_bin_column","cpl_bin") ... - __________________________________________________________ 1.3.7. cpl_dtd_file (string) @@ -204,11 +199,10 @@ modparam("cpl-c","cpl_bin_column","cpl_bin") This parameter is MANDATORY! - Example 1-7. Set cpl_dtd_file parameter + Example 1.7. Set cpl_dtd_file parameter ... modparam("cpl-c","cpl_dtd_file","/etc/openser/cpl-06.dtd") ... - __________________________________________________________ 1.3.8. log_dir (string) @@ -219,11 +213,10 @@ modparam("cpl-c","cpl_dtd_file","/etc/openser/cpl-06.dtd") If this parameter is absent, the logging will be disabled without generating error on execution. - Example 1-8. Set log_dir parameter + Example 1.8. Set log_dir parameter ... modparam("cpl-c","log_dir","/var/log/openser/cpl") ... - __________________________________________________________ 1.3.9. proxy_recurse (int) @@ -236,11 +229,10 @@ modparam("cpl-c","log_dir","/var/log/openser/cpl") Default value of this parameter is 0. - Example 1-9. Set proxy_recurse parameter + Example 1.9. Set proxy_recurse parameter ... modparam("cpl-c","proxy_recurse",2) ... - __________________________________________________________ 1.3.10. proxy_route (int) @@ -250,11 +242,10 @@ modparam("cpl-c","proxy_recurse",2) Default value of this parameter is 0 (none). - Example 1-10. Set proxy_route parameter + Example 1.10. Set proxy_route parameter ... modparam("cpl-c","proxy_route",1) ... - __________________________________________________________ 1.3.11. case_sensitive (int) @@ -264,11 +255,10 @@ modparam("cpl-c","proxy_route",1) Default value of this parameter is 0. - Example 1-11. Set case_sensitive parameter + Example 1.11. Set case_sensitive parameter ... modparam("cpl-c","case_sensitive",1) ... - __________________________________________________________ 1.3.12. realm_prefix (string) @@ -277,11 +267,10 @@ modparam("cpl-c","case_sensitive",1) Default value of this parameter is empty string. - Example 1-12. Set realm_prefix parameter + Example 1.12. Set realm_prefix parameter ... modparam("cpl-c","realm_prefix","sip.") ... - __________________________________________________________ 1.3.13. timer_avp (string) @@ -294,11 +283,10 @@ modparam("cpl-c","realm_prefix","sip.") Default value of this parameter is NULL. - Example 1-13. Set timer_avp parameter + Example 1.13. Set timer_avp parameter ... modparam("cpl-c","timer_avp","$avp(i:14)") ... - __________________________________________________________ 1.3.14. lookup_domain (string) @@ -311,11 +299,10 @@ modparam("cpl-c","timer_avp","$avp(i:14)") Default value of this parameter is NULL. - Example 1-14. Set lookup_domain parameter + Example 1.14. Set lookup_domain parameter ... modparam("cpl-c","lookup_domain","location") ... - __________________________________________________________ 1.3.15. lookup_append_branches (int) @@ -326,11 +313,10 @@ modparam("cpl-c","lookup_domain","location") Default value of this parameter is 0. - Example 1-15. Set lookup_append_branches parameter + Example 1.15. Set lookup_append_branches parameter ... modparam("cpl-c","lookup_append_branches",1) ... - __________________________________________________________ 1.3.16. use_domain (integer) @@ -339,15 +325,14 @@ modparam("cpl-c","lookup_append_branches",1) Default value is "0 (disabled)". - Example 1-16. Set use_domain parameter + Example 1.16. Set use_domain parameter ... modparam("cpl-c","use_domain",1) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. cpl_run_script(type,mode) +1.4.1. cpl_run_script(type,mode) Starts the execution of the CPL script. The user name is fetched from new_uri or requested uri or from To header -in @@ -367,7 +352,6 @@ modparam("cpl-c","use_domain",1) (this can be done from script). Meaning of the parameters is as follows: - * type - which part of the script should be run; set it to "incoming" for having the incoming part of script executed (when an INVITE is received) or to "outgoing" for running @@ -402,13 +386,12 @@ modparam("cpl-c","use_domain",1) This function can be used from REQUEST_ROUTE. - Example 1-17. cpl_run_script usage + Example 1.17. cpl_run_script usage ... cpl_run_script("incoming","force_stateful"); ... - __________________________________________________________ -1.4.2. cpl_process_register() +1.4.2. cpl_process_register() This function MUST be called only for REGISTER requests. It checks if the current REGISTER request is related or not with @@ -431,15 +414,14 @@ cpl_run_script("incoming","force_stateful"); This function can be used from REQUEST_ROUTE. - Example 1-18. cpl_process_register usage + Example 1.18. cpl_process_register usage ... if (method=="REGISTER") { cpl_process_register(); } ... - __________________________________________________________ -1.4.3. cpl_process_register_norpl() +1.4.3. cpl_process_register_norpl() Same as "cpl_process_register" without internally generating the reply. All information (script) is appended to the reply @@ -450,7 +432,7 @@ if (method=="REGISTER") { This function can be used from REQUEST_ROUTE. - Example 1-19. cpl_process_register_norpl usage + Example 1.19. cpl_process_register_norpl usage ... if (method=="REGISTER") { cpl_process_register(); @@ -458,11 +440,10 @@ if (method=="REGISTER") { save("location"); } ... - __________________________________________________________ 1.5. Exported MI Functions -1.5.1. LOAD_CPL +1.5.1. LOAD_CPL For the given user, loads the XML cpl file, compiles it into binary format and stores both format into database. @@ -470,7 +451,6 @@ if (method=="REGISTER") { Name: LOAD_CPL Parameters: - * username : name of the user * cpl_filename: file name @@ -479,9 +459,8 @@ if (method=="REGISTER") { username cpl_filename _empty_line_ - __________________________________________________________ -1.5.2. REMOVE_CPL +1.5.2. REMOVE_CPL For the given user, removes the entire database record (XML cpl and binary cpl); user with empty cpl scripts are not accepted. @@ -489,32 +468,28 @@ if (method=="REGISTER") { Name: REMOVE_CPL Parameters: - * username : name of the user MI FIFO Command format: :REMOVE_CPL:_reply_fifo_file_ username _empty_line_ - __________________________________________________________ -1.5.3. GET_CPL +1.5.3. GET_CPL For the given user, returns the CPL script in XML format. Name: GET_CPL Parameters: - * username : name of the user MI FIFO Command format: :GET_CPL:_reply_fifo_file_ username _empty_line_ - __________________________________________________________ -1.6. Installation & Running +1.6. Installation and Running 1.6.1. Database setup @@ -529,3 +504,36 @@ if (method=="REGISTER") { can also find the complete database documentation on the project webpage, http://www.openser.org/docs/db-tables/openser-db-devel.html. + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/cpl-c/doc/cpl-c.sgml b/modules_k/cpl-c/doc/cpl-c.xml similarity index 64% rename from modules_k/cpl-c/doc/cpl-c.sgml rename to modules_k/cpl-c/doc/cpl-c.xml index 2345e917d..484994a99 100644 --- a/modules_k/cpl-c/doc/cpl-c.sgml +++ b/modules_k/cpl-c/doc/cpl-c.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -37,8 +39,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/cpl-c/doc/cpl-c_user.sgml b/modules_k/cpl-c/doc/cpl-c_admin.xml similarity index 98% rename from modules_k/cpl-c/doc/cpl-c_user.sgml rename to modules_k/cpl-c/doc/cpl-c_admin.xml index 39ff58df0..a90069d10 100644 --- a/modules_k/cpl-c/doc/cpl-c_user.sgml +++ b/modules_k/cpl-c/doc/cpl-c_admin.xml @@ -467,7 +467,7 @@ modparam("cpl-c","use_domain",1) - IS_STATELESS - the current INVITE has + IS_STATELESS - the current INVITE has no transaction created yet. All replies (redirection or deny) will be done is a stateless way. The execution will switch to stateful only when proxy is done. So, if the @@ -476,7 +476,7 @@ modparam("cpl-c","use_domain",1) - IS_STATEFUL - the current INVITE has + IS_STATEFUL - the current INVITE has already a transaction associated. All signaling operations (replies or proxy) will be done in stateful way.So, if the function returns, will be in stateful mode. @@ -484,7 +484,7 @@ modparam("cpl-c","use_domain",1) - FORCE_STATEFUL - the current INVITE + FORCE_STATEFUL - the current INVITE has no transaction created yet. All signaling operations will be done is a stateful way (on signaling, the transaction will be created from within the interpreter). @@ -586,7 +586,7 @@ if (method=="REGISTER") { save("location"); } ... - +
@@ -672,7 +672,7 @@ if (method=="REGISTER") {
- Installation & Running + Installation and Running
Database setup diff --git a/modules_k/db_berkeley/README b/modules_k/db_berkeley/README index 441723cf5..be20496dc 100644 --- a/modules_k/db_berkeley/README +++ b/modules_k/db_berkeley/README @@ -9,9 +9,13 @@ Edited by Will Quan Copyright © 2007 Cisco Systems + Revision History + Revision $Revision: 846 $ $Date: 2006-05-22 09:15:40 -0500 + (Mon, 22 May 2006) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -41,18 +45,20 @@ Will Quan 1.13. DB Recovery : bdb_recover 1.14. Known Limitations + 2. Frequently Asked Questions + List of Examples - 1-1. Set auto_reload parameter - 1-2. Set log_enable parameter - 1-3. Set journal_roll_interval parameter - 1-4. METADATA_COLUMNS - 1-5. contents of version table - 1-6. METADATA_COLUMNS - 1-7. METADATA_KEYS - 1-8. METADATA_LOGFLAGS - 1-9. openserdbctl - 1-10. bdb_recover usage - __________________________________________________________ + + 1.1. Set auto_reload parameter + 1.2. Set log_enable parameter + 1.3. Set journal_roll_interval parameter + 1.4. METADATA_COLUMNS + 1.5. contents of version table + 1.6. METADATA_COLUMNS + 1.7. METADATA_KEYS + 1.8. METADATA_LOGFLAGS + 1.9. openserdbctl + 1.10. bdb_recover usage Chapter 1. User's Guide @@ -60,24 +66,19 @@ Chapter 1. User's Guide This is a module which integrates the Berkeley DB into OpenSER. It implements the DB API defined in OpenSER. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * Berkeley Berkeley DB 4.6 - an embedded database. - __________________________________________________________ 1.3. Exported Parameters @@ -90,11 +91,10 @@ Chapter 1. User's Guide Default value is 0 (1 - on / 0 - off). - Example 1-1. Set auto_reload parameter + Example 1.1. Set auto_reload parameter ... modparam("db_berkeley", "auto_reload", 1) ... - __________________________________________________________ 1.3.2. log_enable (integer) @@ -111,11 +111,10 @@ modparam("db_berkeley", "auto_reload", 1) Default value is 0 (1 - on / 0 - off). - Example 1-2. Set log_enable parameter + Example 1.2. Set log_enable parameter ... modparam("db_berkeley", "log_enable", 1) ... - __________________________________________________________ 1.3.3. journal_roll_interval (integer seconds) @@ -125,16 +124,14 @@ modparam("db_berkeley", "log_enable", 1) Default value is 0 (off). - Example 1-3. Set journal_roll_interval parameter + Example 1.3. Set journal_roll_interval parameter ... modparam("db_berkeley", "journal_roll_interval", 3600) ... - __________________________________________________________ 1.4. Exported Functions No function exported to be used from configuration file. - __________________________________________________________ 1.5. Exported MI Functions @@ -153,7 +150,6 @@ modparam("db_berkeley", "journal_roll_interval", 3600) table provide the tablename as the arguement (eg subscriber); to reload all tables provide the db_path to the db files. The path can be found in openserctlrc DB_PATH variable. - __________________________________________________________ 1.6. Installation and Running @@ -170,7 +166,6 @@ modparam("db_berkeley", "journal_roll_interval", 3600) Because the module dependes on an external library, the db_berkeley module is not compiled and installed by default. You can use one of the next options. - * edit the "Makefile" and remove "db_berkeley" from "excluded_modules" list. Then follow the standard procedure to install OpenSER: "make all; make install". @@ -252,7 +247,6 @@ by default none is loaded (w.o domain) in order to find a result to that particular subscriber query. The main point is 'use_domain' can not be changed once the db_berkeley is setup. - __________________________________________________________ 1.7. Database Schema and Metadata @@ -269,7 +263,7 @@ by default none is loaded record delimiter within the Berkeley DB implementation and must not be present in any DB field. - Example 1-4. METADATA_COLUMNS + Example 1.4. METADATA_COLUMNS METADATA_COLUMNS table_name(str) table_version(int) METADATA_KEY @@ -291,7 +285,7 @@ METADATA_KEY the 'db_berkeley.sh dump version' command. It shows contents of table 'version' in plain text. - Example 1-5. contents of version table + Example 1.5. contents of version table VERSION=3 format=print type=hash @@ -341,7 +335,6 @@ HEADER=END usr_preferences| usr_preferences|2 DATA=END - __________________________________________________________ 1.8. METADATA_COLUMNS (required) @@ -349,21 +342,19 @@ DATA=END Each is space delimited. Here is an example of the data taken from table subscriber : - Example 1-6. METADATA_COLUMNS + Example 1.6. METADATA_COLUMNS METADATA_COLUMNS username(str) domain(str) password(str) ha1(str) ha1b(str) first_name(st r) last_name(str) email_address(str) datetime_created(datetime) timezone (str) rpid(str) Related (hardcoded) limitations: - * maximum of 32 columns per table. * maximum tablename size is 64. * maximum data length is 2048 Currently supporting these five types: str, datetime, int, double, string. - __________________________________________________________ 1.9. METADATA_KEYS (required) @@ -372,14 +363,13 @@ r) last_name(str) email_address(str) datetime_created(datetime) timezone is an example taken from table subscriber that brings up a good point: - Example 1-7. METADATA_KEYS + Example 1.7. METADATA_KEYS METADATA_KEY 0 1 The point is that both the username and domain name are require as the key to this record. Thus, usrloc modparam use_domain = 1 must be set for this to work. - __________________________________________________________ 1.10. METADATA_READONLY (optional) @@ -388,7 +378,6 @@ r) last_name(str) email_address(str) datetime_created(datetime) timezone as read-write (loads metadata) and then if this is set=1, it will close and reopen as read only (ro). I found this useful because readonly has impacts on the internal db locking etc. - __________________________________________________________ 1.11. METADATA_LOGFLAGS (optional) @@ -397,7 +386,7 @@ r) last_name(str) email_address(str) datetime_created(datetime) timezone value is taken as 0. Here are the masks so far (taken from bdb_lib.h): - Example 1-8. METADATA_LOGFLAGS + Example 1.8. METADATA_LOGFLAGS #define JLOG_NONE 0 #define JLOG_INSERT 1 #define JLOG_DELETE 2 @@ -408,7 +397,6 @@ r) last_name(str) email_address(str) datetime_created(datetime) timezone This means that if you want to journal INSERTS to local file and syslog the value should be set to 1+16=17. Or if you do not want to journal at all, set this to 0. - __________________________________________________________ 1.12. DB Maintaince Script : openserdbctl @@ -417,7 +405,7 @@ r) last_name(str) email_address(str) datetime_created(datetime) timezone correctly in openserctlrc. Note Unsupported commands are- backup, restore, migrate, copy, serweb. - Example 1-9. openserdbctl + Example 1.9. openserdbctl usage: openserdbctl create openserdbctl presence openserdbctl extra @@ -433,7 +421,6 @@ b.new -> db) tance of db; output DB_PATH/db.new) openserdbctl bdb newappend db datafile (appends data to a new ins tance of db; output DB_PATH/db.new) - __________________________________________________________ 1.13. DB Recovery : bdb_recover @@ -459,7 +446,7 @@ tance of db; output DB_PATH/db.new) The following illustrates the four operations available to the administrator. - Example 1-10. bdb_recover usage + Example 1.10. bdb_recover usage usage: ./bdb_recover -s schemadir [-h home] [-c tablename] This will create a brand new DB file with metadata. @@ -487,7 +474,6 @@ possible Important note- A corrupted DB file must be moved out of the way before bdb_recover is executed. - __________________________________________________________ 1.14. Known Limitations @@ -495,3 +481,36 @@ possible sequence) mechanism. Consequently, this version does not support surragate keys in dbschema. These are the id columns in the tables. + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/db_berkeley/doc/db_berkeley.sgml b/modules_k/db_berkeley/doc/db_berkeley.xml similarity index 75% rename from modules_k/db_berkeley/doc/db_berkeley.sgml rename to modules_k/db_berkeley/doc/db_berkeley.xml index 361a32221..6c45cb492 100644 --- a/modules_k/db_berkeley/doc/db_berkeley.sgml +++ b/modules_k/db_berkeley/doc/db_berkeley.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> diff --git a/modules_k/db_berkeley/doc/db_berkeley_user.sgml b/modules_k/db_berkeley/doc/db_berkeley_admin.xml similarity index 100% rename from modules_k/db_berkeley/doc/db_berkeley_user.sgml rename to modules_k/db_berkeley/doc/db_berkeley_admin.xml diff --git a/modules_k/db_flatstore/README b/modules_k/db_flatstore/README index b319acb93..ac28ae600 100644 --- a/modules_k/db_flatstore/README +++ b/modules_k/db_flatstore/README @@ -9,9 +9,13 @@ Edited by Jan Janak Copyright © 2004, 2005 FhG FOKUS + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -33,10 +37,11 @@ Jan Janak 1.5.1. flat_rotate 2. Developer's Guide + 3. Frequently Asked Questions List of Examples - 1-1. Set "flush" parameter - __________________________________________________________ + + 1.1. Set "flush" parameter Chapter 1. User's Guide @@ -86,7 +91,6 @@ modparam("acc", "db_url", "flatstore:/var/log/acc") the complete data for a table you can simply concatenate the contents of files with the same table name but different process id. - __________________________________________________________ 1.1.1. Rotating Log Files @@ -96,7 +100,6 @@ modparam("acc", "db_url", "flatstore:/var/log/acc") rotation itself has to be done by another application (such as logrotate). Follow these steps to rotate files generated by flatstore module: - * Rename the files that you want to rotate: cd /var/log/acc mv acc_1.log acc_1.log.20050605 @@ -116,24 +119,19 @@ openserctl fifo flat_rotate write. It is normal that the files will be not created immediately if there is no traffic on the proxy server. * Move the renamed files somewhere else and process them. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -143,20 +141,18 @@ openserctl fifo flat_rotate Default value is 1. - Example 1-1. Set "flush" parameter + Example 1.1. Set "flush" parameter ... modparam("db_flatstore", "flush", 0) ... - __________________________________________________________ 1.4. Exported Functions There are no function exported to routing script. - __________________________________________________________ 1.5. Exported MI Functions -1.5.1. flat_rotate +1.5.1. flat_rotate It changes the name of the files where it is written. @@ -167,8 +163,40 @@ modparam("db_flatstore", "flush", 0) MI FIFO Command Format: :flat_rotate:_reply_fifo_file_ _empty_line_ - __________________________________________________________ Chapter 2. Developer's Guide The module implements the DB API. + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/db_flatstore/doc/db_flatstore.sgml b/modules_k/db_flatstore/doc/db_flatstore.xml similarity index 60% rename from modules_k/db_flatstore/doc/db_flatstore.sgml rename to modules_k/db_flatstore/doc/db_flatstore.xml index 7ab912874..5474aa677 100644 --- a/modules_k/db_flatstore/doc/db_flatstore.sgml +++ b/modules_k/db_flatstore/doc/db_flatstore.xml @@ -1,12 +1,14 @@ - + - - + + + - + %docentities; ]> @@ -39,8 +41,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/db_flatstore/doc/db_flatstore_user.sgml b/modules_k/db_flatstore/doc/db_flatstore_admin.xml similarity index 100% rename from modules_k/db_flatstore/doc/db_flatstore_user.sgml rename to modules_k/db_flatstore/doc/db_flatstore_admin.xml diff --git a/modules_k/db_flatstore/doc/db_flatstore_devel.sgml b/modules_k/db_flatstore/doc/db_flatstore_devel.xml similarity index 100% rename from modules_k/db_flatstore/doc/db_flatstore_devel.sgml rename to modules_k/db_flatstore/doc/db_flatstore_devel.xml diff --git a/modules_k/db_mysql/README b/modules_k/db_mysql/README index 69101ff11..cae7ce34c 100644 --- a/modules_k/db_mysql/README +++ b/modules_k/db_mysql/README @@ -2,16 +2,18 @@ mysql Module Daniel-Constantin Mierla - voice-system.ro - Edited by Daniel-Constantin Mierla Copyright © 2006 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -29,11 +31,13 @@ Daniel-Constantin Mierla 1.4. Exported Functions 1.5. Installation + 2. Frequently Asked Questions + List of Examples - 1-1. Set ping_interval parameter - 1-2. Set timeout_interval parameter - 1-3. Set auto_reconnect parameter - __________________________________________________________ + + 1.1. Set ping_interval parameter + 1.2. Set timeout_interval parameter + 1.3. Set auto_reconnect parameter Chapter 1. User's Guide @@ -41,25 +45,20 @@ Chapter 1. User's Guide This is a module which provides MySQL connectivity for OpenSER. It implements the DB API defined in OpenSER. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * libmysqlclient-dev - the development libraries of mysql-client. - __________________________________________________________ 1.3. Exported Parameters @@ -70,11 +69,10 @@ Chapter 1. User's Guide Default value is 300 (5 min). - Example 1-1. Set ping_interval parameter + Example 1.1. Set ping_interval parameter ... modparam("db_mysql", "ping_interval", 600) ... - __________________________________________________________ 1.3.2. timeout_interval (integer) @@ -89,11 +87,10 @@ modparam("db_mysql", "ping_interval", 600) Default value is 2 (6 sec). - Example 1-2. Set timeout_interval parameter + Example 1.2. Set timeout_interval parameter ... modparam("db_mysql", "timeout_interval", 2) ... - __________________________________________________________ 1.3.3. auto_reconnect (integer) @@ -102,26 +99,56 @@ modparam("db_mysql", "timeout_interval", 2) Default value is 1 (1 - on / 0 - off). - Example 1-3. Set auto_reconnect parameter + Example 1.3. Set auto_reconnect parameter ... modparam("auto_reconnect", "auto_reconnect", 0) ... - __________________________________________________________ 1.4. Exported Functions No function exported to be used from configuration file. - __________________________________________________________ 1.5. Installation Because it dependes on an external library, the mysql module is not compiled and installed by default. You can use one of the next options. - * - edit the "Makefile" and remove "db_mysql" from "excluded_modules" list. Then follow the standard procedure to install OpenSER: "make all; make install". * - from command line use: 'make all include_modules="db_mysql"; make install include_modules="db_mysql"'. + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/db_mysql/doc/db_mysql.sgml b/modules_k/db_mysql/doc/db_mysql.xml similarity index 56% rename from modules_k/db_mysql/doc/db_mysql.sgml rename to modules_k/db_mysql/doc/db_mysql.xml index 509e4086f..eb12501e4 100644 --- a/modules_k/db_mysql/doc/db_mysql.sgml +++ b/modules_k/db_mysql/doc/db_mysql.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -18,19 +20,15 @@ Daniel-Constantin Mierla - &voicesystem;
- daniel@voice-system.ro - - http://www.voice-system.ro - + miconda@gmail.com
Daniel-Constantin Mierla
- danile@voice-system.ro + miconda@gmail.com
@@ -40,8 +38,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/db_mysql/doc/db_mysql_user.sgml b/modules_k/db_mysql/doc/db_mysql_admin.xml similarity index 100% rename from modules_k/db_mysql/doc/db_mysql_user.sgml rename to modules_k/db_mysql/doc/db_mysql_admin.xml diff --git a/modules_k/db_postgres/README b/modules_k/db_postgres/README index fb8b0f42a..062dc4153 100644 --- a/modules_k/db_postgres/README +++ b/modules_k/db_postgres/README @@ -9,9 +9,13 @@ Edited by Greg Fausak Copyright © 2003 Greg Fausak + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -22,45 +26,72 @@ Greg Fausak 1.3. Exported Parameters 1.4. Exported Functions - 1.5. Installation & Running - __________________________________________________________ + 1.5. Installation and Running + + 2. Frequently Asked Questions Chapter 1. User's Guide 1.1. Overview Module description - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * PostgreSQL library - e.g., libpq5. * PostgreSQL devel library - to compile the module (e.g., libpq-dev). - __________________________________________________________ 1.3. Exported Parameters NONE - __________________________________________________________ 1.4. Exported Functions NONE - __________________________________________________________ -1.5. Installation & Running +1.5. Installation and Running Notes about installation and running. + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/db_postgres/doc/db_postgres.sgml b/modules_k/db_postgres/doc/db_postgres.xml similarity index 64% rename from modules_k/db_postgres/doc/db_postgres.sgml rename to modules_k/db_postgres/doc/db_postgres.xml index 6fee31319..40ab07bee 100644 --- a/modules_k/db_postgres/doc/db_postgres.sgml +++ b/modules_k/db_postgres/doc/db_postgres.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -37,8 +39,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/db_postgres/doc/db_postgres_user.sgml b/modules_k/db_postgres/doc/db_postgres_admin.xml similarity index 96% rename from modules_k/db_postgres/doc/db_postgres_user.sgml rename to modules_k/db_postgres/doc/db_postgres_admin.xml index 85dc4e83f..2a990961a 100644 --- a/modules_k/db_postgres/doc/db_postgres_user.sgml +++ b/modules_k/db_postgres/doc/db_postgres_admin.xml @@ -59,7 +59,7 @@
- Installation & Running + Installation and Running Notes about installation and running.
diff --git a/modules_k/db_text/README b/modules_k/db_text/README index 7ad325b4b..d871ab4fe 100644 --- a/modules_k/db_text/README +++ b/modules_k/db_text/README @@ -2,16 +2,18 @@ DBTEXT Module Daniel-Constantin Mierla - voice-system.ro - Edited by Daniel-Constantin Mierla Copyright © 2003, 2004 FhG FOKUS + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -30,23 +32,24 @@ Daniel-Constantin Mierla 1.3.1. db_mode (integer) 1.4. Exported Functions - 1.5. Installation & Running + 1.5. Installation and Running 1.5.1. Using dbtext with basic OpenSER configuration 2. Developer's Guide + 3. Frequently Asked Questions List of Examples - 1-1. Sample of a dbtext table - 1-2. Minimal OpenSER location dbtext table definition - 1-3. Minimal OpenSER subscriber dbtext table example - 1-4. Set db_mode parameter - 1-5. Load the dbtext module - 1-6. Definition of 'subscriber' table (one line) - 1-7. Definition of 'location' and 'aliases' tables (one line) - 1-8. Definition of 'version' table and sample records - 1-9. Configuration file - __________________________________________________________ + + 1.1. Sample of a dbtext table + 1.2. Minimal OpenSER location dbtext table definition + 1.3. Minimal OpenSER subscriber dbtext table example + 1.4. Set db_mode parameter + 1.5. Load the dbtext module + 1.6. Definition of 'subscriber' table (one line) + 1.7. Definition of 'location' and 'aliases' tables (one line) + 1.8. Definition of 'version' table and sample records + 1.9. Configuration file Chapter 1. User's Guide @@ -72,12 +75,10 @@ Chapter 1. User's Guide write back to hard drive after changes. In this mode, the module checks if the corresponding file on disk has changed, and reloads it. The write on disk happens at openser shut down. - __________________________________________________________ 1.1.1. Design of dbtext engine The dbtext database system architecture: - * a database is represented by a directory in the local file system. NOTE: when you use dbtext in OpenSER, the database URL for modules must be the path to the directory where the @@ -89,13 +90,11 @@ Chapter 1. User's Guide directory. * a table is represented by a text file inside database directory. - __________________________________________________________ 1.1.2. Internal format of a dbtext table First line is the definition of the columns. Each column must be declared as follows: - * the name of column must not include white spaces. * the format of a column definition is: name(type,attr). * between two column definitions must be a white space, e.g., @@ -120,7 +119,7 @@ Chapter 1. User's Guide "\t", ":". * 0 -- the zero value must be escaped too. - Example 1-1. Sample of a dbtext table + Example 1.1. Sample of a dbtext table ... id(int,auto) name(str) flag(double) desc(str,null) 1:nick:0.34:a\tgood\: friend @@ -128,17 +127,16 @@ id(int,auto) name(str) flag(double) desc(str,null) 3:bob:2.50: ... - Example 1-2. Minimal OpenSER location dbtext table definition + Example 1.2. Minimal OpenSER location dbtext table definition ... username(str) contact(str) expires(int) q(double) callid(str) cseq(int) ... - Example 1-3. Minimal OpenSER subscriber dbtext table example + Example 1.3. Minimal OpenSER subscriber dbtext table example ... username(str) password(str) ha1(str) domain(str) ha1b(str) suser:supasswd:xxx:alpha.org:xxx ... - __________________________________________________________ 1.1.3. Existing limitations @@ -146,29 +144,23 @@ suser:supasswd:xxx:alpha.org:xxx default values. All such values specified in the database template are ignored. So its advisable to specify all data for a column at insertion operations. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER modules The next modules must be loaded before this module: - * none. - __________________________________________________________ 1.2.2. External libraries or applications The next libraries or applications must be installed before running OpenSER with this module: - * none. - __________________________________________________________ 1.3. Exported Parameters None. - __________________________________________________________ 1.3.1. db_mode (integer) @@ -180,18 +172,16 @@ suser:supasswd:xxx:alpha.org:xxx Default value is "0". - Example 1-4. Set db_mode parameter + Example 1.4. Set db_mode parameter ... modparam("db_text", "db_mode", 1) ... - __________________________________________________________ 1.4. Exported Functions None. - __________________________________________________________ -1.5. Installation & Running +1.5. Installation and Running Compile the module and load it instead of mysql or other DB modules. @@ -204,14 +194,13 @@ modparam("db_text", "db_mode", 1) database path. So, either you provide an absolute path to database directory or a relative one to "CFG_DIR" directory. - Example 1-5. Load the dbtext module + Example 1.5. Load the dbtext module ... loadmodule "/path/to/openser/modules/db_text.so" ... modparam("module_name", "database_URL", "text:///path/to/dbtext/database ") ... - __________________________________________________________ 1.5.1. Using dbtext with basic OpenSER configuration @@ -225,7 +214,7 @@ modparam("module_name", "database_URL", "text:///path/to/dbtext/database configuration file, the table files must be placed in the '/tmp/serdb' directory. - Example 1-6. Definition of 'subscriber' table (one line) + Example 1.6. Definition of 'subscriber' table (one line) ... username(str) domain(str) password(str) first_name(str) last_name(str) p hone(str) email_address(str) datetime_created(int) datetime_modified(int @@ -234,7 +223,7 @@ r) ha1b(str) perms(str) allow_find(str) timezone(str,null) rpid(str,null ) ... - Example 1-7. Definition of 'location' and 'aliases' tables (one + Example 1.7. Definition of 'location' and 'aliases' tables (one line) ... username(str) domain(str,null) contact(str,null) received(str) expires(i @@ -242,7 +231,7 @@ nt,null) q(double,null) callid(str,null) cseq(int,null) last_modified(st r) flags(int) user_agent(str) socket(str) ... - Example 1-8. Definition of 'version' table and sample records + Example 1.8. Definition of 'version' table and sample records ... table_name(str) table_version(int) subscriber:3 @@ -250,7 +239,7 @@ location:6 aliases:6 ... - Example 1-9. Configuration file + Example 1.9. Configuration file ... # # $Id$ @@ -394,9 +383,41 @@ route[1] ... - __________________________________________________________ Chapter 2. Developer's Guide Once you have the module loaded, you can use the API specified by OpenSER DB interface. + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/db_text/doc/db_text.sgml b/modules_k/db_text/doc/db_text.xml similarity index 57% rename from modules_k/db_text/doc/db_text.sgml rename to modules_k/db_text/doc/db_text.xml index e2c3eebb0..1b7e855c7 100644 --- a/modules_k/db_text/doc/db_text.sgml +++ b/modules_k/db_text/doc/db_text.xml @@ -1,15 +1,15 @@ - + - - + + + - - - + %docentities; ]> @@ -22,16 +22,15 @@ Daniel-Constantin Mierla - &voicesystem;
- &developeremail; + miconda@gmail.com
Daniel-Constantin Mierla
- &developeremail; + miconda@gmail.com
@@ -42,8 +41,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/db_text/doc/db_text_user.sgml b/modules_k/db_text/doc/db_text_admin.xml similarity index 99% rename from modules_k/db_text/doc/db_text_user.sgml rename to modules_k/db_text/doc/db_text_admin.xml index b89f7a915..8c7be2d8e 100644 --- a/modules_k/db_text/doc/db_text_user.sgml +++ b/modules_k/db_text/doc/db_text_admin.xml @@ -264,7 +264,7 @@ modparam("db_text", "db_mode", 1)
- Installation & Running + Installation and Running Compile the module and load it instead of mysql or other DB modules. diff --git a/modules_k/db_text/doc/db_text_devel.sgml b/modules_k/db_text/doc/db_text_devel.xml similarity index 100% rename from modules_k/db_text/doc/db_text_devel.sgml rename to modules_k/db_text/doc/db_text_devel.xml diff --git a/modules_k/db_unixodbc/README b/modules_k/db_unixodbc/README index b43c754ab..2f67a2eed 100644 --- a/modules_k/db_unixodbc/README +++ b/modules_k/db_unixodbc/README @@ -9,9 +9,13 @@ Edited by Marco Lorrai Copyright © 2005, 2006 Marco Lorrai + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -27,18 +31,19 @@ Marco Lorrai 1.3.3. use_escape_common (int) 1.4. Exported Functions - 1.5. Installation & Running + 1.5. Installation and Running 1.5.1. Installing - 1.5.2. Configuring & Running + 1.5.2. Configuring and Running 2. Developer's Guide + 3. Frequently Asked Questions List of Examples - 1-1. Set the "ping_interval" parameter - 1-2. Set the "auto_reconnect" parameter - 1-3. Set the "use_escape_common" parameter - __________________________________________________________ + + 1.1. Set the "ping_interval" parameter + 1.2. Set the "auto_reconnect" parameter + 1.3. Set the "use_escape_common" parameter Chapter 1. User's Guide @@ -53,24 +58,19 @@ Chapter 1. User's Guide To see what DB engines can be used via unixodbc, look at http://www.unixodbc.org/drivers.html. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -80,11 +80,10 @@ Chapter 1. User's Guide Default value is "300" seconds. - Example 1-1. Set the "ping_interval" parameter + Example 1.1. Set the "ping_interval" parameter ... modparam("db_unixodbc", "ping_interval", 600) ... - __________________________________________________________ 1.3.2. auto_reconnect (int) @@ -92,11 +91,10 @@ modparam("db_unixodbc", "ping_interval", 600) Default value is "1", this means it is enabled. - Example 1-2. Set the "auto_reconnect" parameter + Example 1.2. Set the "auto_reconnect" parameter ... modparam("db_unixodbc", "auto_reconnect", 0) ... - __________________________________________________________ 1.3.3. use_escape_common (int) @@ -111,18 +109,16 @@ modparam("db_unixodbc", "auto_reconnect", 0) Default value is "0" (0 = disabled; 1 = enabled). - Example 1-3. Set the "use_escape_common" parameter + Example 1.3. Set the "use_escape_common" parameter ... modparam("db_unixodbc", "use_escape_common", 1) ... - __________________________________________________________ 1.4. Exported Functions NONE - __________________________________________________________ -1.5. Installation & Running +1.5. Installation and Running 1.5.1. Installing @@ -130,9 +126,8 @@ modparam("db_unixodbc", "use_escape_common", 1) program that implements the odbc standard, such iodbc), your database, and the right connector. Set the DSN in the odbc.ini file and the connector drivers in the odbcinst.ini file. - __________________________________________________________ -1.5.2. Configuring & Running +1.5.2. Configuring and Running In the openser.conf file, add the line: .... @@ -163,9 +158,41 @@ shell>safe_mysqld --user=mysql --socket=/var/lib/mysql/mysql.sock The connector search the socket in /var/lib/mysql/mysql.sock and not in /tmp/mysql.sock - __________________________________________________________ Chapter 2. Developer's Guide The module implements the OpenSER DB API, in order to be used by other modules. + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/db_unixodbc/doc/db_unixodbc.sgml b/modules_k/db_unixodbc/doc/db_unixodbc.xml similarity index 62% rename from modules_k/db_unixodbc/doc/db_unixodbc.sgml rename to modules_k/db_unixodbc/doc/db_unixodbc.xml index acbfb60d0..28889ce0f 100644 --- a/modules_k/db_unixodbc/doc/db_unixodbc.sgml +++ b/modules_k/db_unixodbc/doc/db_unixodbc.xml @@ -1,12 +1,14 @@ - + - - + + + - + %docentities; ]> @@ -39,8 +41,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/db_unixodbc/doc/db_unixodbc_user.sgml b/modules_k/db_unixodbc/doc/db_unixodbc_admin.xml similarity index 98% rename from modules_k/db_unixodbc/doc/db_unixodbc_user.sgml rename to modules_k/db_unixodbc/doc/db_unixodbc_admin.xml index 67d69c099..17b7ec8d8 100644 --- a/modules_k/db_unixodbc/doc/db_unixodbc_user.sgml +++ b/modules_k/db_unixodbc/doc/db_unixodbc_admin.xml @@ -132,7 +132,7 @@ modparam("db_unixodbc", "use_escape_common", 1)
- Installation & Running + Installation and Running
Installing @@ -145,7 +145,7 @@ modparam("db_unixodbc", "use_escape_common", 1)
- Configuring & Running + Configuring and Running In the openser.conf file, add the line: diff --git a/modules_k/db_unixodbc/doc/db_unixodbc_devel.sgml b/modules_k/db_unixodbc/doc/db_unixodbc_devel.xml similarity index 100% rename from modules_k/db_unixodbc/doc/db_unixodbc_devel.sgml rename to modules_k/db_unixodbc/doc/db_unixodbc_devel.xml diff --git a/modules_k/dialog/README b/modules_k/dialog/README index cc3ec2ca3..71a050df6 100644 --- a/modules_k/dialog/README +++ b/modules_k/dialog/README @@ -9,9 +9,13 @@ Edited by Bogdan-Andrei Iancu Copyright © 2006 voice-system.ro + Revision History + Revision $Revision$ $Date: 2006-04-14 14:00:10 +0300 + (Fri, 14 Apr 2006) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -83,37 +87,37 @@ Bogdan-Andrei Iancu 3. Frequently Asked Questions List of Examples - 1-1. Set enable_stats parameter - 1-2. Set hash_size parameter - 1-3. Set rr_param parameter - 1-4. Set dlg_flag parameter - 1-5. Set timeout_avp parameter - 1-6. Set default_timeout parameter - 1-7. Set dlf_extra_hdrs parameter - 1-8. Set dlg_match_mode parameter - 1-9. Set db_url parameter - 1-10. Set db_mode parameter - 1-11. Set db_update_period parameter - 1-12. Set table_name parameter - 1-13. Set callid_column parameter - 1-14. Set from_uri_column parameter - 1-15. Set from_tag_column parameter - 1-16. Set to_uri_column parameter - 1-17. Set to_tag_column parameter - 1-18. Set caller_cseq_column parameter - 1-19. Set callee_cseq_column parameter - 1-20. Set caller_route_column parameter - 1-21. Set to_route_column parameter - 1-22. Set caller_contact_column parameter - 1-23. Set callee_contact_column parameter - 1-24. Set caller_sock_column parameter - 1-25. Set callee_sock_column parameter - 1-26. Set h_id_column parameter - 1-27. Set h_entry_column parameter - 1-28. Set state_column parameter - 1-29. Set start_time_column parameter - 1-30. Set timeout_column parameter - __________________________________________________________ + + 1.1. Set enable_stats parameter + 1.2. Set hash_size parameter + 1.3. Set rr_param parameter + 1.4. Set dlg_flag parameter + 1.5. Set timeout_avp parameter + 1.6. Set default_timeout parameter + 1.7. Set dlf_extra_hdrs parameter + 1.8. Set dlg_match_mode parameter + 1.9. Set db_url parameter + 1.10. Set db_mode parameter + 1.11. Set db_update_period parameter + 1.12. Set table_name parameter + 1.13. Set callid_column parameter + 1.14. Set from_uri_column parameter + 1.15. Set from_tag_column parameter + 1.16. Set to_uri_column parameter + 1.17. Set to_tag_column parameter + 1.18. Set caller_cseq_column parameter + 1.19. Set callee_cseq_column parameter + 1.20. Set caller_route_column parameter + 1.21. Set to_route_column parameter + 1.22. Set caller_contact_column parameter + 1.23. Set callee_contact_column parameter + 1.24. Set caller_sock_column parameter + 1.25. Set callee_sock_column parameter + 1.26. Set h_id_column parameter + 1.27. Set h_entry_column parameter + 1.28. Set state_column parameter + 1.29. Set start_time_column parameter + 1.30. Set timeout_column parameter Chapter 1. User's Guide @@ -128,38 +132,33 @@ Chapter 1. User's Guide The module, via an internal API, also provide the foundation to build on top of it more complex dialog-based functionalities via other OpenSER modules. - __________________________________________________________ 1.2. How it works To create the dialog associated to an initial request, the flag - "dlg_flag" (Section 1.4.4) must be set before creating the - corresponding transaction. + "dlg_flag" (Section 1.4.4, "dlg_flag (integer)") must be set + before creating the corresponding transaction. The dialog is automatically destroyed when a "BYE" is received. In case of no "BYE", the dialog lifetime is controlled via the - default timeout (see "default_timeout" - Section 1.4.6) and - custom timeout (see "timeout_avp" - Section 1.4.5). The dialog - timeout is reset each time a sequential request passes. - __________________________________________________________ + default timeout (see "default_timeout" - Section 1.4.6, + "default_timeout (integer)") and custom timeout (see + "timeout_avp" - Section 1.4.5, "timeout_avp (string)"). The + dialog timeout is reset each time a sequential request passes. 1.3. Dependencies 1.3.1. OpenSER Modules The following modules must be loaded before this module: - * TM - Transaction module * RR - Record-Route module - __________________________________________________________ 1.3.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.4. Exported Parameters @@ -172,11 +171,10 @@ Chapter 1. User's Guide Default value is "1 (enabled)". - Example 1-1. Set enable_stats parameter + Example 1.1. Set enable_stats parameter ... modparam("dialog", "enable_stats", 0) ... - __________________________________________________________ 1.4.2. hash_size (integer) @@ -192,11 +190,10 @@ modparam("dialog", "enable_stats", 0) Default value is "4096". - Example 1-2. Set hash_size parameter + Example 1.2. Set hash_size parameter ... modparam("dialog", "hash_size", 1024) ... - __________________________________________________________ 1.4.3. rr_param (string) @@ -206,11 +203,10 @@ modparam("dialog", "hash_size", 1024) Default value is "did". - Example 1-3. Set rr_param parameter + Example 1.3. Set rr_param parameter ... modparam("dialog", "rr_param", "xyz") ... - __________________________________________________________ 1.4.4. dlg_flag (integer) @@ -219,11 +215,10 @@ modparam("dialog", "rr_param", "xyz") Default value is "none". - Example 1-4. Set dlg_flag parameter + Example 1.4. Set dlg_flag parameter ... modparam("dialog", "dlg_flag", 4) ... - __________________________________________________________ 1.4.5. timeout_avp (string) @@ -233,11 +228,10 @@ modparam("dialog", "dlg_flag", 4) Default value is "none". - Example 1-5. Set timeout_avp parameter + Example 1.5. Set timeout_avp parameter ... modparam("dialog", "timeout_avp", "$avp(i:10)") ... - __________________________________________________________ 1.4.6. default_timeout (integer) @@ -246,11 +240,10 @@ modparam("dialog", "timeout_avp", "$avp(i:10)") Default value is "43200 (12 hours)". - Example 1-6. Set default_timeout parameter + Example 1.6. Set default_timeout parameter ... modparam("dialog", "default_timeout", 21600) ... - __________________________________________________________ 1.4.7. dlg_extra_hdrs (string) @@ -260,11 +253,10 @@ modparam("dialog", "default_timeout", 21600) Default value is "NULL". - Example 1-7. Set dlf_extra_hdrs parameter + Example 1.7. Set dlf_extra_hdrs parameter ... modparam("dialog", "dlg_extra_hdrs", "Hint: credit expired\r\n") ... - __________________________________________________________ 1.4.8. dlg_match_mode (integer) @@ -274,7 +266,6 @@ modparam("dialog", "dlg_extra_hdrs", "Hint: credit expired\r\n") matching based on SIP elements (as in RFC3261). The supported modes are: - * 0 - DID_ONLY - the match is done exclusivly based on DID; * 1 - DID_FALLBACK - the match is first tried based on DID and if not present, it will fallback to SIP matching; @@ -283,11 +274,10 @@ modparam("dialog", "dlg_extra_hdrs", "Hint: credit expired\r\n") Default value is "0 (DID_ONLY)". - Example 1-8. Set dlg_match_mode parameter + Example 1.8. Set dlg_match_mode parameter ... modparam("dialog", "dlg_match_mode", 1) ... - __________________________________________________________ 1.4.9. db_url (string) @@ -296,12 +286,11 @@ modparam("dialog", "dlg_match_mode", 1) Default value is "mysql://openser:openserrw@localhost/openser". - Example 1-9. Set db_url parameter + Example 1.9. Set db_url parameter ... modparam("dialog", "db_url", "dbdriver://username:password@dbhost/dbname ") ... - __________________________________________________________ 1.4.10. db_mode (integer) @@ -309,7 +298,6 @@ modparam("dialog", "db_url", "dbdriver://username:password@dbhost/dbname memory. The supported modes are: - * 0 - NO_DB - the memory content is not flushed into DB; * 1 - REALTIME - any dialog information changes will be reflected into the database immediatly. @@ -318,11 +306,10 @@ modparam("dialog", "db_url", "dbdriver://username:password@dbhost/dbname Default value is "0". - Example 1-10. Set db_mode parameter + Example 1.10. Set db_mode parameter ... modparam("dialog", "db_mode", 1) ... - __________________________________________________________ 1.4.11. db_update_period (integer) @@ -333,11 +320,10 @@ modparam("dialog", "db_mode", 1) Default value is "60". - Example 1-11. Set db_update_period parameter + Example 1.11. Set db_update_period parameter ... modparam("dialog", "db_update_period", "120") ... - __________________________________________________________ 1.4.12. table_name (string) @@ -346,11 +332,10 @@ modparam("dialog", "db_update_period", "120") Default value is "dialog". - Example 1-12. Set table_name parameter + Example 1.12. Set table_name parameter ... modparam("dialog", "table_name", "my_dialog") ... - __________________________________________________________ 1.4.13. callid_column (string) @@ -358,11 +343,10 @@ modparam("dialog", "table_name", "my_dialog") Default value is "callid". - Example 1-13. Set callid_column parameter + Example 1.13. Set callid_column parameter ... modparam("dialog", "callid_column", "callid_c_name") ... - __________________________________________________________ 1.4.14. from_uri_column (string) @@ -371,11 +355,10 @@ modparam("dialog", "callid_column", "callid_c_name") Default value is "from_uri". - Example 1-14. Set from_uri_column parameter + Example 1.14. Set from_uri_column parameter ... modparam("dialog", "from_uri_column", "from_uri_c_name") ... - __________________________________________________________ 1.4.15. from_tag_column (string) @@ -384,11 +367,10 @@ modparam("dialog", "from_uri_column", "from_uri_c_name") Default value is "from_tag". - Example 1-15. Set from_tag_column parameter + Example 1.15. Set from_tag_column parameter ... modparam("dialog", "from_tag_column", "from_tag_c_name") ... - __________________________________________________________ 1.4.16. to_uri_column (string) @@ -397,11 +379,10 @@ modparam("dialog", "from_tag_column", "from_tag_c_name") Default value is "to_uri". - Example 1-16. Set to_uri_column parameter + Example 1.16. Set to_uri_column parameter ... modparam("dialog", "to_uri_column", "to_uri_c_name") ... - __________________________________________________________ 1.4.17. to_tag_column (string) @@ -410,11 +391,10 @@ modparam("dialog", "to_uri_column", "to_uri_c_name") Default value is "to_tag". - Example 1-17. Set to_tag_column parameter + Example 1.17. Set to_tag_column parameter ... modparam("dialog", "to_tag_column", "to_tag_c_name") ... - __________________________________________________________ 1.4.18. caller_cseq_column (string) @@ -423,11 +403,10 @@ modparam("dialog", "to_tag_column", "to_tag_c_name") Default value is "caller_cseq". - Example 1-18. Set caller_cseq_column parameter + Example 1.18. Set caller_cseq_column parameter ... modparam("dialog", "caller_cseq_column", "column_name") ... - __________________________________________________________ 1.4.19. callee_cseq_column (string) @@ -436,11 +415,10 @@ modparam("dialog", "caller_cseq_column", "column_name") Default value is "callee_cseq". - Example 1-19. Set callee_cseq_column parameter + Example 1.19. Set callee_cseq_column parameter ... modparam("dialog", "callee_cseq_column", "column_name") ... - __________________________________________________________ 1.4.20. caller_route_column (string) @@ -449,11 +427,10 @@ modparam("dialog", "callee_cseq_column", "column_name") Default value is "caller_route_set". - Example 1-20. Set caller_route_column parameter + Example 1.20. Set caller_route_column parameter ... modparam("dialog", "caller_route_column", "column_name") ... - __________________________________________________________ 1.4.21. callee_route_column (string) @@ -462,11 +439,10 @@ modparam("dialog", "caller_route_column", "column_name") Default value is "callee_route_set". - Example 1-21. Set to_route_column parameter + Example 1.21. Set to_route_column parameter ... modparam("dialog", "to_route_column", "column_name") ... - __________________________________________________________ 1.4.22. caller_contact_column (string) @@ -475,11 +451,10 @@ modparam("dialog", "to_route_column", "column_name") Default value is "from_contact". - Example 1-22. Set caller_contact_column parameter + Example 1.22. Set caller_contact_column parameter ... modparam("dialog", "caller_contact_column", "column_name") ... - __________________________________________________________ 1.4.23. callee_contact_column (string) @@ -488,11 +463,10 @@ modparam("dialog", "caller_contact_column", "column_name") Default value is "callee_contact". - Example 1-23. Set callee_contact_column parameter + Example 1.23. Set callee_contact_column parameter ... modparam("dialog", "callee_contact_column", "column_name") ... - __________________________________________________________ 1.4.24. caller_sock_column (string) @@ -501,11 +475,10 @@ modparam("dialog", "callee_contact_column", "column_name") Default value is "caller_sock". - Example 1-24. Set caller_sock_column parameter + Example 1.24. Set caller_sock_column parameter ... modparam("dialog", "caller_sock_column", "column_name") ... - __________________________________________________________ 1.4.25. callee_sock_column (string) @@ -514,11 +487,10 @@ modparam("dialog", "caller_sock_column", "column_name") Default value is "callee_contact". - Example 1-25. Set callee_sock_column parameter + Example 1.25. Set callee_sock_column parameter ... modparam("dialog", "callee_sock_column", "column_name") ... - __________________________________________________________ 1.4.26. h_id_column (string) @@ -527,11 +499,10 @@ modparam("dialog", "callee_sock_column", "column_name") Default value is "hash_id". - Example 1-26. Set h_id_column parameter + Example 1.26. Set h_id_column parameter ... modparam("dialog", "h_id_column", "hash_id_c_name") ... - __________________________________________________________ 1.4.27. h_entry_column (string) @@ -540,11 +511,10 @@ modparam("dialog", "h_id_column", "hash_id_c_name") Default value is "hash_entry". - Example 1-27. Set h_entry_column parameter + Example 1.27. Set h_entry_column parameter ... modparam("dialog", "h_entry_column", "h_entry_c_name") ... - __________________________________________________________ 1.4.28. state_column (string) @@ -553,11 +523,10 @@ modparam("dialog", "h_entry_column", "h_entry_c_name") Default value is "state". - Example 1-28. Set state_column parameter + Example 1.28. Set state_column parameter ... modparam("dialog", "state_column", "state_c_name") ... - __________________________________________________________ 1.4.29. start_time_column (string) @@ -566,11 +535,10 @@ modparam("dialog", "state_column", "state_c_name") Default value is "start_time". - Example 1-29. Set start_time_column parameter + Example 1.29. Set start_time_column parameter ... modparam("dialog", "start_time_column", "start_time_c_name") ... - __________________________________________________________ 1.4.30. timeout_column (string) @@ -579,16 +547,14 @@ modparam("dialog", "start_time_column", "start_time_c_name") Default value is "timeout". - Example 1-30. Set timeout_column parameter + Example 1.30. Set timeout_column parameter ... modparam("dialog", "timeout_column", "timeout_c_name") ... - __________________________________________________________ 1.5. Exported Functions There are no exported functions that could be used in scripts. - __________________________________________________________ 1.6. Exported statistics @@ -596,28 +562,23 @@ modparam("dialog", "timeout_column", "timeout_c_name") Returns the number of current active dialogs (may be confirmed or not). - __________________________________________________________ 1.6.2. early_dialogs Returns the number of early dialogs. - __________________________________________________________ 1.6.3. processed_dialogs Returns the total number of processed dialogs (terminated, expired or active) from the startup. - __________________________________________________________ 1.6.4. expired_dialogs Returns the total number of expired dialogs from the startup. - __________________________________________________________ 1.6.5. failed_dialogs Returns the number of failed dialogs. - __________________________________________________________ 1.7. Exported MI Functions @@ -632,7 +593,6 @@ modparam("dialog", "timeout_column", "timeout_c_name") MI FIFO Command Format: :dlg_list:_reply_fifo_file_ _empty_line_ - __________________________________________________________ 1.7.2. dlg_end_dlg @@ -641,7 +601,6 @@ modparam("dialog", "timeout_column", "timeout_c_name") Name: dlg_end_dlg Parameters: - * h_entry - hash entry of the dialog in the internal dialog table * h_id - hash id of the dialog on the hash entry @@ -656,7 +615,6 @@ modparam("dialog", "timeout_column", "timeout_c_name") 342 56 _empty_line_ - __________________________________________________________ 1.8. Exported pseudo-variables @@ -664,7 +622,6 @@ modparam("dialog", "timeout_column", "timeout_c_name") Returns the number of current active dialogs (may be confirmed or not). - __________________________________________________________ 1.8.2. $DLG_status @@ -673,12 +630,10 @@ modparam("dialog", "timeout_column", "timeout_c_name") sequential requests, after doing loose_route(). Value may be: - * NULL - Dialog not found. * 3 - Confirmed by a final reply but no ACK received yet. * 4 - Confirmed by a final reply and ACK received. * 5 - Dialog ended. - __________________________________________________________ 1.8.3. $DLG_lifetime @@ -689,18 +644,16 @@ modparam("dialog", "timeout_column", "timeout_c_name") loose_route(). NULL will be returned if there is no dialog for the request. - __________________________________________________________ Chapter 2. Developer's Guide 2.1. Available Functions -2.1.1. register_dlgcb (dialog, type, cb, param) +2.1.1. register_dlgcb (dialog, type, cb, param) Register a new callback to the dialog. Meaning of the parameters is as follows: - * struct dlg_cell* dlg - dialog to register callback to. If maybe NULL only for DLG_CREATED callback type, which is not a per dialog type. @@ -724,43 +677,44 @@ Chapter 2. Developer's Guide sip_msg* msg, void** param);" * void *param - parameter to be passed to the callback function. - __________________________________________________________ Chapter 3. Frequently Asked Questions - 3.1. What happend with "use_tight_match" parameter? - 3.2. Where can I find more about OpenSER? - 3.3. Where can I post a question about this module? - 3.4. How can I report a bug? + 3.1. + + What happend with "use_tight_match" parameter? + + The parameter was removed with version 1.3 as the option of + tight matching became mandatory and not configurable. Now, the + tight matching is done all the time (when using DID matching). - 3.1. What happend with "use_tight_match" parameter? + 3.2. - The parameter was removed with version 1.3 as the option of - tight matching became mandatory and not configurable. Now, the - tight matching is done all the time (when using DID matching). + Where can I find more about OpenSER? - 3.2. Where can I find more about OpenSER? + Take a look at http://openser.org/. - Take a look at http://openser.org/. + 3.3. - 3.3. Where can I post a question about this module? + Where can I post a question about this module? - First at all check if your question was already answered on one - of our mailing lists: + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel - * User Mailing List - - http://openser.org/cgi-bin/mailman/listinfo/users - * Developer Mailing List - - http://openser.org/cgi-bin/mailman/listinfo/devel + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . - E-mails regarding any stable OpenSER release should be sent to - and e-mails regarding development versions - should be sent to . + If you want to keep the mail private, send it to + . - If you want to keep the mail private, send it to - . + 3.4. - 3.4. How can I report a bug? + How can I report a bug? - Please follow the guidelines provided at: - http://sourceforge.net/tracker/?group_id=139143. + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/dialog/doc/dialog.sgml b/modules_k/dialog/doc/dialog.xml similarity index 62% rename from modules_k/dialog/doc/dialog.sgml rename to modules_k/dialog/doc/dialog.xml index bf46d8126..679c502a8 100644 --- a/modules_k/dialog/doc/dialog.sgml +++ b/modules_k/dialog/doc/dialog.xml @@ -1,12 +1,14 @@ - + - - + + + - + %docentities; ]> @@ -38,8 +40,8 @@ - $Revision$ - $Date$ + $Revision: 806 $ + $Date: 2006-04-14 14:00:10 +0300 (Fri, 14 Apr 2006) $ diff --git a/modules_k/dialog/doc/dialog_user.sgml b/modules_k/dialog/doc/dialog_admin.xml similarity index 98% rename from modules_k/dialog/doc/dialog_user.sgml rename to modules_k/dialog/doc/dialog_admin.xml index 3ee173d03..ccb3a00ba 100644 --- a/modules_k/dialog/doc/dialog_user.sgml +++ b/modules_k/dialog/doc/dialog_admin.xml @@ -23,15 +23,15 @@ How it works To create the dialog associated to an initial request, the flag - dlg_flag () must be set before + dlg_flag () must be set before creating the corresponding transaction. The dialog is automatically destroyed when a BYE is received. In case of no BYE, the dialog lifetime is controlled via the default timeout (see default_timeout - - ) and custom timeout (see - timeout_avp - ). The + - ) and custom timeout (see + timeout_avp - ). The dialog timeout is reset each time a sequential request passes.
@@ -290,7 +290,7 @@ modparam("dialog", "dlg_match_mode", 1) Set <varname>db_url</varname> parameter ... -modparam("dialog", "db_url", "&exampledb") +modparam("dialog", "db_url", "&exampledb;") ... diff --git a/modules_k/dialog/doc/dialog_devel.sgml b/modules_k/dialog/doc/dialog_devel.xml similarity index 100% rename from modules_k/dialog/doc/dialog_devel.sgml rename to modules_k/dialog/doc/dialog_devel.xml diff --git a/modules_k/dialog/doc/dialog_faq.sgml b/modules_k/dialog/doc/dialog_faq.xml similarity index 100% rename from modules_k/dialog/doc/dialog_faq.sgml rename to modules_k/dialog/doc/dialog_faq.xml diff --git a/modules_k/dispatcher/README b/modules_k/dispatcher/README index 9b8b1a1bf..0df13e29f 100644 --- a/modules_k/dispatcher/README +++ b/modules_k/dispatcher/README @@ -2,20 +2,26 @@ DISPATCHER Module Daniel-Constantin Mierla - voice-system.ro - Edited by Daniel-Constantin Mierla +Edited by + Carsten Bock + BASIS AudioNet GmbH + Copyright © 2004 FhG FOKUS Copyright © 2005 Voice-System.RO + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -69,28 +75,28 @@ Carsten Bock 2. Frequently Asked Questions List of Examples - 1-1. Set the "list_file" parameter - 1-2. Set "db_url" parameter - 1-3. Set "table_name" parameter - 1-4. Set "setid_col" parameter - 1-5. Set "destination_col" parameter - 1-6. Set "flags_col" parameter - 1-7. Set the "force_dst" parameter - 1-8. Set the "flags" parameter - 1-9. Set the "use_default" parameter - 1-10. Set the "dst_avp" parameter - 1-11. Set the "grp_avp" parameter - 1-12. Set the "cnt_avp" parameter - 1-13. Use $avp(i:273) for hashing: - 1-14. Use combination of PVs for hashing: - 1-15. Set the "ds_ping_method" parameter - 1-16. Set the "ds_ping_from" parameter - 1-17. Set the "ds_ping_interval" parameter - 1-18. Set the "ds_probing_threshhold" parameter - 1-19. ds_select_dst usage - 1-20. dispatcher list file - 1-21. OpenSER config script - sample dispatcher usage - __________________________________________________________ + + 1.1. Set the "list_file" parameter + 1.2. Set "db_url" parameter + 1.3. Set "table_name" parameter + 1.4. Set "setid_col" parameter + 1.5. Set "destination_col" parameter + 1.6. Set "flags_col" parameter + 1.7. Set the "force_dst" parameter + 1.8. Set the "flags" parameter + 1.9. Set the "use_default" parameter + 1.10. Set the "dst_avp" parameter + 1.11. Set the "grp_avp" parameter + 1.12. Set the "cnt_avp" parameter + 1.13. Use $avp(i:273) for hashing: + 1.14. Use combination of PVs for hashing: + 1.15. Set the "ds_ping_method" parameter + 1.16. Set the "ds_ping_from" parameter + 1.17. Set the "ds_ping_interval" parameter + 1.18. Set the "ds_probing_threshhold" parameter + 1.19. ds_select_dst usage + 1.20. dispatcher list file + 1.21. OpenSER config script - sample dispatcher usage Chapter 1. User's Guide @@ -103,24 +109,19 @@ Chapter 1. User's Guide The module can be used as a stateless load balancer, having no guarantee of fair distribution. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER modules The following modules must be loaded before this module: - * TM - only if active recovery of failed hosts is required. - __________________________________________________________ 1.2.2. External libraries or applications The following libraries or applications must be installed before running OpenSER with this module: - * none. - __________________________________________________________ 1.3. Exported Parameters @@ -131,11 +132,10 @@ Chapter 1. User's Guide Default value is "/etc/openser/dispatcher.list" or "/usr/local/etc/openser/dispatcher.list". - Example 1-1. Set the "list_file" parameter + Example 1.1. Set the "list_file" parameter ... modparam("dispatcher", "list_file", "/var/run/openser/dispatcher.list") ... - __________________________________________________________ 1.3.2. db_url (string) @@ -144,12 +144,11 @@ modparam("dispatcher", "list_file", "/var/run/openser/dispatcher.list") Default value is "NULL" (disable DB support). - Example 1-2. Set "db_url" parameter + Example 1.2. Set "db_url" parameter ... modparam("dispatcher", "db_url", "mysql://user:passwb@localhost/database ") ... - __________________________________________________________ 1.3.3. table_name (string) @@ -158,11 +157,10 @@ modparam("dispatcher", "db_url", "mysql://user:passwb@localhost/database Default value is "dispatcher". - Example 1-3. Set "table_name" parameter + Example 1.3. Set "table_name" parameter ... modparam("dispatcher", "table_name", "my_dispatcher") ... - __________________________________________________________ 1.3.4. setid_col (string) @@ -171,11 +169,10 @@ modparam("dispatcher", "table_name", "my_dispatcher") Default value is "setid". - Example 1-4. Set "setid_col" parameter + Example 1.4. Set "setid_col" parameter ... modparam("dispatcher", "setid_col", "groupid") ... - __________________________________________________________ 1.3.5. destination_col (string) @@ -184,11 +181,10 @@ modparam("dispatcher", "setid_col", "groupid") Default value is "destination". - Example 1-5. Set "destination_col" parameter + Example 1.5. Set "destination_col" parameter ... modparam("dispatcher", "destination_col", "uri") ... - __________________________________________________________ 1.3.6. flags_col (string) @@ -197,11 +193,10 @@ modparam("dispatcher", "destination_col", "uri") Default value is "flags". - Example 1-6. Set "flags_col" parameter + Example 1.6. Set "flags_col" parameter ... modparam("dispatcher", "flags_col", "dstflags") ... - __________________________________________________________ 1.3.7. force_dst (int) @@ -210,11 +205,10 @@ modparam("dispatcher", "flags_col", "dstflags") Default value is "0". - Example 1-7. Set the "force_dst" parameter + Example 1.7. Set the "force_dst" parameter ... modparam("dispatcher", "force_dst", 1) ... - __________________________________________________________ 1.3.8. flags (int) @@ -232,11 +226,10 @@ modparam("dispatcher", "force_dst", 1) Default value is "0". - Example 1-8. Set the "flags" parameter + Example 1.8. Set the "flags" parameter ... modparam("dispatcher", "flags", 3) ... - __________________________________________________________ 1.3.9. use_default (int) @@ -247,11 +240,10 @@ modparam("dispatcher", "force_dst", 1) Default value is "0". - Example 1-9. Set the "use_default" parameter + Example 1.9. Set the "use_default" parameter ... modparam("dispatcher", "use_default", 1) ... - __________________________________________________________ 1.3.10. dst_avp (str) @@ -263,76 +255,72 @@ modparam("dispatcher", "force_dst", 1) destination set will be added in the avp list to be able to implement serial forking. - Note +Note - You must set this parameter if you want do do load balancing - fail over. + You must set this parameter if you want do do load balancing + fail over. Default value is "null" - don't add AVPs. - Example 1-10. Set the "dst_avp" parameter + Example 1.10. Set the "dst_avp" parameter ... modparam("dispatcher", "dst_avp", "$avp(i:271)") ... - __________________________________________________________ 1.3.11. grp_avp (str) The name of the avp storing the group id of the destination set. Good to have it for later usage or checks. - Note +Note - You must set this parameter if you want do do load balancing - fail over. + You must set this parameter if you want do do load balancing + fail over. Default value is "null" - don't add AVP. - Example 1-11. Set the "grp_avp" parameter + Example 1.11. Set the "grp_avp" parameter ... modparam("dispatcher", "grp_avp", "$avp(i:272)") ... - __________________________________________________________ 1.3.12. cnt_avp (str) The name of the avp storing the number of destination addresses kept in dst_avp avps. - Note +Note - You must set this parameter if you want do do load balancing - fail over. + You must set this parameter if you want do do load balancing + fail over. Default value is "null" - don't add AVP. - Example 1-12. Set the "cnt_avp" parameter + Example 1.12. Set the "cnt_avp" parameter ... modparam("dispatcher", "cnt_avp", "$avp(i:273)") ... - __________________________________________________________ 1.3.13. hash_pvar (str) String with PVs used for the hashing algorithm 7. - Note +Note - You must set this parameter if you want do hashing over custom - message parts. + You must set this parameter if you want do hashing over custom + message parts. Default value is "null" - disabled. - Example 1-13. Use $avp(i:273) for hashing: + Example 1.13. Use $avp(i:273) for hashing: ... modparam("dispatcher", "hash_pvar", "$avp(i:273)") ... - Example 1-14. Use combination of PVs for hashing: + Example 1.14. Use combination of PVs for hashing: ... modparam("dispatcher", "hash_pvar", "hash the $fU@$ci") ... - __________________________________________________________ 1.3.14. ds_ping_method (string) @@ -342,11 +330,10 @@ modparam("dispatcher", "force_dst", 1) Default value is "OPTIONS". - Example 1-15. Set the "ds_ping_method" parameter + Example 1.15. Set the "ds_ping_method" parameter ... modparam("dispatcher", "ds_ping_method", "INFO") ... - __________________________________________________________ 1.3.15. ds_ping_from (string) @@ -357,11 +344,10 @@ modparam("dispatcher", "force_dst", 1) Default value is "sip:dispatcher@localhost". - Example 1-16. Set the "ds_ping_from" parameter + Example 1.16. Set the "ds_ping_from" parameter ... modparam("dispatcher", "ds_ping_from", "sip:proxy@sip.somehost.com") ... - __________________________________________________________ 1.3.16. ds_ping_interval (int) @@ -372,11 +358,10 @@ modparam("dispatcher", "force_dst", 1) Default value is "10". - Example 1-17. Set the "ds_ping_interval" parameter + Example 1.17. Set the "ds_ping_interval" parameter ... modparam("dispatcher", "ds_ping_interval", 30) ... - __________________________________________________________ 1.3.17. ds_probing_threshhold (int) @@ -387,20 +372,18 @@ modparam("dispatcher", "force_dst", 1) Default value is "3". - Example 1-18. Set the "ds_probing_threshhold" parameter + Example 1.18. Set the "ds_probing_threshhold" parameter ... modparam("dispatcher", "ds_probing_threshhold", 10) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. ds_select_dst(set, alg) +1.4.1. ds_select_dst(set, alg) The method selects a destination from addresses set. Meaning of the parameters is as follows: - * set - the id of the set from where to pick up destination address. It is the first column in destination list file. * alg - the algorithm used to select the destination address. @@ -425,13 +408,12 @@ modparam("dispatcher", "force_dst", 1) This function can be used from REQUEST_ROUTE. - Example 1-19. ds_select_dst usage + Example 1.19. ds_select_dst usage ... ds_select_dst("1", "0"); ... - __________________________________________________________ -1.4.2. ds_select_domain(set, alg) +1.4.2. ds_select_domain(set, alg) The method selects a destination from addresses set and rewrites the host and port from R-URI. The parameters have same @@ -443,25 +425,22 @@ ds_select_dst("1", "0"); forking to all possible destinations. This function can be used from REQUEST_ROUTE. - __________________________________________________________ -1.4.3. ds_next_dst() +1.4.3. ds_next_dst() Takes the next destination address from the AVPs with id 'dst_avp_id' and sets the dst_uri (outbound proxy address). This function can be used from FAILURE_ROUTE. - __________________________________________________________ -1.4.4. ds_next_domain() +1.4.4. ds_next_domain() Takes the next destination address from the AVPs with id 'dst_avp_id' and sets the domain part of the request uri. This function can be used from FAILURE_ROUTE. - __________________________________________________________ -1.4.5. ds_mark_dst() +1.4.5. ds_mark_dst() Mark the last used address from destination set as inactive, in order to be ingnored in the future. In this way it can be @@ -470,9 +449,8 @@ ds_select_dst("1", "0"); 'ds_select_dst' and 'ds_select_domain'. This function can be used from FAILURE_ROUTE. - __________________________________________________________ -1.4.6. ds_mark_dst("s") +1.4.6. ds_mark_dst("s") Mark the last used address from destination set as inactive ("i"/"I"/"0"), active ("a"/"A"/"1") or probing ("p"/"P"/"2"). @@ -482,7 +460,6 @@ ds_select_dst("1", "0"); 'ds_select_domain'. possible parameters: - * "i", "I" or "0" - the last destination should be set to inactive and will be ignored in future requests. * "a", "A" or "1" - the last destination should be set to @@ -493,18 +470,16 @@ ds_select_dst("1", "0"); probing. This function can be used from FAILURE_ROUTE. - __________________________________________________________ -1.4.7. ds_is_from_list() +1.4.7. ds_is_from_list() This function returns true, if the current request comes from a host from the dispatcher-list; otherwise false. This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE and ONREPLY_ROUTE. - __________________________________________________________ -1.4.8. ds_is_from_list("group") +1.4.8. ds_is_from_list("group") This function returns true, if the current request comes from a host in the given group of the dispatcher-list; otherwise @@ -512,11 +487,10 @@ ds_select_dst("1", "0"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE and ONREPLY_ROUTE. - __________________________________________________________ 1.5. Exported MI Functions -1.5.1. ds_set_state +1.5.1. ds_set_state Sets the status for a destination address (can be use to mark the destination as active or inactive). @@ -524,7 +498,6 @@ ds_select_dst("1", "0"); Name: ds_set_state Parameters: - * _state_ : state of the destination address + "a": active + "i": inactive @@ -538,9 +511,8 @@ ds_select_dst("1", "0"); _group_ _address_ _empty_line_ - __________________________________________________________ -1.5.2. ds_list +1.5.2. ds_list It lists the groups and included destinations. @@ -551,9 +523,8 @@ ds_select_dst("1", "0"); MI FIFO Command Format: :ds_list:_reply_fifo_file_ _empty_line_ - __________________________________________________________ -1.5.3. ds_reload +1.5.3. ds_reload It reloads the groups and included destinations. @@ -563,7 +534,6 @@ ds_select_dst("1", "0"); MI DATAGRAM Command Format: ":ds_reload:\n." - __________________________________________________________ 1.6. Installation and Running @@ -577,7 +547,7 @@ ds_select_dst("1", "0"); address must be a valid SIP URI. Empty lines or lines starting with "#" are ignored. - Example 1-20. dispatcher list file + Example 1.20. dispatcher list file ... # $Id$ # dispatcher destination sets @@ -596,13 +566,12 @@ ds_select_dst("1", "0"); 1 sip:127.0.0.1:7074 ... - __________________________________________________________ 1.6.2. OpenSER config file Next picture displays a sample usage of dispatcher. - Example 1-21. OpenSER config script - sample dispatcher usage + Example 1.21. OpenSER config script - sample dispatcher usage ... # $Id$ # sample config file for dispatcher module @@ -648,51 +617,53 @@ route{ } ... - __________________________________________________________ Chapter 2. Frequently Asked Questions - 2.1. Does dispatcher provide a fair distribution? - 2.2. Is dispatcher dialog stateful? - 2.3. Where can I find more about OpenSER? - 2.4. Where can I post a question about this module? - 2.5. How can I report a bug? + 2.1. + + Does dispatcher provide a fair distribution? + + There is no guarantee of that. You should do some measurements + to decide what distribution algorithm fits better in your + environment. + + 2.2. - 2.1. Does dispatcher provide a fair distribution? + Is dispatcher dialog stateful? - There is no guarantee of that. You should do some measurements - to decide what distribution algorithm fits better in your - environment. + No. Dispatcher is stateless, although some distribution + algorithms are designed to select same destination for + subsequent requests of the same dialog (e.g., hashing the + call-id). - 2.2. Is dispatcher dialog stateful? + 2.3. - No. Dispatcher is stateless, although some distribution - algorithms are designed to select same destination for - subsequent requests of the same dialog (e.g., hashing the - call-id). + Where can I find more about OpenSER? - 2.3. Where can I find more about OpenSER? + Take a look at http://openser.org/. - Take a look at http://openser.org/. + 2.4. - 2.4. Where can I post a question about this module? + Where can I post a question about this module? - First at all check if your question was already answered on one - of our mailing lists: + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel - * User Mailing List - - http://openser.org/cgi-bin/mailman/listinfo/users - * Developer Mailing List - - http://openser.org/cgi-bin/mailman/listinfo/devel + E-mails regarding any stable version should be sent to + and e-mail regarding development versions + or CVS snapshots should be send to . - E-mails regarding any stable version should be sent to - and e-mail regarding development versions - or CVS snapshots should be send to . + If you want to keep the mail private, send it to + . - If you want to keep the mail private, send it to - . + 2.5. - 2.5. How can I report a bug? + How can I report a bug? - Please follow the guidelines provided at: - http://sourceforge.net/tracker/?group_id=139143 + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143 diff --git a/modules_k/dispatcher/doc/dispatcher.sgml b/modules_k/dispatcher/doc/dispatcher.xml similarity index 70% rename from modules_k/dispatcher/doc/dispatcher.sgml rename to modules_k/dispatcher/doc/dispatcher.xml index 78d6a3942..431b9ae97 100644 --- a/modules_k/dispatcher/doc/dispatcher.sgml +++ b/modules_k/dispatcher/doc/dispatcher.xml @@ -1,13 +1,15 @@ - + - + + - + %docentities; ]> @@ -20,16 +22,15 @@ Daniel-Constantin Mierla - &voicesystem;
- daniel@voice-system.ro + miconda@gmail.com
Daniel-Constantin Mierla
- daniel@voice-system.ro + miconda@gmail.com
@@ -51,8 +52,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/dispatcher/doc/dispatcher_user.sgml b/modules_k/dispatcher/doc/dispatcher_admin.xml similarity index 100% rename from modules_k/dispatcher/doc/dispatcher_user.sgml rename to modules_k/dispatcher/doc/dispatcher_admin.xml diff --git a/modules_k/dispatcher/doc/dispatcher_faq.sgml b/modules_k/dispatcher/doc/dispatcher_faq.xml similarity index 100% rename from modules_k/dispatcher/doc/dispatcher_faq.sgml rename to modules_k/dispatcher/doc/dispatcher_faq.xml diff --git a/modules_k/diversion/README b/modules_k/diversion/README index 6839a2517..403559115 100644 --- a/modules_k/diversion/README +++ b/modules_k/diversion/README @@ -9,9 +9,13 @@ Edited by Jan Janak Copyright © 2004 FhG FOKUS + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -31,11 +35,12 @@ Jan Janak 1.5. Diversion Example 2. Developer's Guide + 3. Frequently Asked Questions List of Examples - 1-1. suffix usage - 1-2. add_diversion usage - __________________________________________________________ + + 1.1. suffix usage + 1.2. add_diversion usage Chapter 1. User's Guide @@ -48,26 +53,22 @@ Chapter 1. User's Guide the call to the PSTN gateway and this is what the diversion extensions can be used for. - Warning +Warning - The draft-levy-sip-diversion-08 is expired!! See IETF I-D - tracker. - __________________________________________________________ + The draft-levy-sip-diversion-08 is expired!! See IETF I-D + tracker. 1.2. Dependencies 1.2.1. OpenSER Modules None. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -79,9 +80,8 @@ Chapter 1. User's Guide Default value is "" (empty string). - Example 1-1. suffix usage + Example 1.1. suffix usage modparam("diversion", "suffix", ";privacy=full") - __________________________________________________________ 1.4. Exported Functions @@ -94,17 +94,15 @@ modparam("diversion", "suffix", ";privacy=full") proxy server) Request-URI will be used as the Diversion URI. Meaning of the parameters is as follows: - * reason - The reason string to be added as the reason parameter This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-2. add_diversion usage + Example 1.2. add_diversion usage ... add_diversion("user-busy"); ... - __________________________________________________________ 1.5. Diversion Example @@ -133,7 +131,6 @@ CSeq: 3 INVITE Diversion: ;reason=user-busy Contact: Content-Length: 0 - __________________________________________________________ Chapter 2. Developer's Guide @@ -174,3 +171,36 @@ static inline int add_diversion_helper(struct sip_msg* msg, str* s) } ... } + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/diversion/doc/diversion.sgml b/modules_k/diversion/doc/diversion.xml similarity index 62% rename from modules_k/diversion/doc/diversion.sgml rename to modules_k/diversion/doc/diversion.xml index 37caea27a..90a758ca2 100644 --- a/modules_k/diversion/doc/diversion.sgml +++ b/modules_k/diversion/doc/diversion.xml @@ -1,12 +1,14 @@ - + - - + + + - + %docentities; ]> @@ -38,8 +40,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/diversion/doc/diversion_user.sgml b/modules_k/diversion/doc/diversion_admin.xml similarity index 100% rename from modules_k/diversion/doc/diversion_user.sgml rename to modules_k/diversion/doc/diversion_admin.xml diff --git a/modules_k/diversion/doc/diversion_devel.sgml b/modules_k/diversion/doc/diversion_devel.xml similarity index 100% rename from modules_k/diversion/doc/diversion_devel.sgml rename to modules_k/diversion/doc/diversion_devel.xml diff --git a/modules_k/domain/README b/modules_k/domain/README index 276e3f65e..c004185f4 100644 --- a/modules_k/domain/README +++ b/modules_k/domain/README @@ -2,14 +2,22 @@ Domain Module Juha Heinanen + + Edited by Juha Heinanen + + Copyright © 2002-2008 Juha Heinanen + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -40,15 +48,17 @@ Juha Heinanen 2.1.1. is_domain_local(domain) + 3. Frequently Asked Questions + List of Examples - 1-1. Setting db_url parameter - 1-2. db_mode example - 1-3. Setting domain_table parameter - 1-4. Setting domain_col parameter - 1-5. is_from_local usage - 1-6. is_uri_host_local usage - 1-7. is_domain_local usage - __________________________________________________________ + + 1.1. Setting db_url parameter + 1.2. db_mode example + 1.3. Setting domain_table parameter + 1.4. Setting domain_col parameter + 1.5. is_from_local usage + 1.6. is_uri_host_local usage + 1.7. is_domain_local usage Chapter 1. User's Guide @@ -71,15 +81,12 @@ Chapter 1. User's Guide Caching is implemented using a hash table. The size of the hash table is given by HASH_SIZE constant defined in domain_mod.h. Its "factory default" value is 128. - __________________________________________________________ 1.2. Dependencies The module depends on the following modules (in the other words the listed modules must be loaded before this module): - * database -- Any database module - __________________________________________________________ 1.3. Exported Parameters @@ -90,9 +97,8 @@ Chapter 1. User's Guide Default value is "mysql://openserro:openserro@localhost/openser" - Example 1-1. Setting db_url parameter + Example 1.1. Setting db_url parameter modparam("domain", "db_url", "mysql://ser:pass@db_host/ser") - __________________________________________________________ 1.3.2. db_mode (integer) @@ -100,9 +106,8 @@ modparam("domain", "db_url", "mysql://ser:pass@db_host/ser") Default value is 0 (non-caching). - Example 1-2. db_mode example + Example 1.2. db_mode example modparam("domain", "db_mode", 1) # Use caching - __________________________________________________________ 1.3.3. domain_table (string) @@ -112,9 +117,8 @@ modparam("domain", "db_mode", 1) # Use caching Default value is "domain". - Example 1-3. Setting domain_table parameter + Example 1.3. Setting domain_table parameter modparam("domain", "domain_table", "new_name") - __________________________________________________________ 1.3.4. domain_col (string) @@ -122,9 +126,8 @@ modparam("domain", "domain_table", "new_name") Default value is "domain". - Example 1-4. Setting domain_col parameter + Example 1.4. Setting domain_col parameter modparam("domain", "domain_col", "domain_name") - __________________________________________________________ 1.4. Exported Functions @@ -135,13 +138,12 @@ modparam("domain", "domain_col", "domain_name") This function can be used from REQUEST_ROUTE. - Example 1-5. is_from_local usage + Example 1.5. is_from_local usage ... if (is_from_local()) { ... }; ... - __________________________________________________________ 1.4.2. is_uri_host_local() @@ -155,13 +157,12 @@ if (is_from_local()) { This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-6. is_uri_host_local usage + Example 1.6. is_uri_host_local usage ... if (is_uri_host_local()) { ... }; ... - __________________________________________________________ 1.4.3. is_domain_local(pseudo_variable) @@ -173,14 +174,13 @@ if (is_uri_host_local()) { them and also extends them by allowing the domain to be taken from any of the above mentioned sources. The following equivalences exist: - * is_domain_local("$rd") is same as is_uri_host_local() * is_domain_local("$fd") is same as is_from_local() This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-7. is_domain_local usage + Example 1.7. is_domain_local usage ... if (is_domain_local("$rd")) { ... @@ -198,7 +198,6 @@ if (is_domain_local("$avp(s:some_avp)")) { ... }; ... - __________________________________________________________ 1.5. Exported MI Functions @@ -214,7 +213,6 @@ if (is_domain_local("$avp(s:some_avp)")) { MI FIFO Command Format: :domain_reload:_reply_fifo_file_ _empty_line_ - __________________________________________________________ 1.5.2. domain_dump @@ -228,7 +226,6 @@ if (is_domain_local("$avp(s:some_avp)")) { MI FIFO Command Format: :domain_dump:_reply_fifo_file_ _empty_line_ - __________________________________________________________ 1.6. Known Limitations @@ -236,19 +233,50 @@ if (is_domain_local("$avp(s:some_avp)")) { process uses a table, which is reloaded at the same time twice through FIFO, the second reload will delete the original table still in use by the process. - __________________________________________________________ Chapter 2. Developer's Guide The module provides is_domain_local API function for use by other OpenSER modules. - __________________________________________________________ 2.1. Available Functions -2.1.1. is_domain_local(domain) +2.1.1. is_domain_local(domain) Checks if domain given in str* parameter is local. The function returns 1 if domain is local and -1 if domain is not local or if an error occurred. + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/domain/doc/domain.sgml b/modules_k/domain/doc/domain.xml similarity index 57% rename from modules_k/domain/doc/domain.sgml rename to modules_k/domain/doc/domain.xml index 796984aed..3cf58deb1 100644 --- a/modules_k/domain/doc/domain.sgml +++ b/modules_k/domain/doc/domain.xml @@ -1,11 +1,13 @@ - + - - + + + - + %docentities; ]> @@ -31,8 +33,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/domain/doc/domain_user.sgml b/modules_k/domain/doc/domain_admin.xml similarity index 100% rename from modules_k/domain/doc/domain_user.sgml rename to modules_k/domain/doc/domain_admin.xml diff --git a/modules_k/domain/doc/domain_devel.sgml b/modules_k/domain/doc/domain_devel.xml similarity index 100% rename from modules_k/domain/doc/domain_devel.sgml rename to modules_k/domain/doc/domain_devel.xml diff --git a/modules_k/domainpolicy/README b/modules_k/domainpolicy/README index ded7e99df..226b37aea 100644 --- a/modules_k/domainpolicy/README +++ b/modules_k/domainpolicy/README @@ -2,19 +2,33 @@ Domain Policy Module Otmar Lendl + + Klaus Darilion + + Edited by Otmar Lendl + + +Edited by + Klaus Darilion + + Copyright © 2002, 2003, 2006 Juha Heinanen, Otmar Lendl, Klaus Darilion + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -48,22 +62,24 @@ Klaus Darilion 1.7. Known Limitations + 2. Frequently Asked Questions + List of Examples - 1-1. Setting db_url parameter - 1-2. Setting dp_table parameter - 1-3. Setting dp_col_rule parameter - 1-4. Setting dp_col_rule parameter - 1-5. Setting dp_col_att parameter - 1-6. Setting dp_col_val parameter - 1-7. Setting port_override_avp parameter - 1-8. Setting transport_override_avp parameter - 1-9. Setting domain_replacement_avp parameter - 1-10. Setting domain_prefix_avp parameter - 1-11. Setting domain_suffix_avp parameter - 1-12. Setting send_socket_avp parameter - 1-13. dp_can_connect usage - 1-14. dp_apply_policy usage - __________________________________________________________ + + 1.1. Setting db_url parameter + 1.2. Setting dp_table parameter + 1.3. Setting dp_col_rule parameter + 1.4. Setting dp_col_rule parameter + 1.5. Setting dp_col_att parameter + 1.6. Setting dp_col_val parameter + 1.7. Setting port_override_avp parameter + 1.8. Setting transport_override_avp parameter + 1.9. Setting domain_replacement_avp parameter + 1.10. Setting domain_prefix_avp parameter + 1.11. Setting domain_suffix_avp parameter + 1.12. Setting send_socket_avp parameter + 1.13. dp_can_connect usage + 1.14. dp_apply_policy usage Chapter 1. User's Guide @@ -80,15 +96,12 @@ Chapter 1. User's Guide draft-lendl-domain-policy-ddds-02. This module requires a database. No caching is implemented. - __________________________________________________________ 1.2. Dependencies The module depends on the following modules (in the other words the listed modules must be loaded before this module): - * database -- Any database module - __________________________________________________________ 1.3. Exported Parameters @@ -99,10 +112,9 @@ Chapter 1. User's Guide Default value is "mysql://openserro:openserro@localhost/openser" - Example 1-1. Setting db_url parameter + Example 1.1. Setting db_url parameter modparam("domainpolicy", "db_url", "postgresql://openserro:pass@db_host/ openser") - __________________________________________________________ 1.3.2. dp_table (string) @@ -110,9 +122,8 @@ openser") Default value is "domainpolicy". - Example 1-2. Setting dp_table parameter + Example 1.2. Setting dp_table parameter modparam("domainpolicy", "dp_table", "supportedpolicies") - __________________________________________________________ 1.3.3. dp_col_rule (string) @@ -121,9 +132,8 @@ modparam("domainpolicy", "dp_table", "supportedpolicies") Default value is "rule". - Example 1-3. Setting dp_col_rule parameter + Example 1.3. Setting dp_col_rule parameter modparam("domainpolicy", "dp_col_rule", "rules") - __________________________________________________________ 1.3.4. dp_col_type (string) @@ -134,9 +144,8 @@ modparam("domainpolicy", "dp_col_rule", "rules") Default value is "type". - Example 1-4. Setting dp_col_rule parameter + Example 1.4. Setting dp_col_rule parameter modparam("domainpolicy", "dp_col_type", "type") - __________________________________________________________ 1.3.5. dp_col_att (string) @@ -146,9 +155,8 @@ modparam("domainpolicy", "dp_col_type", "type") Default value is "att". - Example 1-5. Setting dp_col_att parameter + Example 1.5. Setting dp_col_att parameter modparam("domainpolicy", "dp_col_att", "attribute") - __________________________________________________________ 1.3.6. dp_col_val (string) @@ -157,9 +165,8 @@ modparam("domainpolicy", "dp_col_att", "attribute") Default value is "val". - Example 1-6. Setting dp_col_val parameter + Example 1.6. Setting dp_col_val parameter modparam("domainpolicy", "dp_col_val", "values") - __________________________________________________________ 1.3.7. port_override_avp (string) @@ -168,10 +175,9 @@ modparam("domainpolicy", "dp_col_val", "values") Default value is "portoverride". - Example 1-7. Setting port_override_avp parameter + Example 1.7. Setting port_override_avp parameter # string named AVP modparam("domainpolicy", "port_override_avp", "portoverride") - __________________________________________________________ 1.3.8. transport_override_avp (string) @@ -179,10 +185,9 @@ modparam("domainpolicy", "port_override_avp", "portoverride") Default value is "transportoverride". - Example 1-8. Setting transport_override_avp parameter + Example 1.8. Setting transport_override_avp parameter # string named AVP modparam("domainpolicy", "transport_override_avp", "transportoverride") - __________________________________________________________ 1.3.9. domain_replacement_avp (string) @@ -190,10 +195,9 @@ modparam("domainpolicy", "transport_override_avp", "transportoverride") Default value is "domainreplacement". - Example 1-9. Setting domain_replacement_avp parameter + Example 1.9. Setting domain_replacement_avp parameter # string named AVP modparam("domainpolicy", "domain_replacement_avp", "domainreplacement") - __________________________________________________________ 1.3.10. domain_prefix_avp (string) @@ -201,10 +205,9 @@ modparam("domainpolicy", "domain_replacement_avp", "domainreplacement") Default value is "domainprefix". - Example 1-10. Setting domain_prefix_avp parameter + Example 1.10. Setting domain_prefix_avp parameter # string named AVP modparam("domainpolicy", "domain_prefix_avp", "domainprefix") - __________________________________________________________ 1.3.11. domain_suffix_avp (string) @@ -212,10 +215,9 @@ modparam("domainpolicy", "domain_prefix_avp", "domainprefix") Default value is "domainsuffix". - Example 1-11. Setting domain_suffix_avp parameter + Example 1.11. Setting domain_suffix_avp parameter # string named AVP modparam("domainpolicy", "domain_suffix_avp", "domainsuffix") - __________________________________________________________ 1.3.12. send_socket_avp (string) @@ -227,10 +229,9 @@ modparam("domainpolicy", "domain_suffix_avp", "domainsuffix") Default value is "sendsocket". - Example 1-12. Setting send_socket_avp parameter + Example 1.12. Setting send_socket_avp parameter # string named AVP modparam("domainpolicy", "send_socket_avp", "sendsocket") - __________________________________________________________ 1.4. Exported Functions @@ -282,7 +283,6 @@ modparam("domainpolicy", "send_socket_avp", "sendsocket") Thus, the AVP's value is always string based. dp_can_connect returns: - * -2: on errors during the evaluation. (DNS, DB, ...) * -1: D2P+SIP records were found, but the policy is not fullfillable. @@ -292,7 +292,7 @@ modparam("domainpolicy", "send_socket_avp", "sendsocket") This function can be used from REQUEST_ROUTE. - Example 1-13. dp_can_connect usage + Example 1.13. dp_can_connect usage ... dp_can_connect(); switch(retcode) { @@ -316,7 +316,6 @@ switch(retcode) { break; } ... - __________________________________________________________ 1.4.2. dp_apply_policy() @@ -331,7 +330,6 @@ switch(retcode) { Setting the following AVPs in dp_can_connect() (or by any other means) cause the following actions in dp_apply_policy(): - * port_override_avp: If this AVP is set, the port in the destination URI is set to this port. Setting an override port disables NAPTR and SRV lookups according to RFC 3263. @@ -370,22 +368,19 @@ switch(retcode) { This function can be used from REQUEST_ROUTE. - Example 1-14. dp_apply_policy usage + Example 1.14. dp_apply_policy usage ... if (dp_apply_policy()) { t_relay(); } ... - __________________________________________________________ 1.5. FIFO Commands - __________________________________________________________ 1.6. Usage Scenarios This section describes how this module can be use to implement selective VoIP peerings. - __________________________________________________________ 1.6.1. TLS Based Federation @@ -403,7 +398,6 @@ if (dp_apply_policy()) { fabrics. All this can be achieved by the following configuration for a participating VoIP operation called example.com: - * Incoming SIP configuration Calls from other members are expected to use TLS and authenticate using a client-CERT. To implement this, we @@ -437,8 +431,6 @@ tls_client_domain["tlsfed"] { tls_verify_server = 1 } - __________________________________________________________ - 1.6.2. SIP Hub based Federation This example shows how a peering fabric based on a central SIP @@ -453,7 +445,6 @@ tls_client_domain["tlsfed"] { firewalling). All this can be achieved by the following configuration for a participating VoIP operation called example.com: - * DNS configuration The destination network announces its membership in this federation. @@ -475,7 +466,6 @@ mysql> select * from domainpolicy; | 1 | http://HUBFED.org/ | fed | domainreplacement | sip.HUBFED.org | +----+--------------------+------+-------------------+----------------+ - __________________________________________________________ 1.6.3. Walled Garden Federation @@ -496,7 +486,6 @@ mysql> select * from domainpolicy; lookup. Here is the configuration for example.com: - * DNS configuration The destination network announces its membership in this federation. @@ -522,6 +511,38 @@ mysql> select * from domainpolicy; | 1 | http://l3fed.org/ | fed | domainprefix | l3fed | +----+-------------------+------+--------------+-------+ - __________________________________________________________ 1.7. Known Limitations + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/domainpolicy/doc/domainpolicy.sgml b/modules_k/domainpolicy/doc/domainpolicy.xml similarity index 68% rename from modules_k/domainpolicy/doc/domainpolicy.sgml rename to modules_k/domainpolicy/doc/domainpolicy.xml index 40e213878..bbca5479a 100644 --- a/modules_k/domainpolicy/doc/domainpolicy.sgml +++ b/modules_k/domainpolicy/doc/domainpolicy.xml @@ -1,10 +1,12 @@ - + - + + - + %docentities; ]> @@ -42,8 +44,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/domainpolicy/doc/domainpolicy_user.sgml b/modules_k/domainpolicy/doc/domainpolicy_admin.xml similarity index 99% rename from modules_k/domainpolicy/doc/domainpolicy_user.sgml rename to modules_k/domainpolicy/doc/domainpolicy_admin.xml index bdc7b0b30..afd01c04f 100644 --- a/modules_k/domainpolicy/doc/domainpolicy_user.sgml +++ b/modules_k/domainpolicy/doc/domainpolicy_admin.xml @@ -535,16 +535,10 @@ tls_client_domain["tlsfed"] { } - - - -   - - +
-
SIP Hub based Federation diff --git a/modules_k/enum/README b/modules_k/enum/README index bd9952173..7b4b688e8 100644 --- a/modules_k/enum/README +++ b/modules_k/enum/README @@ -2,12 +2,20 @@ Enum Module Juha Heinanen + + Otmar Lendl + + Copyright © 2002, 2003 Juha Heinanen + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -27,18 +35,20 @@ Otmar Lendl 1.4.3. i_enum_query(["suffix"[,"service"]]) 1.4.4. is_from_user_enum() + 2. Frequently Asked Questions + List of Examples - 1-1. Setting domain_suffix module parameter - 1-2. Setting tel_uri_params module parameter - 1-3. Setting i_enum_suffix module parameter - 1-4. Setting brachlabel module parameter - 1-5. Zone file example - 1-6. Zone file example - 1-7. Setting the bl_algorithm module parameter - 1-8. enum_query usage - 1-9. enum_fquery usage - 1-10. is_from_user_enum usage - __________________________________________________________ + + 1.1. Setting domain_suffix module parameter + 1.2. Setting tel_uri_params module parameter + 1.3. Setting i_enum_suffix module parameter + 1.4. Setting brachlabel module parameter + 1.5. Zone file example + 1.6. Zone file example + 1.7. Setting the bl_algorithm module parameter + 1.8. enum_query usage + 1.9. enum_fquery usage + 1.10. is_from_user_enum usage Chapter 1. User's Guide @@ -105,15 +115,12 @@ Chapter 1. User's Guide Enum module also implements is_from_user_enum function. This function does an enum lookup on the from user and returns true if found, false otherwise. - __________________________________________________________ 1.2. Dependencies The module depends on the following modules (in the other words the listed modules must be loaded before this module): - * No dependencies. - __________________________________________________________ 1.3. Exported Parameters @@ -125,26 +132,24 @@ Chapter 1. User's Guide Default value is "e164.arpa." - Example 1-1. Setting domain_suffix module parameter + Example 1.1. Setting domain_suffix module parameter modparam("enum", "domain_suffix", "e1234.arpa.") - __________________________________________________________ 1.3.2. tel_uri_params (string) A string whose contents is appended to each new tel URI in the request as tel URI parameters. - Note +Note - Currently OpenSER does not support tel URIs. This means that at - present tel_uri_params is appended as URI parameters to every - URI. + Currently OpenSER does not support tel URIs. This means that at + present tel_uri_params is appended as URI parameters to every + URI. Default value is "" - Example 1-2. Setting tel_uri_params module parameter + Example 1.2. Setting tel_uri_params module parameter modparam("enum", "tel_uri_params", ";npdi") - __________________________________________________________ 1.3.3. i_enum_suffix (string) @@ -153,9 +158,8 @@ modparam("enum", "tel_uri_params", ";npdi") Default value is "e164.arpa." - Example 1-3. Setting i_enum_suffix module parameter + Example 1.3. Setting i_enum_suffix module parameter modparam("enum", "i_enum_suffix", "e1234.arpa.") - __________________________________________________________ 1.3.4. branchlabel (string) @@ -164,9 +168,8 @@ modparam("enum", "i_enum_suffix", "e1234.arpa.") Default value is ""i"" - Example 1-4. Setting brachlabel module parameter + Example 1.4. Setting brachlabel module parameter modparam("enum", "branchlabel", "i") - __________________________________________________________ 1.3.5. bl_algorithm (string) @@ -182,7 +185,7 @@ modparam("enum", "branchlabel", "i") [branchlabel].[reverse-country-code].[i_enum_suffix] to indicate after how many digits the label should in inserted. - Example 1-5. Zone file example + Example 1.5. Zone file example i.1.e164.arpa. IN TXT "4" 9.9.9.8.7.6.5.i.4.3.2.1.e164.arpa. IN NAPTR "naptr content for +1 234 5 678 999" @@ -196,7 +199,7 @@ i.1.e164.arpa. IN TXT "4" allocated yet. This version of the code uses 65300. See resolve.h. - Example 1-6. Zone file example + Example 1.6. Zone file example i.1.e164.arpa. TYPE65300 \# 14 ( 04 ; position 01 69 ; separator @@ -208,26 +211,24 @@ pa Default value is "cc" - Example 1-7. Setting the bl_algorithm module parameter + Example 1.7. Setting the bl_algorithm module parameter modparam("enum", "bl_algorithm", "txt") - __________________________________________________________ 1.4. Exported Functions -1.4.1. enum_query(["suffix"[,"service"]]) +1.4.1. enum_query(["suffix"[,"service"]]) The function performs an enum query and rewrites the - Request-URI with the result of the query. See Section 1.1> for - more information. + Request-URI with the result of the query. See Section 1.1, + "Overview" for more information. Meaning of the parameters is as follows: - * suffix - Suffix to be appended to the domain name. * service - Service string to be used in the service field. This function can be used from REQUEST_ROUTE. - Example 1-8. enum_query usage + Example 1.8. enum_query usage ... # search for "e2u+sip" in freenum.org enum_query("freenum.org."); @@ -248,22 +249,20 @@ enum_query("e164.arpa.","voice"); # or use instead enum_query("e164.arpa.","+sip+voice:sip"); ... - __________________________________________________________ -1.4.2. enum_fquery(["suffix"[,"service"]]) +1.4.2. enum_fquery(["suffix"[,"service"]]) The function performs an enum query on the user part of the From: tag and rewrites the Request-URI with the result of the - query. See Section 1.1> for more information. + query. See Section 1.1, "Overview" for more information. Meaning of the parameters is as follows: - * suffix - Suffix to be appended to the domain name. * service - Service string to be used in the service field. This function can be used from REQUEST_ROUTE. - Example 1-9. enum_fquery usage + Example 1.9. enum_fquery usage ... # search for "e2u+sip" in freenum.org enum_fquery("freenum.org."); @@ -284,9 +283,8 @@ enum_fquery("e164.arpa.","voice"); # or use instead enum_fquery("e164.arpa.","+sip+voice:sip"); ... - __________________________________________________________ -1.4.3. i_enum_query(["suffix"[,"service"]]) +1.4.3. i_enum_query(["suffix"[,"service"]]) The function performs an enum query and rewrites the Request-URI with the result of the query. This the @@ -297,7 +295,6 @@ enum_fquery("e164.arpa.","+sip+voice:sip"); See ftp://ftp.rfc-editor.org/in-notes/internet-drafts/draft-haberle r-carrier-enum-01.txt for the rationale behind this function. - __________________________________________________________ 1.4.4. is_from_user_enum() @@ -306,9 +303,42 @@ enum_fquery("e164.arpa.","+sip+voice:sip"); This function can be used from REQUEST_ROUTE. - Example 1-10. is_from_user_enum usage + Example 1.10. is_from_user_enum usage ... if (is_from_user_enum()) { .... }; ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/enum/doc/enum.sgml b/modules_k/enum/doc/enum.xml similarity index 59% rename from modules_k/enum/doc/enum.sgml rename to modules_k/enum/doc/enum.xml index 49493024a..7997308f7 100644 --- a/modules_k/enum/doc/enum.sgml +++ b/modules_k/enum/doc/enum.xml @@ -1,10 +1,12 @@ - + - + + - + %docentities; ]> @@ -31,8 +33,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/enum/doc/enum_user.sgml b/modules_k/enum/doc/enum_admin.xml similarity index 100% rename from modules_k/enum/doc/enum_user.sgml rename to modules_k/enum/doc/enum_admin.xml diff --git a/modules_k/exec/README b/modules_k/exec/README index 50232f28f..f5982147a 100644 --- a/modules_k/exec/README +++ b/modules_k/exec/README @@ -9,9 +9,13 @@ Edited by Jan Janak Copyright © 2003 FhG FOKUS + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -33,13 +37,15 @@ Jan Janak 1.5. Known Issues + 2. Frequently Asked Questions + List of Examples - 1-1. Set "setvars" parameter - 1-2. Set "time_to_kill" parameter - 1-3. exec_dset usage - 1-4. exec_msg usage - 1-5. exec_avp usage - __________________________________________________________ + + 1.1. Set "setvars" parameter + 1.2. Set "time_to_kill" parameter + 1.3. exec_dset usage + 1.4. exec_msg usage + 1.5. exec_avp usage Chapter 1. User's Guide @@ -50,7 +56,6 @@ Chapter 1. User's Guide command string is passed to shell using "popen" command. OpenSER passes additionally lot of information about request in environment variables: - * SIP_HF_ contains value of each header field in request. If a header field occurred multiple times, values are concatenated and comma-separated. is in @@ -67,24 +72,19 @@ Chapter 1. User's Guide original). * SIP_USER is userpart of current request URI. * SIP_OUSER is userpart of original request URI. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -95,35 +95,32 @@ Chapter 1. User's Guide Default value is 1. - Example 1-1. Set "setvars" parameter + Example 1.1. Set "setvars" parameter ... modparam("exec", "setvars", 1) ... - __________________________________________________________ -1.3.2. time_to_kill (integer) +1.3.2. time_to_kill (integer) Specifies the longest time a program is allowed to execute. If the time is exceeded, the program is killed. Default value is 0. - Example 1-2. Set "time_to_kill" parameter + Example 1.2. Set "time_to_kill" parameter ... modparam("exec", "time_to_kill", 20) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. exec_dset(command) +1.4.1. exec_dset(command) Executes an external command. Current URI is passed to the command as parameter. Output of the command is considered URI set (separated by lines). Meaning of the parameters is as follows: - * command - Command to be executed. It can include pseudo- variabes; @@ -133,14 +130,13 @@ modparam("exec", "time_to_kill", 20) This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-3. exec_dset usage + Example 1.3. exec_dset usage ... exec_dset("echo TEST > /tmp/test.txt"); exec_dset("echo TEST > /tmp/$rU.txt"); ... - __________________________________________________________ -1.4.2. exec_msg(command) +1.4.2. exec_msg(command) Executes an external command. The whole message is passed to it in input, no command-line parameters are added, output of the @@ -150,7 +146,6 @@ exec_dset("echo TEST > /tmp/$rU.txt"); for information on usage. Meaning of the parameters is as follows: - * command - Command to be executed. It can include pseudo-variables. @@ -160,21 +155,19 @@ exec_dset("echo TEST > /tmp/$rU.txt"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-4. exec_msg usage + Example 1.4. exec_msg usage ... exec_dset("echo TEST > /tmp/test.txt"); exec_dset("echo TEST > /tmp/$rU.txt"); ... - __________________________________________________________ -1.4.3. exec_avp(command [, avplist]) +1.4.3. exec_avp(command [, avplist]) Executes an external command. Each line from output of the command is saved in an AVP from 'avplist'. If 'avplist' is missing, the AVP are named 1, 2, 3, ... Meaning of the parameters is as follows: - * command - Command to be executed. It can include pseudo- variabes; * avplist - comma separated list with AVP names to store the @@ -186,12 +179,11 @@ exec_dset("echo TEST > /tmp/$rU.txt"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-5. exec_avp usage + Example 1.5. exec_avp usage ... exec_avp("echo TEST"); exec_avp("echo TEST", "$avp(s:test)"); ... - __________________________________________________________ 1.5. Known Issues @@ -199,3 +191,36 @@ exec_avp("echo TEST", "$avp(s:test)"); stop blocking SIP server. (There is kill.c but it is not used along with the current mechanisms based on popen. Besides that kill.c is ugly). + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/exec/doc/exec.sgml b/modules_k/exec/doc/exec.xml similarity index 64% rename from modules_k/exec/doc/exec.sgml rename to modules_k/exec/doc/exec.xml index 66385581e..358b02b20 100644 --- a/modules_k/exec/doc/exec.sgml +++ b/modules_k/exec/doc/exec.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -37,8 +39,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/exec/doc/exec_user.sgml b/modules_k/exec/doc/exec_admin.xml similarity index 100% rename from modules_k/exec/doc/exec_user.sgml rename to modules_k/exec/doc/exec_admin.xml diff --git a/modules_k/gflags/README b/modules_k/gflags/README index 82030d63e..718c0bc18 100644 --- a/modules_k/gflags/README +++ b/modules_k/gflags/README @@ -2,14 +2,22 @@ gflags Module Jiri Kuthan + + Edited by Daniel-Constantin Mierla + + Copyright © 2004 FhG FOKUS + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -31,16 +39,18 @@ Daniel-Constantin Mierla 1.5.3. is_gflag 1.5.4. get_gflags + 2. Frequently Asked Questions + List of Examples - 1-1. initial parameter usage - 1-2. set_gflag() usage - 1-3. reset_gflag() usage - 1-4. is_gflag() usage - 1-5. set_gflag usage - 1-6. reset_gflag usage - 1-7. is_gflag usage - 1-8. get_gflags usage - __________________________________________________________ + + 1.1. initial parameter usage + 1.2. set_gflag() usage + 1.3. reset_gflag() usage + 1.4. is_gflag() usage + 1.5. set_gflag usage + 1.6. reset_gflag usage + 1.7. is_gflag usage + 1.8. get_gflags usage Chapter 1. User's Guide @@ -62,15 +72,12 @@ Chapter 1. User's Guide The module exports external commands that can be used to change the global flags via Management Interface. The MI commands are: "set_gflag", "reset_gflag" and "is_gflag". - __________________________________________________________ 1.2. Dependencies The module depends on the following modules (in the other words the listed modules must be loaded before this module): - * none - __________________________________________________________ 1.3. Exported Parameters @@ -80,9 +87,8 @@ Chapter 1. User's Guide Default value is "0". - Example 1-1. initial parameter usage + Example 1.1. initial parameter usage modparam("gflags", "initial", 15) - __________________________________________________________ 1.4. Exported Functions @@ -95,11 +101,10 @@ modparam("gflags", "initial", 15) This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, ONREPLY_ROUTE and BRANCH_ROUTE. - Example 1-2. set_gflag() usage + Example 1.2. set_gflag() usage ... set_gflag("4"); ... - __________________________________________________________ 1.4.2. reset_gflag(flag) @@ -108,11 +113,10 @@ set_gflag("4"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, ONREPLY_ROUTE and BRANCH_ROUTE. - Example 1-3. reset_gflag() usage + Example 1.3. reset_gflag() usage ... reset_gflag("4"); ... - __________________________________________________________ 1.4.3. is_gflag(flag) @@ -121,7 +125,7 @@ reset_gflag("4"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, ONREPLY_ROUTE and BRANCH_ROUTE. - Example 1-4. is_gflag() usage + Example 1.4. is_gflag() usage ... if(is_gflag("4")) { @@ -130,7 +134,6 @@ if(is_gflag("4")) log("global flag 4 is not set\n"); }; ... - __________________________________________________________ 1.5. MI Commands @@ -139,7 +142,6 @@ if(is_gflag("4")) flags. It is not possible to specify directly the flag position that should be changed as in the functions available in the routing script. - __________________________________________________________ 1.5.1. set_gflag @@ -147,12 +149,11 @@ if(is_gflag("4")) The parameter value must be a number in decimal or hexa format - Example 1-5. set_gflag usage + Example 1.5. set_gflag usage ... $ openserctl fifo set_gflag 1 $ openserctl fifo set_gflag 0x3 ... - __________________________________________________________ 1.5.2. reset_gflag @@ -160,12 +161,11 @@ $ openserctl fifo set_gflag 0x3 The parameter value must be a number in decimal or hexa format - Example 1-6. reset_gflag usage + Example 1.6. reset_gflag usage ... $ openserctl fifo reset_gflag 1 $ openserctl fifo reset_gflag 0x3 ... - __________________________________________________________ 1.5.3. is_gflag @@ -174,7 +174,7 @@ $ openserctl fifo reset_gflag 0x3 The function returns TRUE if all the flags from the set are set and FALSE if at least one is not set. - Example 1-7. is_gflag usage + Example 1.7. is_gflag usage ... $ openserctl fifo set_gflag 1024 $ openserctl fifo is_gflag 1024 @@ -191,16 +191,48 @@ FALSE $ openserctl fifo is_gflag 16 TRUE ... - __________________________________________________________ 1.5.4. get_gflags Return the bitmap with all flags. The function gets no parameters and returns the bitmap in hexa and decimal format. - Example 1-8. get_gflags usage + Example 1.8. get_gflags usage ... $ openserctl fifo get_gflags 0x3039 12345 ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/gflags/doc/gflags.sgml b/modules_k/gflags/doc/gflags.xml similarity index 53% rename from modules_k/gflags/doc/gflags.sgml rename to modules_k/gflags/doc/gflags.xml index e5bc28cb3..c6ba4cf75 100644 --- a/modules_k/gflags/doc/gflags.sgml +++ b/modules_k/gflags/doc/gflags.xml @@ -1,10 +1,12 @@ - + - + + - + %docentities; ]> @@ -21,7 +23,7 @@ Daniel-Constantin Mierla - daniel@voice-system.ro + miconda@gmail.com @@ -30,8 +32,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/gflags/doc/gflags_user.sgml b/modules_k/gflags/doc/gflags_admin.xml similarity index 100% rename from modules_k/gflags/doc/gflags_user.sgml rename to modules_k/gflags/doc/gflags_admin.xml diff --git a/modules_k/group/README b/modules_k/group/README index 3598c236b..401c90476 100644 --- a/modules_k/group/README +++ b/modules_k/group/README @@ -9,9 +9,13 @@ Edited by Jan Janak Copyright © 2003 FhG FOKUS + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -42,20 +46,22 @@ Jan Janak 1.4.1. is_user_in(URI, group) 1.4.2. get_user_group(URI, AVP) + 2. Frequently Asked Questions + List of Examples - 1-1. Set db_url parameter - 1-2. Set table parameter - 1-3. Set user_column parameter - 1-4. Set domain_column parameter - 1-5. Set group_column parameter - 1-6. Set use_domain parameter - 1-7. Set re_table parameter - 1-8. Set reg_exp_column parameter - 1-9. Set re_gid_column parameter - 1-10. Set multiple_gid parameter - 1-11. is_user_in usage - 1-12. get_user_group usage - __________________________________________________________ + + 1.1. Set db_url parameter + 1.2. Set table parameter + 1.3. Set user_column parameter + 1.4. Set domain_column parameter + 1.5. Set group_column parameter + 1.6. Set use_domain parameter + 1.7. Set re_table parameter + 1.8. Set reg_exp_column parameter + 1.9. Set re_gid_column parameter + 1.10. Set multiple_gid parameter + 1.11. is_user_in usage + 1.12. get_user_group usage Chapter 1. User's Guide @@ -63,7 +69,6 @@ Chapter 1. User's Guide This module provides functionalities for different methods of group membership checking. - __________________________________________________________ 1.1.1. Strict membership checking @@ -73,7 +78,6 @@ Chapter 1. User's Guide There is no DB caching support, each check involving a DB query. - __________________________________________________________ 1.1.2. Regular Expression based checking @@ -85,24 +89,19 @@ Chapter 1. User's Guide Due performance reasons (regular expression evaluation), DB cache support is available: the table content is loaded into memory at startup and all regular expressions are compiled. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * A database module, like mysql, postgres or dbtext - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -113,11 +112,10 @@ Chapter 1. User's Guide Default value is "mysql://openserro:openserro@localhost/openser". - Example 1-1. Set db_url parameter + Example 1.1. Set db_url parameter ... modparam("group", "db_url", "mysql://username:password@dbhost/openser") ... - __________________________________________________________ 1.3.2. table (string) @@ -126,11 +124,10 @@ modparam("group", "db_url", "mysql://username:password@dbhost/openser") Default value is "grp". - Example 1-2. Set table parameter + Example 1.2. Set table parameter ... modparam("group", "table", "grp_table") ... - __________________________________________________________ 1.3.3. user_column (string) @@ -138,11 +135,10 @@ modparam("group", "table", "grp_table") Default value is "username". - Example 1-3. Set user_column parameter + Example 1.3. Set user_column parameter ... modparam("group", "user_column", "user") ... - __________________________________________________________ 1.3.4. domain_column (string) @@ -150,11 +146,10 @@ modparam("group", "user_column", "user") Default value is "domain". - Example 1-4. Set domain_column parameter + Example 1.4. Set domain_column parameter ... modparam("group", "domain_column", "realm") ... - __________________________________________________________ 1.3.5. group_column (string) @@ -162,11 +157,10 @@ modparam("group", "domain_column", "realm") Default value is "grp". - Example 1-5. Set group_column parameter + Example 1.5. Set group_column parameter ... modparam("group", "group_column", "grp") ... - __________________________________________________________ 1.3.6. use_domain (integer) @@ -176,11 +170,10 @@ modparam("group", "group_column", "grp") Default value is 0 (no). - Example 1-6. Set use_domain parameter + Example 1.6. Set use_domain parameter ... modparam("group", "use_domain", 1) ... - __________________________________________________________ 1.3.7. re_table (string) @@ -190,11 +183,10 @@ modparam("group", "use_domain", 1) Default value is "NULL". - Example 1-7. Set re_table parameter + Example 1.7. Set re_table parameter ... modparam("group", "re_table", "re_grp") ... - __________________________________________________________ 1.3.8. re_exp_column (string) @@ -203,11 +195,10 @@ modparam("group", "re_table", "re_grp") Default value is "reg_exp". - Example 1-8. Set reg_exp_column parameter + Example 1.8. Set reg_exp_column parameter ... modparam("group", "reg_exp_column", "re") ... - __________________________________________________________ 1.3.9. re_gid_column (string) @@ -215,11 +206,10 @@ modparam("group", "reg_exp_column", "re") Default value is "group_id". - Example 1-9. Set re_gid_column parameter + Example 1.9. Set re_gid_column parameter ... modparam("group", "re_gid_column", "grp_id") ... - __________________________________________________________ 1.3.10. multiple_gid (integer) @@ -229,22 +219,20 @@ modparam("group", "re_gid_column", "grp_id") Default value is "1". - Example 1-10. Set multiple_gid parameter + Example 1.10. Set multiple_gid parameter ... modparam("group", "multiple_gid", 0) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. is_user_in(URI, group) +1.4.1. is_user_in(URI, group) This function is to be used for script group membership. The function returns true if username in the given URI is member of the given group and false if not. Meaning of the parameters is as follows: - * URI - URI whose username and optionally domain to be used, this can be one of: + Request-URI - Use Request-URI username and @@ -258,15 +246,14 @@ modparam("group", "multiple_gid", 0) This function can be used from REQUEST_ROUTE and FAILURE_ROUTE. - Example 1-11. is_user_in usage + Example 1.11. is_user_in usage ... if (is_user_in("Request-URI", "ld")) { ... }; ... - __________________________________________________________ -1.4.2. get_user_group(URI, AVP) +1.4.2. get_user_group(URI, AVP) This function is to be used for regular expression based group membership. The function returns true if username in the given @@ -274,7 +261,6 @@ if (is_user_in("Request-URI", "ld")) { as AVPs. Meaning of the parameters is as follows: - * URI - URI to be matched against the regular expressions: + Request-URI - Use Request-URI + To - Use To URI. @@ -288,10 +274,43 @@ if (is_user_in("Request-URI", "ld")) { This function can be used from REQUEST_ROUTE and FAILURE_ROUTE. - Example 1-12. get_user_group usage + Example 1.12. get_user_group usage ... if (get_user_group("Request-URI", "$avp(i:10)")) { xgdb("User $ru belongs to $(avp(i:10)[*]) group(s)\n"); .... }; ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/group/doc/group.sgml b/modules_k/group/doc/group.xml similarity index 64% rename from modules_k/group/doc/group.sgml rename to modules_k/group/doc/group.xml index a4d98bd1d..38da6bcaf 100644 --- a/modules_k/group/doc/group.sgml +++ b/modules_k/group/doc/group.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -37,8 +39,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/group/doc/group_user.sgml b/modules_k/group/doc/group_admin.xml similarity index 100% rename from modules_k/group/doc/group_user.sgml rename to modules_k/group/doc/group_admin.xml diff --git a/modules_k/group_radius/README b/modules_k/group_radius/README index ce4f6c2d9..b6918221a 100644 --- a/modules_k/group_radius/README +++ b/modules_k/group_radius/README @@ -13,9 +13,13 @@ Edited by Jan Janak Copyright © 2003 FhG FOKUS + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -33,11 +37,13 @@ Jan Janak 1.4.1. radius_is_user_in(URI, group) + 2. Frequently Asked Questions + List of Examples - 1-1. Set radius_config parameter - 1-2. Set use_domain parameter - 1-3. radius_is_user_in usage - __________________________________________________________ + + 1.1. Set radius_config parameter + 1.2. Set use_domain parameter + 1.3. radius_is_user_in usage Chapter 1. User's Guide @@ -47,7 +53,6 @@ Chapter 1. User's Guide checking over radius. There is a database table that contains list of users and groups they belong to. The table is used by functions of this module. - __________________________________________________________ 1.2. Dependencies @@ -55,19 +60,15 @@ Chapter 1. User's Guide The module depends on the following modules (in the other words the listed modules must be loaded before this module): - * none - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before compilling OpenSER with this module loaded: - * radiusclient-ng 0.5.0 or higher -- library and development files. See http://developer.berlios.de/projects/radiusclient-ng/. - __________________________________________________________ 1.3. Exported Parameters @@ -79,11 +80,10 @@ Chapter 1. User's Guide Default value is "/usr/local/etc/radiusclient-ng/radiusclient.conf". - Example 1-1. Set radius_config parameter + Example 1.1. Set radius_config parameter ... modparam("group_radius", "radius_config", "/etc/radiusclient.conf") ... - __________________________________________________________ 1.3.2. use_domain (integer) @@ -92,21 +92,19 @@ modparam("group_radius", "radius_config", "/etc/radiusclient.conf") Default value is 0 (no). - Example 1-2. Set use_domain parameter + Example 1.2. Set use_domain parameter ... modparam("group_radius", "use_domain", 1) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. radius_is_user_in(URI, group) +1.4.1. radius_is_user_in(URI, group) The function returns true if username in the given URI is member of the given group and false if not. Meaning of the parameters is as follows: - * URI - URI whose username and optionally domain to be used, this can be one of: + Request-URI - Use Request-URI username and @@ -118,9 +116,42 @@ modparam("group_radius", "use_domain", 1) This function can be used from REQUEST_ROUTE. - Example 1-3. radius_is_user_in usage + Example 1.3. radius_is_user_in usage ... if (radius_is_user_in("Request-URI", "ld")) { ... }; ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/group_radius/doc/group_radius.sgml b/modules_k/group_radius/doc/group_radius.xml similarity index 69% rename from modules_k/group_radius/doc/group_radius.sgml rename to modules_k/group_radius/doc/group_radius.xml index 275863ee1..973c28c61 100644 --- a/modules_k/group_radius/doc/group_radius.sgml +++ b/modules_k/group_radius/doc/group_radius.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -45,8 +47,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/group_radius/doc/group_radius_user.sgml b/modules_k/group_radius/doc/group_radius_admin.xml similarity index 99% rename from modules_k/group_radius/doc/group_radius_user.sgml rename to modules_k/group_radius/doc/group_radius_admin.xml index 9b6b152f6..3140af40f 100644 --- a/modules_k/group_radius/doc/group_radius_user.sgml +++ b/modules_k/group_radius/doc/group_radius_admin.xml @@ -33,6 +33,7 @@ The following libraries or applications must be installed before compilling &ser; with this module loaded: + radiusclient-ng 0.5.0 or higher -- diff --git a/modules_k/h350/README b/modules_k/h350/README index 2fdf8d269..d2d38e812 100644 --- a/modules_k/h350/README +++ b/modules_k/h350/README @@ -3,11 +3,15 @@ H350 Module Christian Schlatter University of North Carolina + Copyright © 2007 University of North Carolina + Revision History + Revision 0.1 05-17-2007 __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -34,22 +38,23 @@ Christian Schlatter 1.4.3. h350_result_call_preferences(avp_name_prefix) 1.4.4. h350_result_service_level(avp_name_prefix) + 2. Frequently Asked Questions Resources List of Examples - 1-1. Example H.350 commObject storing SIP account data - 1-2. ldap_session parameter usage - 1-3. base_dn parameter usage - 1-4. search_scope parameter usage - 1-5. Example Usage - 1-6. Example Usage - 1-7. Example H.350 callPreferenceURI simple call forwarding + + 1.1. Example H.350 commObject storing SIP account data + 1.2. ldap_session parameter usage + 1.3. base_dn parameter usage + 1.4. search_scope parameter usage + 1.5. Example Usage + 1.6. Example Usage + 1.7. Example H.350 callPreferenceURI simple call forwarding rules - 1-8. Example Usage - 1-9. Example SIPIdentityServiceLevel values and resulting AVPs - 1-10. Example Usage - __________________________________________________________ + 1.8. Example Usage + 1.9. Example SIPIdentityServiceLevel values and resulting AVPs + 1.10. Example Usage Chapter 1. User's Guide @@ -80,14 +85,13 @@ Chapter 1. User's Guide allows a script writer to implement H.350 based SIP digest authentication, call forwarding, SIP URI alias to AOR rewriting, and service level parsing. - __________________________________________________________ 1.1.1. Example H.350 commObject LDAP Entry The following example shows a typical H.350 commObject LDAP entry storing SIP account data. - Example 1-1. Example H.350 commObject storing SIP account data + Example 1.1. Example H.350 commObject storing SIP account data Attribute Name Attribute Value(s) -------------- ----------------- @@ -133,7 +137,6 @@ objectClass top commObject SIPIdentity callPreferenceURIObject - __________________________________________________________ 1.2. Dependencies @@ -141,18 +144,14 @@ objectClass top The module depends on the following modules (the listed modules must be loaded before this module): - * LDAP - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * OpenLDAP library (libldap), libldap header files (libldap-dev) are needed for compilation - __________________________________________________________ 1.3. Exported Parameters @@ -163,9 +162,8 @@ objectClass top Default value: "" - Example 1-2. ldap_session parameter usage + Example 1.2. ldap_session parameter usage modparam("h350", "ldap_session", "h350"); - __________________________________________________________ 1.3.2. base_dn (string) @@ -175,9 +173,8 @@ modparam("h350", "ldap_session", "h350"); Default value: "" - Example 1-3. base_dn parameter usage + Example 1.3. base_dn parameter usage modparam("h350", "base_dn", "ou=h350,dc=example,dc=com"); - __________________________________________________________ 1.3.3. search_scope (string) @@ -186,9 +183,8 @@ modparam("h350", "base_dn", "ou=h350,dc=example,dc=com"); Default value: "one" - Example 1-4. search_scope parameter usage + Example 1.4. search_scope parameter usage modparam("h350", "search_scope", "sub"); - __________________________________________________________ 1.4. Exported Functions @@ -233,7 +229,7 @@ modparam("h350", "search_scope", "sub"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE, and ONREPLY_ROUTE. - Example 1-5. Example Usage + Example 1.5. Example Usage # # H.350 lookup for callee # @@ -253,7 +249,6 @@ if (!h350_sipuri_lookup("sip:$rU@$rd")) } # now h350_result* or ldap_result* functions can be used - __________________________________________________________ 1.4.2. h350_auth_lookup(auth_username, "username_avp_spec/pwd_avp_spec") @@ -307,7 +302,7 @@ if (!h350_sipuri_lookup("sip:$rU@$rd")) This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE, and ONREPLY_ROUTE. - Example 1-6. Example Usage + Example 1.6. Example Usage # -- auth params -- modparam("auth", "username_spec", "$avp(s:auth_user)") modparam("auth", "password_spec", "$avp(s:auth_pwd)") @@ -393,7 +388,6 @@ route[1] xlog("L_INFO", "$rm request successfully authenticated"); return(1); } - __________________________________________________________ 1.4.3. h350_result_call_preferences(avp_name_prefix) @@ -416,8 +410,9 @@ route[1] is a string indicating the time in milliseconds after which the call forwarding should occur. - Example 1-7. Example H.350 callPreferenceURI simple call + Example 1.7. Example H.350 callPreferenceURI simple call forwarding rules + # Example 1: # forward to sip:voicemail@example.com on no answer after 15 seconds: @@ -499,7 +494,7 @@ AVP value = argument / 1000 This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE, and ONREPLY_ROUTE. - Example 1-8. Example Usage + Example 1.8. Example Usage # # H.350 lookup for callee # @@ -542,7 +537,6 @@ if (is_avp_set("$avp(s:callee_pref_u)")) t_relay(); exit; } - __________________________________________________________ 1.4.4. h350_result_service_level(avp_name_prefix) @@ -559,7 +553,7 @@ if (is_avp_set("$avp(s:callee_pref_u)")) SIPIdentityServiceLevel attribute value, and an integer value of 1. - Example 1-9. Example SIPIdentityServiceLevel values and + Example 1.9. Example SIPIdentityServiceLevel values and resulting AVPs SIPIdentityServiceLevel: longdistance SIPIdentityServiceLevel: international @@ -601,7 +595,7 @@ $avp("s:sl_900") = 1 This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE, and ONREPLY_ROUTE. - Example 1-10. Example Usage + Example 1.10. Example Usage # # H.350 SIP digest authentication for caller # @@ -630,21 +624,53 @@ else { sl_send_reply("403", "Forbidden"); } exit; - __________________________________________________________ + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. Resources [H.350] Directory Services Architecture for Multimedia - Conferencing, August 2003, ITU-T. + Conferencing. August 2003. ITU-T. - [H.350.4] Directory services architecture for SIP, August 2003, + [H.350.4] Directory services architecture for SIP. August 2003. ITU-T. [H.350.6] Directory services architecture for call forwarding - and preferences, March 2004, ITU-T. + and preferences. March 2004. ITU-T. - [ViDe-H.350-Cookbook] ViDe H.350 Cookbook, 2005, ViDe. + [ViDe-H.350-Cookbook] ViDe H.350 Cookbook. 2005. ViDe. [RFC4510] Lightweight Directory Access Protocol (LDAP): - Technical Specification Road Map, June 2006, Internet + Technical Specification Road Map. June 2006. Internet Engineering Task Force. diff --git a/modules_k/h350/doc/h350.sgml b/modules_k/h350/doc/h350.xml similarity index 72% rename from modules_k/h350/doc/h350.sgml rename to modules_k/h350/doc/h350.xml index fe4ee06c1..33b9c9a44 100644 --- a/modules_k/h350/doc/h350.sgml +++ b/modules_k/h350/doc/h350.xml @@ -1,11 +1,13 @@ - + - - + + + - + %docentities; ]> diff --git a/modules_k/h350/doc/h350_user.sgml b/modules_k/h350/doc/h350_admin.xml similarity index 91% rename from modules_k/h350/doc/h350_user.sgml rename to modules_k/h350/doc/h350_admin.xml index 0c9d672f3..20fd2f3fb 100644 --- a/modules_k/h350/doc/h350_user.sgml +++ b/modules_k/h350/doc/h350_admin.xml @@ -5,11 +5,11 @@ Overview - The OpenSER H350 module enables an OpenSER SIP proxy server to access SIP account data stored in an LDAP directory containing H.350 commObjects. ITU-T Recommendation H.350 standardizes LDAP object classes to store Real-Time Communication (RTC) account data. In particular, H.350.4 defines an object class called sipIdentity that includes attribute specifications for SIP account data like SIP URI, SIP digest username/password, or service level. This allows to store SIP account data in a vendor neutral way and lets different entities, like SIP proxies, provisioning, or billing applications, access the data in a standardized format. + The OpenSER H350 module enables an OpenSER SIP proxy server to access SIP account data stored in an LDAP directory containing H.350 commObjects. ITU-T Recommendation H.350 standardizes LDAP object classes to store Real-Time Communication (RTC) account data. In particular, H.350.4 defines an object class called sipIdentity that includes attribute specifications for SIP account data like SIP URI, SIP digest username/password, or service level. This allows to store SIP account data in a vendor neutral way and lets different entities, like SIP proxies, provisioning, or billing applications, access the data in a standardized format. - The ViDe H.350 Cookbook is a good reference for deploying an H.350 directory. Besides general information on H.350, LDAP, and related standards, this document explains how to set up an H.350/LDAP directory and discusses different deployment scenarios. + The ViDe H.350 Cookbook is a good reference for deploying an H.350 directory. Besides general information on H.350, LDAP, and related standards, this document explains how to set up an H.350/LDAP directory and discusses different deployment scenarios. @@ -478,7 +478,7 @@ route[1] h350_result_call_preferences(avp_name_prefix) - This function parses the callPreferenceURI attribute of an H.350 commObject, which must have been fetched through h350_*_lookup or ldap_search. callPreferenceURI is a multi-valued attribute that stores call preference rules like e.g. forward-on-busy or forward-unconditionally. Directory services architecture for call forwarding and preferences defines a format for simple call forwarding rules: + This function parses the callPreferenceURI attribute of an H.350 commObject, which must have been fetched through h350_*_lookup or ldap_search. callPreferenceURI is a multi-valued attribute that stores call preference rules like e.g. forward-on-busy or forward-unconditionally. Directory services architecture for call forwarding and preferences defines a format for simple call forwarding rules:
@@ -639,7 +639,7 @@ AVP value = argument / 1000 # store H.350 call preferences in AVP # -if (!h350_result_call_preferences("callee_pref_") && ($retcode == -1)) +if (!h350_result_call_preferences("callee_pref_") && ($retcode == -1)) { sl_send_reply("500", "Internal server error"); exit; @@ -679,7 +679,7 @@ if (is_avp_set("$avp(s:callee_pref_u)")) h350_result_service_level(avp_name_prefix) - Directory services architecture for SIP defines a multi-valued LDAP attribute named SIPIdentityServiceLevel, which can be used to store SIP account service level values in an LDAP directory. This function parses the SIPIdentityServiceLevel attribute and stores all service level values as AVPs for later retrieval in the OpenSER routing script. The function accesses the H.350 commObject fetched by a call to h350_*_lookup or ldap_search. + Directory services architecture for SIP defines a multi-valued LDAP attribute named SIPIdentityServiceLevel, which can be used to store SIP account service level values in an LDAP directory. This function parses the SIPIdentityServiceLevel attribute and stores all service level values as AVPs for later retrieval in the OpenSER routing script. The function accesses the H.350 commObject fetched by a call to h350_*_lookup or ldap_search. @@ -789,7 +789,7 @@ $avp("s:sl_900") = 1 # store caller's service level as AVP # -if (!h350_result_service_level("caller_sl_") && ($retcode == -1)) +if (!h350_result_service_level("caller_sl_") && ($retcode == -1)) { sl_send_reply("500", "Internal server error"); exit; diff --git a/modules_k/imc/README b/modules_k/imc/README index aef8b24ac..26692785e 100644 --- a/modules_k/imc/README +++ b/modules_k/imc/README @@ -13,9 +13,13 @@ Edited by Anca-Maria Vamanu Copyright © 2006 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -49,16 +53,18 @@ Anca-Maria Vamanu 1.7. IMC Commands 1.8. Installation + 2. Frequently Asked Questions + List of Examples - 1-1. Set db_url parameter - 1-2. Set rooms_table parameter - 1-3. Set members_table parameter - 1-4. Set hash_size parameter - 1-5. Set imc_cmd_start_char parameter - 1-6. Set outbound_proxy parameter - 1-7. Usage of imc_manager() function - 1-8. List of commands - __________________________________________________________ + + 1.1. Set db_url parameter + 1.2. Set rooms_table parameter + 1.3. Set members_table parameter + 1.4. Set hash_size parameter + 1.5. Set imc_cmd_start_char parameter + 1.6. Set outbound_proxy parameter + 1.7. Usage of imc_manager() function + 1.8. List of commands Chapter 1. User's Guide @@ -78,25 +84,20 @@ Chapter 1. User's Guide interpreter of the IMC commands are embeded in the module, from configuration poin of view, there is only one function which has to be executed for both messages and commands. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * mysql. * tm. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -107,11 +108,10 @@ Chapter 1. User's Guide The default value is "mysql://openser:openserrw@localhost/openser". - Example 1-1. Set db_url parameter + Example 1.1. Set db_url parameter ... modparam("imc", "db_url", "dbdriver://username:password@dbhost/dbname") ... - __________________________________________________________ 1.3.2. rooms_table (str) @@ -119,11 +119,10 @@ modparam("imc", "db_url", "dbdriver://username:password@dbhost/dbname") The default value is "imc_rooms". - Example 1-2. Set rooms_table parameter + Example 1.2. Set rooms_table parameter ... modparam("imc", "rooms_table", "rooms") ... - __________________________________________________________ 1.3.3. members_table (str) @@ -131,11 +130,10 @@ modparam("imc", "rooms_table", "rooms") The default value is "imc_members". - Example 1-3. Set members_table parameter + Example 1.3. Set members_table parameter ... modparam("imc", "rooms_table", "members") ... - __________________________________________________________ 1.3.4. hash_size (integer) @@ -144,11 +142,10 @@ modparam("imc", "rooms_table", "members") The default value is 4 (resultimg in hash size 16). - Example 1-4. Set hash_size parameter + Example 1.4. Set hash_size parameter ... modparam("imc", "hash_size", 8) ... - __________________________________________________________ 1.3.5. imc_cmd_start_char (str) @@ -157,11 +154,10 @@ modparam("imc", "hash_size", 8) The default value is "#". - Example 1-5. Set imc_cmd_start_char parameter + Example 1.5. Set imc_cmd_start_char parameter ... modparam("imc", "imc_cmd_start_char", "#") ... - __________________________________________________________ 1.3.6. outbound_proxy (str) @@ -173,15 +169,14 @@ modparam("imc", "imc_cmd_start_char", "#") Default value is NULL. - Example 1-6. Set outbound_proxy parameter + Example 1.6. Set outbound_proxy parameter ... modparam("imc", "outbound_proxy", "sip:openser.org;transport=tcp") ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. imc_manager() +1.4.1. imc_manager() Handles Message method.It detects if the body of the message is a conference command.If so it executes it, otherwise it sends @@ -189,7 +184,7 @@ modparam("imc", "outbound_proxy", "sip:openser.org;transport=tcp") This function can be used from REQUEST_ROUTE. - Example 1-7. Usage of imc_manager() function + Example 1.7. Usage of imc_manager() function ... # the rooms will be named chat-xyz to avoid overlapping # with usernames @@ -197,11 +192,10 @@ if(is_method("MESSAGE) && (uri=~ "sip:chat-[0-9]+@" || (uri=~ "sip:chat-manager@") imc_manager(); ... - __________________________________________________________ 1.5. Exported MI Functions -1.5.1. imc_list_rooms +1.5.1. imc_list_rooms Lists of the IM Conferencing rooms. @@ -212,30 +206,26 @@ if(is_method("MESSAGE) MI FIFO Command Format: :imc_list_rooms:_reply_fifo_file_ _empty_line_ - __________________________________________________________ -1.5.2. imc_list_members +1.5.2. imc_list_members Listing of the members in IM Conferencing rooms. Name: imc_list_members Parameters: - * _room_ : the room for which you want to list the members MI FIFO Command Format: :imc_list_members:_reply_fifo_file_ _room_ _empty_line_ - __________________________________________________________ 1.6. Exported Statistics -1.6.1. active_rooms +1.6.1. active_rooms Number of active IM Conferencing rooms. - __________________________________________________________ 1.7. IMC Commands @@ -246,7 +236,7 @@ if(is_method("MESSAGE) Next picture presents the list of commands and their parameters. - Example 1-8. List of commands + Example 1.8. List of commands ... 1.create @@ -314,7 +304,6 @@ if(is_method("MESSAGE) -list members in a room ... - __________________________________________________________ 1.8. Installation @@ -326,3 +315,36 @@ if(is_method("MESSAGE) openser/scripts folder as template. You can also find the complete database documentation on the project webpage, http://www.openser.org/docs/db-tables/openser-db-devel.html. + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/imc/doc/imc.sgml b/modules_k/imc/doc/imc.xml similarity index 69% rename from modules_k/imc/doc/imc.sgml rename to modules_k/imc/doc/imc.xml index 813fa2edc..f40e113a6 100644 --- a/modules_k/imc/doc/imc.sgml +++ b/modules_k/imc/doc/imc.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -29,6 +31,9 @@ Daniel-Constantin Mierla +
+ miconda@gmail.com +
Stefan @@ -48,8 +53,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/imc/doc/imc_user.sgml b/modules_k/imc/doc/imc_admin.xml similarity index 99% rename from modules_k/imc/doc/imc_user.sgml rename to modules_k/imc/doc/imc_admin.xml index 13e0923b7..55aeb3bdd 100644 --- a/modules_k/imc/doc/imc_user.sgml +++ b/modules_k/imc/doc/imc_admin.xml @@ -204,7 +204,7 @@ modparam("imc", "outbound_proxy", "sip:openser.org;transport=tcp") # the rooms will be named chat-xyz to avoid overlapping # with usernames if(is_method("MESSAGE) - && (uri=~ "sip:chat-[0-9]+@" || (uri=~ "sip:chat-manager@") + && (uri=~ "sip:chat-[0-9]+@" || (uri=~ "sip:chat-manager@") imc_manager(); ... @@ -228,6 +228,7 @@ if(is_method("MESSAGE) MI FIFO Command Format: + :imc_list_rooms:_reply_fifo_file_ _empty_line_ @@ -251,6 +252,7 @@ if(is_method("MESSAGE) MI FIFO Command Format: + :imc_list_members:_reply_fifo_file_ _room_ diff --git a/modules_k/jabber/README b/modules_k/jabber/README index e1079bd4f..8ad85611f 100644 --- a/modules_k/jabber/README +++ b/modules_k/jabber/README @@ -2,16 +2,18 @@ jabber Module Daniel-Constantin Mierla - voice-system.ro - Edited by Daniel-Constantin Mierla Copyright © 2003 FhG FOKUS + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -50,27 +52,29 @@ Daniel-Constantin Mierla 1.6.4. jab_go_online() 1.6.5. jab_go_offline() + 2. Frequently Asked Questions + List of Examples - 1-1. Set db_url parameter - 1-2. Set jaddress parameter - 1-3. Set jport parameter - 1-4. Set jdomain parameter - 1-5. Set jdomain parameter - 1-6. Set proxy parameter - 1-7. Set registrar parameter - 1-8. Set workers parameter - 1-9. Set max_jobs parameter - 1-10. Set cache_time parameter - 1-11. Set delay_time parameter - 1-12. Set sleep_time parameter - 1-13. Set check_time parameter - 1-14. Set priority parameter - 1-15. jab_send_message() usage - 1-16. jab_join_jconf() usage - 1-17. jab_exit_jconf() usage - 1-18. jab_go_online() usage - 1-19. jab_go_offline() usage - __________________________________________________________ + + 1.1. Set db_url parameter + 1.2. Set jaddress parameter + 1.3. Set jport parameter + 1.4. Set jdomain parameter + 1.5. Set jdomain parameter + 1.6. Set proxy parameter + 1.7. Set registrar parameter + 1.8. Set workers parameter + 1.9. Set max_jobs parameter + 1.10. Set cache_time parameter + 1.11. Set delay_time parameter + 1.12. Set sleep_time parameter + 1.13. Set check_time parameter + 1.14. Set priority parameter + 1.15. jab_send_message() usage + 1.16. jab_join_jconf() usage + 1.17. jab_exit_jconf() usage + 1.18. jab_go_online() usage + 1.19. jab_go_offline() usage Chapter 1. User's Guide @@ -83,7 +87,6 @@ Chapter 1. User's Guide Expat is a common XML library and is the fastest available for Linux/Unix, the second over all, after msxml library. It is integrated in most of well known Linux distributions. - __________________________________________________________ 1.1.1. New Features @@ -101,15 +104,14 @@ Chapter 1. User's Guide messages. * Gateways detection -- Ability to see whether an IM gateway is up or down. - __________________________________________________________ 1.2. Admin's Guide - Note +Note - A more complete guide about SIMPLE2Jabber gateway can be found - at http://openser.org/. The part below will be removed soon, - only the manual from web will be updated. + A more complete guide about SIMPLE2Jabber gateway can be found + at http://openser.org/. The part below will be removed soon, + only the manual from web will be updated. The Jabber server setup is not a subject of this guide. Check http://www.jabber.org for that. @@ -119,7 +121,6 @@ Chapter 1. User's Guide subdirectory of the module. Main steps of using the Jabber gateway: - * Create the MySQL database. * Setup the local Jabber server. * Set the module parameter values in cfg file of OpenSER, @@ -135,7 +136,6 @@ Chapter 1. User's Guide and how local Jabber server is setup. Next is presented a use case. Prologue: - * OpenSER is running on "server.org". * Local Jabber server is running on "jabsrv.server.org". * Jabber network alias (first part of "jdomain") is @@ -169,7 +169,6 @@ Chapter 1. User's Guide "jab_send_message"). The special messages are for: - * Registering to Jabber server (go online in Jabber network)--here must be called "jab_go_online" method. * Leaving the Jabber network (go offline in Jabber @@ -180,7 +179,6 @@ Chapter 1. User's Guide "jab_exit_jconf". The destination address must follow the following patterns: - * For Jabber network: "usernamejabber_server@jabber_alias". * For Jabber conference: @@ -191,10 +189,9 @@ Chapter 1. User's Guide msn_server can be "msn.com" or "hotmail.com". * For YAHOO network: "yahoo_username@yahoo_alias". - Note +Note - "jabber_alias" is the first part of "jdomain". - __________________________________________________________ + "jabber_alias" is the first part of "jdomain". 1.3. User's Guide @@ -216,36 +213,31 @@ Chapter 1. User's Guide For someone who is in Yahoo network the destination must be: user@yahoo_alias - Note +Note - The OpenSER administrator have to set the Jabber transports for - each IM network in order to be able to send messages to those - networks. The alias of each IM network can be found out from - OpenSER admin. + The OpenSER administrator have to set the Jabber transports for + each IM network in order to be able to send messages to those + networks. The alias of each IM network can be found out from + OpenSER admin. - You cannot send messages from your SIP client to your - associated Jabber account--is something like sending messages - to yourself. - __________________________________________________________ + You cannot send messages from your SIP client to your + associated Jabber account--is something like sending messages + to yourself. 1.4. Dependencies 1.4.1. OpenSER Modules The following modules must be loaded before this module: - * A database module. * pa (Optionally) - Presence Agent. * tm - Transaction Manager. - __________________________________________________________ 1.4.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * Expat library. - __________________________________________________________ 1.5. Exported Parameters @@ -255,11 +247,10 @@ Chapter 1. User's Guide Default value is "mysql://root@127.0.0.1/sip_jab". - Example 1-1. Set db_url parameter + Example 1.1. Set db_url parameter ... modparam("jabber", "db_url", "mysql://username:password@host/sip_jab") ... - __________________________________________________________ 1.5.2. jaddress (string) @@ -268,11 +259,10 @@ modparam("jabber", "db_url", "mysql://username:password@host/sip_jab") Default value is "127.0.0.1". - Example 1-2. Set jaddress parameter + Example 1.2. Set jaddress parameter ... modparam("jabber", "jaddress", "1.2.3.4") ... - __________________________________________________________ 1.5.3. jport (integer) @@ -280,11 +270,10 @@ modparam("jabber", "jaddress", "1.2.3.4") Default value is "5222". - Example 1-3. Set jport parameter + Example 1.3. Set jport parameter ... modparam("jabber", "jport", 1234) ... - __________________________________________________________ 1.5.4. jdomain (string) @@ -300,11 +289,10 @@ modparam("jabber", "jport", 1234) Default value is none. - Example 1-4. Set jdomain parameter + Example 1.4. Set jdomain parameter ... modparam("jabber", "jdomain", "jabber.sipserver.com=*") ... - __________________________________________________________ 1.5.5. aliases (string) @@ -326,11 +314,10 @@ modparam("jabber", "jdomain", "jabber.sipserver.com=*") Default value is none. - Example 1-5. Set jdomain parameter + Example 1.5. Set jdomain parameter ... modparam("jabber", "aliases", "1;msn.x.com=%") ... - __________________________________________________________ 1.5.6. proxy (string) @@ -344,11 +331,10 @@ modparam("jabber", "aliases", "1;msn.x.com=%") Default value is none. - Example 1-6. Set proxy parameter + Example 1.6. Set proxy parameter ... modparam("jabber", "proxy", "10.0.0.1:5060 sipserver.com:5060") ... - __________________________________________________________ 1.5.7. registrar (string) @@ -357,11 +343,10 @@ modparam("jabber", "proxy", "10.0.0.1:5060 sipserver.com:5060") Default value is "jabber_gateway@127.0.0.1". - Example 1-7. Set registrar parameter + Example 1.7. Set registrar parameter ... modparam("jabber", "registrar", "jabber_gateway@127.0.0.1") ... - __________________________________________________________ 1.5.8. workers (integer) @@ -369,11 +354,10 @@ modparam("jabber", "registrar", "jabber_gateway@127.0.0.1") Default value is 2. - Example 1-8. Set workers parameter + Example 1.8. Set workers parameter ... modparam("jabber", "workers", 2) ... - __________________________________________________________ 1.5.9. max_jobs (integer) @@ -381,11 +365,10 @@ modparam("jabber", "workers", 2) Default value is 10. - Example 1-9. Set max_jobs parameter + Example 1.9. Set max_jobs parameter ... modparam("jabber", "max_jobs", 10) ... - __________________________________________________________ 1.5.10. cache_time (integer) @@ -393,11 +376,10 @@ modparam("jabber", "max_jobs", 10) Default value is 600. - Example 1-10. Set cache_time parameter + Example 1.10. Set cache_time parameter ... modparam("jabber", "cache_time", 600) ... - __________________________________________________________ 1.5.11. delay_time (integer) @@ -405,11 +387,10 @@ modparam("jabber", "cache_time", 600) Default value is 90 seconds. - Example 1-11. Set delay_time parameter + Example 1.11. Set delay_time parameter ... modparam("jabber", "delay_time", 90) ... - __________________________________________________________ 1.5.12. sleep_time (integer) @@ -417,11 +398,10 @@ modparam("jabber", "delay_time", 90) Default value is 20 seconds. - Example 1-12. Set sleep_time parameter + Example 1.12. Set sleep_time parameter ... modparam("jabber", "sleep_time", 20) ... - __________________________________________________________ 1.5.13. check_time (integer) @@ -430,11 +410,10 @@ modparam("jabber", "sleep_time", 20) Default value is 20 seconds. - Example 1-13. Set check_time parameter + Example 1.13. Set check_time parameter ... modparam("jabber", "check_time", 20) ... - __________________________________________________________ 1.5.14. priority (str) @@ -442,28 +421,26 @@ modparam("jabber", "check_time", 20) Default value is "9". - Example 1-14. Set priority parameter + Example 1.14. Set priority parameter ... modparam("jabber", "priority", "3") ... - __________________________________________________________ 1.6. Exported Functions -1.6.1. jab_send_message() +1.6.1. jab_send_message() Converts SIP MESSAGE message to a Jabber message and sends it to Jabber server. This function can be used from REQUEST_ROUTE. - Example 1-15. jab_send_message() usage + Example 1.15. jab_send_message() usage ... jab_send_message(); ... - __________________________________________________________ -1.6.2. jab_join_jconf() +1.6.2. jab_join_jconf() Join a Jabber conference--the nickname, room name and conference server address should be included in To header as: @@ -472,13 +449,12 @@ jab_send_message(); This function can be used from REQUEST_ROUTE. - Example 1-16. jab_join_jconf() usage + Example 1.16. jab_join_jconf() usage ... jab_join_jconf(); ... - __________________________________________________________ -1.6.3. jab_exit_jconf() +1.6.3. jab_exit_jconf() Leave a Jabber conference--the nickname, room name and conference server address should be included in To header as: @@ -486,33 +462,64 @@ jab_join_jconf(); This function can be used from REQUEST_ROUTE. - Example 1-17. jab_exit_jconf() usage + Example 1.17. jab_exit_jconf() usage ... jab_exit_jconf(); ... - __________________________________________________________ -1.6.4. jab_go_online() +1.6.4. jab_go_online() Register to the Jabber server with associated Jabber ID of the SIP user. This function can be used from REQUEST_ROUTE. - Example 1-18. jab_go_online() usage + Example 1.18. jab_go_online() usage ... jab_go_online(); ... - __________________________________________________________ -1.6.5. jab_go_offline() +1.6.5. jab_go_offline() Log off from Jabber server the associated Jabber ID of the SIP user. This function can be used from REQUEST_ROUTE. - Example 1-19. jab_go_offline() usage + Example 1.19. jab_go_offline() usage ... jab_go_offline(); ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/jabber/doc/jabber.sgml b/modules_k/jabber/doc/jabber.xml similarity index 57% rename from modules_k/jabber/doc/jabber.sgml rename to modules_k/jabber/doc/jabber.xml index eb4cc7a11..d55b73289 100644 --- a/modules_k/jabber/doc/jabber.sgml +++ b/modules_k/jabber/doc/jabber.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -18,16 +20,15 @@ Daniel-Constantin Mierla - &voicesystem;
- daniel@voice-system.ro + miconda@gmail.com
Daniel-Constantin Mierla
- daniel@voice-system.ro + miconda@gmail.com
@@ -37,8 +38,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/jabber/doc/jabber_user.sgml b/modules_k/jabber/doc/jabber_admin.xml similarity index 100% rename from modules_k/jabber/doc/jabber_user.sgml rename to modules_k/jabber/doc/jabber_admin.xml diff --git a/modules_k/lcr/README b/modules_k/lcr/README index b0085b3cb..9a5d8a979 100644 --- a/modules_k/lcr/README +++ b/modules_k/lcr/README @@ -2,14 +2,22 @@ LCR (Least Cost Routing) Module Juha Heinanen + + Edited by Juha Heinanen + + Copyright © 2005-2007 Juha Heinanen + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -63,44 +71,46 @@ Juha Heinanen 1.6. Known Limitations + 2. Frequently Asked Questions + List of Examples - 1-1. Setting db_url module parameter - 1-2. Setting gw_table module parameter - 1-3. Setting gw_name_column module parameter - 1-4. Setting grp_id_column module parameter - 1-5. Setting ip_addr_column module parameter - 1-6. Setting port_column module parameter - 1-7. Setting uri_scheme_column module parameter - 1-8. Setting transport_column module parameter - 1-9. Setting strip_column module parameter - 1-10. Setting tag_column module parameter - 1-11. Setting flags_column module parameter - 1-12. Setting lcr_table module parameter - 1-13. Setting prefix_column module parameter - 1-14. Setting from_uri_column module parameter - 1-15. Setting priority_column module parameter - 1-16. Setting contact_avp module parameter - 1-17. Setting fr_inv_timer_avp module parameter - 1-18. Setting gw_uri_avp module parameter - 1-19. Setting rpid_avp module parameter - 1-20. Setting ruri_user_avp module parameter - 1-21. Setting fr_inv_timer module parameter - 1-22. Setting fr_inv_timer_next module parameter - 1-23. Setting flags_avp module parameter - 1-24. Setting prefix_mode module parameter - 1-25. load_gws usage - 1-26. load_gws_from_grp usage - 1-27. next_gw usage from a route block - 1-28. next_gw usage from a failure route block - 1-29. from_gw usage - 1-30. from_gw usage with pseudo variable argument - 1-31. from_gw_grp usage - 1-32. to_gw usage - 1-33. to_gw usage with group-id - 1-34. load_contacts usage - 1-35. next_contacts usage from route block - 1-36. next_contacts usage from failure route block - __________________________________________________________ + + 1.1. Setting db_url module parameter + 1.2. Setting gw_table module parameter + 1.3. Setting gw_name_column module parameter + 1.4. Setting grp_id_column module parameter + 1.5. Setting ip_addr_column module parameter + 1.6. Setting port_column module parameter + 1.7. Setting uri_scheme_column module parameter + 1.8. Setting transport_column module parameter + 1.9. Setting strip_column module parameter + 1.10. Setting tag_column module parameter + 1.11. Setting flags_column module parameter + 1.12. Setting lcr_table module parameter + 1.13. Setting prefix_column module parameter + 1.14. Setting from_uri_column module parameter + 1.15. Setting priority_column module parameter + 1.16. Setting contact_avp module parameter + 1.17. Setting fr_inv_timer_avp module parameter + 1.18. Setting gw_uri_avp module parameter + 1.19. Setting rpid_avp module parameter + 1.20. Setting ruri_user_avp module parameter + 1.21. Setting fr_inv_timer module parameter + 1.22. Setting fr_inv_timer_next module parameter + 1.23. Setting flags_avp module parameter + 1.24. Setting prefix_mode module parameter + 1.25. load_gws usage + 1.26. load_gws_from_grp usage + 1.27. next_gw usage from a route block + 1.28. next_gw usage from a failure route block + 1.29. from_gw usage + 1.30. from_gw usage with pseudo variable argument + 1.31. from_gw_grp usage + 1.32. to_gw usage + 1.33. to_gw usage with group-id + 1.34. load_contacts usage + 1.35. next_contacts usage from route block + 1.36. next_contacts usage from failure route block Chapter 1. User's Guide @@ -143,25 +153,20 @@ Chapter 1. User's Guide As a side effect of gateway selection, gateway's flags (that may contain information about capabilities of the gateway) are stored into an AVP. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER modules The following modules must be loaded before this module: - * TM module * A database module like mysql, postgres or dbtext. - __________________________________________________________ 1.2.2. External libraries or applications The following libraries or applications must be installed before running OpenSER with this module: - * none. - __________________________________________________________ 1.3. Exported Parameters @@ -172,11 +177,10 @@ Chapter 1. User's Guide Default value is "mysql://openserro:openserro@localhost/openser". - Example 1-1. Setting db_url module parameter + Example 1.1. Setting db_url module parameter ... modparam("lcr","db_url","dbdriver://username:password@dbhost/dbname") ... - __________________________________________________________ 1.3.2. gw_table (string) @@ -184,11 +188,10 @@ modparam("lcr","db_url","dbdriver://username:password@dbhost/dbname") Default value is "gw". - Example 1-2. Setting gw_table module parameter + Example 1.2. Setting gw_table module parameter ... modparam("lcr","gw_table","gw") ... - __________________________________________________________ 1.3.3. gw_name_column (string) @@ -196,11 +199,10 @@ modparam("lcr","gw_table","gw") Default value is "gw_name". - Example 1-3. Setting gw_name_column module parameter + Example 1.3. Setting gw_name_column module parameter ... modparam("lcr","gw_name_column","gw_name") ... - __________________________________________________________ 1.3.4. grp_id_column (string) @@ -209,11 +211,10 @@ modparam("lcr","gw_name_column","gw_name") Default value is "grp_id". - Example 1-4. Setting grp_id_column module parameter + Example 1.4. Setting grp_id_column module parameter ... modparam("lcr","grp_id_column","grp_id") ... - __________________________________________________________ 1.3.5. ip_addr_column (string) @@ -221,11 +222,10 @@ modparam("lcr","grp_id_column","grp_id") Default value is "ip_addr". - Example 1-5. Setting ip_addr_column module parameter + Example 1.5. Setting ip_addr_column module parameter ... modparam("lcr","ip_addr_column","ip_addr") ... - __________________________________________________________ 1.3.6. port_column (string) @@ -233,11 +233,10 @@ modparam("lcr","ip_addr_column","ip_addr") Default value is "port". - Example 1-6. Setting port_column module parameter + Example 1.6. Setting port_column module parameter ... modparam("lcr","port_column","port") ... - __________________________________________________________ 1.3.7. uri_scheme_column (string) @@ -245,11 +244,10 @@ modparam("lcr","port_column","port") Default value is "uri_scheme". - Example 1-7. Setting uri_scheme_column module parameter + Example 1.7. Setting uri_scheme_column module parameter ... modparam("lcr","uri_scheme_column","scheme") ... - __________________________________________________________ 1.3.8. transport_column (string) @@ -258,11 +256,10 @@ modparam("lcr","uri_scheme_column","scheme") Default value is "transport". - Example 1-8. Setting transport_column module parameter + Example 1.8. Setting transport_column module parameter ... modparam("lcr","transport_column","transport") ... - __________________________________________________________ 1.3.9. strip_column (string) @@ -272,11 +269,10 @@ modparam("lcr","transport_column","transport") Default value is "strip". - Example 1-9. Setting strip_column module parameter + Example 1.9. Setting strip_column module parameter ... modparam("lcr","strip_column","strip_count") ... - __________________________________________________________ 1.3.10. tag_column (string) @@ -284,11 +280,10 @@ modparam("lcr","strip_column","strip_count") Default value is "tag". - Example 1-10. Setting tag_column module parameter + Example 1.10. Setting tag_column module parameter ... modparam("lcr","tag_column","gw_tag") ... - __________________________________________________________ 1.3.11. flags_column (string) @@ -296,11 +291,10 @@ modparam("lcr","tag_column","gw_tag") Default value is "flags". - Example 1-11. Setting flags_column module parameter + Example 1.11. Setting flags_column module parameter ... modparam("lcr","flags_column","gw_flags") ... - __________________________________________________________ 1.3.12. lcr_table (string) @@ -308,11 +302,10 @@ modparam("lcr","flags_column","gw_flags") Default value is "lcr". - Example 1-12. Setting lcr_table module parameter + Example 1.12. Setting lcr_table module parameter ... modparam("lcr","lcr_table","lcr") ... - __________________________________________________________ 1.3.13. prefix_column (string) @@ -320,11 +313,10 @@ modparam("lcr","lcr_table","lcr") Default value is "prefix". - Example 1-13. Setting prefix_column module parameter + Example 1.13. Setting prefix_column module parameter ... modparam("lcr","prefix_column","prefix") ... - __________________________________________________________ 1.3.14. from_uri_column (string) @@ -332,11 +324,10 @@ modparam("lcr","prefix_column","prefix") Default value is "from_uri". - Example 1-14. Setting from_uri_column module parameter + Example 1.14. Setting from_uri_column module parameter ... modparam("lcr","from_uri_column","from_uri") ... - __________________________________________________________ 1.3.15. priority_column (string) @@ -344,11 +335,10 @@ modparam("lcr","from_uri_column","from_uri") Default value is "priority". - Example 1-15. Setting priority_column module parameter + Example 1.15. Setting priority_column module parameter ... modparam("lcr","priority_column","priority") ... - __________________________________________________________ 1.3.16. contact_avp (AVP string) @@ -358,11 +348,10 @@ modparam("lcr","priority_column","priority") There is NO default value, thus this variable must be defined in openser.cfg. - Example 1-16. Setting contact_avp module parameter + Example 1.16. Setting contact_avp module parameter ... modparam("lcr", "contact_avp", "$avp(i:711)") ... - __________________________________________________________ 1.3.17. fr_inv_timer_avp (AVP string) @@ -373,11 +362,10 @@ modparam("lcr", "contact_avp", "$avp(i:711)") There is NO default value, thus this variable must be defined in openser.cfg. - Example 1-17. Setting fr_inv_timer_avp module parameter + Example 1.17. Setting fr_inv_timer_avp module parameter ... modparam("lcr|tm", "fr_inv_timer_avp", "$avp(i:704)") ... - __________________________________________________________ 1.3.18. gw_uri_avp (AVP string) @@ -387,11 +375,10 @@ modparam("lcr|tm", "fr_inv_timer_avp", "$avp(i:704)") There is NO default value, thus this variable must be defined in openser.cfg. - Example 1-18. Setting gw_uri_avp module parameter + Example 1.18. Setting gw_uri_avp module parameter ... modparam("lcr", "gw_uri_avp", "$avp(i:709)") ... - __________________________________________________________ 1.3.19. rpid_avp (AVP string) @@ -400,11 +387,10 @@ modparam("lcr", "gw_uri_avp", "$avp(i:709)") There is NO default value, thus this variable must be defined in openser.cfg. - Example 1-19. Setting rpid_avp module parameter + Example 1.19. Setting rpid_avp module parameter ... modparam("^auth$|lcr", "rpid_avp", "$avp(i:302)") ... - __________________________________________________________ 1.3.20. ruri_user_avp (AVP string) @@ -414,11 +400,10 @@ modparam("^auth$|lcr", "rpid_avp", "$avp(i:302)") There is NO default value, thus this variable must be defined in openser.cfg. - Example 1-20. Setting ruri_user_avp module parameter + Example 1.20. Setting ruri_user_avp module parameter ... modparam("lcr", "ruri_user_avp", "$avp(i:500)") ... - __________________________________________________________ 1.3.21. fr_inv_timer (integer) @@ -427,11 +412,10 @@ modparam("lcr", "ruri_user_avp", "$avp(i:500)") Default value is 90. - Example 1-21. Setting fr_inv_timer module parameter + Example 1.21. Setting fr_inv_timer module parameter ... modparam("lcr","fr_inv_timer",90) ... - __________________________________________________________ 1.3.22. fr_inv_timer_next (integer) @@ -445,11 +429,10 @@ modparam("lcr","fr_inv_timer",90) Default value is 30. - Example 1-22. Setting fr_inv_timer_next module parameter + Example 1.22. Setting fr_inv_timer_next module parameter ... modparam("lcr","fr_inv_timer_next",30) ... - __________________________________________________________ 1.3.23. flags_avp (AVP string) @@ -459,11 +442,10 @@ modparam("lcr","fr_inv_timer_next",30) There is NO default value, thus this variable must be defined in openser.cfg. - Example 1-23. Setting flags_avp module parameter + Example 1.23. Setting flags_avp module parameter ... modparam("lcr", "flags_avp", "$avp(i:712)") ... - __________________________________________________________ 1.3.24. prefix_mode (integer) @@ -475,16 +457,15 @@ modparam("lcr", "flags_avp", "$avp(i:712)") Default value is 0. - Example 1-24. Setting prefix_mode module parameter + Example 1.24. Setting prefix_mode module parameter ... /* Turning on the regex mode for prefix */ modparam("lcr", "prefix_mode", 1) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. load_gws([pvar]) +1.4.1. load_gws([pvar]) Loads URI schemes, addresses, ports, and transports of matching gateways to gw_uri_avp AVPs (see Overview section). If optional @@ -495,7 +476,7 @@ modparam("lcr", "prefix_mode", 1) This function can be used from REQUEST_ROUTE. - Example 1-25. load_gws usage + Example 1.25. load_gws usage ... if (!load_gws("$var(caller_uri)")) { sl_send_reply("500", "Server Internal Error - Cannot load gatewa @@ -503,9 +484,8 @@ ys"); exit; }; ... - __________________________________________________________ -1.4.2. load_gws_from_grp(group-id) +1.4.2. load_gws_from_grp(group-id) Loads URI schemes, addresses, ports, and transports of matching gateways to gw_uri_avp AVPs (see Overview section), but only @@ -517,7 +497,7 @@ ys"); This function can be used from REQUEST_ROUTE. - Example 1-26. load_gws_from_grp usage + Example 1.26. load_gws_from_grp usage ... if (!load_gws_from_grp("1")) { sl_send_reply("500", "Server Internal Error - Cannot load gatewa @@ -532,9 +512,8 @@ ys"); exit; }; ... - __________________________________________________________ -1.4.3. next_gw() +1.4.3. next_gw() If called from a route block, replaces URI scheme, host, port, and transport of Request-URI by the values stored in first @@ -557,7 +536,7 @@ ys"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-27. next_gw usage from a route block + Example 1.27. next_gw usage from a route block ... if (!next_gw()) { sl_send_reply("503", "Service not available - No gateways"); @@ -565,16 +544,15 @@ if (!next_gw()) { }; ... - Example 1-28. next_gw usage from a failure route block + Example 1.28. next_gw usage from a failure route block ... if (!next_gw()) { t_reply("503", "Service not available - No more gateways"); exit; }; ... - __________________________________________________________ -1.4.4. from_gw([pvar]) +1.4.4. from_gw([pvar]) Checks if request came from IP address of a gateway. IP address to be checked is either taken from source IP address of the @@ -584,22 +562,21 @@ if (!next_gw()) { This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, ONREPLY_ROUTE. - Example 1-29. from_gw usage + Example 1.29. from_gw usage ... if (from_gw()) { ... }; ... - Example 1-30. from_gw usage with pseudo variable argument + Example 1.30. from_gw usage with pseudo variable argument ... if (from_gw("$si")) { ... }; ... - __________________________________________________________ -1.4.5. from_gw_grp(group-id) +1.4.5. from_gw_grp(group-id) Checks if request came from IP address of a gateway that belongs to the given group. Sets or resets a message flag @@ -608,15 +585,14 @@ if (from_gw("$si")) { This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, ONREPLY_ROUTE. - Example 1-31. from_gw_grp usage + Example 1.31. from_gw_grp usage ... if (from_gw_grp("1")) { ... }; ... - __________________________________________________________ -1.4.6. to_gw([group-id]) +1.4.6. to_gw([group-id]) Checks if in-dialog request goes to a gateway. If an optional group-id is given, only gateways belonging to this group are @@ -624,7 +600,7 @@ if (from_gw_grp("1")) { This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-32. to_gw usage + Example 1.32. to_gw usage ... if (to_gw()) { ... @@ -632,16 +608,15 @@ if (to_gw()) { }; ... - Example 1-33. to_gw usage with group-id + Example 1.33. to_gw usage with group-id ... if (to_gw("1")) { ... exit; }; ... - __________________________________________________________ -1.4.7. load_contacts() +1.4.7. load_contacts() Loads contacts in destination set in increasing qvalue order as values of lcr_contact AVP. If all contacts in the destination @@ -653,7 +628,7 @@ if (to_gw("1")) { This function can be used from REQUEST_ROUTE. - Example 1-34. load_contacts usage + Example 1.34. load_contacts usage ... if (!load_contacts()) { sl_send_reply("500", "Server Internal Error - Cannot load contac @@ -661,9 +636,8 @@ ts"); exit; }; ... - __________________________________________________________ -1.4.8. next_contacts() +1.4.8. next_contacts() If called from a route block, replaces Request-URI with the first lcr_contact AVP value, adds the remaining lcr_contact AVP @@ -683,7 +657,7 @@ ts"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-35. next_contacts usage from route block + Example 1.35. next_contacts usage from route block ... if (!next_contacts()) { sl_send_reply("500", "Server Internal Error"); @@ -693,11 +667,10 @@ if (!next_contacts()) { }; ... - Example 1-36. next_contacts usage from failure route block + Example 1.36. next_contacts usage from failure route block if (next_contacts()) { t_relay(); }; - __________________________________________________________ 1.5. Exported MI Commands @@ -713,7 +686,6 @@ if (next_contacts()) { MI FIFO Command Format: :lcr_reload:_reply_fifo_file_ _empty_line_ - __________________________________________________________ 1.5.2. lcr_dump @@ -727,7 +699,6 @@ if (next_contacts()) { MI FIFO Command Format: :lcr_dump:_reply_fifo_file_ _empty_line_ - __________________________________________________________ 1.6. Known Limitations @@ -735,3 +706,36 @@ if (next_contacts()) { uses in memory gw table, which is reloaded at the same time twice through FIFO, the second reload will delete the original table still in use by the process. + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/lcr/doc/lcr.sgml b/modules_k/lcr/doc/lcr.xml similarity index 58% rename from modules_k/lcr/doc/lcr.sgml rename to modules_k/lcr/doc/lcr.xml index 2209ba25f..c484db422 100644 --- a/modules_k/lcr/doc/lcr.sgml +++ b/modules_k/lcr/doc/lcr.xml @@ -1,10 +1,12 @@ - + - + + - + %docentities; ]> @@ -30,8 +32,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/lcr/doc/lcr_user.sgml b/modules_k/lcr/doc/lcr_admin.xml similarity index 100% rename from modules_k/lcr/doc/lcr_user.sgml rename to modules_k/lcr/doc/lcr_admin.xml diff --git a/modules_k/ldap/README b/modules_k/ldap/README index edb7625ff..8e3e2a044 100644 --- a/modules_k/ldap/README +++ b/modules_k/ldap/README @@ -3,11 +3,15 @@ LDAP Module Christian Schlatter University of North Carolina + Copyright © 2007 University of North Carolina + Revision History + Revision 0.9 05-17-2007 __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -65,30 +69,32 @@ Christian Schlatter 2.3. Example Usage + 3. Frequently Asked Questions Resources List of Tables - 1-1. RFC 4515 Escaping Rules - 1-2. ldap_filter_url_encode() escaping rules + + 1.1. RFC 4515 Escaping Rules + 1.2. ldap_filter_url_encode() escaping rules List of Examples - 1-1. ldap_server_url examples - 1-2. ldap_version example - 1-3. ldap_bind_dn example - 1-4. ldap_bind_password example - 1-5. ldap_network_timeout example - 1-6. ldap_client_bind_timeout example - 1-7. Example LDAP Configuration File - 1-8. config_file parameter usage - 1-9. Example Usage of ldap_url - 1-10. Example Usage - 1-11. Example Usage - 1-12. Example Usage - 1-13. Example Usage - 1-14. Example Usage - 2-1. Example code fragment to load LDAP module API - 2-2. Example LDAP module API function call - __________________________________________________________ + + 1.1. ldap_server_url examples + 1.2. ldap_version example + 1.3. ldap_bind_dn example + 1.4. ldap_bind_password example + 1.5. ldap_network_timeout example + 1.6. ldap_client_bind_timeout example + 1.7. Example LDAP Configuration File + 1.8. config_file parameter usage + 1.9. Example Usage of ldap_url + 1.10. Example Usage + 1.11. Example Usage + 1.12. Example Usage + 1.13. Example Usage + 1.14. Example Usage + 2.1. Example code fragment to load LDAP module API + 2.2. Example LDAP module API function call Chapter 1. User's Guide @@ -101,7 +107,6 @@ Chapter 1. User's Guide routing script. The following features are offered by the LDAP module: - * LDAP search function taking an LDAP URL as input * LDAP result parsing functions to store LDAP data as AVP * Support for accessing multiple LDAP servers @@ -131,30 +136,34 @@ Chapter 1. User's Guide Performance tests have shown that this module achieves lower data access times and higher call rates than other database modules like e.g. the OpenSER MYSQL module. - __________________________________________________________ 1.1.1. Usage Basics First so called LDAP sessions have to be specified in an - external configuration file (as described in Section 1.3). Each - LDAP session includes LDAP server access parameters like server - hostname or connection timeouts. Normally only a single LDAP - session will be used unless there is a need to access more than - one LDAP server. The LDAP session name will then be used in the - OpenSER configuration script to refer to a specific LDAP - session. - - The ldap_search function (Section 1.5.1) performs an LDAP - search operation. It expects an LDAP URL as input which - includes the LDAP session name and search parameters. Section - 1.1.2 provides a quick overview on LDAP URLs. + external configuration file (as described in Section 1.3, "LDAP + Configuration File"). Each LDAP session includes LDAP server + access parameters like server hostname or connection timeouts. + Normally only a single LDAP session will be used unless there + is a need to access more than one LDAP server. The LDAP session + name will then be used in the OpenSER configuration script to + refer to a specific LDAP session. + + The ldap_search function (Section 1.5.1, + "ldap_search(ldap_url)") performs an LDAP search operation. It + expects an LDAP URL as input which includes the LDAP session + name and search parameters. Section 1.1.2, "LDAP URLs" provides + a quick overview on LDAP URLs. The result of an LDAP search is stored internally and can be accessed with one of the ldap_result* functions. ldap_result - (Section 1.5.2) stores resulting LDAP attribute value as AVPs. - ldap_result_check (Section 1.5.3) is a convenience function to - compare a string with LDAP attribute values using regular - expression matching. Finally, ldap_result_next (Section 1.5.4) + (Section 1.5.2, + "ldap_result("ldap_attr_name/avp_spec[/avp_type]" [, + regex_subst])") stores resulting LDAP attribute value as AVPs. + ldap_result_check (Section 1.5.3, + "ldap_result_check("ldap_attr_name/string_to_match" [, + regex_subst])") is a convenience function to compare a string + with LDAP attribute values using regular expression matching. + Finally, ldap_result_next (Section 1.5.4, "ldap_result_next()") allows to handle LDAP search queries that return more than one LDAP entry. @@ -162,7 +171,6 @@ Chapter 1. User's Guide from the last ldap_search call. This should be kept in mind when calling ldap_search more than once in the OpenSER configuration script. - __________________________________________________________ 1.1.2. LDAP URLs @@ -198,29 +206,29 @@ Chapter 1. User's Guide LDAP search filter definition following rules of RFC 4515 [RFC4515] - Note +Note - The following table lists characters that have to be escaped in - LDAP search filters: - Table 1-1. RFC 4515 Escaping Rules + The following table lists characters that have to be + escaped in LDAP search filters: - * \2a - ( \28 - ) \29 - \ \5c + Table 1.1. RFC 4515 Escaping Rules - Note + * \2a + ( \28 + ) \29 + \ \5c - Non-URL characters in an LDAP URL have to be escaped using - percent-encoding (refer to section 2.1 of RFC 4516). In - particular this means that any "?" character in an LDAP URL - component must be written as "%3F", since "?" is used as a URL - delimiter. +Note - The exported function ldap_filter_url_encode (Section 1.5.5) - implements RFC 4515/4516 LDAP search filter and URL escaping - rules. - __________________________________________________________ + Non-URL characters in an LDAP URL have to be escaped using + percent-encoding (refer to section 2.1 of RFC 4516). In + particular this means that any "?" character in an LDAP URL + component must be written as "%3F", since "?" is used as a URL + delimiter. + + The exported function ldap_filter_url_encode (Section 1.5.5, + "ldap_filter_url_encode(string, avp_spec)") implements RFC + 4515/4516 LDAP search filter and URL escaping rules. 1.2. Dependencies @@ -228,24 +236,19 @@ Chapter 1. User's Guide The module depends on the following modules (the listed modules must be loaded before this module): - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * OpenLDAP library (libldap) v2.1 or greater, libldap header files (libldap-dev) are needed for compilation - __________________________________________________________ 1.3. LDAP Configuration File The module reads an external confiuration file at module initialization time that includes LDAP session definitions. - __________________________________________________________ 1.3.1. Configuration File Syntax @@ -281,7 +284,6 @@ ldap_client_bind_timeout = 500 This LDAP session can be referred to in the routing script by using an LDAP URL like e.g. ldap://example_ldap/cn=admin,dc=example,dc=com - __________________________________________________________ 1.3.2. LDAP Session Settings @@ -295,7 +297,7 @@ ldap://example_ldap/cn=admin,dc=example,dc=com Default value: none, this is a mandatory setting - Example 1-1. ldap_server_url examples + Example 1.1. ldap_server_url examples ldap_server_url = "ldap://localhost" ldap_server_url = "ldap://ldap.example.com:7777" @@ -307,7 +309,7 @@ ldap_server_url = "ldap://ldap1.example.com, Default value: 3 (LDAPv3) - Example 1-2. ldap_version example + Example 1.2. ldap_version example ldap_version = 2 @@ -318,7 +320,7 @@ ldap_version = 2 Default value: "" (empty string --> anonymous bind) - Example 1-3. ldap_bind_dn example + Example 1.3. ldap_bind_dn example ldap_bind_dn = "cn=root,dc=example,dc=com"; @@ -328,7 +330,7 @@ ldap_bind_dn = "cn=root,dc=example,dc=com"; Default value: "" (empty string --> anonymous bind) - Example 1-4. ldap_bind_password example + Example 1.4. ldap_bind_password example ldap_bind_password = "secret"; @@ -340,7 +342,7 @@ ldap_bind_password = "secret"; Default value: 1000 (one second) - Example 1-5. ldap_network_timeout example + Example 1.5. ldap_network_timeout example ldap_network_timeout = 500 ; setting TCP timeout to 500 ms @@ -349,10 +351,9 @@ ldap_network_timeout = 500 ; setting TCP timeout to 500 ms Default value: 1000 (one second) - Example 1-6. ldap_client_bind_timeout example + Example 1.6. ldap_client_bind_timeout example ldap_client_bind_timeout = 1000 - __________________________________________________________ 1.3.3. Configuration File Example @@ -360,7 +361,7 @@ ldap_client_bind_timeout = 1000 session definitions that could be used e.g. for accessing H.350 data and do phone number to name mappings. - Example 1-7. Example LDAP Configuration File + Example 1.7. Example LDAP Configuration File # LDAP session "sipaccounts": # # - using LDAPv3 (default) @@ -384,7 +385,6 @@ ldap_version = 2 ldap_server_url = "ldap://ldap.example.com" ldap_network_timeout = 500 ldap_client_bind_timeout = 500 - __________________________________________________________ 1.4. Exported Parameters @@ -394,9 +394,8 @@ ldap_client_bind_timeout = 500 Default value: /usr/local/etc/openser/ldap.cfg - Example 1-8. config_file parameter usage + Example 1.8. config_file parameter usage modparam("ldap", "config_file", "/etc/openser/ldap.ini") - __________________________________________________________ 1.5. Exported Functions @@ -414,14 +413,14 @@ modparam("ldap", "config_file", "/etc/openser/ldap.ini") ldap_url An LDAP URL defining the LDAP search operation (refer to - Section 1.1.2 for a description of the LDAP URL format). - The hostport part must be one of the LDAP session names - declared in the LDAP configuration script. + Section 1.1.2, "LDAP URLs" for a description of the LDAP + URL format). The hostport part must be one of the LDAP + session names declared in the LDAP configuration script. OpenSER pseudo variables and AVPs included in ldap_url do get substituted with their value. - Example 1-9. Example Usage of ldap_url + Example 1.9. Example Usage of ldap_url Search with LDAP session named sipaccounts, base ou=sip,dc=example,dc=com, one level deep using search @@ -456,7 +455,7 @@ ldap://ldap_1/dc=example,dc=com? This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE, and ONREPLY_ROUTE. - Example 1-10. Example Usage + Example 1.10. Example Usage ... # ldap search if (!ldap_search("ldap://sipaccounts/ou=sip,dc=example,dc=com??one?(cn=$ @@ -481,7 +480,6 @@ xlog("L_INFO", "ldap_search: found [$retcode] entries for (cn=$rU)"); # save telephone number in $avp(s:tel_number) ldap_result("telephoneNumber/$avp(s:tel_number)"); ... - __________________________________________________________ 1.5.2. ldap_result("ldap_attr_name/avp_spec[/avp_type]" [, regex_subst]) @@ -541,7 +539,7 @@ regex_subst]) This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE, and ONREPLY_ROUTE. - Example 1-11. Example Usage + Example 1.11. Example Usage ... # ldap_search call @@ -568,7 +566,6 @@ if (!ldap_result("SIPIdentityServiceLevel/$avp(s:service_level)")) # save SIP URI domain in $avp(i:10) ldap_result("SIPIdentitySIPURI/$avp(i:10)", "/^[^@]+@(.+)$/\1/"); ... - __________________________________________________________ 1.5.3. ldap_result_check("ldap_attr_name/string_to_match" [, regex_subst]) @@ -615,7 +612,7 @@ regex_subst]) This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE, and ONREPLY_ROUTE. - Example 1-12. Example Usage + Example 1.12. Example Usage ... # ldap_search call ... @@ -639,7 +636,6 @@ if (!ldap_result_check("sn/$ru", "/^sip:([^@]).*$/\1/")) } } ... - __________________________________________________________ 1.5.4. ldap_result_next() @@ -666,7 +662,7 @@ if (!ldap_result_check("sn/$ru", "/^sip:([^@]).*$/\1/")) This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE, and ONREPLY_ROUTE. - Example 1-13. Example Usage + Example 1.13. Example Usage ... # ldap_search call ... @@ -685,14 +681,13 @@ if (ldap_result_next()) ldap_result("telephonenumber/$avp(s:tel4)"); } ... - __________________________________________________________ 1.5.5. ldap_filter_url_encode(string, avp_spec) This function applies the following escaping rules to string and stores the result in AVP avp_spec: - Table 1-2. ldap_filter_url_encode() escaping rules + Table 1.2. ldap_filter_url_encode() escaping rules character in string gets replaced with defined in * \2a RFC 4515 ( \28 RFC 4515 @@ -726,7 +721,7 @@ if (ldap_result_next()) This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE, and ONREPLY_ROUTE. - Example 1-14. Example Usage + Example 1.14. Example Usage ... if (!ldap_filter_url_encode("cn=$avp(s:name)", "$avp(s:name_esc)")) { @@ -741,7 +736,6 @@ if (ldap_search( ))")) { ... } ... - __________________________________________________________ 1.6. Installation & Running @@ -758,7 +752,6 @@ if (ldap_search( # apt-get install libldap2 libldap2-dev . - __________________________________________________________ Chapter 2. Developer's Guide @@ -778,7 +771,7 @@ Chapter 2. Developer's Guide typically done inside a module's mod_init call as the following example shows: - Example 2-1. Example code fragment to load LDAP module API + Example 2.1. Example code fragment to load LDAP module API #include "../../sr_module.h" #include "../ldap/api.h" @@ -810,14 +803,13 @@ le\n"); The API functions can then be used like in the following example: - Example 2-2. Example LDAP module API function call + Example 2.2. Example LDAP module API function call ... rc = ldap_api.ldap_rfc4515_escape(str1, str2, 0); ... - __________________________________________________________ 2.2. API Functions @@ -833,6 +825,7 @@ typedef int (*ldap_params_search_t)(int* _ld_result_count, char* _filter, ...); + Function arguments: int* _ld_result_count @@ -870,7 +863,6 @@ typedef int (*ldap_params_search_t)(int* _ld_result_count, 0 Success, _ld_result_count includes the number of LDAP entries found. - __________________________________________________________ 2.2.2. ldap_url_search @@ -878,10 +870,11 @@ typedef int (*ldap_params_search_t)(int* _ld_result_count, typedef int (*ldap_url_search_t)(char* _ldap_url, int* _result_count); + Function arguments: char* _ldap_url - LDAP URL as described in Section 1.1.2. + LDAP URL as described in Section 1.1.2, "LDAP URLs". int* _result_count The function stores the number of returned LDAP entries @@ -895,7 +888,6 @@ typedef int (*ldap_url_search_t)(char* _ldap_url, 0 Success, _ld_result_count includes the number of LDAP entries found. - __________________________________________________________ 2.2.3. ldap_result_attr_vals @@ -916,6 +908,7 @@ typedef struct berval { char *bv_val; } BerValue; + Function arguments: str* _attr_name @@ -934,7 +927,6 @@ typedef struct berval { 1 No attribute value found. - __________________________________________________________ 2.2.4. ldap_value_free_len @@ -948,17 +940,18 @@ typedef struct berval { char *bv_val; } BerValue; + Function arguments: struct berval **_vals berval array returned by ldap_result_attr_vals. - __________________________________________________________ 2.2.5. ldap_result_next Increments the LDAP result pointer. typedef int (*ldap_result_next_t)(); + Return Values: -1 @@ -970,7 +963,6 @@ typedef int (*ldap_result_next_t)(); 1 No more results available. - __________________________________________________________ 2.2.6. ldap_str2scope @@ -978,6 +970,7 @@ typedef int (*ldap_result_next_t)(); ldap_params_search. typedef int (*ldap_str2scope_t)(char* scope_str); + Function arguments: char* scope_str @@ -991,14 +984,15 @@ typedef int (*ldap_str2scope_t)(char* scope_str); n >= 0 LDAP search scope integer. - __________________________________________________________ 2.2.7. ldap_rfc4515_escape - Applies escaping rules described in Section 1.5.5. + Applies escaping rules described in Section 1.5.5, + "ldap_filter_url_encode(string, avp_spec)". typedef int (*ldap_rfc4515_escape_t)(str *sin, str *sout, int url_encode ); + Function arguments: str *sin @@ -1022,7 +1016,6 @@ typedef int (*ldap_rfc4515_escape_t)(str *sin, str *sout, int url_encode 0 Success, sout contains escaped string. - __________________________________________________________ 2.2.8. get_ldap_handle @@ -1033,6 +1026,7 @@ typedef int (*ldap_rfc4515_escape_t)(str *sin, str *sout, int url_encode OpenLDAP's ldap.h, which has to be included. typedef int (*get_ldap_handle_t)(char* _lds_name, LDAP** _ldap_handle); + Function arguments: char* _lds_name @@ -1049,7 +1043,6 @@ typedef int (*get_ldap_handle_t)(char* _lds_name, LDAP** _ldap_handle); 0 Success, _ldap_handle contains the OpenLDAP LDAP handle. - __________________________________________________________ 2.2.9. get_last_ldap_result @@ -1062,6 +1055,7 @@ typedef void (*get_last_ldap_result_t) (LDAP** _last_ldap_handle, LDAPMessage** _last_ldap_result) ; + Function arguments: LDAP** _last_ldap_handle @@ -1069,7 +1063,6 @@ typedef void (*get_last_ldap_result_t) LDAPMessage** _last_ldap_result OpenLDAP result handle returned by this function. - __________________________________________________________ 2.3. Example Usage @@ -1151,36 +1144,69 @@ LM_INFO("Password for user [%s]: [%s]\n", sip_username, res_password.s); ... return 0; - __________________________________________________________ + + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. Resources [RFC4510] Lightweight Directory Access Protocol (LDAP): - Technical Specification Road Map, June 2006, Internet + Technical Specification Road Map. June 2006. Internet Engineering Task Force. [RFC4511] Lightweight Directory Access Protocol (LDAP): The - Protocol, June 2006, Internet Engineering Task Force. + Protocol. June 2006. Internet Engineering Task Force. [RFC4514] Lightweight Directory Access Protocol (LDAP): String - Representation of Distinguished Names, June 2006, Internet + Representation of Distinguished Names. June 2006. Internet Engineering Task Force. [RFC4515] Lightweight Directory Access Protocol (LDAP): String - Representation of Search Filters, June 2006, Internet + Representation of Search Filters. June 2006. Internet Engineering Task Force. [RFC4516] Lightweight Directory Access Protocol (LDAP): Uniform - Resource Locator, June 2006, Internet Engineering Task Force. + Resource Locator. June 2006. Internet Engineering Task Force. [RFC2617] HTTP Authentication: Basic and Digest Access - Authentication, June 1999, Internet Engineering Task Force. + Authentication. June 1999. Internet Engineering Task Force. - [RFC3261] SIP: Session Initiation Protocol, June 2002, Internet + [RFC3261] SIP: Session Initiation Protocol. June 2002. Internet Engineering Task Force. [H.350] Directory Services Architecture for Multimedia - Conferencing, August 2003, ITU-T. + Conferencing. August 2003. ITU-T. - [H.350.4] Directory services architecture for SIP, August 2003, + [H.350.4] Directory services architecture for SIP. August 2003. ITU-T. diff --git a/modules_k/ldap/doc/ldap.sgml b/modules_k/ldap/doc/ldap.xml similarity index 70% rename from modules_k/ldap/doc/ldap.sgml rename to modules_k/ldap/doc/ldap.xml index 54f1092cc..f1f0ed8e4 100644 --- a/modules_k/ldap/doc/ldap.sgml +++ b/modules_k/ldap/doc/ldap.xml @@ -1,12 +1,14 @@ - + - - - + + + + - + %docentities; ]> diff --git a/modules_k/ldap/doc/ldap_user.sgml b/modules_k/ldap/doc/ldap_admin.xml similarity index 94% rename from modules_k/ldap/doc/ldap_user.sgml rename to modules_k/ldap/doc/ldap_admin.xml index 2a17f539f..87cc5ee45 100644 --- a/modules_k/ldap/doc/ldap_user.sgml +++ b/modules_k/ldap/doc/ldap_admin.xml @@ -41,15 +41,15 @@ Usage Basics - First so called LDAP sessions have to be specified in an external configuration file (as described in ). Each LDAP session includes LDAP server access parameters like server hostname or connection timeouts. Normally only a single LDAP session will be used unless there is a need to access more than one LDAP server. The LDAP session name will then be used in the OpenSER configuration script to refer to a specific LDAP session. + First so called LDAP sessions have to be specified in an external configuration file (as described in ). Each LDAP session includes LDAP server access parameters like server hostname or connection timeouts. Normally only a single LDAP session will be used unless there is a need to access more than one LDAP server. The LDAP session name will then be used in the OpenSER configuration script to refer to a specific LDAP session. - The ldap_search function () performs an LDAP search operation. It expects an LDAP URL as input which includes the LDAP session name and search parameters. provides a quick overview on LDAP URLs. + The ldap_search function () performs an LDAP search operation. It expects an LDAP URL as input which includes the LDAP session name and search parameters. provides a quick overview on LDAP URLs. - The result of an LDAP search is stored internally and can be accessed with one of the ldap_result* functions. ldap_result () stores resulting LDAP attribute value as AVPs. ldap_result_check () is a convenience function to compare a string with LDAP attribute values using regular expression matching. Finally, ldap_result_next () allows to handle LDAP search queries that return more than one LDAP entry. + The result of an LDAP search is stored internally and can be accessed with one of the ldap_result* functions. ldap_result () stores resulting LDAP attribute value as AVPs. ldap_result_check () is a convenience function to compare a string with LDAP attribute values using regular expression matching. Finally, ldap_result_next () allows to handle LDAP search queries that return more than one LDAP entry. @@ -65,7 +65,7 @@ - RFC 4516 describes the format of an LDAP Uniform Resource Locator (URL). An LDAP URL represents an LDAP search operation in a compact format. The LDAP URL format is defined as follows (slightly modified, refer to section 2 of for ABNF notation): + RFC 4516 describes the format of an LDAP Uniform Resource Locator (URL). An LDAP URL represents an LDAP search operation in a compact format. The LDAP URL format is defined as follows (slightly modified, refer to section 2 of for ABNF notation):
@@ -90,7 +90,7 @@ Base Distinguished Name (DN) of LDAP search or target of non-search operation, as defined in RFC 4514 + linkend="RFC4514"/> @@ -118,7 +118,7 @@ LDAP search filter definition following rules of RFC 4515 - + The following table lists characters that have to be escaped in LDAP search filters: @@ -163,7 +163,7 @@ percent-encoding (refer to section 2.1 of RFC 4516). In particular this means that any "?" character in an LDAP URL component must be written as "%3F", since "?" is used as a URL delimiter. - The exported function ldap_filter_url_encode () + The exported function ldap_filter_url_encode () implements RFC 4515/4516 LDAP search filter and URL escaping rules. @@ -439,7 +439,7 @@ modparam("ldap", "config_file", "/etc/openser/ldap.ini") An LDAP URL defining the LDAP search operation (refer to - for a description of the LDAP URL + for a description of the LDAP URL format). The hostport part must be one of the LDAP session names declared in the LDAP configuration script. diff --git a/modules_k/ldap/doc/ldap_devel.sgml b/modules_k/ldap/doc/ldap_devel.xml similarity index 99% rename from modules_k/ldap/doc/ldap_devel.sgml rename to modules_k/ldap/doc/ldap_devel.xml index 185928a34..165be5401 100644 --- a/modules_k/ldap/doc/ldap_devel.sgml +++ b/modules_k/ldap/doc/ldap_devel.xml @@ -165,7 +165,7 @@ typedef int (*ldap_url_search_t)(char* _ldap_url, char* _ldap_url - LDAP URL as described in . + LDAP URL as described in . @@ -374,7 +374,7 @@ typedef int (*ldap_str2scope_t)(char* scope_str);
ldap_rfc4515_escape - Applies escaping rules described in . + Applies escaping rules described in . and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/mangler/doc/mangler.sgml b/modules_k/mangler/doc/mangler.xml similarity index 65% rename from modules_k/mangler/doc/mangler.sgml rename to modules_k/mangler/doc/mangler.xml index b5e138db9..5f62dfeee 100644 --- a/modules_k/mangler/doc/mangler.sgml +++ b/modules_k/mangler/doc/mangler.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -37,8 +39,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/mangler/doc/mangler_user.sgml b/modules_k/mangler/doc/mangler_admin.xml similarity index 100% rename from modules_k/mangler/doc/mangler_user.sgml rename to modules_k/mangler/doc/mangler_admin.xml diff --git a/modules_k/maxfwd/README b/modules_k/maxfwd/README index 85ceda07e..105c133a9 100644 --- a/modules_k/maxfwd/README +++ b/modules_k/maxfwd/README @@ -9,9 +9,13 @@ Edited by Bogdan-Andrei Iancu Copyright © 2003 FhG FOKUS + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -29,11 +33,13 @@ Bogdan-Andrei Iancu 1.4.1. mf_process_maxfwd_header(max_value) 1.4.2. is_maxfwd_lt(max_value) + 2. Frequently Asked Questions + List of Examples - 1-1. Set max_limit parameter - 1-2. mx_process_maxfwd_header usage - 1-3. is_maxfwd_lt usage - __________________________________________________________ + + 1.1. Set max_limit parameter + 1.2. mx_process_maxfwd_header usage + 1.3. is_maxfwd_lt usage Chapter 1. User's Guide @@ -42,24 +48,19 @@ Chapter 1. User's Guide The module implements all the operations regarding MaX-Forward header field, like adding it (if not present) or decrementing and checking the value of the existent one. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -78,15 +79,14 @@ Chapter 1. User's Guide Default value is "256". - Example 1-1. Set max_limit parameter + Example 1.1. Set max_limit parameter ... modparam("maxfwd", "max_limit", 32) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. mf_process_maxfwd_header(max_value) +1.4.1. mf_process_maxfwd_header(max_value) If no Max-Forward header is present in the received request, a header will be added having the original value equal with @@ -94,7 +94,6 @@ modparam("maxfwd", "max_limit", 32) value will be decremented (if not 0). Retuning codes: - * 2 (true) - header was not found and a new header was succesfully added. * 1 (true) - header was found and its value was successfully @@ -107,31 +106,28 @@ modparam("maxfwd", "max_limit", 32) "retcode" (or "$?"). Meaning of the parameters is as follows: - * max_value - Value to be added if there is no Max-Forwards header field in the message. This function can be used from REQUEST_ROUTE. - Example 1-2. mx_process_maxfwd_header usage + Example 1.2. mx_process_maxfwd_header usage ... # initial sanity checks -- messages with # max_forwards==0, or excessively long requests -if (!mf_process_maxfwd_header("10") && retcode==-1) { +if (!mf_process_maxfwd_header("10") && $retcode==-1) { sl_send_reply("483","Too Many Hops"); exit; }; ... - __________________________________________________________ -1.4.2. is_maxfwd_lt(max_value) +1.4.2. is_maxfwd_lt(max_value) Checks if the Max-Forward header value is less then the "max_value" parameter value. It considers also the value of the new inserted header (if locally added). Retuning codes: - * 1 (true) - header was found or set and its value is stricly less than "max_value". * -1 (false) - the header was found or set and its value is @@ -143,11 +139,10 @@ if (!mf_process_maxfwd_header("10") && retcode==-1) { "retcode" (or "$?"). Meaning of the parameters is as follows: - * max_value - value to check the Max-Forward.value against (as less than). - Example 1-3. is_maxfwd_lt usage + Example 1.3. is_maxfwd_lt usage ... # next hope is a gateway, so make no sens to # forward if MF is 0 (after decrement) @@ -156,3 +151,36 @@ if ( is_maxfwd_lt("1") ) { exit; }; ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/maxfwd/doc/maxfwd.sgml b/modules_k/maxfwd/doc/maxfwd.xml similarity index 63% rename from modules_k/maxfwd/doc/maxfwd.sgml rename to modules_k/maxfwd/doc/maxfwd.xml index 647a1a7ff..a07d963e8 100644 --- a/modules_k/maxfwd/doc/maxfwd.sgml +++ b/modules_k/maxfwd/doc/maxfwd.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -37,8 +39,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/maxfwd/doc/maxfwd_user.sgml b/modules_k/maxfwd/doc/maxfwd_admin.xml similarity index 98% rename from modules_k/maxfwd/doc/maxfwd_user.sgml rename to modules_k/maxfwd/doc/maxfwd_admin.xml index af9bf6910..00fc8bf1a 100644 --- a/modules_k/maxfwd/doc/maxfwd_user.sgml +++ b/modules_k/maxfwd/doc/maxfwd_admin.xml @@ -132,7 +132,7 @@ modparam("maxfwd", "max_limit", 32) ... # initial sanity checks -- messages with # max_forwards==0, or excessively long requests -if (!mf_process_maxfwd_header("10") && retcode==-1) { +if (!mf_process_maxfwd_header("10") && $retcode==-1) { sl_send_reply("483","Too Many Hops"); exit; }; diff --git a/modules_k/mediaproxy/README b/modules_k/mediaproxy/README index e97e697c4..1e9f4f3a3 100644 --- a/modules_k/mediaproxy/README +++ b/modules_k/mediaproxy/README @@ -2,14 +2,22 @@ Mediaproxy Module Dan Pascu + + Edited by Dan Pascu + + Copyright © 2004 Dan Pascu + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -40,20 +48,22 @@ Dan Pascu 1.8. Comparison with the nathelper module 1.9. How to use sip_ping from the nathelper module + 2. Frequently Asked Questions + List of Examples - 1-1. Setting mediaproxy_socket parameter - 1-2. Setting sip_asymmetrics parameter - 1-3. Setting rtp_asymmetrics parameter - 1-4. Setting natping_interval parameter - 1-5. Setting signaling_ip_avp parameter - 1-6. Setting domain_avp parameter - 1-7. client_nat_test usage - 1-8. fix_contact usage - 1-9. use_media_proxy usage - 1-10. Using mediaproxies from a specific domain - 1-11. end_media_session usage - 1-12. Pinging example configuration - __________________________________________________________ + + 1.1. Setting mediaproxy_socket parameter + 1.2. Setting sip_asymmetrics parameter + 1.3. Setting rtp_asymmetrics parameter + 1.4. Setting natping_interval parameter + 1.5. Setting signaling_ip_avp parameter + 1.6. Setting domain_avp parameter + 1.7. client_nat_test usage + 1.8. fix_contact usage + 1.9. use_media_proxy usage + 1.10. Using mediaproxies from a specific domain + 1.11. end_media_session usage + 1.12. Pinging example configuration Chapter 1. User's Guide @@ -64,7 +74,6 @@ Chapter 1. User's Guide clients. This means that there will be no need to configure anything in particular on the NAT box to allow these clients to work behind NAT when using the mediaproxy module. - __________________________________________________________ 1.2. Principle of operation @@ -76,7 +85,6 @@ Chapter 1. User's Guide To achieve this, mediaproxy is actually composed by 2 components: - * the OpenSER mediaproxy module itself * an external proxy server called OpenSER MediaProxy (available from http://mediaproxy.ag-projects.com/ ) @@ -113,7 +121,6 @@ Chapter 1. User's Guide know where to connect and then after they did so, the proxy learns the addresses they came from and can forward packets between them. - __________________________________________________________ 1.3. Types of SIP clients @@ -180,7 +187,6 @@ Chapter 1. User's Guide module is to accept to be configured to use a so called outbound proxy and this proxy must be the one running with the mediaproxy module loaded. - __________________________________________________________ 1.4. Features @@ -198,26 +204,21 @@ Chapter 1. User's Guide * handle asymmetric clients properly. They can even work behind NAT if a proper port forwarding is done for them on the NAT box. - __________________________________________________________ 1.5. Dependencies 1.5.1. OpenSER Modules The following modules must be loaded before this module: - * usrloc module - this is required if pinging of contacts behind NAT is enabled. In this case the nat_bflag must also be defined on the ursloc module. - __________________________________________________________ 1.5.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.6. Exported parameters @@ -228,12 +229,11 @@ Chapter 1. User's Guide Default value is "/var/run/proxydispatcher.sock". - Example 1-1. Setting mediaproxy_socket parameter + Example 1.1. Setting mediaproxy_socket parameter ... modparam("mediaproxy", "mediaproxy_socket", "/var/run/proxydispatcher.so ck") ... - __________________________________________________________ 1.6.2. sip_asymmetrics (string) @@ -245,12 +245,11 @@ ck") Default value is "/etc/openser/sip-asymmetric-clients". - Example 1-2. Setting sip_asymmetrics parameter + Example 1.2. Setting sip_asymmetrics parameter ... modparam("mediaproxy", "sip_asymmetrics", "/etc/openser/sip-asymmetrics- clients") ... - __________________________________________________________ 1.6.3. rtp_asymmetrics (string) @@ -262,12 +261,11 @@ clients") Default value is "/etc/openser/rtp-asymmetric-clients". - Example 1-3. Setting rtp_asymmetrics parameter + Example 1.3. Setting rtp_asymmetrics parameter ... modparam("mediaproxy", "rtp_asymmetrics", "/etc/openser/rtp-asymmetrics- clients") ... - __________________________________________________________ 1.6.4. natping_interval (integer) @@ -278,11 +276,10 @@ clients") Default value is 60. - Example 1-4. Setting natping_interval parameter + Example 1.4. Setting natping_interval parameter ... modparam("mediaproxy", "natping_interval", 20) ... - __________________________________________________________ 1.6.5. signaling_ip_avp (string) @@ -302,11 +299,10 @@ modparam("mediaproxy", "natping_interval", 20) Default value is "$avp(s:signaling_ip)". - Example 1-5. Setting signaling_ip_avp parameter + Example 1.5. Setting signaling_ip_avp parameter ... modparam("mediaproxy", "signaling_ip_avp", "$avp(s:nat_ip)") ... - __________________________________________________________ 1.6.6. domain_avp (string) @@ -320,15 +316,14 @@ modparam("mediaproxy", "signaling_ip_avp", "$avp(s:nat_ip)") Default value is "$avp(s:mediaproxy_domain)". - Example 1-6. Setting domain_avp parameter + Example 1.6. Setting domain_avp parameter ... modparam("mediaproxy", "domain_avp", "$avp(s:mediaproxy_domain)") ... - __________________________________________________________ 1.7. Exported Functions -1.7.1. client_nat_test(type) +1.7.1. client_nat_test(type) Tests if the client is behind NAT or not. The types of tests are specified by the type parameter which represents a sum of @@ -349,15 +344,14 @@ modparam("mediaproxy", "domain_avp", "$avp(s:mediaproxy_domain)") This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-7. client_nat_test usage + Example 1.7. client_nat_test usage ... if (client_nat_test("3")) { ..... } ... - __________________________________________________________ -1.7.2. fix_contact() +1.7.2. fix_contact() Will replace the IP:Port in the Contact field of the SIP message with the ones the SIP message was received from. For @@ -370,15 +364,14 @@ if (client_nat_test("3")) { This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, BRANCH_ROUTE. - Example 1-8. fix_contact usage + Example 1.8. fix_contact usage ... if (client_nat_test("3")) { fix_contact(); } ... - __________________________________________________________ -1.7.3. use_media_proxy() +1.7.3. use_media_proxy() Will make a call to the proxy server and replace the IPs and ports in the SDP body with the ones returned by the proxy @@ -398,23 +391,22 @@ if (client_nat_test("3")) { This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-9. use_media_proxy usage + Example 1.9. use_media_proxy usage ... if (method==INVITE) { use_media_proxy(); } ... - Example 1-10. Using mediaproxies from a specific domain + Example 1.10. Using mediaproxies from a specific domain ... if (method==INVITE) { $avp(s:mediaproxy_domain) = "example.com"; use_media_proxy(); } ... - __________________________________________________________ -1.7.4. end_media_session() +1.7.4. end_media_session() Will call on the proxy server to end the media session for that call this is done at the end of the call to instruct the proxy @@ -426,13 +418,12 @@ if (method==INVITE) { This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-11. end_media_session usage + Example 1.11. end_media_session usage ... if (method==BYE) { end_media_session(); } ... - __________________________________________________________ 1.8. Comparison with the nathelper module @@ -475,7 +466,6 @@ if (method==BYE) { Another advantage of this is that openser.cfg becomes simpler and easier to maintain. - __________________________________________________________ 1.9. How to use sip_ping from the nathelper module @@ -486,7 +476,7 @@ if (method==BYE) { from the inside won't close the pinholes (the 4 zero byte ping doesn't have a reply from inside the NAT). - Example 1-12. Pinging example configuration + Example 1.12. Pinging example configuration ... loadmodule "/lib/openser/modules/mediaproxy.so" loadmodule "/lib/openser/modules/nathelper.so" @@ -509,3 +499,36 @@ if (method=="REGISTER") { } } ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/mediaproxy/doc/mediaproxy.sgml b/modules_k/mediaproxy/doc/mediaproxy.xml similarity index 56% rename from modules_k/mediaproxy/doc/mediaproxy.sgml rename to modules_k/mediaproxy/doc/mediaproxy.xml index a02623d3d..320a7fb32 100644 --- a/modules_k/mediaproxy/doc/mediaproxy.sgml +++ b/modules_k/mediaproxy/doc/mediaproxy.xml @@ -1,10 +1,12 @@ - + - + + - + %docentities; ]> @@ -30,8 +32,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/mediaproxy/doc/mediaproxy_user.sgml b/modules_k/mediaproxy/doc/mediaproxy_admin.xml similarity index 100% rename from modules_k/mediaproxy/doc/mediaproxy_user.sgml rename to modules_k/mediaproxy/doc/mediaproxy_admin.xml diff --git a/modules_k/mi_datagram/README b/modules_k/mi_datagram/README index fc86bb603..7ad9c51c7 100644 --- a/modules_k/mi_datagram/README +++ b/modules_k/mi_datagram/README @@ -9,9 +9,13 @@ Edited by Andreea-Ancuta Onofrei Copyright © 2007 voice-system.ro + Revision History + Revision $Revision: 1133 $ $Date: 2007-05-04 14:31:13 +0300 + (Thu, 05 Apr 2006) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -41,15 +45,15 @@ Andreea-Ancuta Onofrei 2. Frequently Asked Questions List of Examples - 1-1. Set socket_name parameter - 1-2. Set children_count parameter - 1-3. Set unix_socket_mode parameter - 1-4. Set unix_socket_group parameter - 1-5. Set unix_socket_user parameter - 1-6. Set socket_timeout parameter - 1-7. Set reply_ident parameter - 1-8. DATAGRAM request - __________________________________________________________ + + 1.1. Set socket_name parameter + 1.2. Set children_count parameter + 1.3. Set unix_socket_mode parameter + 1.4. Set unix_socket_group parameter + 1.5. Set unix_socket_user parameter + 1.6. Set socket_timeout parameter + 1.7. Set reply_ident parameter + 1.8. DATAGRAM request Chapter 1. User's Guide @@ -57,37 +61,30 @@ Chapter 1. User's Guide This is a module which provides a UNIX/UDP SOCKET transport layer implementation for the Management Interface. - __________________________________________________________ 1.2. DATAGRAM command syntax The external commands issued via DATAGRAM interface must follow the following syntax: - * request = first_line (argument '\n')* * first_line = ':'command_name':''\n' * argument = (arg_name '::' (arg_value)? ) | (arg_value) * arg_name = not-quoted_string * arg_value = not-quoted_string | '"' string '"' * not-quoted_string = string - {',",\n,\r} - __________________________________________________________ 1.3. Dependencies 1.3.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.3.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * none - __________________________________________________________ 1.4. Exported Parameters @@ -99,13 +96,12 @@ Chapter 1. User's Guide Default value is NONE. - Example 1-1. Set socket_name parameter + Example 1.1. Set socket_name parameter ... modparam("mi_datagram", "socket_name", "/tmp/openser.sock") ... modparam("mi_datagram", "socket_name", "udp:192.168.2.133:8080") ... - __________________________________________________________ 1.4.2. children_count (string) @@ -114,11 +110,10 @@ modparam("mi_datagram", "socket_name", "udp:192.168.2.133:8080") Default value is 1. - Example 1-2. Set children_count parameter + Example 1.2. Set children_count parameter ... modparam("mi_datagram", "children_count", 3) ... - __________________________________________________________ 1.4.3. unix_socket_mode (integer) @@ -128,11 +123,10 @@ modparam("mi_datagram", "children_count", 3) Default value is 0660 (rw-rw----). - Example 1-3. Set unix_socket_mode parameter + Example 1.3. Set unix_socket_mode parameter ... modparam("mi_datagram", "unix_socket_mode", 0600) ... - __________________________________________________________ 1.4.4. unix_socket_group (integer) unix_socket_group (string) @@ -140,12 +134,11 @@ modparam("mi_datagram", "unix_socket_mode", 0600) Default value is the inherited one. - Example 1-4. Set unix_socket_group parameter + Example 1.4. Set unix_socket_group parameter ... modparam("mi_datagram", "unix_socket_group", 0) modparam("mi_datagram", "unix_socket_group", "root") ... - __________________________________________________________ 1.4.5. unix_socket_user (integer) unix_socket_group (string) @@ -153,12 +146,11 @@ modparam("mi_datagram", "unix_socket_group", "root") Default value is the inherited one. - Example 1-5. Set unix_socket_user parameter + Example 1.5. Set unix_socket_user parameter ... modparam("mi_datagram", "unix_socket_user", 0) modparam("mi_datagram", "unix_socket_user", "root") ... - __________________________________________________________ 1.4.6. socket_timeout (integer) @@ -167,11 +159,10 @@ modparam("mi_datagram", "unix_socket_user", "root") Default value is 2000. - Example 1-6. Set socket_timeout parameter + Example 1.6. Set socket_timeout parameter ... modparam("mi_datagram", "socket_timeout", 2000) ... - __________________________________________________________ 1.4.7. reply_indent (string) @@ -181,72 +172,71 @@ modparam("mi_datagram", "socket_timeout", 2000) Default value is ""\t" (TAB)". - Example 1-7. Set reply_ident parameter + Example 1.7. Set reply_ident parameter ... modparam("mi_datagram", "reply_ident", " ") ... - __________________________________________________________ 1.5. Exported Functions No function exported to be used from configuration file. - __________________________________________________________ 1.6. Example This is an example showing the DATAGRAM format for the "get_statistics dialog: tm:" MI commad: response. - Example 1-8. DATAGRAM request + Example 1.8. DATAGRAM request + :get_statistics:\n dialog:\n tm:\n - __________________________________________________________ + Chapter 2. Frequently Asked Questions - 2.1. Both UNIX and UDP type of socket can be created - simultaneusly? + 2.1. + + Both UNIX and UDP type of socket can be created simultaneusly? + + This version supports only one kind of socket at a time. If + there are more than one value set for socket_name the last one + will take effect. - 2.2. Is there a limit in the datagram request's size? - 2.3. Where can I find more about OpenSER? - 2.4. Where can I post a question about this module? - 2.5. How can I report a bug? + 2.2. - 2.1. Both UNIX and UDP type of socket can be created - simultaneusly? + Is there a limit in the datagram request's size? - This version supports only one kind of socket at a time. If - there are more than one value set for socket_name the last one - will take effect. + The maximum length of a datagram request or reply is 65457 + bytes. - 2.2. Is there a limit in the datagram request's size? + 2.3. - The maximum length of a datagram request or reply is 65457 - bytes. + Where can I find more about OpenSER? - 2.3. Where can I find more about OpenSER? + Take a look at http://openser.org/. - Take a look at http://openser.org/. + 2.4. - 2.4. Where can I post a question about this module? + Where can I post a question about this module? - First at all check if your question was already answered on one - of our mailing lists: + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel - * User Mailing List - - http://openser.org/cgi-bin/mailman/listinfo/users - * Developer Mailing List - - http://openser.org/cgi-bin/mailman/listinfo/devel + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . - E-mails regarding any stable OpenSER release should be sent to - and e-mails regarding development versions - should be sent to . + If you want to keep the mail private, send it to + . - If you want to keep the mail private, send it to - . + 2.5. - 2.5. How can I report a bug? + How can I report a bug? - Please follow the guidelines provided at: - http://sourceforge.net/tracker/?group_id=139143. + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/mi_datagram/doc/mi_datagram.sgml b/modules_k/mi_datagram/doc/mi_datagram.xml similarity index 76% rename from modules_k/mi_datagram/doc/mi_datagram.sgml rename to modules_k/mi_datagram/doc/mi_datagram.xml index a02f8e821..0d16e06d7 100644 --- a/modules_k/mi_datagram/doc/mi_datagram.sgml +++ b/modules_k/mi_datagram/doc/mi_datagram.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> diff --git a/modules_k/mi_datagram/doc/mi_datagram_user.sgml b/modules_k/mi_datagram/doc/mi_datagram_admin.xml similarity index 100% rename from modules_k/mi_datagram/doc/mi_datagram_user.sgml rename to modules_k/mi_datagram/doc/mi_datagram_admin.xml diff --git a/modules_k/mi_datagram/doc/mi_datagram_faq.sgml b/modules_k/mi_datagram/doc/mi_datagram_faq.xml similarity index 100% rename from modules_k/mi_datagram/doc/mi_datagram_faq.sgml rename to modules_k/mi_datagram/doc/mi_datagram_faq.xml diff --git a/modules_k/mi_fifo/README b/modules_k/mi_fifo/README index 4fb851e15..f8a891d12 100644 --- a/modules_k/mi_fifo/README +++ b/modules_k/mi_fifo/README @@ -9,9 +9,13 @@ Edited by Bogdan-Andrei Iancu Copyright © 2006 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -33,15 +37,17 @@ Bogdan-Andrei Iancu 1.5. Exported Functions 1.6. Example + 2. Frequently Asked Questions + List of Examples - 1-1. Set fifo_name parameter - 1-2. Set fifo_mode parameter - 1-3. Set fifo_group parameter - 1-4. Set fifo_user parameter - 1-5. Set reply_dir parameter - 1-6. Set reply_indent parameter - 1-7. FIFO request - __________________________________________________________ + + 1.1. Set fifo_name parameter + 1.2. Set fifo_mode parameter + 1.3. Set fifo_group parameter + 1.4. Set fifo_user parameter + 1.5. Set reply_dir parameter + 1.6. Set reply_indent parameter + 1.7. FIFO request Chapter 1. User's Guide @@ -49,37 +55,30 @@ Chapter 1. User's Guide This is a module which provides a FIFO transport layer implementation for Management Interface. - __________________________________________________________ 1.2. FIFO command syntax The external commands issued via FIFO interface must follow the following syntax: - * request = first_line argument* * first_line = ':'command_name':'reply_fifo'\n' * argument = (arg_name '::' (arg_value)? ) | (arg_value) * arg_name = not-quoted_string * arg_value = not-quoted_string | '"' string '"' * not-quoted_string = string - {',",\n,\r} - __________________________________________________________ 1.3. Dependencies 1.3.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.3.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * none - __________________________________________________________ 1.4. Exported Parameters @@ -90,11 +89,10 @@ Chapter 1. User's Guide Default value is NONE. - Example 1-1. Set fifo_name parameter + Example 1.1. Set fifo_name parameter ... modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo") ... - __________________________________________________________ 1.4.2. fifo_mode (integer) @@ -103,11 +101,10 @@ modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo") Default value is 0660 (rw-rw----). - Example 1-2. Set fifo_mode parameter + Example 1.2. Set fifo_mode parameter ... modparam("mi_fifo", "fifo_mode", 0600) ... - __________________________________________________________ 1.4.3. fifo_group (integer) fifo_group (string) @@ -115,12 +112,11 @@ modparam("mi_fifo", "fifo_mode", 0600) Default value is the inherited one. - Example 1-3. Set fifo_group parameter + Example 1.3. Set fifo_group parameter ... modparam("mi_fifo", "fifo_group", 0) modparam("mi_fifo", "fifo_group", "root") ... - __________________________________________________________ 1.4.4. fifo_user (integer) fifo_group (string) @@ -128,12 +124,11 @@ modparam("mi_fifo", "fifo_group", "root") Default value is the inherited one. - Example 1-4. Set fifo_user parameter + Example 1.4. Set fifo_user parameter ... modparam("mi_fifo", "fifo_user", 0) modparam("mi_fifo", "fifo_user", "root") ... - __________________________________________________________ 1.4.5. reply_dir (string) @@ -141,11 +136,10 @@ modparam("mi_fifo", "fifo_user", "root") Default value is "/tmp/" - Example 1-5. Set reply_dir parameter + Example 1.5. Set reply_dir parameter ... modparam("mi_fifo", "reply_dir", "/home/openser/tmp/") ... - __________________________________________________________ 1.4.6. reply_indent (string) @@ -155,24 +149,57 @@ modparam("mi_fifo", "reply_dir", "/home/openser/tmp/") Default value is ""\t" (TAB)". - Example 1-6. Set reply_indent parameter + Example 1.6. Set reply_indent parameter ... modparam("mi_fifo", "reply_indent", " ") ... - __________________________________________________________ 1.5. Exported Functions No function exported to be used from configuration file. - __________________________________________________________ 1.6. Example This is an example showing the FIFO format for the "get_statistics dialog: tm:" MI commad: response. - Example 1-7. FIFO request + Example 1.7. FIFO request + :get_statistics:reply_fifo\n dialog:\n tm:\n \n + + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/mi_fifo/doc/mi_fifo.sgml b/modules_k/mi_fifo/doc/mi_fifo.xml similarity index 67% rename from modules_k/mi_fifo/doc/mi_fifo.sgml rename to modules_k/mi_fifo/doc/mi_fifo.xml index 3fc1dd09b..410fcc75c 100644 --- a/modules_k/mi_fifo/doc/mi_fifo.sgml +++ b/modules_k/mi_fifo/doc/mi_fifo.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -40,8 +42,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/mi_fifo/doc/mi_fifo_user.sgml b/modules_k/mi_fifo/doc/mi_fifo_admin.xml similarity index 100% rename from modules_k/mi_fifo/doc/mi_fifo_user.sgml rename to modules_k/mi_fifo/doc/mi_fifo_admin.xml diff --git a/modules_k/mi_xmlrpc/README b/modules_k/mi_xmlrpc/README index 3f60c3ee4..18308484b 100644 --- a/modules_k/mi_xmlrpc/README +++ b/modules_k/mi_xmlrpc/README @@ -8,12 +8,18 @@ Edited by Lavinia-Andreea Andrei +Edited by + Juha Heinanen Copyright © 2006 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -33,13 +39,15 @@ Juha Heinanen 1.5. Exported Functions 1.6. Example + 2. Frequently Asked Questions + List of Examples - 1-1. Set port parameter - 1-2. Set log_file parameter - 1-3. Set reply_option parameter - 1-4. Set reply_option parameter - 1-5. XMLRPC request - __________________________________________________________ + + 1.1. Set port parameter + 1.2. Set log_file parameter + 1.3. Set reply_option parameter + 1.4. Set reply_option parameter + 1.5. XMLRPC request Chapter 1. User's Guide @@ -66,30 +74,24 @@ Chapter 1. User's Guide this limitation mi_xmlrpc module implements a hack that coverts each LFLF sequence in received XML-RPC strings to CRLF sequence. - __________________________________________________________ 1.2. To-do Features to be added in the future: - * possibility to select the listening IP address * multiple ports per IP address - __________________________________________________________ 1.3. Dependencies 1.3.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.3.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * libxml. * libxmlrpc-c3 version 0.9.10. * libxmlrpc-c3-dev version 0.9.10. @@ -100,7 +102,6 @@ Chapter 1. User's Guide Otherwise you need to install the library and devel headers from the sources. In both cases, keep in mind to use the 0.9.10 version!!. - __________________________________________________________ 1.4. Exported Parameters @@ -112,11 +113,10 @@ Chapter 1. User's Guide The default value is 8080. Ports lower than 1024 are not accepted. - Example 1-1. Set port parameter + Example 1.1. Set port parameter ... modparam("mi_xmlrpc", "port", 8000) ... - __________________________________________________________ 1.4.2. log_file(string) @@ -125,11 +125,10 @@ modparam("mi_xmlrpc", "port", 8000) The default values NONE (no logging). - Example 1-2. Set log_file parameter + Example 1.2. Set log_file parameter ... modparam("mi_xmlrpc", "log_file", "/var/log/abyss.log") ... - __________________________________________________________ 1.4.3. reply_option (integer) @@ -145,11 +144,10 @@ modparam("mi_xmlrpc", "log_file", "/var/log/abyss.log") The default option is a string built response (0). - Example 1-3. Set reply_option parameter + Example 1.3. Set reply_option parameter ... modparam("mi_xmlrpc", "reply_option", 0) ... - __________________________________________________________ 1.4.4. buffer_size (integer) @@ -159,23 +157,23 @@ modparam("mi_xmlrpc", "reply_option", 0) The default value is 8192. - Example 1-4. Set reply_option parameter + Example 1.4. Set reply_option parameter ... modparam("mi_xmlrpc", "buffer_size", 8192) ... - __________________________________________________________ 1.5. Exported Functions No function exported to be used from configuration file. - __________________________________________________________ 1.6. Example This is an example showing the xmlrpc format for the "get_statistics dialog: tm:" MI commad: response. - Example 1-5. XMLRPC request + Example 1.5. XMLRPC request + + POST /RPC2 HTTP/1.0 Host: 127.0.0.1 Connection: close @@ -195,3 +193,38 @@ Content-Length: 1000 + + + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/mi_xmlrpc/doc/mi_xmlrpc.sgml b/modules_k/mi_xmlrpc/doc/mi_xmlrpc.xml similarity index 71% rename from modules_k/mi_xmlrpc/doc/mi_xmlrpc.sgml rename to modules_k/mi_xmlrpc/doc/mi_xmlrpc.xml index 61a9f08a8..b8b9ba954 100644 --- a/modules_k/mi_xmlrpc/doc/mi_xmlrpc.sgml +++ b/modules_k/mi_xmlrpc/doc/mi_xmlrpc.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -47,8 +49,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/mi_xmlrpc/doc/mi_xmlrpc_user.sgml b/modules_k/mi_xmlrpc/doc/mi_xmlrpc_admin.xml similarity index 99% rename from modules_k/mi_xmlrpc/doc/mi_xmlrpc_user.sgml rename to modules_k/mi_xmlrpc/doc/mi_xmlrpc_admin.xml index 089c5598b..82222fe29 100644 --- a/modules_k/mi_xmlrpc/doc/mi_xmlrpc_user.sgml +++ b/modules_k/mi_xmlrpc/doc/mi_xmlrpc_admin.xml @@ -24,7 +24,7 @@ XML-RPC server. Current version of Abyss server "normalizes" CRLF sequence in received XML-RPC strings to LF character, which makes it impossible to pass CRLF - sequence from xmlrpc client application to &ser modules, + sequence from xmlrpc client application to &ser; modules, such as mi_fifo and pua_mi, that accept requests via MI transport. To overcome this limitation mi_xmlrpc module implements a hack that coverts each LFLF sequence in diff --git a/modules_k/msilo/README b/modules_k/msilo/README index b0590ccf9..bdbb7ee25 100644 --- a/modules_k/msilo/README +++ b/modules_k/msilo/README @@ -2,16 +2,18 @@ MSILO Module Daniel-Constantin Mierla - voice-system.ro - Edited by Daniel-Constantin Mierla Copyright © 2003 FhG FOKUS + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -59,38 +61,40 @@ Daniel-Constantin Mierla 1.5.4. dumped_reminders 1.5.5. failed_reminders - 1.6. Installation & Running + 1.6. Installation and Running 1.6.1. OpenSER config file + 2. Frequently Asked Questions + List of Examples - 1-1. Set the "db_url" parameter - 1-2. Set the "db_table" parameter - 1-3. Set the "registrar" parameter - 1-4. Set the "reminder" parameter - 1-5. Set the "outbound_proxy" parameter - 1-6. Set the "expire_time" parameter - 1-7. Set the "check_time" parameter - 1-8. Set the "send_time" parameter - 1-9. Set the "clean_period" parameter - 1-10. Set the "use_contact" parameter - 1-11. Set the "sc_mid" parameter - 1-12. Set the "sc_from" parameter - 1-13. Set the "sc_to" parameter - 1-14. Set the "sc_uri_user" parameter - 1-15. Set the "sc_uri_host" parameter - 1-16. Set the "sc_body" parameter - 1-17. Set the "sc_ctype" parameter - 1-18. Set the "sc_exp_time" parameter - 1-19. Set the "sc_inc_time" parameter - 1-20. Set the "sc_snd_time" parameter - 1-21. Set the "snd_time_avp" parameter - 1-22. Set the "add_date" parameter - 1-23. Set the "max_messages" parameter - 1-24. m_store usage - 1-25. m_dump usage - 1-26. OpenSER config script - sample msilo usage - __________________________________________________________ + + 1.1. Set the "db_url" parameter + 1.2. Set the "db_table" parameter + 1.3. Set the "registrar" parameter + 1.4. Set the "reminder" parameter + 1.5. Set the "outbound_proxy" parameter + 1.6. Set the "expire_time" parameter + 1.7. Set the "check_time" parameter + 1.8. Set the "send_time" parameter + 1.9. Set the "clean_period" parameter + 1.10. Set the "use_contact" parameter + 1.11. Set the "sc_mid" parameter + 1.12. Set the "sc_from" parameter + 1.13. Set the "sc_to" parameter + 1.14. Set the "sc_uri_user" parameter + 1.15. Set the "sc_uri_host" parameter + 1.16. Set the "sc_body" parameter + 1.17. Set the "sc_ctype" parameter + 1.18. Set the "sc_exp_time" parameter + 1.19. Set the "sc_inc_time" parameter + 1.20. Set the "sc_snd_time" parameter + 1.21. Set the "snd_time_avp" parameter + 1.22. Set the "add_date" parameter + 1.23. Set the "max_messages" parameter + 1.24. m_store usage + 1.25. m_dump usage + 1.26. OpenSER config script - sample msilo usage Chapter 1. User's Guide @@ -121,27 +125,22 @@ Chapter 1. User's Guide Agent to have no support for MESSAGE request. In this case it should be used the "failure_route" to store the undelivered requests. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER modules The following modules must be loaded before this module: - * database module - mysql, dbtext or other module that implements the "db" interface and provides support for storing/receiving data to/from a database system. * TM--transaction module--is used to send SIP requests. - __________________________________________________________ 1.2.2. External libraries or applications The following libraries or applications must be installed before running OpenSER with this module: - * none. - __________________________________________________________ 1.3. Exported Parameters @@ -151,11 +150,10 @@ Chapter 1. User's Guide Default value is "mysql://openser:openserrw@localhost/openser". - Example 1-1. Set the "db_url" parameter + Example 1.1. Set the "db_url" parameter ... modparam("msilo", "db_url", "mysql://user:passwd@host.com/dbname") ... - __________________________________________________________ 1.3.2. db_table (string) @@ -163,11 +161,10 @@ modparam("msilo", "db_url", "mysql://user:passwd@host.com/dbname") Default value is "silo". - Example 1-2. Set the "db_table" parameter + Example 1.2. Set the "db_table" parameter ... modparam("msilo", "db_table", "silo") ... - __________________________________________________________ 1.3.3. registrar (string) @@ -180,11 +177,10 @@ modparam("msilo", "db_table", "silo") Default value is "NULL". - Example 1-3. Set the "registrar" parameter + Example 1.3. Set the "registrar" parameter ... modparam("msilo", "registrar", "sip:registrar@example.org") ... - __________________________________________________________ 1.3.4. reminder (string) @@ -193,11 +189,10 @@ modparam("msilo", "registrar", "sip:registrar@example.org") Default value is "NULL". - Example 1-4. Set the "reminder" parameter + Example 1.4. Set the "reminder" parameter ... modparam("msilo", "reminder", "sip:registrar@example.org") ... - __________________________________________________________ 1.3.5. outbound_proxy (string) @@ -209,11 +204,10 @@ modparam("msilo", "reminder", "sip:registrar@example.org") Default value is "NULL". - Example 1-5. Set the "outbound_proxy" parameter + Example 1.5. Set the "outbound_proxy" parameter ... modparam("msilo", "outbound_proxy", "sip:openser.org;transport=tcp") ... - __________________________________________________________ 1.3.6. expire_time (int) @@ -222,11 +216,10 @@ modparam("msilo", "outbound_proxy", "sip:openser.org;transport=tcp") Default value is "259200 (72 hours = 3 days)". - Example 1-6. Set the "expire_time" parameter + Example 1.6. Set the "expire_time" parameter ... modparam("msilo", "expire_time", 36000) ... - __________________________________________________________ 1.3.7. check_time (int) @@ -237,11 +230,10 @@ modparam("msilo", "expire_time", 36000) Default value is "30". - Example 1-7. Set the "check_time" parameter + Example 1.7. Set the "check_time" parameter ... modparam("msilo", "check_time", 10) ... - __________________________________________________________ 1.3.8. send_time (int) @@ -253,11 +245,10 @@ modparam("msilo", "check_time", 10) Default value is "0". - Example 1-8. Set the "send_time" parameter + Example 1.8. Set the "send_time" parameter ... modparam("msilo", "send_time", 60) ... - __________________________________________________________ 1.3.9. clean_period (int) @@ -266,11 +257,10 @@ modparam("msilo", "send_time", 60) Default value is "5". - Example 1-9. Set the "clean_period" parameter + Example 1.9. Set the "clean_period" parameter ... modparam("msilo", "clean_period", 3) ... - __________________________________________________________ 1.3.10. use_contact (int) @@ -279,11 +269,10 @@ modparam("msilo", "clean_period", 3) Default value is "1 (0 = off, 1 = on)". - Example 1-10. Set the "use_contact" parameter + Example 1.10. Set the "use_contact" parameter ... modparam("msilo", "use_contact", 0) ... - __________________________________________________________ 1.3.11. sc_mid (string) @@ -291,11 +280,10 @@ modparam("msilo", "use_contact", 0) Default value is "mid". - Example 1-11. Set the "sc_mid" parameter + Example 1.11. Set the "sc_mid" parameter ... modparam("msilo", "sc_mid", "other_mid") ... - __________________________________________________________ 1.3.12. sc_from (string) @@ -304,11 +292,10 @@ modparam("msilo", "sc_mid", "other_mid") Default value is "src_addr". - Example 1-12. Set the "sc_from" parameter + Example 1.12. Set the "sc_from" parameter ... modparam("msilo", "sc_from", "source_address") ... - __________________________________________________________ 1.3.13. sc_to (string) @@ -317,11 +304,10 @@ modparam("msilo", "sc_from", "source_address") Default value is "dst_addr". - Example 1-13. Set the "sc_to" parameter + Example 1.13. Set the "sc_to" parameter ... modparam("msilo", "sc_to", "destination_address") ... - __________________________________________________________ 1.3.14. sc_uri_user (string) @@ -329,11 +315,10 @@ modparam("msilo", "sc_to", "destination_address") Default value is "username". - Example 1-14. Set the "sc_uri_user" parameter + Example 1.14. Set the "sc_uri_user" parameter ... modparam("msilo", "sc_uri_user", "user") ... - __________________________________________________________ 1.3.15. sc_uri_host (string) @@ -341,11 +326,10 @@ modparam("msilo", "sc_uri_user", "user") Default value is "domain". - Example 1-15. Set the "sc_uri_host" parameter + Example 1.15. Set the "sc_uri_host" parameter ... modparam("msilo", "sc_uri_host", "domain") ... - __________________________________________________________ 1.3.16. sc_body (string) @@ -353,11 +337,10 @@ modparam("msilo", "sc_uri_host", "domain") Default value is "body". - Example 1-16. Set the "sc_body" parameter + Example 1.16. Set the "sc_body" parameter ... modparam("msilo", "sc_body", "message_body") ... - __________________________________________________________ 1.3.17. sc_ctype (string) @@ -365,11 +348,10 @@ modparam("msilo", "sc_body", "message_body") Default value is "ctype". - Example 1-17. Set the "sc_ctype" parameter + Example 1.17. Set the "sc_ctype" parameter ... modparam("msilo", "sc_ctype", "content_type") ... - __________________________________________________________ 1.3.18. sc_exp_time (string) @@ -378,11 +360,10 @@ modparam("msilo", "sc_ctype", "content_type") Default value is "exp_time". - Example 1-18. Set the "sc_exp_time" parameter + Example 1.18. Set the "sc_exp_time" parameter ... modparam("msilo", "sc_exp_time", "expire_time") ... - __________________________________________________________ 1.3.19. sc_inc_time (string) @@ -391,11 +372,10 @@ modparam("msilo", "sc_exp_time", "expire_time") Default value is "inc_time". - Example 1-19. Set the "sc_inc_time" parameter + Example 1.19. Set the "sc_inc_time" parameter ... modparam("msilo", "sc_inc_time", "incoming_time") ... - __________________________________________________________ 1.3.20. sc_snd_time (string) @@ -404,11 +384,10 @@ modparam("msilo", "sc_inc_time", "incoming_time") Default value is "snd_time". - Example 1-20. Set the "sc_snd_time" parameter + Example 1.20. Set the "sc_snd_time" parameter ... modparam("msilo", "sc_snd_time", "send_reminder_time") ... - __________________________________________________________ 1.3.21. snd_time_avp (str) @@ -422,11 +401,10 @@ modparam("msilo", "sc_snd_time", "send_reminder_time") Default value is "null". - Example 1-21. Set the "snd_time_avp" parameter + Example 1.21. Set the "snd_time_avp" parameter ... modparam("msilo", "snd_time_avp", "$avp(i:123)") ... - __________________________________________________________ 1.3.22. add_date (int) @@ -434,11 +412,10 @@ modparam("msilo", "snd_time_avp", "$avp(i:123)") Default value is "1" (1==on/0==off). - Example 1-22. Set the "add_date" parameter + Example 1.22. Set the "add_date" parameter ... modparam("msilo", "add_date", 0) ... - __________________________________________________________ 1.3.23. max_messages (int) @@ -447,11 +424,10 @@ modparam("msilo", "add_date", 0) Default value is 0. - Example 1-23. Set the "max_messages" parameter + Example 1.23. Set the "max_messages" parameter ... modparam("msilo", "max_messages", 0) ... - __________________________________________________________ 1.4. Exported Functions @@ -466,7 +442,6 @@ modparam("msilo", "max_messages", 0) UA. Meaning of the parameters is as follows: - * owner - is a string that must contain a SIP URI in whose inbox the message will be stored. It can have any pseudo variable. If "owner" is missing, the SIP address is taken @@ -474,12 +449,11 @@ modparam("msilo", "max_messages", 0) This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-24. m_store usage + Example 1.24. m_store usage ... m_store(); m_store("$tu"); ... - __________________________________________________________ 1.4.2. m_dump([owner]) @@ -489,54 +463,47 @@ m_store("$tu"); header has a value greater than zero. Meaning of the parameters is as follows: - * owner - is a string that must contain a SIP URI whose inbox will be dumped. It can have any pseudo variable. If "owner" is missing, the SIP address is taken from To URI. This function can be used from REQUEST_ROUTE. - Example 1-25. m_dump usage + Example 1.25. m_dump usage ... m_dump(); m_dump("$fu"); ... - __________________________________________________________ 1.5. Exported Statistics 1.5.1. stored_messages The number of messages stored by msilo. - __________________________________________________________ 1.5.2. dumped_messages The number of dumped messages. - __________________________________________________________ 1.5.3. failed_messages The number of failed dumped messages. - __________________________________________________________ 1.5.4. dumped_reminders The number of dumped reminder messages. - __________________________________________________________ 1.5.5. failed_reminders The number of failed reminder messages. - __________________________________________________________ -1.6. Installation & Running +1.6. Installation and Running 1.6.1. OpenSER config file Next picture displays a sample usage of msilo. - Example 1-26. OpenSER config script - sample msilo usage + Example 1.26. OpenSER config script - sample msilo usage ... # $Id$ # @@ -688,3 +655,36 @@ failure_route[1] { ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/msilo/doc/msilo.sgml b/modules_k/msilo/doc/msilo.xml similarity index 58% rename from modules_k/msilo/doc/msilo.sgml rename to modules_k/msilo/doc/msilo.xml index 4418df6ab..f198d5a9e 100644 --- a/modules_k/msilo/doc/msilo.sgml +++ b/modules_k/msilo/doc/msilo.xml @@ -1,12 +1,14 @@ - + - + + - + %docentities; ]> @@ -19,16 +21,15 @@ Daniel-Constantin Mierla - &voicesystem;
- daniel@voice-system.ro + miconda@gmail.com
Daniel-Constantin Mierla
- daniel@voice-system.ro + miconda@gmail.com
@@ -38,8 +39,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/msilo/doc/msilo_user.sgml b/modules_k/msilo/doc/msilo_admin.xml similarity index 99% rename from modules_k/msilo/doc/msilo_user.sgml rename to modules_k/msilo/doc/msilo_admin.xml index a35f66520..369c79c2b 100644 --- a/modules_k/msilo/doc/msilo_user.sgml +++ b/modules_k/msilo/doc/msilo_admin.xml @@ -513,7 +513,7 @@ modparam("msilo", "max_messages", 0) The method stores certain parts of the current &sip; request (it should be called when the request type is MESSAGE and the destination - user is offline or his &ua does not support MESSAGE requests). If the + user is offline or his UA does not support MESSAGE requests). If the user is registered with a UA which does not support MESSAGE requests you should not use mode=0 if you have changed the request uri with the contact address of user's &ua;. @@ -562,7 +562,6 @@ m_store("$tu"); - This function can be used from REQUEST_ROUTE. @@ -583,37 +582,37 @@ m_dump("$fu"); stored_messages The number of messages stored by msilo. - +
dumped_messages The number of dumped messages. - +
failed_messages The number of failed dumped messages. - +
dumped_reminders The number of dumped reminder messages. - +
failed_reminders The number of failed reminder messages. - +
- Installation & Running + Installation and Running
&ser; config file diff --git a/modules_k/nathelper/README b/modules_k/nathelper/README index 6e7baa76f..65518c588 100644 --- a/modules_k/nathelper/README +++ b/modules_k/nathelper/README @@ -8,14 +8,20 @@ Edited by Maxim Sobolev +Edited by + Bogdan-Andrei Iancu Copyright © 2003 Porta Software Ltd. Copyright © 2005 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -54,37 +60,42 @@ Bogdan-Andrei Iancu 1.6.7. fix_nated_register() 1.6.8. nat_uac_test(flags) 1.6.9. start_recording() - 1.6.10. MI Commands + + 1.7. MI Commands + + 1.7.1. nh_enable_ping + 1.7.2. nh_enable_rtpp + 1.7.3. nh_show_rtpp 2. Frequently Asked Questions List of Examples - 1-1. Set natping_interval parameter - 1-2. Set ping_nated_only parameter - 1-3. Set natping_processes parameter - 1-4. Set natping_socket parameter - 1-5. Set received_avp parameter - 1-6. Set rtpproxy_sock parameter - 1-7. Set rtpproxy_disable_tout parameter - 1-8. Set rtpproxy_tout parameter - 1-9. Set rtpproxy_retr parameter - 1-10. Set force_socket parameter - 1-11. Set sipping_bflag parameter - 1-12. Set sipping_from parameter - 1-13. Set sipping_method parameter - 1-14. Set nortpproxy_str parameter - 1-15. fix_nated_contact usage - 1-16. fix_nated_sdp usage - 1-17. fix_nated_contact usage - 1-18. force_rtp_proxy usage - 1-19. unforce_rtp_proxy usage - 1-20. add_rcv_paramer usage - 1-21. fix_nated_register usage - 1-22. start_recording usage - 1-23. nh_enable_ping usage - 1-24. nh_enable_rtpp usage - 1-25. nh_show_rtpp usage - __________________________________________________________ + + 1.1. Set natping_interval parameter + 1.2. Set ping_nated_only parameter + 1.3. Set natping_processes parameter + 1.4. Set natping_socket parameter + 1.5. Set received_avp parameter + 1.6. Set rtpproxy_sock parameter + 1.7. Set rtpproxy_disable_tout parameter + 1.8. Set rtpproxy_tout parameter + 1.9. Set rtpproxy_retr parameter + 1.10. Set force_socket parameter + 1.11. Set sipping_bflag parameter + 1.12. Set sipping_from parameter + 1.13. Set sipping_method parameter + 1.14. Set nortpproxy_str parameter + 1.15. fix_nated_contact usage + 1.16. fix_nated_sdp usage + 1.17. fix_nated_contact usage + 1.18. force_rtp_proxy usage + 1.19. unforce_rtp_proxy usage + 1.20. add_rcv_paramer usage + 1.21. fix_nated_register usage + 1.22. start_recording usage + 1.23. nh_enable_ping usage + 1.24. nh_enable_rtpp usage + 1.25. nh_show_rtpp usage Chapter 1. User's Guide @@ -102,13 +113,11 @@ Chapter 1. User's Guide (as clients) and Cisco Gateways (since 12.2(T)) as servers. See http://www.cisco.com/en/US/products/sw/iosswrel/ps1839/products _feature_guide09186a0080110bf9.html"> - __________________________________________________________ 1.2. NAT pinging types Currently, the nathelper module supports two types of NAT pings: - * UDP package - 4 bytes (zero filled) UDP packages are sent to the contact address. + Advantages: low bandwitdh traffic, easy to generate by @@ -125,7 +134,6 @@ Chapter 1. User's Guide traffic) - the NAT bind will be surely kept open. + Disadvantages: higher bandwitdh traffic, more expensive (as time) to generate by OpenSER; - __________________________________________________________ 1.3. Multiple RTPProxy usage @@ -152,25 +160,20 @@ Chapter 1. User's Guide IMPORTANT: if you use nultiple sets, take care and use the same set for both force_ and unforce_rtpproxy()!! - __________________________________________________________ 1.4. Dependencies 1.4.1. OpenSER Modules The following modules must be loaded before this module: - * usrloc module - only if the NATed contacts are to be pinged. - __________________________________________________________ 1.4.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.5. Exported Parameters @@ -180,18 +183,17 @@ Chapter 1. User's Guide currently registered UAs to keep their NAT bindings alive. Value of 0 disables this functionality. - Note +Note - Enabling the NAT pinging functionality will force the module to - bind itself to USRLOC module. + Enabling the NAT pinging functionality will force the module to + bind itself to USRLOC module. Default value is 0. - Example 1-1. Set natping_interval parameter + Example 1.1. Set natping_interval parameter ... modparam("nathelper", "natping_interval", 10) ... - __________________________________________________________ 1.5.2. ping_nated_only (integer) @@ -200,11 +202,10 @@ modparam("nathelper", "natping_interval", 10) Default value is 0. - Example 1-2. Set ping_nated_only parameter + Example 1.2. Set ping_nated_only parameter ... modparam("nathelper", "ping_nated_only", 1) ... - __________________________________________________________ 1.5.3. natping_processes (integer) @@ -213,11 +214,10 @@ modparam("nathelper", "ping_nated_only", 1) Default value is 1. - Example 1-3. Set natping_processes parameter + Example 1.3. Set natping_processes parameter ... modparam("nathelper", "natping_processes", 3) ... - __________________________________________________________ 1.5.4. natping_socket (string) @@ -226,11 +226,10 @@ modparam("nathelper", "natping_processes", 3) Default value is NULL. - Example 1-4. Set natping_socket parameter + Example 1.4. Set natping_socket parameter ... modparam("nathelper", "natping_socket", "192.168.1.1:5006") ... - __________________________________________________________ 1.5.5. received_avp (str) @@ -242,19 +241,18 @@ modparam("nathelper", "natping_socket", "192.168.1.1:5006") corresponding parameter in registrar module if you change the value of this parameter. - Note +Note - You must set this parameter if you use "fix_nated_register". In - such case you must set the parameter with same name of - "registrar" module to same value. + You must set this parameter if you use "fix_nated_register". In + such case you must set the parameter with same name of + "registrar" module to same value. Default value is "NULL" (disabled). - Example 1-5. Set received_avp parameter + Example 1.5. Set received_avp parameter ... modparam("nathelper", "received_avp", "$avp(i:42)") ... - __________________________________________________________ 1.5.6. rtpproxy_sock (string) @@ -263,7 +261,7 @@ modparam("nathelper", "received_avp", "$avp(i:42)") Default value is "NONE" (disabled). - Example 1-6. Set rtpproxy_sock parameter + Example 1.6. Set rtpproxy_sock parameter ... # single rtproxy modparam("nathelper", "rtpproxy_sock", "udp:localhost:12221") @@ -276,7 +274,6 @@ modparam("nathelper", "rtpproxy_sock", modparam("nathelper", "rtpproxy_sock", "2 == udp:localhost:12225") ... - __________________________________________________________ 1.5.7. rtpproxy_disable_tout (integer) @@ -286,11 +283,10 @@ modparam("nathelper", "rtpproxy_sock", Default value is "60". - Example 1-7. Set rtpproxy_disable_tout parameter + Example 1.7. Set rtpproxy_disable_tout parameter ... modparam("nathelper", "rtpproxy_disable_tout", 20) ... - __________________________________________________________ 1.5.8. rtpproxy_tout (integer) @@ -298,11 +294,10 @@ modparam("nathelper", "rtpproxy_disable_tout", 20) Default value is "1". - Example 1-8. Set rtpproxy_tout parameter + Example 1.8. Set rtpproxy_tout parameter ... modparam("nathelper", "rtpproxy_tout", 2) ... - __________________________________________________________ 1.5.9. rtpproxy_retr (integer) @@ -311,11 +306,10 @@ modparam("nathelper", "rtpproxy_tout", 2) Default value is "5". - Example 1-9. Set rtpproxy_retr parameter + Example 1.9. Set rtpproxy_retr parameter ... modparam("nathelper", "rtpproxy_retr", 2) ... - __________________________________________________________ 1.5.10. force_socket (string) @@ -325,11 +319,10 @@ modparam("nathelper", "rtpproxy_retr", 2) Default value is "NULL". - Example 1-10. Set force_socket parameter + Example 1.10. Set force_socket parameter ... modparam("nathelper", "force_socket", "localhost:33333") ... - __________________________________________________________ 1.5.11. sipping_bflag (integer) @@ -339,11 +332,10 @@ modparam("nathelper", "force_socket", "localhost:33333") Default value is -1 (disabled). - Example 1-11. Set sipping_bflag parameter + Example 1.11. Set sipping_bflag parameter ... modparam("nathelper", "sipping_bflag", 7) ... - __________________________________________________________ 1.5.12. sipping_from (string) @@ -354,11 +346,10 @@ modparam("nathelper", "sipping_bflag", 7) Default value is "NULL". - Example 1-12. Set sipping_from parameter + Example 1.12. Set sipping_from parameter ... modparam("nathelper", "sipping_from", "sip:pinger@siphub.net") ... - __________________________________________________________ 1.5.13. sipping_method (string) @@ -367,11 +358,10 @@ modparam("nathelper", "sipping_from", "sip:pinger@siphub.net") Default value is "OPTIONS". - Example 1-13. Set sipping_method parameter + Example 1.13. Set sipping_method parameter ... modparam("nathelper", "sipping_method", "INFO") ... - __________________________________________________________ 1.5.14. nortpproxy_str (string) @@ -380,42 +370,39 @@ modparam("nathelper", "sipping_method", "INFO") If empty string, no marker will be added or checked. - Note +Note - The string must be a complete SDP line, including the EOH - (\r\n). + The string must be a complete SDP line, including the EOH + (\r\n). Default value is "a=nortpproxy:yes\r\n". - Example 1-14. Set nortpproxy_str parameter + Example 1.14. Set nortpproxy_str parameter ... modparam("nathelper", "nortpproxy_str", "a=sdpmangled:yes\r\n") ... - __________________________________________________________ 1.6. Exported Functions -1.6.1. fix_nated_contact() +1.6.1. fix_nated_contact() Rewrites Contact HF to contain request's source address:port. This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, BRANCH_ROUTE. - Example 1-15. fix_nated_contact usage + Example 1.15. fix_nated_contact usage ... if (search("User-Agent: Cisco ATA.*") {fix_nated_contact();}; ... - __________________________________________________________ -1.6.2. fix_nated_sdp(flags [, ip_address]) +1.6.2. fix_nated_sdp(flags [, ip_address]) Alters the SDP information in orer to facilitate NAT traversal. What changes to be performed may be controled via the "flags" paramter. Meaning of the parameters is as follows: - * flags - the value may be a bitwise OR of the following flags: + 0x01 - adds "a=direction:active" SDP line; @@ -437,13 +424,12 @@ if (search("User-Agent: Cisco ATA.*") {fix_nated_contact();}; This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-16. fix_nated_sdp usage + Example 1.16. fix_nated_sdp usage ... if (search("User-Agent: Cisco ATA.*") {fix_nated_sdp("3");}; ... - __________________________________________________________ -1.6.3. set_rtp_proxy_set() +1.6.3. set_rtp_proxy_set() Sets the Id of the rtpproxy set to be used for the next [un]force_rtp_proxy() command. @@ -451,14 +437,13 @@ if (search("User-Agent: Cisco ATA.*") {fix_nated_sdp("3");}; This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, BRANCH_ROUTE. - Example 1-17. fix_nated_contact usage + Example 1.17. fix_nated_contact usage ... set_rtp_proxy_set("2"); force_rtp_proxy(); ... - __________________________________________________________ -1.6.4. force_rtp_proxy([flags [, ip_address]]) +1.6.4. force_rtp_proxy([flags [, ip_address]]) Rewrites SDP body to ensure that media is passed through an RTP proxy. It can have optional parameters to force additional @@ -466,7 +451,6 @@ force_rtp_proxy(); the one in SDP. Meaning of the parameters is as follows: - * flags - flags to turn on some features. + a - flags that UA from which message is received doesn't support symmetric RTP. @@ -505,28 +489,26 @@ force_rtp_proxy(); This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-18. force_rtp_proxy usage + Example 1.18. force_rtp_proxy usage ... if (search("User-Agent: Cisco ATA.*") {force_rtp_proxy();}; if (src_ip=1.2.3.4) {force_rtp_proxy("i");}; if (search("User-Agent: Cisco ATA.*") {force_rtp_proxy("","1.2.3.4");}; ... - __________________________________________________________ -1.6.5. unforce_rtp_proxy() +1.6.5. unforce_rtp_proxy() Tears down the RTPProxy session for the current call. This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-19. unforce_rtp_proxy usage + Example 1.19. unforce_rtp_proxy usage ... unforce_rtp_proxy(); ... - __________________________________________________________ -1.6.6. add_rcv_param([flag]), +1.6.6. add_rcv_param([flag]), Add received parameter to Contact header fields or Contact URI. The parameter will contain URI created from the source IP, @@ -536,7 +518,6 @@ unforce_rtp_proxy(); using t_replicate function to another registrar. Meaning of the parameters is as follows: - * flag - flags to indicate if the parameter should be added to Contact URI or Contact header. If the flag is non-zero, the parameter will be added to the Contact URI. If not used @@ -545,15 +526,14 @@ unforce_rtp_proxy(); This function can be used from REQUEST_ROUTE. - Example 1-20. add_rcv_paramer usage + Example 1.20. add_rcv_paramer usage ... add_rcv_param(); # add the parameter to the Contact header .... add_rcv_param("1"); # add the paramter to the Contact URI ... - __________________________________________________________ -1.6.7. fix_nated_register() +1.6.7. fix_nated_register() The function creates a URI consisting of the source IP, port, and protocol and stores the URI in an Attribute-Value-Pair. The @@ -562,19 +542,17 @@ add_rcv_param("1"); # add the paramter to the Contact URI This function can be used from REQUEST_ROUTE. - Example 1-21. fix_nated_register usage + Example 1.21. fix_nated_register usage ... fix_nated_register(); ... - __________________________________________________________ -1.6.8. nat_uac_test(flags) +1.6.8. nat_uac_test(flags) Tries to guess if client's request originated behind a nat. The parameter determines what heuristics is used. Meaning of the flags is as follows: - * 1 - Contact header field is searched for occurrence of RFC1918 addresses. * 2 - the "received" test is used: address in Via is compared @@ -590,24 +568,22 @@ fix_nated_register(); This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - __________________________________________________________ -1.6.9. start_recording() +1.6.9. start_recording() This command will send a signal to the RTP-Proxy to record the RTP stream on the RTP-Proxy. This function can be used from REQUEST_ROUTE and ONREPLY_ROUTE. - Example 1-22. start_recording usage + Example 1.22. start_recording usage ... start_recording(); ... - __________________________________________________________ -1.6.10. MI Commands +1.7. MI Commands -1.6.10.1. nh_enable_ping +1.7.1. nh_enable_ping Enables natping if parameter value greater than 0. Disables natping if parameter value is 0. @@ -615,13 +591,12 @@ start_recording(); The function takes only one parameter - a number in decimal format. - Example 1-23. nh_enable_ping usage + Example 1.23. nh_enable_ping usage ... $ openserctl fifo nh_enable_ping 1 ... - __________________________________________________________ -1.6.10.2. nh_enable_rtpp +1.7.2. nh_enable_rtpp Enables a rtp proxy if parameter value is greater than 0. Disables it if a zero value is given. @@ -634,59 +609,59 @@ $ openserctl fifo nh_enable_ping 1 NOTE: if a rtpproxy is defined multiple times (in the same or diferente sete), all its instances will be enables/disabled. - Example 1-24. nh_enable_rtpp usage + Example 1.24. nh_enable_rtpp usage ... $ openserctl fifo nh_enable_rtpp udp:192.168.2.133:8081 0 ... - __________________________________________________________ -1.6.10.3. nh_show_rtpp +1.7.3. nh_show_rtpp Displays all the rtp proxies and their information: set and status (disabled or not, weight and recheck_ticks). No parameter. - Example 1-25. nh_show_rtpp usage + Example 1.25. nh_show_rtpp usage ... $ openserctl fifo nh_show_rtpp ... - __________________________________________________________ Chapter 2. Frequently Asked Questions - 2.1. What happend with "rtpproxy_disable" parameter? - 2.2. Where can I find more about OpenSER? - 2.3. Where can I post a question about this module? - 2.4. How can I report a bug? + 2.1. + + What happend with "rtpproxy_disable" parameter? + + It was removed as it became obsolete - now "rtpproxy_sock" can + take empty value to disable the rtpproxy functionality. - 2.1. What happend with "rtpproxy_disable" parameter? + 2.2. - It was removed as it became obsolete - now "rtpproxy_sock" can - take empty value to disable the rtpproxy functionality. + Where can I find more about OpenSER? - 2.2. Where can I find more about OpenSER? + Take a look at http://openser.org/. - Take a look at http://openser.org/. + 2.3. - 2.3. Where can I post a question about this module? + Where can I post a question about this module? - First at all check if your question was already answered on one - of our mailing lists: + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel - * User Mailing List - - http://openser.org/cgi-bin/mailman/listinfo/users - * Developer Mailing List - - http://openser.org/cgi-bin/mailman/listinfo/devel + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . - E-mails regarding any stable OpenSER release should be sent to - and e-mails regarding development versions - should be sent to . + If you want to keep the mail private, send it to + . - If you want to keep the mail private, send it to - . + 2.4. - 2.4. How can I report a bug? + How can I report a bug? - Please follow the guidelines provided at: - http://sourceforge.net/tracker/?group_id=139143. + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/nathelper/doc/nathelper.sgml b/modules_k/nathelper/doc/nathelper.xml similarity index 70% rename from modules_k/nathelper/doc/nathelper.sgml rename to modules_k/nathelper/doc/nathelper.xml index dedc5b346..5c666433c 100644 --- a/modules_k/nathelper/doc/nathelper.sgml +++ b/modules_k/nathelper/doc/nathelper.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -48,8 +50,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/nathelper/doc/nathelper_user.sgml b/modules_k/nathelper/doc/nathelper_admin.xml similarity index 99% rename from modules_k/nathelper/doc/nathelper_user.sgml rename to modules_k/nathelper/doc/nathelper_admin.xml index fcdfdd390..2ca03b823 100644 --- a/modules_k/nathelper/doc/nathelper_user.sgml +++ b/modules_k/nathelper/doc/nathelper_admin.xml @@ -502,17 +502,17 @@ if (search("User-Agent: Cisco ATA.*") {fix_nated_contact();}; 0x02 - rewrite media &ip; address (c=) with source address of the message or the provided IP address (the provide IP address take - precedence over the source address). + precedence over the source address). 0x04 - adds - a=nortpproxy:yes SDP line; + a=nortpproxy:yes SDP line; 0x08 - rewrite IP from origin description (o=) with source address of the message or the provided IP address (the provide IP address take - precedence over the source address). + precedence over the source address). @@ -523,6 +523,7 @@ if (search("User-Agent: Cisco ATA.*") {fix_nated_contact();}; used, you need to use 0x02 or 0x08 flags, otherwise it will have no effect. + This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, @@ -786,6 +787,7 @@ start_recording();
+
@@ -856,7 +858,7 @@ $ openserctl fifo nh_show_rtpp
- + diff --git a/modules_k/nathelper/doc/nathelper_faq.sgml b/modules_k/nathelper/doc/nathelper_faq.xml similarity index 100% rename from modules_k/nathelper/doc/nathelper_faq.sgml rename to modules_k/nathelper/doc/nathelper_faq.xml diff --git a/modules_k/options/README b/modules_k/options/README index 2da5665da..80aca2d1f 100644 --- a/modules_k/options/README +++ b/modules_k/options/README @@ -9,9 +9,13 @@ Edited by Nils Ohlmeier Copyright © 2003 FhG Fokus + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -31,13 +35,15 @@ Nils Ohlmeier 1.4.1. options_reply() + 2. Frequently Asked Questions + List of Examples - 1-1. Set accept parameter - 1-2. Set accept_encoding parameter - 1-3. Set accept_language parameter - 1-4. Set support parameter - 1-5. options_reply usage - __________________________________________________________ + + 1.1. Set accept parameter + 1.2. Set accept_encoding parameter + 1.3. Set accept_language parameter + 1.4. Set support parameter + 1.5. options_reply usage Chapter 1. User's Guide @@ -53,24 +59,19 @@ Chapter 1. User's Guide easiest way for is-alive-tests on the SIP (application) layer from remote (similar to ICMP echo requests, also known as "ping", on the network layer). - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * sl -- Stateless replies. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -83,11 +84,10 @@ Chapter 1. User's Guide Default value is "*/*". - Example 1-1. Set accept parameter + Example 1.1. Set accept parameter ... modparam("options", "accept", "application/*") ... - __________________________________________________________ 1.3.2. accept_encoding (string) @@ -97,11 +97,10 @@ modparam("options", "accept", "application/*") Default value is "". - Example 1-2. Set accept_encoding parameter + Example 1.2. Set accept_encoding parameter ... modparam("options", "accept_encoding", "gzip") ... - __________________________________________________________ 1.3.3. accept_language (string) @@ -113,11 +112,10 @@ modparam("options", "accept_encoding", "gzip") Default value is "en". - Example 1-3. Set accept_language parameter + Example 1.3. Set accept_language parameter ... modparam("options", "accept_language", "de") ... - __________________________________________________________ 1.3.4. support (string) @@ -128,15 +126,14 @@ modparam("options", "accept_language", "de") Default value is "". - Example 1-4. Set support parameter + Example 1.4. Set support parameter ... modparam("options", "support", "100rel") ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. options_reply() +1.4.1. options_reply() This function checks if the request method is OPTIONS and if the request URI does not contain an username. If both is true @@ -156,7 +153,7 @@ modparam("options", "support", "100rel") This function can be used from REQUEST_ROUTE. - Example 1-5. options_reply usage + Example 1.5. options_reply usage ... if (uri==myself) { if ((method==OPTIONS) && (! uri=~"sip:.*[@]+.*")) { @@ -164,3 +161,36 @@ if (uri==myself) { } } ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/options/doc/options.sgml b/modules_k/options/doc/options.xml similarity index 64% rename from modules_k/options/doc/options.sgml rename to modules_k/options/doc/options.xml index aa51ef203..98dea8eb3 100644 --- a/modules_k/options/doc/options.sgml +++ b/modules_k/options/doc/options.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -37,8 +39,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/options/doc/options_user.sgml b/modules_k/options/doc/options_admin.xml similarity index 98% rename from modules_k/options/doc/options_user.sgml rename to modules_k/options/doc/options_admin.xml index cbb6b67cc..80bba7b28 100644 --- a/modules_k/options/doc/options_user.sgml +++ b/modules_k/options/doc/options_admin.xml @@ -177,7 +177,7 @@ modparam("options", "support", "100rel") ... if (uri==myself) { - if ((method==OPTIONS) && (! uri=~"sip:.*[@]+.*")) { + if ((method==OPTIONS) && (! uri=~"sip:.*[@]+.*")) { options_reply(); } } diff --git a/modules_k/osp/README b/modules_k/osp/README index 60e708ad4..4c340efaf 100644 --- a/modules_k/osp/README +++ b/modules_k/osp/README @@ -10,10 +10,18 @@ Edited by Di-Shi Sun + TransNexus, Inc. + + + Copyright © 2003 FhG FOKUS + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -50,34 +58,35 @@ Di-Shi Sun 1.4.8. reportospusage() 2. Developer's Guide + 3. Frequently Asked Questions List of Examples - 1-1. Setting the OSP servers - 1-2. Setting the device IP address - 1-3. Setting the token format - 1-4. Set authorization files - 1-5. Setting the OSP server weights - 1-6. Setting the device port - 1-7. Setting the hardware support - 1-8. Setting the ssl lifetime - 1-9. Setting the persistence - 1-10. Setting the retry delay - 1-11. Setting the retry limit - 1-12. Setting the timeout - 1-13. Setting the number of destination - 1-14. Instructing the module to validate call id - 1-15. Instructing the module to use calling number in + + 1.1. Setting the OSP servers + 1.2. Setting the device IP address + 1.3. Setting the token format + 1.4. Set authorization files + 1.5. Setting the OSP server weights + 1.6. Setting the device port + 1.7. Setting the hardware support + 1.8. Setting the ssl lifetime + 1.9. Setting the persistence + 1.10. Setting the retry delay + 1.11. Setting the retry limit + 1.12. Setting the timeout + 1.13. Setting the number of destination + 1.14. Instructing the module to validate call id + 1.15. Instructing the module to use calling number in Remote-Party-ID - 1-16. checkospheader usage - 1-17. validateospheader usage - 1-18. requestosprouting usage - 1-19. checkosproute usage - 1-20. prepareosproute usage - 1-21. checkcallingtranslation usage - 1-22. prepareallosproute usage - 1-23. reportospusage usage - __________________________________________________________ + 1.16. checkospheader usage + 1.17. validateospheader usage + 1.18. requestosprouting usage + 1.19. checkosproute usage + 1.20. prepareosproute usage + 1.21. checkcallingtranslation usage + 1.22. prepareallosproute usage + 1.23. reportospusage usage Chapter 1. User's Guide @@ -86,18 +95,15 @@ Chapter 1. User's Guide The OSP module enables OpenSER to support secure, multi-lateral peering using the OSP standard defined by ETSI (TS 101 321 V4.1.1). This module will enable your OpenSER to: - * Send a peering authorization request to a peering server. * Validate a digitally signed peering authorization token received in a SIP INVITE message. * Report usage information to a peering server. - __________________________________________________________ 1.2. Dependencies The OSP module depends on the following modules which must be loaded before the OSP module. - * sl -- stateless replier * tm -- stateful processing * rr -- Record-Route/Route operation @@ -109,7 +115,6 @@ Chapter 1. User's Guide instructions on building OpenSER with the OSP Toolkit, see http://www.transnexus.com/White%20Papers/Multi-Lateral_Peer ing_with_OpenSER_V1.1.1pdf - __________________________________________________________ 1.3. Exported Parameters @@ -121,7 +126,6 @@ Chapter 1. User's Guide Others are required only if there are more than one peering servers. Each peering server address takes the form of a standard URL, and consists of up to four components: - * An optional indication of the protocol to be used for communicating with the peering server. Both HTTP and HTTP secured with SSL/TLS are supported and are indicated by @@ -139,10 +143,9 @@ Chapter 1. User's Guide server. This component is not optional and must be included. - Example 1-1. Setting the OSP servers + Example 1.1. Setting the OSP servers modparam("osp","sp1_uri","http://osptestserver.transnexus.com:1080/osp") modparam("osp","sp2_uri","https://[1.2.3.4]:1443/osp") - __________________________________________________________ 1.3.2. device_ip @@ -151,9 +154,8 @@ modparam("osp","sp2_uri","https://[1.2.3.4]:1443/osp") request message (as SourceAlternate type=transport). The IP address must be in brackets as shown in the example below. - Example 1-2. Setting the device IP address + Example 1.2. Setting the device IP address modparam("osp","device_ip","[1.1.1.1]") - __________________________________________________________ 1.3.3. token_format @@ -174,9 +176,8 @@ modparam("osp","device_ip","[1.1.1.1]") 2 - Validate both signed and unsigned tokens are allowed. Calls with valid tokens are allowed. - Example 1-3. Setting the token format + Example 1.3. Setting the token format modparam("osp","token_format",2) - __________________________________________________________ 1.3.4. private_key, local_certificate, ca_certificates @@ -191,7 +192,7 @@ modparam("osp","token_format",2) copied to the expected file location or the parameters below may be changed. - Example 1-4. Set authorization files + Example 1.4. Set authorization files If the default CFG_DIR value was used at compile time, the files will be loaded from: @@ -199,7 +200,6 @@ modparam("osp","private_key","/usr/local/etc/openser/pkey.pem") modparam("osp","local_certificate","/usr/local/etc/openser/localcert.pem ") modparam("osp","ca_certificates","/usr/local/etc/openser/cacert.pem") - __________________________________________________________ 1.3.5. sp1_weight, sp2_weight, ..., sp16_weight @@ -214,9 +214,8 @@ modparam("osp","ca_certificates","/usr/local/etc/openser/cacert.pem") a non-zero sp_weight to the back-up server. The default values for sp1_weight and sp2_weight are 1000. - Example 1-5. Setting the OSP server weights + Example 1.5. Setting the OSP server weights modparam("osp","sp1_weight",1000) - __________________________________________________________ 1.3.6. device_port @@ -230,9 +229,8 @@ modparam("osp","sp1_weight",1000) policies based on different SIP proxies. This parameter has not been implemented yet. - Example 1-6. Setting the device port + Example 1.6. Setting the device port modparam("osp","device_port","5060") - __________________________________________________________ 1.3.7. enable_crypto_hardware_support @@ -242,9 +240,8 @@ modparam("osp","device_port","5060") present). If crypto hardware is used, the value should be set to 1. - Example 1-7. Setting the hardware support + Example 1.7. Setting the hardware support modparam("osp","enable_crypto_hardware_support",0) - __________________________________________________________ 1.3.8. ssl_lifetime @@ -255,9 +252,8 @@ modparam("osp","enable_crypto_hardware_support",0) when this time limit expires. This is an optional field with default value is 200 seconds. - Example 1-8. Setting the ssl lifetime + Example 1.8. Setting the ssl lifetime modparam("osp","ssl_lifetime",200) - __________________________________________________________ 1.3.9. persistence @@ -267,9 +263,8 @@ modparam("osp","ssl_lifetime",200) maintain the connection for this time period in anticipation of future communication exchanges to the same peering server. - Example 1-9. Setting the persistence + Example 1.9. Setting the persistence modparam("osp","persistence",1000) - __________________________________________________________ 1.3.10. retry_delay @@ -280,9 +275,8 @@ modparam("osp","persistence",1000) attempts. This is an optional field with default value is 1 second. - Example 1-10. Setting the retry delay + Example 1.10. Setting the retry delay modparam("osp","retry_delay",1) - __________________________________________________________ 1.3.11. retry_limit @@ -295,9 +289,8 @@ modparam("osp","retry_delay",1) result in a total of two connection attempts to every peering server. The default value is 2. - Example 1-11. Setting the retry limit + Example 1.11. Setting the retry limit modparam("osp","retry_limit",2) - __________________________________________________________ 1.3.12. timeout @@ -307,9 +300,8 @@ modparam("osp","retry_limit",2) connection is aborted and the OSP Module attempts to contact the next peering server. The default value is 10 seconds. - Example 1-12. Setting the timeout + Example 1.12. Setting the timeout modparam("osp","timeout",10) - __________________________________________________________ 1.3.13. max_destinations @@ -317,9 +309,8 @@ modparam("osp","timeout",10) number of destinations that OpenSER requests the peering server to return in a peering response. The default value is 5. - Example 1-13. Setting the number of destination + Example 1.13. Setting the number of destination modparam("osp","max_destinations",5) - __________________________________________________________ 1.3.14. validate_call_id @@ -331,9 +322,8 @@ modparam("osp","max_destinations",5) to 0, the OSP Module will not validate the call id in the peering token. The default value is 1. - Example 1-14. Instructing the module to validate call id + Example 1.14. Instructing the module to validate call id modparam("osp","validate_call_id",1) - __________________________________________________________ 1.3.15. use_rpid_for_calling_number @@ -345,10 +335,9 @@ modparam("osp","validate_call_id",1) is set to 0, the OSP Module will use the calling number in the From header of the INVITE message. The default value is 1. - Example 1-15. Instructing the module to use calling number in + Example 1.15. Instructing the module to use calling number in Remote-Party-ID modparam("osp","use_rpid_calling_number",1) - __________________________________________________________ 1.4. Exported Functions @@ -359,7 +348,7 @@ modparam("osp","use_rpid_calling_number",1) This function can be used from REQUEST_ROUTE and FAILURE_ROUTE. - Example 1-16. checkospheader usage + Example 1.16. checkospheader usage ... if (checkospheader()) { log(1,"OSP header field found.\n"); @@ -367,7 +356,6 @@ if (checkospheader()) { log(1,"no OSP header field present\n"); }; ... - __________________________________________________________ 1.4.2. validateospheader() @@ -379,7 +367,7 @@ if (checkospheader()) { This function can be used from REQUEST_ROUTE and FAILURE_ROUTE. - Example 1-17. validateospheader usage + Example 1.17. validateospheader usage ... if (validateospheader()) { log(1,"valid OSP header found\n"); @@ -387,7 +375,6 @@ if (validateospheader()) { log(1,"OSP header not found, invalid or expired\n"); }; ... - __________________________________________________________ 1.4.3. requestosprouting() @@ -409,7 +396,7 @@ if (validateospheader()) { This function can be used from REQUEST_ROUTE and FAILURE_ROUTE. - Example 1-18. requestosprouting usage + Example 1.18. requestosprouting usage ... if (requestosprouting()) { log(1,"successfully queried OSP server, now relaying call\n"); @@ -417,7 +404,6 @@ if (requestosprouting()) { log(1,"Authorization request was rejected from OSP server\n"); }; ... - __________________________________________________________ 1.4.4. checkosproute() @@ -426,7 +412,7 @@ if (requestosprouting()) { This function can be used from REQUEST_ROUTE and FAILURE_ROUTE. - Example 1-19. checkosproute usage + Example 1.19. checkosproute usage ... if (checkosproute()) { log(1,"There is at least one route for the call\n"); @@ -434,7 +420,6 @@ if (checkosproute()) { log(1,"There is not any route for the call\n"); }; ... - __________________________________________________________ 1.4.5. prepareosproute() @@ -450,7 +435,7 @@ if (checkosproute()) { This function can be used from BRANCH_ROUTE. - Example 1-20. prepareosproute usage + Example 1.20. prepareosproute usage ... if (prepareosproute()) { log(1,"successfully prepared the route, now relaying call\n"); @@ -458,7 +443,6 @@ if (prepareosproute()) { log(1,"could not prepare the route, there is not route\n"); }; ... - __________________________________________________________ 1.4.6. checkcallingtranslation() @@ -473,7 +457,7 @@ if (prepareosproute()) { This function can be used from BRANCH_ROUTE. - Example 1-21. checkcallingtranslation usage + Example 1.21. checkcallingtranslation usage ... if (checkcallingtranslation()) { # Remove the Remote_Party-ID from the received message @@ -484,7 +468,6 @@ if (checkcallingtranslation()) { append_rpid_hf(); } ... - __________________________________________________________ 1.4.7. prepareallosproute() @@ -496,7 +479,7 @@ if (checkcallingtranslation()) { This function can be used from REQUEST_ROUTE and FAILURE_ROUTE. - Example 1-22. prepareallosproute usage + Example 1.22. prepareallosproute usage ... if (prepareallosproute()) { log(1,"Routes are prepared, now either forking or redirecting the call @@ -505,7 +488,6 @@ if (prepareallosproute()) { log(1,"Could not prepare the routes. No destination available\n"); }; ... - __________________________________________________________ 1.4.8. reportospusage() @@ -519,13 +501,12 @@ if (prepareallosproute()) { message. Meaning of the parameter is as follows: - * "0" - Source device releases the call. * "1" - Destination device releases the call. This function can be used from REQUEST_ROUTE. - Example 1-23. reportospusage usage + Example 1.23. reportospusage usage ... if (is_direction("downstream")) { log(1,"This BYE message is from SOURCE\n"); @@ -539,9 +520,41 @@ if (is_direction("downstream")) { } } ... - __________________________________________________________ Chapter 2. Developer's Guide The functions of the OSP modules are not used by other OpenSER modules. + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/osp/doc/osp.sgml b/modules_k/osp/doc/osp.xml similarity index 67% rename from modules_k/osp/doc/osp.sgml rename to modules_k/osp/doc/osp.xml index 9aa7f9a6f..e9a2fda34 100644 --- a/modules_k/osp/doc/osp.sgml +++ b/modules_k/osp/doc/osp.xml @@ -1,11 +1,13 @@ - + - - + + + - + %docentities; ]> @@ -38,8 +40,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/osp/doc/osp_user.sgml b/modules_k/osp/doc/osp_admin.xml similarity index 100% rename from modules_k/osp/doc/osp_user.sgml rename to modules_k/osp/doc/osp_admin.xml diff --git a/modules_k/osp/doc/osp_devel.sgml b/modules_k/osp/doc/osp_devel.xml similarity index 100% rename from modules_k/osp/doc/osp_devel.sgml rename to modules_k/osp/doc/osp_devel.xml diff --git a/modules_k/path/README b/modules_k/path/README index 3130aab2c..663a5fb09 100644 --- a/modules_k/path/README +++ b/modules_k/path/README @@ -9,9 +9,13 @@ Edited by Andreas Granig Copyright © 2006 Inode GmbH + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -35,13 +39,15 @@ Andreas Granig 1.4.3. add_path_received() 1.4.4. add_path_received(user) + 2. Frequently Asked Questions + List of Examples - 1-1. Set use_received parameter - 1-2. add_path usage - 1-3. add_path(user) usage - 1-4. add_path_received() usage - 1-5. add_path_received(user) usage - __________________________________________________________ + + 1.1. Set use_received parameter + 1.2. add_path usage + 1.3. add_path(user) usage + 1.4. add_path_received() usage + 1.5. add_path_received(user) usage Chapter 1. User's Guide @@ -54,7 +60,6 @@ Chapter 1. User's Guide registration to the next hop. It also provides a mechanism for evaluating this parameter in subsequent requests and to set the destination URI according to it. - __________________________________________________________ 1.1.1. Path insertion for registrations @@ -62,7 +67,6 @@ Chapter 1. User's Guide the "path" module can be used at the intermediate proxy P1 to insert a Path header into the message before forwarding it to the registrar REG. Two functions can be used to achieve this: - * add_path(...) adds a Path header in the form of "Path: " to the message using the address of the outgoing interface. A port is only added if it's not the @@ -78,7 +82,6 @@ Chapter 1. User's Guide to pass the NAT'ed address to the registrar. If the function is called with a username, it's included in the Path URI too. - __________________________________________________________ 1.1.2. Outbound routing to NAT'ed UACs @@ -92,25 +95,20 @@ Chapter 1. User's Guide instead of the one propagated in the Route URI for tunneling through NAT. This behaviour can be activated by setting the module parameter "use_received". - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * The "rr" module is needed for outbound routing according to the "received" parameter. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -121,15 +119,14 @@ Chapter 1. User's Guide Default value is 0. - Example 1-1. Set use_received parameter + Example 1.1. Set use_received parameter ... modparam("path", "use_received", 1) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. add_path() +1.4.1. add_path() This function is used to insert a Path header in the form "Path: ", where "1.2.3.4" is the address of the @@ -137,36 +134,33 @@ modparam("path", "use_received", 1) This function can be used from REQUEST_ROUTE. - Example 1-2. add_path usage + Example 1.2. add_path usage ... if (!add_path()) { sl_send_reply("503", "Internal Path Error"); ... }; ... - __________________________________________________________ -1.4.2. add_path(user) +1.4.2. add_path(user) This function adds a Path header in the form "Path: ". Meaning of the parameters is as follows: - * user - The username to be inserted as user part. This function can be used from REQUEST_ROUTE. - Example 1-3. add_path(user) usage + Example 1.3. add_path(user) usage ... if (!add_path("loadbalancer")) { sl_send_reply("503", "Internal Path Error"); ... }; ... - __________________________________________________________ -1.4.3. add_path_received() +1.4.3. add_path_received() This function adds a Path header in the form "Path: ", setting it's own @@ -175,16 +169,15 @@ if (!add_path("loadbalancer")) { This function can be used from REQUEST_ROUTE. - Example 1-4. add_path_received() usage + Example 1.4. add_path_received() usage ... if (!add_path_received()) { sl_send_reply("503", "Internal Path Error"); ... }; ... - __________________________________________________________ -1.4.4. add_path_received(user) +1.4.4. add_path_received(user) This function adds a Path header in the form "Path: ", setting @@ -194,10 +187,43 @@ if (!add_path_received()) { This function can be used from REQUEST_ROUTE. - Example 1-5. add_path_received(user) usage + Example 1.5. add_path_received(user) usage ... if (!add_path_received("inbound")) { sl_send_reply("503", "Internal Path Error"); ... }; ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/path/doc/path.sgml b/modules_k/path/doc/path.xml similarity index 65% rename from modules_k/path/doc/path.sgml rename to modules_k/path/doc/path.xml index da19e1574..7e12572da 100644 --- a/modules_k/path/doc/path.sgml +++ b/modules_k/path/doc/path.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -37,8 +39,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/path/doc/path_user.sgml b/modules_k/path/doc/path_admin.xml similarity index 100% rename from modules_k/path/doc/path_user.sgml rename to modules_k/path/doc/path_admin.xml diff --git a/modules_k/pdt/README b/modules_k/pdt/README index c08501a28..61783b49a 100644 --- a/modules_k/pdt/README +++ b/modules_k/pdt/README @@ -13,9 +13,13 @@ Elena-Ramona Modroiu Copyright © 2004 voice-system.ro Copyright © 2008 Elena-Ramona Modroiu + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -40,6 +44,7 @@ Elena-Ramona Modroiu 1.4. Exported Functions 1.4.1. prefix2domain(rewrite_mode, multidomain_mode) + 1.4.2. prefix2domain(rewrite_mode) 1.4.3. prefix2domain() @@ -50,22 +55,24 @@ Elena-Ramona Modroiu 1.5.3. pdt_list 1.5.4. pdt_reload - 1.6. Installation & Running + 1.6. Installation and Running + + 2. Frequently Asked Questions List of Examples - 1-1. prefix-domain translation - 1-2. Set db_url parameter - 1-3. Set db_table parameter - 1-4. Set sdomain_column parameter - 1-5. Set prefix_column parameter - 1-6. Set domain_column parameter - 1-7. Set prefix parameter - 1-8. Set hsize_2pow parameter - 1-9. Set fetch_rows parameter - 1-10. Set char_list parameter - 1-11. Set check_domain parameter - 1-12. prefix2domain usage - __________________________________________________________ + + 1.1. prefix-domain translation + 1.2. Set db_url parameter + 1.3. Set db_table parameter + 1.4. Set sdomain_column parameter + 1.5. Set prefix_column parameter + 1.6. Set domain_column parameter + 1.7. Set prefix parameter + 1.8. Set hsize_2pow parameter + 1.9. Set fetch_rows parameter + 1.10. Set char_list parameter + 1.11. Set check_domain parameter + 1.12. prefix2domain usage Chapter 1. User's Guide @@ -87,7 +94,7 @@ Chapter 1. User's Guide <:password>@... - Example 1-1. prefix-domain translation + Example 1.1. prefix-domain translation prefix=123, domain(FROM)=siphub.org entry in database: @@ -103,30 +110,24 @@ sip:12391001@mydomain.com => sip:91001@alpha.org not be used to look up the domain (the classic example, 00 used for international calls, then follows the country prefix). For more information on this, see 'prefix' parameter. - * A sample config file and the MySQL script to create the database needed by PDT are located in './doc/'. * Sample shell scripts to manage prefix-domain pairs are also located in './doc/' (pdt_fifo_add.sh, pdt_fifo_delete.sh, pdt_fifo_list.sh). - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * A OpenSER database module (e.g., mysql, dbtext). - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -136,11 +137,10 @@ sip:12391001@mydomain.com => sip:91001@alpha.org Default value is "mysql://openser:openserrw@localhost/openser". - Example 1-2. Set db_url parameter + Example 1.2. Set db_url parameter ... modparam("pdt", "db_url", "dbdriver://username:password@dbhost/dbname") ... - __________________________________________________________ 1.3.2. db_table (string) @@ -148,11 +148,10 @@ modparam("pdt", "db_url", "dbdriver://username:password@dbhost/dbname") Default value is "pdt". - Example 1-3. Set db_table parameter + Example 1.3. Set db_table parameter ... modparam("pdt", "db_table", "pdt") ... - __________________________________________________________ 1.3.3. sdomain_column (string) @@ -160,11 +159,10 @@ modparam("pdt", "db_table", "pdt") Default value is "sdomain". - Example 1-4. Set sdomain_column parameter + Example 1.4. Set sdomain_column parameter ... modparam("pdt", "domain_column", "source_domain") ... - __________________________________________________________ 1.3.4. prefix_column (string) @@ -172,11 +170,10 @@ modparam("pdt", "domain_column", "source_domain") Default value is "prefix". - Example 1-5. Set prefix_column parameter + Example 1.5. Set prefix_column parameter ... modparam("pdt", "prefix_column", "prefix") ... - __________________________________________________________ 1.3.5. domain_column (string) @@ -184,11 +181,10 @@ modparam("pdt", "prefix_column", "prefix") Default value is "domain". - Example 1-6. Set domain_column parameter + Example 1.6. Set domain_column parameter ... modparam("pdt", "domain_column", "hostname") ... - __________________________________________________________ 1.3.6. prefix (string) @@ -200,11 +196,10 @@ modparam("pdt", "domain_column", "hostname") Default value is NULL. - Example 1-7. Set prefix parameter + Example 1.7. Set prefix parameter ... modparam("pdt", "prefix", "00") ... - __________________________________________________________ 1.3.7. hsize_2pow (integer) @@ -212,11 +207,10 @@ modparam("pdt", "prefix", "00") Default value is 4. - Example 1-8. Set hsize_2pow parameter + Example 1.8. Set hsize_2pow parameter ... modparam("pdt", "hsize_2pow", 4) ... - __________________________________________________________ 1.3.8. fetch_rows (integer) @@ -224,11 +218,10 @@ modparam("pdt", "hsize_2pow", 4) Default value is 1000. - Example 1-9. Set fetch_rows parameter + Example 1.9. Set fetch_rows parameter ... modparam("pdt", "fetch_rows", 4000) ... - __________________________________________________________ 1.3.9. char_list (string) @@ -236,11 +229,10 @@ modparam("pdt", "fetch_rows", 4000) Default value is "0123456789". - Example 1-10. Set char_list parameter + Example 1.10. Set char_list parameter ... modparam("pdt", "char_list", "0123456789*+") ... - __________________________________________________________ 1.3.10. check_domain (integer) @@ -249,15 +241,14 @@ modparam("pdt", "char_list", "0123456789*+") Default value is 1. - Example 1-11. Set check_domain parameter + Example 1.11. Set check_domain parameter ... modparam("pdt", "check_domain", 0) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. prefix2domain(rewrite_mode, multidomain_mode) +1.4.1. prefix2domain(rewrite_mode, multidomain_mode) Build a new URI if it is necessary. Returns 1 when the translation was made or there was nothing to translate (user @@ -284,7 +275,6 @@ modparam("pdt", "check_domain", 0) The "multidomain_mode" parameter specifies the kind of multidomain support to use. There are three possible values: - * 0 : Translation of URI regardless of source domain. * 1 : Translation of URI using as source domain the domain in From-URI. @@ -294,13 +284,12 @@ modparam("pdt", "check_domain", 0) This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-12. prefix2domain usage + Example 1.12. prefix2domain usage ... prefix2domain("2", "2"); ... - __________________________________________________________ -1.4.2. prefix2domain(rewrite_mode) +1.4.2. prefix2domain(rewrite_mode) The same as prefix2domain(rewrite_mode, "0"), that is without multidomain support, translation of URI being done regardless @@ -308,15 +297,13 @@ prefix2domain("2", "2"); ... prefix2domain("2"); ... - __________________________________________________________ -1.4.3. prefix2domain() +1.4.3. prefix2domain() The same as prefix2domain("0", "0"). ... prefix2domain(); ... - __________________________________________________________ 1.5. Exported MI Functions @@ -325,16 +312,14 @@ prefix2domain(); FIFO commands. All changes made via these commands are applied to database, while the database is loaded only at OpenSER start up time. - __________________________________________________________ -1.5.1. pdt_add +1.5.1. pdt_add Adds a new sdomain-prefix-domain entry. Name: pdt_add Parameters: - * _sdomain_ : source domain * _prefix_: prefix * _domain_: domain corresponding to a pair of source domain @@ -346,16 +331,14 @@ prefix2domain(); _prefix_ _domain_ _empty_line_ - __________________________________________________________ -1.5.2. pdt_delete +1.5.2. pdt_delete Removes a sdomain-prefix-domain entry. Name: pdt_delete Parameters: - * _sdomain_ : a source domain * _domain_: a domain associated via a prefix with the source domain @@ -365,16 +348,14 @@ prefix2domain(); _sdomain_ _domain_ _empty_line_ - __________________________________________________________ -1.5.3. pdt_list +1.5.3. pdt_list Produces a listing of the entries prefixes/domains/sdomains. Name: pdt_list Parameters: - * _sdomain_ : a source domain value. * _prefix_ : a prefix value * _domain_: a domain value @@ -392,7 +373,6 @@ prefix2domain(); _empty_line_ Examples: - * "pdt_list siph 2 ." : Lists the entries where sdomain is starting with 'siph', prefix is starting with '2' and domain is anything @@ -402,27 +382,57 @@ prefix2domain(); * "pdt_list . 2 open" : Lists the entries where sdomain is anything, prefix starts with '2' and domain starts with 'open'. - __________________________________________________________ -1.5.4. pdt_reload +1.5.4. pdt_reload Reload all sdomain-prefix-domain records from database. Name: pdt_reload Parameters: - * none MI FIFO Command Format: :pdt_reload:_reply_fifo_file_ _empty_line_ - __________________________________________________________ -1.6. Installation & Running +1.6. Installation and Running Make sure you have created the table needed by this module. Example shell scripts for MI FIFO commands are placed in './doc/' (pdt_fifo_add.sh, pdt_fifo_delete.sh, pdt_fifo_list.sh). + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/pdt/doc/pdt.sgml b/modules_k/pdt/doc/pdt.xml similarity index 69% rename from modules_k/pdt/doc/pdt.sgml rename to modules_k/pdt/doc/pdt.xml index 630022883..93e882951 100644 --- a/modules_k/pdt/doc/pdt.sgml +++ b/modules_k/pdt/doc/pdt.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -45,8 +47,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/pdt/doc/pdt_user.sgml b/modules_k/pdt/doc/pdt_admin.xml similarity index 99% rename from modules_k/pdt/doc/pdt_user.sgml rename to modules_k/pdt/doc/pdt_admin.xml index 2d4eca601..0012cf89b 100644 --- a/modules_k/pdt/doc/pdt_user.sgml +++ b/modules_k/pdt/doc/pdt_admin.xml @@ -501,7 +501,7 @@ prefix2domain(); is anything, prefix starts with '2' and domain starts with 'open'.
- +
@@ -529,7 +529,7 @@ prefix2domain();
- Installation & Running + Installation and Running Make sure you have created the table needed by this module. Example shell scripts for MI FIFO commands are placed in './doc/' diff --git a/modules_k/perl/README b/modules_k/perl/README index d6b742d41..9041d720e 100644 --- a/modules_k/perl/README +++ b/modules_k/perl/README @@ -9,9 +9,13 @@ Edited by Bastian Friedrich Copyright © 2007 Collax GmbH + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -172,11 +176,11 @@ Bastian Friedrich 4. Frequently Asked Questions List of Examples - 1-1. Set filename parameter - 1-2. Set modpath parameter - 1-3. perl_exec_simple() usage - 1-4. perl_exec() usage - __________________________________________________________ + + 1.1. Set filename parameter + 1.2. Set modpath parameter + 1.3. perl_exec_simple() usage + 1.4. perl_exec() usage Chapter 1. User's Guide @@ -192,7 +196,6 @@ Chapter 1. User's Guide implemented based on regular expressions; accessing arbitrary data backends, e.g. LDAP or Berkeley DB files, is now extremely simple. - __________________________________________________________ 1.2. Installing the module @@ -215,7 +218,6 @@ Utils/typemap" The exact position of your (precompiled!) perl libraries depends on the setup of your environment. - __________________________________________________________ 1.3. Using the module @@ -232,31 +234,27 @@ if (perl_exec("ldap_alias")) { just as you would have done with the current alias_db module. - The functions you can use are listed in the L<"Exported - Functions"> section below. + The functions you can use are listed in the "Exported + Functions" section below. On the Perl side, there are a number of functions that let you read and modify the current SIP message, such as the RURI or the message flags. An introduction to the Perl interface and the full reference documentation can be found below. - __________________________________________________________ 1.4. Dependencies 1.4.1. OpenSER Modules The following modules must be loaded before this module: - * The "sl" module is needed for sending replies uppon fatal errors. All other modules can be accessed from the Perl module, though. - __________________________________________________________ 1.4.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * Perl 5.8.x or later Additionally, a number of perl modules should be installed. The @@ -270,7 +268,6 @@ if (perl_exec("ldap_alias")) { On current Debian systems, at least the following packages should be installed: - * perl * perl-base * perl-modules @@ -284,7 +281,6 @@ if (perl_exec("ldap_alias")) { On SuSE systems, at least the following packages should be installed: - * perl * perl-ldap * IPC::Shareable perl module from CPAN @@ -293,7 +289,6 @@ if (perl_exec("ldap_alias")) { to be fetched from CPAN. Consider using the program "cpan2rpm" - which, in turn, is available on CPAN. It creates RPM files from CPAN. - __________________________________________________________ 1.5. Exported Parameters @@ -305,11 +300,10 @@ if (perl_exec("ldap_alias")) { May not be empty! - Example 1-1. Set filename parameter + Example 1.1. Set filename parameter ... modparam("perl", "filename", "/home/john/openser/myperl.pl") ... - __________________________________________________________ 1.5.2. modpath (string) @@ -319,15 +313,14 @@ modparam("perl", "filename", "/home/john/openser/myperl.pl") from within your script. Using this module parameter is the standard behavior, though. - Example 1-2. Set modpath parameter + Example 1.2. Set modpath parameter ... modparam("perl", "modpath", "/usr/local/lib/openser/perl/") ... - __________________________________________________________ 1.6. Exported Functions -1.6.1. perl_exec_simple(func, [param]) +1.6.1. perl_exec_simple(func, [param]) Calls a perl function without passing it the current SIP message. May be used for very simple simple requests that do @@ -340,15 +333,14 @@ modparam("perl", "modpath", "/usr/local/lib/openser/perl/") This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, ONREPLY_ROUTE and BRANCH_ROUTE. - Example 1-3. perl_exec_simple() usage + Example 1.3. perl_exec_simple() usage ... if (method=="INVITE") { perl_exec_simple("dosomething", "on invite messages"); }; ... - __________________________________________________________ -1.6.2. perl_exec(func, [param]) +1.6.2. perl_exec(func, [param]) Calls a perl function with passing it the current SIP message. The SIP message is reflected by a Perl module that gives you @@ -361,13 +353,12 @@ if (method=="INVITE") { This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, ONREPLY_ROUTE and BRANCH_ROUTE. - Example 1-4. perl_exec() usage + Example 1.4. perl_exec() usage ... if (perl_exec("ldapalias")) { ... }; ... - __________________________________________________________ Chapter 2. OpenSER Perl API @@ -376,7 +367,6 @@ Chapter 2. OpenSER Perl API This module provides access to a limited number of OpenSER core functions. As the most interesting functions deal with SIP messages, they are located in the OpenSER::Message class below. - __________________________________________________________ 2.1.1. log(level,message) @@ -395,37 +385,31 @@ Chapter 2. OpenSER Perl API logarithm). Either explicitly import the function (via use OpenSER qw ( log );), or call it with its full name: OpenSER::log(L_INFO, "foobar"); - __________________________________________________________ 2.2. OpenSER::Message This package provides access functions for an OpenSER sip_msg structure and its sub-components. Through its means it is possible to fully configure alternative routing decisions. - __________________________________________________________ 2.2.1. getType() Returns one of the constants SIP_REQUEST, SIP_REPLY, SIP_INVALID stating the type of the current message. - __________________________________________________________ 2.2.2. getStatus() Returns the status code of the current Reply message. This function is invalid in Request context! - __________________________________________________________ 2.2.3. getReason() Returns the reason of the current Reply message. This function is invalid in Request context! - __________________________________________________________ 2.2.4. getVersion() Returns the version string of the current SIP message. - __________________________________________________________ 2.2.5. getRURI() @@ -438,7 +422,6 @@ OpenSER::log(L_INFO, "foobar"); receive a parsed structure. This function is valid in request messages only. - __________________________________________________________ 2.2.6. getMethod() @@ -448,7 +431,6 @@ OpenSER::log(L_INFO, "foobar"); my $method = $m->getMethod(); This function is valid in request messages only. - __________________________________________________________ 2.2.7. getFullHeader() @@ -457,17 +439,14 @@ OpenSER::log(L_INFO, "foobar"); your favorite MIME package. my $hdr = $m->getFullHeader(); - __________________________________________________________ 2.2.8. getBody() Returns the message body. - __________________________________________________________ 2.2.9. getMessage() Returns the whole message including headers and body. - __________________________________________________________ 2.2.10. getHeader(name) @@ -476,12 +455,10 @@ OpenSER::log(L_INFO, "foobar"); print $m->getHeader("To"); "John" - __________________________________________________________ 2.2.11. getHeaderNames() Returns an array of all header names. Duplicates possible! - __________________________________________________________ 2.2.12. moduleFunction(func,string1,string2) @@ -601,7 +578,6 @@ $m->xlog("L_INFO", "foo"); * radius_does_uri_exist * ul_* (All functions exported by the usrloc module for user access) * xmpp_send_message - __________________________________________________________ 2.2.13. log(level,message) (deprecated type) @@ -617,7 +593,6 @@ $m->xlog("L_INFO", "foo"); The logging function should be accessed via the OpenSER module variant. This one, located in OpenSER::Message, is deprecated. - __________________________________________________________ 2.2.14. rewrite_ruri(newruri) @@ -626,23 +601,19 @@ $m->xlog("L_INFO", "foo"); if ($m->getRURI() =~ m/\@somedomain.net/) { $m->rewrite_ruri("sip:dispatcher\@organization.net"); } - __________________________________________________________ 2.2.15. setFlag(flag) Sets a message flag. The constants as known from the C API may be used, when Constants.pm is included. - __________________________________________________________ 2.2.16. resetFlag(flag) Resets a message flag. - __________________________________________________________ 2.2.17. isFlagSet(flag) Returns whether a message flag is set or not. - __________________________________________________________ 2.2.18. pseudoVar(string) @@ -652,133 +623,107 @@ if ($m->getRURI() =~ m/\@somedomain.net/) { Please remember that you need to escape the '$' sign in perl strings! - __________________________________________________________ 2.2.19. append_branch(branch,qval) Append a branch to current message. - __________________________________________________________ 2.2.20. serialize_branches(clean_before) Serialize branches. - __________________________________________________________ 2.2.21. next_branches() Next branches. - __________________________________________________________ 2.2.22. getParsedRURI() Returns the current destination URI as an OpenSER::URI object. - __________________________________________________________ 2.3. OpenSER::URI This package provides functions for access to sip_uri structures. - __________________________________________________________ 2.3.1. user() Returns the user part of this URI. - __________________________________________________________ 2.3.2. host() Returns the host part of this URI. - __________________________________________________________ 2.3.3. passwd() Returns the passwd part of this URI. - __________________________________________________________ 2.3.4. port() Returns the port part of this URI. - __________________________________________________________ 2.3.5. params() Returns the params part of this URI. - __________________________________________________________ 2.3.6. headers() Returns the headers part of this URI. - __________________________________________________________ 2.3.7. transport() Returns the transport part of this URI. - __________________________________________________________ 2.3.8. ttl() Returns the ttl part of this URI. - __________________________________________________________ 2.3.9. user_param() Returns the user_param part of this URI. - __________________________________________________________ 2.3.10. maddr() Returns the maddr part of this URI. - __________________________________________________________ 2.3.11. method() Returns the method part of this URI. - __________________________________________________________ 2.3.12. lr() Returns the lr part of this URI. - __________________________________________________________ 2.3.13. r2() Returns the r2 part of this URI. - __________________________________________________________ 2.3.14. transport_val() Returns the transport_val part of this URI. - __________________________________________________________ 2.3.15. ttl_val() Returns the ttl_val part of this URI. - __________________________________________________________ 2.3.16. user_param_val() Returns the user_param_val part of this URI. - __________________________________________________________ 2.3.17. maddr_val() Returns the maddr_val part of this URI. - __________________________________________________________ 2.3.18. method_val() Returns the method_val part of this URI. - __________________________________________________________ 2.3.19. lr_val() Returns the lr_val part of this URI. - __________________________________________________________ 2.3.20. r2_val() Returns the r2_val part of this URI. - __________________________________________________________ 2.4. OpenSER::AVP @@ -789,7 +734,6 @@ if ($m->getRURI() =~ m/\@somedomain.net/) { Please note that these functions do NOT support the notation used in the configuration file, but directly work on strings or numbers. See documentation of add method below. - __________________________________________________________ 2.4.1. add(name,val) @@ -807,21 +751,18 @@ OpenSER::AVP::add(10, 10) with the name 10, while the latter will create a numerical AVP. You can modify/overwrite AVPs with this function. - __________________________________________________________ 2.4.2. get(name) get an OpenSER AVP: my $numavp = OpenSER::AVP::get(5); my $stravp = OpenSER::AVP::get("foo"); - __________________________________________________________ 2.4.3. destroy(name) Destroy an AVP. OpenSER::AVP::destroy(5); OpenSER::AVP::destroy("foo"); - __________________________________________________________ 2.5. OpenSER::Utils::PhoneNumbers @@ -876,16 +817,13 @@ $number = $phonenumbers->dialNumber("+497612034567"); 'countryCode' This module exports the following functions when useed: - __________________________________________________________ -2.5.1. -new(publicAccessPrefix,internationalPrefix,longDistancePrefix,country -Code,areaCode,pbxCode) +2.5.1. new(publicAccessPrefix,internationalPrefix,longDistancePrefix, +countryCode,areaCode,pbxCode) The new operator returns an object of this type and sets its locational context according to the passed parameters. See OpenSER::Utils::PhoneNumbers above. - __________________________________________________________ 2.5.2. canonicalForm( number [, context] ) @@ -893,7 +831,6 @@ Code,areaCode,pbxCode) canonical form. When no context is passed in as the second argument, the default context from the systems configuration file is used. - __________________________________________________________ 2.5.3. dialNumber( number [, context] ) @@ -901,7 +838,6 @@ Code,areaCode,pbxCode) into a number to to dial. WHen no context is given in the second argument, a default context from the systems configuration is used. - __________________________________________________________ 2.6. OpenSER::LDAPUtils::LDAPConf @@ -917,34 +853,28 @@ my $conf = new OpenSER::LDAPUtils::LDAPConf(); When used from an account with sufficient privilegs (e.g. root), the ldap manager passwort is also retrieved. - __________________________________________________________ 2.6.1. Constructor new() Returns a new, initialized OpenSER::LDAPUtils::LDAPConf object. - __________________________________________________________ 2.6.2. Method base() Returns the servers base-dn to use when doing queries. - __________________________________________________________ 2.6.3. Method host() Returns the ldap host to contact. - __________________________________________________________ 2.6.4. Method port() Returns the ldap servers port. - __________________________________________________________ 2.6.5. Method uri() Returns an uri to contact the ldap server. When there is no ldap_uri in the configuration file, an ldap: uri is constucted from host and port. - __________________________________________________________ 2.6.6. Method rootbindpw() @@ -953,26 +883,22 @@ my $conf = new OpenSER::LDAPUtils::LDAPConf(); Note that the rootbindpw is only available when the current account has sufficient privilegs to access /etc/openldap/ldap.secret. - __________________________________________________________ 2.6.7. Method rootbinddn() Returns the DN to use for "root"-access to the ldap server. - __________________________________________________________ 2.6.8. Method binddn() Returns the DN to use for authentication to the ldap server. When no bind dn has been specified in the configuration file, returns the rootbinddn. - __________________________________________________________ 2.6.9. Method bindpw() Returns the password to use for authentication to the ldap server. When no bind password has been specified, returns the rootbindpw if any. - __________________________________________________________ 2.7. OpenSER::LDAPUtils::LDAPConnection @@ -994,7 +920,6 @@ eworks,ou=de"); Net::LDAP functionality. It is intended for cases where just a few attributes should be retrieved without the overhead of the full featured Net::LDAP. - __________________________________________________________ 2.7.1. Constructor new( [config, [authenticated]] ) @@ -1012,7 +937,6 @@ eworks,ou=de"); On success, a new LDAPConnection object is returned, otherwise the result is undef. - __________________________________________________________ 2.7.2. Function/Method search( conf, filter, base, [requested_attributes ...]) @@ -1032,7 +956,6 @@ eworks,ou=de"); OpenSER::LDAPUtils::LDAPConf object. In this mode, the OpenSER::LDAPUtils::LDAPConnection from previous queries will be reused. - __________________________________________________________ 2.7.2.1. Arguments: @@ -1051,7 +974,6 @@ eworks,ou=de"); requested_attributes retrieve the given attributes instead of the dn from the ldap directory. - __________________________________________________________ 2.7.2.2. Result: @@ -1061,7 +983,6 @@ eworks,ou=de"); When some requested_attributes are given, return an array with those attibutes. When multiple entries match the query, the attribute lists are concatenated. - __________________________________________________________ 2.8. OpenSER::VDB @@ -1071,7 +992,6 @@ eworks,ou=de"); The base class itself should NOT be used in this context, as it does not provide any functionality. - __________________________________________________________ 2.9. OpenSER::Constants @@ -1079,31 +999,26 @@ eworks,ou=de"); and defines of OpenSER header files. Unfortunately, there is no mechanism for updating the constants automatically, so check the values if you are in doubt. - __________________________________________________________ 2.10. OpenSER::VDB::Adapter::Speeddial This adapter can be used with the speeddial module. - __________________________________________________________ 2.11. OpenSER::VDB::Adapter::Alias This package is intended for usage with the alias_db module. The query VTab has to take two arguments and return an array of two arguments (user name/domain). - __________________________________________________________ 2.11.1. query(conds,retkeys,order) Queries the vtab with the given arguments for request conditions, keys to return and sort order column name. - __________________________________________________________ 2.12. OpenSER::VDB::Adapter::AccountingSIPtrace This package is an Adapter for the acc and siptrace modules, featuring only an insert operation. - __________________________________________________________ 2.13. OpenSER::VDB::Adapter::Describe @@ -1113,14 +1028,12 @@ eworks,ou=de"); Use this module to request schema information when creating new adapters. - __________________________________________________________ 2.14. OpenSER::VDB::Adapter::Auth This adapter is intended for usage with the auth_db module. The VTab should take a username as an argument and return a (plain text!) password. - __________________________________________________________ 2.15. OpenSER::VDB::ReqCond @@ -1130,17 +1043,14 @@ eworks,ou=de"); This package inherits from OpenSER::VDB::Pair and thus includes its methods. - __________________________________________________________ 2.15.1. new(key,op,type,name) Constructs a new Column object. - __________________________________________________________ 2.15.2. op() Returns or sets the current operator. - __________________________________________________________ 2.16. OpenSER::VDB::Pair @@ -1149,41 +1059,34 @@ eworks,ou=de"); This package inherits from OpenSER::VDB::Value and thus has the same methods. - __________________________________________________________ 2.16.1. new(key,type,name) Constructs a new Column object. - __________________________________________________________ 2.16.2. key() Returns or sets the current key. - __________________________________________________________ 2.17. OpenSER::VDB::VTab This package handles virtual tables and is used by the OpenSER::VDB class to store information about valid tables. The package is not inteded for end user access. - __________________________________________________________ 2.17.1. new() Constructs a new VTab object - __________________________________________________________ 2.17.2. call(op,[args]) Invokes an operation on the table (insert, update, ...) with the given arguments. - __________________________________________________________ 2.18. OpenSER::VDB::Value This package represents a database value. Additional to the data itself, information about its type is stored. - __________________________________________________________ 2.18.1. stringification @@ -1201,30 +1104,25 @@ Constructs a new VTab object use OpenSER; use OpenSER::Constants; our @ISA = qw ( OpenSER::Utils::Debug ); - __________________________________________________________ 2.18.2. new(type,data) Constructs a new Value object. Its data type and the data are passed as parameters. - __________________________________________________________ 2.18.3. type() Returns or sets the current data type. Please consider using the constants from OpenSER::Constants - __________________________________________________________ 2.18.4. data() Returns or sets the current data. - __________________________________________________________ 2.19. OpenSER::VDB::Column This package represents database column definition, consisting of a column name and its data type. - __________________________________________________________ 2.19.1. Stringification @@ -1240,31 +1138,26 @@ Constructs a new VTab object use OpenSER; use OpenSER::Constants; our @ISA = qw ( OpenSER::Utils::Debug ); - __________________________________________________________ 2.19.2. new(type,name) Constructs a new Column object. Its type and the name are passed as parameters. - __________________________________________________________ 2.19.3. type( ) Returns or sets the current type. Please consider using the constants from OpenSER::Constants - __________________________________________________________ 2.19.4. name() Returns or sets the current column name. - __________________________________________________________ 2.19.5. OpenSER::VDB::Result This class represents a VDB result set. It contains a column definition, plus an array of rows. Rows themselves are simply references to arrays of scalars. - __________________________________________________________ 2.19.6. new(coldefs,[row, row, ...]) @@ -1272,20 +1165,21 @@ Constructs a new VTab object parameter is a reference to an array of OpenSER::VDB::Column objects. Additional parameters may be passed to provide initial rows, which are references to arrays of scalars. - __________________________________________________________ 2.19.7. coldefs() Returns or sets the column definition of the object. - __________________________________________________________ 2.19.8. rows() Returns or sets the rows of the object. - __________________________________________________________ Chapter 3. Perl samples + Revision History + Revision $Revision$ $Date: 2008-02-27 15:53:33 +0200 + (Wed, 27 Feb 2008) $ + 3.1. sample directory There are a number of example scripts in the "samples/". They @@ -1295,12 +1189,10 @@ Chapter 3. Perl samples implementation, you can use Perl's "require" mechanism to import them (just remember that you need to use quotes when require'ing .pl files). - __________________________________________________________ 3.1.1. Script descriptions The included sample scripts are described below: - __________________________________________________________ 3.1.1.1. branches.pl @@ -1309,7 +1201,6 @@ Chapter 3. Perl samples you would have done from your normal configuration file. You'll find documentation on the concepts of branching in the OpenSER documentation. - __________________________________________________________ 3.1.1.2. firstline.pl @@ -1317,7 +1208,6 @@ Chapter 3. Perl samples either of SIP_REQUEST or SIP_REPLY. Depending on that, different information can be received. This script demonstrates these functions. - __________________________________________________________ 3.1.1.3. flags.pl @@ -1329,7 +1219,6 @@ Chapter 3. Perl samples The first function, setflag, demonstrates how the "green" flag is set. In the second function, readflag, the "green" and "magenta" flags are evaluated. - __________________________________________________________ 3.1.1.4. functions.pl @@ -1362,7 +1251,6 @@ Chapter 3. Perl samples mechanism. Please note that this only works correctly if you do NOT overwrite the default die handler. Oh, yes, that works for warnings, too. - __________________________________________________________ 3.1.1.5. headers.pl @@ -1376,7 +1264,6 @@ Chapter 3. Perl samples "WWW-Contact". As you can see, headers that occur more than once are retrieved as an array, which may be accessed by Perl's array accessing methods. - __________________________________________________________ 3.1.1.6. logging.pl @@ -1391,7 +1278,6 @@ Chapter 3. Perl samples The L_INFO, L_DBG, L_ERR, L_CRIT... constants are available through the OpenSER::Constants package. - __________________________________________________________ 3.1.1.7. messagedump.pl @@ -1399,7 +1285,6 @@ Chapter 3. Perl samples of the current message. Please note that modifications on the message made by earlier function calls in your configuration script may NOT be reflected in this dump. - __________________________________________________________ 3.1.1.8. persistence.pl @@ -1410,14 +1295,12 @@ Chapter 3. Perl samples instances of OpenSER. You may want to use a mechanism such as the IPC::Shareable shared memory access package to correct this. - __________________________________________________________ 3.1.1.9. phonenumbers.pl The OpenSER::Utils::PhoneNumbers package provides two methods for the transformation of local to canonical telephone numbers, and vice versa. This script demonstrates it's use. - __________________________________________________________ 3.1.1.10. pseudovars.pl @@ -1428,55 +1311,55 @@ Chapter 3. Perl samples You might notice that there is no particular function for setting pseudo variables; you may use the exported functions from the avpops module, though. - __________________________________________________________ Chapter 4. Frequently Asked Questions - 4.1. Are there known bugs in the Perl module? - 4.2. Where can I find more about OpenSER? - 4.3. Where can I post a question about this module? - 4.4. How can I report a bug? + 4.1. + + Are there known bugs in the Perl module? - 4.1. Are there known bugs in the Perl module? + The Perl module does have a few shortcomings that may be + regarded as bugs. + * Missing module functions. Not all functions of other + modules are available for Perl access. The reason for this + is a design property of OpenSER. Making available more + functions is work in progress. + * Perl and threads. Perl itself is, when compiled with the + correct parameters, thread safe; unfortunately, not all + Perl modules are. The DBI modules, especially (but not + restricted to) DBI::ODBC are known NOT to be thread safe. + Using DBI::ODBC -- and possibly other non-thread-safe Perl + extensions -- may result in erroneous behavior of OpenSER, + including (but not restricted to) server crashes and wrong + routing. - The Perl module does have a few shortcomings that may be - regarded as bugs. + 4.2. - * Missing module functions. Not all functions of other - modules are available for Perl access. The reason for this - is a design property of OpenSER. Making available more - functions is work in progress. - * Perl and threads. Perl itself is, when compiled with the - correct parameters, thread safe; unfortunately, not all - Perl modules are. The DBI modules, especially (but not - restricted to) DBI::ODBC are known NOT to be thread safe. - Using DBI::ODBC -- and possibly other non-thread-safe Perl - extensions -- may result in erroneous behavior of OpenSER, - including (but not restricted to) server crashes and wrong - routing. + Where can I find more about OpenSER? - 4.2. Where can I find more about OpenSER? + Take a look at http://openser.org/. - Take a look at http://openser.org/. + 4.3. - 4.3. Where can I post a question about this module? + Where can I post a question about this module? - First at all check if your question was already answered on one - of our mailing lists: + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel - * User Mailing List - - http://openser.org/cgi-bin/mailman/listinfo/users - * Developer Mailing List - - http://openser.org/cgi-bin/mailman/listinfo/devel + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . - E-mails regarding any stable OpenSER release should be sent to - and e-mails regarding development versions - should be sent to . + If you want to keep the mail private, send it to + . - If you want to keep the mail private, send it to - . + 4.4. - 4.4. How can I report a bug? + How can I report a bug? - Please follow the guidelines provided at: - http://sourceforge.net/tracker/?group_id=139143. + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/perl/doc/perl.sgml b/modules_k/perl/doc/perl.xml similarity index 63% rename from modules_k/perl/doc/perl.sgml rename to modules_k/perl/doc/perl.xml index 93e4f10d4..bb8643dd7 100644 --- a/modules_k/perl/doc/perl.sgml +++ b/modules_k/perl/doc/perl.xml @@ -1,13 +1,15 @@ - + - - - + + + + - + %docentities; ]> @@ -39,8 +41,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/perl/doc/perl_user.sgml b/modules_k/perl/doc/perl_admin.xml similarity index 97% rename from modules_k/perl/doc/perl_user.sgml rename to modules_k/perl/doc/perl_admin.xml index 548dab869..86a1ea0bb 100644 --- a/modules_k/perl/doc/perl_user.sgml +++ b/modules_k/perl/doc/perl_admin.xml @@ -34,13 +34,16 @@ Cross compilation is supported by the Makefile. You need to set the environment variables PERLLDOPTS, PERLCCOPTS and TYPEMAP to values similar to the output of + PERLLDOPTS: perl -MExtUtils::Embed -e ldopts PERLCCOPTS: perl -MExtUtils::Embed -e ccopts TYPEMAP: echo "`perl -MConfig -e 'print $Config{installprivlib}'`/ExtUtils/typemap" + The exact position of your (precompiled!) perl libraries depends on the setup of your environment. +
@@ -60,7 +63,7 @@ if (perl_exec("ldap_alias")) { - The functions you can use are listed in the L<"Exported Functions"> section below. + The functions you can use are listed in the "Exported Functions" section below. On the Perl side, there are a number of functions that let you read and modify the @@ -105,8 +108,10 @@ if (perl_exec("ldap_alias")) { This module has been developed and tested with Perl 5.8.8, but should work with any 5.8.x release. Compilation is possible with 5.6.x, but its behavior is unsupported. Earlier versions do not work. + On current Debian systems, at least the following packages should be installed: + perl perl-base @@ -116,16 +121,19 @@ if (perl_exec("ldap_alias")) { libnet-ldap-perl libipc-shareable-perl + It was reported that other Debian-style distributions (such as Ubuntu) need the same packages. On SuSE systems, at least the following packages should be installed: + perl perl-ldap IPC::Shareable perl module from CPAN + Although SuSE delivers a lot of perl modules, others may have to be fetched from CPAN. Consider using the program cpan2rpm - which, in turn, is available on CPAN. It creates RPM files from CPAN. @@ -233,12 +241,7 @@ if (perl_exec("ldapalias")) {
- - - - - diff --git a/modules_k/perl/doc/perl_faq.sgml b/modules_k/perl/doc/perl_faq.xml similarity index 100% rename from modules_k/perl/doc/perl_faq.sgml rename to modules_k/perl/doc/perl_faq.xml diff --git a/modules_k/perlvdb/README b/modules_k/perlvdb/README index 4cd294afb..73194387a 100644 --- a/modules_k/perlvdb/README +++ b/modules_k/perlvdb/README @@ -9,9 +9,13 @@ Edited by Bastian Friedrich Copyright © 2007 Collax GmbH + Revision History + Revision $Revision: 3839 $ $Date: 2007-03-21 09:53:33 +0100 + (Mi, 21 Mär 2007) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -40,7 +44,8 @@ Bastian Friedrich 2.4.1. Function parameters 2.5. VTabs - __________________________________________________________ + + 3. Frequently Asked Questions Chapter 1. User's Guide @@ -68,35 +73,28 @@ race") the perlvdb module which will in turn use the Perl class OpenSER::VDB::Adapter::AccountingSIPtrace to relay the database requests. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * perl -- Perl module - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None (Besides the ones mentioned in the perl module documentation). - __________________________________________________________ 1.3. Exported Parameters None. - __________________________________________________________ 1.4. Exported Functions None. - __________________________________________________________ Chapter 2. Developer's Guide @@ -104,7 +102,6 @@ Chapter 2. Developer's Guide OpenSER uses a database API for requests of numerous different types of data. Four primary operations are supported: - * query * insert * update @@ -112,7 +109,6 @@ Chapter 2. Developer's Guide This module relays these database requests to user implemented Perl functions. - __________________________________________________________ 2.2. Base class OpenSER::VDB @@ -135,7 +131,6 @@ Chapter 2. Developer's Guide relational structured parameters into pure Perl function arguments, and add a virtual table (VTab) to provide the relaying to an underlying technology. - __________________________________________________________ 2.3. Data types @@ -143,7 +138,6 @@ Chapter 2. Developer's Guide the used datatypes will briefly be explained. The OpenSER Perl library includes some data types that have to be used in this module: - __________________________________________________________ 2.3.1. OpenSER::VDB::Value @@ -154,7 +148,6 @@ my $val = new OpenSER::VDB::Value(DB_STRING, "foobar"); Value objects contain the type() and data() methods to get or set the type and data attributes. - __________________________________________________________ 2.3.2. OpenSER::VDB::Pair @@ -166,7 +159,6 @@ my $pair = new OpenSER::VDB::Pair("foo", DB_STRING, "bar"); where foo is the key and bar is the value. Additonally to the methods of the Value class, it contains a key() method to get or set the key attribute. - __________________________________________________________ 2.3.3. OpenSER::VDB::ReqCond @@ -179,7 +171,6 @@ my $cond = new OpenSER::VDB::ReqCond("foo", ">", DB_INT, 5); value to compare. Additonally to the methods of the Pair class, it contains an op() method to get or set the operator attribute. - __________________________________________________________ 2.3.4. OpenSER::VDB::Column @@ -193,7 +184,6 @@ my $cols = new OpenSER::VDB::Column(\@types, \@names); The class contains the methods type() and name() to get or set the type and name arrays. - __________________________________________________________ 2.3.5. OpenSER::VDB::Result @@ -201,7 +191,6 @@ my $cols = new OpenSER::VDB::Column(\@types, \@names); schema (class Column) and an array of rows, where each row is an array of Values. The object methods coldefs() and rows() may be used to get and set the object attributes. - __________________________________________________________ 2.4. Adapters @@ -218,7 +207,6 @@ my $cols = new OpenSER::VDB::Column(\@types, \@names); module which is to be used with the adapter. While modules such as alias_db only require a query function, others -- such as siptrace -- depend on inserts only. - __________________________________________________________ 2.4.1. Function parameters @@ -244,7 +232,6 @@ my $cols = new OpenSER::VDB::Column(\@types, \@names); (which rows to select), an array of strings (which column names to return) and a single string by which column to sort. It should return an object of type OpenSER::VDB::Result. - __________________________________________________________ 2.5. VTabs @@ -258,7 +245,6 @@ my $cols = new OpenSER::VDB::Column(\@types, \@names); The standard Adapter/VTab pattern lets the user choose between three options on how to implement VTabs: - * Single function. When a function is used as a virtual table, it is passed the operation name (insert, replace, update, query, delete) as its first parameter. The function @@ -277,3 +263,36 @@ my $cols = new OpenSER::VDB::Column(\@types, \@names); replace, update, delete and/or query. These functions will be called in a method context (first parameter is a reference to the object). + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/perlvdb/doc/perlvdb.sgml b/modules_k/perlvdb/doc/perlvdb.xml similarity index 68% rename from modules_k/perlvdb/doc/perlvdb.sgml rename to modules_k/perlvdb/doc/perlvdb.xml index 033ff4e8b..2d5ef53a8 100644 --- a/modules_k/perlvdb/doc/perlvdb.sgml +++ b/modules_k/perlvdb/doc/perlvdb.xml @@ -1,12 +1,14 @@ - + - - + + + - + %docentities; ]> @@ -38,7 +40,7 @@ - $Revision$ + $Revision: 3839 $ $Date: 2007-03-21 09:53:33 +0100 (Mi, 21 Mär 2007) $ diff --git a/modules_k/perlvdb/doc/perlvdb_user.sgml b/modules_k/perlvdb/doc/perlvdb_admin.xml similarity index 100% rename from modules_k/perlvdb/doc/perlvdb_user.sgml rename to modules_k/perlvdb/doc/perlvdb_admin.xml diff --git a/modules_k/perlvdb/doc/perlvdb_devel.sgml b/modules_k/perlvdb/doc/perlvdb_devel.xml similarity index 100% rename from modules_k/perlvdb/doc/perlvdb_devel.sgml rename to modules_k/perlvdb/doc/perlvdb_devel.xml diff --git a/modules_k/permissions/README b/modules_k/permissions/README index d35fde890..1d9632de0 100644 --- a/modules_k/permissions/README +++ b/modules_k/permissions/README @@ -6,16 +6,24 @@ Edited by Miklos Tirpak +Edited by + Bogdan-Andrei Iancu +Edited by + Juha Heinanen Copyright © 2003 Miklos Tirpak Copyright © 2006 Juha Heinanen + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -75,37 +83,39 @@ Juha Heinanen 1.5.5. trusted_dump 1.5.6. allow_uri + 2. Frequently Asked Questions + List of Examples - 1-1. Set default_allow_file parameter - 1-2. Set default_deny_file parameter - 1-3. Set check_all_branches parameter - 1-4. Set allow_suffix parameter - 1-5. Set deny_suffix parameter - 1-6. Set db_url parameter - 1-7. Set address_table parameter - 1-8. Set grp_col parameter - 1-9. Set ip_addr_col parameter - 1-10. Set mask_col parameter - 1-11. Set port_col parameter - 1-12. Set db_mode parameter - 1-13. Set trusted_table parameter - 1-14. Set source_col parameter - 1-15. Set proto_col parameter - 1-16. Set from_col parameter - 1-17. Set tag_col parameter - 1-18. Set peer_tag_avp parameter - 1-19. allow_routing usage - 1-20. allow_routing(basename) usage - 1-21. allow_routing(allow_file, deny_file) usage - 1-22. allow_register(basename) usage - 1-23. allow_register(allow_file, deny_file) usage - 1-24. allow_uri(basename, pseudo-variable) usage - 1-25. set_address_group(group_id) usage - 1-26. allow_address(ip_addr_pv, port_pv) usage - 1-27. allow_source_address(group_id) usage - 1-28. allow_source_address_group() usage - 1-29. allow_trusted() usage - __________________________________________________________ + + 1.1. Set default_allow_file parameter + 1.2. Set default_deny_file parameter + 1.3. Set check_all_branches parameter + 1.4. Set allow_suffix parameter + 1.5. Set deny_suffix parameter + 1.6. Set db_url parameter + 1.7. Set address_table parameter + 1.8. Set grp_col parameter + 1.9. Set ip_addr_col parameter + 1.10. Set mask_col parameter + 1.11. Set port_col parameter + 1.12. Set db_mode parameter + 1.13. Set trusted_table parameter + 1.14. Set source_col parameter + 1.15. Set proto_col parameter + 1.16. Set from_col parameter + 1.17. Set tag_col parameter + 1.18. Set peer_tag_avp parameter + 1.19. allow_routing usage + 1.20. allow_routing(basename) usage + 1.21. allow_routing(allow_file, deny_file) usage + 1.22. allow_register(basename) usage + 1.23. allow_register(allow_file, deny_file) usage + 1.24. allow_uri(basename, pseudo-variable) usage + 1.25. set_address_group(group_id) usage + 1.26. allow_address(ip_addr_pv, port_pv) usage + 1.27. allow_source_address(group_id) usage + 1.28. allow_source_address_group() usage + 1.29. allow_trusted() usage Chapter 1. User's Guide @@ -127,7 +137,6 @@ Chapter 1. User's Guide them fails, the forwarding will fail. The matching algorithm is as follows, first match wins: - * Create a set of pairs of form (From, R-URI of branch 1), (From, R-URI of branch 2), etc. * Routing will be allowed when all pairs match an entry in @@ -143,7 +152,6 @@ Chapter 1. User's Guide From header field and Request-URIs are always compared with regular expressions! For the syntax see the sample file: config/permissions.allow. - __________________________________________________________ 1.1.2. Registration Permissions @@ -163,8 +171,8 @@ Chapter 1. User's Guide Function for registration checking is called allow_register and the algorithm is very similar to the algorithm described in - Section 1.1.1. The only difference is in the way how pairs are - created. + Section 1.1.1, "Call Routing". The only difference is in the + way how pairs are created. Instead of From header field the function uses To header field because To header field in REGISTER messages contains the URI @@ -174,9 +182,8 @@ Chapter 1. User's Guide Thus, pairs used in matching will look like this: (To, Contact 1), (To, Contact 2), (To, Contact 3), and so on.. - The algorithm of matching is same as described in Section - 1.1.1. - __________________________________________________________ + The algorithm of matching is same as described in + Section 1.1.1, "Call Routing". 1.1.3. URI Permissions @@ -189,7 +196,6 @@ Chapter 1. User's Guide When allow_uri function is called, it tries to find a rule that matches selected fields of the message. The matching algorithm is as follows, first match wins: - * Create a pair . * Request will be allowed when the pair matches an entry in the allow file. @@ -204,7 +210,6 @@ Chapter 1. User's Guide From URI and URI stored in pseudo-variable are always compared with regular expressions! For the syntax see the sample file: config/permissions.allow. - __________________________________________________________ 1.1.4. Address Permissions @@ -221,7 +226,6 @@ Chapter 1. User's Guide argument to allow_source_address function or assigned separately for subsequent allow_address function calls using set_address_group function. - __________________________________________________________ 1.1.5. Trusted Requests @@ -233,7 +237,6 @@ Chapter 1. User's Guide . A requests is accepted if there exists a rule, where - * source address is equal to source address of request, * transport protocol is either "any" or equal to transport protocol of request, and @@ -247,24 +250,19 @@ Chapter 1. User's Guide determines if rules are cached into memory for faster matching or if database is consulted for each invocation of allow_trusted function call. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -276,11 +274,10 @@ Chapter 1. User's Guide Default value is "permissions.allow". - Example 1-1. Set default_allow_file parameter + Example 1.1. Set default_allow_file parameter ... modparam("permissions", "default_allow_file", "/etc/permissions.allow") ... - __________________________________________________________ 1.3.2. default_deny_file (string) @@ -291,11 +288,10 @@ modparam("permissions", "default_allow_file", "/etc/permissions.allow") Default value is "permissions.deny". - Example 1-2. Set default_deny_file parameter + Example 1.2. Set default_deny_file parameter ... modparam("permissions", "default_deny_file", "/etc/permissions.deny") ... - __________________________________________________________ 1.3.3. check_all_branches (integer) @@ -303,18 +299,17 @@ modparam("permissions", "default_deny_file", "/etc/permissions.deny") all branches (default). If disabled then only Request-URI of the first branch will be checked. - Warning +Warning - Do not disable this parameter unless you really know what you - are doing. + Do not disable this parameter unless you really know what you + are doing. Default value is 1. - Example 1-3. Set check_all_branches parameter + Example 1.3. Set check_all_branches parameter ... modparam("permissions", "check_all_branches", 0) ... - __________________________________________________________ 1.3.4. allow_suffix (string) @@ -322,17 +317,16 @@ modparam("permissions", "check_all_branches", 0) allow file when version with one parameter of either allow_routing or allow_register is used. - Note +Note - Including leading dot. + Including leading dot. Default value is ".allow". - Example 1-4. Set allow_suffix parameter + Example 1.4. Set allow_suffix parameter ... modparam("permissions", "allow_suffix", ".allow") ... - __________________________________________________________ 1.3.5. deny_suffix (string) @@ -340,17 +334,16 @@ modparam("permissions", "allow_suffix", ".allow") deny file when version with one parameter of either allow_routing or allow_register is used. - Note +Note - Including leading dot. + Including leading dot. Default value is ".deny". - Example 1-5. Set deny_suffix parameter + Example 1.5. Set deny_suffix parameter ... modparam("permissions", "deny_suffix", ".deny") ... - __________________________________________________________ 1.3.6. db_url (string) @@ -359,12 +352,11 @@ modparam("permissions", "deny_suffix", ".deny") Default value is "NULL". - Example 1-6. Set db_url parameter + Example 1.6. Set db_url parameter ... modparam("permissions", "db_url", "mysql://openser:pass@db_host/openser" ) ... - __________________________________________________________ 1.3.7. address_table (string) @@ -373,11 +365,10 @@ modparam("permissions", "db_url", "mysql://openser:pass@db_host/openser" Default value is "address". - Example 1-7. Set address_table parameter + Example 1.7. Set address_table parameter ... modparam("permissions", "address_table", "addr") ... - __________________________________________________________ 1.3.8. grp_col (string) @@ -386,11 +377,10 @@ modparam("permissions", "address_table", "addr") Default value is "grp". - Example 1-8. Set grp_col parameter + Example 1.8. Set grp_col parameter ... modparam("permissions", "grp_col", "group_id") ... - __________________________________________________________ 1.3.9. ip_addr_col (string) @@ -399,11 +389,10 @@ modparam("permissions", "grp_col", "group_id") Default value is "ip_addr". - Example 1-9. Set ip_addr_col parameter + Example 1.9. Set ip_addr_col parameter ... modparam("permissions", "ip_addr_col", "ip_address") ... - __________________________________________________________ 1.3.10. mask_col (string) @@ -412,11 +401,10 @@ modparam("permissions", "ip_addr_col", "ip_address") Default value is "mask". - Example 1-10. Set mask_col parameter + Example 1.10. Set mask_col parameter ... modparam("permissions", "mask_col", "subnet_length") ... - __________________________________________________________ 1.3.11. port_col (string) @@ -425,11 +413,10 @@ modparam("permissions", "mask_col", "subnet_length") Default value is "port". - Example 1-11. Set port_col parameter + Example 1.11. Set port_col parameter ... modparam("permissions", "port_col", "prt") ... - __________________________________________________________ 1.3.12. db_mode (integer) @@ -438,11 +425,10 @@ modparam("permissions", "port_col", "prt") Default value is 0 (non-caching). - Example 1-12. Set db_mode parameter + Example 1.12. Set db_mode parameter ... modparam("permissions", "db_mode", 1) ... - __________________________________________________________ 1.3.13. trusted_table (string) @@ -451,11 +437,10 @@ modparam("permissions", "db_mode", 1) Default value is "trusted". - Example 1-13. Set trusted_table parameter + Example 1.13. Set trusted_table parameter ... modparam("permissions", "trusted_table", "pbx") ... - __________________________________________________________ 1.3.14. source_col (string) @@ -464,11 +449,10 @@ modparam("permissions", "trusted_table", "pbx") Default value is "src_ip". - Example 1-14. Set source_col parameter + Example 1.14. Set source_col parameter ... modparam("permissions", "source_col", "source_ip_address") ... - __________________________________________________________ 1.3.15. proto_col (string) @@ -480,11 +464,10 @@ modparam("permissions", "source_col", "source_ip_address") Default value is "proto". - Example 1-15. Set proto_col parameter + Example 1.15. Set proto_col parameter ... modparam("permissions", "proto_col", "transport") ... - __________________________________________________________ 1.3.16. from_col (string) @@ -493,11 +476,10 @@ modparam("permissions", "proto_col", "transport") Default value is "from_pattern". - Example 1-16. Set from_col parameter + Example 1.16. Set from_col parameter ... modparam("permissions", "from_col", "regexp") ... - __________________________________________________________ 1.3.17. tag_col (string) @@ -507,11 +489,10 @@ modparam("permissions", "from_col", "regexp") Default value is "tag". - Example 1-17. Set tag_col parameter + Example 1.17. Set tag_col parameter ... modparam("permissions", "tag_col", "peer_tag") ... - __________________________________________________________ 1.3.18. peer_tag_avp (AVP string) @@ -521,39 +502,37 @@ modparam("permissions", "tag_col", "peer_tag") Default value is "undefined". - Example 1-18. Set peer_tag_avp parameter + Example 1.18. Set peer_tag_avp parameter ... modparam("permissions", "peer_tag_avp", "$avp(i:707)") ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. allow_routing() +1.4.1. allow_routing() - Returns true if all pairs constructed as described in Section - 1.1.1 have appropriate permissions according to the - configuration files. This function uses default configuration - files specified in default_allow_file and default_deny_file. + Returns true if all pairs constructed as described in + Section 1.1.1, "Call Routing" have appropriate permissions + according to the configuration files. This function uses + default configuration files specified in default_allow_file and + default_deny_file. This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-19. allow_routing usage + Example 1.19. allow_routing usage ... if (allow_routing()) { t_relay(); }; ... - __________________________________________________________ -1.4.2. allow_routing(basename) +1.4.2. allow_routing(basename) - Returns true if all pairs constructed as described in Section - 1.1.1 have appropriate permissions according to the - configuration files given as parameters. + Returns true if all pairs constructed as described in + Section 1.1.1, "Call Routing" have appropriate permissions + according to the configuration files given as parameters. Meaning of the parameters is as follows: - * basename - Basename from which allow and deny filenames will be created by appending contents of allow_suffix and deny_suffix parameters. @@ -563,22 +542,20 @@ if (allow_routing()) { This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-20. allow_routing(basename) usage + Example 1.20. allow_routing(basename) usage ... if (allow_routing("basename")) { t_relay(); }; ... - __________________________________________________________ -1.4.3. allow_routing(allow_file,deny_file) +1.4.3. allow_routing(allow_file,deny_file) - Returns true if all pairs constructed as described in Section - 1.1.1 have appropriate permissions according to the - configuration files given as parameters. + Returns true if all pairs constructed as described in + Section 1.1.1, "Call Routing" have appropriate permissions + according to the configuration files given as parameters. Meaning of the parameters is as follows: - * allow_file - File containing allow rules. If the parameter doesn't contain full pathname then the function expects the file to be located in the same @@ -590,22 +567,21 @@ if (allow_routing("basename")) { This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-21. allow_routing(allow_file, deny_file) usage + Example 1.21. allow_routing(allow_file, deny_file) usage ... if (allow_routing("rules.allow", "rules.deny")) { t_relay(); }; ... - __________________________________________________________ -1.4.4. allow_register(basename) +1.4.4. allow_register(basename) The function returns true if all pairs constructed as described - in Section 1.1.2 have appropriate permissions according to the - configuration files given as parameters. + in Section 1.1.2, "Registration Permissions" have appropriate + permissions according to the configuration files given as + parameters. Meaning of the parameters is as follows: - * basename - Basename from which allow and deny filenames will be created by appending contents of allow_suffix and deny_suffix parameters. @@ -615,7 +591,7 @@ if (allow_routing("rules.allow", "rules.deny")) { This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-22. allow_register(basename) usage + Example 1.22. allow_register(basename) usage ... if (method=="REGISTER") { if (allow_register("register")) { @@ -626,16 +602,15 @@ if (method=="REGISTER") { }; }; ... - __________________________________________________________ -1.4.5. allow_register(allow_file, deny_file) +1.4.5. allow_register(allow_file, deny_file) The function returns true if all pairs constructed as described - in Section 1.1.2 have appropriate permissions according to the - configuration files given as parameters. + in Section 1.1.2, "Registration Permissions" have appropriate + permissions according to the configuration files given as + parameters. Meaning of the parameters is as follows: - * allow_file - File containing allow rules. If the parameter doesn't contain full pathname then the function expects the file to be located in the same @@ -647,7 +622,7 @@ if (method=="REGISTER") { This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-23. allow_register(allow_file, deny_file) usage + Example 1.23. allow_register(allow_file, deny_file) usage ... if (method=="REGISTER") { if (allow_register("register.allow", "register.deny")) { @@ -658,16 +633,15 @@ if (method=="REGISTER") { }; }; ... - __________________________________________________________ -1.4.6. allow_uri(basename, pseudo-variable) +1.4.6. allow_uri(basename, pseudo-variable) - Returns true if the pair constructed as described in Section - 1.1.3 have appropriate permissions according to the - configuration files specified by the parameter. + Returns true if the pair constructed as described in + Section 1.1.3, "URI Permissions" have appropriate permissions + according to the configuration files specified by the + parameter. Meaning of the parameter is as follows: - * basename - Basename from which allow and deny filenames will be created by appending contents of allow_suffix and deny_suffix parameters. @@ -678,7 +652,7 @@ if (method=="REGISTER") { This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-24. allow_uri(basename, pseudo-variable) usage + Example 1.24. allow_uri(basename, pseudo-variable) usage ... if (allow_uri("basename", "$rt")) { // Check Refer-To URI t_relay(); @@ -688,9 +662,8 @@ i:705) t_relay(); }; ... - __________________________________________________________ -1.4.7. set_address_group(group_id) +1.4.7. set_address_group(group_id) Sets address group to be used in subsequent allow_address function calls to an unsigned integer value given as argument. @@ -698,7 +671,7 @@ i:705) This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-25. set_address_group(group_id) usage + Example 1.25. set_address_group(group_id) usage ... // Set address group identifier to 1. @@ -706,9 +679,8 @@ set_address_group("1"); // Set address group identifier to value of pseudo variable i:100. set_address_group("$avp(i:100)"); ... - __________________________________________________________ -1.4.8. allow_address(ip_addr_pv, port_pv) +1.4.8. allow_address(ip_addr_pv, port_pv) Returns true if IP address and port given as values of pseudo variable arguments and belonging to an earlier assigned address @@ -718,7 +690,7 @@ set_address_group("$avp(i:100)"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-26. allow_address(ip_addr_pv, port_pv) usage + Example 1.26. allow_address(ip_addr_pv, port_pv) usage ... // Check source address/port of request @@ -730,16 +702,15 @@ if (!allow_address("$avp(i:704)", "$avp(i:705)") { sl_send_reply("403", "Forbidden"); }; ... - __________________________________________________________ -1.4.9. allow_source_address(group_id) +1.4.9. allow_source_address(group_id) Equal to set_address_group(group_id); allow_address("$si", "$sp"), but faster. This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-27. allow_source_address(group_id) usage + Example 1.27. allow_source_address(group_id) usage ... // Check source address/port of request @@ -747,9 +718,8 @@ if (!allow_source_address("0")) { sl_send_reply("403", "Forbidden"); }; ... - __________________________________________________________ -1.4.10. allow_source_address_group() +1.4.10. allow_source_address_group() Checks if source address/port is found in cached address or subnet table in any group. If yes, returns that group. If not @@ -758,7 +728,7 @@ if (!allow_source_address("0")) { This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-28. allow_source_address_group() usage + Example 1.28. allow_source_address_group() usage ... $var(group) = allow_source_address_group(); @@ -766,30 +736,28 @@ if ($var(group) != -1) { # do something with $var(group) }; ... - __________________________________________________________ -1.4.11. allow_trusted() +1.4.11. allow_trusted() Checks based on request's source address, transport protocol, and From URI if request can be trusted without authentication. - Returns 1 if a match is found as described in Section 1.1.5 and - -1 otherwise. If a match is found and peer_tag_avp has been - defined, adds a non-NULL tag column value of the matching peer - to AVP peer_tag_avp. + Returns 1 if a match is found as described in Section 1.1.5, + "Trusted Requests" and -1 otherwise. If a match is found and + peer_tag_avp has been defined, adds a non-NULL tag column value + of the matching peer to AVP peer_tag_avp. This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-29. allow_trusted() usage + Example 1.29. allow_trusted() usage ... if (allow_trusted()) { t_relay(); }; ... - __________________________________________________________ 1.5. Exported MI Functions -1.5.1. address_reload +1.5.1. address_reload Causes permissions module to re-read the contents of address database table into cache memory. In cache memory the entries @@ -798,49 +766,76 @@ if (allow_trusted()) { mask field (32 or smaller). Parameters: none - __________________________________________________________ -1.5.2. address_dump +1.5.2. address_dump Causes permissions module to dump contents of cache memory address table. Parameters: none - __________________________________________________________ -1.5.3. subnet_dump +1.5.3. subnet_dump Causes permissions module to dump contents of cache memory subnet table. Parameters: none - __________________________________________________________ -1.5.4. trusted_reload +1.5.4. trusted_reload Causes permissions module to re-read the contents of trusted table into cache memory. Parameters: none - __________________________________________________________ -1.5.5. trusted_dump +1.5.5. trusted_dump Causes permissions module to dump contents of trusted table from cache memory. Parameters: none - __________________________________________________________ -1.5.6. allow_uri +1.5.6. allow_uri Tests if (URI, Contact) pair is allowed according to allow/deny files. The files must already have been loaded by OpenSER. Parameters: - * basename - Basename from which allow and deny filenames will be created by appending contents of allow_suffix and deny_suffix parameters. * URI - URI to be tested * Contact - Contact to be tested + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/permissions/doc/permissions.sgml b/modules_k/permissions/doc/permissions.xml similarity index 71% rename from modules_k/permissions/doc/permissions.sgml rename to modules_k/permissions/doc/permissions.xml index 4c4d2eb6c..7507e2258 100644 --- a/modules_k/permissions/doc/permissions.sgml +++ b/modules_k/permissions/doc/permissions.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -54,8 +56,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/permissions/doc/permissions_user.sgml b/modules_k/permissions/doc/permissions_admin.xml similarity index 98% rename from modules_k/permissions/doc/permissions_user.sgml rename to modules_k/permissions/doc/permissions_admin.xml index c56b728b5..29d1e7944 100644 --- a/modules_k/permissions/doc/permissions_user.sgml +++ b/modules_k/permissions/doc/permissions_admin.xml @@ -87,7 +87,7 @@ Function for registration checking is called allow_register and the algorithm is very similar to the algorithm described in - . The only difference is in the way + . The only difference is in the way how pairs are created.
@@ -102,7 +102,7 @@ The algorithm of matching is same as described in - . + .
@@ -131,6 +131,7 @@ Request will be allowed when the pair matches an entry in the allow file. + @@ -188,6 +189,7 @@ the request. Rules contain the following fields: <source address, transport protocol, regular expression>. + A requests is accepted if there exists a rule, where @@ -201,6 +203,7 @@ transport protocol is either "any" or equal to transport protocol of request, and + @@ -659,7 +662,7 @@ modparam("permissions", "peer_tag_avp", "$avp(i:707)") Returns true if all pairs constructed as described in have appropriate permissions according to + linkend="sec-call-routing"/> have appropriate permissions according to the configuration files. This function uses default configuration files specified in default_allow_file and default_deny_file. @@ -684,7 +687,7 @@ if (allow_routing()) { Returns true if all pairs constructed as described in have appropriate permissions according + linkend="sec-call-routing"/> have appropriate permissions according to the configuration files given as parameters. Meaning of the parameters is as follows: @@ -722,7 +725,7 @@ if (allow_routing("basename")) { Returns true if all pairs constructed as described in - have appropriate permissions + have appropriate permissions according to the configuration files given as parameters. Meaning of the parameters is as follows: @@ -766,7 +769,7 @@ if (allow_routing("rules.allow", "rules.deny")) { The function returns true if all pairs constructed as described in have appropriate permissions + linkend="sec-registration-permissions"/> have appropriate permissions according to the configuration files given as parameters. Meaning of the parameters is as follows: @@ -809,7 +812,7 @@ if (method=="REGISTER") { The function returns true if all pairs constructed as described in - have appropriate + have appropriate permissions according to the configuration files given as parameters. Meaning of the parameters is as follows: @@ -858,7 +861,7 @@ if (method=="REGISTER") { Returns true if the pair constructed as described in have appropriate permissions + linkend="sec-uri-permissions"/> have appropriate permissions according to the configuration files specified by the parameter. Meaning of the parameter is as follows: @@ -1013,7 +1016,7 @@ if ($var(group) != -1) { Checks based on request's source address, transport protocol, and From URI if request can be trusted without authentication. Returns 1 if a match is found - as described in + as described in and -1 otherwise. If a match is found and peer_tag_avp has been defined, adds a non-NULL tag column value of the diff --git a/modules_k/pike/README b/modules_k/pike/README index 6f7e55609..066de23d0 100644 --- a/modules_k/pike/README +++ b/modules_k/pike/README @@ -9,9 +9,13 @@ Edited by Bogdan-Andrei Iancu Copyright © 2003 FhG FOKUS + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -35,14 +39,15 @@ Bogdan-Andrei Iancu 1.5.1. pike_list 2. Developer's Guide + 3. Frequently Asked Questions List of Examples - 1-1. Set sampling_time_unit parameter - 1-2. Set reqs_density_per_unit parameter - 1-3. Set remove_latency parameter - 1-4. pike_check_req usage - 2-1. Tree of IP addresses - __________________________________________________________ + + 1.1. Set sampling_time_unit parameter + 1.2. Set reqs_density_per_unit parameter + 1.3. Set remove_latency parameter + 1.4. pike_check_req usage + 2.1. Tree of IP addresses Chapter 1. User's Guide @@ -55,24 +60,19 @@ Chapter 1. User's Guide The module does not implement any actions on blocking - it just simply reports that there is a high traffic from an IP; what to do, is the administator decision (via scripting). - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -89,11 +89,10 @@ Chapter 1. User's Guide Default value is 2. - Example 1-1. Set sampling_time_unit parameter + Example 1.1. Set sampling_time_unit parameter ... modparam("pike", "sampling_time_unit", 10) ... - __________________________________________________________ 1.3.2. reqs_density_per_unit (integer) @@ -105,11 +104,10 @@ modparam("pike", "sampling_time_unit", 10) Default value is 30. - Example 1-2. Set reqs_density_per_unit parameter + Example 1.2. Set reqs_density_per_unit parameter ... modparam("pike", "reqs_density_per_unit", 30) ... - __________________________________________________________ 1.3.3. remove_latency (integer) @@ -119,15 +117,14 @@ modparam("pike", "reqs_density_per_unit", 30) Default value is 120. - Example 1-3. Set remove_latency parameter + Example 1.3. Set remove_latency parameter ... modparam("pike", "remove_latency", 130) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. pike_check_req() +1.4.1. pike_check_req() Process the source IP of the current request and returns false if the IP was exceeding the blocking limit. @@ -137,15 +134,14 @@ modparam("pike", "remove_latency", 130) This function can be used from REQUEST_ROUTE. - Example 1-4. pike_check_req usage + Example 1.4. pike_check_req usage ... if (!pike_check_req()) { exit; }; ... - __________________________________________________________ 1.5. Exported MI Functions -1.5.1. pike_list +1.5.1. pike_list Lists the nodes in the pike tree. @@ -156,7 +152,6 @@ if (!pike_check_req()) { exit; }; MI FIFO Command Format: :pike_list:_reply_fifo_file_ _empty_line_ - __________________________________________________________ Chapter 2. Developer's Guide @@ -164,7 +159,7 @@ Chapter 2. Developer's Guide contains a byte, the IP addresses stretching from root to the leafs. - Example 2-1. Tree of IP addresses + Example 2.1. Tree of IP addresses / 193 - 175 - 132 - 164 tree root / \ 142 \ 195 - 37 - 78 - 163 @@ -178,7 +173,6 @@ tree root / \ 142 195.37.78.163 and 195.37.79.134 hits). For 193.175.132.164 with x= reqs_density_per_unit: - * After first req hits -> the "193" node is built. * After x more hits, the "175" node is build; the hits of "193" node are split between itself and its child--both of @@ -205,3 +199,36 @@ tree root / \ 142 So, for IPv4 (n = 4) will be 3x and for IPv6 (n = 16) will be 9x. The minimum number of hits to turn an address red is x. + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/pike/doc/pike.sgml b/modules_k/pike/doc/pike.xml similarity index 62% rename from modules_k/pike/doc/pike.sgml rename to modules_k/pike/doc/pike.xml index 866851e65..b93955115 100644 --- a/modules_k/pike/doc/pike.sgml +++ b/modules_k/pike/doc/pike.xml @@ -1,12 +1,14 @@ - + - - + + + - + %docentities; ]> @@ -38,8 +40,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/pike/doc/pike_user.sgml b/modules_k/pike/doc/pike_admin.xml similarity index 100% rename from modules_k/pike/doc/pike_user.sgml rename to modules_k/pike/doc/pike_admin.xml diff --git a/modules_k/pike/doc/pike_devel.sgml b/modules_k/pike/doc/pike_devel.xml similarity index 98% rename from modules_k/pike/doc/pike_devel.sgml rename to modules_k/pike/doc/pike_devel.xml index a7680256e..ca9a31569 100644 --- a/modules_k/pike/doc/pike_devel.sgml +++ b/modules_k/pike/doc/pike_devel.xml @@ -8,7 +8,7 @@ addresses stretching from root to the leafs. - Tree of &ip addresses + Tree of &ip; addresses / 193 - 175 - 132 - 164 tree root / \ 142 diff --git a/modules_k/presence/README b/modules_k/presence/README index 55fdc0f9e..0e875871c 100644 --- a/modules_k/presence/README +++ b/modules_k/presence/README @@ -9,9 +9,13 @@ Edited by Anca-Maria Vamanu Copyright © 2006 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-02-29 12:18:36 +0200 + (Fri, 29 Feb 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -64,23 +68,23 @@ Anca-Maria Vamanu 2.13. get_sphere List of Examples - 1-1. Set db_url parameter - 1-2. Set presentity_table parameter - 1-3. Set active_watchers_table parameter - 1-4. Set watchers_table parameter - 1-5. Set clean_period parameter - 1-6. Set to_tag_pref parameter - 1-7. Set expires_offset parameter - 1-8. Set max_expires parameter - 1-9. Set server_address parameter - 1-10. Set fallback2db parameter - 1-11. Set subs_htable_size parameter - 1-12. Set pres_htable_size parameter - 1-13. Set enable_sphere_check parameter - 1-14. handle_publish usage - 1-15. handle_subscribe usage - 2-1. presence_api_t structure - __________________________________________________________ + + 1.1. Set db_url parameter + 1.2. Set presentity_table parameter + 1.3. Set active_watchers_table parameter + 1.4. Set watchers_table parameter + 1.5. Set clean_period parameter + 1.6. Set to_tag_pref parameter + 1.7. Set expires_offset parameter + 1.8. Set max_expires parameter + 1.9. Set server_address parameter + 1.10. Set fallback2db parameter + 1.11. Set subs_htable_size parameter + 1.12. Set pres_htable_size parameter + 1.13. Set enable_sphere_check parameter + 1.14. handle_publish usage + 1.15. handle_subscribe usage + 2.1. presence_api_t structure Chapter 1. User's Guide @@ -113,23 +117,19 @@ Chapter 1. User's Guide The server follows the specifications in: RFC3265, RFC3856, RFC3857, RFC3858. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * a database module. * sl. * tm. - __________________________________________________________ 1.2.2. External Libraries or Applications * libxml. - __________________________________________________________ 1.3. Exported Parameters @@ -143,12 +143,11 @@ Chapter 1. User's Guide Default value is "NULL". - Example 1-1. Set db_url parameter + Example 1.1. Set db_url parameter ... modparam("presence", "db_url", "mysql://openser:openserrw@192.168.2.132/openser") ... - __________________________________________________________ 1.3.2. presentity_table(str) @@ -156,11 +155,10 @@ modparam("presence", "db_url", Default value is "presentity". - Example 1-2. Set presentity_table parameter + Example 1.2. Set presentity_table parameter ... modparam("presence", "presentity_table", "presentity"); ... - __________________________________________________________ 1.3.3. active_watchers_table(str) @@ -169,11 +167,10 @@ modparam("presence", "presentity_table", "presentity"); Default value is "active_watchers". - Example 1-3. Set active_watchers_table parameter + Example 1.3. Set active_watchers_table parameter ... modparam("presence", "active_watchers_table", "active_watchers") ... - __________________________________________________________ 1.3.4. watchers_table(str) @@ -181,11 +178,10 @@ modparam("presence", "active_watchers_table", "active_watchers") Default value is "watchers". - Example 1-4. Set watchers_table parameter + Example 1.4. Set watchers_table parameter ... modparam("presence", "watchers_table", "watchers") ... - __________________________________________________________ 1.3.5. clean_period (int) @@ -194,11 +190,10 @@ modparam("presence", "watchers_table", "watchers") Default value is "100". - Example 1-5. Set clean_period parameter + Example 1.5. Set clean_period parameter ... modparam("presence", "clean_period", 100) ... - __________________________________________________________ 1.3.6. to_tag_pref (str) @@ -207,11 +202,10 @@ modparam("presence", "clean_period", 100) Default value is "10". - Example 1-6. Set to_tag_pref parameter + Example 1.6. Set to_tag_pref parameter ... modparam("presence", "to_tag_pref", 'pres') ... - __________________________________________________________ 1.3.7. expires_offset (int) @@ -221,11 +215,10 @@ modparam("presence", "to_tag_pref", 'pres') Default value is "0". - Example 1-7. Set expires_offset parameter + Example 1.7. Set expires_offset parameter ... modparam("presence", "expires_offset", 10) ... - __________________________________________________________ 1.3.8. max_expires (int) @@ -234,11 +227,10 @@ modparam("presence", "expires_offset", 10) Default value is "3600". - Example 1-8. Set max_expires parameter + Example 1.8. Set max_expires parameter ... modparam("presence", "max_expires", 3600) ... - __________________________________________________________ 1.3.9. server_address (str) @@ -246,11 +238,10 @@ modparam("presence", "max_expires", 3600) Contact header filed for 200OK replies to Subscribe and Publish and in Notify messages. - Example 1-9. Set server_address parameter + Example 1.9. Set server_address parameter ... modparam("presence", "server_address", "sip:10.10.10.10:5060") ... - __________________________________________________________ 1.3.10. fallback2db (int) @@ -260,11 +251,10 @@ modparam("presence", "server_address", "sip:10.10.10.10:5060") architecture in which processing and memory load might be divided on more machines using the same database. - Example 1-10. Set fallback2db parameter + Example 1.10. Set fallback2db parameter ... modparam("presence", "fallback2db", 1) ... - __________________________________________________________ 1.3.11. subs_htable_size (int) @@ -272,11 +262,10 @@ modparam("presence", "fallback2db", 1) Default value is "9 (512)". - Example 1-11. Set subs_htable_size parameter + Example 1.11. Set subs_htable_size parameter ... modparam("presence", "subs_htable_size", 11) ... - __________________________________________________________ 1.3.12. pres_htable_size (int) @@ -284,11 +273,10 @@ modparam("presence", "subs_htable_size", 11) Default value is "9 (512)". - Example 1-12. Set pres_htable_size parameter + Example 1.12. Set pres_htable_size parameter ... modparam("presence", "pres_htable_size", 11) ... - __________________________________________________________ 1.3.13. enable_sphere_check (int) @@ -301,15 +289,14 @@ modparam("presence", "pres_htable_size", 11) Default value is "0 ". - Example 1-13. Set enable_sphere_check parameter + Example 1.13. Set enable_sphere_check parameter ... modparam("presence", "enable_sphere_check", 1) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. handle_publish(char* sender_uri) +1.4.1. handle_publish(char* sender_uri) The function handles PUBLISH requests. It stores and updates published information in database and calls functions to send @@ -326,13 +313,12 @@ modparam("presence", "enable_sphere_check", 1) This function can be used from REQUEST_ROUTE. Return code: - * 1 - if success. * -1 - if error. The module sends an appropriate stateless reply in all cases. - Example 1-14. handle_publish usage + Example 1.14. handle_publish usage ... if(is_method("PUBLISH")) { @@ -343,9 +329,8 @@ modparam("presence", "enable_sphere_check", 1) t_release(); } ... - __________________________________________________________ -1.4.2. handle_subscribe() +1.4.2. handle_subscribe() The function which handles SUBSCRIBE requests. It stores or updates information in database and calls functions to send @@ -355,22 +340,20 @@ modparam("presence", "enable_sphere_check", 1) This function can be used from REQUEST_ROUTE. Return code: - * 1 - if success. * -1 - if error. The module sends an appropriate stateless reply in all cases. - Example 1-15. handle_subscribe usage + Example 1.15. handle_subscribe usage ... if(method=="SUBSCRIBE") handle_subscribe(); ... - __________________________________________________________ 1.5. Exported MI Functions -1.5.1. refreshWatchers +1.5.1. refreshWatchers Triggers sending Notify messages to watchers if a change in watchers authorization or in published state occurred. @@ -378,7 +361,6 @@ if(method=="SUBSCRIBE") Name: refreshWatchers Parameters: - * presentity_uri : the uri of the user who made the change and whose watchers should be informed * event : the event package @@ -396,7 +378,6 @@ if(method=="SUBSCRIBE") presence 1 _empty_line_ - __________________________________________________________ 1.6. Installation @@ -407,21 +388,19 @@ if(method=="SUBSCRIBE") also find the complete database documentation on the project webpage, http://www.openser.org/docs/db-tables/openser-db-devel.html. - __________________________________________________________ Chapter 2. Developer's Guide The module provides the following functions that can be used in other OpenSER modules. - __________________________________________________________ -2.1. bind_presence(presence_api_t* api) +2.1. bind_presence(presence_api_t* api) This function binds the presence modules and fills the structure with one exported function -> add_event, which when called adds a new event to be handled by presence. - Example 2-1. presence_api_t structure + Example 2.1. presence_api_t structure ... typedef struct presence_api { add_event_t add_event; @@ -450,9 +429,8 @@ typedef struct presence_api { }presence_api_t; ... - __________________________________________________________ -2.2. add_event +2.2. add_event Field type: ... @@ -498,9 +476,8 @@ typedef struct pres_ev }pres_ev_t; ... - __________________________________________________________ -2.3. get_rules_doc +2.3. get_rules_doc Filed type: ... @@ -512,9 +489,8 @@ typedef int (get_rules_doc_t)(str* user, str* domain, str** rules_doc); processing the notified body. A reference to the document should be put in the auth_rules_doc of the subs_t structure given as a parameter to the functions described bellow. - __________________________________________________________ -2.4. get_auth_status +2.4. get_auth_status This filed is a function to be called for a subscription request to return the state for that subscription according to @@ -528,9 +504,8 @@ typedef int (get_rules_doc_t)(str* user, str* domain, str** rules_doc); ... typedef int (is_allowed_t)(struct subscription* subs); ... - __________________________________________________________ -2.5. apply_auth_nbody +2.5. apply_auth_nbody This parameter should be a function to be called for an event that requires authorization, when constructing final body. The @@ -542,9 +517,8 @@ typedef int (is_allowed_t)(struct subscription* subs); ... typedef int (apply_auth_t)(str* , struct subscription*, str** ); ... - __________________________________________________________ -2.6. agg_nbody +2.6. agg_nbody If present, this field marks that the events requires aggregation of states. This function receives a body array and @@ -557,9 +531,8 @@ typedef int (apply_auth_t)(str* , struct subscription*, str** ); typedef str* (agg_nbody_t)(str* pres_user, str* pres_domain, str** body_array, int n, int off_index); .. - __________________________________________________________ -2.7. free_body +2.7. free_body This field must be field in if subsequent processing is performed on the info from database before being inserted in @@ -571,9 +544,8 @@ str** body_array, int n, int off_index); ... typedef void(free_body_t)(char* body); .. - __________________________________________________________ -2.8. evs_publ_handl +2.8. evs_publ_handl This function is called when handling Publish requests. Most contain body correctness check. @@ -581,9 +553,8 @@ typedef void(free_body_t)(char* body); ... typedef int (publ_handling_t)(struct sip_msg*); .. - __________________________________________________________ -2.9. evs_subs_handl +2.9. evs_subs_handl It is not compulsory. Should contain event specific handling for Subscription requests. @@ -592,9 +563,8 @@ typedef int (publ_handling_t)(struct sip_msg*); ... typedef int (subs_handling_t)(struct sip_msg*); .. - __________________________________________________________ -2.10. contains_event +2.10. contains_event Field type: .. @@ -606,9 +576,8 @@ event_t* parsed_event); searches the result in the list. It returns the found event or NULL, if not found. If the second argument is an allocated event_t* structure it fills it with the result of the parsing. - __________________________________________________________ -2.11. get_event_list +2.11. get_event_list Field type: ... @@ -618,9 +587,8 @@ typedef int (*get_event_list_t) (str** ev_list); This function returns a string representation of the events registered in presence module.( used for Allowed-Events header). - __________________________________________________________ -2.12. update_watchers_status +2.12. update_watchers_status Field type: ... @@ -634,9 +602,8 @@ str* rules_doc); whose status has changes. (used by presence_xml module when notified through an MI command of a change in an xcap document). - __________________________________________________________ -2.13. get_sphere +2.13. get_sphere Field type: ... diff --git a/modules_k/presence/doc/presence.sgml b/modules_k/presence/doc/presence.xml similarity index 68% rename from modules_k/presence/doc/presence.sgml rename to modules_k/presence/doc/presence.xml index 9c520a88c..0047518d8 100644 --- a/modules_k/presence/doc/presence.sgml +++ b/modules_k/presence/doc/presence.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -40,8 +42,8 @@ - $Revision$ - $Date$ + $Revision: 3802 $ + $Date: 2008-02-29 12:18:36 +0200 (Fri, 29 Feb 2008) $ diff --git a/modules_k/presence/doc/presence_user.sgml b/modules_k/presence/doc/presence_admin.xml similarity index 99% rename from modules_k/presence/doc/presence_user.sgml rename to modules_k/presence/doc/presence_admin.xml index 3fc0476d0..c9654eb28 100644 --- a/modules_k/presence/doc/presence_user.sgml +++ b/modules_k/presence/doc/presence_admin.xml @@ -7,7 +7,7 @@ Overview The modules handles PUBLISH and SUBSCRIBE messages and generates NOTIFY messages in a general, event independent way. It allows registering - events to it from other &ser modules. Events that can currently be added to + events to it from other &ser; modules. Events that can currently be added to it are: presence, presence.winfo, dialog;sla from presence_xml module and message-summary from presence_mwi module. @@ -475,12 +475,14 @@ if(method=="SUBSCRIBE") if pidf_manipulation parameter is set): refresh type!= 0. + MI FIFO Command Format: + :refreshWatchers:fifo_reply sip:11@192.168.2.132 diff --git a/modules_k/presence/doc/presence_devel.sgml b/modules_k/presence/doc/presence_devel.xml similarity index 98% rename from modules_k/presence/doc/presence_devel.sgml rename to modules_k/presence/doc/presence_devel.xml index a53e00455..402953f42 100644 --- a/modules_k/presence/doc/presence_devel.sgml +++ b/modules_k/presence/doc/presence_devel.xml @@ -57,17 +57,19 @@ typedef struct presence_api { Field type: + ... typedef int (*add_event_t)(pres_ev_t* event); ... - + This function receives as a parameter a structure with event specific information and adds it to presence event list. The structure received as a parameter: + ... typedef struct pres_ev @@ -245,12 +247,12 @@ typedef int (publ_handling_t)(struct sip_msg*); Filed type: + ... typedef int (subs_handling_t)(struct sip_msg*); .. - - +
@@ -259,12 +261,13 @@ typedef int (subs_handling_t)(struct sip_msg*); Field type: + .. typedef pres_ev_t* (*contains_event_t)(str* name, event_t* parsed_event); ... - + The function parses the event name received as a parameter and searches the result in the list. It returns the found event or NULL, if not found. @@ -279,11 +282,12 @@ event_t* parsed_event); Field type: + ... typedef int (*get_event_list_t) (str** ev_list); ... - + This function returns a string representation of the events registered in presence module.( used for Allowed-Events header). @@ -296,12 +300,13 @@ typedef int (*get_event_list_t) (str** ev_list); Field type: + ... typedef int (*update_watchers_t)(str pres_uri, pres_ev_t* ev, str* rules_doc); ... - + This function is an external command that can be used to announce a change in authorization rules for a presentity. It updates the stored status and @@ -317,11 +322,12 @@ str* rules_doc); Field type: + ... typedef char* (*pres_get_sphere_t)(str* pres_uri); ... - + This function searches for a sphere definition in the published information if this has type RPID. If not found returns NULL. (the return value is diff --git a/modules_k/presence_mwi/README b/modules_k/presence_mwi/README index 2e121fda6..627d694b1 100644 --- a/modules_k/presence_mwi/README +++ b/modules_k/presence_mwi/README @@ -2,14 +2,22 @@ Presence_MWI Module Juha Heinanen + + Edited by Juha Heinanen + + Copyright © 2007 Juha Heinanen + Revision History + Revision $Revision: 1 $ $Date: 2007-04-30 14:05:57 +0200 (Mon, + 30 Jan 2007) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -20,7 +28,8 @@ Juha Heinanen 1.3. Exported Parameters 1.4. Exported Functions - __________________________________________________________ + + 2. Frequently Asked Questions Chapter 1. User's Guide @@ -43,27 +52,55 @@ Chapter 1. User's Guide application/simple-message-summary: Content must start with Messages-Waiting status line followed by zero or more lines that consist of tabs and printable ASCII characters. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * presence. - __________________________________________________________ 1.2.2. External Libraries or Applications None. - __________________________________________________________ 1.3. Exported Parameters None. - __________________________________________________________ 1.4. Exported Functions None to be used in configuration file. + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/presence_mwi/doc/presence_mwi.sgml b/modules_k/presence_mwi/doc/presence_mwi.xml similarity index 72% rename from modules_k/presence_mwi/doc/presence_mwi.sgml rename to modules_k/presence_mwi/doc/presence_mwi.xml index ab404dafb..f852339ca 100644 --- a/modules_k/presence_mwi/doc/presence_mwi.sgml +++ b/modules_k/presence_mwi/doc/presence_mwi.xml @@ -1,12 +1,14 @@ - + - + + - + %docentities; ]> diff --git a/modules_k/presence_mwi/doc/presence_mwi_user.sgml b/modules_k/presence_mwi/doc/presence_mwi_admin.xml similarity index 100% rename from modules_k/presence_mwi/doc/presence_mwi_user.sgml rename to modules_k/presence_mwi/doc/presence_mwi_admin.xml diff --git a/modules_k/presence_xml/README b/modules_k/presence_xml/README index 79aedb10c..b1b1bc497 100644 --- a/modules_k/presence_xml/README +++ b/modules_k/presence_xml/README @@ -9,9 +9,13 @@ Edited by Anca-Maria Vamanu Copyright © 2007 voice-system.ro + Revision History + Revision $Revision: 1499 $ $Date: 2007-01-12 14:05:57 +0200 + (Fri, 12 Jan 2007) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -33,15 +37,16 @@ Anca-Maria Vamanu 1.5. Installation 2. Developer's Guide + 3. Frequently Asked Questions List of Examples - 1-1. Set db_url parameter - 1-2. Set xcap_table parameter - 1-3. Set force_active parameter - 1-4. Set pidf_manipulation parameter - 1-5. Set integrated_xcap_server parameter - 1-6. Set xcap_server parameter - __________________________________________________________ + + 1.1. Set db_url parameter + 1.2. Set xcap_table parameter + 1.3. Set force_active parameter + 1.4. Set pidf_manipulation parameter + 1.5. Set integrated_xcap_server parameter + 1.6. Set xcap_server parameter Chapter 1. User's Guide @@ -55,29 +60,24 @@ Chapter 1. User's Guide This module takes the xcap permission rule documents from xcap_table. The presence permission rules are interpreted according to the specifications in RFC 4745 and RFC 5025. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * a database module. * presence. * sl. * xcap_client. Only compulsory if not using an integrated xcap server (if 'integrated_xcap_server' parameter is not set). - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * libxml. - __________________________________________________________ 1.3. Exported Parameters @@ -87,12 +87,11 @@ Chapter 1. User's Guide Default value is "NULL". - Example 1-1. Set db_url parameter + Example 1.1. Set db_url parameter ... modparam("presence_xml", "db_url", "mysql://openser:openserrw@192.168.2.132/openser") ... - __________________________________________________________ 1.3.2. xcap_table(str) @@ -100,11 +99,10 @@ modparam("presence_xml", "db_url", Default value is "xcap". - Example 1-2. Set xcap_table parameter + Example 1.2. Set xcap_table parameter ... modparam("presence_xml", "xcap_table", "xcaps") ... - __________________________________________________________ 1.3.3. force_active (int) @@ -122,11 +120,10 @@ modparam("presence_xml", "xcap_table", "xcaps") Default value is "0". - Example 1-3. Set force_active parameter + Example 1.3. Set force_active parameter ... modparam("presence_xml", "force_active", 1) ... - __________________________________________________________ 1.3.4. pidf_manipulation (int) @@ -141,11 +138,10 @@ modparam("presence_xml", "force_active", 1) Default value is "0". - Example 1-4. Set pidf_manipulation parameter + Example 1.4. Set pidf_manipulation parameter ... modparam("presence_xml", "pidf_manipulation", 1) ... - __________________________________________________________ 1.3.5. integrated_xcap_server (int) @@ -161,11 +157,10 @@ modparam("presence_xml", "pidf_manipulation", 1) Default value is "0". - Example 1-5. Set integrated_xcap_server parameter + Example 1.5. Set integrated_xcap_server parameter ... modparam("presence_xml", "integrated_xcap_server", 1) ... - __________________________________________________________ 1.3.6. server_address (str) @@ -173,17 +168,15 @@ modparam("presence_xml", "integrated_xcap_server", 1) parameter is not set. It can be set more that once, to construct an address list of trusted XCAP servers. - Example 1-6. Set xcap_server parameter + Example 1.6. Set xcap_server parameter ... modparam("presence_xml", "xcap_server", "xcap_server.example.org") modparam("presence_xml", "xcap_server", "xcap_server.ag.org") ... - __________________________________________________________ 1.4. Exported Functions None to be used in configuration file. - __________________________________________________________ 1.5. Installation @@ -193,9 +186,41 @@ modparam("presence_xml", "xcap_server", "xcap_server.ag.org") folder. You can also find the complete database documentation on the project webpage, http://www.openser.org/docs/db-tables/openser-db-devel.html. - __________________________________________________________ Chapter 2. Developer's Guide The module exports no function to be used in other OpenSER modules. + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/presence_xml/doc/presence_xml.sgml b/modules_k/presence_xml/doc/presence_xml.xml similarity index 73% rename from modules_k/presence_xml/doc/presence_xml.sgml rename to modules_k/presence_xml/doc/presence_xml.xml index e90bbeac9..27bf15a62 100644 --- a/modules_k/presence_xml/doc/presence_xml.sgml +++ b/modules_k/presence_xml/doc/presence_xml.xml @@ -1,12 +1,14 @@ - + - - + + + - + %docentities; ]> diff --git a/modules_k/presence_xml/doc/presence_xml_user.sgml b/modules_k/presence_xml/doc/presence_xml_admin.xml similarity index 99% rename from modules_k/presence_xml/doc/presence_xml_user.sgml rename to modules_k/presence_xml/doc/presence_xml_admin.xml index 629f96d0b..fceff09e8 100644 --- a/modules_k/presence_xml/doc/presence_xml_user.sgml +++ b/modules_k/presence_xml/doc/presence_xml_admin.xml @@ -17,7 +17,6 @@ The presence permission rules are interpreted according to the specifications in RFC 4745 and RFC 5025. -
diff --git a/modules_k/presence_xml/doc/presence_xml_devel.sgml b/modules_k/presence_xml/doc/presence_xml_devel.xml similarity index 100% rename from modules_k/presence_xml/doc/presence_xml_devel.sgml rename to modules_k/presence_xml/doc/presence_xml_devel.xml diff --git a/modules_k/pua/README b/modules_k/pua/README index 84e7c6948..ba86eaa09 100644 --- a/modules_k/pua/README +++ b/modules_k/pua/README @@ -9,9 +9,13 @@ Edited by Anca-Maria Vamanu Copyright © 2006 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -44,19 +48,21 @@ Anca-Maria Vamanu 2.5. register_puacb 2.6. add_event + 3. Frequently Asked Questions + List of Examples - 1-1. Set hash_size parameter - 1-2. Set db_url parameter - 1-3. Set db_table parameter - 1-4. Set min_expires parameter - 1-5. Set default_expires parameter - 1-6. Set update_period parameter - 1-7. pua_update_contact usage - 2-1. pua_api structure - 2-2. pua_is_dialog usage example - 2-3. register_puacb usage example - 2-4. add_event usage example - __________________________________________________________ + + 1.1. Set hash_size parameter + 1.2. Set db_url parameter + 1.3. Set db_table parameter + 1.4. Set min_expires parameter + 1.5. Set default_expires parameter + 1.6. Set update_period parameter + 1.7. pua_update_contact usage + 2.1. pua_api structure + 2.2. pua_is_dialog usage example + 2.3. register_puacb usage example + 2.4. add_event usage example Chapter 1. User's Guide @@ -79,25 +85,20 @@ Chapter 1. User's Guide The module use cache to store presentity list and writes to database on timer to be able to recover upon restart. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * a database modules. * tm. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * libxml. - __________________________________________________________ 1.3. Exported Parameters @@ -108,11 +109,10 @@ Chapter 1. User's Guide Default value is "4". - Example 1-1. Set hash_size parameter + Example 1.1. Set hash_size parameter ... modparam("pua", "hash_size", 9) ... - __________________________________________________________ 1.3.2. db_url (str) @@ -120,12 +120,11 @@ modparam("pua", "hash_size", 9) Default value is "NULL". - Example 1-2. Set db_url parameter + Example 1.2. Set db_url parameter ... modparam("pua", "db_url" "mysql://openser:openserrw@192.168.2.132/openser") ... - __________________________________________________________ 1.3.3. db_table (str) @@ -133,11 +132,10 @@ modparam("pua", "db_url" Default value is "pua". - Example 1-3. Set db_table parameter + Example 1.3. Set db_table parameter ... modparam("pua", "db_table", "pua") ... - __________________________________________________________ 1.3.4. min_expires (int) @@ -145,11 +143,10 @@ modparam("pua", "db_table", "pua") Default value is "0". - Example 1-4. Set min_expires parameter + Example 1.4. Set min_expires parameter ... modparam("pua", "min_expires", 0) ... - __________________________________________________________ 1.3.5. default_expires (int) @@ -158,11 +155,10 @@ modparam("pua", "min_expires", 0) Default value is "3600". - Example 1-5. Set default_expires parameter + Example 1.5. Set default_expires parameter ... modparam("pua", "default_expires", 3600) ... - __________________________________________________________ 1.3.6. update_period (int) @@ -172,15 +168,14 @@ modparam("pua", "default_expires", 3600) Default value is "30". - Example 1-6. Set update_period parameter + Example 1.6. Set update_period parameter ... modparam("pua", "update_period", 100) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. pua_update_contact() +1.4.1. pua_update_contact() The remote target can be updated by the Contact of a subsequent in dialog request. In the PUA watcher case (sending a SUBSCRIBE @@ -193,16 +188,14 @@ modparam("pua", "update_period", 100) This function can be used from REQUEST_ROUTE. Return code: - * 1 - if success. * -1 - if error. - Example 1-7. pua_update_contact usage + Example 1.7. pua_update_contact usage ... if(method=="NOTIFY") pua_update_contact(); ... - __________________________________________________________ 1.5. Installation @@ -212,20 +205,18 @@ if(method=="NOTIFY") folder. You can also find the complete database documentation on the project webpage, http://www.openser.org/docs/db-tables/openser-db-devel.html. - __________________________________________________________ Chapter 2. Developer's Guide The module provides the following functions that can be used in other OpenSER modules. - __________________________________________________________ -2.1. bind_pua(pua_api_t* api) +2.1. bind_pua(pua_api_t* api) This function binds the pua modules and fills the structure with the two exported function. - Example 2-1. pua_api structure + Example 2.1. pua_api structure ... typedef struct pua_api { send_subscribe_t send_subscribe; @@ -235,9 +226,8 @@ typedef struct pua_api { add_pua_event_t add_event; } pua_api_t; ... - __________________________________________________________ -2.2. send_publish +2.2. send_publish Field type: ... @@ -286,9 +276,8 @@ typedef struct publ_info ... typedef int (publrpl_cb_t)(struct sip_msg* reply, void* extra_param); ... - __________________________________________________________ -2.3. send_subscribe +2.3. send_subscribe Field type: ... @@ -326,9 +315,8 @@ typedef struct subs_info XMPP_INITIAL_SUBS */ }subs_info_t; ... - __________________________________________________________ -2.4. is_dialog +2.4. is_dialog Field type: ... @@ -338,17 +326,16 @@ typedef int (*query_dialog_t)(ua_pres_t* presentity); This function checks is the parameter corresponds to a stored Subscribe initiated dialog. - Example 2-2. pua_is_dialog usage example + Example 2.2. pua_is_dialog usage example ... - if(pua_is_dialog(dialog)< 0) + if(pua_is_dialog(dialog) < 0) { LM_ERR("querying dialog\n"); goto error; } ... - __________________________________________________________ -2.5. register_puacb +2.5. register_puacb Field type: ... @@ -364,17 +351,16 @@ typedef int (*register_puacb_t)(int types, pua_cb f, void* param ); structure for that request and the first line of the reply message. - Example 2-3. register_puacb usage example + Example 2.3. register_puacb usage example ... - if(pua.register_puacb(XMPP_SUBSCRIBE, Sipreply2Xmpp, NULL)< 0) + if(pua.register_puacb(XMPP_SUBSCRIBE, Sipreply2Xmpp, NULL) & 0) { LM_ERR("Could not register callback\n"); return -1; } ... - __________________________________________________________ -2.6. add_event +2.6. add_event Field type: ... @@ -410,13 +396,46 @@ typedef int (evs_process_body_t)(struct publ_info* publ, be given as a parameter; ... - Example 2-4. add_event usage example + Example 2.4. add_event usage example ... if(pua.add_event((PRESENCE_EVENT, "presence", "application/pidf+ xml", - pres_process_body)< 0) + pres_process_body) & 0) { LM_ERR("Could not register new event\n"); return -1; } ... + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/pua/doc/pua.sgml b/modules_k/pua/doc/pua.xml similarity index 66% rename from modules_k/pua/doc/pua.sgml rename to modules_k/pua/doc/pua.xml index baa85a95f..0c34f0f18 100644 --- a/modules_k/pua/doc/pua.sgml +++ b/modules_k/pua/doc/pua.xml @@ -1,12 +1,14 @@ - + - - + + + - + %docentities; ]> @@ -41,8 +43,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/pua/doc/pua_user.sgml b/modules_k/pua/doc/pua_admin.xml similarity index 100% rename from modules_k/pua/doc/pua_user.sgml rename to modules_k/pua/doc/pua_admin.xml diff --git a/modules_k/pua/doc/pua_devel.sgml b/modules_k/pua/doc/pua_devel.xml similarity index 98% rename from modules_k/pua/doc/pua_devel.sgml rename to modules_k/pua/doc/pua_devel.xml index d262c93f5..ce7b3eb66 100644 --- a/modules_k/pua/doc/pua_devel.sgml +++ b/modules_k/pua/doc/pua_devel.xml @@ -51,6 +51,7 @@ typedef int (*send_publish_t)(publ_info_t* publ); The structure received as a parameter: + ... typedef struct publ_info @@ -164,7 +165,7 @@ typedef int (*query_dialog_t)(ua_pres_t* presentity); <function>pua_is_dialog </function>usage example ... - if(pua_is_dialog(dialog)< 0) + if(pua_is_dialog(dialog) < 0) { LM_ERR("querying dialog\n"); goto error; @@ -200,7 +201,7 @@ typedef int (*register_puacb_t)(int types, pua_cb f, void* param ); <function>register_puacb </function>usage example ... - if(pua.register_puacb(XMPP_SUBSCRIBE, Sipreply2Xmpp, NULL)< 0) + if(pua.register_puacb(XMPP_SUBSCRIBE, Sipreply2Xmpp, NULL) & 0) { LM_ERR("Could not register callback\n"); return -1; @@ -260,7 +261,7 @@ typedef int (evs_process_body_t)(struct publ_info* publ, ... if(pua.add_event((PRESENCE_EVENT, "presence", "application/pidf+xml", - pres_process_body)< 0) + pres_process_body) & 0) { LM_ERR("Could not register new event\n"); return -1; diff --git a/modules_k/pua_bla/README b/modules_k/pua_bla/README index 7c26c5870..2793ea8ba 100644 --- a/modules_k/pua_bla/README +++ b/modules_k/pua_bla/README @@ -9,9 +9,13 @@ Edited by Anca-Maria Vamanu Copyright © 2007 voice-system.ro + Revision History + Revision $Revision: 1294 $ $Date: 2007-03-13 14:05:07 +0200 + (Thu, 13 March 2007) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -32,14 +36,16 @@ Anca-Maria Vamanu 1.4.1. bla_set_flag 1.4.2. bla_handle_notify + 2. Frequently Asked Questions + List of Examples - 1-1. Set default_domain parameter - 1-2. Set header_name parameter - 1-3. Set outbound_proxy parameter - 1-4. Set server_address parameter - 1-5. bla_set_flag usage - 1-6. bla_handle_notify usage - __________________________________________________________ + + 1.1. Set default_domain parameter + 1.2. Set header_name parameter + 1.3. Set outbound_proxy parameter + 1.4. Set server_address parameter + 1.5. bla_set_flag usage + 1.6. bla_handle_notify usage Chapter 1. User's Guide @@ -48,26 +54,21 @@ Chapter 1. User's Guide The pua_bla module enables Bridged Line Appearances support according to the specifications in draft-anil-sipping-bla-03.txt. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * usrloc. * pua. * presence. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * libxml. - __________________________________________________________ 1.3. Exported Parameters @@ -78,11 +79,10 @@ Chapter 1. User's Guide Default value is "NULL". - Example 1-1. Set default_domain parameter + Example 1.1. Set default_domain parameter ... modparam("pua_bla", "default_domain", "openser.org") ... - __________________________________________________________ 1.3.2. header_name(str) @@ -93,11 +93,10 @@ modparam("pua_bla", "default_domain", "openser.org") Default value is "NULL". - Example 1-2. Set header_name parameter + Example 1.2. Set header_name parameter ... modparam("pua_bla", "header_name", "Sender") ... - __________________________________________________________ 1.3.3. outbound_proxy(str) @@ -106,45 +105,42 @@ modparam("pua_bla", "header_name", "Sender") Default value is "NULL". - Example 1-3. Set outbound_proxy parameter + Example 1.3. Set outbound_proxy parameter ... modparam("pua_bla", "outbound_proxy", "sip:proxy@openser.org") ... - __________________________________________________________ 1.3.4. server_address(str) The IP address of the server. - Example 1-4. Set server_address parameter + Example 1.4. Set server_address parameter ... modparam("pua_bla", "server_address", "sip:bla@160.34.23.12") ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. bla_set_flag +1.4.1. bla_set_flag The function is used to mark REGISTER requests made to a BLA AOR. The modules subscribes to the registered contacts for dialog;sla event. - Example 1-5. bla_set_flag usage + Example 1.5. bla_set_flag usage ... if(is_method("REGISTER") && to_uri=~"bla_aor@openser.org") bla_set_flag(); ... - __________________________________________________________ -1.4.2. bla_handle_notify +1.4.2. bla_handle_notify The function handles Notify requests sent from phones on the same BLA to the server. The message is transformed in Publish request and passed to presence module for further handling. in case of a successful processing a 2xx reply should be sent. - Example 1-6. bla_handle_notify usage + Example 1.6. bla_handle_notify usage ... if(is_method("NOTIFY") && to_uri=~"bla_aor@openser.org") { @@ -152,3 +148,36 @@ if(is_method("NOTIFY") && to_uri=~"bla_aor@openser.org") t_reply("200", "OK"); } ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/pua_bla/doc/pua_bla.sgml b/modules_k/pua_bla/doc/pua_bla.xml similarity index 76% rename from modules_k/pua_bla/doc/pua_bla.sgml rename to modules_k/pua_bla/doc/pua_bla.xml index b2ca95c40..e8b9e6287 100644 --- a/modules_k/pua_bla/doc/pua_bla.sgml +++ b/modules_k/pua_bla/doc/pua_bla.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> diff --git a/modules_k/pua_bla/doc/pua_bla_user.sgml b/modules_k/pua_bla/doc/pua_bla_admin.xml similarity index 96% rename from modules_k/pua_bla/doc/pua_bla_user.sgml rename to modules_k/pua_bla/doc/pua_bla_admin.xml index 6c87f7814..bc969cd00 100644 --- a/modules_k/pua_bla/doc/pua_bla_user.sgml +++ b/modules_k/pua_bla/doc/pua_bla_admin.xml @@ -147,7 +147,7 @@ modparam("pua_bla", "server_address", "sip:bla@160.34.23.12") <function>bla_set_flag</function> usage ... -if(is_method("REGISTER") && to_uri=~"bla_aor@openser.org") +if(is_method("REGISTER") && to_uri=~"bla_aor@openser.org") bla_set_flag(); ... @@ -170,7 +170,7 @@ if(is_method("REGISTER") && to_uri=~"bla_aor@openser.org") <function>bla_handle_notify</function> usage ... -if(is_method("NOTIFY") && to_uri=~"bla_aor@openser.org") +if(is_method("NOTIFY") && to_uri=~"bla_aor@openser.org") { if( bla_handle_notify() ) t_reply("200", "OK"); diff --git a/modules_k/pua_mi/README b/modules_k/pua_mi/README index 46b45b0e9..ba8b480bb 100644 --- a/modules_k/pua_mi/README +++ b/modules_k/pua_mi/README @@ -8,12 +8,18 @@ Edited by Anca-Maria Vamanu +Edited by + Juha Heinanen Copyright © 2006 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -30,9 +36,11 @@ Juha Heinanen 1.6. pua_subscribe + 2. Frequently Asked Questions + List of Examples - 1-1. pua_publish FIFO example - __________________________________________________________ + + 1.1. pua_publish FIFO example Chapter 1. User's Guide @@ -48,42 +56,34 @@ Chapter 1. User's Guide active subscribers ...). Also, this module allows non-SIP speaking applications to subscribe presence information kept in a SIP presence server. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * pua - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * none - __________________________________________________________ 1.3. Exported Parameters * none - __________________________________________________________ 1.4. Exported Functions The module does not export functions to be used in configuration script. - __________________________________________________________ 1.5. Exported MI functions -1.5.1. pua_publish +1.5.1. pua_publish Command parameters: - * presentity_uri - e.g. sip:system@openser.org * expires - Relative expires time in seconds (e.g. 3600). * event package - Event package that is target of published @@ -96,8 +96,9 @@ Chapter 1. User's Guide information or missing if no published information. It has to be a single line for FIFO transport. - Example 1-1. pua_publish FIFO example + Example 1.1. pua_publish FIFO example ... + :pua_publish:fifo_test_reply sip:system@openser.org 3600 @@ -111,14 +112,46 @@ ystem@openser.org'>openaway CPU:16 MEM:476 - __________________________________________________________ -1.6. pua_subscribe - Command parameters: +1.6. pua_subscribe + Command parameters: * presentity_uri - e.g. sip:presentity@openser.org * watcher_uri - e.g. sip:watcher@openser.org * event package * expires - Relative time in seconds for the desired validity of the subscription. + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/pua_mi/doc/pua_mi.sgml b/modules_k/pua_mi/doc/pua_mi.xml similarity index 71% rename from modules_k/pua_mi/doc/pua_mi.sgml rename to modules_k/pua_mi/doc/pua_mi.xml index 373c730df..6f7f9a5ab 100644 --- a/modules_k/pua_mi/doc/pua_mi.sgml +++ b/modules_k/pua_mi/doc/pua_mi.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -47,8 +49,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/pua_mi/doc/pua_mi_user.sgml b/modules_k/pua_mi/doc/pua_mi_admin.xml similarity index 95% rename from modules_k/pua_mi/doc/pua_mi_user.sgml rename to modules_k/pua_mi/doc/pua_mi_admin.xml index cac08c13b..19f269790 100644 --- a/modules_k/pua_mi/doc/pua_mi_user.sgml +++ b/modules_k/pua_mi/doc/pua_mi_admin.xml @@ -29,6 +29,7 @@ &ser; Modules The following modules must be loaded before this module: + @@ -43,6 +44,7 @@ The following libraries or applications must be installed before running &ser; with this module loaded: + @@ -50,13 +52,11 @@ -
Exported Parameters - @@ -64,7 +64,6 @@ -
@@ -80,6 +79,7 @@ Command parameters: + @@ -96,14 +96,14 @@ - event package + event package - Event package that is target of published information (e.g. presence). - content type + content type - Content type of published information (e.g. application/pidf+xml) or . if no information is enclosed. @@ -111,14 +111,14 @@ - ETag + ETag - ETag that publish should match or . if no ETag is given. - body + body - The body of the publish request containing published information or missing if no published information. @@ -126,7 +126,6 @@ - <function>pua_publish</function> FIFO example @@ -151,6 +150,7 @@ application/pidf+xml Command parameters: + @@ -172,11 +172,11 @@ application/pidf+xml - expires + expires - Relative time in seconds for the desired validity of the subscription. - +
diff --git a/modules_k/pua_usrloc/README b/modules_k/pua_usrloc/README index 7e8f9b53b..d646e6a4a 100644 --- a/modules_k/pua_usrloc/README +++ b/modules_k/pua_usrloc/README @@ -9,9 +9,13 @@ Edited by Anca-Maria Vamanu Copyright © 2006 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -29,11 +33,13 @@ Anca-Maria Vamanu 1.4.1. pua_set_publish() + 2. Frequently Asked Questions + List of Examples - 1-1. Set default_domain parameter - 1-2. Set presentity_prefix parameter - 1-3. pua_set_publish usage - __________________________________________________________ + + 1.1. Set default_domain parameter + 1.2. Set presentity_prefix parameter + 1.3. pua_set_publish usage Chapter 1. User's Guide @@ -47,25 +53,20 @@ Chapter 1. User's Guide Using this module, phones which have no support for presence can be seen as online/offline. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * usrloc. * pua. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * libxml. - __________________________________________________________ 1.3. Exported Parameters @@ -76,11 +77,10 @@ Chapter 1. User's Guide Default value is "NULL". - Example 1-1. Set default_domain parameter + Example 1.1. Set default_domain parameter ... modparam(pua_usrloc, "default_domain", "openser.org"); ... - __________________________________________________________ 1.3.2. entity_prefix (str) @@ -89,22 +89,54 @@ modparam(pua_usrloc, "default_domain", "openser.org"); Default value is "NULL". - Example 1-2. Set presentity_prefix parameter + Example 1.2. Set presentity_prefix parameter ... modparam(pua_usrloc, "entity_prefix", "pres"); ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. pua_set_publish() +1.4.1. pua_set_publish() The function is used to mark REGISTER requests that have to issue a PUBLISH. The PUBLISH is issued when REGISTER is saved in location table. - Example 1-3. pua_set_publish usage + Example 1.3. pua_set_publish usage ... if(is_method("REGISTER") && from_uri=~"john@openser.org") pua_set_publish(); ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/pua_usrloc/doc/pua_usrloc.sgml b/modules_k/pua_usrloc/doc/pua_usrloc.xml similarity index 67% rename from modules_k/pua_usrloc/doc/pua_usrloc.sgml rename to modules_k/pua_usrloc/doc/pua_usrloc.xml index c93394263..0f76a1057 100644 --- a/modules_k/pua_usrloc/doc/pua_usrloc.sgml +++ b/modules_k/pua_usrloc/doc/pua_usrloc.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -40,8 +42,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/pua_usrloc/doc/pua_usrloc_user.sgml b/modules_k/pua_usrloc/doc/pua_usrloc_admin.xml similarity index 95% rename from modules_k/pua_usrloc/doc/pua_usrloc_user.sgml rename to modules_k/pua_usrloc/doc/pua_usrloc_admin.xml index 7feb70a0d..71159b310 100644 --- a/modules_k/pua_usrloc/doc/pua_usrloc_user.sgml +++ b/modules_k/pua_usrloc/doc/pua_usrloc_admin.xml @@ -71,6 +71,8 @@ ... modparam(pua_usrloc, "default_domain", "openser.org"); ... + +
<varname>entity_prefix</varname> (str) @@ -89,6 +91,8 @@ modparam(pua_usrloc, "default_domain", "openser.org"); ... modparam(pua_usrloc, "entity_prefix", "pres"); ... + +
@@ -109,7 +113,7 @@ modparam(pua_usrloc, "entity_prefix", "pres"); <function>pua_set_publish</function> usage ... -if(is_method("REGISTER") && from_uri=~"john@openser.org") +if(is_method("REGISTER") && from_uri=~"john@openser.org") pua_set_publish(); ... diff --git a/modules_k/pua_xmpp/README b/modules_k/pua_xmpp/README index d42ec3454..db52aee26 100644 --- a/modules_k/pua_xmpp/README +++ b/modules_k/pua_xmpp/README @@ -9,9 +9,13 @@ Edited by Anca-Maria Vamanu Copyright © 2007 voice-system.ro + Revision History + Revision $Revision: 1499 $ $Date: 2007-03-12 14:05:57 +0200 + (Fri, 12 Jan 2007) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -30,15 +34,16 @@ Anca-Maria Vamanu 1.4.2. pua_xmpp_req_winfo(char* request_uri, char* expires) - 1.4.3. Filtering + 1.5. Filtering 2. Developer's Guide + 3. Frequently Asked Questions List of Examples - 1-1. Set server_address parameter - 1-2. Notify2Xmpp usage - 1-3. xmpp_send_winfo usage - __________________________________________________________ + + 1.1. Set server_address parameter + 1.2. Notify2Xmpp usage + 1.3. xmpp_send_winfo usage Chapter 1. User's Guide @@ -49,26 +54,21 @@ Chapter 1. User's Guide It translates one format into another and uses xmpp, pua and presence modules to manage the transmition of presence state information. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * presence. * pua. * xmpp. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * libxml. - __________________________________________________________ 1.3. Exported Parameters @@ -76,18 +76,16 @@ Chapter 1. User's Guide The IP address of the server. - Example 1-1. Set server_address parameter + Example 1.1. Set server_address parameter ... modparam("pua_xmpp", "server_address", "160.23.23.10") ... - __________________________________________________________ 1.4. Exported Functions Functions exported to be used in configuration file. - __________________________________________________________ -1.4.1. pua_xmpp_notify() +1.4.1. pua_xmpp_notify() Function that handles Notify messages addressed to a user from an xmpp domain. It requires filtering after method and domain @@ -96,7 +94,7 @@ modparam("pua_xmpp", "server_address", "160.23.23.10") This function can be used from REQUEST_ROUTE. - Example 1-2. Notify2Xmpp usage + Example 1.2. Notify2Xmpp usage ... if( is_method("NOTIFY") && uri=~"sip:.+@sip-xmpp.siphub.ro") { @@ -105,9 +103,8 @@ modparam("pua_xmpp", "server_address", "160.23.23.10") exit; } ... - __________________________________________________________ -1.4.2. pua_xmpp_req_winfo(char* request_uri, char* expires) +1.4.2. pua_xmpp_req_winfo(char* request_uri, char* expires) Function called when a Subscribe addressed to a user from a xmpp domain is received. It calls sending a Subscribe for winfo @@ -121,13 +118,13 @@ modparam("pua_xmpp", "server_address", "160.23.23.10") This function can be used from REQUEST_ROUTE. - Example 1-3. xmpp_send_winfo usage + Example 1.3. xmpp_send_winfo usage ... if( is_method("SUBSCRIBE")) { handle_subscribe(); - if( uri=~"sip:.+@sip-xmpp.siphub.ro" && $hdr(Event)== "p -resence") + if(uri=~"sip:.+@sip-xmpp.siphub.ro" && $hdr(Event)== "pr +esence") { pua_xmpp_req_winfo("$ruri", "$hdr(Expires)"); } @@ -135,16 +132,47 @@ resence") } ... - __________________________________________________________ -1.4.3. Filtering +1.5. Filtering Instead of "sip-xmpp.siphub.ro" in the example you should use the value set for the xmpp module parameter named 'gateway_domain'. - __________________________________________________________ Chapter 2. Developer's Guide The module provides no function to be used in other OpenSER modules. + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/pua_xmpp/doc/pua_xmpp.sgml b/modules_k/pua_xmpp/doc/pua_xmpp.xml similarity index 75% rename from modules_k/pua_xmpp/doc/pua_xmpp.sgml rename to modules_k/pua_xmpp/doc/pua_xmpp.xml index 9522a024c..1dff4ed4e 100644 --- a/modules_k/pua_xmpp/doc/pua_xmpp.sgml +++ b/modules_k/pua_xmpp/doc/pua_xmpp.xml @@ -1,13 +1,15 @@ - + - - + + + - + %docentities; ]> diff --git a/modules_k/pua_xmpp/doc/pua_xmpp_user.sgml b/modules_k/pua_xmpp/doc/pua_xmpp_admin.xml similarity index 95% rename from modules_k/pua_xmpp/doc/pua_xmpp_user.sgml rename to modules_k/pua_xmpp/doc/pua_xmpp_admin.xml index 513db7526..31b5fe996 100644 --- a/modules_k/pua_xmpp/doc/pua_xmpp_user.sgml +++ b/modules_k/pua_xmpp/doc/pua_xmpp_admin.xml @@ -95,7 +95,7 @@ modparam("pua_xmpp", "server_address", "160.23.23.10") <function>Notify2Xmpp</function> usage ... - if( is_method("NOTIFY") && uri=~"sip:.+@sip-xmpp.siphub.ro") + if( is_method("NOTIFY") && uri=~"sip:.+@sip-xmpp.siphub.ro") { if(Notify2Xmpp()) t_reply("200", "OK"); @@ -121,6 +121,7 @@ modparam("pua_xmpp", "server_address", "160.23.23.10") It takes 2 parameters: request_uri and the value of Expires header field in received Subscribe. + This function can be used from REQUEST_ROUTE. @@ -131,7 +132,7 @@ modparam("pua_xmpp", "server_address", "160.23.23.10") if( is_method("SUBSCRIBE")) { handle_subscribe(); - if( uri=~"sip:.+@sip-xmpp.siphub.ro" && $hdr(Event)== "presence") + if(uri=~"sip:.+@sip-xmpp.siphub.ro" && $hdr(Event)== "presence") { pua_xmpp_req_winfo("$ruri", "$hdr(Expires)"); } @@ -142,6 +143,7 @@ modparam("pua_xmpp", "server_address", "160.23.23.10") +
Filtering diff --git a/modules_k/pua_xmpp/doc/pua_xmpp_devel.sgml b/modules_k/pua_xmpp/doc/pua_xmpp_devel.xml similarity index 100% rename from modules_k/pua_xmpp/doc/pua_xmpp_devel.sgml rename to modules_k/pua_xmpp/doc/pua_xmpp_devel.xml diff --git a/modules_k/ratelimit/README b/modules_k/ratelimit/README index 780d1e761..7de1cbc16 100644 --- a/modules_k/ratelimit/README +++ b/modules_k/ratelimit/README @@ -10,16 +10,24 @@ Edited by Ovidiu Sas +Edited by + Bogdan Vasile Harjoc +Edited by + Hendrik Scholz Copyright © 2006 Freenet Cityline GmbH Copyright © 2008 VoIP Embedded Inc. + Revision History + Revision $Revision: 3839 $ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -66,16 +74,18 @@ Hendrik Scholz 1.9. Known limitations + 2. Frequently Asked Questions + List of Examples - 1-1. Set timer_interval parameter - 1-2. Set queue parameter - 1-3. Set pipe parameter - 1-4. Set reply_code parameter - 1-5. Set reply_reason parameter - 1-6. rl_check usage - 1-7. rl_check_pipe usage - 1-8. rl_drop usage - __________________________________________________________ + + 1.1. Set timer_interval parameter + 1.2. Set queue parameter + 1.3. Set pipe parameter + 1.4. Set reply_code parameter + 1.5. Set reply_reason parameter + 1.6. rl_check usage + 1.7. rl_check_pipe usage + 1.8. rl_drop usage Chapter 1. User's Guide @@ -91,7 +101,6 @@ Chapter 1. User's Guide method is associated with its own queue and a number of queues are connected to a certain pipe (see the queue and pipe params). - __________________________________________________________ 1.2. Use Cases @@ -115,14 +124,12 @@ Chapter 1. User's Guide the configured threshold. If the load is exceeded the function returns an error and an administrator can discard requests with a stateless response. - __________________________________________________________ 1.3. Static Rate Limiting Algorithms The ratelimit module supports two different statc algorithms to be used by rl_check to determine whether a message should be blocked or not. - __________________________________________________________ 1.3.1. Tail Drop Algorithm (TAILDROP) @@ -139,7 +146,6 @@ Chapter 1. User's Guide proxy at the same time when a common Expire timer expired. Other requests will be retransmissed after given time, the same on all devices with the same firmware/by the same vendor. - __________________________________________________________ 1.3.2. Random Early Detection Algorithm (RED) @@ -153,7 +159,6 @@ Chapter 1. User's Guide effect OpenSER might drop messages although the limit might not be reached within the interval. Decrease the timer interval if you encounter this. - __________________________________________________________ 1.4. Dynamic Rate Limiting Algorithms @@ -169,7 +174,6 @@ Chapter 1. User's Guide permits tuning the rates based on internal server parameters and is somewhat more flexible (or it will be when support for external load factors - as opposed to cpu load - is added). - __________________________________________________________ 1.4.1. Feedback Algorithm (FEEDBACK) @@ -189,24 +193,19 @@ Chapter 1. User's Guide Generally though, as real life request rates drift by less, adapting should happen much faster. - __________________________________________________________ 1.5. Dependencies 1.5.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.5.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.6. Exported Parameters @@ -221,11 +220,10 @@ Chapter 1. User's Guide Default value is 10. - Example 1-1. Set timer_interval parameter + Example 1.1. Set timer_interval parameter ... modparam("ratelimit", "timer_interval", 5) ... - __________________________________________________________ 1.6.2. queue (integer:string) @@ -239,7 +237,7 @@ modparam("ratelimit", "timer_interval", 5) queues with specific methods will never match. At this time, glob or regexp patterns are not supported. - Example 1-2. Set queue parameter + Example 1.2. Set queue parameter ... # assign pipe no 0 to method REGISTER # assign pipe no 3 to method INVITE @@ -248,7 +246,6 @@ modparam("ratelimit", "queue", "0:REGISTER") modparam("ratelimit", "queue", "3:INVITE") modparam("ratelimit", "queue", "2:*") ... - __________________________________________________________ 1.6.3. pipe (integer:string:integer) @@ -262,7 +259,7 @@ modparam("ratelimit", "queue", "2:*") for TAILDROP or RED, limit means packets/sec, whereas with the FEEDBACK algorithm, it means [CPU] load factor). - Example 1-3. Set pipe parameter + Example 1.3. Set pipe parameter ... # define pipe 0 with a limit of 200 pkts/sec using TAILDROP algorithm # define pipe 1 with a limit of 100 pkts/sec using RED algorithm @@ -273,7 +270,6 @@ modparam("ratelimit", "pipe", "1:RED:100") modparam("ratelimit", "pipe", "2:TAILDROP:50") modparam("ratelimit", "pipe", "3:FEEDBACK:80") ... - __________________________________________________________ 1.6.4. reply_code (integer) @@ -281,11 +277,10 @@ modparam("ratelimit", "pipe", "3:FEEDBACK:80") Default value is 503. - Example 1-4. Set reply_code parameter + Example 1.4. Set reply_code parameter ... modparam("ratelimit", "reply_code", 505) ... - __________________________________________________________ 1.6.5. reply_reason (string) @@ -293,15 +288,14 @@ modparam("ratelimit", "reply_code", 505) Default value is "Server Unavailable". - Example 1-5. Set reply_reason parameter + Example 1.5. Set reply_reason parameter ... modparam("ratelimit", "reply_reason", "Limiting") ... - __________________________________________________________ 1.7. Exported Functions -1.7.1. rl_check([pvar]) +1.7.1. rl_check([pvar]) Check the current request against the matched ratelimit algorithm. If no parameter is provided, the queue will be @@ -316,13 +310,12 @@ modparam("ratelimit", "reply_reason", "Limiting") matched algorithm is reached. Meaning of the parameters is as follows: - * pvar - the pseudovariable holding the pipe id to be used by ratelimit. This function can be used from REQUEST_ROUTE. - Example 1-6. rl_check usage + Example 1.6. rl_check usage ... # perform queue/pipe match for current method if (!rl_check()) { @@ -346,9 +339,8 @@ modparam("ratelimit", "reply_reason", "Limiting") exit; }; ... - __________________________________________________________ -1.7.2. rl_check_pipe([pipe_no]) +1.7.2. rl_check_pipe([pipe_no]) Check the current request against the matched ratelimit algorithm. If no parameter is provided, the queue will be @@ -361,12 +353,11 @@ modparam("ratelimit", "reply_reason", "Limiting") matched algorithm is reached. Meaning of the parameters is as follows: - * pipe_no - the pipe id to be used by ratelimit. This function can be used from REQUEST_ROUTE. - Example 1-7. rl_check_pipe usage + Example 1.7. rl_check_pipe usage ... # perform queue/pipe match for current method if (!rl_check_pipe()) { @@ -380,9 +371,8 @@ modparam("ratelimit", "reply_reason", "Limiting") exit; }; ... - __________________________________________________________ -1.7.3. rl_drop([[min ], max]) +1.7.3. rl_drop([[min ], max]) For the current request, a "503 - Server Unavailable" reply is sent back. The reply may or may not have a "Retry-After" @@ -394,13 +384,12 @@ modparam("ratelimit", "reply_reason", "Limiting") given min and max. Meaning of the parameters is as follows: - * min - the minimum value of "Retry-After" header. - max - the maximum value of "Retry-After" header. + * max - the maximum value of "Retry-After" header. This function can be used from REQUEST_ROUTE. - Example 1-8. rl_drop usage + Example 1.8. rl_drop usage ... if (!rl_check()) { # send back a "503 - Server Unavailable" @@ -409,11 +398,10 @@ modparam("ratelimit", "reply_reason", "Limiting") exit; }; ... - __________________________________________________________ 1.8. Exported MI Functions -1.8.1. rl_stats +1.8.1. rl_stats Lists the parameters and variabiles in the ratelimit module. @@ -424,16 +412,14 @@ modparam("ratelimit", "reply_reason", "Limiting") MI FIFO Command Format: :rl_stats:_reply_fifo_file_ _empty_line_ - __________________________________________________________ -1.8.2. rl_set_pipe +1.8.2. rl_set_pipe Sets the pipe parameters for the given pipe id. Name: rl_set_pipe Parameters: - * pipe_id - pipe id. * pipe_algorithm - the algorithm assigned to the given pipe id. @@ -445,9 +431,8 @@ modparam("ratelimit", "reply_reason", "Limiting") RED 10 _empty_line_ - __________________________________________________________ -1.8.3. rl_get_pipes +1.8.3. rl_get_pipes Gets the list of in use pipes. @@ -458,16 +443,14 @@ modparam("ratelimit", "reply_reason", "Limiting") MI FIFO Command Format: :rl_get_pipes:_reply_fifo_file_ _empty_line_ - __________________________________________________________ -1.8.4. rl_set_queue +1.8.4. rl_set_queue Sets the queue parameters for the given queue id. Name: rl_set_queue Parameters: - * queue_id - queue id. * queue_method - the method assigned to the given queue id. * pipe_id - the pipe id assigned to the given queue id. @@ -478,9 +461,8 @@ modparam("ratelimit", "reply_reason", "Limiting") INVITE 2 _empty_line_ - __________________________________________________________ -1.8.5. rl_get_queues +1.8.5. rl_get_queues Gets the list of in use queues. @@ -491,16 +473,14 @@ modparam("ratelimit", "reply_reason", "Limiting") MI FIFO Command Format: :rl_get_queues:_reply_fifo_file_ _empty_line_ - __________________________________________________________ -1.8.6. rl_set_pid +1.8.6. rl_set_pid Sets the PID Controller parameters for the Feedback Algorithm. Name: rl_set_pid Parameters: - * ki - the integral parameter. * kp - the proportional parameter. * kd - the derivative parameter. @@ -511,9 +491,8 @@ modparam("ratelimit", "reply_reason", "Limiting") 0.5 0.5 _empty_line_ - __________________________________________________________ -1.8.7. rl_get_pid +1.8.7. rl_get_pid Gets the list of in use PID Controller parameters. @@ -524,9 +503,8 @@ modparam("ratelimit", "reply_reason", "Limiting") MI FIFO Command Format: :rl_get_pid:_reply_fifo_file_ _empty_line_ - __________________________________________________________ -1.8.8. rl_push_load +1.8.8. rl_push_load Force the value of the load parameter. This methos is usefull for testing the Feedback algorithm. @@ -534,7 +512,6 @@ modparam("ratelimit", "reply_reason", "Limiting") Name: rl_push_load Parameters: - * load - the forced value of load (it must be greater then 0.0 and smaller then 1.0). @@ -542,9 +519,8 @@ modparam("ratelimit", "reply_reason", "Limiting") :rl_push_load:_reply_fifo_file_ 0.85 _empty_line_ - __________________________________________________________ -1.8.9. rl_set_dbg +1.8.9. rl_set_dbg This MI function will enable/disable a WARNING debug log exposing the internal counters for each pipe (useful in @@ -553,19 +529,49 @@ modparam("ratelimit", "reply_reason", "Limiting") Name: rl_set_dbg Parameters: - * dbg - the debug value (0 means disable and 1 means enable). MI FIFO Command Format: :rl_set_dbg:_reply_fifo_file_ 1 _empty_line_ - __________________________________________________________ 1.9. Known limitations The pipes and queues are stored as static vectors, so no more than MAX_PIPES/MAX_QUEUES can be added without recompilation. - * MAX_PIPES - 16 * MAX_QUEUES - 10 + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/ratelimit/doc/ratelimit.sgml b/modules_k/ratelimit/doc/ratelimit.xml similarity index 76% rename from modules_k/ratelimit/doc/ratelimit.sgml rename to modules_k/ratelimit/doc/ratelimit.xml index 6f7465ab0..88f41b611 100644 --- a/modules_k/ratelimit/doc/ratelimit.sgml +++ b/modules_k/ratelimit/doc/ratelimit.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -68,8 +70,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/ratelimit/doc/ratelimit_user.sgml b/modules_k/ratelimit/doc/ratelimit_admin.xml similarity index 99% rename from modules_k/ratelimit/doc/ratelimit_user.sgml rename to modules_k/ratelimit/doc/ratelimit_admin.xml index 865592190..d8829933a 100644 --- a/modules_k/ratelimit/doc/ratelimit_user.sgml +++ b/modules_k/ratelimit/doc/ratelimit_admin.xml @@ -304,7 +304,7 @@ modparam("ratelimit", "reply_reason", "Limiting") pvar - the pseudovariable holding the pipe id to be used by ratelimit. - + This function can be used from REQUEST_ROUTE. @@ -356,7 +356,7 @@ modparam("ratelimit", "reply_reason", "Limiting") pipe_no - the pipe id to be used by ratelimit. - + This function can be used from REQUEST_ROUTE. @@ -399,9 +399,12 @@ modparam("ratelimit", "reply_reason", "Limiting") min - the minimum value of "Retry-After" header. + + max - the maximum value of "Retry-After" header. + This function can be used from REQUEST_ROUTE. diff --git a/modules_k/registrar/README b/modules_k/registrar/README index ced1a25a6..0adb49b34 100644 --- a/modules_k/registrar/README +++ b/modules_k/registrar/README @@ -8,12 +8,18 @@ Edited by Jan Janak +Edited by + Bogdan-Andre Iancu Copyright © 2003 FhG FOKUS + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -66,38 +72,37 @@ Bogdan-Andre Iancu 2. Frequently Asked Questions List of Examples - 1-1. Set default_expires parameter - 1-2. Set min_expires parameter - 1-3. Set max_expires parameter - 1-4. Set default_q parameter - 1-5. Set tcp_persistent_flag parameter - 1-6. Set realm_prefix parameter - 1-7. Set append_branches parameter - 1-8. Set aor_avp parameter - 1-9. Set case_sensitive parameter - 1-10. Set received_avp parameter - 1-11. Set received_param parameter - 1-12. Set max_contacts parameter - 1-13. Set retry_after parameter - 1-14. Set sock_flag parameter - 1-15. Set sock_hdr_namer parameter - 1-16. Set method_filtering parameter - 1-17. Set use_path parameter - 1-18. Set path_mode parameter - 1-19. Set path_use_received parameter - 1-20. save usage - 1-21. save usage - 1-22. lookup usage - 1-23. registered usage - 1-24. add_sock_hdr usage - __________________________________________________________ + + 1.1. Set default_expires parameter + 1.2. Set min_expires parameter + 1.3. Set max_expires parameter + 1.4. Set default_q parameter + 1.5. Set tcp_persistent_flag parameter + 1.6. Set realm_prefix parameter + 1.7. Set append_branches parameter + 1.8. Set aor_avp parameter + 1.9. Set case_sensitive parameter + 1.10. Set received_avp parameter + 1.11. Set received_param parameter + 1.12. Set max_contacts parameter + 1.13. Set retry_after parameter + 1.14. Set sock_flag parameter + 1.15. Set sock_hdr_namer parameter + 1.16. Set method_filtering parameter + 1.17. Set use_path parameter + 1.18. Set path_mode parameter + 1.19. Set path_use_received parameter + 1.20. save usage + 1.21. save usage + 1.22. lookup usage + 1.23. registered usage + 1.24. add_sock_hdr usage Chapter 1. User's Guide 1.1. Overview The module contains REGISTER processing logic. - __________________________________________________________ 1.1.1. PATH support @@ -108,7 +113,6 @@ Chapter 1. User's Guide registrar-module, the values of the Path Header(s) along with the contact into usrloc. There are three modes regarding the reply to a REGISTER including one or more Path HFs: - * off - stores the value of the Path headers into usrloc without passing it back to the UAC in the reply. * lazy - stores the Path header and passes it back to the UAC @@ -129,25 +133,20 @@ Chapter 1. User's Guide The whole process is transparent to the user, so no config changes are required beside setting the registrar-parameters "use_path" and "path_mode". - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * usrloc - User Location Module. * sl - Stateless Replies. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -160,11 +159,10 @@ Chapter 1. User's Guide Default value is 3600. - Example 1-1. Set default_expires parameter + Example 1.1. Set default_expires parameter ... modparam("registrar", "default_expires", 1800) ... - __________________________________________________________ 1.3.2. min_expires (integer) @@ -174,11 +172,10 @@ modparam("registrar", "default_expires", 1800) Default value is 60. - Example 1-2. Set min_expires parameter + Example 1.2. Set min_expires parameter ... modparam("registrar", "min_expires", 60) ... - __________________________________________________________ 1.3.3. max_expires (integer) @@ -188,11 +185,10 @@ modparam("registrar", "min_expires", 60) Default value is 0. - Example 1-3. Set max_expires parameter + Example 1.3. Set max_expires parameter ... modparam("registrar", "max_expires", 120) ... - __________________________________________________________ 1.3.4. default_q (integer) @@ -204,11 +200,10 @@ modparam("registrar", "max_expires", 120) Default value is 0. - Example 1-4. Set default_q parameter + Example 1.4. Set default_q parameter ... modparam("registrar", "default_q", 1000) ... - __________________________________________________________ 1.3.5. tcp_persistent_flag (integer) @@ -221,11 +216,10 @@ modparam("registrar", "default_q", 1000) Default value is -1 (disabled). - Example 1-5. Set tcp_persistent_flag parameter + Example 1.5. Set tcp_persistent_flag parameter ... modparam("registrar", "tcp_persistent_flag", 7) ... - __________________________________________________________ 1.3.6. realm_prefix (string) @@ -239,11 +233,10 @@ modparam("registrar", "tcp_persistent_flag", 7) Default value is NULL (none). - Example 1-6. Set realm_prefix parameter + Example 1.6. Set realm_prefix parameter ... modparam("registrar", "realm_prefix", "sip.") ... - __________________________________________________________ 1.3.7. append_branches (integer) @@ -258,11 +251,10 @@ modparam("registrar", "realm_prefix", "sip.") Default value is 1. - Example 1-7. Set append_branches parameter + Example 1.7. Set append_branches parameter ... modparam("registrar", "append_branches", 0) ... - __________________________________________________________ 1.3.8. aor_avp (str) @@ -275,11 +267,10 @@ modparam("registrar", "append_branches", 0) Default value is "NULL" (disabled). - Example 1-8. Set aor_avp parameter + Example 1.8. Set aor_avp parameter ... modparam("registrar", "aor_avp", "$avp(i:3223)") ... - __________________________________________________________ 1.3.9. case_sensitive (integer) @@ -289,11 +280,10 @@ modparam("registrar", "aor_avp", "$avp(i:3223)") Default value is 0. - Example 1-9. Set case_sensitive parameter + Example 1.9. Set case_sensitive parameter ... modparam("registrar", "case_sensitive", 1) ... - __________________________________________________________ 1.3.10. received_avp (str) @@ -303,18 +293,17 @@ modparam("registrar", "case_sensitive", 1) should contain a SIP URI consisting of the source IP, port, and protocol of the REGISTER message being processed. - Note +Note - The value of this parameter should be the same as the value of - corresponding parameter of nathelper module. + The value of this parameter should be the same as the value of + corresponding parameter of nathelper module. Default value is "NULL" (disabled). - Example 1-10. Set received_avp parameter + Example 1.10. Set received_avp parameter ... modparam("registrar", "received_avp", "$avp(s:rcv)") ... - __________________________________________________________ 1.3.11. received_param (string) @@ -323,11 +312,10 @@ modparam("registrar", "received_avp", "$avp(s:rcv)") Default value is "received". - Example 1-11. Set received_param parameter + Example 1.11. Set received_param parameter ... modparam("registrar", "received_param", "rcv") ... - __________________________________________________________ 1.3.12. max_contacts (integer) @@ -337,12 +325,11 @@ modparam("registrar", "received_param", "rcv") Default value is 0. - Example 1-12. Set max_contacts parameter + Example 1.12. Set max_contacts parameter ... # Allow no more than 10 contacts per AOR modparam("registrar", "max_contacts", 10) ... - __________________________________________________________ 1.3.13. retry_after (integer) @@ -359,11 +346,10 @@ modparam("registrar", "max_contacts", 10) Default value is 0 (disabled). - Example 1-13. Set retry_after parameter + Example 1.13. Set retry_after parameter ... modparam("registrar", "retry_after", 30) ... - __________________________________________________________ 1.3.14. sock_flag (integer) @@ -376,11 +362,10 @@ modparam("registrar", "retry_after", 30) Default value is -1 (no flag). - Example 1-14. Set sock_flag parameter + Example 1.14. Set sock_flag parameter ... modparam("registrar", "sock_flag", 18) ... - __________________________________________________________ 1.3.15. sock_hdr_name (string) @@ -392,11 +377,10 @@ modparam("registrar", "sock_flag", 18) Default value is NULL. - Example 1-15. Set sock_hdr_namer parameter + Example 1.15. Set sock_hdr_namer parameter ... modparam("registrar", "sock_hdr_name", "Sock-Info") ... - __________________________________________________________ 1.3.16. method_filtering (integer) @@ -406,11 +390,10 @@ modparam("registrar", "sock_hdr_name", "Sock-Info") Default value is 0 (disabled). - Example 1-16. Set method_filtering parameter + Example 1.16. Set method_filtering parameter ... modparam("registrar", "method_filtering", 1) ... - __________________________________________________________ 1.3.17. use_path (integer) @@ -419,18 +402,16 @@ modparam("registrar", "method_filtering", 1) Default value is 0 (disabled). - Example 1-17. Set use_path parameter + Example 1.17. Set use_path parameter ... modparam("registrar", "use_path", 1) ... - __________________________________________________________ 1.3.18. path_mode (integer) The registrar module implements three different modes regarding the response to a registration which includes one or more Path headers: - * 0 - The Path header is saved into usrloc, but is not included in the reply. * 1 - The Path header is saved into usrloc, but is only @@ -447,11 +428,10 @@ modparam("registrar", "use_path", 1) Default value is 2. - Example 1-18. Set path_mode parameter + Example 1.18. Set path_mode parameter ... modparam("registrar", "path_mode", 0) ... - __________________________________________________________ 1.3.19. path_use_received (integer) @@ -463,15 +443,14 @@ modparam("registrar", "path_mode", 0) Default value is 0 (disabled). - Example 1-19. Set path_use_received parameter + Example 1.19. Set path_use_received parameter ... modparam("registrar", "path_use_received", 1) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. save(domain) +1.4.1. save(domain) The function processes a REGISTER message. It can add, remove or modify usrloc records depending on Contact and Expires HFs @@ -481,26 +460,23 @@ modparam("registrar", "path_use_received", 1) phrase. Meaning of the parameters is as follows: - * domain - Logical domain within registrar. If database is used then this must be name of the table which stores the contacts. This function can be used from REQUEST_ROUTE. - Example 1-20. save usage + Example 1.20. save usage ... save("location"); ... - __________________________________________________________ -1.4.2. save(domain,flags) +1.4.2. save(domain,flags) Same as save() but it accepts a set of flags for controlling its behaviour. Meaning of the parameters is as follows: - * domain - Logical domain within registrar. If database is used then this must be name of the table which stores the contacts. @@ -514,13 +490,12 @@ save("location"); This function can be used from REQUEST_ROUTE. - Example 1-21. save usage + Example 1.21. save usage ... save("location","0x01"); ... - __________________________________________________________ -1.4.3. lookup(domain) +1.4.3. lookup(domain) The functions extracts username from Request-URI and tries to find all contacts for the username in usrloc. If there are no @@ -534,11 +509,9 @@ save("location","0x01"); processed request. Meaning of the parameters is as follows: - * domain - Name of table that should be used for the lookup. Return codes: - * 1 - contacts found and returned. -1 - no contact found. -2 - contacts found, but method not supported. @@ -546,7 +519,7 @@ save("location","0x01"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-22. lookup usage + Example 1.22. lookup usage ... lookup("location"); switch ($?) { @@ -559,9 +532,8 @@ switch ($?) { exit; }; ... - __________________________________________________________ -1.4.4. registered(domain) +1.4.4. registered(domain) The function returns true if the AOR in the Request-URI is registered, false otherwise. The function does not modify the @@ -569,21 +541,19 @@ switch ($?) { contact is found not append branches. Meaning of the parameters is as follows: - * domain - Name of table that should be used for the lookup. This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-23. registered usage + Example 1.23. registered usage ... if (registered("location")) { sl_send_reply("100", "Trying"); ... }; ... - __________________________________________________________ -1.4.5. add_sock_hdr(hdr_name) +1.4.5. add_sock_hdr(hdr_name) Adds to the current REGISTER request a new header with "hdr_name" which contains the description of the received @@ -592,101 +562,97 @@ if (registered("location")) { This make sens only in multiple replicated servers scenarios. Meaning of the parameters is as follows: - * hdr_name - header name to be used. This function can be used from REQUEST_ROUTE. - Example 1-24. add_sock_hdr usage + Example 1.24. add_sock_hdr usage ... add_sock_hdr("Sock-Info"); ... - __________________________________________________________ 1.5. Exported Statistics 1.5.1. max_expires Value of max_expires parameter. - __________________________________________________________ 1.5.2. max_contacts The value of max_contacts parameter. - __________________________________________________________ 1.5.3. defaults_expires The value of default_expires parameter. - __________________________________________________________ 1.5.4. accepted_regs Number of accepted registrations. - __________________________________________________________ 1.5.5. rejected_regs Number of rejected registrations. - __________________________________________________________ Chapter 2. Frequently Asked Questions - 2.1. What happend with the old "nat_flag" module parameter? - 2.2. What happend with the old "use_domain" module parameter? - 2.3. What happend with the old "save_noreply" and "save_memory" - functions? + 2.1. + + What happend with the old "nat_flag" module parameter? + + In was removed, as the module internally loads this value from + the "USRLOC" module (see the "nat_bflag" USRLOC parameter). + + 2.2. + + What happend with the old "use_domain" module parameter? - 2.4. Where can I find more about OpenSER? - 2.5. Where can I post a question about this module? - 2.6. How can I report a bug? - 2.7. What happened to the desc_time_order parameter? + In was removed, as the module internally loads this option from + the "USRLOC" module. This was done in order to simplify the + configuration. - 2.1. What happend with the old "nat_flag" module parameter? + 2.3. - In was removed, as the module internally loads this value from - the "USRLOC' module (see the "nat_bflag" USRLOC parameter). '" + What happend with the old "save_noreply" and "save_memory" + functions? - 2.2. What happend with the old "use_domain" module parameter? + There functions were merged into the new "save(domain,flags)" + functions. If a reply should be sent or if the DB should be + updated also is controlled via the flags. - In was removed, as the module internally loads this option from - the "USRLOC' module. This was done in order to simplify the - configuration. '" + 2.4. - 2.3. What happend with the old "save_noreply" and "save_memory" - functions? + Where can I find more about OpenSER? - There functions were merged into the new "save(domain,flags)' - functions. If a reply should be sent or if the DB should be - updated also is controlled via the flags. '" + Take a look at http://openser.org/. - 2.4. Where can I find more about OpenSER? + 2.5. - Take a look at http://openser.org/. + Where can I post a question about this module? - 2.5. Where can I post a question about this module? + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel - First at all check if your question was already answered on one - of our mailing lists: + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . - * User Mailing List - - http://openser.org/cgi-bin/mailman/listinfo/users - * Developer Mailing List - - http://openser.org/cgi-bin/mailman/listinfo/devel + If you want to keep the mail private, send it to + . - E-mails regarding any stable OpenSER release should be sent to - and e-mails regarding development versions - should be sent to . + 2.6. - If you want to keep the mail private, send it to - . + How can I report a bug? - 2.6. How can I report a bug? + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. - Please follow the guidelines provided at: - http://sourceforge.net/tracker/?group_id=139143. + 2.7. - 2.7. What happened to the desc_time_order parameter? + What happened to the desc_time_order parameter? - It was removed, as its functionality was mmigrate into usrloc - module, were there is a parameter with the same name. + It was removed, as its functionality was mmigrate into usrloc + module, were there is a parameter with the same name. diff --git a/modules_k/registrar/doc/registrar.sgml b/modules_k/registrar/doc/registrar.xml similarity index 67% rename from modules_k/registrar/doc/registrar.sgml rename to modules_k/registrar/doc/registrar.xml index 71a2d4203..53d57efd9 100644 --- a/modules_k/registrar/doc/registrar.sgml +++ b/modules_k/registrar/doc/registrar.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -44,8 +46,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/registrar/doc/registrar_user.sgml b/modules_k/registrar/doc/registrar_admin.xml similarity index 99% rename from modules_k/registrar/doc/registrar_user.sgml rename to modules_k/registrar/doc/registrar_admin.xml index 794fd507b..bcf33aac0 100644 --- a/modules_k/registrar/doc/registrar_user.sgml +++ b/modules_k/registrar/doc/registrar_admin.xml @@ -542,6 +542,7 @@ modparam("registrar", "use_path", 1) one recommended by RFC-3327. + Default value is 2. @@ -649,7 +650,7 @@ save("location"); 0x02 - do not generate a SIP - reply to the current REGISTER request. + reply to the current REGISTER request. The flags may be given in decimal or hexa format. diff --git a/modules_k/registrar/doc/registrar_faq.sgml b/modules_k/registrar/doc/registrar_faq.xml similarity index 92% rename from modules_k/registrar/doc/registrar_faq.sgml rename to modules_k/registrar/doc/registrar_faq.xml index 29fbef2fc..0c1e9a545 100644 --- a/modules_k/registrar/doc/registrar_faq.sgml +++ b/modules_k/registrar/doc/registrar_faq.xml @@ -12,7 +12,7 @@ In was removed, as the module internally loads this value from the - USRLOC module (see the nat_bflag + USRLOC module (see the nat_bflag USRLOC parameter). @@ -25,7 +25,7 @@ In was removed, as the module internally loads this option from the - USRLOC module. This was done in order to simplify the + USRLOC module. This was done in order to simplify the configuration. @@ -38,7 +38,7 @@ There functions were merged into the new - save(domain,flags) functions. If a reply should be + save(domain,flags) functions. If a reply should be sent or if the DB should be updated also is controlled via the flags. diff --git a/modules_k/rls/README b/modules_k/rls/README index 0d80d1e17..6ae386cc8 100644 --- a/modules_k/rls/README +++ b/modules_k/rls/README @@ -9,9 +9,13 @@ Edited by Anca-Maria Vamanu Copyright © 2007 voice-system.ro + Revision History + Revision $Revision: 2492 $ $Date: 2007-07-20 14:04:13 +0300 + (Fri, 20 Jul 2007) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -43,23 +47,24 @@ Anca-Maria Vamanu 1.5. Installation 2. Developer's Guide + 3. Frequently Asked Questions List of Examples - 1-1. Set db_url parameter - 1-2. Set xcap_table parameter - 1-3. Set rlsubs_table parameter - 1-4. Set rlpres_table parameter - 1-5. Set clean_period parameter - 1-6. Set waitn_time parameter - 1-7. Set max_expires parameter - 1-8. Set hash_size parameter - 1-9. Set hash_size parameter - 1-10. Set integrated_xcap_server parameter - 1-11. Set to_presence_code parameter - 1-12. Set rls_event parameter - 1-13. rls_handle_subscribe usage - 1-14. rls_handle_notify usage - __________________________________________________________ + + 1.1. Set db_url parameter + 1.2. Set xcap_table parameter + 1.3. Set rlsubs_table parameter + 1.4. Set rlpres_table parameter + 1.5. Set clean_period parameter + 1.6. Set waitn_time parameter + 1.7. Set max_expires parameter + 1.8. Set hash_size parameter + 1.9. Set hash_size parameter + 1.10. Set integrated_xcap_server parameter + 1.11. Set to_presence_code parameter + 1.12. Set rls_event parameter + 1.13. rls_handle_subscribe usage + 1.14. rls_handle_notify usage Chapter 1. User's Guide @@ -94,25 +99,21 @@ Chapter 1. User's Guide periodical update in database for subscribe information. The information retrieved with Notify messages is stored in database only. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * a database module. * sl. * tm. * presence- in a library mode. * pua. - __________________________________________________________ 1.2.2. External Libraries or Applications * libxml. - __________________________________________________________ 1.3. Exported Parameters @@ -122,12 +123,11 @@ Chapter 1. User's Guide Default value is "NULL". - Example 1-1. Set db_url parameter + Example 1.1. Set db_url parameter ... modparam("rls", "db_url", "mysql://openser:openserrw@192.168.2.132/openser") ... - __________________________________________________________ 1.3.2. xcap_table(str) @@ -138,11 +138,10 @@ modparam("rls", "db_url", Default value is "xcap". - Example 1-2. Set xcap_table parameter + Example 1.2. Set xcap_table parameter ... modparam("rls", "xcap_table", "xcaps"); ... - __________________________________________________________ 1.3.3. rlsubs_table(str) @@ -151,11 +150,10 @@ modparam("rls", "xcap_table", "xcaps"); Default value is "rls_watchers". - Example 1-3. Set rlsubs_table parameter + Example 1.3. Set rlsubs_table parameter ... modparam("rls", "rlsubs_table", "rls_subscriptions") ... - __________________________________________________________ 1.3.4. rlpres_table(str) @@ -164,11 +162,10 @@ modparam("rls", "rlsubs_table", "rls_subscriptions") Default value is "rls_presentity". - Example 1-4. Set rlpres_table parameter + Example 1.4. Set rlpres_table parameter ... modparam("rls", "rlpres_table", "rls_notify") ... - __________________________________________________________ 1.3.5. clean_period (int) @@ -176,11 +173,10 @@ modparam("rls", "rlpres_table", "rls_notify") Default value is "100". - Example 1-5. Set clean_period parameter + Example 1.5. Set clean_period parameter ... modparam("rls", "clean_period", 100) ... - __________________________________________________________ 1.3.6. waitn_time (int) @@ -190,11 +186,10 @@ modparam("rls", "clean_period", 100) Default value is "50". - Example 1-6. Set waitn_time parameter + Example 1.6. Set waitn_time parameter ... modparam("rls", "waitn_time", 10) ... - __________________________________________________________ 1.3.7. max_expires (int) @@ -202,11 +197,10 @@ modparam("rls", "waitn_time", 10) Default value is "7200". - Example 1-7. Set max_expires parameter + Example 1.7. Set max_expires parameter ... modparam("rls", "max_expires", 10800) ... - __________________________________________________________ 1.3.8. hash_size (int) @@ -215,11 +209,10 @@ modparam("rls", "max_expires", 10800) Default value is "512". - Example 1-8. Set hash_size parameter + Example 1.8. Set hash_size parameter ... modparam("rls", "hash_size", 512) ... - __________________________________________________________ 1.3.9. xcap_root (str) @@ -227,11 +220,10 @@ modparam("rls", "hash_size", 512) Default value is "NULL". - Example 1-9. Set hash_size parameter + Example 1.9. Set hash_size parameter ... modparam("rls", "xcap_root", "http://192.168.2.132/xcap-root:800") ... - __________________________________________________________ 1.3.10. integrated_xcap_server (int) @@ -240,11 +232,10 @@ modparam("rls", "xcap_root", "http://192.168.2.132/xcap-root:800") Default value is "0". - Example 1-10. Set integrated_xcap_server parameter + Example 1.10. Set integrated_xcap_server parameter ... modparam("rls", "integrated_xcap_server", 1) ... - __________________________________________________________ 1.3.11. to_presence_code (int) @@ -256,11 +247,10 @@ modparam("rls", "integrated_xcap_server", 1) Default value is "0". - Example 1-11. Set to_presence_code parameter + Example 1.11. Set to_presence_code parameter ... modparam("rls", "to_presence_code", 10) ... - __________________________________________________________ 1.3.12. rls_event (str) @@ -270,15 +260,14 @@ modparam("rls", "to_presence_code", 10) Default value is ""presence"". - Example 1-12. Set rls_event parameter + Example 1.12. Set rls_event parameter ... modparam("rls", "rls_event", "dialog;sla") ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. rls_handle_subscribe() +1.4.1. rls_handle_subscribe() This function detects if a Subscribe message is should be handled by RLS. If not it replies with the configured @@ -287,7 +276,7 @@ modparam("rls", "rls_event", "dialog;sla") This function can be used from REQUEST_ROUTE. - Example 1-13. rls_handle_subscribe usage + Example 1.13. rls_handle_subscribe usage ... For presence and rls on the same machine: modparam(rls, "to_presence_code", 10) @@ -310,18 +299,16 @@ For rls only: } ... - __________________________________________________________ -1.4.2. rls_handle_notify() +1.4.2. rls_handle_notify() This function can be used from REQUEST_ROUTE. - Example 1-14. rls_handle_notify usage + Example 1.14. rls_handle_notify usage ... if(method=="NOTIFY") rls_handle_notify(); ... - __________________________________________________________ 1.5. Installation @@ -331,9 +318,41 @@ if(method=="NOTIFY") openser/scripts folder. You can also find the complete database documentation on the project webpage, http://www.openser.org/docs/db-tables/openser-db-devel.html. - __________________________________________________________ Chapter 2. Developer's Guide The module provides no functions to be used in other OpenSER modules. + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/rls/doc/rls.sgml b/modules_k/rls/doc/rls.xml similarity index 74% rename from modules_k/rls/doc/rls.sgml rename to modules_k/rls/doc/rls.xml index ad5d9b93a..bb4368df9 100644 --- a/modules_k/rls/doc/rls.sgml +++ b/modules_k/rls/doc/rls.xml @@ -1,12 +1,14 @@ - + - - + + + - + %docentities; ]> diff --git a/modules_k/rls/doc/rls_user.sgml b/modules_k/rls/doc/rls_admin.xml similarity index 99% rename from modules_k/rls/doc/rls_user.sgml rename to modules_k/rls/doc/rls_admin.xml index 46254883e..3d5e4c767 100644 --- a/modules_k/rls/doc/rls_user.sgml +++ b/modules_k/rls/doc/rls_admin.xml @@ -12,6 +12,7 @@ The server is independent from local presence servers, retrieving presence information with Subscribe-Notify messages. + The module uses the presence module as a library, as it requires a resembling mechanism for handling Subscribe. Therefore, in case the local presence server diff --git a/modules_k/rls/doc/rls_devel.sgml b/modules_k/rls/doc/rls_devel.xml similarity index 100% rename from modules_k/rls/doc/rls_devel.sgml rename to modules_k/rls/doc/rls_devel.xml diff --git a/modules_k/rr/README b/modules_k/rr/README index c41f84277..cb8107c2a 100644 --- a/modules_k/rr/README +++ b/modules_k/rr/README @@ -12,14 +12,20 @@ Edited by Jan Janak +Edited by + Bogdan-Andrei Iancu Copyright © 2003 FhG FOKUS Copyright © 2005 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -54,29 +60,31 @@ Bogdan-Andrei Iancu 2.1.3. is_direction( msg, dir) 2.1.4. get_route_param( msg, name, val) 2.1.5. register_rrcb( callback, param) - 2.1.6. Examples + + 2.2. Examples + + 3. Frequently Asked Questions List of Examples - 1-1. Dialog support in RR module - 1-2. Set enable_full_lr parameter - 1-3. Set append_fromtag parameter - 1-4. Set enable_double_rr parameter - 1-5. Set add_username parameter - 1-6. loose_route usage - 1-7. record_route usage - 1-8. record_route_preset usage - 1-9. add_rr_param usage - 1-10. check_route_param usage - 1-11. check_route_param usage - 2-1. Loading RR module's API from another module - __________________________________________________________ + + 1.1. Dialog support in RR module + 1.2. Set enable_full_lr parameter + 1.3. Set append_fromtag parameter + 1.4. Set enable_double_rr parameter + 1.5. Set add_username parameter + 1.6. loose_route usage + 1.7. record_route usage + 1.8. record_route_preset usage + 1.9. add_rr_param usage + 1.10. check_route_param usage + 1.11. check_route_param usage + 2.1. Loading RR module's API from another module Chapter 1. User's Guide 1.1. Overview The module contains record routing logic - __________________________________________________________ 1.2. Dialog support @@ -109,11 +117,11 @@ Chapter 1. User's Guide are reinforced by RFC 3261 (see 12.1.1 UAS behavior). For this purpose, the modules offers the following functions: + * add_rr_param() - see Section 1.5.4, " add_rr_param(param) " + * check_route_param() - see Section 1.5.5, " + check_route_param(re) " - * add_rr_param() - see Section 1.5.4 - * check_route_param() - see Section 1.5.5 - - Example 1-1. Dialog support in RR module + Example 1.1. Dialog support in RR module UAC OpenSER PROXY UAS @@ -128,24 +136,20 @@ UAC OpenSER PROXY UAS <------ BYE ------- loose_route() <----- BYE ------- check_route_param(";foo=true") - __________________________________________________________ + 1.3. Dependencies 1.3.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.3.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.4. Exported Parameters @@ -158,11 +162,10 @@ UAC OpenSER PROXY UAS Default value is 0 (no). - Example 1-2. Set enable_full_lr parameter + Example 1.2. Set enable_full_lr parameter ... modparam("rr", "enable_full_lr", 1) ... - __________________________________________________________ 1.4.2. append_fromtag (integer) @@ -173,11 +176,10 @@ modparam("rr", "enable_full_lr", 1) Default value is 1 (yes). - Example 1-3. Set append_fromtag parameter + Example 1.3. Set append_fromtag parameter ... modparam("rr", "append_fromtag", 0) ... - __________________________________________________________ 1.4.3. enable_double_rr (integer) @@ -189,11 +191,10 @@ modparam("rr", "append_fromtag", 0) Default value is 1 (yes). - Example 1-4. Set enable_double_rr parameter + Example 1.4. Set enable_double_rr parameter ... modparam("rr", "enable_double_rr", 0) ... - __________________________________________________________ 1.4.4. add_username (integer) @@ -202,15 +203,14 @@ modparam("rr", "enable_double_rr", 0) Default value is 0 (no). - Example 1-5. Set add_username parameter + Example 1.5. Set add_username parameter ... modparam("rr", "add_username", 1) ... - __________________________________________________________ 1.5. Exported Functions -1.5.1. loose_route() +1.5.1. loose_route() The function performs routing of SIP requests which contain a route set. The name is a little bit confusing, as this function @@ -241,13 +241,12 @@ modparam("rr", "add_username", 1) This function can be used from REQUEST_ROUTE. - Example 1-6. loose_route usage + Example 1.6. loose_route usage ... loose_route(); ... - __________________________________________________________ -1.5.2. record_route() and record_route(string) +1.5.2. record_route() and record_route(string) The function adds a new Record-Route header field. The header field will be inserted in the message before any other @@ -261,39 +260,36 @@ loose_route(); This function can be used from REQUEST_ROUTE, BRANCH_ROUTE and FAILURE_ROUTE. - Example 1-7. record_route usage + Example 1.7. record_route usage ... record_route(); ... - __________________________________________________________ -1.5.3. record_route_preset(string) +1.5.3. record_route_preset(string) This function will put the string into Record-Route, don't use unless you know what you are doing. Meaning of the parameters is as follows: - * string - String to be inserted into the header field; it may contain pseudo-variables. This function can be used from REQUEST_ROUTE, BRANCH_ROUTE and FAILURE_ROUTE. - Example 1-8. record_route_preset usage + Example 1.8. record_route_preset usage ... record_route_preset("1.2.3.4:5090"); ... - __________________________________________________________ -1.5.4. add_rr_param(param) +1.5.4. add_rr_param(param) Adds a parameter to the Record-Route URI (param must be in ";name=value" format. The function may be called also before or - after the record_route() call (see Section 1.5.2). + after the record_route() call (see Section 1.5.2, " + record_route() and record_route(string) "). Meaning of the parameters is as follows: - * param - String containing the URI parameter to be added. It must follow the ";name=value" scheme; it may contain pseudo-variables. @@ -301,41 +297,38 @@ record_route_preset("1.2.3.4:5090"); This function can be used from REQUEST_ROUTE, BRANCH_ROUTE and FAILURE_ROUTE. - Example 1-9. add_rr_param usage + Example 1.9. add_rr_param usage ... add_rr_param(";nat=yes"); ... - __________________________________________________________ -1.5.5. check_route_param(re) +1.5.5. check_route_param(re) The function checks if the URI parameters of the local Route header (corresponding to the local server) matches the given regular expression. It must be call after loose_route() (see - Section 1.5.1). + Section 1.5.1, " loose_route() "). Meaning of the parameters is as follows: - * re - regular expression to check against the Route URI parameters. This function can be used from REQUEST_ROUTE. - Example 1-10. check_route_param usage + Example 1.10. check_route_param usage ... if (check_route_param("nat=yes")) { setflag(6); } ... - __________________________________________________________ -1.5.6. is_direction(dir) +1.5.6. is_direction(dir) The function checks the flow direction of the request. As for checking it's used the "ftag" Route header parameter, the - append_fromtag (see Section 1.4.2 module parameter must be - enables. Also this must be call only after loose_route() (see - Section 1.5.1). + append_fromtag (see Section 1.4.2, "append_fromtag (integer)" + module parameter must be enables. Also this must be call only + after loose_route() (see Section 1.5.1, " loose_route() "). The function returns true if the "dir" is the same with the request's flow direction. @@ -344,38 +337,35 @@ if (check_route_param("nat=yes")) { initial request that created the dialog. Meaning of the parameters is as follows: - * dir - string containing the direction to be checked. It may be "upstream" (from UAS to UAC) or "downstream" (UAC to UAS). This function can be used from REQUEST_ROUTE. - Example 1-11. check_route_param usage + Example 1.11. check_route_param usage ... if (is_direction("upstream")) { xdbg("upstream request ($rm)\n"); } ... - __________________________________________________________ Chapter 2. Developer's Guide The RR module provides an internal API to be used by other OpenSER modules. The API offers support for SIP dialog based functionalities - for more about the dialog support offered by - RR module, see Section 1.2. + RR module, see Section 1.2, "Dialog support". For internal(non-script) usage, the RR module offers to other module the possibility to register callback functions to be executed each time a local Route header is processed. The callback function will receive as parameter the register parameter and the Route header parameter string. - __________________________________________________________ 2.1. Available Functions -2.1.1. add_rr_param( msg, param) +2.1.1. add_rr_param( msg, param) Adds a parameter to the requests's Record-Route URI (param must be in ";name=value" format). @@ -383,14 +373,12 @@ Chapter 2. Developer's Guide The function returns 0 on success. Otherwise, -1 is returned. Meaning of the parameters is as follows: - * struct sip_msg* msg - request that will has the parameter "param" added to its Record-Route header. * str* param - parameter to be added to the Record-Route header - it must be in ";name=value" format. - __________________________________________________________ -2.1.2. check_route_param( msg, re) +2.1.2. check_route_param( msg, re) The function checks for the request "msg" if the URI parameters of the local Route header (corresponding to the local server) @@ -400,33 +388,29 @@ Chapter 2. Developer's Guide The function returns 0 on success. Otherwise, -1 is returned. Meaning of the parameters is as follows: - * struct sip_msg* msg - request that will has the Route header parameters checked. * regex_t* param - compiled regular expression to be checked against the Route header parameters. - __________________________________________________________ -2.1.3. is_direction( msg, dir) +2.1.3. is_direction( msg, dir) The function checks the flow direction of the request "msg". As for checking it's used the "ftag" Route header parameter, the - append_fromtag (see Section 1.4.2 module parameter must be - enables. Also this must be call only after the loose_route is - done. + append_fromtag (see Section 1.4.2, "append_fromtag (integer)" + module parameter must be enables. Also this must be call only + after the loose_route is done. The function returns 0 if the "dir" is the same with the request's flow direction. Otherwise, -1 is returned. Meaning of the parameters is as follows: - * struct sip_msg* msg - request that will have the direction checked. * int dir - direction to be checked against. It may be "RR_FLOW_UPSTREAM" or "RR_FLOW_DOWNSTREAM". - __________________________________________________________ -2.1.4. get_route_param( msg, name, val) +2.1.4. get_route_param( msg, name, val) The function search in to the "msg"'s Route header parameters the parameter called "name" and returns its value into "val". @@ -436,7 +420,6 @@ Chapter 2. Developer's Guide no value). Otherwise, -1 is returned. Meaning of the parameters is as follows: - * struct sip_msg* msg - request that will have the Route header parameter searched. * str *name - contains the Route header parameter to be @@ -444,9 +427,8 @@ Chapter 2. Developer's Guide * str *val - returns the value of the searched Route header parameter if found. It might be empty string if the parameter had no value. - __________________________________________________________ -2.1.5. register_rrcb( callback, param) +2.1.5. register_rrcb( callback, param) The function register a new callback (along with its parameter). The callback will be called when a loose route will @@ -455,15 +437,13 @@ Chapter 2. Developer's Guide The function returns 0 on success. Otherwise, -1 is returned. Meaning of the parameters is as follows: - * rr_cb_t callback - callback function to be registered. * void *param - parameter to be passed to the callback function. - __________________________________________________________ -2.1.6. Examples +2.2. Examples - Example 2-1. Loading RR module's API from another module + Example 2.1. Loading RR module's API from another module ... #include "../rr/api.h" ... @@ -471,7 +451,7 @@ struct rr_binds my_rrb; ... ... /* load the RR API */ -if (load_rr_api( & my_rrb )!=0) { +if (load_rr_api( &my_rrb )!=0) { LM_ERR("can't load RR API\n"); goto error; } @@ -483,3 +463,36 @@ if (my_rrb.register_rrcb(my_callback,0))!=0) { goto error; } ... + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/rr/doc/rr.sgml b/modules_k/rr/doc/rr.xml similarity index 71% rename from modules_k/rr/doc/rr.sgml rename to modules_k/rr/doc/rr.xml index 865034310..f57889197 100644 --- a/modules_k/rr/doc/rr.sgml +++ b/modules_k/rr/doc/rr.xml @@ -1,12 +1,14 @@ - + - - + + + - + %docentities; ]> @@ -23,6 +25,7 @@
jan@iptel.org
+ Bogdan-Andrei Iancu @@ -56,8 +59,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/rr/doc/rr_user.sgml b/modules_k/rr/doc/rr_admin.xml similarity index 97% rename from modules_k/rr/doc/rr_user.sgml rename to modules_k/rr/doc/rr_admin.xml index 70754e873..846000173 100644 --- a/modules_k/rr/doc/rr_user.sgml +++ b/modules_k/rr/doc/rr_admin.xml @@ -45,12 +45,12 @@
- add_rr_param() - see + add_rr_param() - see check_route_param() - see - + @@ -324,7 +324,7 @@ record_route_preset("1.2.3.4:5090"); Adds a parameter to the Record-Route URI (param must be in ;name=value format. The function may be called also before or after the record_route() call - (see ). + (see ).
Meaning of the parameters is as follows: @@ -357,7 +357,7 @@ add_rr_param(";nat=yes"); The function checks if the URI parameters of the local Route header (corresponding to the local server) matches the given regular expression. It must be call after loose_route() - (see ). + (see ). Meaning of the parameters is as follows: @@ -389,9 +389,9 @@ if (check_route_param("nat=yes")) { The function checks the flow direction of the request. As for checking it's used the ftag Route header - parameter, the append_fromtag (see + parameter, the append_fromtag (see module parameter must be enables. Also this must be call only after - loose_route() (see ). + loose_route() (see ). The function returns true if the dir is the same with diff --git a/modules_k/rr/doc/rr_devel.sgml b/modules_k/rr/doc/rr_devel.xml similarity index 97% rename from modules_k/rr/doc/rr_devel.sgml rename to modules_k/rr/doc/rr_devel.xml index 63f0002df..aa242fec4 100644 --- a/modules_k/rr/doc/rr_devel.sgml +++ b/modules_k/rr/doc/rr_devel.xml @@ -8,7 +8,7 @@ The RR module provides an internal API to be used by other &ser; modules. The API offers support for SIP dialog based functionalities - for more about the dialog support - offered by RR module, see . + offered by RR module, see . For internal(non-script) usage, the RR module offers to other module the @@ -85,7 +85,7 @@ The function checks the flow direction of the request msg. As for checking it's used the ftag Route header parameter, the append_fromtag (see - module parameter + module parameter must be enables. Also this must be call only after the loose_route is done. @@ -170,6 +170,7 @@
+
Examples @@ -183,7 +184,7 @@ struct rr_binds my_rrb; ... ... /* load the RR API */ -if (load_rr_api( & my_rrb )!=0) { +if (load_rr_api( &my_rrb )!=0) { LM_ERR("can't load RR API\n"); goto error; } diff --git a/modules_k/seas/README b/modules_k/seas/README index 45cb76bbf..873fd2166 100644 --- a/modules_k/seas/README +++ b/modules_k/seas/README @@ -15,6 +15,7 @@ Elias Baixas __________________________________________________________ Table of Contents + 1. The Sip Express Application Server User's Guide 1.1. Application Servers @@ -43,31 +44,34 @@ Elias Baixas 2.2.1. The SEAS protocol 2.2.2. General codification of a header + 3. Frequently Asked Questions + List of Figures - 1-1. SipServlet UML diagram - 2-1. Overview of Seas Event Dispatcher process operation - 2-2. SIP Messages and control flow within SER - 2-3. General codification of a SIP header in SEAS protocol - 2-4. Example of a from header SEAS-protocol codification - 2-5. SEAS-codification of a SIP URI (byte meanings are shown) - 2-6. Example of a SEAS SIP URI codification - 2-7. SEAS codification of From and To headers - 2-8. SEAS codification of a Contact header - 2-9. SEAS codification of a Route Header - 2-10. SEAS codification of Authentication/Authorization headers - 2-11. SEAS codification of a SIP First Line - 2-12. SEAS Headers Index section overview - 2-13. SEAS SIP-Message codification - 2-14. Different kinds of SEAS codified Events and Actions + + 1.1. SipServlet UML diagram + 2.1. Overview of Seas Event Dispatcher process operation + 2.2. SIP Messages and control flow within SER + 2.3. General codification of a SIP header in SEAS protocol + 2.4. Example of a from header SEAS-protocol codification + 2.5. SEAS-codification of a SIP URI (byte meanings are shown) + 2.6. Example of a SEAS SIP URI codification + 2.7. SEAS codification of From and To headers + 2.8. SEAS codification of a Contact header + 2.9. SEAS codification of a Route Header + 2.10. SEAS codification of Authentication/Authorization headers + 2.11. SEAS codification of a SIP First Line + 2.12. SEAS Headers Index section overview + 2.13. SEAS SIP-Message codification + 2.14. Different kinds of SEAS codified Events and Actions List of Examples - 1-1. Set listen_sockets parameter - 1-2. as_relay_t usage - 1-3. Typical example of an HttpServlet - 1-4. Typical Sip Servlet Example - 1-5. Server - 1-6. Service - __________________________________________________________ + + 1.1. Set listen_sockets parameter + 1.2. as_relay_t usage + 1.3. Typical example of an HttpServlet + 1.4. Typical Sip Servlet Example + 1.5. Server + 1.6. Service Chapter 1. The Sip Express Application Server User's Guide @@ -124,7 +128,6 @@ Chapter 1. The Sip Express Application Server User's Guide This version of SEAS works with VozTelecom's WeSIP Application Server. This Application Server is a SipServlet JAVA Container. - __________________________________________________________ 1.1.2. Application Servers @@ -141,7 +144,6 @@ Chapter 1. The Sip Express Application Server User's Guide server hasn't already connected to the module, the function returns a negative value, otherwise (the Application Server is connected), the message is relaied to it. - __________________________________________________________ 1.1.3. Dependencies @@ -149,7 +151,6 @@ Chapter 1. The Sip Express Application Server User's Guide SEAS module relies on the Transaction Module (TM module) for operation. - __________________________________________________________ 1.1.3.2. External Applications @@ -159,7 +160,6 @@ Chapter 1. The Sip Express Application Server User's Guide At the moment, the only Application Server that works with SEAS is WeSIP Application Server, which can be downloaded from www.wesip.eu, and used freely for non-comercial purposes. - __________________________________________________________ 1.1.4. Exported Parameters @@ -175,11 +175,10 @@ Chapter 1. The Sip Express Application Server User's Guide IP which OpenSER is using, and opens the ports 5080 and 5081 to listen for Application Servers. - Example 1-1. Set listen_sockets parameter + Example 1.1. Set listen_sockets parameter ... modparam("seas", "listen_sockets","127.0.0.1:5080") ... - __________________________________________________________ 1.1.5. Exported Functions @@ -193,14 +192,13 @@ modparam("seas", "listen_sockets","127.0.0.1:5080") This function can be used within REQUEST_ROUTE. - Example 1-2. as_relay_t usage + Example 1.2. as_relay_t usage ... if (!as_relay_t("app_server_1")) { log("Error sending to app server"); t_reply("500","App Server not connected"); } ... - __________________________________________________________ 1.1.5.1.1. Return value @@ -214,7 +212,6 @@ t_reply("500","App Server not connected"); parameter passed to as_relay_t() is not connected to OpenSER, the function returns 0, so that the script can continue processing the request. - __________________________________________________________ 1.2. WeSIP Application Server @@ -222,7 +219,6 @@ t_reply("500","App Server not connected"); SEAS is WeSIP. You can download a copy from www.wesip.eu. WeSIP is a converged Sip/Http Servlet Container. - __________________________________________________________ 1.2.1. The Servlet programming paradigm: Sip/Http Servlets @@ -256,8 +252,7 @@ t_reply("500","App Server not connected"); This is how a typical HttpServlet looks like: - Example 1-3. Typical example of an HttpServlet - + Example 1.3. Typical example of an HttpServlet public final class Hello extends HttpServlet { protected void doGet(HttpServletRequest request,HttpServletResponse resp onse) @@ -317,8 +312,7 @@ writer.println(""); This is the appearance a typical SipServlet: - Example 1-4. Typical Sip Servlet Example - + Example 1.4. Typical Sip Servlet Example public class ProxyServlet extends SipServlet { protected void doInvite(SipServletRequest req) throws ServletException, IOException @@ -359,9 +353,9 @@ ServletException, IOException having to worry about the underlying protocol specifics (SIP or HTTP). - Figure 1-1. SipServlet UML diagram + Figure 1.1. SipServlet UML diagram + SipServlet UML diagram - [image024.png] The Servlet programming language is JAVA, which offers a wide spectrum of programming API's dealing with all kinds of techniques, tools and resources, which also are available @@ -374,7 +368,6 @@ ServletException, IOException deployment, and also provides a reliable and secure framework of service execution (the JAVA sandbox and the Application Server execution environment). - __________________________________________________________ 1.2.1.1. Converged Http/Sip Servlet Containers @@ -430,7 +423,6 @@ ServletException, IOException Web-Browser being SIP-aware nor needing even a SIP phone: the server could handle all the logic so the user who clicked could receive a call from the server's SIP network. - __________________________________________________________ 1.2.2. Configuring WeSIP to work with SEAS @@ -443,9 +435,6 @@ ServletException, IOException package should be suitable for most of the deployment configurations. - > - __________________________________________________________ - 1.2.2.1. Server The topmost element in the XML configuration file is the @@ -454,16 +443,12 @@ ServletException, IOException will listen for the shutdown command, and the latter is the magic word that will make the server shutdown. - Example 1-5. Server - + Example 1.5. Server if you send the magic word "SHUTDOWN" to the port 8005 of the localhost, the server will stop cleanly. - > - __________________________________________________________ - 1.2.2.2. Service Nested within the Server element, must be a "Service" element, @@ -471,7 +456,7 @@ ServletException, IOException the service. This attribute is not very relevant, you can call it whatever you like. - Example 1-6. Service + Example 1.6. Service @@ -484,16 +469,13 @@ ServletException, IOException HTTP connectors, the classname must be "org.apache.catalina.connector.http.HttpConnector" and for SIP connectors "com.voztele.sipservlet.connector.SipConnector". - __________________________________________________________ 1.2.2.3. Connector The SIP Connector uses 4 attributes: - className="com.voztele.sipservlet.connector.SipConnector" specifies the classname of the connector. - minProcessors="5" specifies the minimum number of SIPprocessor instances (and @@ -501,12 +483,10 @@ minProcessors="5" processors should allow more load to be processed. This is the minimum number of instances, even if they are spare and not working. - maxProcessors="10" specifies the maximum number of SIP processors used (a negative value specifies that there is no limit). - addresses="localhost:5060" Specifies the SIP address and port in which the Application @@ -518,19 +498,18 @@ addresses="localhost:5060" Warning - this attribute MUST match one of the listening points declared - within OpenSER in the "listen" parameters. + this attribute MUST match one of the listening points declared + within OpenSER in the "listen" parameters. - For example in openser.cfg: - listen = tcp:localhost:5060 - listen = udp:localhost:5060 + For example in openser.cfg: +listen = tcp:localhost:5060 +listen = udp:localhost:5060 Within the SIP Connector element there must be an ExtraProperties element, containing nestes Property elements. Each property element specifies a parameter for the SIP Stack. Each property is specified by a key and a value. The most significant keys are: - * com.voztele.javax.sip.SER_ADDRESS This specifies the IP and port in which the OpenSER is listening for Application Servers to connect and @@ -538,28 +517,24 @@ Warning OpenSER is listening for Application Servers to connect and register. - Warning - - This needs to match the listen_sockets seas module parameter - within the OpenSER configuration file. Ie.: - modparam("seas", "listen_sockets","127.0.0.1:5080") - +Warning + This needs to match the listen_sockets seas module + parameter within the OpenSER configuration file. Ie.: +modparam("seas", "listen_sockets","127.0.0.1:5080") * javax.sip.STACK_NAME Specifies the name identifying this instance of the Application Server. Warning - - This is the name you will set in the OpenSER configuration - script when you invoke the WeSIP Application Server, by calling - the as_relay_t function. This is the name you pass as the - parameter of the function. If you have different WeSIP - instances all connecting to the same OpenSER, they must each - one have a different STACK_NAME", and within OpenSER you can - call each of them by invoking as_relay_t() with a different - name. Example: - - + This is the name you will set in the OpenSER configuration + script when you invoke the WeSIP Application Server, by + calling the as_relay_t function. This is the name you pass + as the parameter of the function. If you have different + WeSIP instances all connecting to the same OpenSER, they + must each one have a different STACK_NAME", and within + OpenSER you can call each of them by invoking as_relay_t() + with a different name. Example: + * com.voztele.javax.sip.THREAD_POOL_SIZE (integer) Specifies the number of threads there must be in the pool to process incoming SIP messages. If unspecificed, the @@ -581,9 +556,6 @@ route{ } } - > - __________________________________________________________ - 1.2.2.4. Engine The Engine must also be nested within the Server element, along @@ -599,7 +571,6 @@ route{ Within the Engine, there can be one or more Hosts, each one specified within a "Host" element nested in the engine. - __________________________________________________________ 1.2.2.5. Mapper @@ -613,7 +584,6 @@ route{ be "SIP/2.0". The HTTP mapper's classname must be "org.apache.catalina.core.StandardEngineMapper" and the protocol attribute "HTTP/1.1" - __________________________________________________________ 1.2.2.6. Realm @@ -628,7 +598,6 @@ route{ A "pathname" attribute can be specified to tell the Realm which file contains the usernames, passwords and roles. If not specified, it is "conf/wesip-users.xml" - __________________________________________________________ 1.2.2.7. Host @@ -659,7 +628,6 @@ route{ .war) so they can automatically be deployed. This parameter should be set to "true". The "className" used for the Host _must_be_ "com.voztele.sipservlet.core.ConvergedHost" - __________________________________________________________ 1.2.2.8. Mapper @@ -669,7 +637,6 @@ route{ "SIP/2.0" protocol and "org.apache.catalina.core.HttpHostMapper" for the "HTTP/1.1" protocol. (2 mappers must be nested inside the Host). - __________________________________________________________ 1.2.3. Configuration Examples @@ -687,9 +654,6 @@ route{ OpenSER, having one script handle all the logic, and then invoking the App Server at any point. - > - __________________________________________________________ - 1.2.3.1. Openser.cfg in standalone debug=3 # debug level (cmd line: -dddddddddd) @@ -753,7 +717,6 @@ route[1] { t_reply("500","Application Server error"); } } - __________________________________________________________ 1.2.3.2. Openser.cfg working as WeSIP front-end @@ -786,7 +749,6 @@ route{ } } - __________________________________________________________ 1.2.3.3. Server.xml @@ -832,7 +794,6 @@ r" protocol="HTTP/1.1"/> - __________________________________________________________ Chapter 2. Developer's Guide @@ -879,16 +840,14 @@ Chapter 2. Developer's Guide processes can push events for it. The following picture, shows the internals of the SEAS Event dispatcher process: - Figure 2-1. Overview of Seas Event Dispatcher process operation + Figure 2.1. Overview of Seas Event Dispatcher process operation + Overview of Seas Event Dispatcher process operation - [image056.gif] Within the SER server, the flowing of SIP Messages and control flow, is depicted in the following diagram: - Figure 2-2. SIP Messages and control flow within SER - - [image058.gif] - __________________________________________________________ + Figure 2.2. SIP Messages and control flow within SER + SIP Messages and control flow within SER 2.2. SEAS Protocol @@ -906,7 +865,6 @@ Chapter 2. Developer's Guide SIP-transaction machinery. The goal of the SEAS protocol is to keep all this information that has been already extracted at OpenSER, so that it can be reused at the Application Server. - __________________________________________________________ 2.2.1. The SEAS protocol @@ -1047,7 +1005,6 @@ Chapter 2. Developer's Guide each one of the parameter names and values. This is the codification of the From header. All the other headers have a similar codification. - __________________________________________________________ 2.2.2. General codification of a header @@ -1059,16 +1016,14 @@ Chapter 2. Developer's Guide and another byte giving the length of the entire header (including name and value). - Figure 2-3. General codification of a SIP header in SEAS + Figure 2.3. General codification of a SIP header in SEAS protocol + General codification of a SIP header in SEAS protocol - [image100.gif] For example: - Figure 2-4. Example of a from header SEAS-protocol codification - - [image101.gif] - __________________________________________________________ + Figure 2.4. Example of a from header SEAS-protocol codification + Example of a from header SEAS-protocol codification 2.2.2.1. Codification of a generic URI @@ -1079,17 +1034,16 @@ Chapter 2. Developer's Guide The codification of any URI is as follows: - Figure 2-5. SEAS-codification of a SIP URI (byte meanings are + Figure 2.5. SEAS-codification of a SIP URI (byte meanings are shown) - - [image102.gif] + SEAS-codification of a SIP URI (byte meanings are shown) What follows is an example of a SIP URI codification with the SEAS protocol. - Figure 2-6. Example of a SEAS SIP URI codification + Figure 2.6. Example of a SEAS SIP URI codification + Example of a SEAS SIP URI codification - [image103.gif] The first byte in the encoded-URI structure, gives the index where the URI starts, counting from the beginning of the SIP header where it appears. The next two bytes are flags @@ -1119,7 +1073,6 @@ Chapter 2. Developer's Guide field, as the ttl parameter can appear before the transport parameter. So the parameter pointers must have 2 bytes: pointer+length. - __________________________________________________________ 2.2.2.2. Codification of To and From headers @@ -1127,10 +1080,8 @@ Chapter 2. Developer's Guide codification structure has been used to describe both. The structure is depicted in the drawing: - Figure 2-7. SEAS codification of From and To headers - - [image104.gif] - __________________________________________________________ + Figure 2.7. SEAS codification of From and To headers + SEAS codification of From and To headers 2.2.2.3. Codification of Contact @@ -1144,10 +1095,8 @@ Chapter 2. Developer's Guide beginning telling how much Contact codifications are present. The code is depicted in the following drawing: - Figure 2-8. SEAS codification of a Contact header - - [image105.gif] - __________________________________________________________ + Figure 2.8. SEAS codification of a Contact header + SEAS codification of a Contact header 2.2.2.4. Codification of Route and Record Route headers @@ -1157,10 +1106,8 @@ Chapter 2. Developer's Guide commas. In this case, both kinds of headers follow the same structure, defined as follows: - Figure 2-9. SEAS codification of a Route Header - - [image106.gif] - __________________________________________________________ + Figure 2.9. SEAS codification of a Route Header + SEAS codification of a Route Header 2.2.2.5. Codification of Accept and Content-Type headers @@ -1176,7 +1123,6 @@ Chapter 2. Developer's Guide Thus the Accept header has a leading byte giving the number of mime type/subtype integers present, while the Content-Type only uses 4 bytes (a 32-bit integer) giving the type/subtype. - __________________________________________________________ 2.2.2.6. Codification of Authorization headers @@ -1187,17 +1133,15 @@ Chapter 2. Developer's Guide them can be codified using the same schema, which is as follows: - Figure 2-10. SEAS codification of Authentication/Authorization + Figure 2.10. SEAS codification of Authentication/Authorization headers - - [image107.gif] + SEAS codification of Authentication/Authorization headers For each field present, there are 2 bytes, one pointing the place where it starts, the next giving how long this field is. The URI is a special case, and is composed of 1 byte telling how long is the URI structure, and then the encoded URI structure. - __________________________________________________________ 2.2.2.7. Codification of Allow headers @@ -1206,7 +1150,6 @@ Chapter 2. Developer's Guide are codified into a 32-bit integer, each of its bits signals a different kind of header. The Allow header is codified copying that integer into the payload of the header. - __________________________________________________________ 2.2.2.8. Codification of Content-Disposition headers @@ -1217,13 +1160,11 @@ Chapter 2. Developer's Guide the parameter name starts, and 1 byte pointing to where the parameter value starts. From these two values, the parameter name and value lengths can be inferred. - __________________________________________________________ 2.2.2.9. Codification of Content-Length header The content length header is codified as a 4-byte unsigned integer, in network byte order. - __________________________________________________________ 2.2.2.10. Codification of Cseq header @@ -1234,7 +1175,6 @@ Chapter 2. Developer's Guide next two bytes are the header based pointer to the beginning of the Cseq number and its length, and two more bytes pointing to the beginning of the method name and its length. - __________________________________________________________ 2.2.2.11. Codification of Expires header @@ -1244,7 +1184,6 @@ Chapter 2. Developer's Guide expires). Then follows 1 byte pointing to the beginning of the header value (the expires value as a string) and a byte giving the length of the value. - __________________________________________________________ 2.2.2.12. Codification of a SIP message @@ -1261,9 +1200,8 @@ Chapter 2. Developer's Guide its value is smaller than 100, then it is a request, and the integer represents the method of the request being transported. - Figure 2-11. SEAS codification of a SIP First Line - - [image108.gif] + Figure 2.11. SEAS codification of a SIP First Line + SEAS codification of a SIP First Line The next two bytes are an unsigned integer which is a pointer to where the actual SIP message starts, beginning from the @@ -1307,7 +1245,6 @@ Chapter 2. Developer's Guide the SIP message. After this byte, goes a section, called the Message Headers Index, which gives quick access to each of the headers and their codifications present in the message. - __________________________________________________________ 2.2.2.12.2. The headers index section @@ -1361,15 +1298,14 @@ Chapter 2. Developer's Guide the two-byte unsigned integer that follows each of the header identifiers. - Figure 2-12. SEAS Headers Index section overview + Figure 2.12. SEAS Headers Index section overview + SEAS Headers Index section overview - [image109.gif] So a SIP message codified by the SEAS protocol, has the following layout: - Figure 2-13. SEAS SIP-Message codification - - [image110.gif] + Figure 2.13. SEAS SIP-Message codification + SEAS SIP-Message codification SIP Messages are a fundamental part of the protocol, but they are not the only one. Transaction play a very important role in @@ -1433,12 +1369,44 @@ Chapter 2. Developer's Guide transaction. This way, JAIN can correlate its own identifiers with the identifiers used within SER. - Figure 2-14. Different kinds of SEAS codified Events and + Figure 2.14. Different kinds of SEAS codified Events and Actions - - [image111.gif] + Different kinds of SEAS codified Events and Actions In case there is a Transaction Timeout, it is notified to the JAIN SIP Stack by passing it a Seas Incoming Response with a flag called Faked Reply, and a Response code number 408 (Request Timeout). + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/seas/doc/seas.sgml b/modules_k/seas/doc/seas.sgml deleted file mode 100644 index 04e439a71..000000000 --- a/modules_k/seas/doc/seas.sgml +++ /dev/null @@ -1,45 +0,0 @@ - - - - -%docentities; -]> - - - Seas Module - - Seas Module - - - - Elias - - Baixas - - - VozTelecom Sistemas - www.wesip.eu -
Ronda Can Fatjo, 9, 1p Parc Tecnologic del Valles Cerdanyola, 08520 (SPAIN) - Phone:+34 933968800 - www.voztele.com - elias.baixas@voztele.com -
-
-
-
- - - 2006 - - VozTelecom Sistemas - -
- - - - - &user; - &devel; - &faq; -
diff --git a/modules_k/seas/doc/seas.xml b/modules_k/seas/doc/seas.xml index 57b8d0755..fa56b4f0a 100644 --- a/modules_k/seas/doc/seas.xml +++ b/modules_k/seas/doc/seas.xml @@ -1,9 +1,11 @@ - - - - + + + + + +%docentities; ]> @@ -19,11 +21,12 @@ VozTelecom Sistemas - - www.wesip.eufdfd - -
Ronda Can Fatjo, 9, 1p Parc Tecnologic del Valles Cerdanyola, 08520 (SPAIN) Phone:+34 933968800 www.voztele.comelias.baixas@voztele.com
+ www.wesip.eu +
Ronda Can Fatjo, 9, 1p Parc Tecnologic del Valles Cerdanyola, 08520 (SPAIN) + Phone:+34 933968800 + www.voztele.com + elias.baixas@voztele.com +
@@ -38,1613 +41,7 @@ - - - The Sip Express Application Server User's Guide - -
- Application Servers - -
- Sip Express Application Server module overview - - SEAS module enables OpenSER to transfer the - execution logic control of a sip message to a given external entity, - called the Application Server. When the OpenSER script is being - executed on an incoming SIP message, invocation of the as_relay_t() - function makes this module send the message along with some - transaction information to the specified Application Server. The - Application Server then executes some call-control logic code, and - tells OpenSER to take some actions, ie. forward the message - downstream, or respond to the message with a SIP repy, etc. - - The module acts implements a network protocol acting as the - interface between OpenSER internal API and the external Application - Server entity. - - There's only one relevant function, as_relay_t, exported by this - module. This function receives as a parameter the name of the - application server to which the message should be relaied. Every - message relaied to an Application Server is automatically associated - to a SIP transaction (a transaction is created for it). Just after the - message is relaied to the Application Server, the script stops its - execution on the message, because the control of message-processing is - now in the Application Server. - - In the context of SEAS module, relaying a message to an App - Server, is _not_ done in SIP protocol, but in a special protocol by - means of which the SEAS module and the Application Server comunicate - efficiently and seamlessly. This procotol is specially designed so - that a message doesn't need to be parsed again once it arrives at the - Application Server. This protocol carries information regarding the - internal structure of the SIP message (to avoid reparsing) and also - information about the associated transaction (recall that invoking - as_relay_t indirectly calls t_newtran). This way, all the - SIP-Transaction machinery, and the SIP-Message parsing, is handled at - the OpenSER core, while the execution of the Application Logic is - carried in the Application Server. - - The SEAS module and protocol provide a means by which an - external entity can utilize OpenSER as a transaction-stateful - SIP-stack to act on behalf of it. This means that this external entity - (which we call the Application Server) is notified whenever a - SIP-Request enters OpenSER, and this external entity can then order - OpenSER to execute some actions, either replying the request, or - generating new UAC transactions. - - This version of SEAS works with VozTelecom's WeSIP Application - Server. This Application Server is a SipServlet JAVA Container. -
- -
- Application Servers - - When OpenSER starts and SEAS module is loaded, a new process is - spawn which listens on a server-socket (IP and port are specified as a - parameter in the config script). From then on, the Application Servers - can connect to that socket so that OpenSER can relay messages to them. - When an Application Server connects to the socket, it sends its name - through the socket, so every App Server is identified with a name. - Within the OpenSER script, invoking as_relay_t() receives a string as - a parameter, which specifies the name of an application server to - which the message has to be sent. If that concrete application server - hasn't already connected to the module, the function returns a - negative value, otherwise (the Application Server is connected), the - message is relaied to it. -
- -
- Dependencies - -
- OpenSER Modules - - SEAS module relies on the Transaction Module (TM module) for - operation. -
- -
- External Applications - - Using the SEAS module requires to have an Application Server - running and connected to a particular instance of OpenSER. - - At the moment, the only Application Server that works with - SEAS is WeSIP Application Server, which can be downloaded from - www.wesip.eu, and used freely for non-comercial purposes. -
-
- -
- Exported Parameters - -
- <varname>listen_sockets</varname> (string) - - The listen_sockets string tells SEAS where to listen for - incoming connections of Application Servers. It has the form: - "ip:port". SEAS will open two server-sockets on that IP, at the - specified port, and another at port+1. Application Servers must be - configured to connect to that port. - - In case this parameter is ommited, SEAS listens on the default - IP which OpenSER is using, and opens the ports 5080 and 5081 to - listen for Application Servers. - - - Set <varname>listen_sockets</varname> parameter - - -... -modparam("seas", "listen_sockets","127.0.0.1:5080") -... - - -
-
- -
- Exported Functions - -
- <function moreinfo="none">as_relay_t(String - name)</function> - - Creates a new transaction (if it isn't already created) and - sends the SIP Request and transaction information to the Application - Server specified in the parameter. Every Application Server - connected to OpenSER through the SEAS module, must be identified - with a different name. - - This function can be used within REQUEST_ROUTE. - - - <function>as_relay_t</function> usage - - -... -if (!as_relay_t("app_server_1")) { -log("Error sending to app server"); -t_reply("500","App Server not connected"); -} -... - - - -
- Return value - - In case the Application Server is connected to OpenSER, the - function does _not_ return, the Application Server is now in - charge of processing the request, and it may then reply to the - request, initiate new transactions, or whatever the application - being executed wants. - - In case the Application Server identified by the string - parameter passed to as_relay_t() is not connected to OpenSER, the - function returns 0, so that the script can continue processing the - request. -
-
-
-
- -
- WeSIP Application Server - - At the moment, the only Application Server known to work with SEAS - is WeSIP. You can download a copy from www.wesip.eu. - - WeSIP is a converged Sip/Http Servlet Container. - -
- The Servlet programming paradigm: Sip/Http Servlets - - Servlets are pieces of code that encapsulate the logic of an - application. Servlets are deployed into an Application Server. - Whenever a user requests service, the Application Server processes the - request, and passes control to the servlet. The servlet then executes - some logic, may it be a query to a database, the execution of a - business process, the creation of customized content for the user, or - whatever the service programmer could imagine. When the servlet - finishes the execution, it creates a response and gives it back to the - Application Server, which is in charge of making it reach back to the - user. The Application Server implements the network protocol, it takes - care of everything needed for a proper communication between user and - server, so the servlet doesn’t have to care about these things. The - servlet uses a set of resources from the Application Server, such as - Session management, service routing or chaining, and request/response - header composition. - - In HttpServlets, a service programmer has to implement a method - in a JAVA class, which could be called doGet() or doPost(). Whenever - an HTTP request arrived at the server, one of these functions was - called with the request as a parameter, so the logic of the - application was executed over that particular request. - - HttpServlet has been extensively used over the past years, in - all kinds of business and web services. - - This is how a typical HttpServlet looks like: - - - Typical example of an HttpServlet - - public final class Hello extends HttpServlet { -protected void doGet(HttpServletRequest request,HttpServletResponse response) - throws IOException, ServletException - { -response.setContentType("text/html"); -PrintWriter writer = response.getWriter(); -writer.println("<html>"); -writer.println("<head>"); -writer.println("<title>Sample Application Servlet</title>"); -writer.println("</head>"); -writer.println("<body bgcolor=white>"); -writer.println("<table border=\"0\" width=\"100%\">"); -Enumeration names = request.getHeaderNames(); -while (names.hasMoreElements()) { - String name = (String) names.nextElement(); - writer.println("<tr>"); - writer.println("<th align=\"right\">"+name+":</th>"); - writer.println("<td>"+request.getHeader(name)+"</td>"); - writer.println("</tr>"); -} -writer.println("</table>"); -writer.println("</body>"); -writer.println("</html>"); - } -} - - - The successor of HttpServlet for SIP networks, is the SipServlet - API. Making most of the success of HttpServlet, the SipServlet API - follows the same programming paradigm, so that SIP application - programmers can reuse their knowledge in the field. - - SipServlet API works the same way as HttpServlet: an Application - Server implements a SIP Stack and executes all the complex protocol - logic. It receives and pre-processes the requests from the network, - and at the right moment, passes control to the servlet doXxx() method, - where the programmer implemented the application logic. Depending on - what kind of SIP Message it was, a method or another will be executed. - For example, if an INVITE is received, the doInvite() method will be - invoked in the servlet. - - The application can then access all the parts of the request and - do its work. When the service has been executed, it passes control - back to the Application Server with a response, so that it can be - forwarded to the user, and the service be satisfied. - - Sip Servlets can be used to implement basic SIP network - functionalities (such as Proxy or Registrar servers), but their true - power emerges in the implementation of value-added services, which - greatly surpasses the basic service functionality of plain SIP - servers. - - Examples of value-added services, are Virtual PBX or IPCentrex, - Attended call forwarding, Instant Messaging, etc. - - This is the appearance a typical SipServlet: - - - Typical Sip Servlet Example - - public class ProxyServlet extends SipServlet { - protected void doInvite(SipServletRequest req) throws -ServletException, IOException - { - if (req.isInitial()) { - Proxy proxy = req.getProxy(); - proxy.setRecordRoute(false); - proxy.setParallel(parallel); - proxy.setSupervised(supervised); - SipURI rrURI = proxy.getRecordRouteURI(); - rrURI.setParameter("foo", "bar"); - req.setContent("Method is INVITE", "text/plain"); - proxy.proxyTo(uris); - } else { - log("re-INVITE"); - } - } - protected void doAck(SipServletRequest req) throws -ServletException, IOException - { - log("doAck " + req.getRequestURI()); - if (req.isInitial()) { - throw new ServletException("unexpectedly got initial ACK"); - The servlet programming API is event-ridden: every time a - request comes into the Application Server (may it be an Http or SIP - one), the specific servlet is executed and the service provided within - it. - - It is a very straightforward way of programming services, and - the Servlet API provides very easy and powerful means to access - information about the SIP-session or Http-session, about the request - or response, about the state of the dialog, or whatever it is - needed. - - The application programmer has a rich framework of resources - that allow him to focus only on the service logic, without having to - worry about the underlying protocol specifics (SIP or HTTP). - -
- SipServlet UML diagram - - - - - - -
The Servlet programming language is JAVA, which offers a - wide spectrum of programming API’s dealing with all kinds of - techniques, tools and resources, which also are available seamlessly - from the Servlet context.
- - This makes the SipServlet API very desirable for all kinds - application developers. - - SipServlet allows a rapid SIP application development and - deployment, and also provides a reliable and secure framework of - service execution (the JAVA sandbox and the Application Server - execution environment). - -
- Converged Http/Sip Servlet Containers - - SipServlets achieve the most of it when they can be deployed - along with HttpServlets, in the same Application Server (also known - as Servlet Container). This environment truly realizes the power of - converged voice/data networks: Http protocol represents one of the - most powerful data transmission protocols used in modern networks - (think of the SOAP web-services protocol), and SIP is the protocol - of choice in most of the modern and future voice over IP (VoIP) - networks for the signaling part. So an Application Server capable of - combining and leveraging the power of these two APIs will be the - most successful. - - Convergence of SIP and HTTP protocols into the same - Application Server offers, amongst others, the following key - advantages: - - -It doesn’t require to have 2 different servers (Http and Sip) - so it relieves from maintenance problems, and eases user and - configuration provisioning. - - -It offers great convenience to the application programmer to - have all the classes related to the different protocols handled - within the same code. - - -As it eases development of interactive and multimedia - services, realizing the power of well-known web-services and - intermixing them with new voice services. - - These are some simple, but suggestive examples of services - that could be developed within a converged Http/Sip servlet: - - -IP Centrex: through the use of the Web-interface, users could - have a layout of the office in a web page, and see what phones were - ringing at a given moment, so they could pick-up a call ringing in - another phone in their own desktop. Or they could forward a call to - another party by clicking on the web page and selecting which of the - office phones it had to be transferred to. - - -Voicemail: users could upload an audio file to the server - through a web-page, to be used as the automatic answering message, - and then also download their voicemail through the web-page, or - organize the messages and remove the old ones. - - -Instant Messaging: users could continue a voice call by - starting or joining a new Instant Messaging session carried over a - web-page. - - -Click-to-dial: users could initiate SIP sessions only by - clicking a link on a web page, without the need of the Web-Browser - being SIP-aware nor needing even a SIP phone: the server could - handle all the logic so the user who clicked could receive a call - from the server’s SIP network. -
-
- -
- Configuring WeSIP to work with SEAS - - The WeSIP Application Server configuration file is based on the - Apache Tomcat configuration system: It is an XML-formatted file, in - which the different components of the server are specified. - - The default config file that comes with the WeSIP distribution - package should be suitable for most of the deployment - configurations. - - - -
- Server - - The topmost element in the XML configuration file is the - "server" which has 2 xml attributes, called "port" and "shutdown". - The former specifies a port on which the WeSIP AS will listen for - the shutdown command, and the latter is the magic word that will - make the server shutdown. - - - Server - - <Server port="8005" shutdown="SHUTDOWN" > - - - if you send the magic word "SHUTDOWN" to the port 8005 of the - localhost, the server will stop cleanly. - - -
- -
- Service - - Nested within the Server element, must be a "Service" element, - with an attribute called "name" which specifies the name for the - service. This attribute is not very relevant, you can call it - whatever you like. - - - Service - - <Service name="WeSIP-Standalone"> - - - Within the Service element must be two or more elements: the - connectors and the engines. A connector is the instance that will - receive messages from the network. You can specify HTTP connectors - and/or SIP connectors. Every connector needs an attribute called - "className" which specifies which class will be responsible for - receiving the messages from the network. For HTTP connectors, the - classname must be "org.apache.catalina.connector.http.HttpConnector" - and for SIP connectors - "com.voztele.sipservlet.connector.SipConnector". -
- -
- Connector - - The SIP Connector uses 4 attributes: - - className="com.voztele.sipservlet.connector.SipConnector" - - specifies the classname of the connector. - - minProcessors="5" - - specifies the minimum number of SIPprocessor instances (and - threads in the pool) to process incoming SIP messages. More - processors should allow more load to be processed. This is the - minimum number of instances, even if they are spare and not - working. - - maxProcessors="10" - - specifies the maximum number of SIP processors used (a - negative value specifies that there is no limit). - - addresses="localhost:5060" - - Specifies the SIP address and port in which the Application - Server from which the Application Server will process the SIP - messages. This Addres is where OpenSER listens for the messages, so - in fact, OpenSER is listening on them, but OpenSER passes the - messages to WeSIP, so WeSIP must be aware of this IP/port. - - - this attribute MUST match one of the listening points - declared within OpenSER in the "listen" parameters. - - For example in openser.cfg:listen = tcp:localhost:5060 -listen = udp:localhost:5060 - - - Within the SIP Connector element there must be an - ExtraProperties element, containing nestes Property elements. Each - property element specifies a parameter for the SIP Stack. Each - property is specified by a key and a value. The most significant - keys are: - - - - com.voztele.javax.sip.SER_ADDRESS - - This specifies the IP and port in which the OpenSER is - listening for Application Servers to connect and register.This - specifies the IP and port in which the OpenSER is listening for - Application Servers to connect and register. - - - This needs to match the - listen_sockets seas module parameter - within the OpenSER configuration file. Ie.: - - modparam("seas", "listen_sockets","127.0.0.1:5080") - - - - - javax.sip.STACK_NAME - - Specifies the name identifying this instance of the - Application Server. - - - This is the name you will set in the OpenSER - configuration script when you invoke the WeSIP Application - Server, by calling the as_relay_t function. This is the name - you pass as the parameter of the function. If you have - different WeSIP instances all connecting to the same - OpenSER, they must each one have a different STACK_NAME", - and within OpenSER you can call each of them by invoking - as_relay_t() with a different name. Example: - - <Property key="javax.sip.STACK_NAME" value="app_server_one" /> - - - - - com.voztele.javax.sip.THREAD_POOL_SIZE (integer) - - Specifies the number of threads there must be in the pool - to process incoming SIP messages. If unspecificed, the default - is "infinity". - - - - com.voztele.javax.sip.SPIRAL_HDR - - This property tells WeSIP and SEAS that every SipRequest - and UAC transaction generated from WeSIP, must spiral through - SER, and will be added a special Header called "X-WeSIP-SPIRAL: - true" this will make all the outgoing messages pass again - through the OpenSER script, so that they can be accounted or - whatever the configurator wants. For example, the configuration - script could go: - - route{ - if(is_present_hf("X-WeSIP-SPIRAL")){ - /* account, log, register, or whatever */ - t_relay(); - }else{ - as_relay_t("app_server_1"); - } -} - - - - -
- -
- Engine - - The Engine must also be nested within the Server element, - along with the Connectors. It must have a "name" attribute with - whatever name you feel like. It needs to have another attribute - called "defaultHost" which will be the default host to which to pass - the incoming request (in HTTP/1.0 the requests dont have a Host - header, so they will be passed to this default host, in SIP, this - attribute doesn't have a meaning.). In order to have this Engine - handling also SIP messages, the "className" attribute of the Engine - must be - "com.voztele.sipservlet.core.ConvergedEngine". - - Within the Engine, there can be one or more Hosts, each one - specified within a "Host" element nested in the engine. -
- -
- Mapper - - A mapper is used to map an incoming request to one or another - SIP or HTTP host. In case it is a SIP request, the mapping is done - based on the sip.xml deployment descriptor rules. The classname of - the SIP mapper MUST BE - "com.voztele.sipservlet.core.EngineSipMapper". The "mapper" element - must also have a "protocol" attribute, specifying which protocol - this mapper handles. In case of the SIP mapper it must be - "SIP/2.0". The HTTP mapper's classname must be - "org.apache.catalina.core.StandardEngineMapper" and the protocol - attribute "HTTP/1.1" -
- -
- Realm - - The authentication in HTTP is performed in Apache-Tomcat - through Realms. The memory realm is (textual copy from the - Apache-Tomcat javadoc"): "Simple implementation of Realm that reads - an XML file to configure the valid users, passwords, and - roles." - - The classname must be - "org.apache.catalina.realm.MemoryRealm" - - A "pathname" attribute can be specified to tell the Realm - which file contains the usernames, passwords and roles. If not - specified, it is "conf/wesip-users.xml" -
- -
- Host - - A Host represents a VirtualHost in HTTP/1.1 servers, so the - requests will be dispatched to one or another virtual host depending - on the Host: header. In SIP this doesn't make much sense, because - there's no such Host: header, and virtual hosting is not done in - this way. Every host must have a "name" attribute which specifies - the name of the virtual host, it must also have a "nameSip" - attribute which MUST MATCH the IP or hostname _and_ port" specified - in OpenSER listen parameters and in the Sip Connector the hostname - and the port must be separated with an underscore. for example: - nameSip="localhost_5060" or nameSip="192.168.1.1_5060" The next - important attribute that must have the Host element is "appBase" - which declares the directory where the WEB and SIP applications - reside. It usually is a directory called apps in the directory from - which the server runs. The attribute "unpackWARs" says the WeSIP - Application Server to unpack the Web or Sip Application Archives - (.war or .sar extensions) found inside the appBase directory. It - should usually be set to "true". The "port" attribute specifies the - port where this host is going to receive SIP messages . This only - has to do with the SIP protocol, not with HTTP. It must be the same - as the port specified in OpenSER parameter "listen_sockets" (for the - seas module). The "autoDeploy" attribute tells the host to monitor - the "appBase" directory for new application archives (.sar or .war) - so they can automatically be deployed. This parameter should be set - to "true". The "className" used for the Host _must_be_ - "com.voztele.sipservlet.core.ConvergedHost" -
- -
- Mapper - - Hosts must also have a nested Mapper element, but when the - mapper is inside a Host (and not in an Engine) the classnames must - be "com.voztele.sipservlet.core.SipHostMapper" for the "SIP/2.0" - protocol and "org.apache.catalina.core.HttpHostMapper" for the - "HTTP/1.1" protocol. (2 mappers must be nested inside the - Host). -
-
- -
- Configuration Examples - - In general, you can configure WeSIP to work with your OpenSER in - two ways: have 2 OpenSER instances, the first acting as - Proxy/Registrar/Redirect and the second cooperating with WeSIP to act - as the Application Server. This is the preferred deployment layout, as - the first OpenSER works as usual, and the requests that need special - services are relaied to another OpenSER which acts on behalf of the - WeSIP AS. This configuration profile distributes load (call-routing - logic in one instance, and Application Services in the other), and is - also more fault-tolerant. On the other hand, you can have all your - call-routing logic and Application Server on the same OpenSER, having - one script handle all the logic, and then invoking the App Server at - any point. - - - -
- Openser.cfg in standalone - - debug=3 # debug level (cmd line: -dddddddddd) -fork=yes -log_stderror=no # (cmd line: -E) -check_via=no # (cmd. line: -v) -dns=no # (cmd. line: -r) -rev_dns=no # (cmd. line: -R) -port=5060 -children=4 -loadmodule "/usr/local/lib/openser/modules/sl.so" -loadmodule "/usr/local/lib/openser/modules/tm.so" -loadmodule "/usr/local/lib/openser/modules/rr.so" -loadmodule "/usr/local/lib/openser/modules/maxfwd.so" -loadmodule "/usr/local/lib/openser/modules/usrloc.so" -loadmodule "/usr/local/lib/openser/modules/registrar.so" -loadmodule "/usr/local/lib/openser/modules/textops.so" -loadmodule "/usr/local/lib/openser/modules/seas.so" -loadmodule "/usr/local/lib/openser/modules/mi_fifo.so" - -modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo") -modparam("usrloc", "db_mode", 0) -modparam("rr", "enable_full_lr", 1) -modparam("seas", "listen_sockets", "127.0.0.1:5080"); - -route{ - if (!mf_process_maxfwd_header("10")) { - sl_send_reply("483","Too Many Hops"); - exit; - }; - if (msg:len >= 2048 ) { - sl_send_reply("513", "Message too big"); - exit; - }; - if (!method=="REGISTER") - record_route(); - if (loose_route()) { - append_hf("P-hint: rr-enforced\r\n"); - route(1); - }; - if (uri==myself) { - if (method=="REGISTER") { - save("location"); - exit; - }; - lookup("aliases"); - if (!uri==myself) { - append_hf("P-hint: outbound alias\r\n"); - route(1); - }; - if (!lookup("location")) { - sl_send_reply("404", "Not Found"); - exit; - }; - append_hf("P-hint: usrloc applied\r\n"); - }; - route(1); -} -route[1] { - if(!as_relay_t("app_server_one")){ - t_reply("500","Application Server error"); - } -} -
- -
- Openser.cfg working as WeSIP front-end - - debug=9 # debug level (cmd line: -dddddddddd) -fork=yes -log_stderror=yes # (cmd line: -E) - -check_via=no # (cmd. line: -v) -dns=no # (cmd. line: -r) -rev_dns=no # (cmd. line: -R) -port=5060 -children=4 - -reply_to_via=1 -listen = tcp:localhost:5060 -listen = udp:localhost:5060 - -mpath="/home/elias/src/sipservlet/seas" - -loadmodule "modules/tm/tm.so" -loadmodule "modules/seas/seas.so" -loadmodule "modules/mi_fifo/mi_fifo.so" - -modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo") -modparam("seas", "listen_sockets","127.0.0.1:5080") - -route{ - if(!as_relay_t("app_server_1")){ - t_reply("500","Application Server error"); - } - -} -
- -
- Server.xml - - <Server port="8005" shutdown="SHUTDOWN" debug="0"> - <Service name="WeSIP-Standalone"> - <Connector className="org.apache.catalina.connector.http.HttpConnector" - port="8080" minProcessors="5" maxProcessors="75" - enableLookups="true" address="localhost" acceptCount="10" debug="10" /> - <Connector className="com.voztele.sipservlet.connector.SipConnector" - minProcessors="5" maxProcessors="75" - addresses="localhost:5060" > - <ExtraProperties> - <Property key="com.voztele.javax.sip.SER_ADDRESS" value="127.0.0.1:5080" /> - <Property key="javax.sip.STACK_NAME" value="app_server_one" /> - <Property key="com.voztele.javax.sip.THREAD_POOL_SIZE" value="10" /> - </ExtraProperties> - </Connector> - <Engine name="Standalone" defaultHost="localhost" debug="10" - className="com.voztele.sipservlet.core.ConvergedEngine"> - - <Logger className="org.apache.catalina.logger.SystemOutLogger" - timestamp="true"/> - <Mapper className="org.apache.catalina.core.StandardEngineMapper" protocol="HTTP/1.1"/> - <Mapper className="com.voztele.sipservlet.core.EngineSipMapper" protocol="SIP/2.0"/> - <Realm className="org.apache.catalina.realm.MemoryRealm" /> - <Host name="localhost" nameSip="localhost_5060" debug="10" appBase="webapps" unpackWARs="true" - port="5060" autoDeploy="true" className="com.voztele.sipservlet.core.ConvergedHost"> - <Mapper className="com.voztele.sipservlet.core.SipHostMapper" protocol="SIP/2.0"/> - <Mapper className="org.apache.catalina.core.HttpHostMapper" protocol="HTTP/1.1"/> - </Host> - </Engine> -</Service> -</Server> -
-
-
-
- - - - - - - - $Revision$ - - $Date$ - - - - - Developer's Guide - -
- Internals - - The SEAS module runs within the Open Sip Express Router aka. - OpenSER. OpenSER uses a pool of processes to execute the script logic on - every new message received. These are called the worker processes. One - of these processes will be selected to process the script, and at some - point it will find a function invoking the relay of the SIP message to - one of the Application Servers registered. This function has been called - as_relay_t, which stands for Application Server relay (the _t stands for - TransactionStatefully), and receives as the only parameter the name of - the application server to be invoked. - - The process will execute the as_relay_t function, which looks up - in a table if there is a registered Application Server with that name. - If there is one, the process will craft the SEAS header for the SIP - message being handled, put it in a shared memory segment, and write the - address of that segment to a pipe (4 bytes pointer in IA32). - - This way, we will have all the OpenSER processes composing the - SEAS header along with the SIP message, and putting its shared memory - address into that pipe. This technique of inter-process communication - avoids race conditions because writing to a pipe is granted to be an - atomic operation if the data to write is less than _POSIX_PIPE_BUF, - which usually is 512 bytes. - - At the initialization of OpenSER, the SEAS module creates the - discussed pipe, so that all the OpenSER worker processes inherit the - file descriptor associated to the pipe. Then it spawns a new process, - which will be the one to open two server sockets, and wait for the - Application Servers to connect and register. - - Each Application Server wishing to receive events from OpenSER, - will have to open a socket to the module (the port and IP of the socket - are defined at start time in the script). After connection, it has to - print its identification name. The SEAS process (from now on, called - event dispatcher) will then register it in its internal structures, so - that the OpenSER processes can push events for it. The following - picture, shows the internals of the SEAS Event dispatcher - process: - -
- Overview of Seas Event Dispatcher process operation - - - - - - -
Within the SER server, the flowing of SIP Messages and - control flow, is depicted in the following diagram:
- -
- SIP Messages and control flow within SER - - - - - - -
-
- -
- SEAS Protocol - - SIP is a very flexible protocol. It can be very easily extended - with new features, and SIP entities have a high level of freedom in - composing the SIP messages, for example setting IPs or hostnames in - URIs, reordering header fields, folding headers, aggregating/scattering - headers, etc. - - This flexibility, though, makes it difficult to implement - efficiently, because parsing of text headers requires a lot of - state. - - OpenSER implements a very efficient parsing mechanism and - SIP-transaction machinery. The goal of the SEAS protocol is to keep all - this information that has been already extracted at OpenSER, so that it - can be reused at the Application Server. - -
- The SEAS protocol - - The SEAS protocol is a layer of information regarding the - internal structure of a SIP message that is added whenever SEAS sends - a SIP event to the Application Servers. The protocol is used for - communication between OpenSER and the Application Servers. - - Once an incoming SIP message has reached the worker process - within OpenSER, it copies its content into a private memory area - (which is, a memory chunk not shared across processes). In this point, - the message first line is parsed to know whether it is a SIP request - or response. - - OpenSER uses a technique called lazy-parsing, which consists in - delaying the parse of headers until some piece of the code requires - it. - - As the SIP message goes traversing functions and the script - code, a function called parse_msg() gets called again and again, and - the SIP message gets parsed further and further. Each call to - parse_msg passes an integer value argument (32 bits) in which every - bit signals a header to be parsed, if they are already parsed (because - a previous invocation of parse_msg), the function returns immediately, - otherwise, the SIP message is scanned and parsed until all the headers - requested get parsed. - - In each call to parse_msg, different parts of the message are - analyzed, and different SIP header-specific structures get filled. - Each one of this structures, give quick access to each of the parts of - a SIP message header. - - For example, a Via header struct is called via_body, and has - these members: name, version, transport, host, proto, port, port_str, - params, comment, received, rport, etc. each of these members gives - quick access to each of the parts of the header. For example, a via - header like this: “Via: SIP/2.0/UDP - 192.168.1.64:5070;branch=z9hG4bK-c02c60cc†would have the member proto - pointing to the “U†of “UDPâ€, and a length of 3, the host member would - be pointing to “192.168.1.64†and have a length of 12, the branch - member would be pointing to “z9hG4bK-c02c60cc†and a length of 16, and - so on. - - This structure is the result of the parsing. All this - meta-information regarding the SIP message structure, is stored in a - sip_msg structure, using dynamically-allocated memory segments. - - OpenSER defines different structure types describing different - SIP headers, such as via_body, to_body, cseq_body, via_param, and so - on. These structures are generally composed of another kind of - structure called str. - - The str structure is a key component of OpenSER's high - performance. In the C programming language, a string's length is known - because a '0' (null-character) is found at the end of it. This forces - each of the string manipulation functions to keep looking for a '0' in - the byte stream, which is quite processor consuming. Instead of this, - OpenSER defines a structure composed of a char pointer and an integer. - The char points to the start of a string, and the integer gives its - length, thus avoiding the '0' lookup problem, and giving a significant - performance boost. - - This structure has been quite useful to the design of the SEAS - protocol, because it enables the description of the SIP message - anatomy by giving pointers to each of its fields, and integers - describing each of its lengths. - - Knowing that a SIP header does not usually occupy more than a - few characters (always less than 256), the pointer in the structure - has been relativized to the beginning of the SIP message or the - beginning of the SIP header, and the integer giving the length, has - been casted to an unsigned byte (256 values, so 256 characters maximum - length). - - When messages get transferred from OpenSER to the Application - Server, it is optimum to keep this worthy meta-information regarding - the SIP message, so that it can be used at the AS part. For this to be - possible, it is needed to store the pointers to each of the syntactic - structures and their length. - - In general, pointers are variables that point to a region in the - memory of a computer. The region of the memory is counted from the - 0x00000000 address in IA32 architectures (from the beginning). - - C provides functionality to do any kind of arithmetic operations - over pointers (add, subtract, multiply and divide), so that the - euclidean distance over the one-dimension address space can be - calculated just by subtracting a base address from another - pointer. - - These pointers will have to be transmitted through the network, - along with the SIP message, so for the pointers to keep their meaning, - they need to be relativized to a known point, and the most meaningful - known point in a SIP message is its start. - - So making the pointers relative to the message start, gives two - important features: first, it makes the pointers still valid when they - arrive at another computer (because they are relative to the beginning - of the message), and they occupy far less memory, because from a - 4-byte pointer (in IA32) it gets translated to a 1 or 2 byte index, - because an important amount of redundant information is elicited (we - already know that each of the parts of the message belong to the - message, so why carry the message begin address in each of the - pointers ?). - - The SIP messages are composed of protocol headers and a payload. - The headers section don't usually surpass the 1500 byte limit, amongst - other reasons, because the usual Maximum Transmission Unit in Ethernet - networks is 1500 bytes and the protocol was initially designed to work - on UDP. For that reason, 11 bits should be enough to address a - particular region within the SIP message, because it yields 2048 - positions. The closest greater value to 11 bits multiple of a byte - (the basic TCP network transport unit) is 16 bits, or 2 bytes, which - makes it possible to address 65536 positions from the - beginning. - - For the SEAS protocol to be extensible and platform-independent, - all the 2-byte pointers or indexes to each of the message regions are - sent in network-byte-order, or big endian. This is also useful in the - JAVA part to retrieve the indexes, because the JAVA natively uses a - big-endian representation of integers, regardless the architecture on - which it runs. - - For each kind of standard SIP header (this is, the headers - referred to in the SIP specification) there is a code specification, - regarding the composition of the header. Each one of its parts points - to one the several components of the header. For example, a From - header always has a SipURI and may have several parameters, amongst - others, a tag. Then, the From header code has a field indicating where - the URI starts, a codification of the URI, and several pointers that - point to each one of the parameter names and values. This is the - codification of the From header. All the other headers have a similar - codification. -
- -
- General codification of a header - - Every header codification, regardless it is known to the server - or not, begins with a 2-byte unsigned integer, which points to the - beginning of that header counted from the SIP message begin (a SIP - message start based pointer to the header). Following these two bytes - is another byte giving the length of the name, and another byte giving - the length of the entire header (including name and value). - -
- General codification of a SIP header in SEAS - protocol - - - - - - -
For example:
- -
- Example of a from header SEAS-protocol codification - - - - - - -
- -
- Codification of a generic URI - - As the SIP URI is one of the most used types in a SIP message, - a special structure has been defined to describe the contents of it. - A URI is always included inside a SIP header, or may be in the first - line of a SIP Request (as the request URI). - - The codification of any URI is as follows: - -
- SEAS-codification of a SIP URI (byte meanings are - shown) - - - - - - -
- - What follows is an example of a SIP URI codification with the - SEAS protocol. - -
- Example of a SEAS SIP URI codification - - - - - - -
The first byte in the encoded-URI structure, gives the - index where the URI starts, counting from the beginning of the SIP - header where it appears. The next two bytes are flags indicating - known fields present in the URI (such as port, host, user, - etc.).
- - All the following bytes are uri-start based pointers to the - fields that are present in the URI, as specified by the flags. They - must appear in the same order shown in the flags, and only appear if - the flag was set to 1. - - The end of the field, will be the place where the following - pointer points to, minus one (note that all the fields present in a - URI are preceded by 1 character, ie - sip[:user][:passwod][@host][:port][;param1=x][;param2=y][?hdr1=a][&hdr2=b]) - it will also be necessary to have a pointer at the end, pointing two - past the end of the URI, so that the length of the last header can - be computed. - - The reason to have the “other parameters†and headers flags at - the beginning (just after the strictly URI stuff), is that it will - be necessary to know the length of the parameters section and the - headers section. The parameters can appear in an arbitrary order, - they won't be following the convention of - transport-ttl-user-method-maddr-lr, so we can't rely on the next - pointer to compute the length of the previous pointer field, as the - ttl parameter can appear before the transport parameter. So the - parameter pointers must have 2 bytes: pointer+length. -
- -
- Codification of To and From headers - - To and From headers follow the same structure, so the same - codification structure has been used to describe both. The structure - is depicted in the drawing: - -
- SEAS codification of From and To headers - - - - - - -
-
- -
- Codification of Contact - - The contact header is one of those SIP headers that can be - combined, which means that if several headers of the same type are - present in the message, they can be aggregated in a single header, - having the header values separated by a comma. Thus, a single - Contact header can contain more than one contact-value. For this - reason, the Contact codification is composed of a several Contact - codifications concatenated, and a byte at the beginning telling how - much Contact codifications are present. The code is depicted in the - following drawing: - -
- SEAS codification of a Contact header - - - - - - -
-
- -
- Codification of Route and Record Route headers - - Both Route and Record-Route headers follow an identical - structure, and it is also permitted to combine several headers into - one, with their bodies (or header values) separated by commas. In - this case, both kinds of headers follow the same structure, defined - as follows: - -
- SEAS codification of a Route Header - - - - - - -
-
- -
- Codification of Accept and Content-Type headers - - These two kinds of headers carry mime type and subtype - definitions in the form “type/subtype†(ie. text/xml, - application/sdp or whatever). For internal handling of this headers, - SER codifies the known types and subtypes into a single 32 bit - integer, with the highest two bytes giving the mime type, and the - lowest two bytes giving the subtype. - - The difference is that Accept header can also be combined, - carrying more than one header value in a single header row. Thus the - Accept header has a leading byte giving the number of mime - type/subtype integers present, while the Content-Type only uses 4 - bytes (a 32-bit integer) giving the type/subtype. -
- -
- Codification of Authorization headers - - SIP has inherited the authentication scheme from HTTP, which - is based on a digest scheme. There are several headers regarding - these authorization scheme, namely Proxy-Authenticate, - WWW-Authenticate, Authorization and Proxy-Authorization. All of them - can be codified using the same schema, which is as follows: - -
- SEAS codification of Authentication/Authorization - headers - - - - - - -
- - For each field present, there are 2 bytes, one pointing the - place where it starts, the next giving how long this field is. The - URI is a special case, and is composed of 1 byte telling how long is - the URI structure, and then the encoded URI structure. -
- -
- Codification of Allow headers - - Allow headers carry request methods that a user agent or proxy - understands or is willing to accept. In SER, request methods are - codified into a 32-bit integer, each of its bits signals a different - kind of header. The Allow header is codified copying that integer - into the payload of the header. -
- -
- Codification of Content-Disposition headers - - The content-disposition is encoded within 2 bytes: the first - is a header-start based pointer to where the content-disposition - value starts, and the second is its length. If there are parameters - present, each of them uses 1 byte pointing to where the parameter - name starts, and 1 byte pointing to where the parameter value - starts. From these two values, the parameter name and value lengths - can be inferred. -
- -
- Codification of Content-Length header - - The content length header is codified as a 4-byte unsigned - integer, in network byte order. -
- -
- Codification of Cseq header - - The Cseq header is codified using 9 bytes. The first one is a - number corresponding to the internal value that SER assigns to that - request method (the method ID). The following 4 bytes are an - unsigned 32-bit integer according to the Cseq number. The next two - bytes are the header based pointer to the beginning of the Cseq - number and its length, and two more bytes pointing to the beginning - of the method name and its length. -
- -
- Codification of Expires header - - The expires header is composed of 6 bytes. The first four - bytes are an unsigned 32-bit integer with the parsed value of the - header (which is the number of seconds before a request expires). - Then follows 1 byte pointing to the beginning of the header value - (the expires value as a string) and a byte giving the length of the - value. -
- -
- Codification of a SIP message - -
- The general message information section - - In SER, not only the headers are parsed with a high degree - of optimization, but also the first line is. So for the SEAS - protocol to realize this improvement, a codification for the first - line of every SIP messages has also been defined. - - The first two bytes of the codification are a 2-byte - unsigned integer. If its value is equal or greater than 100, then - this is a response, and the integer represents its status code. If - its value is smaller than 100, then it is a request, and the - integer represents the method of the request being - transported. - -
- SEAS codification of a SIP First Line - - - - - - -
- - The next two bytes are an unsigned integer which is a - pointer to where the actual SIP message starts, beginning from the - start of the codified payload. - - The next two bytes are also an unsigned integer giving the - SIP message length. - - The next bytes differ on the meaning depending on whether - the message is a SIP Request or Response. - - In case it is a Request: - - The next two bytes, are a SIP-message-start based pointer to - where the method begins, and the method length. - - The next two bytes, are a SIP-message-start based pointer to - where the Request URI begins, and the request URI length. - - The next two bytes, are a SIP-message-start based pointer to - where the version identifier begins, and the version identifier - length. - - In case it was a Response: - - The next two bytes, are a SIP-message-start based pointer to - where the response code begins, and the response code - length. - - The next two bytes, are a SIP-message-start based pointer to - where the reason phrase begins, and the reason phrase - length. - - The next two bytes, are a SIP-message-start based pointer to - where the version identifier begins, and the version identifier - length. - - In case the message is a SIP response, the following bytes - correspond to the Request URI codification. The first byte is the - length of the URI codification, followed by the URI code. - - The last byte in this set, is the number of headers present - in the SIP message. After this byte, goes a section, called the - Message Headers Index, which gives quick access to each of the - headers and their codifications present in the message. -
- -
- The headers index section - - As it has been already discussed, the aim of SEAS project is - to achieve as high a performance as possible. One of the - techniques enabling high performance in text-based servers is the - so called lazy parsing. To enable the laziest possible parsing at - the Application Server endpoint, a mechanism has been used so that - access to a requested SIP header can be delayed until the - application requests it, and the access can be direct to that - header, without parsing the former headers present in the SIP - message. Recall that one of the performance drawbacks of the SIP - protocol is that headers of any type can be spread all along the - header section, not having the constraint of putting the most - critical sip-specific headers at the beginning and ordered (which - would be, in fact, very desirable). - - For this to be possible, there is a section right after the - beginning of the payload (the general message information section) - which is a kind of hash table, giving quick access to the codes - (as explained in the previous sections) of each of the headers - present in the message. - - This sort of hash table, is composed of triplets of bytes. - The first byte of each three is a code indicating which kind of - header it points to (whether it is a From, To, Call-ID, Route - header, etc). Then follows a 2 byte network-byte-order integer - that points to a section in the codified-header where the body of - this header is more specifically described. - - This gives really fast access to any of the headers. For - example, if all the Route Headers were requested by the - application, then a lookup in this table would be necessary, - looking for the value '9' (corresponding to the Route header) in - each of the positions multiple of 3 (0,3,6,9,12, etc). This can be - done in a extremely fast and easy way, as this snipped of pseudo - code explains: - - for(int j=0,int i=0;i<table_length;i+=3){ - - if(payload[i]==9) - - results[j++]=i; - - } - - this would let in the “results†array all the indexes in the - headers table that refer to a Route header. Then, the Route - codification for each of the headers could be reached thanks to - the two-byte unsigned integer that follows each of the header - identifiers. - -
- SEAS Headers Index section overview - - - - - - -
So a SIP message codified by the SEAS protocol, has the - following layout:
- -
- SEAS SIP-Message codification - - - - - - -
- - SIP Messages are a fundamental part of the protocol, but - they are not the only one. Transaction play a very important role - in the SIP protocol, within SER and in any JAIN-SIP - implementation. For this reason, the SEAS protocol also needs to - define and implement some semantics regarding transaction - handling. The events related to a transaction are: Incoming - Request, Outgoing Request, Incoming Response, Outgoing Response, - Timeout and Transport Error. - - So the SEAS protocol defines a specific format for each one - of these events. Internally, SER stores the transactions in a hash - table. This hash table generates an integer for each transaction - applying a hash function to its Via branch parameter, this integer - is the hash index, and it identifies in which slot within the hash - table the transaction is stored. The transaction table usually - uses 65536 entries, so the hash collision is pretty unlikely. - Anyway, every hash entry is in reality a linked list of - transactions, so in the case a hash collision (two transactions - being assigned to the same hash slot) the transactions are added - to the same slot, each one being identified by another integer - called the label. The label within a hash slot, is initially - generated randomly, and then increased by one each time a - transaction falls in the same slot. So every transaction is - identified by a hash index and a label. - - For incoming SIP requests, a transaction is generated at - SER, and the SEAS module gets that transaction identifier (hash - index + label), then grabs the source and destination IP, port and - transport from every message, and crafts a SEAS RequestIn event. - This kind of event carries all this information within it. - - In order to send Responses out for the Server Transactions, - JAIN can send a type of Action messages, that order SER to send - them to the network. These messages follow a structure very - similar to that of RequestIn events: they start with the Action - length in bytes, then follows a byte giving the type of action, - then follows the Hash Index and the Label associated with the - transaction that is being replied, and finally the SIP Message in - raw format. It doesn’t use the SEAS codification described above, - because SER can easily parse the JAIN provided Response to process - it and send it out, so the pre-parsing is not needed in that - direction. - - In order to generate Client Transactions, that is, sending - SIP Requests out, JAIN utilizes another kind of action called Seas - Request Action. In this case, when JAIN generates the Request to - be sent out, it doesn’t have any means to know the transaction - identifier (hash index and label) that will be assigned to it by - SER, so a new mechanism has bee implemented to correlate JAIN - requests to SER transactions. Basically, JAIN-SIP assigns a unique - identifier (an integer) that is incremented by one for each new - Client Transaction generated. This identifier is passed to SER - along with the SIP Request, so when a SIP Response arrives to SER - regarding that transaction, SER sends a ResponseIn event to the - JAIN stack, containing both the initial integer identifying the - transaction at JAIN and the hash index and label that have been - assigned to the transaction. This way, JAIN can correlate its own - identifiers with the identifiers used within SER. - -
- Different kinds of SEAS codified Events and - Actions - - - - - - -
- - In case there is a Transaction Timeout, it is notified to - the JAIN SIP Stack by passing it a Seas Incoming Response with a - flag called Faked Reply, and a Response code number 408 (Request - Timeout). -
-
-
-
-
- - - - - - - - $Revision$ - - $Date$ - - - - - Frequently Asked Questions - - - - - Where can I find more about OpenSER? - - - - Take a look at http://openser.org/ - - - - - Where can I find more about WeSIP? - - - Take a look at http://www.wesip.eu/ - - - - - - Where can I post a question about this module? - - - - First at all check if your question was already answered on - one of our mailing lists: - - - - User Mailing List - http://openser.org/cgi-bin/mailman/listinfo/users - - - - Developer Mailing List - http://openser.org/cgi-bin/mailman/listinfo/devel - - - - E-mails regarding any stable OpenSER release should be sent to - users@openser.org and e-mails regarding development - versions should be sent to devel@openser.org. - - If you want to keep the mail private, send it to - team@openser.org. - - - - - - How can I report a bug? - - - - Please follow the guidelines provided at: http://sourceforge.net/tracker/?group_id=139143. - - - - - - + &user; + &devel; + &faq;
diff --git a/modules_k/seas/doc/seas_user.sgml b/modules_k/seas/doc/seas_admin.xml similarity index 99% rename from modules_k/seas/doc/seas_user.sgml rename to modules_k/seas/doc/seas_admin.xml index 293a2bcd7..e6d8c29de 100644 --- a/modules_k/seas/doc/seas_user.sgml +++ b/modules_k/seas/doc/seas_admin.xml @@ -307,15 +307,16 @@ ServletException, IOException that allow him to focus only on the service logic, without having to worry about the underlying protocol specifics (SIP or HTTP). -
+
SipServlet UML diagram - + -
The Servlet programming language is JAVA, which offers a +
+ The Servlet programming language is JAVA, which offers a wide spectrum of programming API’s dealing with all kinds of techniques, tools and resources, which also are available seamlessly from the Servlet context. diff --git a/modules_k/seas/doc/seas_devel.sgml b/modules_k/seas/doc/seas_devel.xml similarity index 94% rename from modules_k/seas/doc/seas_devel.sgml rename to modules_k/seas/doc/seas_devel.xml index 57faf984f..c3ad88828 100644 --- a/modules_k/seas/doc/seas_devel.sgml +++ b/modules_k/seas/doc/seas_devel.xml @@ -44,26 +44,27 @@ picture, shows the internals of the SEAS Event dispatcher process:
-
+
Overview of Seas Event Dispatcher process operation - + -
Within the SER server, the flowing of SIP Messages and +
+ Within the SER server, the flowing of SIP Messages and control flow, is depicted in the following diagram: -
+
SIP Messages and control flow within SER - + -
+
@@ -229,26 +230,26 @@ is another byte giving the length of the name, and another byte giving the length of the entire header (including name and value). -
+
General codification of a SIP header in SEAS protocol - + -
For example: +
For example: -
+
Example of a from header SEAS-protocol codification - + -
+
Codification of a generic URI @@ -260,29 +261,30 @@ The codification of any URI is as follows: -
+
SEAS-codification of a SIP URI (byte meanings are shown) - + -
+
What follows is an example of a SIP URI codification with the SEAS protocol. -
+
Example of a SEAS SIP URI codification - + -
The first byte in the encoded-URI structure, gives the +
+ The first byte in the encoded-URI structure, gives the index where the URI starts, counting from the beginning of the SIP header where it appears. The next two bytes are flags indicating known fields present in the URI (such as port, host, user, @@ -319,15 +321,15 @@ codification structure has been used to describe both. The structure is depicted in the drawing: -
+
SEAS codification of From and To headers - + -
+
@@ -343,15 +345,15 @@ much Contact codifications are present. The code is depicted in the following drawing: -
+
SEAS codification of a Contact header - + -
+
@@ -363,15 +365,15 @@ this case, both kinds of headers follow the same structure, defined as follows: -
+
SEAS codification of a Route Header - + -
+
@@ -400,16 +402,16 @@ WWW-Authenticate, Authorization and Proxy-Authorization. All of them can be codified using the same schema, which is as follows: -
+
SEAS codification of Authentication/Authorization headers - + -
+
For each field present, there are 2 bytes, one pointing the place where it starts, the next giving how long this field is. The @@ -487,15 +489,15 @@ integer represents the method of the request being transported. -
+
SEAS codification of a SIP First Line - + -
+
The next two bytes are an unsigned integer which is a pointer to where the actual SIP message starts, beginning from the @@ -595,26 +597,27 @@ the two-byte unsigned integer that follows each of the header identifiers. -
+
SEAS Headers Index section overview - + -
So a SIP message codified by the SEAS protocol, has the +
+ So a SIP message codified by the SEAS protocol, has the following layout: -
+
SEAS SIP-Message codification - + -
+
SIP Messages are a fundamental part of the protocol, but they are not the only one. Transaction play a very important role @@ -675,16 +678,16 @@ assigned to the transaction. This way, JAIN can correlate its own identifiers with the identifiers used within SER. -
+
Different kinds of SEAS codified Events and Actions - + -
+
In case there is a Transaction Timeout, it is notified to the JAIN SIP Stack by passing it a Seas Incoming Response with a diff --git a/modules_k/siptrace/README b/modules_k/siptrace/README index 11e98cb40..88016d491 100644 --- a/modules_k/siptrace/README +++ b/modules_k/siptrace/README @@ -2,16 +2,18 @@ SipTrace Module Daniel-Constantin Mierla - voice-system.ro - Edited by Daniel-Constantin Mierla Copyright © 2006 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -42,17 +44,19 @@ Daniel-Constantin Mierla 1.6. Database setup 1.7. Known issues + 2. Frequently Asked Questions + List of Examples - 1-1. Set db_url parameter - 1-2. Set sip_trace parameter - 1-3. Set trace_flag parameter - 1-4. Set trace_on parameter - 1-5. Set trace_on parameter - 1-6. Set trace_on parameter - 1-7. Set duplicate_uri parameter - 1-8. Set trace_local_ip parameter - 1-9. sip_trace() usage - __________________________________________________________ + + 1.1. Set db_url parameter + 1.2. Set sip_trace parameter + 1.3. Set trace_flag parameter + 1.4. Set trace_on parameter + 1.5. Set trace_on parameter + 1.6. Set trace_on parameter + 1.7. Set duplicate_uri parameter + 1.8. Set trace_local_ip parameter + 1.9. sip_trace() usage Chapter 1. User's Guide @@ -62,7 +66,6 @@ Chapter 1. User's Guide database. There are two ways of storing information. - * by calling explicitely the sip_trace() method in OpenSER configuration file. In this case the original message is processed. @@ -77,26 +80,21 @@ Chapter 1. User's Guide openserctl fifo sip_trace on openserctl fifo sip_trace off - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER 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. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -106,11 +104,10 @@ Chapter 1. User's Guide Default value is "". - Example 1-1. Set db_url parameter + Example 1.1. Set db_url parameter ... modparam("siptrace", "db_url", "mysql://user:passwd@host/dbname") ... - __________________________________________________________ 1.3.2. table (str) @@ -118,11 +115,10 @@ modparam("siptrace", "db_url", "mysql://user:passwd@host/dbname") Default value is "sip_trace". - Example 1-2. Set sip_trace parameter + Example 1.2. Set sip_trace parameter ... modparam("siptrace", "table", "strace") ... - __________________________________________________________ 1.3.3. trace_flag (integer) @@ -130,11 +126,10 @@ modparam("siptrace", "table", "strace") Default value is "0". - Example 1-3. Set trace_flag parameter + Example 1.3. Set trace_flag parameter ... modparam("siptrace", "trace_flag", 22) ... - __________________________________________________________ 1.3.4. trace_on (integer) @@ -142,11 +137,10 @@ modparam("siptrace", "trace_flag", 22) Default value is "0". - Example 1-4. Set trace_on parameter + Example 1.4. Set trace_on parameter ... modparam("siptrace", "trace_on", 1) ... - __________________________________________________________ 1.3.5. traced_user_avp (str) @@ -158,12 +152,11 @@ modparam("siptrace", "trace_on", 1) Default value is "NULL" (feature disabled). - Example 1-5. Set trace_on parameter + Example 1.5. Set trace_on parameter ... modparam("siptrace", "traced_user_avp", "$avp(i:123)") modparam("siptrace", "traced_user_avp", "$avp(s:user)") ... - __________________________________________________________ 1.3.6. trace_table_avp (str) @@ -175,12 +168,11 @@ modparam("siptrace", "traced_user_avp", "$avp(s:user)") Default value is "NULL" (feature disabled). - Example 1-6. Set trace_on parameter + Example 1.6. Set trace_on parameter ... modparam("siptrace", "trace_table_avp", "$avp(i:345)") modparam("siptrace", "trace_table_avp", "$avp(s:siptrace_table)") ... - __________________________________________________________ 1.3.7. duplicate_uri (str) @@ -189,11 +181,10 @@ modparam("siptrace", "trace_table_avp", "$avp(s:siptrace_table)") Default value is "NULL". - Example 1-7. Set duplicate_uri parameter + Example 1.7. Set duplicate_uri parameter ... modparam("siptrace", "duplicate_uri", "sip:10.1.1.1:5888") ... - __________________________________________________________ 1.3.8. trace_local_ip (str) @@ -203,15 +194,14 @@ modparam("siptrace", "duplicate_uri", "sip:10.1.1.1:5888") Default value is "NULL". - Example 1-8. Set trace_local_ip parameter + Example 1.8. Set trace_local_ip parameter ... modparam("siptrace", "trace_local_ip", "10.1.1.1:5064") ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. sip_trace() +1.4.1. sip_trace() Store current processed SIP message in database. It is stored in the form prior applying chages made to it. @@ -219,20 +209,18 @@ modparam("siptrace", "trace_local_ip", "10.1.1.1:5064") This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, ONREPLY_ROUTE, BRANCH_ROUTE. - Example 1-9. sip_trace() usage + Example 1.9. sip_trace() usage ... sip_trace(); ... - __________________________________________________________ 1.5. Exported MI Functions -1.5.1. sip_trace +1.5.1. sip_trace Name: sip_trace Parameters: - * trace_mode : turns on/off SIP message tracing. Possible values are: + on @@ -245,7 +233,6 @@ sip_trace(); :sip_trace:_reply_fifo_file_ trace_mode _empty_line_ - __________________________________________________________ 1.6. Database setup @@ -257,9 +244,41 @@ sip_trace(); the openser/scripts folder as template. You can also find the complete database documentation on the project webpage, http://www.openser.org/docs/db-tables/openser-db-devel.html. - __________________________________________________________ 1.7. Known issues Stateless forwarded messages (forward()) are not logged if you set the flag, use sip_trace(). + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/siptrace/doc/siptrace.sgml b/modules_k/siptrace/doc/siptrace.xml similarity index 58% rename from modules_k/siptrace/doc/siptrace.sgml rename to modules_k/siptrace/doc/siptrace.xml index 0922c8d89..b1270772e 100644 --- a/modules_k/siptrace/doc/siptrace.sgml +++ b/modules_k/siptrace/doc/siptrace.xml @@ -1,13 +1,15 @@ - + - + + - + %docentities; ]> @@ -20,19 +22,15 @@ Daniel-Constantin Mierla - &voicesystem;
- daniel@voice-system.ro - - http://www.voice-system.ro - + miconda@gmail.com
Daniel-Constantin Mierla
- daniel@voice-system.ro + miconda@gmail.com
@@ -42,8 +40,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/siptrace/doc/siptrace_user.sgml b/modules_k/siptrace/doc/siptrace_admin.xml similarity index 100% rename from modules_k/siptrace/doc/siptrace_user.sgml rename to modules_k/siptrace/doc/siptrace_admin.xml diff --git a/modules_k/sl/README b/modules_k/sl/README index 6f66458d0..a3dd15cf7 100644 --- a/modules_k/sl/README +++ b/modules_k/sl/README @@ -9,9 +9,13 @@ Edited by Bogdan Iancu Copyright © 2003 FhG FOKUS + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -41,11 +45,13 @@ Bogdan Iancu 1.5.8. sent_err_replies 1.5.9. received_ACKs + 2. Frequently Asked Questions + List of Examples - 1-1. enable_stats example - 1-2. sl_send_reply usage - 1-3. sl_reply_error usage - __________________________________________________________ + + 1.1. enable_stats example + 1.2. sl_send_reply usage + 1.3. sl_reply_error usage Chapter 1. User's Guide @@ -77,24 +83,19 @@ Chapter 1. User's Guide the current to-tag, which will be mirrored in ACK. OpenSER will not see its signature and forward the ACK downstream. Caused harm is not bad--just a useless ACK is forwarded. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -109,13 +110,12 @@ Chapter 1. User's Guide Default value is 1 (enabled). - Example 1-1. enable_stats example + Example 1.1. enable_stats example modparam("sl", "enable_stats", 0) - __________________________________________________________ 1.4. Exported Functions -1.4.1. sl_send_reply(code, reason) +1.4.1. sl_send_reply(code, reason) For the current request, a reply is sent back having the given code and text reason. The reply is sent stateless, totally @@ -124,21 +124,19 @@ modparam("sl", "enable_stats", 0) can contain pseudo-variables that are replaced at runtime. Meaning of the parameters is as follows: - * code - Return code. * reason - Reason phrase. This function can be used from REQUEST_ROUTE, ERROR_ROUTE. - Example 1-2. sl_send_reply usage + Example 1.2. sl_send_reply usage ... sl_send_reply("404", "Not found"); ... sl_reply("$err.rcode", "$err.rreason"); ... - __________________________________________________________ -1.4.2. sl_reply_error() +1.4.2. sl_reply_error() Sends back an error reply describing the nature of the last internal error. Usually this function should be used after a @@ -146,54 +144,78 @@ sl_reply("$err.rcode", "$err.rreason"); This function can be used from REQUEST_ROUTE. - Example 1-3. sl_reply_error usage + Example 1.3. sl_reply_error usage ... sl_reply_error(); ... - __________________________________________________________ 1.5. Exported Statistics 1.5.1. 1xx_replies The number of 1xx_replies. - __________________________________________________________ 1.5.2. 2xx_replies The number of 2xx_replies. - __________________________________________________________ 1.5.3. 3xx_replies The number of 3xx_replies. - __________________________________________________________ 1.5.4. 4xx_replies The number of 4xx_replies. - __________________________________________________________ 1.5.5. 5xx_replies The number of 5xx_replies. - __________________________________________________________ 1.5.6. 6xx_replies The number of 6xx_replies. - __________________________________________________________ 1.5.7. sent_replies The number of sent_replies. - __________________________________________________________ 1.5.8. sent_err_replies The number of sent_err_replies. - __________________________________________________________ 1.5.9. received_ACKs The number of received_ACKs. + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/sl/doc/sl.sgml b/modules_k/sl/doc/sl.xml similarity index 65% rename from modules_k/sl/doc/sl.sgml rename to modules_k/sl/doc/sl.xml index f8cce2f0f..1a9a21792 100644 --- a/modules_k/sl/doc/sl.sgml +++ b/modules_k/sl/doc/sl.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -37,8 +39,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/sl/doc/sl_user.sgml b/modules_k/sl/doc/sl_admin.xml similarity index 100% rename from modules_k/sl/doc/sl_user.sgml rename to modules_k/sl/doc/sl_admin.xml diff --git a/modules_k/sms/README b/modules_k/sms/README index 6607d9213..7926a7ac6 100644 --- a/modules_k/sms/README +++ b/modules_k/sms/README @@ -9,9 +9,13 @@ Edited by Bogdan-Andrei Iancu Copyright © 2003 FhG FOKUS + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -42,19 +46,20 @@ Bogdan-Andrei Iancu 1.4.2. sms_send_msg() 2. Developer's Guide + 3. Frequently Asked Questions List of Examples - 1-1. Set modems parameter - 1-2. Set networks parameter - 1-3. Set links parameter - 1-4. Set default_net parameter - 1-5. Set max_sms_parts parameter - 1-6. Set domain_str parameter - 1-7. Set use_contact parameter - 1-8. Set sms_report_type parameter - 1-9. sms_send_msg_to_net usage - 1-10. sms_send_msg usage - __________________________________________________________ + + 1.1. Set modems parameter + 1.2. Set networks parameter + 1.3. Set links parameter + 1.4. Set default_net parameter + 1.5. Set max_sms_parts parameter + 1.6. Set domain_str parameter + 1.7. Set use_contact parameter + 1.8. Set sms_report_type parameter + 1.9. sms_send_msg_to_net usage + 1.10. sms_send_msg usage Chapter 1. User's Guide @@ -72,7 +77,6 @@ Chapter 1. User's Guide message or because of an internal modem malfunction are reported back to the SIP user via a SIP message containing explanations regarding the error. - __________________________________________________________ 1.1.1. Hardware Requirements @@ -82,7 +86,6 @@ Chapter 1. User's Guide dedicated one (as the ones provided by FALCOM) or can be a GSM telephone that has an internal modem (as the latest mobile phones from NOKIA and ERICSSON). - __________________________________________________________ 1.1.2. Numbering Plan @@ -95,7 +98,6 @@ Chapter 1. User's Guide consider. Also, the gateway will advertise in this format the username in Contact headers (in SIP replies and requests) and in From headers (in SIP requests). - __________________________________________________________ 1.1.3. Address Mapping @@ -116,24 +118,19 @@ Chapter 1. User's Guide received having this header (all of it or truncated at the end), the header will be left out (it will not be in the SIP message). - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * tm - Transaction Manager. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -146,7 +143,6 @@ list_of_params = modem_param *( ";" modem_param ) modem_param = name "=" value The following parameters can be used: - * d=device (mandatory) - Device associated with modem (/dev/ttyS0, /dev/modem, etc.). * p=pin (optional) - SIM PIN - default is NULL. @@ -163,12 +159,11 @@ modem_param = name "=" value No default value, the parameter is mandatory. - Example 1-1. Set modems parameter + Example 1.1. Set modems parameter ... modparam("sms", "modems", "Nokia [d=/dev/ttyS1;b=9600;m=new;l=30] ") modparam("sms", "modems", "Nokia[d=/dev/ttyS1];Siemens[d=/dev/ttyS2]") ... - __________________________________________________________ 1.3.2. networks (string) @@ -179,7 +174,6 @@ list_of_params = set_param *( ";" set_param ) set_param = name "=" value The following parameters can be used: - * m=msx_sms_per_call (optional) - Maximum number of SMS send / received from that net in one modem loop. Default is 10. This parameter was introduced to avoid starvation. @@ -191,11 +185,10 @@ set_param = name "=" value No default value, the parameter is mandatory. - Example 1-2. Set networks parameter + Example 1.2. Set networks parameter ... modparam("sms", "networks", "D1 [m=10] ;d2[ m=20]") ... - __________________________________________________________ 1.3.3. links (string) @@ -206,7 +199,7 @@ list_of_networks = network *( ";" network ) No default value, the parameter is mandatory. - Example 1-3. Set links parameter + Example 1.3. Set links parameter ... modparam("sms", "links", "NOKIA[D1;d2]") ... @@ -216,19 +209,18 @@ modparam("sms", "links", "NOKIA[D1;d2]") modem will not sleep before starting the next loop ! Shortly, if messages are waiting to be sent, the modem will not go in sleep. - __________________________________________________________ 1.3.4. default_net (string) The default network to use. If no one specified, the first defined network is used. This parameter is useful only if the - "sms_send_msg" exported function is used (see Section 1.4). + "sms_send_msg" exported function is used (see Section 1.4, + "Exported Functions"). - Example 1-4. Set default_net parameter + Example 1.4. Set default_net parameter ... modparam("sms", "default_net", "D1") ... - __________________________________________________________ 1.3.5. max_sms_parts (integer) @@ -239,11 +231,10 @@ modparam("sms", "default_net", "D1") Default value is 4. - Example 1-5. Set max_sms_parts parameter + Example 1.5. Set max_sms_parts parameter ... modparam("sms", "max_sms_parts", 10) ... - __________________________________________________________ 1.3.6. domain (string) @@ -255,11 +246,10 @@ modparam("sms", "max_sms_parts", 10) Default is the name of the machine the gateway is running on. - Example 1-6. Set domain_str parameter + Example 1.6. Set domain_str parameter ... modparam("sms", "domain_str", "foo.bar") ... - __________________________________________________________ 1.3.7. use_contact (integer) @@ -269,11 +259,10 @@ modparam("sms", "domain_str", "foo.bar") Default is 0 (no). - Example 1-7. Set use_contact parameter + Example 1.7. Set use_contact parameter ... modparam("sms", "use_contact", 1) ... - __________________________________________________________ 1.3.8. sms_report_type (integer) @@ -282,7 +271,6 @@ modparam("sms", "use_contact", 1) send back to SIP user a SIP message containing the text (or part of it) that couldn't be send. Two report mechanisms are implemented: - * 1 - the reports are delivered by the GSM device as SMS reports (so far supported only by Nokia modems); * 2 - the reports are delivered as async. CDS responses @@ -290,15 +278,14 @@ modparam("sms", "use_contact", 1) Default is 0 (no report). - Example 1-8. Set sms_report_type parameter + Example 1.8. Set sms_report_type parameter ... modparam("sms", "sms_report_type", 1) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. sms_send_msg_to_net(network_name) +1.4.1. sms_send_msg_to_net(network_name) Put the SIP msg in the specified network queue. The function return error if the number encapsulated into SIP message is @@ -306,12 +293,11 @@ modparam("sms", "sms_report_type", 1) internal failures. Meaning of the parameters is as follows: - * network_name - Name of network. This function can be used from REQUEST_ROUTE. - Example 1-9. sms_send_msg_to_net usage + Example 1.9. sms_send_msg_to_net usage ... if (sms_send_msg_to_net("D1")) { @@ -329,16 +315,15 @@ if (sms_send_msg_to_net("D1")) exit; }; ... - __________________________________________________________ -1.4.2. sms_send_msg() +1.4.2. sms_send_msg() The same as the previous one, but use the default network queue. This function can be used from REQUEST_ROUTE. - Example 1-10. sms_send_msg usage + Example 1.10. sms_send_msg usage ... if (sms_send_msg_to_net()) { @@ -356,10 +341,42 @@ if (sms_send_msg_to_net()) exit; }; ... - __________________________________________________________ Chapter 2. Developer's Guide Each modem forks its own process for sending /fetching SMS. Communication and queuing between OpenSER working processes and modem processes is done with pipes. + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/sms/doc/sms.sgml b/modules_k/sms/doc/sms.xml similarity index 64% rename from modules_k/sms/doc/sms.sgml rename to modules_k/sms/doc/sms.xml index 1b307993b..566d2a5ab 100644 --- a/modules_k/sms/doc/sms.sgml +++ b/modules_k/sms/doc/sms.xml @@ -1,12 +1,14 @@ - + - - + + + - + %docentities; ]> @@ -38,8 +40,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/sms/doc/sms_user.sgml b/modules_k/sms/doc/sms_admin.xml similarity index 99% rename from modules_k/sms/doc/sms_user.sgml rename to modules_k/sms/doc/sms_admin.xml index 1d54cc781..304d42f34 100644 --- a/modules_k/sms/doc/sms_user.sgml +++ b/modules_k/sms/doc/sms_admin.xml @@ -8,7 +8,7 @@ Overview This module provides a way of communication between &sip; network - (via &sip MESSAGE) and GSM networks + (via &sip; MESSAGE) and GSM networks (via ShortMessageService). Communication is possible from &sip; to SMS and vice versa. The module provides facilities like SMS confirmation--the gateway can @@ -269,7 +269,7 @@ modparam("sms", "links", "NOKIA[D1;d2]") The default network to use. If no one specified, the first defined network is used. This parameter is useful only if the sms_send_msg exported function is used - (see ). + (see ). Set <varname>default_net</varname> parameter diff --git a/modules_k/sms/doc/sms_devel.sgml b/modules_k/sms/doc/sms_devel.xml similarity index 100% rename from modules_k/sms/doc/sms_devel.sgml rename to modules_k/sms/doc/sms_devel.xml diff --git a/modules_k/snmpstats/README b/modules_k/snmpstats/README index e581d78af..80028a497 100644 --- a/modules_k/snmpstats/README +++ b/modules_k/snmpstats/README @@ -10,9 +10,13 @@ Edited by Jeffrey Magder Copyright © 2006 SOMA Networks, Inc. + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -43,7 +47,7 @@ Jeffrey Magder 1.4.7. snmpCommunity (String) 1.5. Exported Functions - 1.6. Installation & Running + 1.6. Installation and Running 1.6.1. Compiling the SNMPStats Module 1.6.2. Configuring NetSNMP to allow connections from @@ -57,14 +61,14 @@ Jeffrey Magder 2. Frequently Asked Questions List of Examples - 1-1. Setting the sipEntityType parameter - 1-2. Setting the MsgQueueMinorThreshold parameter - 1-3. Setting the MsgQueueMajorThreshold parameter - 1-4. Setting the dlg_minor_threshold parameter - 1-5. Setting the dlg_major_threshold parameter - 1-6. Setting the snmpgetPath parameter - 1-7. Setting the snmpCommunity parameter - __________________________________________________________ + + 1.1. Setting the sipEntityType parameter + 1.2. Setting the MsgQueueMinorThreshold parameter + 1.3. Setting the MsgQueueMajorThreshold parameter + 1.4. Setting the dlg_minor_threshold parameter + 1.5. Setting the dlg_major_threshold parameter + 1.6. Setting the snmpgetPath parameter + 1.7. Setting the snmpCommunity parameter Chapter 1. User's Guide @@ -75,7 +79,6 @@ Chapter 1. User's Guide scalar statistics, table representations of more complicated data such as user and contact information, and alarm monitoring capabilities. - __________________________________________________________ 1.1.1. General Scalar Statistics @@ -111,7 +114,6 @@ Chapter 1. User's Guide openserDialogLimitMajorThreshold, openserDialogUsageState, openserDialogLimitAlarmStatus, openserDialogLimitMinorAlarm, openserDialogLimitMajorAlarm - __________________________________________________________ 1.1.2. SNMP Tables @@ -121,13 +123,11 @@ Chapter 1. User's Guide openserSIPPortTable, openserSIPMethodSupportedTable, openserSIPStatusCodesTable, openserSIPRegUserTable, openserSIPContactTable, openserSIPRegUserLookupTable - __________________________________________________________ 1.1.3. Alarm Monitoring If enabled, the SNMPStats module will monitor for alarm conditions. Currently, there are two alarm types defined. - 1. The number of active dialogs has passed a minor or major threshold. The idea is that a network operation centre can be made aware that their SIP servers may be overloaded, @@ -150,7 +150,6 @@ Chapter 1. User's Guide Full details of these traps can be found in the distributions OPENSER-MIB file. - __________________________________________________________ 1.2. How it works @@ -158,7 +157,6 @@ Chapter 1. User's Guide The SNMPStats module uses OpenSERs internal statistic framework to collect most of its data. However, there are two exceptions. - 1. The openserSIPRegUserTable and openserSIPContactTable rely on the usrloc modules callback system. Specifically, the SNMPStats module will receive callbacks whenever a @@ -170,7 +168,6 @@ Chapter 1. User's Guide will actually query the proc file system to find out the number of bytes waiting to be consumed. (Currently, this will only work on systems providing the proc file system). - __________________________________________________________ 1.2.2. How data is moved from the SNMPStats module to a NOC @@ -198,7 +195,6 @@ Chapter 1. User's Guide agent. The master agent will then redirect the request to the SNMPStats module, which will respond to the master agent, which will in turn respond to your request. - __________________________________________________________ 1.3. Dependencies @@ -211,7 +207,6 @@ Chapter 1. User's Guide continue to function normally. This means that the SNMPStats module has no hard/mandatory dependencies on other modules. There are however, soft dependencies, as follows: - * usrloc - all scalars and tables relating to users and contacts are dependent on the usrloc module. If the module is not loaded, the respective tables will be empty. @@ -223,13 +218,11 @@ Chapter 1. User's Guide The contents of the openserSIPMethodSupportedTable change depending on which modules are loaded. - __________________________________________________________ 1.3.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * NetSNMP v5.3 or greater - NetSNMP must be around at the time of compilation. Furthermore, there are several shared objects that must be loadable at the time SNMPStats is @@ -237,7 +230,6 @@ Chapter 1. User's Guide necessarily running) on the system that has loaded the SNMPStats module. (Details can be found in the compilation section below). - __________________________________________________________ 1.4. Exported Parameters @@ -249,7 +241,7 @@ Chapter 1. User's Guide registrarServer, redirectServer, proxyServer, userAgent, other - Example 1-1. Setting the sipEntityType parameter + Example 1.1. Setting the sipEntityType parameter ... modparam("snmpstats", "sipEntityType", "registrarServer") modparam("snmpstats", "sipEntityType", "proxyServer") @@ -258,7 +250,6 @@ modparam("snmpstats", "sipEntityType", "proxyServer") Note that as the above example shows, you can define this parameter more than once. This is of course because a given OpenSER instance can take on more than one role. - __________________________________________________________ 1.4.2. MsgQueueMinorThreshold (Integer) @@ -269,14 +260,13 @@ modparam("snmpstats", "sipEntityType", "proxyServer") an alarm condition has occured. The minor threshold is set with the MsgQueueMinorThreshold parameter. - Example 1-2. Setting the MsgQueueMinorThreshold parameter + Example 1.2. Setting the MsgQueueMinorThreshold parameter ... modparam("snmpstats", "MsgQueueMinorThreshold", 2000) ... If this parameter is not set, then there will be no minor alarm monitoring. - __________________________________________________________ 1.4.3. MsgQueueMajorThreshold (Integer) @@ -287,14 +277,13 @@ modparam("snmpstats", "MsgQueueMinorThreshold", 2000) an alarm condition has occured. The major threshold is set with the MsgQueueMajorThreshold parameter. - Example 1-3. Setting the MsgQueueMajorThreshold parameter + Example 1.3. Setting the MsgQueueMajorThreshold parameter ... modparam("snmpstats", "MsgQueueMajorThreshold", 5000) ... If this parameter is not set, then there will be no major alarm monitoring. - __________________________________________________________ 1.4.4. dlg_minor_threshold (Integer) @@ -304,14 +293,13 @@ modparam("snmpstats", "MsgQueueMajorThreshold", 5000) trap to signal that an alarm condition has occured. The minor threshold is set with the dlg_minor_threshold parameter. - Example 1-4. Setting the dlg_minor_threshold parameter + Example 1.4. Setting the dlg_minor_threshold parameter ... modparam("snmpstats", "dlg_minor_threshold", 500) ... If this parameter is not set, then there will be no minor alarm monitoring. - __________________________________________________________ 1.4.5. dlg_major_threshold (Integer) @@ -321,14 +309,13 @@ modparam("snmpstats", "MsgQueueMajorThreshold", 5000) trap to signal that an alarm condition has occured. The major threshold is set with the dlg_major_threshold parameter. - Example 1-5. Setting the dlg_major_threshold parameter + Example 1.5. Setting the dlg_major_threshold parameter ... modparam("snmpstats", "dlg_major_threshold", 750) ... If this parameter is not set, then there will be no major alarm monitoring. - __________________________________________________________ 1.4.6. snmpgetPath (String) @@ -339,11 +326,10 @@ modparam("snmpstats", "MsgQueueMajorThreshold", 5000) Default value is "/usr/local/bin/". - Example 1-6. Setting the snmpgetPath parameter + Example 1.6. Setting the snmpgetPath parameter ... modparam("snmpstats", "snmpgetPath", "/my/custom/path/") ... - __________________________________________________________ 1.4.7. snmpCommunity (String) @@ -355,24 +341,21 @@ modparam("snmpstats", "snmpgetPath", "/my/custom/path/") Default value is "public". - Example 1-7. Setting the snmpCommunity parameter + Example 1.7. Setting the snmpCommunity parameter ... modparam("snmpstats", "snmpCommunity", "customCommunityString") ... - __________________________________________________________ 1.5. Exported Functions Currently, there are no exported functions. - __________________________________________________________ -1.6. Installation & Running +1.6. Installation and Running There are several things that need to be done to get the SNMPStats module compiled and up and running. - __________________________________________________________ -1.6.1. Compiling the SNMPStats Module +1.6.1. Compiling the SNMPStats Module In order for the SNMPStats module to compile, you will need at least version 5.3 of the NetSNMP source code. The source can be @@ -396,9 +379,8 @@ snmp It is highly recommended you install NetSNMP from source to avoid bringing in excessive dependencies to the SNMPStats module. - __________________________________________________________ -1.6.2. Configuring NetSNMP to allow connections from the SNMPStats +1.6.2. Configuring NetSNMP to allow connections from the SNMPStats module. The SNMPStats module will communicate with the NetSNMP Master @@ -434,9 +416,8 @@ module. This tells NetSNMP to act as a master agent, listening on the localhost interface at port 705. - __________________________________________________________ -1.6.3. Configuring the SNMPStats module for communication with a +1.6.3. Configuring the SNMPStats module for communication with a Master Agent The previous section explained how to set up a NetSNMP master @@ -457,9 +438,8 @@ Master Agent match up with the snmpd process. Note that the master agent (snmpd) does not need to be present on the same machine as OpenSER. localhost could be replaced with any other machine. - __________________________________________________________ -1.6.4. Testing for a proper Configuration +1.6.4. Testing for a proper Configuration As a quick test to make sure that the SNMPStats module sub-agent can succesfully connect to the NetSNMP Master agent, @@ -491,27 +471,12 @@ Master Agent all of its scalars and tables with the Master Agent. If you receive these messages, then SNMPStats module and NetSNMP daemon have both been configured correctly. - __________________________________________________________ Chapter 2. Frequently Asked Questions - 2.1. Where can I find more about SNMP? - 2.2. Where can I find more about NetSNMP? - 2.3. Where can I find out more about AgentX? - 2.4. Why am I not receiving any SNMP Traps? - 2.5. OpenSER refuses to load the SNMPStats module. Why is it - displaying "load_module: could not open module - snmpstats.so"? + 2.1. - 2.6. How can I learn what all the scalars and tables are? - 2.7. Why do snmpget, snmpwalk, and snmptable always time out? - 2.8. How do I use snmpget? - 2.9. How do I use snmptable? - 2.10. Where can I find more about OpenSER? - 2.11. Where can I post a question about this module? - 2.12. How can I report a bug? - - 2.1. Where can I find more about SNMP? + Where can I find more about SNMP? There are many websites that explain SNMP at all levels of detail. A great general introduction can be found at @@ -521,18 +486,24 @@ Chapter 2. Frequently Asked Questions and can be found at http://www.rfc-archive.org/getrfc.php?rfc=3410 - 2.2. Where can I find more about NetSNMP? + 2.2. + + Where can I find more about NetSNMP? NetSNMP source code, documentation, FAQs, and tutorials can all be found at http://net-snmp.sourceforge.net/. - 2.3. Where can I find out more about AgentX? + 2.3. + + Where can I find out more about AgentX? The full details of the AgentX protocol are explained in RFC 2741, available at: http://www.rfc-archive.org/getrfc.php?rfc=2741 - 2.4. Why am I not receiving any SNMP Traps? + 2.4. + + Why am I not receiving any SNMP Traps? Assuming you've configured the trap thresholds in openser.cfg with something similar to: @@ -573,7 +544,9 @@ Chapter 2. Frequently Asked Questions provides snmptrapd for this. Other solutions exist as well. Google is your friend. - 2.5. OpenSER refuses to load the SNMPStats module. Why is it + 2.5. + + OpenSER refuses to load the SNMPStats module. Why is it displaying "load_module: could not open module snmpstats.so"? On some systems, you may receive the following error at stdout @@ -584,13 +557,11 @@ dules/snmpstats.so>: file or directory. This means one of two things: - 1. You did not install NetSNMP. ("make install" if building from source) 2. The dynamic linker cannot find the necessary libraries. In the second case, the fix is as follows: - 1. find / -name "libnetsnmpmibs*" + You will find a copy unless you haven't installed NetSNMP. Make note of the path. @@ -606,7 +577,9 @@ dules/snmpstats.so>: For example, on my system I ran: LD_LIBRARY_PATH=/usr/local/lib openserctl start - 2.6. How can I learn what all the scalars and tables are? + 2.6. + + How can I learn what all the scalars and tables are? All scalars and tables are named in the SNMPStats module overview. The files OPENSER-MIB, OPENSER-REG-MIB, @@ -637,7 +610,9 @@ Server(3), registrarServer(4)} Combinations of bits can be set when the SIP entity plays multiple SIP roles." - 2.7. Why do snmpget, snmpwalk, and snmptable always time out? + 2.7. + + Why do snmpget, snmpwalk, and snmptable always time out? If your snmp operations are always returning with: "Timeout: No Response from localhost", then chances are that you are making @@ -647,7 +622,9 @@ Server(3), registrarServer(4)} "rocommunity", and use the result as your community string in your queries. - 2.8. How do I use snmpget? + 2.8. + + How do I use snmpget? NetSNMP's snmpget is used as follows: snmpget -v 2c -c theCommunityString machineToSendTheMachineTo scalar @@ -664,7 +641,9 @@ Element.0 other(0) userAgent(1) proxyServer(2) \ redirectServer(3) registrarServer(4) - 2.9. How do I use snmptable? + 2.9. + + How do I use snmptable? NetSNMP's snmptable is used as follows: snmptable -Ci -v 2c -c theCommunityString machineToSendTheMachineTo @@ -682,15 +661,18 @@ theTableName 2 bogdan 0 3 jeffrey.magder 0 - 2.10. Where can I find more about OpenSER? + 2.10. + + Where can I find more about OpenSER? Take a look at http://openser.org/. - 2.11. Where can I post a question about this module? + 2.11. + + Where can I post a question about this module? First at all check if your question was already answered on one of our mailing lists: - * User Mailing List - http://openser.org/cgi-bin/mailman/listinfo/users * Developer Mailing List - @@ -703,7 +685,9 @@ theTableName If you want to keep the mail private, send it to . - 2.12. How can I report a bug? + 2.12. + + How can I report a bug? Please follow the guidelines provided at: http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/snmpstats/doc/snmpstats.sgml b/modules_k/snmpstats/doc/snmpstats.xml similarity index 66% rename from modules_k/snmpstats/doc/snmpstats.sgml rename to modules_k/snmpstats/doc/snmpstats.xml index 006e678da..b2536ed07 100644 --- a/modules_k/snmpstats/doc/snmpstats.sgml +++ b/modules_k/snmpstats/doc/snmpstats.xml @@ -1,10 +1,12 @@ - + - + + - + %docentities; ]> @@ -36,8 +38,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/snmpstats/doc/snmpstats_user.sgml b/modules_k/snmpstats/doc/snmpstats_admin.xml similarity index 99% rename from modules_k/snmpstats/doc/snmpstats_user.sgml rename to modules_k/snmpstats/doc/snmpstats_admin.xml index f318b3d0c..f2494f0ce 100644 --- a/modules_k/snmpstats/doc/snmpstats_user.sgml +++ b/modules_k/snmpstats/doc/snmpstats_admin.xml @@ -414,7 +414,7 @@ modparam("snmpstats", "snmpCommunity", "customCommunityString")
- Installation & Running + Installation and Running There are several things that need to be done to get the SNMPStats module compiled and up and running. @@ -545,7 +545,7 @@ modparam("snmpstats", "snmpCommunity", "customCommunityString") connect to the NetSNMP Master agent, start snmpd with the following: - snmpd -f -Dagentx -x localhost:705 2>&1 | less + snmpd -f -Dagentx -x localhost:705 2>&1 | less You should see something similar to the following: diff --git a/modules_k/snmpstats/doc/snmpstats_faq.sgml b/modules_k/snmpstats/doc/snmpstats_faq.xml similarity index 99% rename from modules_k/snmpstats/doc/snmpstats_faq.sgml rename to modules_k/snmpstats/doc/snmpstats_faq.xml index 223f3078c..c64bf102f 100644 --- a/modules_k/snmpstats/doc/snmpstats_faq.sgml +++ b/modules_k/snmpstats/doc/snmpstats_faq.xml @@ -154,7 +154,7 @@ You will find a copy unless you haven't installed NetSNMP. Make note of the path. - + @@ -167,7 +167,7 @@ If the file is missing the path from step 1, then add the path to ld.so.conf - + diff --git a/modules_k/speeddial/README b/modules_k/speeddial/README index ed0b16ccd..4436281ba 100644 --- a/modules_k/speeddial/README +++ b/modules_k/speeddial/README @@ -9,9 +9,13 @@ Edited by Elena-Ramona Modroiu Copyright © 2004 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -35,22 +39,24 @@ Elena-Ramona Modroiu 1.4.1. sd_lookup(table [, owner]) - 1.5. Installation & Running + 1.5. Installation and Running 1.5.1. OpenSER config file + 2. Frequently Asked Questions + 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. OpenSER config script - sample speeddial usage - __________________________________________________________ + + 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. OpenSER config script - sample speeddial usage Chapter 1. User's Guide @@ -61,24 +67,19 @@ Chapter 1. User's Guide and SIP addresses into a table of OpenSER. Then it can dial the two digits whenever it wants to call the SIP address associated with them. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * database module (mysql, dbtext, ...). - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -89,11 +90,10 @@ Chapter 1. User's Guide Default value is DEFAULT_RODB_URL. - Example 1-1. Set db_url parameter + Example 1.1. Set db_url parameter ... modparam("speeddial", "db_url", "mysql://openser:xxx@localhost/openser") ... - __________________________________________________________ 1.3.2. user_column (string) @@ -102,11 +102,10 @@ modparam("speeddial", "db_url", "mysql://openser:xxx@localhost/openser") Default value is "username". - Example 1-2. Set user_column parameter + Example 1.2. Set user_column parameter ... modparam("speeddial", "user_column", "userid") ... - __________________________________________________________ 1.3.3. domain_column (string) @@ -115,11 +114,10 @@ modparam("speeddial", "user_column", "userid") Default value is "domain". - Example 1-3. Set domain_column parameter + Example 1.3. Set domain_column parameter ... modparam("speeddial", "domain_column", "userdomain") ... - __________________________________________________________ 1.3.4. sd_user_column (string) @@ -128,11 +126,10 @@ modparam("speeddial", "domain_column", "userdomain") Default value is "sd_username". - Example 1-4. Set sd_user_column parameter + Example 1.4. Set sd_user_column parameter ... modparam("speeddial", "sd_user_column", "short_user") ... - __________________________________________________________ 1.3.5. sd_domain_column (string) @@ -141,11 +138,10 @@ modparam("speeddial", "sd_user_column", "short_user") Default value is "sd_domain". - Example 1-5. Set sd_domain_column parameter + Example 1.5. Set sd_domain_column parameter ... modparam("speeddial", "sd_domain_column", "short_domain") ... - __________________________________________________________ 1.3.6. new_uri_column (string) @@ -154,11 +150,10 @@ modparam("speeddial", "sd_domain_column", "short_domain") Default value is "new_uri". - Example 1-6. Set new_uri_column parameter + Example 1.6. Set new_uri_column parameter ... modparam("speeddial", "new_uri_column", "real_uri") ... - __________________________________________________________ 1.3.7. domain_prefix (string) @@ -168,11 +163,10 @@ modparam("speeddial", "new_uri_column", "real_uri") Default value is NULL. - Example 1-7. Set domain_prefix parameter + Example 1.7. Set domain_prefix parameter ... modparam("speeddial", "domain_prefix", "tel.") ... - __________________________________________________________ 1.3.8. use_domain (int) @@ -183,21 +177,19 @@ modparam("speeddial", "domain_prefix", "tel.") Default value is 0. - Example 1-8. Set use_domain parameter + Example 1.8. Set use_domain parameter ... modparam("speeddial", "use_domain", 1) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. sd_lookup(table [, owner]) +1.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 @@ -205,7 +197,7 @@ modparam("speeddial", "use_domain", 1) This function can be used from REQUEST_ROUTE. - Example 1-9. sd_lookup usage + Example 1.9. sd_lookup usage ... # 'speed_dial' is the default table name created by openser db script if(uri=~"sip:[0-9]{2}@.*") @@ -214,15 +206,14 @@ if(uri=~"sip:[0-9]{2}@.*") if(uri=~"sip:[0-9]{2}@.*") sd_lookup("speed_dial", "sip:$au@$fd"); ... - __________________________________________________________ -1.5. Installation & Running +1.5. Installation and Running 1.5.1. OpenSER config file Next picture displays a sample usage of speeddial. - Example 1-10. OpenSER config script - sample speeddial usage + Example 1.10. OpenSER config script - sample speeddial usage ... # # $Id$ @@ -336,3 +327,36 @@ route{ ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/speeddial/doc/speeddial.sgml b/modules_k/speeddial/doc/speeddial.xml similarity index 70% rename from modules_k/speeddial/doc/speeddial.sgml rename to modules_k/speeddial/doc/speeddial.xml index 3cfca4790..481f0530f 100644 --- a/modules_k/speeddial/doc/speeddial.sgml +++ b/modules_k/speeddial/doc/speeddial.xml @@ -1,14 +1,16 @@ - + - + + - + %docentities; ]> @@ -43,8 +45,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/speeddial/doc/speeddial_user.sgml b/modules_k/speeddial/doc/speeddial_admin.xml similarity index 99% rename from modules_k/speeddial/doc/speeddial_user.sgml rename to modules_k/speeddial/doc/speeddial_admin.xml index 6d42a16ae..d4fd8a3db 100644 --- a/modules_k/speeddial/doc/speeddial_user.sgml +++ b/modules_k/speeddial/doc/speeddial_admin.xml @@ -245,7 +245,7 @@ if(uri=~"sip:[0-9]{2}@.*")
- Installation & Running + Installation and Running
&ser; config file diff --git a/modules_k/sst/README b/modules_k/sst/README index 887d6d861..f110eb7c4 100644 --- a/modules_k/sst/README +++ b/modules_k/sst/README @@ -9,9 +9,13 @@ Edited by Ron Winacott Copyright © 2006 SOMA Networks, Inc. + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -37,17 +41,19 @@ Ron Winacott 1.6.1. expired_sst - 1.7. Installation & Running + 1.7. Installation and Running + + 2. Frequently Asked Questions List of Examples - 1-1. Session timer call flow - 1-2. Set enable_stats parameter - 1-3. Set min_se parameter - 1-4. Set timeout_avp parameter - 1-5. Set reject_to_small parameter - 1-6. Set sst_flag parameter - 1-7. sstCheckMin usage - __________________________________________________________ + + 1.1. Session timer call flow + 1.2. Set enable_stats parameter + 1.3. Set min_se parameter + 1.4. Set timeout_avp parameter + 1.5. Set reject_to_small parameter + 1.6. Set sst_flag parameter + 1.7. sstCheckMin usage Chapter 1. User's Guide @@ -62,7 +68,6 @@ Chapter 1. User's Guide value and reply to any request with a "422 - Session Timer Too Small" if the value is too small for your OpenSER configuration. - __________________________________________________________ 1.2. How it works @@ -91,7 +96,7 @@ Chapter 1. User's Guide The following was taken from the RFC as a call flow example: - Example 1-1. Session timer call flow + Example 1.1. Session timer call flow +-------+ +-------+ +-------+ | UAC-1 | | PROXY | | UAC-2 | +-------+ +-------+ +-------+ @@ -130,25 +135,20 @@ Chapter 1. User's Guide | |-------------->| | | | ... - __________________________________________________________ 1.3. Dependencies 1.3.1. OpenSER Modules The following modules must be loaded before this module: - * dialog - dialog module and its decencies. (tm) * sl - stateless module. - __________________________________________________________ 1.3.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.4. Exported Parameters @@ -161,11 +161,10 @@ Chapter 1. User's Guide Default value is "1" (enabled). - Example 1-2. Set enable_stats parameter + Example 1.2. Set enable_stats parameter ... modparam("sst", "enable_stats", 0) ... - __________________________________________________________ 1.4.2. min_se (integer) @@ -179,11 +178,10 @@ modparam("sst", "enable_stats", 0) Default value is "1800" seconds. - Example 1-3. Set min_se parameter + Example 1.3. Set min_se parameter ... modparam("sst", "min_se", 2400) ... - __________________________________________________________ 1.4.3. timeout_avp (string) @@ -196,13 +194,12 @@ modparam("sst", "min_se", 2400) Default value is "NULL!" it is not set by default. - Example 1-4. Set timeout_avp parameter + Example 1.4. Set timeout_avp parameter ... modparam("dialog", "timeout_avp", "$avp(i:10)") # Set the sst modules timeout_avp to be the same value modparam("sst", "timeout_avp", "$avp(i:10)") ... - __________________________________________________________ 1.4.4. reject_to_small (integer) @@ -219,11 +216,10 @@ modparam("sst", "timeout_avp", "$avp(i:10)") Default value is "1" (true/on). - Example 1-5. Set reject_to_small parameter + Example 1.5. Set reject_to_small parameter ... modparam("sst", "reject_to_small", 0) ... - __________________________________________________________ 1.4.5. sst_flag (integer) @@ -242,7 +238,7 @@ modparam("sst", "reject_to_small", 0) Default value is "Not set!". - Example 1-6. Set sst_flag parameter + Example 1.6. Set sst_flag parameter ... modparam("dialog", "dlg_flag", 5) modparam("sst", "sst_flag", 6) @@ -255,11 +251,10 @@ route { } ... } - __________________________________________________________ 1.5. Exported Functions -1.5.1. sstCheckMin(send_reply_flag) +1.5.1. sstCheckMin(send_reply_flag) Check the current Session-Expires / MIN-SE values against the sst_min_se parameter value. If the Session-Expires or MIN_SE @@ -272,11 +267,11 @@ route { MIN-SE: header with the sst min_se parameter value set. Meaning of the parameters is as follows: - * min_allowed - The value to compare the MIN_SE header value to. - Example 1-7. sstCheckMin usage + Example 1.7. sstCheckMin usage + ... modparam("dialog", "timeout_avp", "$avp(i:4242)") modparam("dialog", "dlg_flag", 5) @@ -314,15 +309,46 @@ route { } } ... - __________________________________________________________ 1.6. Exported Statistics 1.6.1. expired_sst Number of dialogs which got expired session timer. - __________________________________________________________ -1.7. Installation & Running +1.7. Installation and Running just load the module and remember to set the timeout_avp value. + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/sst/doc/sst.sgml b/modules_k/sst/doc/sst.xml similarity index 64% rename from modules_k/sst/doc/sst.sgml rename to modules_k/sst/doc/sst.xml index ebb8733dd..f95df8fd4 100644 --- a/modules_k/sst/doc/sst.sgml +++ b/modules_k/sst/doc/sst.xml @@ -1,10 +1,12 @@ - + - + + - + %docentities; ]> @@ -36,8 +38,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/sst/doc/sst_user.sgml b/modules_k/sst/doc/sst_admin.xml similarity index 99% rename from modules_k/sst/doc/sst_user.sgml rename to modules_k/sst/doc/sst_admin.xml index 6486df7fe..196c58c1b 100644 --- a/modules_k/sst/doc/sst_user.sgml +++ b/modules_k/sst/doc/sst_admin.xml @@ -370,7 +370,7 @@ route {
- Installation & Running + Installation and Running just load the module and remember to set the timeout_avp value.
diff --git a/modules_k/statistics/README b/modules_k/statistics/README index 892a85fab..ebf1b5ba0 100644 --- a/modules_k/statistics/README +++ b/modules_k/statistics/README @@ -9,9 +9,13 @@ Edited by Bogdan Iancu Copyright © 2006 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -29,11 +33,13 @@ Bogdan Iancu 1.4.1. update_stat(variable,value) 1.4.2. reset_stat(variable) + 2. Frequently Asked Questions + List of Examples - 1-1. variable example - 1-2. update_stat usage - 1-3. reset_stat usage - __________________________________________________________ + + 1.1. variable example + 1.2. update_stat usage + 1.3. reset_stat usage Chapter 1. User's Guide @@ -46,24 +52,19 @@ Chapter 1. User's Guide By bringing the statistics support into the script, it takes advantage of the script flexibility in defining logics, making possible implementation of any kind of statistic scenario. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -71,44 +72,73 @@ Chapter 1. User's Guide Name of a new statistic variable. The name may be followed by additional flag which describe the variable behavior: - * no_reset : variable cannot be reset. - Example 1-1. variable example + Example 1.1. variable example modparam("statistics", "variable", "register_counter") modparam("statistics", "variable", "active_calls/no_reset") - __________________________________________________________ 1.4. Exported Functions -1.4.1. update_stat(variable,value) +1.4.1. update_stat(variable,value) Updates the value of the statistic variable with the new value. Meaning of the parameters is as follows: - * variable - variable to be updated * value - value to update with; it may be also negative This function can be used from REQUEST_ROUTE, BRANCH_ROUTE, FAILURE_ROUTE and ONREPLY_ROUTE. - Example 1-2. update_stat usage + Example 1.2. update_stat usage ... update_stat("register_counter", "+1"); ... update_stat("active_calls", "-1"); ... - __________________________________________________________ -1.4.2. reset_stat(variable) +1.4.2. reset_stat(variable) Resets to zero the value of the statistic variable. This function can be used from REQUEST_ROUTE, BRANCH_ROUTE, FAILURE_ROUTE and ONREPLY_ROUTE. - Example 1-3. reset_stat usage + Example 1.3. reset_stat usage ... reset_stat("register_counter"); ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/statistics/doc/statistics.sgml b/modules_k/statistics/doc/statistics.xml similarity index 63% rename from modules_k/statistics/doc/statistics.sgml rename to modules_k/statistics/doc/statistics.xml index e32be82ca..55850e30a 100644 --- a/modules_k/statistics/doc/statistics.sgml +++ b/modules_k/statistics/doc/statistics.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -37,8 +39,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/statistics/doc/statistics_user.sgml b/modules_k/statistics/doc/statistics_admin.xml similarity index 100% rename from modules_k/statistics/doc/statistics_user.sgml rename to modules_k/statistics/doc/statistics_admin.xml diff --git a/modules_k/textops/README b/modules_k/textops/README index 53d7cade5..bfb2a9267 100644 --- a/modules_k/textops/README +++ b/modules_k/textops/README @@ -8,12 +8,18 @@ Edited by Andrei Pelinescu-Onciul +Edited by + Daniel-Constantin Mierla Copyright © 2003 FhG FOKUS + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -55,33 +61,35 @@ Daniel-Constantin Mierla 1.4. Known Limitations + 2. Frequently Asked Questions + List of Examples - 1-1. search usage - 1-2. search_body usage - 1-3. search_append usage - 1-4. search_append_body usage - 1-5. replace usage - 1-6. replace_body usage - 1-7. replace_all usage - 1-8. replace_body_all usage - 1-9. subst usage - 1-10. subst_uri usage - 1-11. subst usage - 1-12. subst_body usage - 1-13. filter_body usage - 1-14. append_to_reply usage - 1-15. append_hf usage - 1-16. append_hf usage - 1-17. insert_hf usage - 1-18. insert_hf usage - 1-19. append_urihf usage - 1-20. is_present_hf usage - 1-21. append_time usage - 1-22. is_method usage - 1-23. remove_hf usage - 1-24. has_body usage - 1-25. is_privacy usage - __________________________________________________________ + + 1.1. search usage + 1.2. search_body usage + 1.3. search_append usage + 1.4. search_append_body usage + 1.5. replace usage + 1.6. replace_body usage + 1.7. replace_all usage + 1.8. replace_body_all usage + 1.9. subst usage + 1.10. subst_uri usage + 1.11. subst usage + 1.12. subst_body usage + 1.13. filter_body usage + 1.14. append_to_reply usage + 1.15. append_hf usage + 1.16. append_hf usage + 1.17. insert_hf usage + 1.18. insert_hf usage + 1.19. append_urihf usage + 1.20. is_present_hf usage + 1.21. append_time usage + 1.22. is_method usage + 1.23. remove_hf usage + 1.24. has_body usage + 1.25. is_privacy usage Chapter 1. User's Guide @@ -93,7 +101,6 @@ Chapter 1. User's Guide manipulate the message at text level, e.g., regular expression search and replace, Perl-like substitutions, checks for method type, header presence, insert of new header and date, etc. - __________________________________________________________ 1.1.1. Known Limitations @@ -102,178 +109,156 @@ Chapter 1. User's Guide header field: From: medabeda ;tag=1234 - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Functions -1.3.1. search(re) +1.3.1. search(re) Searches for the re in the message. Meaning of the parameters is as follows: - * re - Regular expression. This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-1. search usage + Example 1.1. search usage ... if ( search("[Ss][Ii][Pp]") ) { /*....*/ }; ... - __________________________________________________________ -1.3.2. search_body(re) +1.3.2. search_body(re) Searches for the re in the body of the message. Meaning of the parameters is as follows: - * re - Regular expression. This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-2. search_body usage + Example 1.2. search_body usage ... if ( search_body("[Ss][Ii][Pp]") ) { /*....*/ }; ... - __________________________________________________________ -1.3.3. search_append(re, txt) +1.3.3. search_append(re, txt) Searches for the first match of re and appends txt after it. Meaning of the parameters is as follows: - * re - Regular expression. * txt - String to be appended. This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-3. search_append usage + Example 1.3. search_append usage ... search_append("[Oo]pen[Ss]er", " SIP Proxy"); ... - __________________________________________________________ -1.3.4. search_append_body(re, txt) +1.3.4. search_append_body(re, txt) Searches for the first match of re in the body of the message and appends txt after it. Meaning of the parameters is as follows: - * re - Regular expression. * txt - String to be appended. This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-4. search_append_body usage + Example 1.4. search_append_body usage ... search_append_body("[Oo]pen[Ss]er", " SIP Proxy"); ... - __________________________________________________________ -1.3.5. replace(re, txt) +1.3.5. replace(re, txt) Replaces the first occurrence of re with txt. Meaning of the parameters is as follows: - * re - Regular expression. * txt - String. This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-5. replace usage + Example 1.5. replace usage ... replace("openser", "OpenSER SIP Proxy"); ... - __________________________________________________________ -1.3.6. replace_body(re, txt) +1.3.6. replace_body(re, txt) Replaces the first occurrence of re in the body of the message with txt. Meaning of the parameters is as follows: - * re - Regular expression. * txt - String. This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-6. replace_body usage + Example 1.6. replace_body usage ... replace_body("openser", "OpenSER SIP Proxy"); ... - __________________________________________________________ -1.3.7. replace_all(re, txt) +1.3.7. replace_all(re, txt) Replaces all occurrence of re with txt. Meaning of the parameters is as follows: - * re - Regular expression. * txt - String. This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-7. replace_all usage + Example 1.7. replace_all usage ... replace_all("openser", "OpenSER SIP Proxy"); ... - __________________________________________________________ -1.3.8. replace_body_all(re, txt) +1.3.8. replace_body_all(re, txt) Replaces all occurrence of re in the body of the message with txt. Meaning of the parameters is as follows: - * re - Regular expression. * txt - String. This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-8. replace_body_all usage + Example 1.8. replace_body_all usage ... replace_body_all("openser", "OpenSER SIP Proxy"); ... - __________________________________________________________ -1.3.9. subst('/re/repl/flags') +1.3.9. subst('/re/repl/flags') Replaces re with repl (sed or perl like). Meaning of the parameters is as follows: - * '/re/repl/flags' - sed like regular expression. flags can be a combination of i (case insensitive), g (global) or s (match newline don't treat it as end of line). @@ -285,7 +270,7 @@ replace_body_all("openser", "OpenSER SIP Proxy"); This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-9. subst usage + Example 1.9. subst usage ... # replace the uri in to: with the message uri (just an example) if ( subst('/^To:(.*)sip:[^@]*@[a-zA-Z0-9.]+(.*)$/t:\1\u\2/ig') ) {}; @@ -296,15 +281,13 @@ if ( subst('/^To:(.*)sip:[^@]*@[a-zA-Z0-9.]+(.*)$/t:\1$avp(sip_address)\ 2/ig') ) {}; ... - __________________________________________________________ -1.3.10. subst_uri('/re/repl/flags') +1.3.10. subst_uri('/re/repl/flags') Runs the re substitution on the message uri (like subst but works only on the uri) Meaning of the parameters is as follows: - * '/re/repl/flags' - sed like regular expression. flags can be a combination of i (case insensitive), g (global) or s (match newline don't treat it as end of line). @@ -316,7 +299,7 @@ if ( subst('/^To:(.*)sip:[^@]*@[a-zA-Z0-9.]+(.*)$/t:\1$avp(sip_address)\ This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-10. subst_uri usage + Example 1.10. subst_uri usage ... # adds 3463 prefix to numeric uris, and save the original uri (\0 match) # as a parameter: orig_uri (just an example) @@ -329,15 +312,13 @@ if (subst_uri('/^sip:([0-9]+)@(.*)$/sip:$avp(uri_prefix)\1@\2;orig_uri=\ 0/i')){$ ... - __________________________________________________________ -1.3.11. subst_user('/re/repl/flags') +1.3.11. subst_user('/re/repl/flags') Runs the re substitution on the message uri (like subst_uri but works only on the user portion of the uri) Meaning of the parameters is as follows: - * '/re/repl/flags' - sed like regular expression. flags can be a combination of i (case insensitive), g (global) or s (match newline don't treat it as end of line). @@ -349,7 +330,7 @@ if (subst_uri('/^sip:([0-9]+)@(.*)$/sip:$avp(uri_prefix)\1@\2;orig_uri=\ This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-11. subst usage + Example 1.11. subst usage ... # adds 3463 prefix to uris ending with 3642 (just an example) if (subst_user('/3642$/36423463/')){$ @@ -359,15 +340,13 @@ if (subst_user('/3642$/36423463/')){$ if (subst_user('/(.*)3642$/$avp(user_prefix)\13642/')){$ ... - __________________________________________________________ -1.3.12. subst_body('/re/repl/flags') +1.3.12. subst_body('/re/repl/flags') Replaces re with repl (sed or perl like) in the body of the message. Meaning of the parameters is as follows: - * '/re/repl/flags' - sed like regular expression. flags can be a combination of i (case insensitive), g (global) or s (match newline don't treat it as end of line). @@ -379,26 +358,24 @@ if (subst_user('/(.*)3642$/$avp(user_prefix)\13642/')){$ This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-12. subst_body usage + Example 1.12. subst_body usage ... if ( subst_body('/^o=(.*) /o=$fU ') ) {}; ... - __________________________________________________________ -1.3.13. filter_body(content_type) +1.3.13. filter_body(content_type) Filters multipart body by leaving out all other body parts except the first body part of given type. Meaning of the parameters is as follows: - * content_type - Content type to be left in the body. This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-13. filter_body usage + Example 1.13. filter_body usage ... if (has_body("multipart/mixed")) { if (filter_body("application/sdp") { @@ -409,32 +386,28 @@ if (has_body("multipart/mixed")) { } } ... - __________________________________________________________ -1.3.14. append_to_reply(txt) +1.3.14. append_to_reply(txt) Append txt as header to the reply. Meaning of the parameters is as follows: - * txt - String which may contains pseudo-variables. This function can be used from REQUEST_ROUTE, BRANCH_ROUTE, ERROR_ROUTE. - Example 1-14. append_to_reply usage + Example 1.14. append_to_reply usage ... append_to_reply("Foo: bar\r\n"); append_to_reply("Foo: $rm at $Ts\r\n"); ... - __________________________________________________________ -1.3.15. append_hf(txt) +1.3.15. append_hf(txt) Appends 'txt' as header after the last header field. Meaning of the parameters is as follows: - * txt - Header field to be appended. The value can contain pseudo-variables which will be replaced at run time. @@ -447,19 +420,17 @@ append_to_reply("Foo: $rm at $Ts\r\n"); This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-15. append_hf usage + Example 1.15. append_hf usage ... append_hf("P-hint: VOICEMAIL\r\n"); append_hf("From-username: $fU\r\n"); ... - __________________________________________________________ -1.3.16. append_hf(txt, hdr) +1.3.16. append_hf(txt, hdr) Appends 'txt' as header after first 'hdr' header field. Meaning of the parameters is as follows: - * txt - Header field to be appended. The value can contain pseudo-variables which will be replaced at run time. * hdr - Header name after which the 'txt' is appended. @@ -467,38 +438,34 @@ append_hf("From-username: $fU\r\n"); This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-16. append_hf usage + Example 1.16. append_hf usage ... append_hf("P-hint: VOICEMAIL\r\n", "Call-ID"); append_hf("From-username: $fU\r\n", "Call-ID"); ... - __________________________________________________________ -1.3.17. insert_hf(txt) +1.3.17. insert_hf(txt) Inserts 'txt' as header before the first header field. Meaning of the parameters is as follows: - * txt - Header field to be inserted. The value can contain pseudo-variables which will be replaced at run time. This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-17. insert_hf usage + Example 1.17. insert_hf usage ... insert_hf("P-hint: VOICEMAIL\r\n"); insert_hf("To-username: $tU\r\n"); ... - __________________________________________________________ -1.3.18. insert_hf(txt, hdr) +1.3.18. insert_hf(txt, hdr) Inserts 'txt' as header before first 'hdr' header field. Meaning of the parameters is as follows: - * txt - Header field to be inserted. The value can contain pseudo-variables which will be replaced at run time. * hdr - Header name before which the 'txt' is inserted. @@ -506,60 +473,54 @@ insert_hf("To-username: $tU\r\n"); This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-18. insert_hf usage + Example 1.18. insert_hf usage ... insert_hf("P-hint: VOICEMAIL\r\n", "Call-ID"); insert_hf("To-username: $tU\r\n", "Call-ID"); ... - __________________________________________________________ -1.3.19. append_urihf(prefix, suffix) +1.3.19. append_urihf(prefix, suffix) Append header field name with original Request-URI in middle. Meaning of the parameters is as follows: - * prefix - string (usually at least header field name). * suffix - string (usually at least line terminator). This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-19. append_urihf usage + Example 1.19. append_urihf usage ... append_urihf("CC-Diversion: ", "\r\n"); ... - __________________________________________________________ -1.3.20. is_present_hf(hf_name) +1.3.20. is_present_hf(hf_name) Return true if a header field is present in message. - Note +Note - The function is also able to distinguish the compact names. For - exmaple "From" will match with "f" + The function is also able to distinguish the compact names. For + exmaple "From" will match with "f" Meaning of the parameters is as follows: - * hf_name - Header field name.(long or compact form) This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-20. is_present_hf usage + Example 1.20. is_present_hf usage ... if (is_present_hf("From")) log(1, "From HF Present"); ... - __________________________________________________________ -1.3.21. append_time() +1.3.21. append_time() Adds a time header to the reply of the request. You must use it before functions that are likely to send a reply, e.g., save() from 'registrar' module. Header format is: "Date: %a, %d %b %Y %H:%M:%S GMT", with the legend: - * %a abbreviated week of day name (locale) * %d day of month as decimal number * %b abbreviated month name (locale) @@ -573,13 +534,12 @@ if (is_present_hf("From")) log(1, "From HF Present"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1-21. append_time usage + Example 1.21. append_time usage ... append_time(); ... - __________________________________________________________ -1.3.22. is_method(name) +1.3.22. is_method(name) Check if the method of the message matches the name. If name is a known method (invite, cancel, ack, bye, options, info, @@ -599,13 +559,12 @@ append_time(); field from CSeq header. Meaning of the parameters is as follows: - * name - SIP method name This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, and BRANCH_ROUTE. - Example 1-22. is_method usage + Example 1.22. is_method usage ... if(is_method("INVITE")) { @@ -616,31 +575,28 @@ if(is_method("OPTION|UPDATE")) # process OPTIONs and UPDATEs here } ... - __________________________________________________________ -1.3.23. remove_hf(hname) +1.3.23. remove_hf(hname) Remove from message all headers with name "hname" Returns true if at least one header is found and removed. Meaning of the parameters is as follows: - * hname - header name to be removed. This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE and BRANCH_ROUTE. - Example 1-23. remove_hf usage + Example 1.23. remove_hf usage ... if(remove_hf("User-Agent")) { # User Agent header removed } ... - __________________________________________________________ -1.3.24. has_body(), has_body(mime) +1.3.24. has_body(), has_body(mime) The function returns true if the SIP message has a body attached. The checked includes also the "Content-Lenght" header @@ -650,23 +606,21 @@ if(remove_hf("User-Agent")) against the "Content-Type" header. Meaning of the parameters is as follows: - * mime - mime to be checked against the "Content-Type" header. If not present or 0, this check will be disabled. This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE and BRANCH_ROUTE. - Example 1-24. has_body usage + Example 1.24. has_body usage ... if(has_body("application/sdp")) { # do interesting stuff here } ... - __________________________________________________________ -1.3.25. is_privacy(privacy_type) +1.3.25. is_privacy(privacy_type) The function returns true if the SIP message has a Privacy header field that includes the given privacy_type among its @@ -677,17 +631,49 @@ if(has_body("application/sdp")) This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE and BRANCH_ROUTE. - Example 1-25. is_privacy usage + Example 1.25. is_privacy usage ... if(is_privacy("id")) { # do interesting stuff here } ... - __________________________________________________________ 1.4. Known Limitations Search functions are applied to the original request, i.e., they ignore all changes resulting from message processing in OpenSER script. + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/textops/doc/textops.sgml b/modules_k/textops/doc/textops.xml similarity index 66% rename from modules_k/textops/doc/textops.sgml rename to modules_k/textops/doc/textops.xml index 47975ebae..fe9967cdc 100644 --- a/modules_k/textops/doc/textops.sgml +++ b/modules_k/textops/doc/textops.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -34,7 +36,7 @@ Daniel-Constantin Mierla
- daniel@voice-system.ro + miconda@gmail.com
@@ -44,8 +46,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/textops/doc/textops_user.sgml b/modules_k/textops/doc/textops_admin.xml similarity index 99% rename from modules_k/textops/doc/textops_user.sgml rename to modules_k/textops/doc/textops_admin.xml index f4b4b0d02..823a4782f 100644 --- a/modules_k/textops/doc/textops_user.sgml +++ b/modules_k/textops/doc/textops_admin.xml @@ -960,9 +960,10 @@ if(has_body("application/sdp")) The function returns true if the SIP message has a Privacy header field that includes the given privacy_type among its privacy values. See - + http://www.iana.org/assignments/sip-priv-values for possible privacy type values. + This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE and BRANCH_ROUTE. diff --git a/modules_k/tm/README b/modules_k/tm/README index f7c1442df..15243ee18 100644 --- a/modules_k/tm/README +++ b/modules_k/tm/README @@ -12,14 +12,20 @@ Edited by Jiri Kuthan +Edited by + Bogdan-Andrei Iancu Copyright © 2003 FhG FOKUS Copyright © 2005 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -105,40 +111,42 @@ Bogdan-Andrei Iancu 2.1.1. load_tm(*import_structure) + 3. Frequently Asked Questions + List of Examples - 1-1. Set fr_timer parameter - 1-2. Set fr_inv_timer parameter - 1-3. Set wt_timer parameter - 1-4. Set delete_timer parameter - 1-5. Set T1_timer parameter - 1-6. Set T2_timer parameter - 1-7. Set noisy_ctimer parameter - 1-8. Set ruri_matching parameter - 1-9. Set via1_matching parameter - 1-10. Set unix_tx_timeout parameter - 1-11. Set restart_fr_on_each_reply parameter - 1-12. Set fr_timer_avp parameter - 1-13. Set fr_inv_timer_avp parameter - 1-14. Set tw_append parameter - 1-15. Set pass_provisional_replies parameter - 1-16. Set syn_branch parameter - 1-17. Set onreply_avp_mode parameter - 1-18. t_newtran usage - 1-19. t_relay usage - 1-20. t_relay usage - 1-21. t_reply usage - 1-22. t_replicate usage - 1-23. t_release usage - 1-24. t_check_status usage - 1-25. t_flush_flags usage - 1-26. t_local_replied usage - 1-27. t_write_fifo/unix usage - 1-28. t_check_trans usage - 1-29. t_was_cancelled usage - 1-30. t_on_failure usage - 1-31. t_on_reply usage - 1-32. t_on_branch usage - __________________________________________________________ + + 1.1. Set fr_timer parameter + 1.2. Set fr_inv_timer parameter + 1.3. Set wt_timer parameter + 1.4. Set delete_timer parameter + 1.5. Set T1_timer parameter + 1.6. Set T2_timer parameter + 1.7. Set noisy_ctimer parameter + 1.8. Set ruri_matching parameter + 1.9. Set via1_matching parameter + 1.10. Set unix_tx_timeout parameter + 1.11. Set restart_fr_on_each_reply parameter + 1.12. Set fr_timer_avp parameter + 1.13. Set fr_inv_timer_avp parameter + 1.14. Set tw_append parameter + 1.15. Set pass_provisional_replies parameter + 1.16. Set syn_branch parameter + 1.17. Set onreply_avp_mode parameter + 1.18. t_newtran usage + 1.19. t_relay usage + 1.20. t_relay usage + 1.21. t_reply usage + 1.22. t_replicate usage + 1.23. t_release usage + 1.24. t_check_status usage + 1.25. t_flush_flags usage + 1.26. t_local_replied usage + 1.27. t_write_fifo/unix usage + 1.28. t_check_trans usage + 1.29. t_was_cancelled usage + 1.30. t_on_failure usage + 1.31. t_on_reply usage + 1.32. t_on_branch usage Chapter 1. User's Guide @@ -176,7 +184,7 @@ Chapter 1. User's Guide whereas its TM clone is being forwarded. TM is quite big and uneasy to program--lot of mutexes, shared - memory access, malloc & free, timers--you really need to be + memory access, malloc and free, timers--you really need to be careful when you do anything. To simplify TM programming, there is the instrument of callbacks. The callback mechanisms allow programmers to register their functions to specific event. See @@ -189,7 +197,6 @@ Chapter 1. User's Guide retransmissions , FR timeouts, forking, etc. See t_uac prototype in uac.h for more details. Who wants to see the transaction result may register for a callback. - __________________________________________________________ 1.1.1. Per-Branch flags @@ -199,7 +206,6 @@ Chapter 1. User's Guide branch. There are several types of flags in OpenSER : - * message/transaction flags - they are visible everywhere in the transaction (in all routes and in all sequential replies/request). @@ -222,15 +228,14 @@ Chapter 1. User's Guide flags will not be visible in the other branch (in routes executing replies from the other branch). - For how to define branch flags and use via script, see Section - 1.4.15 and the setbflag(), resetbflag() and isbflagset() script - functions. + For how to define branch flags and use via script, see + Section 1.4.15, " t_on_branch(branch_route) " and the + setbflag(), resetbflag() and isbflagset() script functions. Also, modules may set branch flags before transaction creation (for the moment this feature is not available in script). The REGISTRAR module was the first to use this type of flags. The NAT flag is pushed in branch flags instead in message flags - __________________________________________________________ 1.1.2. Timer-Based Failover @@ -242,7 +247,6 @@ Chapter 1. User's Guide call to the voicemail. There are two timers in OpenSER : - * fr_timer - this timer is used when no response was received yet. If there is no response after fr_timer seconds the timer triggers (and failure route will be executed if @@ -257,7 +261,6 @@ Chapter 1. User's Guide provisional response after 3 seconds, but you want to ring for 60 seconds. Thuse, set the fr_timer to 3 and fr_inv_timer to 60. - __________________________________________________________ 1.1.3. DNS Failover @@ -286,24 +289,19 @@ Chapter 1. User's Guide failover is globally disabled (see the core parameter disable_dns_failover) or when the relay flag (per transaction) is set (see the t_relay() function). - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -314,11 +312,10 @@ Chapter 1. User's Guide Default value is 30 seconds. - Example 1-1. Set fr_timer parameter + Example 1.1. Set fr_timer parameter ... modparam("tm", "fr_timer", 10) ... - __________________________________________________________ 1.3.2. fr_inv_timer (integer) @@ -330,11 +327,10 @@ modparam("tm", "fr_timer", 10) Default value is 120 seconds. - Example 1-2. Set fr_inv_timer parameter + Example 1.2. Set fr_inv_timer parameter ... modparam("tm", "fr_inv_timer", 200) ... - __________________________________________________________ 1.3.3. wt_timer (integer) @@ -352,11 +348,10 @@ modparam("tm", "fr_inv_timer", 200) Default value is 5 seconds. - Example 1-3. Set wt_timer parameter + Example 1.3. Set wt_timer parameter ... modparam("tm", "wt_timer", 10) ... - __________________________________________________________ 1.3.4. delete_timer (integer) @@ -365,11 +360,10 @@ modparam("tm", "wt_timer", 10) Default value is 2 seconds. - Example 1-4. Set delete_timer parameter + Example 1.4. Set delete_timer parameter ... modparam("tm", "delete_timer", 5) ... - __________________________________________________________ 1.3.5. T1_timer (integer) @@ -377,11 +371,10 @@ modparam("tm", "delete_timer", 5) Default value is 500 milliseconds. - Example 1-5. Set T1_timer parameter + Example 1.5. Set T1_timer parameter ... modparam("tm", "T1_timer", 700) ... - __________________________________________________________ 1.3.6. T2_timer (integer) @@ -389,11 +382,10 @@ modparam("tm", "T1_timer", 700) Default value is 4000 milliseconds. - Example 1-6. Set T2_timer parameter + Example 1.6. Set T2_timer parameter ... modparam("tm", "T2_timer", 8000) ... - __________________________________________________________ 1.3.7. noisy_ctimer (integer) @@ -406,11 +398,10 @@ modparam("tm", "T2_timer", 8000) Default value is 0 (false). - Example 1-7. Set noisy_ctimer parameter + Example 1.7. Set noisy_ctimer parameter ... modparam("tm", "noisy_ctimer", 1) ... - __________________________________________________________ 1.3.8. ruri_matching (integer) @@ -421,11 +412,10 @@ modparam("tm", "noisy_ctimer", 1) Default value is 1 (true). - Example 1-8. Set ruri_matching parameter + Example 1.8. Set ruri_matching parameter ... modparam("tm", "ruri_matching", 0) ... - __________________________________________________________ 1.3.9. via1_matching (integer) @@ -437,11 +427,10 @@ modparam("tm", "ruri_matching", 0) Default value is 1 (true). - Example 1-9. Set via1_matching parameter + Example 1.9. Set via1_matching parameter ... modparam("tm", "via1_matching", 0) ... - __________________________________________________________ 1.3.10. unix_tx_timeout (integer) @@ -450,11 +439,10 @@ modparam("tm", "via1_matching", 0) Default value is 2 seconds. - Example 1-10. Set unix_tx_timeout parameter + Example 1.10. Set unix_tx_timeout parameter ... modparam("tm", "unix_tx_timeout", 5) ... - __________________________________________________________ 1.3.11. restart_fr_on_each_reply (integer) @@ -465,11 +453,10 @@ modparam("tm", "unix_tx_timeout", 5) Default value is 1 (true). - Example 1-11. Set restart_fr_on_each_reply parameter + Example 1.11. Set restart_fr_on_each_reply parameter ... modparam("tm", "restart_fr_on_each_reply", 0) ... - __________________________________________________________ 1.3.12. fr_timer_avp (string) @@ -482,11 +469,10 @@ modparam("tm", "restart_fr_on_each_reply", 0) Default value is "NULL" (feature disabled). - Example 1-12. Set fr_timer_avp parameter + Example 1.12. Set fr_timer_avp parameter ... modparam("tm", "fr_timer_avp", "$avp(i:24)") ... - __________________________________________________________ 1.3.13. fr_inv_timer_avp (string) @@ -499,11 +485,10 @@ modparam("tm", "fr_timer_avp", "$avp(i:24)") Default value is "NULL" (feature disabled). - Example 1-13. Set fr_inv_timer_avp parameter + Example 1.13. Set fr_inv_timer_avp parameter ... modparam("tm", "fr_inv_timer_avp", "$avp(i:25)") ... - __________________________________________________________ 1.3.14. tw_append (string) @@ -513,7 +498,6 @@ modparam("tm", "fr_inv_timer_avp", "$avp(i:25)") Default value is null string. Syntax of the parameter is: - * tw_append = append_name':' element (';'element)* * element = ( [name '='] pseudo_variable) @@ -526,12 +510,11 @@ modparam("tm", "fr_inv_timer_avp", "$avp(i:25)") accept name; the body it will be printed all the time at the end, disregarding its position in the definition string. - Example 1-14. Set tw_append parameter + Example 1.14. Set tw_append parameter ... modparam("tm", "tw_append", "test: ua=$hdr(User-Agent) ;avp=$avp(i:10);$rb;time=$Ts") ... - __________________________________________________________ 1.3.15. pass_provisional_replies (integer) @@ -540,11 +523,10 @@ modparam("tm", "tw_append", Default value is 0. - Example 1-15. Set pass_provisional_replies parameter + Example 1.15. Set pass_provisional_replies parameter ... modparam("tm", "pass_provisional_replies", 1) ... - __________________________________________________________ 1.3.16. syn_branch (integer) @@ -553,16 +535,14 @@ modparam("tm", "pass_provisional_replies", 1) Default value is 1 (use synonym branches). - Example 1-16. Set syn_branch parameter + Example 1.16. Set syn_branch parameter ... modparam("tm", "syn_branch", 0) ... - __________________________________________________________ 1.3.17. onreply_avp_mode (integer) Describes how the AVPs should be handled in reply route: - * 0 - the AVPs will be per message only; they will not interfere with the AVPS stored in transaction; initially there will be an empty list and at the end of the route, @@ -578,37 +558,35 @@ modparam("tm", "syn_branch", 0) Default value is 0. - Example 1-17. Set onreply_avp_mode parameter + Example 1.17. Set onreply_avp_mode parameter ... modparam("tm", "onreply_avp_mode", 1) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. t_newtran() +1.4.1. t_newtran() Creates a new transaction, returns a negative value on error. This is the only way a script can add a new transaction in an atomic way. Typically, it is used to deploy a UAS. - Warning +Warning - NOTE that the changes on the request that are made after this - function call will not be saved into transaction!!! + NOTE that the changes on the request that are made after this + function call will not be saved into transaction!!! This function can be used from REQUEST_ROUTE. - Example 1-18. t_newtran usage + Example 1.18. t_newtran usage ... if (t_newtran()) { log("UAS logic"); t_reply("999","hello"); } else sl_reply_error(); ... - __________________________________________________________ -1.4.2. t_relay([flags]) +1.4.2. t_relay([flags]) Relay a message statefully to destination indicated in current URI. (If the original URI was rewritten by UsrLoc, RR, @@ -623,7 +601,6 @@ if (t_newtran()) { The function may take as parameter an optional set of flags for controlling the internal behaviour. The flags may be given in decimal or hexa format; supported flags are: - * 0x01 - do not generate an 100 trying provisional reply when building the transaction. By default one is generated. Useful if you already pushed an stateless 100 reply from @@ -637,7 +614,6 @@ if (t_newtran()) { transaport and transaction level. In case of error, the function returns the following codes: - * -1 - generic internal error * -2 - bad message (parsing errors) * -3 - no destination available (no branches were added or @@ -648,16 +624,15 @@ if (t_newtran()) { This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-19. t_relay usage + Example 1.19. t_relay usage ... if (!t_relay()) { sl_reply_error(); exit; } ... - __________________________________________________________ -1.4.3. t_relay(proto:host:port,[flags]) +1.4.3. t_relay(proto:host:port,[flags]) Relay a message statefully to a fixed destination. The destination is specified as "[proto:]host[:port]". @@ -668,33 +643,30 @@ if (!t_relay()) { This functions can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-20. t_relay usage + Example 1.20. t_relay usage ... t_relay("tcp:192.168.1.10:5060"); t_relay("mydomain.com:5070","0x1"); t_relay("udp:mydomain.com"); ... - __________________________________________________________ -1.4.4. t_reply(code, reason_phrase) +1.4.4. t_reply(code, reason_phrase) Sends a stateful reply after a transaction has been established. See t_newtran for usage. Meaning of the parameters is as follows: - * code - Reply code number. * reason_phrase - Reason string. This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. - Example 1-21. t_reply usage + Example 1.21. t_reply usage ... t_reply("404", "Not found"); ... - __________________________________________________________ -1.4.5. t_replicate(URI,[flags]) +1.4.5. t_replicate(URI,[flags]) Replicates a request to another destination. No information due the replicated request (like reply code) will be forwarded to @@ -711,32 +683,29 @@ t_reply("404", "Not found"); This functions can be used from REQUEST_ROUTE. - Example 1-22. t_replicate usage + Example 1.22. t_replicate usage ... t_replicate("sip:1.2.3.4:5060"); t_replicate("sip:1.2.3.4:5060;transport=tcp"); t_replicate("sip:1.2.3.4","0x4"); ... - __________________________________________________________ -1.4.6. t_release() +1.4.6. t_release() Remove transaction from memory (it will be first put on a wait timer to absorb delayed messages). This function can be used from REQUEST_ROUTE. - Example 1-23. t_release usage + Example 1.23. t_release usage ... t_release(); ... - __________________________________________________________ -1.4.7. t_check_status(re) +1.4.7. t_check_status(re) Returns true if the regualr expresion "re" match the reply code of the response message as follows: - * in routing block - the code of the last sent reply. * in on_reply block - the code of the current received reply. * in on_failure block - the code of the selected negative @@ -745,15 +714,14 @@ t_release(); This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE and BRANCH_ROUTE . - Example 1-24. t_check_status usage + Example 1.24. t_check_status usage ... if (t_check_status("(487)|(408)")) { log("487 or 408 negative reply\n"); } ... - __________________________________________________________ -1.4.8. t_flush_flags() +1.4.8. t_flush_flags() Flush the flags from current request into the already created transaction. It make sens only in routing block if the @@ -762,13 +730,12 @@ if (t_check_status("(487)|(408)")) { This function can be used from REQUEST_ROUTE and BRANCH_ROUTE . - Example 1-25. t_flush_flags usage + Example 1.25. t_flush_flags usage ... t_flush_flags(); ... - __________________________________________________________ -1.4.9. t_local_replied(reply) +1.4.9. t_local_replied(reply) Returns true if all or last (depending of the parameter) reply(es) were local generated (and not received). @@ -778,15 +745,14 @@ t_flush_flags(); This function can be used from REQUEST_ROUTE, BRANCH_ROUTE, FAILURE_ROUTE and ONREPLY_ROUTE. - Example 1-26. t_local_replied usage + Example 1.26. t_local_replied usage ... if (t_local_replied("all")) { log ("no reply received\n"); } ... - __________________________________________________________ -1.4.10. t_write_fifo(info,fifo) t_write_unix(info,sock) +1.4.10. t_write_fifo(info,fifo) t_write_unix(info,sock) Write via FIFO file or UNIX socket a lot of information regarding the request. Which information should be written may @@ -795,7 +761,7 @@ if (t_local_replied("all")) { This functions can be used from REQUEST_ROUTE, FAILURE_ROUTE and BRANCH_ROUTE. - Example 1-27. t_write_fifo/unix usage + Example 1.27. t_write_fifo/unix usage ... modparam("tm","tw_append","append1:Email=avp[i:12];UA=hdr[User-Agent]") modparam("tm","tw_append","append2:body=msg[body]") @@ -804,14 +770,12 @@ t_write_fifo("voicemail/append1","/tmp/appx_fifo"); ... t_write_unix("logger/append2","/var/run/logger.sock"); ... - __________________________________________________________ -1.4.11. t_check_trans() +1.4.11. t_check_trans() Returns true if the current request is associated to a transaction. The relationship between the request and transaction is defined as follow: - * non-CANCEL/non-ACK requests - if the request belongs to a transaction (it's a retransmision), the function will do a standard processing of the retransmission and will @@ -824,7 +788,7 @@ t_write_unix("logger/append2","/var/run/logger.sock"); This function can be used from REQUEST_ROUTE and BRANCH_ROUTE. - Example 1-28. t_check_trans usage + Example 1.28. t_check_trans usage ... if ( is_method("CANCEL") ) { if ( t_check_trans() ) @@ -832,24 +796,22 @@ if ( is_method("CANCEL") ) { exit; } ... - __________________________________________________________ -1.4.12. t_was_cancelled() +1.4.12. t_was_cancelled() Retuns true if called for an INVITE transaction that was explicitly cancelled by UAC side via a CANCEL request. This function can be used from ONREPLY_ROUTE, FAILURE_ROUTE. - Example 1-29. t_was_cancelled usage + Example 1.29. t_was_cancelled usage ... if (t_was_cancelled()) { log("transaction was cancelled by UAC\n"); } ... - __________________________________________________________ -1.4.13. t_on_failure(failure_route) +1.4.13. t_on_failure(failure_route) Sets reply routing block, to which control is passed after a transaction completed with a negative result but before sending @@ -871,13 +833,12 @@ if (t_was_cancelled()) { value of the winning branch. Meaning of the parameters is as follows: - * failure_route - Reply route block to be called. This function can be used from REQUEST_ROUTE, BRANCH_ROUTE, ONREPLY_ROUTE and FAILURE_ROUTE. - Example 1-30. t_on_failure usage + Example 1.30. t_on_failure usage ... route { t_on_failure("1"); @@ -890,9 +851,8 @@ failure_route[1] { t_relay(); } ... - __________________________________________________________ -1.4.14. t_on_reply(reply_route) +1.4.14. t_on_reply(reply_route) Sets reply routing block, to which control is passed each time a reply (provisional or final) for the transaction is received. @@ -914,13 +874,12 @@ failure_route[1] { further. Meaning of the parameters is as follows: - * reply_route - Reply route block to be called. This function can be used from REQUEST_ROUTE, BRANCH_ROUTE, ONREPLY_ROUTE and FAILURE_ROUTE. - Example 1-31. t_on_reply usage + Example 1.31. t_on_reply usage ... route { t_on_reply("1"); @@ -936,9 +895,8 @@ onreply_route[1] { } } ... - __________________________________________________________ -1.4.15. t_on_branch(branch_route) +1.4.15. t_on_branch(branch_route) Sets a branch route to be execute separately for each branch of the transaction before being sent out - changes in that route @@ -957,13 +915,12 @@ onreply_route[1] { be forwarded further. Meaning of the parameters is as follows: - * branch_route - Branch route block to be called. This function can be used from REQUEST_ROUTE, BRANCH_ROUTE, ONREPLY_ROUTE and FAILURE_ROUTE. - Example 1-32. t_on_branch usage + Example 1.32. t_on_branch usage ... route { t_on_branch("1"); @@ -980,19 +937,16 @@ branch_route[1] { } } ... - __________________________________________________________ 1.5. Exported pseudo-variables Exported pseudo-variables are listed in the next sections. - __________________________________________________________ 1.5.1. $T_branch_idx $T_branch_idx - the index (starting with 1 for the first branch) of the branch for which is executed the branch_route[]. If used outside of branch_route[] block, the value is '0'. - __________________________________________________________ 1.5.2. $T_reply_code @@ -1001,16 +955,14 @@ branch_route[1] { reply_route will be the current processed reply; in failure_route will be the negative winning reply. In case of no-reply or error, '0' value is returned. - __________________________________________________________ 1.6. Exported MI Functions -1.6.1. t_uac_dlg +1.6.1. t_uac_dlg Generates and sends a local SIP request. Parameters: - * method - request method * RURI - request SIP URI * NEXT HOP - next hop SIP URI (OBP); use "." if no value. @@ -1021,34 +973,28 @@ branch_route[1] { * body - (optional, may not be present) request body (if present, requires the "Content-Type" and "Content-length" headers) - __________________________________________________________ -1.6.2. t_uac_cancel +1.6.2. t_uac_cancel Generates and sends a CANCEL for an existing local SIP request. Parameters: - * callid - callid of the INVITE request to be cancelled. * cseq - cseq of the INVITE request to be cancelled. - __________________________________________________________ -1.6.3. t_hash +1.6.3. t_hash Gets information about the load of TM internal hash table. Parameters: - * none - __________________________________________________________ -1.6.4. t_reply +1.6.4. t_reply Generates and sends a reply for an existing inbound SIP transaction. Parameters: - * code - reply code * reason - reason phrase. * trans_id - transaction identifier (has the hash_entry:label @@ -1059,89 +1005,108 @@ branch_route[1] { * body - (optional, may not be present) reply body (if present, requires the "Content-Type" and "Content-length" headers) - __________________________________________________________ 1.7. Exported statistics Exported statistics are listed in the next sections. - __________________________________________________________ 1.7.1. received_replies Total number of total replies received by TM module - can be resetted. - __________________________________________________________ 1.7.2. relayed_replies Total number of replied received and relayed by TM module - can be resetted. - __________________________________________________________ 1.7.3. local_replies Total number of replied local generated by TM module - can be resetted. - __________________________________________________________ 1.7.4. UAS_transactions Total number of transaction created by received requests - can be resetted. - __________________________________________________________ 1.7.5. UAC_transactions Total number of transaction created by local generated requests - can be resetted. - __________________________________________________________ 1.7.6. 2xx_transactions Total number of transaction completed with 2xx replies - can be resetted. - __________________________________________________________ 1.7.7. 3xx_transactions Total number of transaction completed with 3xx replies - can be resetted. - __________________________________________________________ 1.7.8. 4xx_transactions Total number of transaction completed with 4xx replies - can be resetted. - __________________________________________________________ 1.7.9. 5xx_transactions Total number of transaction completed with 5xx replies - can be resetted. - __________________________________________________________ 1.7.10. 6xx_transactions Total number of transaction completed with 6xx replies - can be resetted. - __________________________________________________________ 1.7.11. inuse_transactions Number of transaction existing in memeory at current time - can not be resetted. - __________________________________________________________ Chapter 2. Developer's Guide 2.1. Functions -2.1.1. load_tm(*import_structure) +2.1.1. load_tm(*import_structure) For programmatic use only--import the TM API. See the cpl-c, acc or jabber modules to see how it works. Meaning of the parameters is as follows: - * import_structure - Pointer to the import structure - see "struct tm_binds" in modules/tm/tm_load.h + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/tm/doc/tm.sgml b/modules_k/tm/doc/tm.xml similarity index 71% rename from modules_k/tm/doc/tm.sgml rename to modules_k/tm/doc/tm.xml index 73c9d54d7..fc9ceb6d8 100644 --- a/modules_k/tm/doc/tm.sgml +++ b/modules_k/tm/doc/tm.xml @@ -1,12 +1,14 @@ - + - - + + + - + %docentities; ]> @@ -57,8 +59,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/tm/doc/tm_user.sgml b/modules_k/tm/doc/tm_admin.xml similarity index 99% rename from modules_k/tm/doc/tm_user.sgml rename to modules_k/tm/doc/tm_admin.xml index 6e59085f0..f31fee79a 100644 --- a/modules_k/tm/doc/tm_user.sgml +++ b/modules_k/tm/doc/tm_admin.xml @@ -43,7 +43,7 @@ TM is quite big and uneasy to program--lot of - mutexes, shared memory access, malloc & free, timers--you really + mutexes, shared memory access, malloc and free, timers--you really need to be careful when you do anything. To simplify TM programming, there is the instrument of callbacks. The callback mechanisms allow programmers to register @@ -104,7 +104,7 @@ For how to define branch flags and use via script, see - and the setbflag(), resetbflag() and + and the setbflag(), resetbflag() and isbflagset() script functions. @@ -719,11 +719,13 @@ if (t_newtran()) { transaction is created. By default one is sent. Useful if you want to implement a serial forking in case of failure. + 0x04 - disable the DNS failover for the transaction. Only first IP will be used. It disable the failover both at transaport and transaction level. + @@ -736,21 +738,26 @@ if (t_newtran()) { -2 - bad message (parsing errors) + -3 - no destination available (no branches were added or request already cancelled) + -4 - bad destination (unresolvable address) + -5 - destination filtered (black listed) + -6 - generic send failed + diff --git a/modules_k/tm/doc/tm_devel.sgml b/modules_k/tm/doc/tm_devel.xml similarity index 100% rename from modules_k/tm/doc/tm_devel.sgml rename to modules_k/tm/doc/tm_devel.xml diff --git a/modules_k/uac/README b/modules_k/uac/README index 53a27c5cf..983b11691 100644 --- a/modules_k/uac/README +++ b/modules_k/uac/README @@ -9,9 +9,13 @@ Edited by Ramona-Elena Modroiu Copyright © 2005 Voice Sistem + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -37,19 +41,21 @@ Ramona-Elena Modroiu 1.4.3. uac_restore_from() 1.4.4. uac_auth() + 2. Frequently Asked Questions + List of Examples - 1-1. Set rr_store_param parameter - 1-2. Set from_restore_mode parameter - 1-3. Set from_passwd parameter - 1-4. Set credential parameter - 1-5. Set auth_realm_avp parameter - 1-6. Set auth_username_avp parameter - 1-7. Set auth_password_avp parameter - 1-8. uac_replace_from usage - 1-9. uac_replace_from usage - 1-10. uac_restore_from usage - 1-11. uac_auth usage - __________________________________________________________ + + 1.1. Set rr_store_param parameter + 1.2. Set from_restore_mode parameter + 1.3. Set from_passwd parameter + 1.4. Set credential parameter + 1.5. Set auth_realm_avp parameter + 1.6. Set auth_username_avp parameter + 1.7. Set auth_password_avp parameter + 1.8. uac_replace_from usage + 1.9. uac_replace_from usage + 1.10. uac_restore_from usage + 1.11. uac_auth usage Chapter 1. User's Guide @@ -60,31 +66,25 @@ Chapter 1. User's Guide or client authentication. Known limitations in this version: - * authentication does not support qop auth-int, just qop auth; * CSeq not increased during authentication - the response may be rejected. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * TM - Transaction Module * RR - Record-Route Module, but only if restore mode for FROM URI is set to "auto". - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None - __________________________________________________________ 1.3. Exported Parameters @@ -95,16 +95,14 @@ Chapter 1. User's Guide This parameter is optional, it's default value being "vsf". - Example 1-1. Set rr_store_param parameter + Example 1.1. Set rr_store_param parameter ... modparam("uac","rr_store_param","my_param") ... - __________________________________________________________ 1.3.2. from_restore_mode (string) There are 3 mode of restoring the original FROM URI: - * "none" - no information about original URI is stored; restoretion is not possible. * "manual" - all following replies will be restored, but not @@ -115,11 +113,10 @@ modparam("uac","rr_store_param","my_param") This parameter is optional, it's default value being "auto". - Example 1-2. Set from_restore_mode parameter + Example 1.2. Set from_restore_mode parameter ... modparam("uac","from_restore_mode","auto") ... - __________________________________________________________ 1.3.3. from_passwd (string) @@ -128,11 +125,10 @@ modparam("uac","from_restore_mode","auto") Default value of this parameter is empty. - Example 1-3. Set from_passwd parameter + Example 1.3. Set from_passwd parameter ... modparam("uac","from_passwd","my_secret_passwd") ... - __________________________________________________________ 1.3.4. credential (string) @@ -141,11 +137,10 @@ modparam("uac","from_passwd","my_secret_passwd") This parameter is required if UAC authentication is used. - Example 1-4. Set credential parameter + Example 1.4. Set credential parameter ... modparam("uac","credential","username:domain:password") ... - __________________________________________________________ 1.3.5. auth_realm_avp (string) @@ -153,13 +148,14 @@ modparam("uac","credential","username:domain:password") used to perform authentication. If you define it, you also need to define "auth_username_avp" - (Section 1.3.6) and "auth_username_avp" (Section 1.3.7). + (Section 1.3.6, "auth_username_avp (string)") and + "auth_username_avp" (Section 1.3.7, "auth_password_avp + (string)"). - Example 1-5. Set auth_realm_avp parameter + Example 1.5. Set auth_realm_avp parameter ... modparam("uac","auth_realm_avp","$avp(i:10)") ... - __________________________________________________________ 1.3.6. auth_username_avp (string) @@ -167,13 +163,14 @@ modparam("uac","auth_realm_avp","$avp(i:10)") used to perform authentication. If you define it, you also need to define "auth_realm_avp" - (Section 1.3.5) and "auth_username_avp" (Section 1.3.7). + (Section 1.3.5, "auth_realm_avp (string)") and + "auth_username_avp" (Section 1.3.7, "auth_password_avp + (string)"). - Example 1-6. Set auth_username_avp parameter + Example 1.6. Set auth_username_avp parameter ... modparam("uac","auth_username_avp","$avp(i:11)") ... - __________________________________________________________ 1.3.7. auth_password_avp (string) @@ -181,17 +178,18 @@ modparam("uac","auth_username_avp","$avp(i:11)") used to perform authentication. If you define it, you also need to define "auth_password_avp" - (Section 1.3.7) and "auth_username_avp" (Section 1.3.7). + (Section 1.3.7, "auth_password_avp (string)") and + "auth_username_avp" (Section 1.3.7, "auth_password_avp + (string)"). - Example 1-7. Set auth_password_avp parameter + Example 1.7. Set auth_password_avp parameter ... modparam("uac","auth_password_avp","$avp(i:12)") ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. uac_replace_from(display,uri) +1.4.1. uac_replace_from(display,uri) Replace in FROM header the display name and the URI part. @@ -199,7 +197,7 @@ modparam("uac","auth_password_avp","$avp(i:12)") This function can be used from REQUEST_ROUTE. - Example 1-8. uac_replace_from usage + Example 1.8. uac_replace_from usage ... # replace both display and uri uac_replace_from("$avp(s:display)","$avp(s:uri)"); @@ -210,9 +208,8 @@ uac_replace_from("","sip:robin@gotham.org"); # remove display and do not touch uri uac_replace_from("",""); ... - __________________________________________________________ -1.4.2. uac_replace_from(uri) +1.4.2. uac_replace_from(uri) Replace in FROM header the URI part without altering the display name. @@ -221,13 +218,12 @@ uac_replace_from("",""); This function can be used from REQUEST_ROUTE. - Example 1-9. uac_replace_from usage + Example 1.9. uac_replace_from usage ... uac_replace_from("sip:batman@gotham.org"); ... - __________________________________________________________ -1.4.3. uac_restore_from() +1.4.3. uac_restore_from() This function will check if the FROM URI was modified and will use the information stored in header parameter to restore the @@ -235,13 +231,12 @@ uac_replace_from("sip:batman@gotham.org"); This function can be used from REQUEST_ROUTE. - Example 1-10. uac_restore_from usage + Example 1.10. uac_restore_from usage ... uac_restore_from(); ... - __________________________________________________________ -1.4.4. uac_auth() +1.4.4. uac_auth() This function can be called only from failure route and will build the authentication response header and insert it into the @@ -249,7 +244,40 @@ uac_restore_from(); This function can be used from FAILURE_ROUTE. - Example 1-11. uac_auth usage + Example 1.11. uac_auth usage ... uac_auth(); ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/uac/doc/uac.sgml b/modules_k/uac/doc/uac.xml similarity index 64% rename from modules_k/uac/doc/uac.sgml rename to modules_k/uac/doc/uac.xml index 042d8f26a..6b4712c31 100644 --- a/modules_k/uac/doc/uac.sgml +++ b/modules_k/uac/doc/uac.xml @@ -1,11 +1,13 @@ - + - + + - + %serentities; ]> @@ -37,8 +39,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/uac/doc/uac_user.sgml b/modules_k/uac/doc/uac_admin.xml similarity index 96% rename from modules_k/uac/doc/uac_user.sgml rename to modules_k/uac/doc/uac_admin.xml index f7cbe29ea..dc76ffe6a 100644 --- a/modules_k/uac/doc/uac_user.sgml +++ b/modules_k/uac/doc/uac_admin.xml @@ -181,9 +181,9 @@ modparam("uac","credential","username:domain:password") If you define it, you also need to define auth_username_avp - () and + () and auth_username_avp - (). + (). Set <varname>auth_realm_avp</varname> parameter @@ -203,9 +203,9 @@ modparam("uac","auth_realm_avp","$avp(i:10)") If you define it, you also need to define auth_realm_avp - () and + () and auth_username_avp - (). + (). Set <varname>auth_username_avp</varname> parameter @@ -225,9 +225,9 @@ modparam("uac","auth_username_avp","$avp(i:11)") If you define it, you also need to define auth_password_avp - () and + () and auth_username_avp - (). + (). Set <varname>auth_password_avp</varname> parameter diff --git a/modules_k/uac_redirect/README b/modules_k/uac_redirect/README index 064c565cf..ccf2758c8 100644 --- a/modules_k/uac_redirect/README +++ b/modules_k/uac_redirect/README @@ -9,9 +9,13 @@ Edited by Bogdan-Andrei Iancu Copyright © 2005 Voice Sistem + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -38,18 +42,20 @@ Bogdan-Andrei Iancu 1.6. Script Example + 2. Frequently Asked Questions + List of Examples - 1-1. Set default_filter module parameter - 1-2. Set deny_filter module parameter - 1-3. Set accept_filter module parameter - 1-4. Set acc_function parameter - 1-5. Set acc_db_table parameter - 1-6. set_deny_filter usage - 1-7. set_accept_filter usage - 1-8. get_redirects usage - 1-9. get_redirects usage - 1-10. Redirection script example - __________________________________________________________ + + 1.1. Set default_filter module parameter + 1.2. Set deny_filter module parameter + 1.3. Set accept_filter module parameter + 1.4. Set acc_function parameter + 1.5. Set acc_db_table parameter + 1.6. set_deny_filter usage + 1.7. set_accept_filter usage + 1.8. get_redirects usage + 1.9. get_redirects usage + 1.10. Redirection script example Chapter 1. User's Guide @@ -65,7 +71,6 @@ Chapter 1. User's Guide The module provide a powerful mechanism for selecting and filtering the contacts to be used for the new redirect: - * number based - limits like the number of total contacts to be used or the maximum number of contacts per branch to be selected. @@ -76,7 +81,6 @@ Chapter 1. User's Guide When selecting from a 3xx branch the contacts to be used, the contacts will be ordered and prioritized based on the "q" value. - __________________________________________________________ 1.2. Accounting @@ -88,7 +92,6 @@ Chapter 1. User's Guide (all are supported). The information to be logged will be the same as the normal logged information directly via ACC module, but with following differences: - * reason phrase - which will be dynamically set by the redirection function; * outgoing URI - which will be the redirect URI. @@ -102,26 +105,21 @@ Chapter 1. User's Guide For example, if a call is redirected to three new contacts, the module will log three additional records corresponding to each redirect URI. - __________________________________________________________ 1.3. Dependencies 1.3.1. OpenSER Modules The following modules must be loaded before this module: - * TM - Transaction Module, for accessing replies. * ACC - Accounting Module, but only if the logging feature is used. - __________________________________________________________ 1.3.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None - __________________________________________________________ 1.4. Exported Parameters @@ -132,11 +130,10 @@ Chapter 1. User's Guide The default value is "accept". - Example 1-1. Set default_filter module parameter + Example 1.1. Set default_filter module parameter ... modparam("uac_redirect","default_filter","deny") ... - __________________________________________________________ 1.4.2. deny_filter (string) @@ -152,11 +149,10 @@ modparam("uac_redirect","default_filter","deny") This parameter is optional, it's default value being NULL. - Example 1-2. Set deny_filter module parameter + Example 1.2. Set deny_filter module parameter ... modparam("uac_redirect","deny_filter",".*@siphub\.net") ... - __________________________________________________________ 1.4.3. accept_filter (string) @@ -172,11 +168,10 @@ modparam("uac_redirect","deny_filter",".*@siphub\.net") This parameter is optional, it's default value being NULL. - Example 1-3. Set accept_filter module parameter + Example 1.3. Set accept_filter module parameter ... modparam("uac_redirect","accept_filter",".*@siphub\.net") ... - __________________________________________________________ 1.4.4. acc_function (string) @@ -186,7 +181,6 @@ modparam("uac_redirect","accept_filter",".*@siphub\.net") set_accept_filter() scripting function. Its values my be: - * acc_log_request * acc_db_request * acc_rad_request @@ -194,11 +188,10 @@ modparam("uac_redirect","accept_filter",".*@siphub\.net") The default value is "acc_log_request". - Example 1-4. Set acc_function parameter + Example 1.4. Set acc_function parameter ... modparam("uac_redirect","acc_function","acc_db_request") ... - __________________________________________________________ 1.4.5. acc_db_table (string) @@ -210,15 +203,14 @@ modparam("uac_redirect","acc_function","acc_db_request") The default value is "acc". - Example 1-5. Set acc_db_table parameter + Example 1.5. Set acc_db_table parameter ... modparam("uac_redirect","acc_db_table","acc_redirect") ... - __________________________________________________________ 1.5. Exported Functions -1.5.1. set_deny_filter(filter,flags) +1.5.1. set_deny_filter(filter,flags) Sets additional deny filters. Maximum 6 may be combined. This additional filter will apply only to the current message - it @@ -226,7 +218,6 @@ modparam("uac_redirect","acc_db_table","acc_redirect") Default or previous added deny filter may be reset depending of the flag parameter value: - * reset_all - reset both default and previous added deny filters; * reset_default - reset only the default deny filter; @@ -235,14 +226,13 @@ modparam("uac_redirect","acc_db_table","acc_redirect") This function can be used from FAILURE_ROUTE. - Example 1-6. set_deny_filter usage + Example 1.6. set_deny_filter usage ... set_deny_filter(".*@domain2.net","reset_all"); set_deny_filter(".*@domain1.net",""); ... - __________________________________________________________ -1.5.2. set_accept_filter(filter,flags) +1.5.2. set_accept_filter(filter,flags) Sets additional accept filters. Maximum 6 may be combined. This additional filter will apply only to the current message - it @@ -250,7 +240,6 @@ set_deny_filter(".*@domain1.net",""); Default or previous added deny filter may be reset depending of the flag parameter value: - * reset_all - reset both default and previous added accept filters; * reset_default - reset only the default accept filter; @@ -259,14 +248,13 @@ set_deny_filter(".*@domain1.net",""); This function can be used from FAILURE_ROUTE. - Example 1-7. set_accept_filter usage + Example 1.7. set_accept_filter usage ... set_accept_filter(".*@domain2.net","reset_added"); set_accept_filter(".*@domain1.net",""); ... - __________________________________________________________ -1.5.3. get_redirects(max) +1.5.3. get_redirects(max) The function may be called only from failure routes. It will extract the contacts from all 3xx branches and append them as @@ -275,7 +263,6 @@ set_accept_filter(".*@domain1.net",""); How many contacts (in total and per branch) are selected depends of the max parameter values. Its syntax is: - * max = max_total [":" max_branch] * max_total = number of total contacts to be selected * max_branch = number of contacts per branch to be selected @@ -290,7 +277,7 @@ set_accept_filter(".*@domain1.net",""); This function can be used from FAILURE_ROUTE. - Example 1-8. get_redirects usage + Example 1.8. get_redirects usage ... # max 2 contacts per branch, but no overall limit get_redirects("*:2"); @@ -301,9 +288,8 @@ get_redirects("6:*"); # no restrictions get_redirects("*"); ... - __________________________________________________________ -1.5.4. get_redirects(max,reason) +1.5.4. get_redirects(max,reason) The function has same functionality as get_redirects(max) function, but it will produce accounting records. @@ -315,15 +301,14 @@ get_redirects("*"); This function can be used from FAILURE_ROUTE. - Example 1-9. get_redirects usage + Example 1.9. get_redirects usage ... get_redirects("4:1","Redirected"); ... - __________________________________________________________ 1.6. Script Example - Example 1-10. Redirection script example + Example 1.10. Redirection script example loadmodule "modules/sl/sl.so" loadmodule "modules/usrloc/usrloc.so" loadmodule "modules/registrar/registrar.so" @@ -366,3 +351,36 @@ failure_route[2] { get_redirects("6:2","redirect"); t_relay(); } + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/uac_redirect/doc/uac_redirect.sgml b/modules_k/uac_redirect/doc/uac_redirect.xml similarity index 64% rename from modules_k/uac_redirect/doc/uac_redirect.sgml rename to modules_k/uac_redirect/doc/uac_redirect.xml index b2e4eab75..49ec66dbf 100644 --- a/modules_k/uac_redirect/doc/uac_redirect.sgml +++ b/modules_k/uac_redirect/doc/uac_redirect.xml @@ -1,11 +1,13 @@ - + - + + - + %serentities; ]> @@ -37,8 +39,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/uac_redirect/doc/uac_redirect_user.sgml b/modules_k/uac_redirect/doc/uac_redirect_admin.xml similarity index 100% rename from modules_k/uac_redirect/doc/uac_redirect_user.sgml rename to modules_k/uac_redirect/doc/uac_redirect_admin.xml diff --git a/modules_k/uri/README b/modules_k/uri/README index 6cc667c72..0fa238935 100644 --- a/modules_k/uri/README +++ b/modules_k/uri/README @@ -8,14 +8,20 @@ Edited by Jan Janak +Edited by + Bogdan-Andrei Iancu Copyright © 2003 FhG FOKUS Copyright © 2005 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -35,132 +41,120 @@ Bogdan-Andrei Iancu 1.4.6. tel2sip() 1.4.7. is_uri_user_e164(pseudo-variable) + 2. Frequently Asked Questions + List of Examples - 1-1. is_user usage - 1-2. has_totag usage - 1-3. uri_param usage - 1-4. uri_param usage - 1-5. add_uri_param usage - 1-6. tel2sip usage - 1-7. is_uri_user_e164 usage - __________________________________________________________ + + 1.1. is_user usage + 1.2. has_totag usage + 1.3. uri_param usage + 1.4. uri_param usage + 1.5. add_uri_param usage + 1.6. tel2sip usage + 1.7. is_uri_user_e164 usage Chapter 1. User's Guide 1.1. Overview Various checks related to SIP URI. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules None. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters None. - __________________________________________________________ 1.4. Exported Functions -1.4.1. is_user(username) +1.4.1. is_user(username) Check if the username in credentials matches the given username. Meaning of the parameters is as follows: - * username - Username string. This function can be used from REQUEST_ROUTE. - Example 1-1. is_user usage + Example 1.1. is_user usage ... if (is_user("john")) { ... }; ... - __________________________________________________________ -1.4.2. has_totag() +1.4.2. has_totag() Check if To header field uri contains tag parameter. This function can be used from REQUEST_ROUTE. - Example 1-2. has_totag usage + Example 1.2. has_totag usage ... if (has_totag()) { ... }; ... - __________________________________________________________ -1.4.3. uri_param(param) +1.4.3. uri_param(param) Find if Request URI has a given parameter with no value Meaning of the parameters is as follows: - * param - parameter name to look for. This function can be used from REQUEST_ROUTE. - Example 1-3. uri_param usage + Example 1.3. uri_param usage ... if (uri_param("param1")) { ... }; ... - __________________________________________________________ -1.4.4. uri_param(param,value) +1.4.4. uri_param(param,value) Find if Request URI has a given parameter with matching value Meaning of the parameters is as follows: - * param - parameter name to look for. * value - parameter value to match. This function can be used from REQUEST_ROUTE. - Example 1-4. uri_param usage + Example 1.4. uri_param usage ... if (uri_param("param1","value1")) { ... }; ... - __________________________________________________________ -1.4.5. add_uri_param(param) +1.4.5. add_uri_param(param) Add to RURI a parameter (name=value); Meaning of the parameters is as follows: - * param - parameter to be appended in "name=value" format. This function can be used from REQUEST_ROUTE. - Example 1-5. add_uri_param usage + Example 1.5. add_uri_param usage ... add_uri_param("nat=yes"); ... - __________________________________________________________ -1.4.6. tel2sip() +1.4.6. tel2sip() Converts RURI, if it is tel URI, to SIP URI. Returns true, only if conversion succeeded or if no conversion was needed (like @@ -168,20 +162,19 @@ add_uri_param("nat=yes"); This function can be used from REQUEST_ROUTE. - Example 1-6. tel2sip usage + Example 1.6. tel2sip usage ... tel2sip(); ... - __________________________________________________________ -1.4.7. is_uri_user_e164(pseudo-variable) +1.4.7. is_uri_user_e164(pseudo-variable) Checks if userpart of URI stored in pseudo variable is E164 number. This function can be used from REQUEST_ROUTE and FAILURE_ROUTE. - Example 1-7. is_uri_user_e164 usage + Example 1.7. is_uri_user_e164 usage ... if (is_uri_user_e164("$fu")) { # Check From header URI user part ... @@ -191,3 +184,36 @@ if (is_uri_user_e164("$avp(i:705)") { ... }; ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/uri/doc/uri.sgml b/modules_k/uri/doc/uri.xml similarity index 69% rename from modules_k/uri/doc/uri.sgml rename to modules_k/uri/doc/uri.xml index 383648ce5..40ffee81d 100644 --- a/modules_k/uri/doc/uri.sgml +++ b/modules_k/uri/doc/uri.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -48,8 +50,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/uri/doc/uri_user.sgml b/modules_k/uri/doc/uri_admin.xml similarity index 100% rename from modules_k/uri/doc/uri_user.sgml rename to modules_k/uri/doc/uri_admin.xml diff --git a/modules_k/uri_db/README b/modules_k/uri_db/README index 2ce9f05f5..0ea99fc16 100644 --- a/modules_k/uri_db/README +++ b/modules_k/uri_db/README @@ -8,14 +8,20 @@ Edited by Jan Janak +Edited by + Bogdan-Andrei Iancu Copyright © 2003 FhG FOKUS Copyright © 2005 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -27,12 +33,15 @@ Bogdan-Andrei Iancu 1.3. Exported Parameters 1.3.1. db_url (string) - 1.3.2. db_table (string) - 1.3.3. user_column (string) - 1.3.4. domain_column (string) - 1.3.5. uriuser_column (string) - 1.3.6. use_uri_table (integer) - 1.3.7. use_domain (integer) + 1.3.2. uri_table (string) + 1.3.3. uri_user_column (string) + 1.3.4. uri_domain_column (string) + 1.3.5. uri_uriuser_column (string) + 1.3.6. subscriber_table (string) + 1.3.7. subscriber_user_column (string) + 1.3.8. subscriber_domain_column (string) + 1.3.9. use_uri_table (integer) + 1.3.10. use_domain (integer) 1.4. Exported Functions @@ -40,42 +49,42 @@ Bogdan-Andrei Iancu 1.4.2. check_from() 1.4.3. does_uri_exist() + 2. Frequently Asked Questions + List of Examples - 1-1. Set db_url parameter - 1-2. Set db_table parameter - 1-3. Set user_column parameter - 1-4. Set domain_column parameter - 1-5. Set uriuser_column parameter - 1-6. Set use_uri_table parameter - 1-7. Set use_domain parameter - 1-8. check_to usage - 1-9. check_from usage - 1-10. does_uri_exist usage - __________________________________________________________ + + 1.1. Set db_url parameter + 1.2. Set uri_table parameter + 1.3. Set uri_user_column parameter + 1.4. Set uri_domain_column parameter + 1.5. Set uri_uriuser_column parameter + 1.6. Set subscriber_table parameter + 1.7. Set subscriber_user_column parameter + 1.8. Set subscriber_domain_column parameter + 1.9. Set use_uri_table parameter + 1.10. Set use_domain parameter + 1.11. check_to usage + 1.12. check_from usage + 1.13. does_uri_exist usage Chapter 1. User's Guide 1.1. Overview Various checks related to SIP URI. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * a OpenSER database module . - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -88,77 +97,102 @@ Chapter 1. User's Guide Default value is "DEFAULT_RODB_URL". - Example 1-1. Set db_url parameter + Example 1.1. Set db_url parameter ... modparam("uri_db", "db_url", "mysql://username:password@localhost/opense r") ... - __________________________________________________________ -1.3.2. db_table (string) +1.3.2. uri_table (string) - The dbtable that should be used. Its possible to use the - "subscriber" and "uri" table. + Table containing list of allowed URIs for each user. - Default value is "subscriber". + Default value is "uri". - Example 1-2. Set db_table parameter + Example 1.2. Set uri_table parameter ... -modparam("uri_db", "db_table", "susbscriber") +modparam("uri_db", "uri_table", "uri") ... - __________________________________________________________ -1.3.3. user_column (string) +1.3.3. uri_user_column (string) - Column holding usernames in the table. + Column holding usernames in the URI table. Default value is "username". - Example 1-3. Set user_column parameter + Example 1.3. Set uri_user_column parameter ... -modparam("uri_db", "user_column", "username") +modparam("uri_db", "uri_user_column", "username") ... - __________________________________________________________ -1.3.4. domain_column (string) +1.3.4. uri_domain_column (string) - Column holding domain in the table. + Column holding domain in the URI table. Default value is "domain". - Example 1-4. Set domain_column parameter + Example 1.4. Set uri_domain_column parameter ... -modparam("uri_db", "domain_column", "domain") +modparam("uri_db", "uri_domain_column", "domain") ... - __________________________________________________________ -1.3.5. uriuser_column (string) +1.3.5. uri_uriuser_column (string) - Column holding URI username in the table. This colum is only - available in the uri table. + Column holding URI username in the URI table. Default value is "uri_user". - Example 1-5. Set uriuser_column parameter + Example 1.5. Set uri_uriuser_column parameter ... -modparam("uri_db", "uriuser_column", "uri_user") +modparam("uri_db", "uri_uriuser_column", "uri_user") +... + +1.3.6. subscriber_table (string) + + Name of the subscriber table. + + Default value is "subscriber". + + Example 1.6. Set subscriber_table parameter +... +modparam("uri_db", "subscriber_table", "subscriber") +... + +1.3.7. subscriber_user_column (string) + + Column holding username in subscriber table. + + Default value is "username". + + Example 1.7. Set subscriber_user_column parameter +... +modparam("uri_db", "subscriber_user_column", "username") +... + +1.3.8. subscriber_domain_column (string) + + Column holding domains in the subscriber table. + + Default value is "domain". + + Example 1.8. Set subscriber_domain_column parameter +... +modparam("uri_db", "subscriber_domain_column", "domain") ... - __________________________________________________________ -1.3.6. use_uri_table (integer) +1.3.9. use_uri_table (integer) Specify if the "uri" table should be used for checkings instead of "subscriber" table. A non-zero value means true. Default value is "0 (false)". - Example 1-6. Set use_uri_table parameter + Example 1.9. Set use_uri_table parameter ... modparam("uri_db", "use_uri_table", 1) ... - __________________________________________________________ -1.3.7. use_domain (integer) +1.3.10. use_domain (integer) Specify if the domain part of the URI should be used to identify the users (along with username). This is useful in @@ -170,45 +204,42 @@ modparam("uri_db", "use_uri_table", 1) Default value is "0 (false)". - Example 1-7. Set use_domain parameter + Example 1.10. Set use_domain parameter ... modparam("uri_db", "use_domain", 1) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. check_to() +1.4.1. check_to() Check To username against URI table (if use_uri_table is set) or digest credentials (no DB backend required). This function can be used from REQUEST_ROUTE. - Example 1-8. check_to usage + Example 1.11. check_to usage ... if (check_to()) { ... }; ... - __________________________________________________________ -1.4.2. check_from() +1.4.2. check_from() Check From username against URI table (if use_uri_table is set) or digest credentials (no DB backend required). This function can be used from REQUEST_ROUTE. - Example 1-9. check_from usage + Example 1.12. check_from usage ... if (check_from()) { ... }; ... - __________________________________________________________ -1.4.3. does_uri_exist() +1.4.3. does_uri_exist() Check if username in the request URI belongs to an existing user. @@ -218,9 +249,42 @@ if (check_from()) { This function can be used from REQUEST_ROUTE. - Example 1-10. does_uri_exist usage + Example 1.13. does_uri_exist usage ... if (does_uri_exist()) { ... }; ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/uri_db/doc/uri_db.sgml b/modules_k/uri_db/doc/uri_db.xml similarity index 68% rename from modules_k/uri_db/doc/uri_db.sgml rename to modules_k/uri_db/doc/uri_db.xml index 83b0e9084..ff1774f61 100644 --- a/modules_k/uri_db/doc/uri_db.sgml +++ b/modules_k/uri_db/doc/uri_db.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -48,8 +50,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/uri_db/doc/uri_db_user.sgml b/modules_k/uri_db/doc/uri_db_admin.xml similarity index 69% rename from modules_k/uri_db/doc/uri_db_user.sgml rename to modules_k/uri_db/doc/uri_db_admin.xml index 34ae82bc0..d2b2dc0f7 100644 --- a/modules_k/uri_db/doc/uri_db_user.sgml +++ b/modules_k/uri_db/doc/uri_db_admin.xml @@ -66,30 +66,29 @@ modparam("uri_db", "db_url", "mysql://username:password@localhost/openser")
- <varname>db_table</varname> (string) + <varname>uri_table</varname> (string) - The dbtable that should be used. Its possible to use the - subscriber and uri table. + Table containing list of allowed &uri;s for each user. - Default value is subscriber. + Default value is uri. - Set <varname>db_table</varname> parameter + Set <varname>uri_table</varname> parameter ... -modparam("uri_db", "db_table", "susbscriber") +modparam("uri_db", "uri_table", "uri") ...
- <varname>user_column</varname> (string) + <varname>uri_user_column</varname> (string) - Column holding usernames in the table. + Column holding usernames in the &uri; table. @@ -97,19 +96,19 @@ modparam("uri_db", "db_table", "susbscriber") - Set <varname>user_column</varname> parameter + Set <varname>uri_user_column</varname> parameter ... -modparam("uri_db", "user_column", "username") +modparam("uri_db", "uri_user_column", "username") ...
- <varname>domain_column</varname> (string) + <varname>uri_domain_column</varname> (string) - Column holding domain in the table. + Column holding domain in the &uri; table. @@ -117,20 +116,19 @@ modparam("uri_db", "user_column", "username") - Set <varname>domain_column</varname> parameter + Set <varname>uri_domain_column</varname> parameter ... -modparam("uri_db", "domain_column", "domain") +modparam("uri_db", "uri_domain_column", "domain") ...
- <varname>uriuser_column</varname> (string) + <varname>uri_uriuser_column</varname> (string) - Column holding &uri; username in the table. This colum is only - available in the uri table. + Column holding &uri; username in the &uri; table. @@ -138,15 +136,75 @@ modparam("uri_db", "domain_column", "domain") - Set <varname>uriuser_column</varname> parameter + Set <varname>uri_uriuser_column</varname> parameter ... -modparam("uri_db", "uriuser_column", "uri_user") +modparam("uri_db", "uri_uriuser_column", "uri_user") ...
- + +
+ <varname>subscriber_table</varname> (string) + + Name of the subscriber table. + + + + Default value is subscriber. + + + + Set <varname>subscriber_table</varname> parameter + +... +modparam("uri_db", "subscriber_table", "subscriber") +... + + +
+ +
+ <varname>subscriber_user_column</varname> (string) + + Column holding username in subscriber table. + + + + Default value is username. + + + + Set <varname>subscriber_user_column</varname> parameter + +... +modparam("uri_db", "subscriber_user_column", "username") +... + + +
+ +
+ <varname>subscriber_domain_column</varname> (string) + + Column holding domains in the subscriber table. + + + + Default value is domain. + + + + Set <varname>subscriber_domain_column</varname> parameter + +... +modparam("uri_db", "subscriber_domain_column", "domain") +... + + +
+
<varname>use_uri_table</varname> (integer) diff --git a/modules_k/uri_radius/README b/modules_k/uri_radius/README index 81dbbf1f7..47cf04015 100644 --- a/modules_k/uri_radius/README +++ b/modules_k/uri_radius/README @@ -9,9 +9,13 @@ Edited by Juha Heinanen Copyright © 2003-2008 Juha Heinanen + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -30,19 +34,20 @@ Juha Heinanen 1.4.1. radius_does_uri_exist() + 2. Frequently Asked Questions + List of Examples - 1-1. Set param_name parameter - 1-2. Set service_type parameter - 1-3. Set use_sip_uri_host parameter - 1-4. radius_does_uri_exist usage - __________________________________________________________ + + 1.1. Set param_name parameter + 1.2. Set service_type parameter + 1.3. Set use_sip_uri_host parameter + 1.4. radius_does_uri_exist usage Chapter 1. User's Guide 1.1. Overview URI check using Radius server. - __________________________________________________________ 1.2. Dependencies @@ -50,19 +55,15 @@ Chapter 1. User's Guide The module depends on the following modules (in the other words the listed modules must be loaded before this module): - * none - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before compilling OpenSER with this module loaded: - * radiusclient-ng 0.5.0 or higher -- library and development files. See http://developer.berlios.de/projects/radiusclient-ng/. - __________________________________________________________ 1.3. Exported Parameters @@ -73,11 +74,10 @@ Chapter 1. User's Guide Default value is "/usr/local/etc/radiusclient-ng/radiusclient.conf". - Example 1-1. Set param_name parameter + Example 1.1. Set param_name parameter ... modparam("uri_radius", "radius_config", "/etc/radiusclient.conf") ... - __________________________________________________________ 1.3.2. service_type (integer) @@ -85,11 +85,10 @@ modparam("uri_radius", "radius_config", "/etc/radiusclient.conf") Default value is 10 (Call-Check). - Example 1-2. Set service_type parameter + Example 1.2. Set service_type parameter ... modparam("uri_radius", "service_type", 11) ... - __________________________________________________________ 1.3.3. use_sip_uri_host (integer) @@ -100,30 +99,61 @@ modparam("uri_radius", "service_type", 11) Default value is 0. - Example 1-3. Set use_sip_uri_host parameter + Example 1.3. Set use_sip_uri_host parameter ... modparam("uri_radius", "use_sip_uri_host", 1) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. radius_does_uri_exist() +1.4.1. radius_does_uri_exist() Checks from Radius if user@host in Request-URI is a local user. Can be used to decide if 404 or 480 should be returned after lookup has failed. Adds SIP-AVP reply items, that must have a string value of form: - * value = SIP_AVP_NAME SIP_AVP_VALUE * SIP_AVP_NAME = STRING_NAME | '#'ID_NUMBER * SIP_AVP_VALUE = ':'STRING_VALUE | '#'NUMBER_VALUE This function can be used from REQUEST_ROUTE. - Example 1-4. radius_does_uri_exist usage + Example 1.4. radius_does_uri_exist usage ... if (radius_does_uri_exist()) { ... }; ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/uri_radius/doc/uri_radius.sgml b/modules_k/uri_radius/doc/uri_radius.xml similarity index 64% rename from modules_k/uri_radius/doc/uri_radius.sgml rename to modules_k/uri_radius/doc/uri_radius.xml index 52b8daa71..ad2ed2145 100644 --- a/modules_k/uri_radius/doc/uri_radius.sgml +++ b/modules_k/uri_radius/doc/uri_radius.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -37,8 +39,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/uri_radius/doc/uri_radius_user.sgml b/modules_k/uri_radius/doc/uri_radius_admin.xml similarity index 99% rename from modules_k/uri_radius/doc/uri_radius_user.sgml rename to modules_k/uri_radius/doc/uri_radius_admin.xml index 759edfc51..76b1331e6 100644 --- a/modules_k/uri_radius/doc/uri_radius_user.sgml +++ b/modules_k/uri_radius/doc/uri_radius_admin.xml @@ -28,6 +28,7 @@ The following libraries or applications must be installed before compilling &ser; with this module loaded: + radiusclient-ng 0.5.0 or higher -- diff --git a/modules_k/userblacklist/README b/modules_k/userblacklist/README index 7728131f8..984897d31 100644 --- a/modules_k/userblacklist/README +++ b/modules_k/userblacklist/README @@ -8,10 +8,17 @@ Edited by Henning Westerholt + 1&1 Internet AG + + Copyright © 2008 1&1 Internet AG + Revision History + Revision $Revision: 2 $ $Date: 2005-06-13 18:47:24 +0200 (Mo, + 13 Jun 2005) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -37,20 +44,22 @@ Henning Westerholt 1.5.1. reload_blacklist - 1.6. Installation & Running + 1.6. Installation and Running 1.6.1. Database setup + 2. Frequently Asked Questions + List of Examples - 1-1. Set db_url parameter - 1-2. Set db_table parameter - 1-3. Set use_domain parameter - 1-4. check_user_blacklist usage - 1-5. check_blacklist usage - 1-6. reload_blacklists usage - 1-7. Example database content - globalblacklist table - 1-8. Example database content - userblacklist table - __________________________________________________________ + + 1.1. Set db_url parameter + 1.2. Set db_table parameter + 1.3. Set use_domain parameter + 1.4. check_user_blacklist usage + 1.5. check_blacklist usage + 1.6. reload_blacklists usage + 1.7. Example database content - globalblacklist table + 1.8. Example database content - userblacklist table Chapter 1. User's Guide @@ -76,7 +85,6 @@ Chapter 1. User's Guide check_user_blacklist for usage in the config file. Furthermore its provide a FIFO function to reload the global blacklist cache. - __________________________________________________________ 1.2. Dependencies @@ -84,17 +92,13 @@ Chapter 1. User's Guide The module depends on the following modules (in the other words the listed modules must be loaded before this module): - * database -- Any database module - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * none - __________________________________________________________ 1.3. Exported Parameters @@ -105,12 +109,11 @@ Chapter 1. User's Guide Default value is "mysql://openserro:openserro@localhost/openser". - Example 1-1. Set db_url parameter + Example 1.1. Set db_url parameter ... modparam("userblacklist", "db_url", "dbdriver://username:password@dbhost /dbname") ... - __________________________________________________________ 1.3.2. db_table (string) @@ -118,11 +121,10 @@ modparam("userblacklist", "db_url", "dbdriver://username:password@dbhost Default value is "userblacklist". - Example 1-2. Set db_table parameter + Example 1.2. Set db_table parameter ... modparam("userblacklist", "db_table", "userblacklist") ... - __________________________________________________________ 1.3.3. use_domain (integer) @@ -131,15 +133,14 @@ modparam("userblacklist", "db_table", "userblacklist") Default value is "0". - Example 1-3. Set use_domain parameter + Example 1.3. Set use_domain parameter ... modparam("userblacklist", "use_domain", 0) ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. check_user_blacklist (string user, string domain) +1.4.1. check_user_blacklist (string user, string domain) Finds the longest prefix that matches the request URI for the given user and domain name in the database. If a match is found @@ -147,7 +148,7 @@ modparam("userblacklist", "use_domain", 0) true is returned. Pseudo-variables or AVPs can be used for both parameters. - Example 1-4. check_user_blacklist usage + Example 1.4. check_user_blacklist usage ... $avp(i:80) = $rU; # rewrite the R-URI @@ -156,38 +157,35 @@ if (!check_user_blacklist("$avp(i:80)", "$avp(i:82)")) exit; } ... - __________________________________________________________ -1.4.2. check_blacklist (string table) +1.4.2. check_blacklist (string table) Finds the longest prefix that matches the request URI for the given table. If a match is found and it is not set to whitelist, false is returned. Otherwise, true is returned. - Example 1-5. check_blacklist usage + Example 1.5. check_blacklist usage ... if (!check_blacklist("global_blacklist"))) sl_send_reply("403", "Forbidden"); exit; } ... - __________________________________________________________ 1.5. MI Commands -1.5.1. reload_blacklist +1.5.1. reload_blacklist Reload the internal global blacklist cache. This is necessary after the database tables for the global blacklist have been changed. - Example 1-6. reload_blacklists usage + Example 1.6. reload_blacklists usage ... openserctl fifo reload_blacklist ... - __________________________________________________________ -1.6. Installation & Running +1.6. Installation and Running 1.6.1. Database setup @@ -203,7 +201,7 @@ openserctl fifo reload_blacklist complete database documentation on the project webpage, http://www.openser.org/docs/db-tables/openser-db-devel.html. - Example 1-7. Example database content - globalblacklist table + Example 1.7. Example database content - globalblacklist table ... +----+-----------+-----------+ | id | prefix | whitelist | @@ -220,7 +218,7 @@ openserctl fifo reload_blacklist "123456" and "123455787" are also blacklisted, because the longest prefix will be matched. - Example 1-8. Example database content - userblacklist table + Example 1.8. Example database content - userblacklist table ... +----+----------------+-------------+-----------+-----------+ | id | username | domain | prefix | whitelist | @@ -240,3 +238,36 @@ openserctl fifo reload_blacklist "1234" will be not allowed, but the number "123456788" is allowed. Additionally a domain could be specified that is used for username matching if the "use_domain" parameter is set. + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/userblacklist/doc/userblacklist.sgml b/modules_k/userblacklist/doc/userblacklist.xml similarity index 71% rename from modules_k/userblacklist/doc/userblacklist.sgml rename to modules_k/userblacklist/doc/userblacklist.xml index 0dd3d6424..a684e1021 100644 --- a/modules_k/userblacklist/doc/userblacklist.sgml +++ b/modules_k/userblacklist/doc/userblacklist.xml @@ -1,10 +1,12 @@ - + - + + - + %docentities; ]> diff --git a/modules_k/userblacklist/doc/userblacklist_user.sgml b/modules_k/userblacklist/doc/userblacklist_admin.xml similarity index 98% rename from modules_k/userblacklist/doc/userblacklist_user.sgml rename to modules_k/userblacklist/doc/userblacklist_admin.xml index a23671be5..efd946f0f 100644 --- a/modules_k/userblacklist/doc/userblacklist_user.sgml +++ b/modules_k/userblacklist/doc/userblacklist_admin.xml @@ -35,18 +35,19 @@ The module depends on the following modules (in the other words the listed modules must be loaded before this module): + database -- Any database module -
External Libraries or Applications The following libraries or applications must be installed before running &ser; with this module loaded: + none @@ -188,7 +189,7 @@ openserctl fifo reload_blacklist
- Installation & Running + Installation and Running
Database setup @@ -252,4 +253,6 @@ openserctl fifo reload_blacklist could be specified that is used for username matching if the use_domain parameter is set. -
\ No newline at end of file +
+ + diff --git a/modules_k/usrloc/README b/modules_k/usrloc/README index 8c6f5f3fb..28e26f564 100644 --- a/modules_k/usrloc/README +++ b/modules_k/usrloc/README @@ -8,14 +8,20 @@ Edited by Jan Janak +Edited by + Bogdan-Andrei Iancu Copyright © 2003 FhG FOKUS Copyright © 2005 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -95,32 +101,34 @@ Bogdan-Andrei Iancu 2.1.14. ul_register_ulcb(type ,callback, param) 2.1.15. ul_get_num_users() + 3. Frequently Asked Questions + List of Examples - 1-1. Set nat_bflag parameter - 1-2. Set user_column parameter - 1-3. Set user_column parameter - 1-4. Set contact_column parameter - 1-5. Set expires_column parameter - 1-6. Set q_column parameter - 1-7. Set callid_column parameter - 1-8. Set cseq_column parameter - 1-9. Set methods_column parameter - 1-10. Set flags_column parameter - 1-11. Set cflags_column parameter - 1-12. Set user_agent_column parameter - 1-13. Set received_column parameter - 1-14. Set socket_column parameter - 1-15. Set path_column parameter - 1-16. Set use_domain parameter - 1-17. Set desc_time_order parameter - 1-18. Set timer_interval parameter - 1-19. Set db_url parameter - 1-20. Set db_mode parameter - 1-21. Set matching_mode parameter - 1-22. Set cseq_delay parameter - 1-23. Set fetch_rows parameter - 1-24. Set hash_size parameter - __________________________________________________________ + + 1.1. Set nat_bflag parameter + 1.2. Set user_column parameter + 1.3. Set user_column parameter + 1.4. Set contact_column parameter + 1.5. Set expires_column parameter + 1.6. Set q_column parameter + 1.7. Set callid_column parameter + 1.8. Set cseq_column parameter + 1.9. Set methods_column parameter + 1.10. Set flags_column parameter + 1.11. Set cflags_column parameter + 1.12. Set user_agent_column parameter + 1.13. Set received_column parameter + 1.14. Set socket_column parameter + 1.15. Set path_column parameter + 1.16. Set use_domain parameter + 1.17. Set desc_time_order parameter + 1.18. Set timer_interval parameter + 1.19. Set db_url parameter + 1.20. Set db_mode parameter + 1.21. Set matching_mode parameter + 1.22. Set cseq_delay parameter + 1.23. Set fetch_rows parameter + 1.24. Set hash_size parameter Chapter 1. User's Guide @@ -129,7 +137,6 @@ Chapter 1. User's Guide User location module. The module keeps a user location table and provides access to the table to other modules. The module exports no functions that could be used directly from scripts. - __________________________________________________________ 1.1.1. Contact matching @@ -147,7 +154,6 @@ Chapter 1. User's Guide otherwise invalid). But as argumented above, this is not enough in NAT traversal context, so the OpenSER implementation of contact machting offers more algorithms: - * contact based only - it strict RFC 3261 compiancy - the contact is matched as string and extra checked via callid and cseg (if callid is the same, it must have a higher cseq @@ -158,25 +164,21 @@ Chapter 1. User's Guide how you deal with REGISTER retransmissions in this case. How to control/select the contact maching algorithm, please see - the module parameter matching_mode at Section 1.3.21. - __________________________________________________________ + the module parameter matching_mode at Section 1.3.21, + "matching_mode (integer)". 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * Optionally a database module. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.3. Exported Parameters @@ -189,11 +191,10 @@ Chapter 1. User's Guide Default value is "not set". - Example 1-1. Set nat_bflag parameter + Example 1.1. Set nat_bflag parameter ... modparam("usrloc", "nat_bflag", 3) ... - __________________________________________________________ 1.3.2. user_column (string) @@ -201,11 +202,10 @@ modparam("usrloc", "nat_bflag", 3) Default value is "username". - Example 1-2. Set user_column parameter + Example 1.2. Set user_column parameter ... modparam("usrloc", "user_column", "username") ... - __________________________________________________________ 1.3.3. domain_column (string) @@ -213,11 +213,10 @@ modparam("usrloc", "user_column", "username") Default value is "domain". - Example 1-3. Set user_column parameter + Example 1.3. Set user_column parameter ... modparam("usrloc", "domain_column", "domain") ... - __________________________________________________________ 1.3.4. contact_column (string) @@ -225,11 +224,10 @@ modparam("usrloc", "domain_column", "domain") Default value is "contact". - Example 1-4. Set contact_column parameter + Example 1.4. Set contact_column parameter ... modparam("usrloc", "contact_column", "contact") ... - __________________________________________________________ 1.3.5. expires_column (string) @@ -237,11 +235,10 @@ modparam("usrloc", "contact_column", "contact") Default value is "expires". - Example 1-5. Set expires_column parameter + Example 1.5. Set expires_column parameter ... modparam("usrloc", "expires_column", "expires") ... - __________________________________________________________ 1.3.6. q_column (string) @@ -249,11 +246,10 @@ modparam("usrloc", "expires_column", "expires") Default value is "q". - Example 1-6. Set q_column parameter + Example 1.6. Set q_column parameter ... modparam("usrloc", "q_column", "q") ... - __________________________________________________________ 1.3.7. callid_column (string) @@ -261,11 +257,10 @@ modparam("usrloc", "q_column", "q") Default value is "callid". - Example 1-7. Set callid_column parameter + Example 1.7. Set callid_column parameter ... modparam("usrloc", "callid_column", "callid") ... - __________________________________________________________ 1.3.8. cseq_column (string) @@ -273,11 +268,10 @@ modparam("usrloc", "callid_column", "callid") Default value is "cseq". - Example 1-8. Set cseq_column parameter + Example 1.8. Set cseq_column parameter ... modparam("usrloc", "cseq_column", "cseq") ... - __________________________________________________________ 1.3.9. methods_column (string) @@ -285,11 +279,10 @@ modparam("usrloc", "cseq_column", "cseq") Default value is "methods". - Example 1-9. Set methods_column parameter + Example 1.9. Set methods_column parameter ... modparam("usrloc", "methods_column", "methods") ... - __________________________________________________________ 1.3.10. flags_column (string) @@ -297,11 +290,10 @@ modparam("usrloc", "methods_column", "methods") Default value is "flags". - Example 1-10. Set flags_column parameter + Example 1.10. Set flags_column parameter ... modparam("usrloc", "flags_column", "flags") ... - __________________________________________________________ 1.3.11. cflags_column (string) @@ -309,11 +301,10 @@ modparam("usrloc", "flags_column", "flags") Default value is "cflags". - Example 1-11. Set cflags_column parameter + Example 1.11. Set cflags_column parameter ... modparam("usrloc", "cflags_column", "cflags") ... - __________________________________________________________ 1.3.12. user_agent_column (string) @@ -321,11 +312,10 @@ modparam("usrloc", "cflags_column", "cflags") Default value is "user_agent". - Example 1-12. Set user_agent_column parameter + Example 1.12. Set user_agent_column parameter ... modparam("usrloc", "user_agent_column", "user_agent") ... - __________________________________________________________ 1.3.13. received_column (string) @@ -334,11 +324,10 @@ modparam("usrloc", "user_agent_column", "user_agent") Default value is "received". - Example 1-13. Set received_column parameter + Example 1.13. Set received_column parameter ... modparam("usrloc", "received_column", "received") ... - __________________________________________________________ 1.3.14. socket_column (string) @@ -347,11 +336,10 @@ modparam("usrloc", "received_column", "received") Default value is "socket". - Example 1-14. Set socket_column parameter + Example 1.14. Set socket_column parameter ... modparam("usrloc", "socket_column", "socket") ... - __________________________________________________________ 1.3.15. path_column (string) @@ -359,11 +347,10 @@ modparam("usrloc", "socket_column", "socket") Default value is "path". - Example 1-15. Set path_column parameter + Example 1.15. Set path_column parameter ... modparam("usrloc", "path_column", "path") ... - __________________________________________________________ 1.3.16. use_domain (integer) @@ -373,11 +360,10 @@ modparam("usrloc", "path_column", "path") Default value is "0 (false)". - Example 1-16. Set use_domain parameter + Example 1.16. Set use_domain parameter ... modparam("usrloc", "use_domain", 1) ... - __________________________________________________________ 1.3.17. desc_time_order (integer) @@ -387,11 +373,10 @@ modparam("usrloc", "use_domain", 1) Default value is "0 (false)". - Example 1-17. Set desc_time_order parameter + Example 1.17. Set desc_time_order parameter ... modparam("usrloc", "desc_time_order", 1) ... - __________________________________________________________ 1.3.18. timer_interval (integer) @@ -401,11 +386,10 @@ modparam("usrloc", "desc_time_order", 1) Default value is 60. - Example 1-18. Set timer_interval parameter + Example 1.18. Set timer_interval parameter ... modparam("usrloc", "timer_interval", 120) ... - __________________________________________________________ 1.3.19. db_url (string) @@ -413,12 +397,11 @@ modparam("usrloc", "timer_interval", 120) Default value is "mysql://openser:openserrw@localhost/openser". - Example 1-19. Set db_url parameter + Example 1.19. Set db_url parameter ... modparam("usrloc", "db_url", "dbdriver://username:password@dbhost/dbname ") ... - __________________________________________________________ 1.3.20. db_mode (integer) @@ -427,7 +410,6 @@ modparam("usrloc", "db_url", "dbdriver://username:password@dbhost/dbname machine restarts or SW crashes. The disadvantage is that accessing database can be very time consuming. Therefore, usrloc module implements four database accessing modes: - * 0 - This disables database completely. Only memory will be used. Contacts will not survive restart. Use this value if you need a really fast usrloc and contact persistence is @@ -457,37 +439,35 @@ modparam("usrloc", "db_url", "dbdriver://username:password@dbhost/dbname contact are loaded from the DB; The lack of memory caching also disable the statistics exports. - Warning +Warning - In case of crash or restart contacts that are in memory only - and haven't been flushed yet will get lost. If you want - minimize the risk, use shorter timer interval. + In case of crash or restart contacts that are in memory only + and haven't been flushed yet will get lost. If you want + minimize the risk, use shorter timer interval. Default value is 0. - Example 1-20. Set db_mode parameter + Example 1.20. Set db_mode parameter ... modparam("usrloc", "db_mode", 2) ... - __________________________________________________________ 1.3.21. matching_mode (integer) What contact matching algorithm to be used. Refer to section - Section 1.1.1 for the description of the algorithms. + Section 1.1.1, "Contact matching" for the description of the + algorithms. The parameter may take the following values: - * 0 - CONTACT ONLY based matching algorithm. * 1 - CONTACT and CALLID based matching algorithm. Default value is 0 (CONTACT_ONLY). - Example 1-21. Set matching_mode parameter + Example 1.21. Set matching_mode parameter ... modparam("usrloc", "matching_mode", 1) ... - __________________________________________________________ 1.3.22. cseq_delay (integer) @@ -504,11 +484,10 @@ modparam("usrloc", "matching_mode", 1) Default value is "20 seconds". - Example 1-22. Set cseq_delay parameter + Example 1.22. Set cseq_delay parameter ... modparam("usrloc", "cseq_delay", 5) ... - __________________________________________________________ 1.3.23. fetch_rows (integer) @@ -520,11 +499,10 @@ modparam("usrloc", "cseq_delay", 5) Default value is "2000". - Example 1-23. Set fetch_rows parameter + Example 1.23. Set fetch_rows parameter ... modparam("usrloc", "fetch_rows", 3000) ... - __________________________________________________________ 1.3.24. hash_size (integer) @@ -534,66 +512,56 @@ modparam("usrloc", "fetch_rows", 3000) Default value is "9". - Example 1-24. Set hash_size parameter + Example 1.24. Set hash_size parameter ... modparam("usrloc", "hash_size", 10) ... - __________________________________________________________ 1.4. Exported Functions There are no exported functions that could be used in scripts. - __________________________________________________________ 1.5. Exported MI Functions -1.5.1. ul_rm +1.5.1. ul_rm Deletes an entire AOR record (including its contacts). Parameters: - * table name - table where the AOR is removed from (Ex: location). * AOR - user AOR in username[@domain] format (domain must be supplied only if use_domain option is on). - __________________________________________________________ -1.5.2. ul_rm_contact +1.5.2. ul_rm_contact Deletes a contact from an AOR record. Parameters: - * table name - table where the AOR is removed from (Ex: location). * AOR - user AOR in username[@domain] format (domain must be supplied only if use_domain option is on). * contact - exact contact to be removed - __________________________________________________________ -1.5.3. ul_dump +1.5.3. ul_dump Dumps the entire content of the USRLOC in memory cache Parameters: - * brief - (optional, may not be present); if equals to string "brief", a brief dump will be done (only AOR and contacts, with no other details) - __________________________________________________________ -1.5.4. ul_flush +1.5.4. ul_flush Triggers the flush of USRLOC memory cache into DB. - __________________________________________________________ -1.5.5. ul_add +1.5.5. ul_add Adds a new contact for an user AOR. Parameters: - * table name - table where the contact will be added (Ex: location). * AOR - user AOR in username[@domain] format (domain must be @@ -605,56 +573,48 @@ modparam("usrloc", "hash_size", 10) * flags - internal USRLOC flags of the contact * cflags - per branch flags of the contact * methods - mask with supported requests of the contact - __________________________________________________________ -1.5.6. ul_show_contact +1.5.6. ul_show_contact Dumps the contacts of an user AOR. Parameters: - * table name - table where the AOR resides (Ex: location). * AOR - user AOR in username[@domain] format (domain must be supplied only if use_domain option is on). - __________________________________________________________ 1.6. Exported statistics Exported statistics are listed in the next sections. - __________________________________________________________ 1.6.1. users Number of AOR existing in the USRLOC memory cache for that domain - can not be resetted; this statistic will be register for each used domain (Ex: location). - __________________________________________________________ 1.6.2. contacts Number of contacts existing in the USRLOC memory cache for that domain - can not be resetted; this statistic will be register for each used domain (Ex: location). - __________________________________________________________ 1.6.3. expires Total number of expired contacts for that domain - can be resetted; this statistic will be register for each used domain (Ex: location). - __________________________________________________________ 1.6.4. registered_users Total number of AOR existing in the USRLOC memory cache for all domains - can not be resetted. - __________________________________________________________ Chapter 2. Developer's Guide 2.1. Available Functions -2.1.1. ul_register_domain(name) +2.1.1. ul_register_domain(name) The function registers a new domain. Domain is just another name for table used in registrar. The function is called from @@ -667,19 +627,16 @@ Chapter 2. Developer's Guide registrar. Meaning of the parameters is as follows: - * const char* name - Name of the domain (also called table) to be registered. - __________________________________________________________ -2.1.2. ul_insert_urecord(domain, aor, rec) +2.1.2. ul_insert_urecord(domain, aor, rec) The function creates a new record structure and inserts it in the specified domain. The record is structure that contains all the contacts for belonging to the specified username. Meaning of the parameters is as follows: - * udomain_t* domain - Pointer to domain returned by ul_register_udomain. @@ -688,36 +645,31 @@ Chapter 2. Developer's Guide yet). * urecord_t** rec - The newly created record structure. - __________________________________________________________ -2.1.3. ul_delete_urecord(domain, aor) +2.1.3. ul_delete_urecord(domain, aor) The function deletes all the contacts bound with the given Address Of Record. Meaning of the parameters is as follows: - * udomain_t* domain - Pointer to domain returned by ul_register_udomain. * str* aor - Address of record (aka username) of the record, that should be deleted. - __________________________________________________________ -2.1.4. ul_get_urecord(domain, aor) +2.1.4. ul_get_urecord(domain, aor) The function returns pointer to record with given Address of Record. Meaning of the parameters is as follows: - * udomain_t* domain - Pointer to domain returned by ul_register_udomain. * str* aor - Address of Record of request record. - __________________________________________________________ -2.1.5. ul_lock_udomain(domain) +2.1.5. ul_lock_udomain(domain) The function lock the specified domain, it means, that no other processes will be able to access during the time. This prevents @@ -726,38 +678,31 @@ Chapter 2. Developer's Guide simultaneously, they don't block each other. Meaning of the parameters is as follows: - * udomain_t* domain - Domain to be locked. - __________________________________________________________ -2.1.6. ul_unlock_udomain(domain) +2.1.6. ul_unlock_udomain(domain) Unlock the specified domain previously locked by ul_lock_udomain. Meaning of the parameters is as follows: - * udomain_t* domain - Domain to be unlocked. - __________________________________________________________ -2.1.7. ul_release_urecord(record) +2.1.7. ul_release_urecord(record) Do some sanity checks - if all contacts have been removed, delete the entire record structure. Meaning of the parameters is as follows: - * urecord_t* record - Record to be released. - __________________________________________________________ -2.1.8. ul_insert_ucontact(record, contact, expires, q, callid, cseq, +2.1.8. ul_insert_ucontact(record, contact, expires, q, callid, cseq, flags, cont, ua, sock) The function inserts a new contact in the given record with specified parameters. Meaning of the parameters is as follows: - * urecord_t* record - Record in which the contact should be inserted. * str* contact - Contact URI. @@ -773,33 +718,28 @@ flags, cont, ua, sock) the contact. * struct socket_info *sock - socket on which the REGISTER message was received on. - __________________________________________________________ -2.1.9. ul_delete_ucontact (record, contact) +2.1.9. ul_delete_ucontact (record, contact) The function deletes given contact from record. Meaning of the parameters is as follows: - * urecord_t* record - Record from which the contact should be removed. * ucontact_t* contact - Contact to be deleted. - __________________________________________________________ -2.1.10. ul_get_ucontact(record, contact) +2.1.10. ul_get_ucontact(record, contact) The function tries to find contact with given Contact URI and returns pointer to structure representing the contact. Meaning of the parameters is as follows: - * urecord_t* record - Record to be searched for the contact. * str_t* contact - URI of the request contact. - __________________________________________________________ -2.1.11. ul_get_all_ucontacts (buf, len, flags) +2.1.11. ul_get_all_ucontacts (buf, len, flags) The function retrieves all contacts of all registered users and returns them in the caller-supplied buffer. If the buffer is @@ -815,21 +755,18 @@ flags, cont, ua, sock) example, possible to list only contacts that are behind NAT. Meaning of the parameters is as follows: - * void* buf - Buffer for returning contacts. * int len - Length of the buffer. * unsigned int flags - Flags that must be set. - __________________________________________________________ -2.1.12. ul_update_ucontact(contact, expires, q, callid, cseq, set, +2.1.12. ul_update_ucontact(contact, expires, q, callid, cseq, set, res, ua, sock) The function updates contact with new values. Meaning of the parameters is as follows: - * ucontact_t* contact - Contact URI. * time_t expires - Expires of the contact in absolute value. * float q - q value of the contact. @@ -843,9 +780,8 @@ res, ua, sock) the contact. * struct socket_info *sock - socket on which the REGISTER message was received on. - __________________________________________________________ -2.1.13. ul_bind_ursloc( api ) +2.1.13. ul_bind_ursloc( api ) The function imports all functions that are exported by the USRLOC module. Overs for other modules which want to user the @@ -853,26 +789,55 @@ res, ua, sock) functions. Meaning of the parameters is as follows: - * usrloc_api_t* api - USRLOC API - __________________________________________________________ -2.1.14. ul_register_ulcb(type ,callback, param) +2.1.14. ul_register_ulcb(type ,callback, param) The function register with USRLOC a callback function to be called when some event occures inside USRLOC. Meaning of the parameters is as follows: - * int types - type of event for which the callback should be called (see usrloc/ul_callback.h). * ul_cb f - callback function; see usrloc/ul_callback.h for prototype. * void *param - some parameter to be passed to the callback each time when it is called. - __________________________________________________________ -2.1.15. ul_get_num_users() +2.1.15. ul_get_num_users() The function loops through all domains summing up the number of users. + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/usrloc/doc/usrloc.sgml b/modules_k/usrloc/doc/usrloc.xml similarity index 67% rename from modules_k/usrloc/doc/usrloc.sgml rename to modules_k/usrloc/doc/usrloc.xml index 923538b2a..848f58041 100644 --- a/modules_k/usrloc/doc/usrloc.sgml +++ b/modules_k/usrloc/doc/usrloc.xml @@ -1,12 +1,14 @@ - + - - + + + - + %docentities; ]> @@ -49,8 +51,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/usrloc/doc/usrloc_user.sgml b/modules_k/usrloc/doc/usrloc_admin.xml similarity index 99% rename from modules_k/usrloc/doc/usrloc_user.sgml rename to modules_k/usrloc/doc/usrloc_admin.xml index dc5c138fd..3ae49734e 100644 --- a/modules_k/usrloc/doc/usrloc_user.sgml +++ b/modules_k/usrloc/doc/usrloc_admin.xml @@ -49,7 +49,7 @@
How to control/select the contact maching algorithm, please see the - module parameter matching_mode at . + module parameter matching_mode at . @@ -556,7 +556,7 @@ modparam("usrloc", "db_mode", 2) <varname>matching_mode</varname> (integer) What contact matching algorithm to be used. Refer to section - for the description of the + for the description of the algorithms. diff --git a/modules_k/usrloc/doc/usrloc_devel.sgml b/modules_k/usrloc/doc/usrloc_devel.xml similarity index 99% rename from modules_k/usrloc/doc/usrloc_devel.sgml rename to modules_k/usrloc/doc/usrloc_devel.xml index a99a34070..cd4e55cac 100644 --- a/modules_k/usrloc/doc/usrloc_devel.sgml +++ b/modules_k/usrloc/doc/usrloc_devel.xml @@ -368,7 +368,6 @@
- str* ua - User-Agent of the REGISTER message that contained the contact. diff --git a/modules_k/xcap_client/README b/modules_k/xcap_client/README index 57ee8c5ad..2f69b6757 100644 --- a/modules_k/xcap_client/README +++ b/modules_k/xcap_client/README @@ -9,9 +9,13 @@ Edited by Anca-Maria Vamanu Copyright © 2007 voice-system.ro + Revision History + Revision $Revision: 1499 $ $Date: 2007-01-12 14:05:57 +0200 + (Fri, 12 Jan 2007) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -26,8 +30,11 @@ Anca-Maria Vamanu 1.3.2. xcap_table(str) 1.3.3. periodical_query(int) 1.3.4. query_period(int) - 1.3.5. Exported Functions - 1.3.6. Exported MI Functions + + 1.4. Exported Functions + 1.5. Exported MI Functions + + 1.5.1. refreshXcapDoc 2. Developer's Guide @@ -35,13 +42,15 @@ Anca-Maria Vamanu 2.2. get_elem 2.3. register_xcb + 3. Frequently Asked Questions + List of Examples - 1-1. Set db_url parameter - 1-2. Set xcap_table parameter - 1-3. Set periodical_query parameter - 1-4. Set query_period parameter - 2-1. xcap_api structure - __________________________________________________________ + + 1.1. Set db_url parameter + 1.2. Set xcap_table parameter + 1.3. Set periodical_query parameter + 1.4. Set query_period parameter + 2.1. xcap_api structure Chapter 1. User's Guide @@ -69,23 +78,19 @@ Chapter 1. User's Guide The module is currently used by the presence_xml module, if the 'integrated_xcap_server' parameter is not set. - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The modules is not dependent of any OpenSER module. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * libxml. * libcurl. - __________________________________________________________ 1.3. Exported Parameters @@ -95,12 +100,11 @@ Chapter 1. User's Guide Default value is "NULL". - Example 1-1. Set db_url parameter + Example 1.1. Set db_url parameter ... modparam("xcap_client", "db_url", "mysql://openser:openserrw@192.168.2.132/openser") ... - __________________________________________________________ 1.3.2. xcap_table(str) @@ -108,11 +112,10 @@ modparam("xcap_client", "db_url", Default value is "xcap". - Example 1-2. Set xcap_table parameter + Example 1.2. Set xcap_table parameter ... modparam("xcap_client", "xcap_table", "xcaps") ... - __________________________________________________________ 1.3.3. periodical_query(int) @@ -126,11 +129,10 @@ modparam("xcap_client", "xcap_table", "xcaps") Default value is "1". - Example 1-3. Set periodical_query parameter + Example 1.3. Set periodical_query parameter ... modparam("xcap_client", "periodical_query", 0) ... - __________________________________________________________ 1.3.4. query_period(int) @@ -142,20 +144,18 @@ modparam("xcap_client", "periodical_query", 0) Default value is "100". - Example 1-4. Set query_period parameter + Example 1.4. Set query_period parameter ... modparam("xcap_client", "query_period", 50) ... - __________________________________________________________ -1.3.5. Exported Functions +1.4. Exported Functions None to be used in configuration file. - __________________________________________________________ -1.3.6. Exported MI Functions +1.5. Exported MI Functions -1.3.6.1. refreshXcapDoc +1.5.1. refreshXcapDoc MI command that should be sent by an xcap server when a stored document changes. @@ -163,7 +163,6 @@ modparam("xcap_client", "query_period", 50) Name: refreshXcapDoc Parameters: - * document uri: the uri of the document * xcap server port: the port of the xcap server @@ -174,7 +173,6 @@ modparam("xcap_client", "query_period", 50) 8000 _empty_line_ ... - __________________________________________________________ Chapter 2. Developer's Guide @@ -183,13 +181,12 @@ Chapter 2. Developer's Guide registering a callback to be called when a MI command refreshXcapDoc is received and the document in question is retrieved. - __________________________________________________________ -2.1. bind_xcap_api(xcap_api_t* api) +2.1. bind_xcap_api(xcap_api_t* api) This function allows binding the needed functions. - Example 2-1. xcap_api structure + Example 2.1. xcap_api structure ... typedef struct xcap_api { @@ -207,9 +204,8 @@ typedef struct xcap_api { register_xcapcb_t register_xcb; }xcap_api_t; ... - __________________________________________________________ -2.2. get_elem +2.2. get_elem Field type: ... @@ -221,7 +217,6 @@ xcap_doc_sel_t* doc_sel, xcap_node_sel_t* node_sel); information from the xcap server. The parameters signification: - * xcap_root- the XCAP server address; * doc_sel- structure with document selection info; Parameter type: @@ -238,6 +233,7 @@ typedef struct xcap_doc_sel str filename; }xcap_doc_sel_t; ... + * node_sel- structure with node selection info; Parameter type: ... @@ -266,6 +262,7 @@ typedef struct ns_list }ns_list_t; ... + The node selector is represented like a list of steps that will be represented in the path string separated by '/' signs. The namespaces for the nodes are stored also in a @@ -277,9 +274,8 @@ typedef struct ns_list 'add_step' and if needed, 'add_terminal'. If the intention is to retrieve the whole document this argument must be NULL. - __________________________________________________________ -2.3. register_xcb +2.3. register_xcb Field type: ... @@ -293,3 +289,36 @@ typedef int (*register_xcapcb_t)(int types, xcap_cb f); ... typedef int (xcap_cb)(int doc_type, str xid, char* doc); ... + +Chapter 3. Frequently Asked Questions + + 3.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 3.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 3.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/xcap_client/doc/xcap_client.sgml b/modules_k/xcap_client/doc/xcap_client.xml similarity index 73% rename from modules_k/xcap_client/doc/xcap_client.sgml rename to modules_k/xcap_client/doc/xcap_client.xml index d7bd1a8f2..dfe40542d 100644 --- a/modules_k/xcap_client/doc/xcap_client.sgml +++ b/modules_k/xcap_client/doc/xcap_client.xml @@ -1,12 +1,14 @@ - + - - + + + - + %docentities; ]> diff --git a/modules_k/xcap_client/doc/xcap_client_user.sgml b/modules_k/xcap_client/doc/xcap_client_admin.xml similarity index 99% rename from modules_k/xcap_client/doc/xcap_client_user.sgml rename to modules_k/xcap_client/doc/xcap_client_admin.xml index bfccaa08d..43c268546 100644 --- a/modules_k/xcap_client/doc/xcap_client_user.sgml +++ b/modules_k/xcap_client/doc/xcap_client_admin.xml @@ -151,8 +151,7 @@ modparam("xcap_client", "query_period", 50) - - +
Exported Functions @@ -186,6 +185,7 @@ modparam("xcap_client", "query_period", 50) MI FIFO Command Format: + ... :refreshXcapDoc:fifo_reply diff --git a/modules_k/xcap_client/doc/xcap_client_devel.sgml b/modules_k/xcap_client/doc/xcap_client_devel.xml similarity index 99% rename from modules_k/xcap_client/doc/xcap_client_devel.sgml rename to modules_k/xcap_client/doc/xcap_client_devel.xml index fed090657..3a81aebe2 100644 --- a/modules_k/xcap_client/doc/xcap_client_devel.sgml +++ b/modules_k/xcap_client/doc/xcap_client_devel.xml @@ -59,6 +59,7 @@ xcap_doc_sel_t* doc_sel, xcap_node_sel_t* node_sel); The parameters signification: + @@ -70,6 +71,7 @@ xcap_doc_sel_t* doc_sel, xcap_node_sel_t* node_sel); doc_sel- structure with document selection info; + Parameter type: ... @@ -86,7 +88,6 @@ typedef struct xcap_doc_sel }xcap_doc_sel_t; ... - diff --git a/modules_k/xlog/README b/modules_k/xlog/README index 953abe9d4..c3feff171 100644 --- a/modules_k/xlog/README +++ b/modules_k/xlog/README @@ -13,9 +13,13 @@ Elena-Ramona Modroiu Copyright © 2005 voice-system.ro Copyright © 2008 Elena-Ramona Modroiu + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -35,12 +39,14 @@ Elena-Ramona Modroiu 1.5.1. xlog([level,] format) 1.5.2. xdbg(format) + 2. Frequently Asked Questions + List of Examples - 1-1. Set buf_size parameter - 1-2. Set force_color parameter - 1-3. xlog usage - 1-4. xdbg usage - __________________________________________________________ + + 1.1. Set buf_size parameter + 1.2. Set force_color parameter + 1.3. xlog usage + 1.4. xdbg usage Chapter 1. User's Guide @@ -49,9 +55,8 @@ Chapter 1. User's Guide This module provides the possibility to print user formatted log or debug messages from OpenSER scripts, similar to printf function but now a specifier is replaced with a part of the SIP - request or other variables from system. Section 1.2 shows what - can be printed out. - __________________________________________________________ + request or other variables from system. Section 1.2, + "Implemented Specifiers" shows what can be printed out. 1.2. Implemented Specifiers @@ -60,7 +65,6 @@ Chapter 1. User's Guide (e.g., avpops in the function avp_printf()) The most important changes are: - * - '%' has been replaced by '$' * - to print a header, use now $hdr(header_name[index]) instead of %{header_name[index]} @@ -70,24 +74,19 @@ Chapter 1. User's Guide The full list of available pseudo-variables in OpenSER is availabe at: http://openser.org/dokuwiki/ - __________________________________________________________ 1.3. Dependencies 1.3.1. OpenSER Modules The following modules must be loaded before this module: - * No dependencies on other OpenSER modules. - __________________________________________________________ 1.3.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * None. - __________________________________________________________ 1.4. Exported Parameters @@ -97,11 +96,10 @@ Chapter 1. User's Guide Default value is 4096. - Example 1-1. Set buf_size parameter + Example 1.1. Set buf_size parameter ... modparam("xlog", "buf_size", 8192) ... - __________________________________________________________ 1.4.2. force_color (integer) @@ -109,20 +107,18 @@ modparam("xlog", "buf_size", 8192) Default value is 0. - Example 1-2. Set force_color parameter + Example 1.2. Set force_color parameter ... modparam("xlog", "force_color", 0) ... - __________________________________________________________ 1.5. Exported Functions -1.5.1. xlog([level,] format) +1.5.1. xlog([level,] format) Print a formated message using LOG function. Meaning of the parameters is as follows: - * level - The level that will be used in LOG function. It can be: + L_ALERT - log level -3 @@ -145,30 +141,61 @@ modparam("xlog", "force_color", 0) This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, ONREPLY_ROUTE, BRANCH_ROUTE. - Example 1-3. xlog usage + Example 1.3. xlog usage ... -xlog("L_ERR", "time [$Tf] method <$rm> r-uri <$ru> 2nd via <$hdr(via[1]) ->\n"); +xlog("L_ERR", "time [$Tf] method ($rm) r-uri ($ru) 2nd via ($hdr(via[1]) +)\n"); ... -xlog("time [$Tf] method <$rm> r-uri <$ru> 2nd via <$hdr(via[1])>\n"); +xlog("time [$Tf] method ($rm) r-uri ($ru) 2nd via ($hdr(via[1]))\n"); ... $var(loglevel) = 2; -xlog("$var(loglevel)", "time [$Tf] method <$rm> r-uri <$ru>\n"); +xlog("$var(loglevel)", "time [$Tf] method ($rm) r-uri ($ru)\n"); ... - __________________________________________________________ -1.5.2. xdbg(format) +1.5.2. xdbg(format) Print a formatted message using DBG function. Meaning of the parameters is as follows: - * format - The formatted string to be printed. This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, ONREPLY_ROUTE, BRANCH_ROUTE. - Example 1-4. xdbg usage + Example 1.4. xdbg usage ... -xdbg("time $Cbx[$Tf]$Cxx method <$rm> r-uri <$ru>\n"); +xdbg("time $Cbx[$Tf]$Cxx method ($rm) r-uri ($ru)\n"); ... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/xlog/doc/xlog.sgml b/modules_k/xlog/doc/xlog.xml similarity index 71% rename from modules_k/xlog/doc/xlog.sgml rename to modules_k/xlog/doc/xlog.xml index 968457988..0f9287116 100644 --- a/modules_k/xlog/doc/xlog.sgml +++ b/modules_k/xlog/doc/xlog.xml @@ -1,11 +1,13 @@ - + - + + - + %docentities; ]> @@ -48,8 +50,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/xlog/doc/xlog_user.sgml b/modules_k/xlog/doc/xlog_admin.xml similarity index 94% rename from modules_k/xlog/doc/xlog_user.sgml rename to modules_k/xlog/doc/xlog_admin.xml index 4c0347a20..b1eb4b726 100644 --- a/modules_k/xlog/doc/xlog_user.sgml +++ b/modules_k/xlog/doc/xlog_admin.xml @@ -11,7 +11,7 @@ debug messages from &ser; scripts, similar to printf function but now a specifier is replaced with a part of the &sip; request or other variables from system. - shows what can be printed + shows what can be printed out.
@@ -201,12 +201,12 @@ modparam("xlog", "force_color", 0) <function>xlog</function> usage ... -xlog("L_ERR", "time [$Tf] method <$rm> r-uri <$ru> 2nd via <$hdr(via[1])>\n"); +xlog("L_ERR", "time [$Tf] method ($rm) r-uri ($ru) 2nd via ($hdr(via[1]))\n"); ... -xlog("time [$Tf] method <$rm> r-uri <$ru> 2nd via <$hdr(via[1])>\n"); +xlog("time [$Tf] method ($rm) r-uri ($ru) 2nd via ($hdr(via[1]))\n"); ... $var(loglevel) = 2; -xlog("$var(loglevel)", "time [$Tf] method <$rm> r-uri <$ru>\n"); +xlog("$var(loglevel)", "time [$Tf] method ($rm) r-uri ($ru)\n"); ... @@ -234,7 +234,7 @@ xlog("$var(loglevel)", "time [$Tf] method <$rm> r-uri <$ru>\n"); <function>xdbg</function> usage ... -xdbg("time $Cbx[$Tf]$Cxx method <$rm> r-uri <$ru>\n"); +xdbg("time $Cbx[$Tf]$Cxx method ($rm) r-uri ($ru)\n"); ... diff --git a/modules_k/xmpp/README b/modules_k/xmpp/README index 60eeaa5dd..7e0f859ef 100644 --- a/modules_k/xmpp/README +++ b/modules_k/xmpp/README @@ -2,16 +2,20 @@ xmpp Module Andreea Spirea - voice-system.ro +Daniel-Constantin Mierla Edited by Andreea Spirea Copyright © 2006 voice-system.ro + Revision History + Revision $Revision$ $Date: 2008-03-04 15:15:47 +0200 + (Tue, 04 Mar 2008) $ __________________________________________________________ Table of Contents + 1. User's Guide 1.1. Overview @@ -37,17 +41,19 @@ Andreea Spirea 1.5. Configuration + 2. Frequently Asked Questions + List of Examples - 1-1. Set backend parameter - 1-2. Set domain_separator parameter - 1-3. Set gateway_domain parameter - 1-4. Set xmpp_domain parameter - 1-5. Set xmpp_host parameter - 1-6. Set xmpp_port parameter - 1-7. Set xmpp_password parameter - 1-8. Set outbound_proxy parameter - 1-9. xmpp_send_message() usage - __________________________________________________________ + + 1.1. Set backend parameter + 1.2. Set domain_separator parameter + 1.3. Set gateway_domain parameter + 1.4. Set xmpp_domain parameter + 1.5. Set xmpp_host parameter + 1.6. Set xmpp_port parameter + 1.7. Set xmpp_password parameter + 1.8. Set outbound_proxy parameter + 1.9. xmpp_send_message() usage Chapter 1. User's Guide @@ -58,7 +64,6 @@ Chapter 1. User's Guide and XMPP(jabber) clients. The gateway has two modes to run: - * the component-mode - the gateway requires a standalone XMPP server amd the 'xmpp' module acts as a XMPP component * the server-mode - the module acts itself as a XMPP server, @@ -75,7 +80,6 @@ Chapter 1. User's Guide After you have a running XMPP server, what you need to do is set the following parameters in the Openser configuration file: - * gateway_domain, xmpp_domain (which can be the same as gateway_domain) and xmpp_host, which are explained in the Exported Parameters section; @@ -94,7 +98,6 @@ Chapter 1. User's Guide be the same as the xmpp_password parameter. A use case, for the component-mode, would look like this: - * Openser is running on sip-server.openser.org; * the gateway is running on sip-xmpp.openser.org; * the jabber server is running on xmpp.openser.org; @@ -110,7 +113,6 @@ Chapter 1. User's Guide section, from component to server. A use case, for the server-mode, would look like this: - * Openser is running on sip-server.openser.org; * the gateway is running on sip-xmpp.openser.org; * the "XMPP server" is running on xmpp-sip.openser.org. @@ -124,24 +126,19 @@ Chapter 1. User's Guide like: "sip_usernameopenser_domain@xmpp_domain" - __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The following modules must be loaded before this module: - * requires 'tm' module. - __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSER with this module loaded: - * libexpat1-devel - used for parsing/building XML. - __________________________________________________________ 1.3. Exported Parameters @@ -152,11 +149,10 @@ Chapter 1. User's Guide Default value is "component". - Example 1-1. Set backend parameter + Example 1.1. Set backend parameter ... modparam("xmpp", "backend", "server"); ... - __________________________________________________________ 1.3.2. domain_separator (string) @@ -169,11 +165,10 @@ Chapter 1. User's Guide Default value is "*". - Example 1-2. Set domain_separator parameter + Example 1.2. Set domain_separator parameter ... modparam("xmpp", "domain_separator", "*"); ... - __________________________________________________________ 1.3.3. gateway_domain (string) @@ -184,11 +179,10 @@ Chapter 1. User's Guide Default value is "sip-xmpp.openser.org". - Example 1-3. Set gateway_domain parameter + Example 1.3. Set gateway_domain parameter ... modparam("xmpp", "gateway_domain", "sip-xmpp.openser.org"); ... - __________________________________________________________ 1.3.4. xmpp_domain (string) @@ -197,11 +191,10 @@ Chapter 1. User's Guide Default value is "sip-xmpp.openser.org". - Example 1-4. Set xmpp_domain parameter + Example 1.4. Set xmpp_domain parameter ... modparam("xmpp", "xmpp_domain", "xmpp-sip.openser.org"); ... - __________________________________________________________ 1.3.5. xmpp_host (string) @@ -211,11 +204,10 @@ Chapter 1. User's Guide Default value is "xmpp.openser.org". - Example 1-5. Set xmpp_host parameter + Example 1.5. Set xmpp_host parameter ... modparam("xmpp", "xmpp_host", "xmpp.openser.org"); ... - __________________________________________________________ 1.3.6. xmpp_port (integer) @@ -226,11 +218,10 @@ Chapter 1. User's Guide Default value is "5347", if backend is set to "component" and "5269", if backend is set to "server". - Example 1-6. Set xmpp_port parameter + Example 1.6. Set xmpp_port parameter ... modparam("xmpp", "xmpp_port", "5269"); ... - __________________________________________________________ 1.3.7. xmpp_password (string) @@ -245,11 +236,10 @@ Chapter 1. User's Guide jabberd; ; secret; ; - Example 1-7. Set xmpp_password parameter + Example 1.7. Set xmpp_password parameter ... modparam("xmpp", "xmpp_password", "secret"); ... - __________________________________________________________ 1.3.8. outbound_proxy (string) @@ -261,28 +251,25 @@ Chapter 1. User's Guide Default value is NULL. - Example 1-8. Set outbound_proxy parameter + Example 1.8. Set outbound_proxy parameter ... modparam("xmpp", "outbound_proxy", "sip:openser.org;transport=tcp"); ... - __________________________________________________________ 1.4. Exported Functions -1.4.1. xmpp_send_message() +1.4.1. xmpp_send_message() Converts SIP messages to XMPP(jabber) messages, in order to be relayed to a XMPP(jabber) client. - Example 1-9. xmpp_send_message() usage + Example 1.9. xmpp_send_message() usage ... xmpp_send_message(); ... - __________________________________________________________ 1.5. Configuration - Next is presented a sample configuration file one can use to implement a standalone SIP-to-XMPP gateway. You can run an instance of OpenSER on a separate machine or on different port @@ -391,3 +378,36 @@ route{ .... + +Chapter 2. Frequently Asked Questions + + 2.1. + + Where can I find more about OpenSER? + + Take a look at http://openser.org/. + + 2.2. + + Where can I post a question about this module? + + First at all check if your question was already answered on one + of our mailing lists: + * User Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/users + * Developer Mailing List - + http://openser.org/cgi-bin/mailman/listinfo/devel + + E-mails regarding any stable OpenSER release should be sent to + and e-mails regarding development versions + should be sent to . + + If you want to keep the mail private, send it to + . + + 2.3. + + How can I report a bug? + + Please follow the guidelines provided at: + http://sourceforge.net/tracker/?group_id=139143. diff --git a/modules_k/xmpp/doc/xmpp.sgml b/modules_k/xmpp/doc/xmpp.xml similarity index 54% rename from modules_k/xmpp/doc/xmpp.sgml rename to modules_k/xmpp/doc/xmpp.xml index b8246ee4f..b2b1c8994 100644 --- a/modules_k/xmpp/doc/xmpp.sgml +++ b/modules_k/xmpp/doc/xmpp.xml @@ -1,12 +1,14 @@ - + - + + - + %docentities; ]> @@ -19,18 +21,17 @@ Andreea Spirea - &voicesystem; + + + Daniel-Constantin + Mierla
- - http://www.voice-system.ro - + miconda@gmail.com
Andreea Spirea -
-
@@ -39,8 +40,8 @@ - $Revision$ - $Date$ + $Revision: 3839 $ + $Date: 2008-03-04 15:15:47 +0200 (Tue, 04 Mar 2008) $ diff --git a/modules_k/xmpp/doc/xmpp_user.sgml b/modules_k/xmpp/doc/xmpp_admin.xml similarity index 99% rename from modules_k/xmpp/doc/xmpp_user.sgml rename to modules_k/xmpp/doc/xmpp_admin.xml index 69f503a93..5f2993311 100644 --- a/modules_k/xmpp/doc/xmpp_user.sgml +++ b/modules_k/xmpp/doc/xmpp_admin.xml @@ -28,7 +28,7 @@
- listen = your ip; + listen = your ip; alias=openser domain and @@ -312,7 +312,6 @@ xmpp_send_message();
Configuration - Next is presented a sample configuration file one can use to implement a standalone SIP-to-XMPP gateway. You can run an instance of OpenSER on a