[SR-Users] Reverse Proxy Asterisk - SIP Provider

Sergiu Pojoga pojogas at gmail.com
Thu Jul 25 18:49:33 CEST 2019


Have you tried changing the trunk's name from *opensips-trunk* to
*kamailio-trunk*?

On the serious side, a SIP trace would help.


On Thu, Jul 25, 2019 at 12:26 PM Mihai Cezar <cezar at mokalife.ro> wrote:

> Hi all,
>
> I've tried to create a reverse proxy to forward incoming request that came
> from SIP provider to Asterisk PBX and forward the requests from asterisk to
> kamailio then sip provider.
> What i get is that I see the invite, but is like no ACK.
> Thanks in advance.
> M
>
>
> kamailio.cfg:
>
> #!KAMAILIO
> #
>
> ####### Defined Values #########
> # - flags
> #   FLT_ - per transaction (message) flags
> # FLB_ - per branch flags
> #!define FLT_ACC 1
> #!define FLT_ACCMISSED 2
> #!define FLT_ACCFAILED 3
> #!define FLT_NATS 5
>
> #!define FLB_NATB 6
> #!define FLB_NATSIPPING 7
>
> ####### Global Parameters #########
> ### LOG Levels: 3=DBG, 2=INFO, 1=NOTICE, 0=WARN, -1=ERR
> debug=3
> log_stderror=yes
> memdbg=5
> memlog=5
>
> log_facility=LOG_LOCAL0
> log_prefix="{$mt $hdr(CSeq) $ci} "
> children=1
>
> server_id = 10
> xavp_via_params = "via"
> disable_tcp=yes
> auto_aliases=no
> listen=udp:0.0.0.0:5060
>
> ####### Modules Section ########
>
> loadmodule "jsonrpcs.so"
> loadmodule "kex.so"
> loadmodule "corex.so"
> loadmodule "tm.so"
> loadmodule "tmx.so"
> loadmodule "sl.so"
> loadmodule "rr.so"
> loadmodule "pv.so"
> loadmodule "maxfwd.so"
> loadmodule "textops.so"
> loadmodule "siputils.so"
> loadmodule "xlog.so"
> loadmodule "sanity.so"
> loadmodule "ctl.so"
> loadmodule "cfg_rpc.so"
> loadmodule "acc.so"
> loadmodule "counters.so"
>
> # ----------------- setting module-specific parameters ---------------
>
>
> # ----- jsonrpcs params -----
> modparam("jsonrpcs", "pretty_format", 1)
> modparam("jsonrpcs", "fifo_name", "/var/run/kamailio/kamailio_rpc.fifo")
> modparam("jsonrpcs", "dgram_socket", "/var/run/kamailio/kamailio_rpc.sock")
> modparam("ctl", "binrpc", "unix:/var/run/kamailio/kamailio_ctl")
>
> # ----- tm params -----
> modparam("tm", "failure_reply_mode", 3)
> modparam("tm", "fr_timer", 30000)
> modparam("tm", "fr_inv_timer", 120000)
> modparam("rr", "enable_full_lr", 0)
> modparam("rr", "append_fromtag", 0)
> modparam("acc", "early_media", 0)
> modparam("acc", "report_ack", 0)
> modparam("acc", "report_cancels", 0)
> modparam("acc", "detect_direction", 0)
> modparam("acc", "log_flag", FLT_ACC)
> modparam("acc", "log_missed_flag", FLT_ACCMISSED)
> modparam("acc", "log_extra",
> "src_user=$fU;src_domain=$fd;src_ip=$si;"
> "dst_ouser=$tU;dst_user=$rU;dst_domain=$rd")
> modparam("acc", "failed_transaction_flag", FLT_ACCFAILED)
>
> ####### Routing Logic ########
>
> request_route {
>
> # per request initial checks
> route(REQINIT);
>
> # CANCEL processing
> if (is_method("CANCEL")) {
> if (t_check_trans()) {
> route(RELAY);
> }
> exit;
> }
>
> # handle retransmissions
> if (!is_method("ACK")) {
> if(t_precheck_trans()) {
> t_check_trans();
> exit;
> }
> t_check_trans();
> }
>
> # handle requests within SIP dialogs
> route(WITHINDLG);
>
> # record routing for dialog forming requests (in case they are routed)
> remove_hf("Route");
> if (is_method("INVITE|SUBSCRIBE|REFER")) {
> record_route();
> }
>
> # account only INVITEs
> if (is_method("INVITE")) {
> setflag(FLT_ACC);
> sl_send_reply("100","Trying");
>
> if ($si == "172.16.16.1") {
> sl_send_reply("183","Incoming session from Avoxi");
> rewritehost("10.1.1.10");
> #exit;
> }
> else if ($si == "10.1.1.10"){
> # receiving response from client
> sl_send_reply("183","Outgoing session to Avoxi");
> #rewritehost("172.16.16.1");
> drop;
> exit;
> }
> else {
> sl_send_reply("500","No configured IP!");
> drop;
> exit;
> }
> }
>
> if ($rU==$null) {
> sl_send_reply("484","Address Incomplete");
> exit;
> }
>
> # received from main server - send to client and add via tokens for
> anycast handling
> via_add_srvid("1");
> $xavp(via=>node) = "10.1.1.4";
> via_add_xavp_params("1");
> route(RELAY);
> exit;
> }
>
> # Wrapper for relaying requests
> route[RELAY] {
>
> # enable additional event routes for forwarded requests
> # - serial forking, RTP relaying handling, a.s.o.
> if (is_method("INVITE|BYE|SUBSCRIBE|UPDATE")) {
> if(!t_is_set("branch_route")) t_on_branch("MANAGE_BRANCH");
> }
> if (is_method("INVITE|SUBSCRIBE|UPDATE")) {
> if(!t_is_set("onreply_route")) t_on_reply("MANAGE_REPLY");
> }
> if (is_method("INVITE")) {
> if(!t_is_set("failure_route")) t_on_failure("MANAGE_FAILURE");
> }
>
> if (!t_relay()) {
> sl_reply_error();
> }
> exit;
> }
>
> # Per SIP request initial checks
> route[REQINIT] {
> if($ua =~ "friendly-scanner|sipcli|VaxSIPUserAgent") {
> # silent drop for scanners - uncomment next line if want to reply
> sl_send_reply("200", "OK");
> exit;
> }
>
> if (!mf_process_maxfwd_header("10")) {
> sl_send_reply("483","Too Many Hops");
> exit;
> }
>
> if(is_method("OPTIONS") && uri==myself && $rU==$null) {
> sl_send_reply("200","Keepalive");
> exit;
> }
>
> if(!sanity_check("1511", "7")) {
> xlog("Malformed SIP message from $si:$sp\n");
> exit;
> }
>
> if ($si == "10.1.1.4") {
>                 xlog("L_WARN", "$ci|end|dropping message");
>                 exit;
>     }
>
> }
>
> # Handle requests within SIP dialogs
> route[WITHINDLG] {
> if (!has_totag()) return;
> if (loose_route()) {
> if (is_method("BYE")) {
> setflag(FLT_ACC);
> setflag(FLT_ACCFAILED);
> } else if ( is_method("NOTIFY") ) {
> record_route();
> }
> route(RELAY);
> exit;
> }
>
> if ( is_method("ACK") ) {
> if ( t_check_trans() ) {
> route(RELAY);
> exit;
> } else {
> exit;
> }
> }
> sl_send_reply("400","Loop detected");
> exit;
> }
>
> # TM manage for outgoing branches
> branch_route[MANAGE_BRANCH] {
> xdbg("new branch [$T_branch_idx] to $ru\n");
> }
>
> # TM manage for incoming replies
> onreply_route[MANAGE_REPLY] {
> xdbg("incoming reply\n");
> }
>
> # TM manage for failure routing cases
> failure_route[MANAGE_FAILURE] {
> if (t_is_canceled()) exit;
> }
>
>
> asterisk - sip.conf
>
> [opensips-trunk](sip-provider)
> fromdomain=10.1.1.10
> host=10.1.1.4
> context=from-trunk
> type=friend
> insecure=invite,port
> trunk=yes
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users at lists.kamailio.org
> 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/20190725/cbe9b719/attachment.html>


More information about the sr-users mailing list