[SR-Users] Reverse Proxy Asterisk - SIP Provider

Mihai Cezar m at mokalife.ro
Thu Jul 25 21:12:36 CEST 2019


No, it dosen't forward it to the SIP provider, it basicaly loops, i am
guessing that my config its the problem...

On Thu, Jul 25, 2019 at 9:53 PM Henning Westerholt <hw at skalatan.de> wrote:

> Hello Mihai,
>
> your trace just shows the INVITE, 100,  183. There is no 200 OK, therefore
> also no ACK.
>
> Is there some thing missing? Does the called side actually accept the call?
>
> Cheers,
>
> Henning
> Am 25.07.19 um 19:23 schrieb Mihai Cezar:
>
> Well, i've tried both opensips and kamailio but with kamailio i got the
> most far.
> Bellow it's a trace of an outgoing call, the trace is from kamailio box.
>
> Legend: 10.1.1.10 is the Asterisk Box, 10.1.1.4 is Kamailio.
>
> 2019/07/25 20:16:24.479179 10.1.1.10:5060 -> 10.1.1.4:5060
> INVITE sip:+40XXXXXXXXX at 10.1.1.4;user=phone SIP/2.0
> Via: SIP/2.0/UDP 10.1.1.10:5060;branch=z9hG4bK3ecba174;rport
> Max-Forwards: 70
> From: "test" <sip:+40YYYYYYYY at 10.1.1.10>;tag=as5ce97f3d
> To: <sip:+40XXXXXXXXX at 10.1.1.4;user=phone>
> Contact: <sip:+40YYYYYYYY at 10.1.1.10:5060>
> Call-ID: 7c1169bf0b7a09472dd455d76b6c12bb at 10.1.1.10
> CSeq: 102 INVITE
> User-Agent: Asterisk PBX
> Date: Thu, 25 Jul 2019 17:16:09 GMT
> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO,
> PUBLISH, MESSAGE
> Supported: replaces, timer
> Content-Type: application/sdp
> Content-Length: 238
>
> 2019/07/25 20:16:24.482259 10.1.1.4:5060 -> 10.1.1.10:5060
> SIP/2.0 100 Trying
> Via: SIP/2.0/UDP 10.1.1.10:5060
> ;branch=z9hG4bK3ecba174;rport=5060;received=10.1.1.10
> From: "test" <sip:+40YYYYYYYY at 10.1.1.10>;tag=as5ce97f3d
> To: <sip:+40XXXXXXXXX at 10.1.1.4;user=phone>
> Call-ID: 7c1169bf0b7a09472dd455d76b6c12bb at 10.1.1.10
> CSeq: 102 INVITE
> Server: kamailio (5.2.3 (x86_64/linux))
> Content-Length: 0
>
>
> 2019/07/25 20:16:24.482385 10.1.1.4:5060 -> 10.1.1.10:5060
> SIP/2.0 183 Outgoing session to Avoxi
> Via: SIP/2.0/UDP 10.1.1.10:5060
> ;branch=z9hG4bK3ecba174;rport=5060;received=10.1.1.10
> From: "test" <sip:+40YYYYYYYY at 10.1.1.10>;tag=as5ce97f3d
> To: <sip:+40XXXXXXXXX at 10.1.1.4
> ;user=phone>;tag=e68db714ad3ba80833ca2c670d982872.aebb
> Call-ID: 7c1169bf0b7a09472dd455d76b6c12bb at 10.1.1.10
> CSeq: 102 INVITE
> Server: kamailio (5.2.3 (x86_64/linux))
> Content-Length: 0
>
> On Thu, Jul 25, 2019 at 7:53 PM Sergiu Pojoga <pojogas at gmail.com> wrote:
>
>> 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
>>>
>> _______________________________________________
>> Kamailio (SER) - Users Mailing List
>> sr-users at lists.kamailio.org
>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>
>
> _______________________________________________
> Kamailio (SER) - Users Mailing Listsr-users at lists.kamailio.orghttps://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>
> --
> Henning Westerholt - https://skalatan.de/blog/
> Kamailio services - https://skalatan.de/services
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20190725/3e812859/attachment.html>


More information about the sr-users mailing list