Mahi Haile wrote:
The part about getting started without an SIP proxy was particularly useful. I have the simple services running, and that will help me focus on the applications. SER on my box is not quite working (it seems to start, but I see no processes), but I will try and figure that out
if you don't see any ser processes running it is not running. increase debug level in the ser config (e.g. debug=5) and look in syslog or run it with log_stderr=yes. also try with the ser-basic.cfg; and if your DNS is not really set up then use IP addresses as domain in the phone and for forwarding.

if you want to start hacking on your applicaitons, be sure to also check out DSM (see apps/dsm/doc).

Stefan

later. Thank you very much, and I might end up bugging you a bit more depending on how it goes.
-Mahi

On Tue, Mar 2, 2010 at 1:36 PM, Stefan Sayer <[email protected] <mailto:[email protected]>> wrote:

    Hi,


    Mahi Haile wrote:

        Hi all,
        I am a grad student in CS, and has been recently interested in
        voice solutions. I am a complete beginner in this area. I am
        starting out with SEMS, and using the included SER module.

        I have built sems, and thats where I am. Reading though the
        documentations and presentations, I could not find an end to end
        tutorial that covers everything. In most of the SEMS
        presentations, I see a 'Proxy' box that sends requests to SEMS.

    in SIP usually you have some registrar where the phones register to,
    and a ("home") proxy through which the calls are placed. you can
    easily set up this for a small to medium system with ser, sip-router
    or kamailio or the like, and there are lots of documentation and
    tutorials on how to do that.

    with ser for example, if you are on debian, you can basically
    download the source package (e.g. checkout from svn or download from
    ftp.iptel.org/pub/ser <http://ftp.iptel.org/pub/ser>), create the
    ser-oob package (cd ser-x.y.z; ln -s pkg/debian debian;
    dpkg-buildpackage -rfakeroot -us -uc), install it (dpkg -i ser_x.y.z
    ser-oob_x.y.z), configure it (dpkg-reconfigure ser-oob) and adapt
    the ser-oob configuration file (/etc/ser/ser-oob.cfg), which does
    implement all you need to start.

    now, lets say you want to have some certain announcement played for
    the case that the user dials a certain number, e.g. starting with
    300. In ser (kamailio, sip-router, opensips etc), you can catch
    calls to that number and send them to SEMS, like this:

     if (uri=~"sip:300.*") {
          t_relay_to_udp("192.168.5.106","5080");
          break;
     }

    where the IP address/port is the SIP listen address of your SEMS
    server (set in sems.conf).

    In the ser-oob config, the best place to do this is in SITE-SPECIFIC
    route, and there is also already an example in there I think
    (forwarding to iptel.org <http://iptel.org> conference for 000777).

    Now you have all INVITEs to 300 sent to your SEMS server. You tell
    SEMS to load and run the application announcement, by setting in
    /etc/sems/sems.conf:
     load_plugins=wav;ilbc;announcement;sipctrl
     application=announcement
    and possibly set the announcement to play in announcement.conf (in
    /etc/sems/etc/announcement.conf).
    You should also set the SIP listen address and port in sems.conf.

    Now all calls to 300 go to the SEMS server that runs the
    announcement  application, and you should hear that playing on your
    phone.

    Now lets say that you wanted to have your SEMS server not do only
    announcements, but also an echo service, if you call the number
    'echo'. So you need to load both echo and announcement applications,
    and somehow the proxy needs to tell SEMS which applicaiton should be
    executed.

    There is several methods how to select an application in SEMS (by
    RURI user part, RURI parameter, regexp matching on RURI, or a
    separate header), and the preferred way is to add some special
    header to the INVITE, P-App-Name.

    so, in sems.conf you set:
     load_plugins=wav;ilbc;announcement;sipctrl;session_timer;echo
     application=$(apphdr)

    and in the ser-oob.cfg you do:
     if (uri=~"sip:300.*") {
          append_hf("P-App-Name: announcement\r\n");
          t_relay_to_udp("192.168.5.106","5080");
          break;
     }

     if (uri=~"sip:echo.*") {
          append_hf("P-App-Name: echo\r\n");
          t_relay_to_udp("192.168.5.106","5080");
          break;
     }

    Now lets say there is an application in SEMS which needs some
    parameters (e.g. the email address to send the voicemail to, or the
    user ID for voicebox). Usually, the proxy has looked up the user
    profile from some kind of DB anyway, so it makes sense to just add
    that information to the INVITE and not have the voicemail or
    voicebox server care for databases and stuff and look it up again.
    So there is a header called P-App-Param which SEMS understands and
    gives as parameters to the applications. For voicebox that is for
    example:

           if (uri=~"^sip:1000") {
             append_hf("P-App-Name: voicebox\r\n");
             append_hf("P-App-Param:
    [email protected]%|;[email protected]%|;lng=%$f.lang%|;uid=%$f.uid%|
    ;did=%$f.did%|;\r\n");
             rewritehostport("mysemsserver.ip.addr:5080");
             route(FORWARD);
           }

    or for leaving a voicemail (in failure_route, see the comment in
    ser-oob.cfg)
           append_hf("P-App-Name: voicemail\r\n");
           append_hf("P-App-Param:
    
mod=%$t.voicemail%|;eml='%$t.email%|';[email protected]%|;snd='%[email protected]%|'
    ;[email protected]%|;uid=%$t.uid%|;did=%$t.did%|;");
           rewritehostport("mysemsserver.ip.addr:5080");
           route(FORWARD);

    Of course, pretty much the same applies to
    kamailio/sip-router/opensips config, sometimes the syntax is a
    little different.

    I hope that gets you somehow started... also note that each sems
    application has got documentation; Readme files in doc/ and for the
    examples under the source tree. The 1.1 documenation is also online
    at iptel.org/sems/ <http://iptel.org/sems/>.

    hth
    Stefan

    P.S. For testing, I often use a very simple ser configuration, have
    a look at ser-basic.cfg in the ser source tree under
    etc/ser-basic.cfg .  I put the checks for r-uri between REGISTER
    handling and USRLOC lookup.

    P.S. 2: for testing simple things like announcement or some service,
    you can also do it completely without setting up a SIP proxy:
    register two users A and B at iptel.org/service
    <http://iptel.org/service>, load registrar_client;uac_auth in
    sems.conf, set the A user's credential in registrar_client.conf,
    register ekiga to your iptel.org <http://iptel.org> account B, and
    call the number of A  - this way the iptel.org <http://iptel.org>
    proxy sends the call to SEMS just like any other SIP phone.


        As a very basic process, here is what I would like to do: call
        from my Ekiga softphone and hear an announcement served by Sems.
        My question is, please point me to a tutorial on how to set up
        the complete system. What pieces do I need besides sems, and how
        do they interact? After that, I would like to find out how to
        add more users, so that they have separate voiceboxes etc.

        Thank you very much,


        ------------------------------------------------------------------------

        _______________________________________________
        Sems mailing list
        [email protected] <mailto:[email protected]>
        http://lists.iptel.org/mailman/listinfo/sems



-- Stefan Sayer
    VoIP Services Consulting and Development

    Warschauer Str. 24
    10243 Berlin

    tel:+491621366449
    sip:[email protected] <mailto:sip%[email protected]>
    email/xmpp:[email protected] <mailto:xmpp%[email protected]>





--
Stefan Sayer
VoIP Services Consulting and Development

Warschauer Str. 24
10243 Berlin

tel:+491621366449
sip:[email protected]
email/xmpp:[email protected]


_______________________________________________
Sems mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/sems

Reply via email to