[Serusers] acc question.

Jan Janak J.Janak at sh.cvut.cz
Tue Jan 7 21:27:35 CET 2003


Hello, comments inline.

On 06-01 23:54, Greg Fausak wrote:
> I really hate answering my own question :-)
> 
> >                } else if(method=="BYE") {
> >                        setflag(1);
> >                        forward(uri:host, uri:port);
> 
> I changed this to t_relay() and then I get the BYE
> ACC output in the syslog file.  This explains something else
> (I think).  Sometimes the BYE would work, sometimes it would
> not make it all the way to the other device (either the PSTN gateway or the
> UA).  That is probably because forward() simply bounces the
> packet via UDP and the UDP can fail ???  t_relay() retries??
> Does this make sense?

  Yes, forwards simply sends the BYE and doesn't take care if the message
  was delivered or not. On the other hand, t_relay() will send the BYE
  using transaction module. That means, it sends the BYE out, waits for
  some time and then tries to resend it. Once the transaction module receives
  a final response for the BYE, it stops resending.

  Transaction module must be used if you want accounting. 

  Jan.

> 
> ---greg
> 
> >
> >Hi,
> >
> >I am trying to create a basic script for routing calls to and from
> >the PSTN.  I have experimented with many scripts over the last month,
> >this included script is an example.  I can use a UA on my
> >laptop called 'estara' and REGISTER with my ser sip server.
> >I can make a phone call (INVITE) to the PSTN.  I can hang up the call
> >from either end (BYE) and everything seems to work well.
> >
> >I am trying to get accounting working.  I see the call acceptance
> >record in my syslog file:
> >
> >Jan  7 00:21:09 build ser[3507]: ACC: transaction answered: method=INVITE, i-uri=sip:92143357976 at build.august.net, o-uri=sip:2143357976 at 64.90.42.16:5060, call_id= 847b3d22-131d-46b0-abcb-dc8e6a9f32b5 at 192.168.100.100, from= greg <sip:1107 at build.august.net>;tag=3a7b9c52, code=200
> >
> >However, I can't get the 'BYE' event to record the transaction to the
> >syslog file.  The 'BYE' event is bouncing through my SIP server.
> >Can someone give me a hint?
> >
> >Thank you,
> >---greg
> >Greg Fausak
> >
> >Included file----example.cfg----------------------------------------
> >debug=1          # 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
> >fifo="/tmp/ser_fifo"
> >
> >loadmodule "/usr/local/lib/ser/modules/sl.so"
> >loadmodule "/usr/local/lib/ser/modules/tm.so"
> >loadmodule "/usr/local/lib/ser/modules/acc.so"
> >loadmodule "/usr/local/lib/ser/modules/rr.so"
> >loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
> >loadmodule "/usr/local/lib/ser/modules/usrloc.so"
> >loadmodule "/usr/local/lib/ser/modules/registrar.so"
> >modparam("acc", "log_level", 1)
> >modparam("acc", "acc_flag", 1 )
> >
> >route{
> >        # filter too old messages
> >        if (!mf_process_maxfwd_header("10")) {
> >                log("LOG: Too many hops\n");
> >                sl_send_reply("483","Too Many Hops");
> >                break;
> >        };
> >        if (len_gt( max_len )) {
> >                sl_send_reply("513", "Wow -- Message too large");
> >                break;
> >        };
> >
> >        /* ********* RR ********************************** */
> >
> >        /* Do strict routing if route headers present */
> >        rewriteFromRoute();
> >        /* record-route INVITEs -- all subsequent requests must visit us */
> >        if (method=="INVITE") {
> >                addRecordRoute();
> >        } else if (method=="REGISTER") {
> >                log("here is a register");
> >                save("location");
> >                break;
> >        };
> >
> >        # now check if it really is a PSTN destination which should be handled
> >        # by our gateway; if not, and the request is an invitation, drop it --
> >        # we cannot terminate it in PSTN; relay non-INVITE requests -- it may
> >        # be for example BYEs sent by gateway to call originator
> >        if (!uri=~"sip:9[2-9][0-9]{9}@.*") {
> >                if (method=="INVITE") {
> >                        sl_send_reply("403", "Call cannot be served here");
> >                } else if(method=="BYE") {
> >                        setflag(1);
> >                        forward(uri:host, uri:port);
> >                } else {
> >                        forward(uri:host, uri:port);
> >                };
> >                break;
> >        };
> >
> >        # account completed transactions via syslog
> >        setflag(1);
> >
> >        strip(1);
> >
> >
> >        rewritehostport("64.90.42.16:5060");
> >
> >        # forward the request now
> >        if (!t_relay()) {
> >                sl_reply_error();
> >                break;
> >        };
> >}
> >_______________________________________________
> >Serusers mailing list
> >serusers at lists.iptel.org
> >http://lists.iptel.org/mailman/listinfo/serusers
> >
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20030107/7ea4a31f/attachment.pgp>


More information about the sr-users mailing list