[SR-Users] Asterisk Gateway OPTIONS relay

Ian French fretec at gmail.com
Sun Jun 30 22:53:32 CEST 2013


Hey Klaus,
                Yes invites work fine from asterisk to UA

So should I record route() all the OPTIONS also?

        remove_hf("Route");
        if (is_method("INVITE|SUBSCRIBE|OPTIONS")){
                xlog("L_INFO","mylog: Recording Route. Method: [$rm].\n");
                record_route();
                }

Thanks Ian

Message: 2
Date: Fri, 28 Jun 2013 10:19:18 +0200
From: Klaus Darilion <klaus.mailinglists at pernau.at>
To: sr-users at lists.sip-router.org
Subject: Re: [SR-Users] Asterisk Gateway OPTIONS relay
Message-ID: <51CD4706.7080600 at pernau.at>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

Does the routing of INVITE from Asterisk to the UA work? If yes, just
make sure that you route the OPTIONS from Asterisk identical to the INVITE.

regards
Klaus

On 27.06.2013 15:28, Ian French wrote:
> Hey list,
>             I've been trying the relay OPTIONS messages from an asterisk
> server through kamailio to clients so to preserve the qualify feature in
> asterisk. So
>
>
> ASTERISK -----OPTIONS----> KAMAILIO ------------> UA
>
> UA ----OK-----> KAMAILIO ---OK-----> ASTERISK
>
> But I'm seeing floods of OPTIONS messages between asterisk and kamailio
> now. So much so that kamailio seems to deadlock introducing 10 -20
> second delays in processing messages
>
> firstly I've enabled the options.so but this is just enable remote
> monitoring of the application and in my FROMASTERISK route
>
> #!ifdef WITH_ASTERISK
> # Test if coming from Asterisk
> route[FROMASTERISK] {
> #       if($si==$sel(cfg_get.asterisk.
bindip)
> #                       && $sp==$sel(cfg_get.asterisk.bindport))
>
> if ((method==OPTIONS) && (uri=~"sip:.*[@]+.*")) {
>                  xlog("L_INFO","Options Reply from $ru to $fu\r\n");
>                  return 1;
> }
>
>          if(ds_is_from_list("2")){
>          $sht(forw=>$ft)=$si;
>                  xlog("L_INFO","INVITE: INVITE Passed From [$fu]
> Asterisk Cluster To [$rm:$au].\n");
>                  return 1;
> }
>             return -1;
> }
>
> I've included a debug below, stating *RFC3261 transaction matching
> failed. *Can anyone help or advise on how I should solve this
>
> Thanks in advance
> Ian
>
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> [parser/msg_parser.c:630]: SIP Request:
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> [parser/msg_parser.c:632]:  method:  <OPTIONS>
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> [parser/msg_parser.c:634]:  uri:     <sip:XXXXXXXX at P.P.P.P:5060>
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> [parser/msg_parser.c:636]:  version: <SIP/2.0>
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> [parser/parse_via.c:1287]: Found param type 232, <branch> =
> <z9hG4bK50c02ae3>; state=6
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> [parser/parse_via.c:1287]: Found param type 235, <rport> = <n/a>; state=17
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> [parser/parse_via.c:2300]: end of header reached, state=5
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> [parser/msg_parser.c:515]: parse_headers: Via found, flags=2
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> [parser/msg_parser.c:517]: parse_headers: this is the first via
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core> [receive.c:145]:
> After parse_msg...
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core> [receive.c:186]:
> preparing to run routing scripts...
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core> [socket_info.c:501]:
> grep_sock_info - checking if host==us: 10==10 &&  [P.P.P.P] == [P.P.P.P]
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core> [socket_info.c:504]:
> grep_sock_info - checking if port 5060 matches port 5060
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core> [socket_info.c:501]:
> grep_sock_info - checking if host==us: 10==10 &&  [A.A.A.A] == [P.P.P.P]
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core> [forward.c:446]:
> check_self: host != me
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> [parser/parse_to.c:174]: DEBUG: add_param: tag=as2c63e7cc
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> [parser/parse_to.c:803]: end of header reached, state=29
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> [parser/parse_to.c:803]: end of header reached, state=10
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> [parser/msg_parser.c:187]: DEBUG: get_hdr_field: <To> [32];
> uri=[sip:XXXXXXXX at P.P.P.P:5060]
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> [parser/msg_parser.c:167]: get_hdr_field: cseq <CSeq>: <102> <OPTIONS>
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: maxfwd [mf_funcs.c:85]:
> value = 70
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> [parser/msg_parser.c:201]: DEBUG: get_hdr_body : content_length=0
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> [parser/msg_parser.c:103]: found end of header
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: geoip [geoip_pv.c:395]:
> attempt to match: A.A.A.A
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: geoip [geoip_pv.c:401]:
> geoip PV updated for: A.A.A.A
> KamP /usr/local/sbin/kamailio[19288]: INFO: <script>: SIP message from
> unprohibited source IE (ip: A.A.A.A) - Packet accepted
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> [msg_translator.c:204]: check_via_address(A.A.A.A, A.A.A.A, 0)
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: siputils [checks.c:73]: no
> totag
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_lookup.c:1081]:
> DEBUG: t_check_msg: msg id=294 global id=293 T start=0xffffffffffffffff
> *KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_lookup.c:528]:
> t_lookup_request: start searching: hash=44040, isACK=0*
> **RFC3261 transaction matching failed*KamP
> /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_lookup.c:485]: DEBUG:
> RFC3261 transaction matching failed
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_lookup.c:711]: DEBUG:
> t_lookup_request: no transaction found*
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_lookup.c:1150]:
> DEBUG: t_check_msg: msg id=294 global id=294 T end=(nil)
> KamP /usr/local/sbin/kamailio[19288]: INFO: <script>: SIP Dialog From
> Asterisk Gatways A.A.A.A- No Authentication
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core> [socket_info.c:501]:
> grep_sock_info - checking if host==us: 10==10 &&  [P.P.P.P] == [P.P.P.P]
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core> [socket_info.c:504]:
> grep_sock_info - checking if port 5060 matches port 5060
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: siputils [checks.c:73]: no
> totag
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: rr [record.c:519]:
> rr_param_buf=<;nat=yes>
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_lookup.c:1379]:
> DEBUG: t_newtran: msg id=294 , global msg id=294 , T on entrance=(nil)
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_lookup.c:528]:
> t_lookup_request: start searching: hash=44040, isACK=0
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_lookup.c:485]: DEBUG:
> RFC3261 transaction matching failed
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_lookup.c:711]: DEBUG:
> t_lookup_request: no transaction found
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_hooks.c:374]: DBG:
> trans=0x2b8a8f4f0ed8, callback type 1, id 0 entered
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> [msg_translator.c:204]: check_via_address(A.A.A.A, A.A.A.A, 0)
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_funcs.c:388]: SER:
> new transaction fwd'ed
> KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core> [usr_avp.c:646]:
> DEBUG:destroy_avp_list: destroying list (nil)
> KamP last message repeated 5 times


