[SR-Users] Kamailio + RTPEngine SIP Proxy...
Social Boh
social at bohboh.info
Wed Sep 7 08:56:57 CEST 2022
Maybe:
if (loose_route()) {
route(DLGURI);
if (is_method("BYE")) {
setflag(FLT_ACC); # do accounting ...
setflag(FLT_ACCFAILED); # ... even if the
transaction fails
} else if ( is_method("ACK") ) {
# ACK is forwarded statelessly
route(NATMANAGE);
*} else if ( is_method("NOTIFY") ) {**
** # Add Record-Route for in-dialog NOTIFY as per
RFC 6665.**
** record_route();**
** }*
route(RELAY);
exit;
}
---
I'm SoCIaL, MayBe
El 7/09/2022 a las 12:01 a. m., Jerry Kendall escribió:
>
> Hi There....
>
> Hope someone can point me in the right direction.
>
>
> The config below allows the device to register and will send the 200
> OK without issue
>
> It also allows the SUBSCRIBES to get in and a 202 Accepted is returned
> properly.
>
> It also allows the device to send OPTION keepalives and they get
> in/out OK
>
>
> The issue I am having at the moment is the outbount NOTIFY ofr the
> SUBS and outbound OPTIONS for heartbeat.
>
>
> Can someone please point me at what I need to change so the OUTBOUND
> messages get delivered.
>
>
> The issue I see is NAT related as the devices are behind firewalls at
> location A.
>
> The Kamailio system and the inner PBX are all on Public IP.
>
>
>
> ################
>
> debug=3
> memdbg=5
> memlog=5
>
> log_facility=LOG_LOCAL0
>
> fork=yes
> children=4
>
> listen=udp:192.168.1.3:8081
> port=8081
>
> #!define FLAG_FROM_SWITCH 1
> #!define FLAG_FROM_DEVICE 2
>
> mpath="/usr/lib/x86_64-linux-gnu/kamailio/modules/"
> loadmodule "tm.so"
> loadmodule "sl.so"
> loadmodule "pv.so"
> loadmodule "rr.so"
> loadmodule "textops.so"
> loadmodule "textopsx.so"
> loadmodule "usrloc.so"
> loadmodule "xlog.so"
> loadmodule "path.so"
> loadmodule "nathelper.so"
> loadmodule "siputils.so"
>
> # ----- nathelper params -----
> modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)")
>
>
> ####### Routing Logic ########
>
> request_route {
>
> route(CHECK_SOURCE_IP);
>
> # CANCEL processing
> if (is_method("CANCEL")) {
> if (t_check_trans()) {
> route(RELAY);
> }
> exit;
> }
>
> route(WITHINDLG);
>
> t_check_trans();
>
> if( is_method("OPTIONS") ) {
> t_relay();
> }
>
> if( is_method("REGISTER|SUBSCRIBE") ) {
> add_path();
> }
>
> if( is_method("INVITE|REFER") ) {
> record_route();
> }
>
> if( isflagset(FLAG_FROM_SWITCH) ) {
> t_on_reply("OUTBOUND_REPLY");
> } else {
> $du = "sip:192.168.3.3:5060";
> }
>
> route(RELAY);
> }
>
> # SIP dialogs
> route[WITHINDLG] {
>
> if (has_totag()) {
> # sequential request withing a dialog should
> # take the path determined by record-routing
> if (loose_route()) {
> route(RELAY);
> } else {
> if (is_method("NOTIFY")) {
> route(RELAY);
> }
> if (is_method("SUBSCRIBE") && uri == myself) {
> # in-dialog subscribe requests
> exit;
> }
> if (is_method("ACK")) {
> if (t_check_trans()) {
> # no loose-route, but stateful ACK;
> # must be an ACK after a 487
> # or e.g. 404 from upstream server
> t_relay();
> exit;
> } else {
> # ACK without matching transaction ... ignore and
> discard
> #xlog("ACK without matching transaction ... ignore
> and discard");
> exit;
> }
> }
> sl_send_reply("404","Not here");
> }
> exit;
> }
> }
>
> onreply_route[OUTBOUND_REPLY]
> {
> route(NAT_TEST_AND_CORRECT);
> }
>
> route[NAT_TEST_AND_CORRECT]
> {
> if (nat_uac_test("3")) {
> if (is_method("REGISTER|SUBSCRIBE")) {
> fix_nated_register();
> } else {
> fix_nated_contact();
> }
> force_rport();
> }
>
> if (has_body("application/sdp") && nat_uac_test("8")) {
> fix_nated_sdp("10");
> }
> }
>
> route[RELAY]
> {
> if (!t_relay()) {
> sl_reply_error();
> }
> exit;
> }
>
> route[LOGIT] {
>
> xlog("L_INFO", "LOGIT: $var(spot) - $rm");
>
> if( $ft == $null )
> xlog("L_INFO", "LOGIT: $var(spot) - From:$fU @ $fd - $fu");
> else
> xlog("L_INFO", "LOGIT: $var(spot) - From:$fU @ $fd - $fu:$ft");
>
> if( $tt == $null )
> xlog("L_INFO", "LOGIT: $var(spot) - To:$tU @ $td - $tu");
> else
> xlog("L_INFO", "LOGIT: $var(spot) - To:$tU @ $td - $tu:$tt");
>
> xlog("L_INFO", "LOGIT: $var(spot) - REQ:$rm @ $ru");
> xlog("L_INFO", "LOGIT: $var(spot) - ACT:$(rd{s.select,0,.})");
> xlog("L_INFO", "LOGIT: $var(spot) - HST:$(rd{s.select,1,.})");
> xlog("L_INFO", "LOGIT: $var(spot) - CNT:$ct");
> xlog("L_INFO", "LOGIT: $var(spot) - UAC:$ua");
>
> if( $du != $null )
> xlog("L_INFO", "LOGIT: $var(spot) - DURI:$du");
> }
>
> route[CHECK_SOURCE_IP]
> {
> $var(spot) = 'CHECK_SOURCE_IP';
> route(LOGIT);
>
> switch($si) {
> case "192.168.3.2":
> setflag(FLAG_FROM_SWITCH);
> return;
> default:
> setflag(FLAG_FROM_DEVICE);
> return;
> }
> }
>
>
>
>
> __________________________________________________________
> Kamailio - Users Mailing List - Non Commercial Discussions
> * sr-users at lists.kamailio.org
> Important: keep the mailing list in the recipients, do not reply only
> to the sender!
> Edit mailing list options or unsubscribe:
> * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20220907/ae0ff689/attachment.htm>
More information about the sr-users
mailing list