123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
- <section id="usrloc.api" xmlns:xi="http://www.w3.org/2001/XInclude">
- <sectioninfo>
- </sectioninfo>
- <title>Usrloc Module API</title>
- <section id="ul_register_domain">
- <title>
- <function>ul_register_domain(name)</function>
- </title>
- <para>
- The function registers a new domain. Domain is just another name
- for table used in registrar. The function is called from fixups in
- registrar. It gets name of the domain as a parameter and returns
- pointer to a new domain structure. The fixup than 'fixes' the
- parameter in registrar so that it will pass the pointer instead of
- the name every time save() or lookup() is called. Some usrloc
- functions get the pointer as parameter when called. For more
- details see implementation of save function in registrar.
- </para>
- <para>Meaning of the parameters is as follows:</para>
- <itemizedlist>
- <listitem>
- <para><emphasis>const char* name</emphasis> - Name of the domain (also called
- table) to be registered.
- </para>
- </listitem>
- </itemizedlist>
- </section>
- <section id="ul_insert_urecord">
- <title>
- <function>ul_insert_urecord(domain, aor, rec)</function>
- </title>
- <para>
- 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.
- </para>
- <para>Meaning of the parameters is as follows:</para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>udomain_t* domain</emphasis> - Pointer to domain
- returned by ul_register_udomain.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>str* aor</emphasis> - Address of Record (aka
- username) of the new record (at this time the record will
- contain no contacts yet).
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>urecord_t** rec</emphasis> - The newly created
- record structure.
- </para>
- </listitem>
- </itemizedlist>
- </section>
- <section id="ul_delete_urecord">
- <title>
- <function>ul_delete_urecord(domain, aor)</function>
- </title>
- <para>
- The function deletes all the contacts bound with the given Address
- Of Record.
- </para>
- <para>Meaning of the parameters is as follows:</para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>udomain_t* domain</emphasis> - Pointer to domain returned by ul_register_udomain.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>str* aor</emphasis> - Address of record (aka
- username) of the record, that should be deleted.
- </para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section id="ul_get_urecord">
- <title>
- <function>ul_get_urecord(domain, aor)</function>
- </title>
- <para>
- The function returns pointer to record with given Address of Record.
- </para>
- <para>Meaning of the parameters is as follows:</para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>udomain_t* domain</emphasis> - Pointer to domain
- returned by ul_register_udomain.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>str* aor</emphasis> - Address of Record of
- request record.
- </para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section id="ul_lock_udomain">
- <title>
- <function>ul_lock_udomain(domain)</function>
- </title>
- <para>
- The function lock the specified domain, it means, that no other
- processes will be able to access during the time. This prevents
- race conditions. Scope of the lock is the specified domain, that
- means, that multiple domain can be accessed simultaneously, they
- don't block each other.
- </para>
- <para>Meaning of the parameters is as follows:</para>
- <itemizedlist>
- <listitem>
- <para><emphasis>udomain_t* domain</emphasis> - Domain to be locked.
- </para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section id="ul_unlock_udomain">
- <title>
- <function>ul_unlock_udomain(domain)</function>
- </title>
- <para>
- Unlock the specified domain previously locked by ul_lock_udomain.
- </para>
- <para>Meaning of the parameters is as follows:</para>
- <itemizedlist>
- <listitem>
- <para><emphasis>udomain_t* domain</emphasis> - Domain to be unlocked.
- </para>
- </listitem>
- </itemizedlist>
- </section>
- <section id="ul_release_urecord">
- <title>
- <function>ul_release_urecord(record)</function>
- </title>
- <para>
- Do some sanity checks - if all contacts have been removed, delete
- the entire record structure.
- </para>
- <para>Meaning of the parameters is as follows:</para>
- <itemizedlist>
- <listitem>
- <para><emphasis>urecord_t* record</emphasis> - Record to be released.
- </para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section id="ul_insert_ucontact">
- <title>
- <function>
- ul_insert_ucontact(record, contact, expires, q, callid, cseq,
- flags, cont, ua)
- </function>
- </title>
- <para>
- The function inserts a new contact in the given record with
- specified parameters.
- </para>
- <para>Meaning of the parameters is as follows:</para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>urecord_t* record</emphasis> - Record in which
- the contact should be inserted.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>str* contact</emphasis> - Contact URI.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>time_t expires</emphasis> - Expires of the
- contact in absolute value.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>float q</emphasis> - q value of the contact.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>str* callid</emphasis> - Call-ID of the REGISTER
- message that contained the contact.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>int cseq</emphasis> - CSeq of the REGISTER
- message that contained the contact.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>unsigned int flags</emphasis> - Flags to be set.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>ucontact_t* cont</emphasis> - Pointer to newly
- created structure.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>str* ua</emphasis> - User-Agent of the REGISTER
- message that contained the contact.
- </para>
- </listitem>
- </itemizedlist>
- </section>
- <section id="ul_delete_ucontact">
- <title>
- <function>ul_delete_ucontact(record, contact)</function>
- </title>
- <para>
- The function deletes given contact from record.
- </para>
- <para>Meaning of the parameters is as follows:</para>
- <itemizedlist>
- <listitem>
- <para><emphasis>urecord_t* record</emphasis> - Record from which the contact should be removed.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para><emphasis>ucontact_t* contact</emphasis> - Contact to be deleted.
- </para>
- </listitem>
- </itemizedlist>
- </section>
- <section id="ul_get_ucontact">
- <title>
- <function>ul_get_ucontact(record, contact)</function>
- </title>
- <para>
- The function tries to find contact with given Contact URI and returns pointer to
- structure representing the contact.
- </para>
- <para>Meaning of the parameters is as follows:</para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>urecord_t* record</emphasis> - Record to be
- searched for the contact.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>str_t* contact</emphasis> - URI of the request
- contact.
- </para>
- </listitem>
- </itemizedlist>
- </section>
- <section id="ul_get_all_ucontacts">
- <title>
- <function>ul_get_all_ucontacts(buf, len, flags)</function>
- </title>
- <para>
- The function retrieves all contacts of all registered users and
- returns them in the caller-supplied buffer. If the buffer is too
- small, the function returns positive value indicating how much
- additional space would be necessary to accommodate all of
- them. Please note that the positive return value should be used
- only as a "hint", as there is no guarantee that during
- the time between two subsequent calls number of registered contacts
- will remain the same.
- </para>
- <para>
- If flag parameter is set to non-zero value then only contacts that
- have the specified flags set will be returned. It is, for example,
- possible to list only contacts that are behind NAT.
- </para>
- <para>Meaning of the parameters is as follows:</para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>void* buf</emphasis> - Buffer for returning contacts.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>int len</emphasis> - Length of the buffer.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>unsigned int flags</emphasis> - Flags that must be set.
- </para>
- </listitem>
- </itemizedlist>
- </section>
- <section id="ul_update_ucontact">
- <title>
- <function>
- ul_update_ucontact(contact, expires, q, callid, cseq, set, res,
- ua)
- </function>
- </title>
- <para>
- The function updates contact with new values.
- </para>
- <para>Meaning of the parameters is as follows:</para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>ucontact_t* contact</emphasis> - Contact URI.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>time_t expires</emphasis> - Expires of the contact in absolute value.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>float q</emphasis> - q value of the contact.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>str* callid</emphasis> - Call-ID of the REGISTER message that contained the contact.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>int cseq</emphasis> - CSeq of the REGISTER message that contained the contact.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>unsigned int set</emphasis> - OR value of flags to be set.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>unsigned int res</emphasis> - OR value of flags to be reset.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>str* ua</emphasis> - User-Agent of the REGISTER message that contained the contact.
- </para>
- </listitem>
- </itemizedlist>
- </section>
- </section>
|