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(a)pernau.at>
To: sr-users(a)lists.sip-router.org
Subject: Re: [SR-Users] Asterisk Gateway OPTIONS relay
Message-ID: <51CD4706.7080600(a)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@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@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(a)pernau.at>
To: sr-users(a)lists.sip-router.org
Subject: Re: [SR-Users] Asterisk Gateway OPTIONS relay
Message-ID: <51CD4706.7080600(a)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@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@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
_______________________________________________