<?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="serfaq" xmlns:xi="http://www.w3.org/2001/XInclude">
    <sectioninfo>
	<authorgroup>
	    <editor>
		<firstname>Jan</firstname>
		<surname>Janak</surname>
		<email>jan@iptel.org</email>
	    </editor>
	</authorgroup>
	<revhistory>
	    <revision>
		<revnumber>$Revision: 1.4 $</revnumber>
		<date>$Date: 2006/11/29 12:24:01 $</date>
	    </revision>
	</revhistory>
	<abstract>
	    <para>
		A compilation of questions and answers from 
		<email>serusers@iptel.org</email>, and <email>serdev@iptel.org</email> mailing
		lists.
	    </para>
	</abstract>
	<copyright>
	    <year>2003</year>
	    <holder>FhG FOKUS</holder>
	</copyright>
    </sectioninfo>
    
    <title>Frequently Asked Questions</title>

    <qandaset>
	<qandaentry>
	    <question>
		<simpara>
		    Is it possible to use SER as a SIP user agent (both of User
		    Agent Client (UAC) and User Agent Server (UASS)?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Not easily. SER has built-in some functions that allow to
		    use it as user agent, but our primary goal is to develop a
		    server so this is without guarantee and can even disappear
		    in future versions.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Can SER work well together with some of the location server
		    (e. g.LDAP or DNS) ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    SER's built-in location server uses
		    in-<acronym>RAM</acronym> database for high performance and
		    optionally MySQL for persistence. More database protocols
		    may be supplied on contractual basis. As far as I know,
		    <acronym>DNS</acronym> is not used in the industry for user
		    location.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    What is a proxy server ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    A proxy server is an entity that routes SIP messages. See
		    SIP introduction which is part of the distribution.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
	    	<simpara>
		    What is the difference between proxy server and back to back
		    user agent (B2BUA) ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    The main difference is that proxy servers are
		    transaction-stateful, while B2BUAs are call stateful. That
		    means proxy servers keep state only during SIP transactions
		    (that is at the beginning and and of a call) and do not
		    keep any state during the whole call.
		</simpara>
		<simpara>
		    A B2BUA acts merely as connection of two or more user
		    agents which are connected through some means. B2BUAs keep
		    some state (usually some structures in the memory) during
		    the whole call.
		</simpara>
		<para>
		    This property gives B2BUA some interesting features that
		    proxies don't have. For example B2BUA can tear down and
		    existing call--proxies can't do that. On the other hand
		    B2BUAs can easily become a bottleneck in terms of
		    scalability.
		</para>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    So is SER proxy or B2BUA ? Can it terminate an existing
		    call ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    SER is a proxy. I can't terminate existing call.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    I'd like to know if SER supports <acronym>CPL</acronym> and
		    servlets. Where can I find any documentation about this, or
		    any link ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Yes, <acronym>CPL</acronym> is supported through cpl
		    module, the module needs an external <acronym>CPL</acronym>
		    interpreter written in Java. A C version is under
		    development. There is no support for Java servlets. The
		    documentation can be found at <ulink
		    url="http://iptel.org/ser/doc">http://iptel.org/ser/doc</ulink>.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    I wanted to know whether &lt;PUT_YOUR_FAVOURITE_METHOD_HERE&gt; is supported
		    by SER.
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Proxy server are indifferent of non-INVITEs methods. &lt;METHOD&gt; works as
		    good as BYE, INFO, and FOOBAR.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    I was wondering if SER has been tested and is supported on FreeBSD ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Yes.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Does SER support <acronym>TCP</acronym> ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Yes.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    I think I found a bug that should be fixed, what information should I send
		    and where should I send it?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Please send us as much info as possible. We would like see the following:
		</simpara>
		<itemizedlist>
		    <listitem>
			<simpara>SER version (ser -V).</simpara>
		    </listitem>
		</itemizedlist>
		<itemizedlist>
		    <listitem>
			<simpara>Configuration file.</simpara>
		    </listitem>
		</itemizedlist>
		<itemizedlist>
		    <listitem>
			<simpara>SIP message dumps.</simpara>
		    </listitem>
		</itemizedlist>
		<itemizedlist>
		    <listitem>
			<simpara>Coredump (if any, if not please generate it).</simpara>
		    </listitem>
		</itemizedlist>
		<itemizedlist>
		    <listitem>
			<simpara>Anything else you think might help us.</simpara>
		    </listitem>
		</itemizedlist>
		<itemizedlist>
		    <listitem>
			<simpara>The whole compiled source tree.</simpara>
		    </listitem>
		</itemizedlist>
		<simpara>
		    Please send it to <email>serusers@lists.iptel.org</email>.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    How does SER scale ?
		</simpara>
		<simpara>
		    SER is able to handle thousands calls per second on a regular
		    <acronym>PC</acronym>.
		</simpara>
	    </question>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    I read <quote>Throughput thousands of calls per second
			(<acronym>CPS</acronym>) on a dual-<acronym>CPU</acronym>
			<acronym>PC</acronym></quote> on your webpage. How fast is it really ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Last time we have  checked ~4900cps on a dual Athlon MP2000.
		</simpara>
		<simpara>
		    This was ser 0.8.9 running statefully (stateless is should be much faster),
		    with 4 processes and 256 Mb shared mem.  It was compiled with: STATS:Off,
		    USE_IPV6, NO_DEBUG, SHM_MEM, SHM_MMAP, PKG_MALLOC, F_MALLOC,
		    FAST_LOCK-ADAPTIVE_WAIT ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE
		    262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 3040
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Do you think that SER is suitable for a commercial environment in your opinion ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Sure.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Do you have any recommendations on additional open source or developer
		    community resources to round out my platform?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    I'm a SER believer and think that other servers simply don't compare :) If
		    you wish more detailed propaganda, check our website and if that is not
		    enough I will send you some more.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Do you have any thoughts on how it compares in
		    deployability and features to the Vovida stuff or other
		    options ? Also, are there any issues I should be thinking
		    of that would make a commercial venture with SER difficult
		    (licensing, scaling, etc..)
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    SER is licensed under the GNU GPL. I would be surprised if
		    any SIP server available today would scale a bit better--we
		    spent lot of work on performance, achieved thousands of
		    <acronym>CPS</acronym> on a <acronym>PC</acronym>--I guess
		    it will take lot of time until your demand hits this
		    capacity.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Does SER have the capability to automatically send an
		    INVITE from one number to another?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Yes if the phones support REFER. There is an application
		    called Click-To-Dial which can connect two phones.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Is it necessary to have a <acronym>DNS SVR</acronym> Resource Record, as
		    mentioned in the ser-Howto guide for connecting to SER ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    No. It's nice to have it, but you can work around it
		    setting a normal A record for your domain. The
		    <acronym>SRV</acronym> lookup will fall back to normal A
		    lookup.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    What would you charge to help get us started?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    See <ulink url="http://iptel.org/support">http://iptel.org/support</ulink>.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Are you going to provide integration support from SIP to H.323 and vice
		    versa ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    No, we are not going to provide the integration.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    I've gone thru the SER Admin's Guide and the module documentation
		    (sip_router/modules/). Is there additional documentation on how to use the
		    modules?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Each module has a doc subdirectory which contains complete documentation of
		    the module in docbook format. <acronym>PS</acronym>, <acronym>PDF</acronym>
		    and <acronym>HTML</acronym> renderings can be obtained through our web page,
		    see <ulink url="http://iptel.org/ser/doc">http://iptel.org/ser/doc</ulink>.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    What functions would I use in my ser.cfg to log <quote>missed calls</quote>?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    FIXME.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Are there some additional requirements for using the acc.so module?  Radius?
		    I want to be able to view dialed calls from serweb.
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    FIXME.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Do you have any example configs that use nathelper?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    FIXME.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Who are the people behind SER ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    FIXME.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    How successful has nathelper been with <acronym>NAT</acronym>/firewall transversal?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    I only know that users reported success with nathelper and ATAs.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Does ser support <acronym>LDAP</acronym> ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    FIXME.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Is it possible to get access to iptel's working copy of ser.cfg?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    We no longer disclose our operational policy to the public audience. The
		    configuration file is only available to our customers under <acronym>NDA</acronym>.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Can you send me detail for me to sign up for the commercial program. I would
		    also like detail on your levels of support you offer (ie...paid support)?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    See <ulink
			url="http://iptel.org/support/">http://iptel.org/support/</ulink>. Don't
		    hesitate to approach us if you have any further questions.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    I need a method to determine if a called URI has an account on the system.
		    I found a function in the groups module,
		    <function>is_user_in</function>. but haven't yet figured out how to use it.
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    The uri module's <function>does_uri_exist</function> is what you are seeking.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    We have a question regarding usrloc: where are the active sessions
		    being stored? We were not able to find any entries in MySQL.
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    SER has no notion of active session. SER is a
		    transaction-stateful proxy, that means it knows about
		    transactions (INVITE transaction, BYE transaction), but it
		    keeps no state if there is no transaction active.
		</simpara>
		<simpara>
		    That means, it keeps state when an INVITE comes and until a
		    final response to the INVITE is sent. The same for BYE.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Has the timeout for re-registering at the UA to be the same as in the tm
		    module mentioned in <filename>ser.cfg</filename> ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    No.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    How do we deal with aliases? If for example uid=mic is
		    authenticated, he is available with sip address
		    sip:mic@comnect.at. If I would want to be addressable with
		    michael.dosser@comnect.at how is this accomplished with ser
		    ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Aliases are tied to user location. It uses a special table
		    which has the same structure as user location table and
		    includes an entry for each alias. You do not have to do
		    something special for that. You have to create this table
		    and then you can use serctl to add aliases.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    I would like to know if SER supports <acronym>IPv6</acronym>. If not, do
		    you have any plans for it ? When ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Yes, SER supports <acronym>IPv6</acronym>.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Is there any way to change the default log file to a special SER.log file ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Try logging to stderr and redirecting it to a file:
		</simpara>
		<screen format="linespecific">
		    ser -E     2>/tmp/ser.log
		</screen>
		<simpara>
		    (by default ser logs to syslog)
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Does anybody know anything about the P-Hint Header Field added from SER?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    <ulink url="http://www.iptel.org/ser/doc/seruser-html/c638.html#AEN729">
			http://www.iptel.org/ser/doc/seruser-html/c638.html#AEN729
		    </ulink>
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    When using the Jabber Gateway, some users get the following
		    error from time to time:
		</simpara>
		<simpara>
		    ERROR: Connection to Jabber server lost. You have to login
		    to Jabber server again (join again the conferences that you
		    were participating, too).
		</simpara>
		<simpara>
		    sip_to_jabber_gateway says:
		</simpara>
		<simpara>
		    INFO: Your are now offline in Jabber network. Thank you for
		    using SIP-Jabber gateway.
		</simpara>
		<simpara>
		    Do you know the reason why these messages appear and if it
		    is possible to avoid them?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    that usually occurs because Jabber server crashes or, for
		    some unknown reasons, the <acronym>TCP</acronym> connection
		    with jabber server is down. The second message is to inform
		    the users that they are no more connected to Jabber
		    network.
		</simpara>
		<simpara>
		    There is no way to disable sending these messages. I may
		    introduce a new parameter to enable/disable them. But I am
		    not sure it is a good idea (users must be informed about
		    the changes of the status).
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    I would like know if SER support also the transmission protocol
		    <acronym>TCP</acronym>, or <acronym>TLS</acronym>.
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Yes, SER supports <acronym>TCP</acronym>. <acronym>TLS</acronym> is work
		    in progress.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    I'm trying to rewrite the to domain, as in:
		</simpara>
		<simpara>
		    To: &lt;sip:19723236598@augustvoice.net&gt; ;user=phone.
		</simpara>
		<simpara>
		    I can't find any rewrite* function to rewrite the
		    to domain.
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    The proxy is not supposed to touch To or From URIs. Only Request-URI can
		    be changed.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    When the messenger sends a message for the jabber gateway the following
		    error occurs:
		</simpara>
		<simpara>
		    <quote>ERROR: Your message was not sent. You do not have permissions to use the
			gateway.</quote>
		</simpara>
		<simpara>
		    What could be the problem here?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    You have to create the database for SIMPLE2Jabber gateway and after that you
		    have to associate SIP users with Jabber IDs.
		</simpara>
		<simpara>
		    <ulink
			url="http://www.iptel.org/ser/doc/jabgw/xjab-manual.html#5._Admins_guide">
			http://www.iptel.org/ser/doc/jabgw/xjab-manual.html#5._Admins_guide
		    </ulink>
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Authentication doesn't work!!!  Where am I wrong?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Windows Messenger needs same string both realm and
		    SIP_DOMAIN, and it wants to reach this address oh your
		    network.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    I was wondering whether there is a ser module for
		    <acronym>SIP-CGI</acronym>. Or whether there are attempts
		    at creating one?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    There is no <acronym>SIP-CGI</acronym> module for SER. The
		    most similar, though much simpler, functionality is
		    provided by the exec module.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    How could I integrate SIP and H323 together?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    You will need a SIP to H.323 gateway. SER is a SIP proxy
		    only, it cannot act as H.323 gateway.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    How can I contribute code ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    FIXME.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    What, if anything, should the SER server do with a OPTIONS
		    method?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    FIXME.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    What should I do to see the detailed debugs?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Set debug=9 in your config script.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Is it possible for SER to forward a call to another phone
		    if the recipient does not answer?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    This could be achieved with sequential forking (by trying
		    contacts in decreasing q order), but sequential forking is
		    not yet supported in SER.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Is it possible to configure SER so that it only has the
		    latest registration?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    FIXME.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    mkdir: cannot create directory `/usr/local/etc/ser': Permission denied
		    make: *** [/usr/local/etc/ser] Error 1
		</simpara>
		<simpara>
		    what may be the error ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    You have no write permissions to the directory, try it again as root.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Can a proxy terminate a call ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    No, proxy cannot do that because it is transaction stateful only.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    i want to know what accounting support is available using
		    MySql. what settings need to be done? are any records
		    generated and placed in the database? how do i access these
		    records?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    FIXME.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    It seems that SER supports only strict routing. Please tell
		    me if it supports loose routing. if yes, do i have to
		    enable it somehow?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Yes, it does support loose routing as of 0.8.11, you don't have to enable it.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    I need to know if currently generated call records can be
		    put into MySql database. if yes, is there any tool
		    available to view these records?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Serweb can do it.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    If I want to use SER commercially do I need to purchase any
		    license for the same, as long as I'm not going to charge
		    the customer for the SIP service but only for the
		    termination of calls.
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    SER is distributed under the GPL so you don't need to purchase any
		    license, you can use it freely.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Is there a support for accounting ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Yes, see acc module.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    What tool can I use to capture SIP traffic ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    <ulink url="http://ngrep.sourceforge.net">ngrep</ulink>, <ulink
			url="http://www.ethereal.com">ethereal</ulink>, <ulink
			url="http:/www.tcpdump.org">tcpdump</ulink>.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Is there ENUM support in SER ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Yes, see enum module.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Do you have any experience (or know) where I can get some info on setting up
		    an ENUM testbed with <acronym>DNS</acronym> and Linux?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    if by testbed you mean running your own e164.arpa root, then you simply
		    make your dns server a root for e164.arpa domain by adding line
		</simpara>
		<programlisting>
primary         e164.arpa               e164.arpa.db
		</programlisting>
		<simpara>
		    into your named.boot file and then by populating file
		    e164.arpa.db with your enum entries.  Below is an example.
		</simpara>
		<programlisting>
$ORIGIN .
$TTL 0  ; 0 seconds
e164.arpa               IN SOA  foo.fi. hostmaster.foo.fi. (
200204681  ; serial
28800      ; refresh (8 hours)
7200       ; retry (2 hours)
604800     ; expire (1 week)
86400      ; minimum (1 day)
)
NS      foo.fi.
$ORIGIN e164.arpa.
$ORIGIN 8.5.3.e164.arpa.
$ORIGIN 9.3.8.1.5.6.2.8.5.3.e164.arpa.
3.1   NAPTR   1 1 "u" "E2U+sip" "!(^.*$)!sip:abc@bar.fi!i" .
		</programlisting>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Will SER support <acronym>STUN</acronym> in the future?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    <acronym>STUN</acronym> is a protocol operated separately from SER
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Is there any way to show active calls (dialed number, duration, originating
		    <acronym>IP</acronym>...) with SER?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    No, ser is not call stateful.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    If I'm working with RFC2543 compliant phones (such as
		    <acronym>ATA</acronym>) may I use loose routing?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Yes, loose routing is backwards compatible.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    How can I configure radiator for digest authentication?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    In case of radiator, you don't need to do anything special in the
		    configuration.  Just install the latest radiator and then make sure your
		    config can handle the service-types you have configured ser to use. For
		    example, you can have
		</simpara>
		<programlisting>
&lt;Handler Service-Type=SIP&gt;
...
&lt;/AuthBy&gt;
		</programlisting>
		<simpara>
		    Or whatever your strategy is.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    How can I configure radiator for digest authentication?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    see freeradius-0.8.1/doc/rlm_digest
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Trying to create alias, I am getting the following message:
		</simpara>
		<simpara>
		    <quote>400 Table 'aliases' Not Found</quote>
		</simpara>

	    </question>
	    <answer>
		<simpara>
		    You must have lookup(<quote>aliases</quote>) somewhere in your script.
		</simpara>
	    </answer>
	</qandaentry>

	<qandaentry>
	    <question>
		<simpara>
		    Also how much shared memory does SER allocate by default?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    32 Mb.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    How can I identify what ser doesn't like about the config file?
		</simpara>
	    </question>
	    <answer>
		<programlisting>
0(612) parse error (81,1-10): syntax error
0(612) parse error (91,1-6):
                    ^^^^^^
		</programlisting>
		<simpara>
		    These are the line number and the characters. So look in line 81 and 91 of
		    your config file for errors.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<programlisting>
Warning: 392 216.87.144.203:5060 "Noisy feedback tells:  pid=19604
         req_src_ip=216.87.144.205 req_src_port=5065 in_uri=sip:addaline.com
         out_uri=sip:addaline.com via_cnt==1".
		</programlisting>
		<simpara>
		    I want to get rid of these?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Use sip_warning=no
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Is SER a gatekeeper ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    No, SER is a SIP proxy.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Is there an example of the session timer with SER somewhere?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    That's a theoretical SIP option today, SER is not supporting
		    session-timer.  We gave it a try more than one year ago and gave up due to
		    interop problems.  The specification was developing at that time so quickly
		    that there was not any UA which would work with another one correctly.
		</simpara>
		<simpara>
		    Once the interoperability gets better, it could be worth implementing. It is
		    in general a nice mechanism for avoiding session state silo in network,
		    which is good for scalability.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Could someone point me where I can read about this www_authorize()
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    The documentation is in sip_router/modules/auth_db/doc
		</simpara>
		<simpara>
		    The function tries to verify user's credentials. It returns 1 if they are
		    correct and -1 if not.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    I'm new to SER and would like to set up a test lab with a couple different
		    ip phones / adapters to learn from. Could someone recommend a few devices
		    that we could use for that purpose?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Hardphones: Grandstream, Cisco, ATA, Mitel, Pingtel, Snom
		</simpara>
		<simpara>
		    Softphones: kphone, Xten, Windows Messenger, Hotsip client.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    how can i configure my ser for multiple domains?
		    For example andrea@foo.bar and andrea@foo2.bar on the same server?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    If you are using 0.8.10, it is a manual process--copy and paste
		    <acronym>SQL</acronym> tables, have a table set for each served domain, and
		    refer to the table names from your scripts. E.g.,
		</simpara>
		<simpara>
		    if (uri=~"domain1.com") { lookup("domain1"); ...
		</simpara>
		<simpara>
		    With 0.8.11 you can automate the process quite a lot. Authorization
		    functions with realm set to empty value take domain name from SIP
		    requests. User location database keeps track of domains as well. The
		    "domain" modules allows you to keep track of maintained domains
		    in a way which does not take changing scripts.
		</simpara>
		<simpara>
		    It is possible there are some magic options in domain/usrloc/auth_db/
		    registrar/auth modules you need to turn on to enable multidomain
		    operation--I don't remember these by heart, hopefuly some people
		    on the mailing list do.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    I am testing SER version 0.8.11pre29 with two <acronym>MSN</acronym>
		    Messenger(v4.6) clients. I tried to send the following MESSAGE through SER
		    with record-route header added by SER. However, the receiving
		    <acronym>MSN</acronym> client responded with a 400 Bad Request for that
		    message.
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    It's <acronym>MSN</acronym> Messenger's bug--lr parameter is not
		    recognized as specified in RFC3261. Use
		</simpara>
		<simpara>
		    modparam("rr", "enable_full_lr", 1)
		</simpara>
		<simpara>
		    in ser config file to make it working.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    I have got an H.323 Mediatrix <acronym>FXO</acronym> gateway. It is not SIP
		    based. May I use it with SER ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    No.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    It is possible to process the voicemail request on the same instance I use to
		    forward/register users ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Yes.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    How can I checkout the sources from the <acronym>CVS</acronym> ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    FIXME.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Are there any binary packages available ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    FIXME.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    What is symmetric signaling ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    FIXME.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    What is SIP, <acronym>SIMPLE</acronym>, SDP, Proxy, Registrar, Redirect server ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    FIXME.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    SER starts normally with the default <filename>ser.cfg</filename>. When I
		    uncommented the line load module
		    "/usr/local/lib/ser/modules/mysql.so" to load mysql.so,
		    everything seems normally. But actually, ser stops abnormally.
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    mysql module is excluded from compilation/installation by default
		    (dependencies issue). You can compile it separately with: make modules
		    modules=modules/mysql. Also, you can add it in the list of the default
		    compiled modules with: make all include_modules="mysql".  Then
		    use: make install include_modules="mysql". To install only the
		    modules: make install-modules include_modules="mysql" or only
		    the mysql module: make install-modules modules=modules/mysql.
		</simpara>
	    </answer>
	</qandaentry>

	<qandaentry>
	    <question>
		<simpara>
		    Is ser compatible with MySQL 4.x ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Yes.
		</simpara>
	    </answer>
	</qandaentry>

	<qandaentry>
	    <question>
		<simpara>
		    Is the SIP Express Router (SER) free ? Or do we need to pay ? Because my boss worry
		    about that, please help me.
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Yes, it is free. See
		    <ulink url="http://cvs.berlios.de/cgi-bin/viewcvs.cgi/*checkout*/ser/sip_router/COPYING?rev=HEAD&amp;content-type=text/plain">
			http://cvs.berlios.de/cgi-bin/viewcvs.cgi/*checkout*/ser/sip_router/COPYING?rev=HEAD&amp;content-type=text/plain
		    </ulink>
		</simpara>
	    </answer>
	</qandaentry>

	<qandaentry>
	    <question>
		<simpara>
		    Mar 10 16:46:33 ttalksvr /usr/sbin/ser[6592]: connect_db(): Can't connect to
		    local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Make sure your MySQL server is running.
		</simpara>
	    </answer>
	</qandaentry>

	<qandaentry>
	    <question>
		<simpara>
		    I get the following error:
		</simpara>
		<screen>
0(5164) db_init(): Error while trying to connect database
0(5164) mod_init(): Error while connecting database
0(5164) init_modules(): Error while initializing module usrloc
</screen>
		<simpara>
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Modules using database have variable called db_url which contains username,
		    password, hostname, and name of the database. Make sure the settings are
		    correct. See module documentation for more information.
		</simpara>
	    </answer>
	</qandaentry>

	<qandaentry>
	    <question>
		<simpara>
		    Does MySQL/Postgres/Whatever have to reside on localhost?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    No.
		    </simpara>
	    </answer>
	</qandaentry>

	<qandaentry>
	    <question>
		<simpara>
		    Why do I need a database ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Many modules need the database. Authentication modules retrieve users'
		    credentials from the database, user location module can be configured to store
		    registered bindings into the database, accounting module can use database to
		    store CDR and so on.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    Which database engines are supported ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Currently we support MySQL, Postgres and plaintext files.
		</simpara>
	    </answer>
	</qandaentry>
	
	<qandaentry>
	    <question>
		<simpara>
		    Which database engine should I use ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    That depends on your requirements. Performance aspects are probably not very
		    important. The most stable and proven is MySQL module. Also serctl utility works
		    well with this database.
		</simpara>
		<simpara>
		    Another option is postgres support which was donated by Greg Fausak. The module
		    still new and not that mature (read proven) yet. People using the module
		    reported that it worked well.
		</simpara>
		<simpara>
		    Last option is dbtext module which uses plaintext files to store the data. This
		    module is somewhat experimental and shouldn't be used for any serious
		    deployment. The module is quite slow, but it can fit well into small
		    installations containing only a couple of users or demos where you need to change
		    the content of the database often by hand.
		</simpara>
	    </answer>
	</qandaentry>

	<qandaentry>
	    <question>
		<simpara>
		    Is there <quote>send IM</quote> page for sending instant messages only or does
		    it accept replies as well (i.e. does it act like a full UA) ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    It can send messages only.
		</simpara>
	    </answer>
	</qandaentry>
	
	<qandaentry>
	    <question>
		<simpara>
		    I have serweb running. I'm able to connect to <acronym>MySQL</acronym> fine. But
		    it doesn't seem like the form params are getting assigned to variables. Is there
		    something obvious I'm missing?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Please check if <varname>register_globals</varname> is set to On in your
		    <filename>php.ini</filename> file. The option is set off by default due to
		    security reasons.
		</simpara>
	    </answer>
	</qandaentry>
	
	<qandaentry>
	    <question>
		<simpara>
		    Can somebody tell me how to configure the serweb? Which directory should I put
		    those files and which file and parameters should I modify. Or maybe this
		    question was asked previously by somebody already, then please provide me a like
		    to those answers.
		</simpara>
	</question>
	    <answer>
		<simpara>
		    Dan Austin's HOWTO (see SER webpage) is probably the currently most extensive
		    documentation available.
		</simpara>
	    </answer>
	</qandaentry>
	
	<qandaentry>
	    <question>
		<simpara>
		    Trying to load the serweb page I get the following error message: Fatal error:
		    Call to undefined function: mysql_pconnect() in
		    /var/www/html/phplib/db_mysql.inc on line 73
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Configure <acronym>PHP</acronym> to load the MySQL extension.
		</simpara>
	    </answer>
	</qandaentry>
	
	<qandaentry>
	    <question>
		<simpara>
		    I can open the page and even make changes and save them, but I'm receiving the
		    following warning message: Warning: fopen("/tmp/ser_fifo",
		    "w") ? Permission denied in /var/www/html/serweb/functions.php on
		    line 172 Sorry - cannot open fifo.
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Make sure that the user under which the web server is running has read and write
		    access to the <acronym>FIFO</acronym>.
		</simpara>
	    </answer>
	</qandaentry>
    
	<qandaentry>
	    <question>
		<simpara>
		    Is there a way to add/edit/view aliases from serweb?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    When new user confirm registration, new numeric alias is created. There is no
		    another way to add or edit aliases from serweb.
		</simpara>
	    </answer>
	</qandaentry>
	
	<qandaentry>
	    <question>
		<simpara>
		    I am getting a "Forbidden" reply from the Apache. The Apache is
		    pointing to the index.php for the serweb. I've only changed the IP address of
		    the local host to 127.0.0.1 in the config.php. Does anyone have any suggestions
		    ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Check if the file/folder has read permission for everybody.
		</simpara>
	    </answer>
	</qandaentry>

	<qandaentry>
	    <question>
		<simpara>
		    I get following warnings and error on NetBSD when I call
		    user_interface/index.php:
		    </simpara>
		<simpara>
		    [Wed Jul 16 09:56:53 2003] [error] PHP Warning: Call-time pass-by-reference has
		    been deprecated - argument passed by value; If you would like to pass it by
		    reference, modify the declaration of [runtime function name]().  If you would
		    like to enable call-time pass-by-reference, you can set
		    allow_call_time_pass_reference to true in your INI file.  However, future
		    versions may not support this any longer.  in
		    /usr/pkg/share/httpd/htdocs/iptel/phplib/user.inc on line 72 [Wed Jul 16
		    09:56:53 2003] [error] PHP Fatal error: Call to undefined function:
		    mysql_pconnect() in /usr/pkg/share/httpd/htdocs/iptel/phplib/db_mysql.inc on
		    line 73
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Simply do what the text says: enable allow_call_time_pass_reference in
		    <filename>/usr/pkg/etc/php.ini</filename> and install <acronym>PHP</acronym>
		    MySQL support.
		</simpara>
	    </answer>
	</qandaentry>
	
	<qandaentry>
	    <question>
		<simpara>
		    I started the webserver and got the following message: Starting up of httpd:
		    [Thu Aug 14 15:16:51 2003] alert ] httpd: Could not determine the of server
		    fully qualified domain name, using 127.0.0.1 for ServerName 
		</simpara>
		<simpara>
		    Does anyone know where is the problem ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    Set ServerName variable in the configuration file of your webserver to hostname
		    of your computer.
		</simpara>
	    </answer>
	</qandaentry>
	<qandaentry>
	    <question>
		<simpara>
		    What version of ser should I use with serweb from the CVS ?
		</simpara>
	    </question>
	    <answer>
		<simpara>
		    CVS version of serweb is aligned to the stable branch of ser. It will not work
		    with ser 0.8.10 because the database tables have been changed recently.
		</simpara>
	    </answer>
	</qandaentry>

    </qandaset>
</section>

