My set up Teams <—> sbc.ip-sentinel.com <—> pbx.ip-sentinel.com
I can create a call with audio from Teams -> PBX I can hang up that call from Teams but not the PBX I cannot route a call from PBX to teams. Although the initial TLS handshake does happen I’m pretty sure it’s something basic to do with headers on ACK & BYE but I just cannot spot what I’ve done wrong This is the initial outbound message from opensips to teams which looks OK James Hogbin Director IP Sentinel t. +44 (0)20 3011 4150 m. +44 7786910895 w. https://www.ip-sentinel.com INVITE sip:+448435577...@sip.pstnhub.microsoft.com:5061;transport=tls SIP/2.0 Record-Route: <sip:sbc.ip-sentinel.com:5091;transport=tls;ftag=eect23Z290N9p;lr;r2=on> Record-Route: <sip:137.117.136.143:5060;ftag=eect23Z290N9p;lr;r2=on> Via: SIP/2.0/TLS 137.117.136.143:5091;branch=z9hG4bK48f8.81967713.0;i=e67586f7 Via: SIP/2.0/TLS 13.80.245.144:5081;rport=41795;received=10.0.0.4;branch=z9hG4bKac61XQKeXDXHB Max-Forwards: 68 From: "James Hogbin" <sip:opensips@10.0.0.5:5091>;tag=eect23Z290N9p To: <sip:08435577721@10.0.0.5:5091> Call-ID: 0109ad37-0b1f-1239-bdba-000d3aada04e CSeq: 19879884 INVITE Contact: <sip:gw+c6ff36e8-d3de-4fe0-9f1b-9da2888c43a9@13.80.245.144:5081;transport=tls;transport=tls;gw=c6ff36e8-d3de-4fe0-9f1b-9da2888c43a9> User-Agent: FreeSWITCH Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY Supported: timer, path, replaces Allow-Events: talk, hold, conference, refer Content-Type: application/sdp Content-Disposition: session Content-Length: 1339 X-FS-Support: update_display,send_info Remote-Party-ID: "James Hogbin" <sip:+442030114146@10.0.0.5:5091>;party=calling;screen=yes;privacy=off #015 v=0 o=FreeSWITCH 1588835231 1588835232 IN IP4 137.117,136.143 s=FreeSWITCH c=IN IP4 137.117,136.143 t=0 0 m=audio 10432 RTP/SAVP 9 0 8 101 13 a=rtpmap:9 G722/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=rtpmap:13 CN/8000 [stuff removed] a=ptime:20 m=audio 13446 RTP/AVP 9 0 8 101 13 a=rtpmap:9 G722/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=rtpmap:13 CN/8000 a=ptime:20 a=nortpproxy:yes opensips.cfg Source_address(0) is my PBX address= alias = tls:sbc.ip-sentinel.com:5091 alias = udp:sbc.ip-sentinel.com:5060 alias = tcp:sbc.ip-sentinel.com:5060 advertised_address=137.117.136.143 listen=udp:10.0.0.5:5060 listen=tcp:10.0.0.5:5060 listen=tls:10.0.0.5:5091 ####### Routing Logic ######## # main request routing logic route{ #xlog("L_INFO", "route SIP Message $mb"); force_rport(); if (!mf_process_maxfwd_header(10)) { send_reply(483,"Too Many Hops"); exit; } if (is_method("OPTIONS")) { #xlog("[MS TEAMS] OPTIONS In\n"); send_reply(200, "OK"); exit; } # CANCEL processing if (is_method("CANCEL")) { if (t_check_trans()) t_relay(); exit; } # absorb retransmissions, but do not create transaction t_check_trans(); if (has_totag()) { # sequential request within a dialog should # take the path determined by record-routing if(is_method("INVITE") && !check_source_address(0)) { xlog("[INFO] In dialog Method=$rm, RURI=$ruri, SI=$si ,DU=$du\n"); t_relay(); } if ( !loose_route() ) { # we do record-routing for all our traffic, so we should not # receive any sequential requests without Route hdr. send_reply(404, "Not here"); exit; } # route it out to whatever destination was set by loose_route() # in $du (destination URI). route(relay); exit; } # account only INVITEs if (is_method("INVITE")) { do_accounting("log"); } if (is_method("INVITE") && !has_totag() && check_source_address(0)) { xlog("[ROUTE]Incoming call to MS: RURI=$ruri, SI=$si, M=$rm\n"); strip(1); prefix("+44"); record_route_preset("sbc.ip-sentinel.com:5091;transport=tls", "137.117.136.143:5060"); add_rr_param(";r2=on"); $rd="sip.pstnhub.microsoft.com"; $rp=5061; route(relay); } else if (is_method("INVITE") && ! has_totag() && !check_source_address(0)) { record_route(); xlog("[ROUTE]Incoming call from MS: RURI=$ruri, SI=$si, M=$rm\n"); $rd="pbx.ip-sentinel.com"; $rp=5081; route(relay); } if (!is_myself("$rd")) { append_hf("P-hint: outbound\r\n"); route(relay); } # requests for my domain if (is_method("PUBLISH|SUBSCRIBE")) { send_reply(503, "Service Unavailable"); exit; } if ($rU==NULL) { # request with no Username in RURI send_reply(484,"Address Incomplete"); exit; } # do lookup with method filtering if (!lookup("location","m")) { t_reply(404, "Not Found"); exit; } # when routing via usrloc, log the missed calls also do_accounting("log","missed"); route(relay); } route[relay] { xlog("[INFO] route[relay] SIP Message \n$mb\n"); # for INVITEs enable some additional helper routes if (is_method("INVITE") && ! has_totag() ) { t_newtran(); t_on_reply("handle_nat"); t_on_failure("missed_call"); # if we have an application/sdp on our body, so we execute # the rtpproxy_offer if(has_body("application/sdp")){ xlog("[RTPPROXY] route[relay] we have sdp on this message\n$rm\n"); rtpproxy_offer("co", "137.117,136.143"); } } xlog("[INFO] Method=$rm, RURI=$ruri, SI=$si ,DU=$du\n"); if (!t_relay()) { send_reply(500,"Internal Error"); } exit; } onreply_route[handle_nat] { xlog("[INFO] onreply_route[handle_nat]: RR=$rr, RS=$rs, SI=$si\n$mb\n"); # we receive a reply, we need to check about application/sdp # on our body, if we have, we answer that if(is_method("ACK") && has_body("application/sdp")){ xlog("[RTPPROXY] onreply_route[handle_nat] ACK rtpproxy_answer\n"); rtpproxy_answer("co", "137.117,136.143"); } } failure_route[missed_call] { if (t_was_cancelled()) { exit; } } local_route { $var(dst) = "pstnhub.microsoft.com"; if (is_method("OPTIONS") && ($(ru{s.index, $var(dst)}) != NULL)) { append_hf("Contact: <sip:sbc.ip-sentinel.com:5091;transport=tls>\r\n"); #xlog("[MS TEAMS] OPTIONS Out\n"); } } IP Sentinel Disclaimer This communication is for the information of the person to whom it has been delivered and neither it nor any of its contents should be passed on to or used by any other person. IP Sentinel Ltd is a limited company registered in England and Wales under Registered Number 08648097. Registered Office: Newnhams Wood, Horsted Keynes, West Sussex, RH17 7BT. Disclaimer: Q3dhRSrm_disclaimer
_______________________________________________ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users