Hello,
  I started testing OpenSIPS with my asterisk cluster.
For this testing configuration I'm using only one asterisk server of
the pool. (the registration is done on asterisk server)

The OpenSIPS configuration routing part is:

route{

        if (!mf_process_maxfwd_header("10")) {
                sl_send_reply("483","Too Many Hops");
                exit;
        }

        xlog("SIP route info: [$fu/$tu/$ru/$ci]");
        xlog("SIP method: $rm");

        if (!has_totag()) {
                # initial request
                record_route();
        }
        else {
                # sequential request - obey the indicated route
                loose_route();
                t_relay();
                exit;
        }

        # CANCEL processing
        if (is_method("CANCEL"))
        {
                if (t_check_trans())
                        t_relay();
                exit;
        }

        if (is_method("OPTIONS")) {
                t_relay();
                xlog("OPTIONS for: [$fu/$tu/$ru/$ci]");
                exit;
        }

        # from now on we have only the initial request
        # select the node that'll handle the call
        # different method is used for INVITE/REGISTER requests
        # unknown methods are rejected here

        xlog("First route:
[USER:$au/CALL-ID:$ci/FROM-TAG:$ft/FROM-URI:$fu/FROM-URI-USER:$fU/METHOD:$rm]");

        if (is_method("INVITE")) {
                if (!ds_select_dst("1", "5")) {
                        xlog("Service unavailable for ds_select_dst[INVITE]");
                        send_reply("503","Service Unavailable");
                        exit;
                }
        }
        else if (is_method("REGISTER")) {
                if (!ds_select_dst("1", "5")) {
                        xlog("Service unavailable for ds_select_dst[REGISTER]");
                        send_reply("503","Service Unavailable");
                        exit;
                }
        }
        else {
                send_reply("405","Method Not Allowed");
                exit;
        }

        # route the request
        if (!t_relay()) {
                sl_reply_error();
        }
}


the dispatcher.list is simple:
1 sip:192.168.6.131:5060


the registration part, on asterisk seems OK (I think), but for every
SIP phone in 'sip show peers' I saw only the openSIPS IP address:
Name/username              Host            Dyn Nat ACL Port     Status
2001/2001                  192.168.6.130    D   N      5060     OK (1342 ms)
2002/2002                  192.168.6.130    D   N      5060     OK (1403 ms)

My asterisk dialplan is simple:
exten => 101,1,Answer()
exten => 101,n,Playback(demo-congrats)
exten => 101,n,Hangup()

exten => _XXXX,2,NoOp(internal context called on Server A to ${EXTEN},
CALLERID_num ${CALLERID(num)}, CALLERID_num_f2 ${CALLERID(num):0:2})
exten => _XXXX,3,Dial(SIP/${EXTEN},15)


when, from phone 2001 or 2002 I place a call to 101 everything works
fine, but when I call 2001 from 2002 (and vice-versa) I can't place
the call, and in asterisk log I found:

    -- Executing [2...@internal:1] NoOp("SIP/2001-0000000f", "2002")
in new stack
    -- Executing [2...@internal:2] NoOp("SIP/2001-0000000f", "internal
context called on Server A to 2002, CALLERID_num 2001, CALLERID_num_f2
20") in new stack
    -- Executing [2...@internal:3] Dial("SIP/2001-0000000f",
"SIP/2002,15") in new stack
  == Using SIP RTP CoS mark 5
    -- Called 2002
    -- Got SIP response 482 "Loop Detected" back from 192.168.6.130
    -- Now forwarding SIP/2001-0000000f to 'Local/2...@internal'
(thanks to SIP/2002-00000010)
    -- Executing [2...@internal:1] NoOp("Local/2...@internal-187c;2",
"2002") in new stack
    -- Executing [2...@internal:2] NoOp("Local/2...@internal-187c;2",
"internal context called on Server A to 2002, CALLERID_num 2001,
CALLERID_num_f2 20") in new stack
    -- Executing [2...@internal:3] Dial("Local/2...@internal-187c;2",
"SIP/2002,15") in new stack
  == Spawn extension (internal, 2002, 3) exited non-zero on
'Local/2...@internal-187c;2'
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Executing [2...@internal:4] Hangup("SIP/2001-0000000f", "") in new stack
  == Spawn extension (internal, 2002, 4) exited non-zero on 'SIP/2001-0000000f'

Could you please give me some hints on where I am wrong?
registering directly on asterisk box, bypassing OpenSIPS, the call
works correctly.

thanks so much

-- 
Stefano Sasso
http://stefano.dscnet.org/

_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to