>
>
> Message: 2
> Date: Fri, 28 Jun 2013 10:19:18 +0200
> From: Klaus Darilion <klaus.mailinglists at pernau.at>
> To: sr-users at lists.sip-router.org
> Subject: Re: [SR-Users] Asterisk Gateway OPTIONS relay
> Message-ID: <51CD4706.7080600 at pernau.at>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> Does the routing of INVITE from Asterisk to the UA work? If yes, just
> make sure that you route the OPTIONS from Asterisk identical to the INVITE.
>
> regards
> Klaus
>
> On 27.06.2013 15:28, Ian French wrote:
> > Hey list,
> >             I've been trying the relay OPTIONS messages from an asterisk
> > server through kamailio to clients so to preserve the qualify feature in
> > asterisk. So
> >
> >
> > ASTERISK -----OPTIONS----> KAMAILIO ------------> UA
> >
> > UA ----OK-----> KAMAILIO ---OK-----> ASTERISK
> >
> > But I'm seeing floods of OPTIONS messages between asterisk and kamailio
> > now. So much so that kamailio seems to deadlock introducing 10 -20
> > second delays in processing messages
> >
> > firstly I've enabled the options.so but this is just enable remote
> > monitoring of the application and in my FROMASTERISK route
> >
> > #!ifdef WITH_ASTERISK
> > # Test if coming from Asterisk
> > route[FROMASTERISK] {
> > #       if($si==$sel(cfg_get.asterisk.bindip)
> > #                       && $sp==$sel(cfg_get.asterisk.bindport))
> >
> > if ((method==OPTIONS) && (uri=~"sip:.*[@]+.*")) {
> >                  xlog("L_INFO","Options Reply from $ru to $fu\r\n");
> >                  return 1;
> > }
> >
> >          if(ds_is_from_list("2")){
> >          $sht(forw=>$ft)=$si;
> >                  xlog("L_INFO","INVITE: INVITE Passed From [$fu]
> > Asterisk Cluster To [$rm:$au].\n");
> >                  return 1;
> > }
> >             return -1;
> > }
> >
> > I've included a debug below, stating *RFC3261 transaction matching
> > failed. *Can anyone help or advise on how I should solve this
> >
> > Thanks in advance
> > Ian
> >
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> > [parser/msg_parser.c:630]: SIP Request:
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> > [parser/msg_parser.c:632]:  method:  <OPTIONS>
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> > [parser/msg_parser.c:634]:  uri:     <sip:XXXXXXXX at P.P.P.P:5060>
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> > [parser/msg_parser.c:636]:  version: <SIP/2.0>
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> > [parser/parse_via.c:1287]: Found param type 232, <branch> =
> > <z9hG4bK50c02ae3>; state=6
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> > [parser/parse_via.c:1287]: Found param type 235, <rport> = <n/a>;
> state=17
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> > [parser/parse_via.c:2300]: end of header reached, state=5
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> > [parser/msg_parser.c:515]: parse_headers: Via found, flags=2
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> > [parser/msg_parser.c:517]: parse_headers: this is the first via
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core> [receive.c:145]:
> > After parse_msg...
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core> [receive.c:186]:
> > preparing to run routing scripts...
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core> [socket_info.c:501]:
> > grep_sock_info - checking if host==us: 10==10 &&  [P.P.P.P] == [P.P.P.P]
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core> [socket_info.c:504]:
> > grep_sock_info - checking if port 5060 matches port 5060
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core> [socket_info.c:501]:
> > grep_sock_info - checking if host==us: 10==10 &&  [A.A.A.A] == [P.P.P.P]
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core> [forward.c:446]:
> > check_self: host != me
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> > [parser/parse_to.c:174]: DEBUG: add_param: tag=as2c63e7cc
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> > [parser/parse_to.c:803]: end of header reached, state=29
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> > [parser/parse_to.c:803]: end of header reached, state=10
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> > [parser/msg_parser.c:187]: DEBUG: get_hdr_field: <To> [32];
> > uri=[sip:XXXXXXXX at P.P.P.P:5060]
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> > [parser/msg_parser.c:167]: get_hdr_field: cseq <CSeq>: <102> <OPTIONS>
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: maxfwd [mf_funcs.c:85]:
> > value = 70
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> > [parser/msg_parser.c:201]: DEBUG: get_hdr_body : content_length=0
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> > [parser/msg_parser.c:103]: found end of header
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: geoip [geoip_pv.c:395]:
> > attempt to match: A.A.A.A
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: geoip [geoip_pv.c:401]:
> > geoip PV updated for: A.A.A.A
> > KamP /usr/local/sbin/kamailio[19288]: INFO: <script>: SIP message from
> > unprohibited source IE (ip: A.A.A.A) - Packet accepted
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> > [msg_translator.c:204]: check_via_address(A.A.A.A, A.A.A.A, 0)
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: siputils [checks.c:73]: no
> > totag
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_lookup.c:1081]:
> > DEBUG: t_check_msg: msg id=294 global id=293 T start=0xffffffffffffffff
> > *KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_lookup.c:528]:
> > t_lookup_request: start searching: hash=44040, isACK=0*
> > **RFC3261 transaction matching failed*KamP
> > /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_lookup.c:485]: DEBUG:
> > RFC3261 transaction matching failed
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_lookup.c:711]: DEBUG:
> > t_lookup_request: no transaction found*
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_lookup.c:1150]:
> > DEBUG: t_check_msg: msg id=294 global id=294 T end=(nil)
> > KamP /usr/local/sbin/kamailio[19288]: INFO: <script>: SIP Dialog From
> > Asterisk Gatways A.A.A.A- No Authentication
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core> [socket_info.c:501]:
> > grep_sock_info - checking if host==us: 10==10 &&  [P.P.P.P] == [P.P.P.P]
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core> [socket_info.c:504]:
> > grep_sock_info - checking if port 5060 matches port 5060
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: siputils [checks.c:73]: no
> > totag
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: rr [record.c:519]:
> > rr_param_buf=<;nat=yes>
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_lookup.c:1379]:
> > DEBUG: t_newtran: msg id=294 , global msg id=294 , T on entrance=(nil)
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_lookup.c:528]:
> > t_lookup_request: start searching: hash=44040, isACK=0
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_lookup.c:485]: DEBUG:
> > RFC3261 transaction matching failed
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_lookup.c:711]: DEBUG:
> > t_lookup_request: no transaction found
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_hooks.c:374]: DBG:
> > trans=0x2b8a8f4f0ed8, callback type 1, id 0 entered
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core>
> > [msg_translator.c:204]: check_via_address(A.A.A.A, A.A.A.A, 0)
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: tm [t_funcs.c:388]: SER:
> > new transaction fwd'ed
> > KamP /usr/local/sbin/kamailio[19288]: DEBUG: <core> [usr_avp.c:646]:
> > DEBUG:destroy_avp_list: destroying list (nil)
> > KamP last message repeated 5 times
> >
> >
> >
> >
> > _______________________________________________
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20130630/ed261a13/attachment-0001.html>


More information about the sr-users mailing list