Thanks for the Kamailio 5.4 tips. The version 5.4.5 works.

Thanks,

Victor


On Sunday, May 9, 2021, 03:22:48 a.m. EDT, Henning Westerholt <hw@skalatan.de> wrote:


Hello Victor,

 

just a generic comment about the Kamailio version – if you start to create a new setup, you really should use the latest stable version of the 5.4.x branch. 5.2.x is already end of life.

 

About your specific issue, already looked into it with e.g. a network tracing tool?

 

Cheers,

 

Henning

 

--

Henning Westerholt – https://skalatan.de/blog/

Kamailio services – https://gilawa.com

 

From: sr-users <sr-users-bounces@lists.kamailio.org> On Behalf Of Victor Velo
Sent: Sunday, May 9, 2021 4:48 AM
To: sr-users@lists.kamailio.org
Subject: [SR-Users] MS Teams SBC

 

Hello,

 

I'm trying to test a Henning's tutorial for Teams SBC described here: https://skalatan.de/en/blog/kamailio-sbc-teams.

 

A minor change at the MS Teams setup is just about the login. Now it requires MFA.

The license I used is : Microsoft 365 developer subscriptions (E5).

The domanin dv-sbc.openabrik.com is added + 1 user

 

PS> Connect-MicrosoftTeams (MFA)

PS> New-CsOnlinePSTNGateway -Fqdn dev-sbc.openfabrik.com -SipSignalingPort 5061 -MaxConcurrentSessions 10 -ForwardCallHistory $true -Enabled $true

 

Everything seems to be OK at MS Teams side.

 

I'm using the Kamailio coming with Kazoo. Version 5.2.5

[root@dev-sbc kamailio]# kamailio -version

version: kamailio 5.2.5 (x86_64/linux) 

flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES

ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144 MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB

poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.

id: unknown 

compiled on 01:14:59 Nov 19 2019 with gcc 7.3.1

 

 

 

When Kamailio is probing MS Teams, the log shows the following errors (for the 3 GW):

 

hG4bKc188.6a606040000000000000000000000000.0#015#012To: <sip:sip2.pstnhub.microsoft.com;transport=tls>#015#012From: <sip:dev-sbc.openfabrik.com>;tag=d9a52ca041d9e6253dd2a7d5399056e3-2f56#015#012CSeq: 10 OPTIONS#015#012Call-ID: 4ed99b8a73a96dcd-10234@155.138.140.233#015#012Max-Forwards: 70#015#012Content-Length: 0

May  9 01:26:17 dev-sbc kamailio[10234]: ERROR: <core> [core/tcp_main.c:618]: _wbufq_add(): (517 bytes): write queue full or timeout  (0, total 1100374016, last write 41683154 s ago)

May  9 01:26:17 dev-sbc kamailio[10234]: ERROR: <core> [core/tcp_main.c:2673]: tcpconn_1st_send(): 52.114.76.76:5061: EAGAIN and write queue full or failed for 0x7fce434db860

May  9 01:26:17 dev-sbc kamailio[10234]: ERROR: tm [../../core/forward.h:293]: msg_send_buffer(): tcp_send failed

May  9 01:26:17 dev-sbc kamailio[10234]: ERROR: tm [uac.c:648]: send_prepared_request_impl(): Attempt to send to precreated request failed

May  9 01:26:17 dev-sbc kamailio[10234]: INFO: <script>: Sent out tm request to Teams: OPTIONS sip:sip.pstnhub.microsoft.com;transport=tls SIP/2.0#015#012Via: SIP/2.0/TLS 155.138.140.233:5061;branc

 

config:

 

tls.cfg

 

[server:default]

method = TLSv1.2+

verify_certificate = yes

require_certificate = yes

private_key = /etc/letsencrypt/live/openfabrik.com/privkey.pem

certificate = /etc/letsencrypt/live/openfabrik.com/fullchain.pem

ca_list = /etc/letsencrypt/live/openfabrik.com/bc2025.pem

server_name = dev-sbc.openfabrik.com

 

[client:default]

method = TLSv1.2+

verify_certificate = yes

require_certificate = yes

private_key = /etc/letsencrypt/live/openfabrik.com/privkey.pem

certificate = /etc/letsencrypt/live/openfabrik.com/fullchain.pem

ca_list = /etc/letsencrypt/live/openfabrik.com/bc2025.pem

 

====

 

event_route[tm:local-request]

{

    setflag(FLAG_LOCAL_REQUEST);

 

    if(is_method("OPTIONS") && $ru =~ "pstnhub.microsoft.com") {

           append_hf("Contact: <sip:dev-sbc.openfabrik.com:5061;transport=tls>\r\n");

           xlog("L_INFO", "Sent out tm request to Teams: $mb\n");

    }

 

    xlog("L_DEBUG", "$ci|local|start $pr request $rm $ou\n");

    xlog("L_DEBUG", "$ci|local|source $si:$sp -> $dd:$dp\n");

    xlog("L_DEBUG", "$ci|local|from $fu\n");

    xlog("L_DEBUG", "$ci|local|to $tu\n");

 

    #!ifdef SIP_TRACE_ROLE

    route(SIP_TRACE);

    #!endif

 

    #!ifdef PRESENCE_ROLE

    route(PRESENCE_LOCAL_REQUEST);

    #!endif

 

}

 

====

# setid(integer) destination(sip uri) flags (integer, optional), priority(int,opt), attrs (str,optional)

kamctl dispatcher add 2 'sip:sip.pstnhub.microsoft.com;transport=tls' 0 3 'socket=tls:155.138.140.233:5061;ping_from=sip:dev-sbc.openfabrik.com'

kamctl dispatcher add 3 'sip:sip2.pstnhub.microsoft.com;transport=tls' 0 2 'socket=tls:155.138.140.233:5061;ping_from=sip:dev-sbc.openfabrik.com'

kamctl dispatcher add 4 'sip:sip3.pstnhub.microsoft.com;transport=tls' 0 1 'socket=tls:155.138.140.233:5061;ping_from=sip:dev-sbc.openfabrik.com'

 

[root@dev-sbc kamailio]# kamctl dispatcher show

dispatcher gateways

sqlite_query: /usr/bin/sqlite3  /etc/kazoo/kamailio/db/kazoo.db select * FROM dispatcher ORDER BY setid; 

1|1|sip:155.138.140.233:11000|9|0|zone=local;profile=sipinterface_1;duid=243;node=freeswitch@dev-sbc.openfabrik.com|added by nodes role

2|2|sip:sip.pstnhub.microsoft.com;transport=tls|0|3|socket=tls:155.138.140.233:5061;ping_from=sip:dev-sbc.openfabrik.com|

3|3|sip:sip2.pstnhub.microsoft.com;transport=tls|0|2|socket=tls:155.138.140.233:5061;ping_from=sip:dev-sbc.openfabrik.com|

4|4|sip:sip3.pstnhub.microsoft.com;transport=tls|0|1|socket=tls:155.138.140.233:5061;ping_from=sip:dev-sbc.openfabrik.com|

 

 

 

Is it a bug on the Kamailio 5.2.5 release or Do I miss something?

 

Thanks,

 

Victor