Giter VIP home page Giter VIP logo

signalwire / freeswitch Goto Github PK

View Code? Open in Web Editor NEW
3.1K 3.1K 1.3K 132.06 MB

FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a versatile software implementation that runs on any commodity hardware. From a Raspberry PI to a multi-core server, FreeSWITCH can unlock the telecommunications potential of any device.

Home Page: https://freeswitch.com/#getting-started

License: Other

Batchfile 0.06% Makefile 1.21% M4 0.69% Shell 1.77% C 63.37% Perl 0.78% ActionScript 0.71% HTML 0.59% JavaScript 4.12% CMake 0.08% Smarty 0.02% Dockerfile 0.02% QMake 0.01% C++ 23.76% CSS 0.05% Assembly 1.73% PHP 0.03% Python 0.83% Awk 0.02% Java 0.16%
freeswitch iot open-source signalwire sip source-code telephony voip webrtc

freeswitch's Introduction

FreeSWITCH

FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a versatile software implementation that runs on any commodity hardware. From a Raspberry PI to a multi-core server, FreeSWITCH can unlock the telecommunications potential of any device. Combined with our hosted cloud platform, SignalWire, FreeSWITCH can interconnect with the outside world and scale to any size.

Visit https://signalwire.com or https://github.com/signalwire for more info.

Getting Started

FreeSWITCH is available on Github in source code format. You can checkout the development branch and build for many popular platforms including Linux, Windows, MacOSX and BSD. There is an issue tracker and pull request system available as part of the repo online.

See https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/ for more detailed instructions.

Additional Help

If you need assistance or have an interest in using a commercially supported build, you can contact [email protected] to learn about professional services to support your project.

Voice-over-IP services - SIP / SMS - App Integrations

SignalWire is the primary sponsor of the FreeSWITCH project and was founded by the original developers of FreeSWITCH. SignalWire provides scalable services to enhance and scale your project such as SMS, SIP, Serverless Application hosting as well as programmable telecom. mod_signalwire which is distributed in this code base allows you to instantly pair with SignalWire and extend your FreeSWITCH.

Documentation

The main index for documentation is available at:

Release notes:

Install from packages

Step by step tutorials to install FreeSWITCH from packages:

Build from source

Example Dockerfiles to build FreeSWITCH and dependencies from source:

Step by step tutorials to build FreeSWITCH with provided dependency packages:

Downloads

Contributions

GitHub pull requests are the recommended way to contribute to the FreeSWITCH source code:

Community

Slack is our chat system where the developers, the FreeSWITCH team, and the most active users are present. This is the place to get answers faster and chat with other users in real time. All you need to do is enter your email and verify it on the Slack signup page and you are ready to join in the discussion!

Slack Community:

Mailing list (ARCHIVED):

Thank you for using FreeSWITCH!

freeswitch's People

Contributors

andywolk avatar anthmfs avatar arnaldopereira avatar astaelan avatar briankwest avatar buklov avatar coppice-git avatar crienzo avatar cypromis avatar dragos-oancea avatar dyatsin avatar gmaruzz avatar intralanman avatar italorossi avatar jlenk avatar kguptasangoma avatar lazedo avatar michaelgg avatar mjerris avatar mochouinard avatar moises-silva avatar nneul avatar peolsson avatar quentusrex avatar rupaschomaker avatar sathieu avatar seven1240 avatar swk avatar traviscross avatar vagabond avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

freeswitch's Issues

Crash (segfault) on latest master

Hello,

FS crashes (SIGSEGV) when reaching a bit of load (approximately 1500 channels and 3000 threads).

I have attached the fscore_pb output (gdb backtrace).

Yes, I have tested with latest master: 15ad4c2 (as of yesterday) ;)

I can reproduce on both Debian 9 and Debian 10, and FS 1.8, 1.10.1, 1.10.2-dev, and git master 15ad4c2.

We use very few features, here is modules.conf.xml:

<configuration name="modules.conf" description="Modules">
  <modules>
    <load module="mod_console"/>
    <load module="mod_logfile"/>
    <load module="mod_event_socket"/>
    <load module="mod_sofia"/>
    <load module="mod_commands"/>
    <load module="mod_dptools"/>
    <load module="mod_dialplan_xml"/>
  </modules>
</configuration>

Dialplan:

<include>
  <context name="sbc">
    <extension name="cce">
      <condition>
        <action application="socket" data="REDACTED async full" />
        <action application="socket" data="REDACTED async full" />
        <action application="socket" data="REDACTED async full" />
        <action application="set" data="sip_rh_X-HupReason=Socket failed" />
        <action application="hangup" data="NETWORK_OUT_OF_ORDER" />
      </condition>
    </extension>
  </context>
</include>

We use <param name="inbound-bypass-media" value="true"/> in the sofia profile, so FS does not handle RTP at all.

I can provide access to a running server if needed.

Let me know if you need more informations.

fscore_pb.zip

Freeswitch mod_amqp does not send heartbeats ignoring configuration settings

Freeswitch module amqp not send heartbeat messages to rabbitmqserver
for logging and producers.

amqp.conf

<configuration name="amqp.conf" description="mod_amqp">
  <producers>
    <profile name="default">
      <connections>
        <connection name="primary">
          <param name="hostname" value="2.2.2.2"/>
          <param name="virtualhost" value="/"/>
          <param name="username" value="freesw_events"/>
          <param name="password" value="password"/>
          <param name="port" value="5672"/>
          <param name="heartbeat" value="1"/>
        </connection>
      </connections>
      <params>
        <param name="exchange-name" value="OutboundCallFsEvents"/>
        <param name="exchange-type" value="topic"/>
        <param name="circuit_breaker_ms" value="10000"/>
        <param name="reconnect_interval_ms" value="1000"/>
        <param name="send_queue_size" value="5000"/>
        <param name="enable_fallback_format_fields" value="1"/>
        <param name="format_fields" value="#FS,#OUTBOUNDGW22,Event-Name"/>
      </params>
    </profile>
  </producers>
  <commands>
    <profile name="default">
      <connections>
        <connection name="primary">
          <param name="hostname" value="2.2.2.2"/>
          <param name="virtualhost" value="/"/>
          <param name="username" value="freesw_commands"/>
          <param name="password" value="password"/>
          <param name="port" value="5672"/>
          <param name="heartbeat" value="1"/>
        </connection>
      </connections>
      <params>
        <param name="exchange-name" value="Commands"/>
        <param name="binding_key" value="commandBindingKey"/>
        <param name="reconnect_interval_ms" value="2000"/>
      </params>
    </profile>
  </commands>
  <logging>
    <profile name="default">
      <connections>
        <connection name="primary">
          <param name="hostname" value="2.2.2.2"/>
          <param name="virtualhost" value="/"/>
          <param name="username" value="freesw_logs"/>
          <param name="password" value="password"/>
          <param name="port" value="5672"/>
          <param name="heartbeat" value="1"/>
        </connection>
      </connections>
      <params>
        <param name="exchange-name" value="Logging"/>
        <param name="reconnect_interval_ms" value="2000"/>
        <param name="send_queue_size" value="5000"/>
        <param name="log-levels" value="warning,err,crit,alert"/>
      </params>
    </profile>
  </logging>
</configuration>

And logs from rabbitmq

2019-10-15 12:57:08.457 [info] <0.19046.0> connection <0.19046.0> (2.2.2.2:51114 -> 2.2.2.2:5672): user 'freesw_events' authenticated and granted access to vhost '/'
2019-10-15 12:57:08.460 [info] <0.19049.0> connection <0.19049.0> (2.2.2.2:51116 -> 2.2.2.2:5672): user 'freesw_logs' authenticated and granted access to vhost '/'
2019-10-15 12:57:11.459 [error] <0.19046.0> closing AMQP connection <0.19046.0> (2.2.2.2:51114 -> 2.2.2.2:5672):
missed heartbeats from client, timeout: 1s
2019-10-15 12:57:13.462 [error] <0.19049.0> closing AMQP connection <0.19049.0> (2.2.2.2:51116 -> 2.2.2.2:5672):
missed heartbeats from client, timeout: 1s

Sub issue 1:
Freeswitch does not reconnect to producers in case if <param name="heartbeat" value="0"/> and connection to message broker temporary lost untill manual reload mod_amqp

Cannot recreate anymore. Did it easy before . Need some more investigations. Most probably non direct parameters sensitive
Sub issue 2:
Freeswitch does not reconnect to message broker if <param name="heartbeat" value="0"/> and message broker was not available yet during freeswitch bootup. After message broker ready only commands connection alive.

Update:

Log example for sub issue 2:

2019-10-17 09:45:06.695426 [DEBUG] mod_amqp_connection.c:119 Profile[default] trying to connect to AMQP broker 2.2.2.2:5672
2019-10-17 09:45:06.695546 [WARNING] mod_amqp_connection.c:123 Could not open socket connection to AMQP broker 2.2.2.2:5672 status(-9) a socket error occurred
2019-10-17 09:45:06.695557 [CRIT] mod_amqp_connection.c:132 Profile[default] could not connect to any AMQP brokers
2019-10-17 09:45:06.695579 [ERR] mod_amqp_producer.c:330 Profile[default] was unable to connect to any connection
2019-10-17 09:45:06.695585 [NOTICE] mod_amqp_producer.c:130 Profile[default] shutting down...
2019-10-17 09:45:06.695588 [NOTICE] mod_amqp_producer.c:140 Profile[default] closing AMQP socket...
2019-10-17 09:45:06.695592 [ERR] mod_amqp_utils.c:136 Failed to load mod_amqp profile [default]. Check configs
2019-10-17 09:45:06.695743 [DEBUG] mod_amqp_utils.c:162 Loaded mod_amqp profile [default] successfully
2019-10-17 09:45:06.695810 [DEBUG] mod_amqp_connection.c:119 Profile[default] trying to connect to AMQP broker 2.2.2.2:5672
2019-10-17 09:45:06.695893 [WARNING] mod_amqp_connection.c:123 Could not open socket connection to AMQP broker 2.2.2.2:5672 status(-9) a socket error occurred
2019-10-17 09:45:06.695901 [CRIT] mod_amqp_connection.c:132 Profile[default] could not connect to any AMQP brokers
2019-10-17 09:45:06.695926 [ERR] mod_amqp_logging.c:243 Profile[default] was unable to connect to any connection
2019-10-17 09:45:06.695931 [NOTICE] mod_amqp_logging.c:124 Profile[default] shutting down...
2019-10-17 09:45:06.695934 [NOTICE] mod_amqp_logging.c:134 Profile[default] closing AMQP socket...
2019-10-17 09:45:06.695938 [ERR] mod_amqp_utils.c:184 Failed to load mod_amqp profile [default]. Check configs
2019-10-17 09:45:06.695966 [NOTICE] switch_loadable_module.c:412 Adding API Function 'amqp'
2019-10-17 09:45:06.696432 [WARNING] mod_amqp_command.c:272 Amqp no connection- reconnecting...
2019-10-17 09:45:06.696500 [DEBUG] mod_amqp_connection.c:119 Profile[default] trying to connect to AMQP broker 2.2.2.2:5672
2019-10-17 09:45:06.696593 [WARNING] mod_amqp_connection.c:123 Could not open socket connection to AMQP broker 2.2.2.2:5672 status(-9) a socket error occurred
2019-10-17 09:45:06.696601 [CRIT] mod_amqp_connection.c:132 Profile[default] could not connect to any AMQP brokers
2019-10-17 09:45:06.696606 [WARNING] mod_amqp_command.c:276 Profile[default] failed to connect with code(9), sleeping for 2000ms

Configuration for sub issue 2:

<configuration name="amqp.conf" description="mod_amqp">
  <producers>
    <profile name="default">
      <connections>
        <connection name="primary">
          <param name="hostname" value="2.2.2.2"/>
          <param name="virtualhost" value="/"/>
          <param name="username" value="freesw_events"/>
          <param name="password" value="password"/>
          <param name="port" value="5672"/>
          <param name="heartbeat" value="0"/>
        </connection>
      </connections>
      <params>
        <param name="exchange-name" value="OutboundCallFsEvents"/>
        <param name="exchange-type" value="topic"/>
        <param name="circuit_breaker_ms" value="10000"/>
        <param name="reconnect_interval_ms" value="1000"/>
        <param name="send_queue_size" value="5000"/>
        <param name="enable_fallback_format_fields" value="1"/>

        <param name="format_fields" value="#FS,#OUTBOUNDGW22,Event-Name"/>
      </params>
    </profile>
  </producers>
  <commands>
    <profile name="default">
      <connections>
        <connection name="primary">
          <param name="hostname" value="2.2.2.2"/>
          <param name="virtualhost" value="/"/>
          <param name="username" value="freesw_commands"/>
          <param name="password" value="password"/>
          <param name="port" value="5672"/>
          <param name="heartbeat" value="0"/>
        </connection>
      </connections>
      <params>
        <param name="exchange-name" value="Commands"/>
        <param name="binding_key" value="commandBindingKey"/>
        <param name="reconnect_interval_ms" value="2000"/>
      </params>
    </profile>
  </commands>
  <logging>
    <profile name="default">
      <connections>
        <connection name="primary">
          <param name="hostname" value="2.2.2.2"/>
          <param name="virtualhost" value="/"/>
          <param name="username" value="freesw_logs"/>
          <param name="password" value="password"/>
          <param name="port" value="5672"/>
          <param name="heartbeat" value="0"/>
        </connection>
      </connections>
      <params>
        <param name="exchange-name" value="Logging"/>
        <param name="reconnect_interval_ms" value="2000"/>
        <param name="binding_key" value="*"/>
        <param name="send_queue_size" value="5000"/>
        <param name="log-levels" value="warning,err,crit,alert"/>
      </params>
    </profile>
  </logging>
</configuration>

[mod_soundtouch] has no sound

run soundtouch on freeswitch 1.10.1 and Debian 10

<extension name="dial_soundtouch">
   <condition expression="^4321$" field="destination_number">
        <action application="answer"/>
        <action application="soundtouch" data="hook_dtmf -0.3o 0.8r"/>
        <action application="delay_echo" data="3000"/>
   </condition>
</extension>

it has no error, but can not receive any sound

configure - AX_COMPILER_VENDOR: command not found

This looks like a possible error in configure files.
./configure: line 12284: AX_COMPILER_VENDOR: command not found
./configure: line 12315: AX_CFLAGS_WARN_ALL_ANSI: command not found
./configure: line 5320: AX_COMPILER_VENDOR: command not found

Master as of 10/9
configure.txt

Voicemail Messages Not Storing In voicemail_msgs

Hello,

I am running FreeSWITCH on Debian as shown below, and whenever a voicemail is received, it is not storing in the database. I have verified that DB connectivity is working by calling my voicemail, and changing my voicemail greeting which updates in voicemail_prefs. Also, I have deleted both tables and FreeSWITCH is able to auto-recreate them. However, new voicemail messages are not being stored in the DB.

Can you please check into this or recommend what I might be doing wrong if anything?

Version
FreeSWITCH Version 1.9.0-1911-9844c06~64bit (-1911-9844c06 64bit)

OS
Debian 3.16.51-3 (2017-12-13) x86_64 GNU/Linux

conference recording crash

version: freeswitch 1.8
call statck:

(gdb) bt
#0 0x00007f2680a6f067 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007f2680a70448 in __GI_abort () at abort.c:89
#2 0x00007f2680aad1b4 in __libc_message (do_abort=do_abort@entry=1, fmt=fmt@entry=0x7f2680ba2210 "*** Error in `%s': %s: 0x%s ***\n")
at ../sysdeps/posix/libc_fatal.c:175
#3 0x00007f2680ab298e in malloc_printerr (action=1, str=0x7f2680b9e42a "realloc(): invalid next size", ptr=) at malloc.c:4996
#4 0x00007f2680ab576b in _int_realloc (av=av@entry=0x7f2320000020, oldp=oldp@entry=0x7f2320036170, oldsize=oldsize@entry=1552, nb=nb@entry=544) at malloc.c:4234
#5 0x00007f2680ab6769 in __GI___libc_realloc (oldmem=0x7f2320036180, bytes=523) at malloc.c:3029
#6 0x00007f260856d044 in av_buffer_realloc () from /usr/lib/x86_64-linux-gnu/libavutil.so.54
#7 0x00007f2608dd9236 in avcodec_encode_audio2 () from /usr/lib/x86_64-linux-gnu/libavcodec.so.56
#8 0x00007f2609c790dc in av_file_write (handle=0x2096, data=0x67a6, len=0x6) at avformat.c:2036
#9 0x00007f2681f23caf in switch_core_file_write (fh=0x7f25c02706a0, data=0x7f2320004ce0, len=0x7f25c4675708) at src/switch_core_file.c:670
#10 0x00007f26415c068c in conference_record_thread_run (thread=0x2096, obj=0x766b00) at conference_record.c:377
#11 0x00007f268222d110 in dummy_worker (opaque=0x7f25c02709f0) at threadproc/unix/thread.c:151
#12 0x00007f268144b064 in start_thread (arg=0x7f25c4676700) at pthread_create.c:309
#13 0x00007f2680b2262d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

(gdb) f 9
#9 0x00007f2681f23caf in switch_core_file_write (fh=0x7f25c02706a0, data=0x7f2320004ce0, len=0x7f25c4675708) at src/switch_core_file.c:670
670 if ((status = fh->file_interface->file_write(fh, data, len)) == SWITCH_STATUS_SUCCESS) {

(gdb) p len
$1 = (switch_size_t *) 0x7f25c4675708

(gdb) p *len
$2 = 960

(gdb) p *fh
$3 = {file_interface = 0x2fb6300, flags = 526346, fd = 0x0, samples = 0, samplerate = 48000, native_rate = 48000, channels = 2, real_channels = 2, format = 0,
sections = 0, seekable = 0, sample_count = 0, speed = 0, memory_pool = 0x7f25c0270598, prebuf = 0, interval = 0, private_info = 0x7f232000b6d0, handler = 0x0,
pos = 0, audio_buffer = 0x0, sp_audio_buffer = 0x0, thresh = 0, silence_hits = 0, offset_pos = 0, samples_in = 0, samples_out = 45617280, vol = 0, resampler = 0x0,
buffer = 0x0, dbuf = 0x0, dbuflen = 0, pre_buffer = 0x0, pre_buffer_data = 0x0, pre_buffer_datalen = 0, file = 0x7f26415c85d0 "conference_record.c",
func = 0x7f26415c8720 <func.20072> "conference_record_thread_run", line = 276, file_path = 0x7f232000b6a8 "2_1570779353373.mp4",
spool_path = 0x0, prefix = 0x0, max_samples = 0, params = 0x7f2320005cb0, cur_channels = 0, cur_samplerate = 0, stream_name = 0x0, modname = 0x0, mm = {
samplerate = 48000, channels = 2, keyint = 60, ab = 128, vb = 2177, vw = 1920, vh = 1080, cbr = 0, fps = 15, source_fps = 0, vbuf = 0,
vprofile = SWITCH_VIDEO_PROFILE_BASELINE, vencspd = SWITCH_VIDEO_ENCODE_SPEED_DEFAULT, try_hardware_encoder = 1 '\001', scale_w = 0, scale_h = 0,
fmt = VPX_IMG_FMT_NONE, auth_username = 0x0, auth_password = 0x0}, flag_mutex = 0x7f232000b5e0, duration = 0, vpos = 0, muxbuf = 0x0, muxlen = 0}

(gdb) p *(fh->file_interface)
$4 = {interface_name = 0x7f2609c812d0 "mod_av", file_open = 0x7f2609c79f90 <av_file_open>, file_close = 0x7f2609c79580 <av_file_close>,
file_truncate = 0x7f2609c76050 <av_file_truncate>, file_read = 0x7f2609c77c90 <av_file_read>, file_write = 0x7f2609c78da0 <av_file_write>,
file_read_video = 0x7f2609c775c0 <av_file_read_video>, file_write_video = 0x7f2609c77e70 <av_file_write_video>, file_seek = 0x7f2609c76360 <av_file_seek>,
file_set_string = 0x7f2609c762a0 <av_file_set_string>, file_get_string = 0x7f2609c761d0 <av_file_get_string>, file_pre_close = 0x0,
file_command = 0x7f2609c76060 <av_file_command>, extens = 0x7f2609e84900 <supported_formats>, rwlock = 0x2fb6398, refs = 19, reflock = 0x2fb63f8,
parent = 0x2fb6100, next = 0x0}

If you need more details, please let me know. Thank you!

DTMF payload issue

One of our sip providers, was sending us a payload type of 120. When freeswitch transferred the call to another freeswitch server it sends 101 and no dtmf codes can then reach the second server.
See attached pcaps, and let me know if you need anything else for this.

Kill channel freeswitch not exits

I have calls that come into a queue and then get pulled out by a lua script in
background and transfered to a destination. all works fine except that it looks
like the sessions a not clearing from FS when all the parties clear the calls.

When I do show channels, I get this for example:
uuid direction created created_epoch name state cid_name
cid_num ip_addr dest presence_id presence_data callstate
callee_name callee_num callee_direction call_uuid hostname
sent_callee_name sent_callee_num
5e8215e7-b036-4cce-9b96-e57db92f13ee outbound 03/10/2019 11:40
1.35E+09 sofia/external/02031950164 CS_HANGUP Outbound Call
2031950164 135.196.144.32 agent_to_queue_paymentsense_queue_service
ACTIVE SEND 5e8215e7-b036-4cce-9b96-e57db92f13ee
freeswitch2 4.4209E+11 2089623100

But when I try to get kill or query it, I get a message that the call is not
anywhere in the FS.

/usr/local/freeswitch/bin/fs_cli -H 10.5.2.105 -x "uuid_kill
5e8215e7-b036-4cce-9b96-e57db92f13ee"
-ERR No Such Channel!

/usr/local/freeswitch/bin/fs_cli -H 10.5.2.105 -x "uuid_exists
5e8215e7-b036-4cce-9b96-e57db92f13ee"
false

Does anyone have an idea how I can kill that call. If I restart the FS, they
clear, but the problem is that they are hitting my limit on number of
simultaneous calls.

Any help much appreciated.

Event Socket Lib not compiling under php 7+

PHP 5.6 has been deprecated a long time ago (So is 7.0 now)

With this bug, essentially there's no more ESL support for php - at-least for non legacy versions.

To Reproduce the issue I created the following Dockerfile:

FROM debian:stretch

RUN apt-get update -y -qq && \
apt-get -y -qq install \
git \
php \
php-dev \
libtool-bin \
zlib1g-dev \
libjpeg-dev \
uuid-dev \
pkg-config \
sqlite3 \
libsqlite3-dev \
libcurl4-openssl-dev \
libspeex-dev \
libspeexdsp-dev \
libldns-dev \
libedit-dev \
libtiff5-dev \
swig3.0

RUN git clone https://freeswitch.org/stash/scm/fs/freeswitch.git
WORKDIR freeswitch
RUN ./bootstrap.sh
RUN ./configure

WORKDIR libs/esl

RUN make phpmod

buildlog.txt

See buildlog.txt

Clang no longer supports passing flags via --extra-cflags=, causing immediate make failure

Make fails with: '-fvisibility=hidden' not supported - issued from libvpx
FreeSWITCH Master and 1.10.1 Current Public Release
Catalina 10.15.0 with Command Line Tools 11.0
This was not an issue since OS X 10.6 until now, probably from an updated clang.

Command Line Tools does support -fvisibility=hidden, I tested it on the command line. However, FreeSwitch uses --extra-cflags='-fvisibility=hidden', and apparently, it's the passing via extra-cflags that's the problem.

Clang and gcc commands both support -fvisibility=hidden, but they do not support --extra-cflags="-fvisibility=hidden". So it's the --extra-cflags that's the problem.

At first I thought it may be related to https://freeswitch.org/jira/browse/FS-11968?filter=-2 , but I tested using a temp fix and it is not related.

I opened a problem with Apple Dev but it looks like the change is valid. I tried changing a few things in configure.ac, etc. to see if there is compiler recognition problem but nothing so far. I don't know enough on how to change configure stuff to get fvisability added via flags instead of extra-cflags, which is only used in libvpx.

Files attached.
05 FreeSWITCH configure.txt
06 FreeSWITCH make.txt

can mod ASR be more optimized?

For example, VAD and time out, HTTP or websocket send voice data pcm, etc.
If your think it's OK.
Thank you
🤖from FS roboot

mod_av in MSI package based on openh264, does not allow conference recording, even crashes in release 1.10.1

The command: "conference confname recording start recordings/confname.mp4" results in error: "avformat.c:634 Could not open video codec: Operation not permitted".
With release 1.8.7 freeswitch just continues running but in release 1.10.1 freeswitch even crashes after this message. Also in release 1.10.1 on Windows, freeswitch crashes after the commands"av show formats" and "av show codecs".
Additionally, it would be nice if mod_av would be compiled with nvenc support.

Crash (segfault) on 1.10

Hello,

I'm running FS 1.10 as a SBC on a Debian 9 envirorment, installed by apt-get and it's frequently crashing.

freeswitch@srv-4l-tel-sbc02> status
UP 0 years, 0 days, 2 hours, 11 minutes, 46 seconds, 403 milliseconds, 143 microseconds
FreeSWITCH (Version 1.10.1 -release-12-f9990221e6 64bit) is ready
451839 session(s) since startup
722 session(s) - peak 4876, last 5min 816
36 session(s) per Sec out of max 800, peak 507, last 5min 51
4866 session(s) max
min idle cpu 0.00/95.90
Current Stack Size/Max 240K/8192K

It creashes when running abount 1500 calls (3000 sessions) after a couple of hours, using two sofia profiles per call.

The corefile backtrace are attached.

thread_apply_all_bt.txt
bt.txt
bt_full.txt
info_threads.txt
thread_apply_bt_full.txt

conference recording crash

version: freeswitch 1.8

call statck:
(gdb) bt
#0 0x00007f2680a6f067 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007f2680a70448 in __GI_abort () at abort.c:89
#2 0x00007f2680aad1b4 in __libc_message (do_abort=do_abort@entry=1, fmt=fmt@entry=0x7f2680ba2210 "*** Error in `%s': %s: 0x%s ***\n")
at ../sysdeps/posix/libc_fatal.c:175
#3 0x00007f2680ab298e in malloc_printerr (action=1, str=0x7f2680b9e42a "realloc(): invalid next size", ptr=) at malloc.c:4996
#4 0x00007f2680ab576b in _int_realloc (av=av@entry=0x7f2320000020, oldp=oldp@entry=0x7f2320036170, oldsize=oldsize@entry=1552, nb=nb@entry=544) at malloc.c:4234
#5 0x00007f2680ab6769 in __GI___libc_realloc (oldmem=0x7f2320036180, bytes=523) at malloc.c:3029
#6 0x00007f260856d044 in av_buffer_realloc () from /usr/lib/x86_64-linux-gnu/libavutil.so.54
#7 0x00007f2608dd9236 in avcodec_encode_audio2 () from /usr/lib/x86_64-linux-gnu/libavcodec.so.56
#8 0x00007f2609c790dc in av_file_write (handle=0x2096, data=0x67a6, len=0x6) at avformat.c:2036
#9 0x00007f2681f23caf in switch_core_file_write (fh=0x7f25c02706a0, data=0x7f2320004ce0, len=0x7f25c4675708) at src/switch_core_file.c:670
#10 0x00007f26415c068c in conference_record_thread_run (thread=0x2096, obj=0x766b00) at conference_record.c:377
#11 0x00007f268222d110 in dummy_worker (opaque=0x7f25c02709f0) at threadproc/unix/thread.c:151
#12 0x00007f268144b064 in start_thread (arg=0x7f25c4676700) at pthread_create.c:309
#13 0x00007f2680b2262d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

(gdb) f 9
#9 0x00007f2681f23caf in switch_core_file_write (fh=0x7f25c02706a0, data=0x7f2320004ce0, len=0x7f25c4675708) at src/switch_core_file.c:670
670 if ((status = fh->file_interface->file_write(fh, data, len)) == SWITCH_STATUS_SUCCESS) {

(gdb) p len
$1 = (switch_size_t *) 0x7f25c4675708

(gdb) p *len
$2 = 960

(gdb) p *fh
$3 = {file_interface = 0x2fb6300, flags = 526346, fd = 0x0, samples = 0, samplerate = 48000, native_rate = 48000, channels = 2, real_channels = 2, format = 0,
sections = 0, seekable = 0, sample_count = 0, speed = 0, memory_pool = 0x7f25c0270598, prebuf = 0, interval = 0, private_info = 0x7f232000b6d0, handler = 0x0,
pos = 0, audio_buffer = 0x0, sp_audio_buffer = 0x0, thresh = 0, silence_hits = 0, offset_pos = 0, samples_in = 0, samples_out = 45617280, vol = 0, resampler = 0x0,
buffer = 0x0, dbuf = 0x0, dbuflen = 0, pre_buffer = 0x0, pre_buffer_data = 0x0, pre_buffer_datalen = 0, file = 0x7f26415c85d0 "conference_record.c",
func = 0x7f26415c8720 <func.20072> "conference_record_thread_run", line = 276, file_path = 0x7f232000b6a8 "2_1570779353373.mp4",
spool_path = 0x0, prefix = 0x0, max_samples = 0, params = 0x7f2320005cb0, cur_channels = 0, cur_samplerate = 0, stream_name = 0x0, modname = 0x0, mm = {
samplerate = 48000, channels = 2, keyint = 60, ab = 128, vb = 2177, vw = 1920, vh = 1080, cbr = 0, fps = 15, source_fps = 0, vbuf = 0,
vprofile = SWITCH_VIDEO_PROFILE_BASELINE, vencspd = SWITCH_VIDEO_ENCODE_SPEED_DEFAULT, try_hardware_encoder = 1 '\001', scale_w = 0, scale_h = 0,
fmt = VPX_IMG_FMT_NONE, auth_username = 0x0, auth_password = 0x0}, flag_mutex = 0x7f232000b5e0, duration = 0, vpos = 0, muxbuf = 0x0, muxlen = 0}

(gdb) p *(fh->file_interface)
$4 = {interface_name = 0x7f2609c812d0 "mod_av", file_open = 0x7f2609c79f90 <av_file_open>, file_close = 0x7f2609c79580 <av_file_close>,
file_truncate = 0x7f2609c76050 <av_file_truncate>, file_read = 0x7f2609c77c90 <av_file_read>, file_write = 0x7f2609c78da0 <av_file_write>,
file_read_video = 0x7f2609c775c0 <av_file_read_video>, file_write_video = 0x7f2609c77e70 <av_file_write_video>, file_seek = 0x7f2609c76360 <av_file_seek>,
file_set_string = 0x7f2609c762a0 <av_file_set_string>, file_get_string = 0x7f2609c761d0 <av_file_get_string>, file_pre_close = 0x0,
file_command = 0x7f2609c76060 <av_file_command>, extens = 0x7f2609e84900 <supported_formats>, rwlock = 0x2fb6398, refs = 19, reflock = 0x2fb63f8,
parent = 0x2fb6100, next = 0x0}

If you need more details, please let me know. Thank you!

Freeswitch - Call drops after 10 seconds

Hi everyone,

I want that my zoneminder server call a bash script in my freeswitch server that make a call to my mobile phone and play a audio. The purpose of this is for to check the cameras at night.

But i'm facing problems with freeswitch bash script.

I can make the call but drops after 10 seconds if the b leg answer or not.

This is my bash script:

fs_cli -d 7 -x "originate {origination_caller_id_number=011..........,originate_timeout=60,sip_auto_answer=true,}sofia/external/[email protected] &playback(/etc/freeswitch/sounds/audio.wav)"

In the logs i can find:

2019-10-11 10:35:31.423481 [NOTICE] sofia_media.c:92 Pre-Answer sofia/external/[email protected]!
2019-10-11 10:35:31.423481 [DEBUG] switch_channel.c:3474 (sofia/external/[email protected]) Callstate Change DOWN -> EARLY

any help i appreciate

freeswitch ulimits

hello,
I have installed freeswitch on a debian buster successfully. I have set up the ulimits in the freeswitch.service, in the /etc/profile... around everywhere but the Max open files still equals to 999999. where on earth freeswitch takes that value ?

mod_sofia tls read failure

i have a versy basic setup of FS with 1 profile. The profile accepts calls with TLS and sRTP and then sent to gateway in plain SIP. Im using xml_curl for users.
Every few days the profile keeps crashing or gets stuck in a loop and then i cant even restart the FS service even, have to kill it and then start it or else it wont accept any further registrations or calls. I have tried playing with xml_curl caching, watchdog etc since past one year and nothing seems to help. Even tried logging everything to file to see the cause of the crash but nothing helpful is written in log. The only error i get to see when this happens in fs_cli is below:

..\..\sofia-sip\libsofia-sip-ua\tport\tport_type_tls.c:434 tport_tls_recv() tport_type_tls(00000006A25BB0C0): tls_read() returned -1 ..\..\sofia-sip\libsofia-sip-ua\tport\tport.c:2864 tport_recv_event() tport_recv_event(00000006A25BB0C0) ..\..\sofia-sip\libsofia-sip-ua\tport\tport_type_tls.c:434 tport_tls_recv() tport_type_tls(00000006A25BB0C0): tls_read() returned -1 ..\..\sofia-sip\libsofia-sip-ua\tport\tport.c:2864 tport_recv_event() tport_recv_event(00000006A25BB0C0) ..\..\sofia-sip\libsofia-sip-ua\tport\tport_type_tls.c:434 tport_tls_recv() tport_type_tls(00000006A25BB0C0): tls_read() returned -1 ..\..\sofia-sip\libsofia-sip-ua\tport\tport.c:2864 tport_recv_event() tport_recv_event(00000006A25BB0C0) ..\..\sofia-sip\libsofia-sip-ua\tport\tport_type_tls.c:434 tport_tls_recv() tport_type_tls(00000006A25BB0C0): tls_read() returned -1 ..\..\sofia-sip\libsofia-sip-ua\tport\tport.c:2864 tport_recv_event() tport_recv_event(00000006A25BB0C0) ..\..\sofia-sip\libsofia-sip-ua\tport\tport_type_tls.c:434 tport_tls_recv() tport_type_tls(00000006A25BB0C0): tls_read() returned -1 ..\..\sofia-sip\libsofia-sip-ua\tport\tport.c:2864 tport_recv_event() tport_recv_event(00000006A25BB0C0) ..\..\sofia-sip\libsofia-sip-ua\tport\tport_type_tls.c:434 tport_tls_recv() tport_type_tls(00000006A25BB0C0): tls_read() returned -1

Please add Other-Leg-Gateway-Name variable

Please add Other-Leg-Gateway-Name variable it is needed to fill in radius attribute h323-gw-id on answer leg(A-Leg) and h323-remote-id on originate leg. (B-leg).
Currently It is possible to get other-leg ip address but absolutely not possible to get other leg gateway name.

Freeswitch 1.8.7 crashes randomly with empty core dump on centos 7.2 Kernel 5.1.0

FreeSWITCH crashes randomly with empty core dump. Not reproducible manually. Please find attached core dump and dmesg output

dmesg.txt
core.13183.txt

Freeswitch is running with root user.I have also check ulimits :
[root@freeswitch-3-1 freeswitch]# ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1048500
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) unlimited
real-time priority (-r) 0
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) unlimited
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

I understand that FS 1.10 is released hence i dont expect fix from FS developers but please if you can provide me some hint or direction on how to debug it further.

Thanks in advance for help and attention.

"norecord" command invalid

version: freeswitch 1.8
When I send the following Verto signaling on the web side:
[{
"jsonrpc": "2.0",
"method": "verto.broadcast",
"params": {
"eventChannel": "[email protected]",
"data": {
"application": "conf-control",
"command": "norecord",
"id": null,
"value": "all"
},
"sessid": "ea51f1bc-1ea3-4201-2eaf-ce17e008d25a"
},
"id": 17
}]

freeswitch send the following responses:

{
"data": {
"action": "response",
"error": "Invalid Command"
},
"eventChannel": "[email protected]"
}

[{
"jsonrpc": "2.0",
"id": 11252,
"method": "verto.event",
"params": {
"data": {
"action": "response",
"error": "Invalid Command"
},
"eventChannel": "[email protected]",
"eventSerno": 7
}
}]

But when I use the following command at fs_cli:
conference 3595 norecord all

it's ok!

[core] resampling segfault (segfault)

In some situations, FreeSWITCH will experience a segmentation fault when resampling is required in order to accommodate a different number of channels.

The issue can be recreated as follows:

  • Stock 1.10-1 installation on Debian 10
  • Launch FreeSWITCH with the vanilla configuration
  • Using the default configured users, register with 1000 and dial the sample echo dialplan 9195
  • Initiate a recording via uuid_record <uuid> start /tmp/test.raw
  • FreeSWITCH experiences a buffer overrun (output when compiled against the address sanitizer):
> uuid_record ddccf668-2354-41b2-8701-e9488006818a start /tmp/test.raw
[New Thread 0x7f9b1b9b9700 (LWP 19831)]
2019-10-24 23:30:49.687752 [DEBUG] switch_ivr_async.c:1347 Record session sample rate: 8000 -> 8000
2019-10-24 23:30:49.687752 [DEBUG] switch_core_media_bug.c:970 Attaching BUG to sofia/internal/[email protected]

+OK Success

freeswitch@localhost> 2019-10-24 23:30:49.687752 [DEBUG] switch_ivr_async.c:1636 No silence detection configured; assuming start of speech
2019-10-24 23:30:49.727747 [DEBUG] switch_core_io.c:448 Setting BUG Codec PCMU:0
=================================================================
==19789==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x621000850900 at pc 0x7f9b35f8a240 bp 0x7f9b1b9b88b0 sp 0x7f9b1b9b88a8
WRITE of size 2 at 0x621000850900 thread T39
    #0 0x7f9b35f8a23f in switch_mux_channels src/switch_resample.c:317
    #1 0x7f9b35e65828 in switch_core_file_write src/switch_core_file.c:603
    #2 0x7f9b36006c14 in recording_thread src/switch_ivr_async.c:1281
    #3 0x7f9b362e4f8b in dummy_worker threadproc/unix/thread.c:151
    #4 0x7f9b35ca5fa2 in start_thread /build/glibc-vjB4T1/glibc-2.28/nptl/pthread_create.c:486
    #5 0x7f9b3585e4ce in clone (/lib/x86_64-linux-gnu/libc.so.6+0xf94ce)

0x621000850900 is located 0 bytes to the right of 4096-byte region [0x62100084f900,0x621000850900)
allocated by thread T39 here:
    #0 0x7f9b36996720 in __interceptor_realloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:105
    #1 0x7f9b35e656e4 in switch_core_file_write src/switch_core_file.c:595
    #2 0x7f9b36006c14 in recording_thread src/switch_ivr_async.c:1281
    #3 0x7f9b362e4f8b in dummy_worker threadproc/unix/thread.c:151

Thread T39 created by T35 here:
    #0 0x7f9b368fddb0 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cc:202
    #1 0x7f9b362e5171 in apr_thread_create threadproc/unix/thread.c:194

Thread T35 created by T0 here:
    #0 0x7f9b368fddb0 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cc:202
    #1 0x7f9b362e5171 in apr_thread_create threadproc/unix/thread.c:194

SUMMARY: AddressSanitizer: heap-buffer-overflow src/switch_resample.c:317 in switch_mux_channels
Shadow bytes around the buggy address:
  0x0c42801020d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c42801020e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c42801020f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c4280102100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c4280102110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0c4280102120:[fa]fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c4280102130: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c4280102140: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c4280102150: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c4280102160: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c4280102170: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==19789==ABORTING
[Thread 0x7f9b1b9b9700 (LWP 19831) exited]
[Thread 0x7f9b1baa9700 (LWP 19830) exited]
[Thread 0x7f9b1c974700 (LWP 19827) exited]
[Thread 0x7f9b1c9c7700 (LWP 19826) exited]
[Thread 0x7f9b1ca1a700 (LWP 19825) exited]
[Thread 0x7f9b1ca6d700 (LWP 19824) exited]
[Thread 0x7f9b1cd98700 (LWP 19823) exited]
[Thread 0x7f9b1cdeb700 (LWP 19822) exited]
[Thread 0x7f9b1ce30700 (LWP 19821) exited]
[Thread 0x7f9b263bc700 (LWP 19815) exited]
[Thread 0x7f9b26fc7700 (LWP 19814) exited]
[Thread 0x7f9b2702a700 (LWP 19813) exited]
[Thread 0x7f9b272e2700 (LWP 19812) exited]
[Thread 0x7f9b2753c700 (LWP 19811) exited]
[Thread 0x7f9b2e486700 (LWP 19810) exited]
[Thread 0x7f9b2e5b3700 (LWP 19809) exited]
[Thread 0x7f9b2e606700 (LWP 19808) exited]
[Thread 0x7f9b2e849700 (LWP 19807) exited]
[Thread 0x7f9b2e89c700 (LWP 19806) exited]
[Thread 0x7f9b2f179700 (LWP 19805) exited]
[Thread 0x7f9b304ad700 (LWP 19804) exited]
[Thread 0x7f9b2f31c700 (LWP 19803) exited]
[Thread 0x7f9b2f36f700 (LWP 19802) exited]
[Thread 0x7f9b2f3b4700 (LWP 19801) exited]
[Thread 0x7f9b2f8d7700 (LWP 19800) exited]
[Thread 0x7f9b2f91c700 (LWP 19799) exited]
[Thread 0x7f9b30cd4700 (LWP 19797) exited]
[Thread 0x7f9b30efc700 (LWP 19796) exited]
[Thread 0x7f9b311ff700 (LWP 19794) exited]
[Thread 0x7f9b31847700 (LWP 19793) exited]
[Thread 0x7f9b33c49a40 (LWP 19789) exited]
[Inferior 1 (process 19789) exited with code 01]

The trace is on point as the data buffer in the code below will be overrun when demuxing:

uint32_t k = 0, len = samples * orig_channels;
for (i = 0; i < len; i++) {
data[i+len] = data[i];
}

As a side note, you may wonder how I ended up with more than one channel for a simple PCMU@8000h@20i@1c test call; the additional channel can be traced back to the RECORD_STEREO channel variable (which is explicitly set to true in the vanilla configuration):

if ((p = switch_channel_get_variable(channel, "RECORD_STEREO")) && switch_true(p)) {
flags |= SMBF_STEREO;
flags &= ~SMBF_STEREO_SWAP;
channels = 2;
}

freeswitch@localhost> uuid_getvar ddccf668-2354-41b2-8701-e9488006818a record_stereo

true

I am happy to provide a PR but I'd like some direction from a senior core developer before proceeding. Here are a number of thoughts:

  • Before invoking switch_mux_channels, ensure the buffer is large enough to accommodate the channel count (not just the original), i.e. change need so it accounts for the largest channel count (int need = *len * 2 * (fh->real_channels >= fh->channels ? fh->real_channels : fh->channels))

if (fh->real_channels != fh->channels && !switch_test_flag(fh, SWITCH_FILE_NOMUX)) {
int need = *len * 2 * fh->real_channels;
if (need > fh->muxlen) {
fh->muxbuf = realloc(fh->muxbuf, need);
switch_assert(fh->muxbuf);
fh->muxlen = need;
memcpy(fh->muxbuf, data, fh->muxlen);
data = fh->muxbuf;
}
switch_mux_channels((int16_t *) data, *len, fh->real_channels, fh->channels);
}

  • @anthmFS has originally proposed an alternative approach which does account for the correct buffer size (however, the sample population appears a bit different that the current implementation):

#else
uint32_t k = 0, len = samples * 2 * orig_channels;
int16_t *orig = NULL;
switch_zmalloc(orig, len);
memcpy(orig, data, len);
for (i = 0; i < samples; i++) {
for (j = 0; j < channels; j++) {
data[k++] = orig[i];
}
}
free(orig);
#endif

  • Also, perhaps RECORD_STEREO alone (at least in contexts similar to this one) should not trigger channel demuxing at all

  • Other ideas :-)

mod_av: deprecated-declarations

On CentOS 8

making all mod_av
make[4]: Entering directory '/opt/freeswitch/rpmbuild/BUILD/freeswitch-1.8.5/src/mod/codecs/mod_av'
Making all in .
make[5]: Entering directory '/opt/freeswitch/rpmbuild/BUILD/freeswitch-1.8.5/src/mod/codecs/mod_av'
  CC       mod_av_la-mod_av.lo
mod_av.c: In function 'mod_av_shutdown':
mod_av.c:131:2: error: 'av_lockmgr_register' is deprecated [-Werror=deprecated-declarations]
  av_lockmgr_register(NULL);
  ^~~~~~~~~~~~~~~~~~~
In file included from mod_av.c:35:
/usr/include/ffmpeg/libavcodec/avcodec.h:6163:5: note: declared here
 int av_lockmgr_register(int (*cb)(void **mutex, enum AVLockOp op));
     ^~~~~~~~~~~~~~~~~~~
mod_av.c: In function 'mod_av_load':
mod_av.c:193:2: error: 'av_lockmgr_register' is deprecated [-Werror=deprecated-declarations]
  av_lockmgr_register(&mod_av_lockmgr_cb);
  ^~~~~~~~~~~~~~~~~~~
In file included from mod_av.c:35:
/usr/include/ffmpeg/libavcodec/avcodec.h:6163:5: note: declared here
 int av_lockmgr_register(int (*cb)(void **mutex, enum AVLockOp op));
     ^~~~~~~~~~~~~~~~~~~
mod_av.c:197:2: error: 'av_register_all' is deprecated [-Werror=deprecated-declarations]
  av_register_all();
  ^~~~~~~~~~~~~~~
In file included from mod_av.c:36:
/usr/include/ffmpeg/libavformat/avformat.h:2050:6: note: declared here
 void av_register_all(void);
      ^~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[5]: *** [Makefile:752: mod_av_la-mod_av.lo] Error 1
make[5]: Leaving directory '/opt/freeswitch/rpmbuild/BUILD/freeswitch-1.8.5/src/mod/codecs/mod_av'
make[4]: *** [Makefile:781: all-recursive] Error 1
make[4]: Leaving directory '/opt/freeswitch/rpmbuild/BUILD/freeswitch-1.8.5/src/mod/codecs/mod_av'
make[3]: *** [Makefile:685: mod_av-all] Error 1
make[3]: Leaving directory '/opt/freeswitch/rpmbuild/BUILD/freeswitch-1.8.5/src/mod'
make[2]: *** [Makefile:590: all-recursive] Error 1
make[2]: Leaving directory '/opt/freeswitch/rpmbuild/BUILD/freeswitch-1.8.5/src'
make[1]: *** [Makefile:3650: all-recursive] Error 1
make[1]: Leaving directory '/opt/freeswitch/rpmbuild/BUILD/freeswitch-1.8.5'
make: *** [Makefile:1405: all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.W0GnSF (%build)

mod_conference: using "ghost" in member flags blocks audio.

Hi,

I just made an experiment inviting a member into an already existing conference with the flag "ghost", the channel is created and everything is ok but no audio at all on both side (member cannot hear conference and conference cannot hear him)
without the flag "ghost" everything is working with the audio.

Any idea?

I'm using this git version
FreeSWITCH Version 1.10.2-dev+git20190917T160350Z15ad4c2~64bit (git 15ad4c2 2019-09-17 16:03:50Z 64bit)

thanks

switch_url_encode is not encoding character '%'

Resurfacing this from the old FS Jira (FS-11499).

FreeSWITCH is not doing URL encoding of '%' as FreeSWITCH then is lead to believe the string has been encoded already.

This is particularly bad if Call-ID contains '%' (I'm looking at you, Ericsson MSC!) and an outbound event socket application is depending on it. When the event socket application sends a connect to FreeSWITCH, CHANNEL_DATA is dumped to the application without proper URL encoding of CHANNEL_UNIQUE_ID, UNIQUE_ID, variable_uuid, etc. and the application then fails doing URL decoding due to an invalid encoding sequence. This is not something the client should handle.

Example
The original Call-ID: u{cX82048234578%[email protected]
The FreeSWITCH URL encoded Call-ID: u%7BcX82048234578%bekJulHgQiB0e%40example.net
Proper URL encoded Call-ID: u%7BcX82048234578%25bekJulHgQiB0e%40example.net

I've been triaging this and it seems to have been introduced with FreeSWITCH v1.4.16 (commit 76370f4. It's still present in master although an option for double encoding has been introduced which to some extend mitigates the missing encoding if modules have been updated to use this option.
It seems some modules are still using the implementation which does not do proper URL encoding (mod_event_socket for instance).

SRTP Error : SRTP audio unprotect failed with code 7

uname -a

Linux_ Kylin 4.4.0-73.94.server-generic+ #85 SMP Tue Jun 26 14:01:55 CST 2018 aarch64 aarch64 aarch64 GNU/Linux

sip phone

linephone android 3.2.4,Linphone Core 3.10.2-580-g942f2034

freeswitch version

freeswitch@Kylin> version
FreeSWITCH Version 1.10.1-release~64bit (-release 64bit)

freeswitch log

**
2019-10-25 17:06:30.799832 [CONSOLE] mod_voicemail.c:4064 Event Thread Started
2019-10-25 17:06:51.719827 [NOTICE] switch_channel.c:1118 New Channel sofia/internal/[email protected] [c8816aee-f706-11e9-ba4a-15f472af246f]
2019-10-25 17:06:51.719827 [DEBUG] switch_core_state_machine.c:585 (sofia/internal/[email protected]) Running State Change CS_NEW (Cur 1 Tot 1)
2019-10-25 17:06:51.719827 [DEBUG] sofia.c:10243 sofia/internal/[email protected] receiving invite from 10.75.180.157:49620 version: 1.10.1 -release 64bit
2019-10-25 17:06:51.719827 [DEBUG] sofia.c:10337 verifying acl "domains" for ip/port 10.75.180.157:0.
2019-10-25 17:06:51.719827 [DEBUG] switch_core_state_machine.c:604 (sofia/internal/[email protected]) State NEW
2019-10-25 17:06:51.719827 [DEBUG] sofia.c:2426 detaching session c8816aee-f706-11e9-ba4a-15f472af246f
2019-10-25 17:06:51.739830 [DEBUG] sofia.c:2535 Re-attaching to session c8816aee-f706-11e9-ba4a-15f472af246f
2019-10-25 17:06:51.739830 [DEBUG] sofia.c:10243 sofia/internal/[email protected] receiving invite from 10.75.180.157:49620 version: 1.10.1 -release 64bit
2019-10-25 17:06:51.739830 [DEBUG] sofia.c:10337 verifying acl "domains" for ip/port 10.75.180.157:0.
2019-10-25 17:06:51.739830 [DEBUG] sofia.c:7290 Channel sofia/internal/[email protected] entering state [received][100]
2019-10-25 17:06:51.739830 [DEBUG] sofia.c:7300 Remote SDP:
v=0
o=1002 3171 1627 IN IP4 10.75.180.157
s=Talk
c=IN IP4 10.75.180.157
b=AS:1152
t=0 0
a=rtcp-xr:rcvr-rtt=all:10000 stat-summary=loss,dup,jitt,TTL voip-metrics
m=audio 7076 RTP/SAVP 0 8 101
a=rtpmap:101 telephone-event/8000
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:uIRmiL7RAFXRO40hvCv9yQt81sKLzu1bzhQhLfvM
a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:05Z4hJ2TiGo8v/J/I57gKP+p9Rqok1UMJLZZPgP5
a=crypto:3 AES_256_CM_HMAC_SHA1_80 inline:xLjgtU4gfdbV/Bax/JnFlgoY92HSTUoVZapqbhUCRQZhhj4mrVsOT1Tt8ZBltQ==
a=crypto:4 AES_256_CM_HMAC_SHA1_32 inline:HQf5jHBQOxIj9lyrtNSn4Zr3JbRtvr8oZhRwCP68xBsyySRhx69Hr8aXdZe9OQ==

2019-10-25 17:06:51.739830 [DEBUG] sofia.c:7703 (sofia/internal/[email protected]) State Change CS_NEW -> CS_INIT
2019-10-25 17:06:51.739830 [DEBUG] switch_core_state_machine.c:585 (sofia/internal/[email protected]) Running State Change CS_INIT (Cur 1 Tot 1)
2019-10-25 17:06:51.739830 [DEBUG] switch_core_state_machine.c:628 (sofia/internal/[email protected]) State INIT
2019-10-25 17:06:51.739830 [DEBUG] mod_sofia.c:93 sofia/internal/[email protected] SOFIA INIT
2019-10-25 17:06:51.739830 [DEBUG] switch_core_state_machine.c:40 sofia/internal/[email protected] Standard INIT
2019-10-25 17:06:51.739830 [DEBUG] switch_core_state_machine.c:48 (sofia/internal/[email protected]) State Change CS_INIT -> CS_ROUTING
2019-10-25 17:06:51.739830 [DEBUG] switch_core_state_machine.c:628 (sofia/internal/[email protected]) State INIT going to sleep
2019-10-25 17:06:51.739830 [DEBUG] switch_core_state_machine.c:585 (sofia/internal/[email protected]) Running State Change CS_ROUTING (Cur 1 Tot 1)
2019-10-25 17:06:51.739830 [DEBUG] switch_channel.c:2332 (sofia/internal/[email protected]) Callstate Change DOWN -> RINGING
2019-10-25 17:06:51.739830 [DEBUG] switch_core_state_machine.c:644 (sofia/internal/[email protected]) State ROUTING
2019-10-25 17:06:51.739830 [DEBUG] mod_sofia.c:154 sofia/internal/[email protected] SOFIA ROUTING
2019-10-25 17:06:51.739830 [DEBUG] switch_core_state_machine.c:236 sofia/internal/[email protected] Standard ROUTING
2019-10-25 17:06:51.739830 [INFO] mod_dialplan_xml.c:637 Processing 1002 <1002>->conf3000 in context default
Dialplan: sofia/internal/[email protected] parsing [default->unloop] continue=false
Dialplan: sofia/internal/[email protected] Regex (PASS) [unloop] ${unroll_loops}(true) =~ /^true$/ break=on-false
Dialplan: sofia/internal/[email protected] Regex (FAIL) [unloop] ${sip_looped_call}() =~ /^true$/ break=on-false
Dialplan: sofia/internal/[email protected] parsing [default->tod_example] continue=true
Dialplan: sofia/internal/[email protected] Date/Time Match (PASS) [tod_example] break=on-false
Dialplan: sofia/internal/[email protected] Action set(open=true)
Dialplan: sofia/internal/[email protected] parsing [default->holiday_example] continue=true
Dialplan: sofia/internal/[email protected] Date/TimeMatch (FAIL) [holiday_example] break=on-false
Dialplan: sofia/internal/[email protected] parsing [default->global-intercept] continue=false
Dialplan: sofia/internal/[email protected] Regex (FAIL) [global-intercept] destination_number(conf3000) =~ /^886$/ break=on-false
Dialplan: sofia/internal/[email protected] parsing [default->group-intercept] continue=false
Dialplan: sofia/internal/[email protected] Regex (FAIL) [group-intercept] destination_number(conf3000) =~ /^*8$/ break=on-false
Dialplan: sofia/internal/[email protected] parsing [default->intercept-ext] continue=false
Dialplan: sofia/internal/[email protected] Regex (FAIL) [intercept-ext] destination_number(conf3000) =~ /^**(\d+)$/ break=on-false
Dialplan: sofia/internal/[email protected] parsing [default->redial] continue=false
Dialplan: sofia/internal/[email protected] Regex (FAIL) [redial] destination_number(conf3000) =~ /^(redial|870)$/ break=on-false
Dialplan: sofia/internal/[email protected] parsing [default->global] continue=true
Dialplan: sofia/internal/[email protected] Regex (FAIL) [global] ${call_debug}(false) =~ /^true$/ break=never
Dialplan: sofia/internal/[email protected] Regex (FAIL) [global] ${default_password}(comisys1234) =~ /^1234$/ break=never
Dialplan: sofia/internal/[email protected] Regex (FAIL) [global] ${rtp_has_crypto}() =~ /^(AEAD_AES_256_GCM_8|AEAD_AES_128_GCM_8|AES_CM_256_HMAC_SHA1_80|AES_CM_192_HMAC_SHA1_80|AES_CM_128_HMAC_SHA1_80|AES_CM_256_HMAC_SHA1_32|AES_CM_192_HMAC_SHA1_32|AES_CM_128_HMAC_SHA1_3
2|AES_CM_128_NULL_AUTH)$/ break=neverDialplan: sofia/internal/[email protected] Regex (PASS) [global] ${endpoint_disposition}(DELAYED NEGOTIATION) =~ /^(DELAYED NEGOTIATION)/ break=on-false
Dialplan: sofia/internal/[email protected] Regex (PASS) [global] ${switch_r_sdp}(v=0
o=1002 3171 1627 IN IP4 10.75.180.157
s=Talk
c=IN IP4 10.75.180.157
b=AS:1152
t=0 0
a=rtcp-xr:rcvr-rtt=all:10000 stat-summary=loss,dup,jitt,TTL voip-metrics
m=audio 7076 RTP/SAVP 0 8 101
a=rtpmap:101 telephone-event/8000
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:uIRmiL7RAFXRO40hvCv9yQt81sKLzu1bzhQhLfvM
a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:05Z4hJ2TiGo8v/J/I57gKP+p9Rqok1UMJLZZPgP5
a=crypto:3 AES_256_CM_HMAC_SHA1_80 inline:xLjgtU4gfdbV/Bax/JnFlgoY92HSTUoVZapqbhUCRQZhhj4mrVsOT1Tt8ZBltQ==
a=crypto:4 AES_256_CM_HMAC_SHA1_32 inline:HQf5jHBQOxIj9lyrtNSn4Zr3JbRtvr8oZhRwCP68xBsyySRhx69Hr8aXdZe9OQ==
) =~ /(AES_CM_128_HMAC_SHA1_32|AES_CM_128_HMAC_SHA1_80)/ break=never
Dialplan: sofia/internal/[email protected] Action set(rtp_secure_media=true)
Dialplan: sofia/internal/[email protected] Absolute Condition [global]
Dialplan: sofia/internal/[email protected] Action hash(insert/${domain_name}-spymap/${caller_id_number}/${uuid})
Dialplan: sofia/internal/[email protected] Action hash(insert/${domain_name}-last_dial/${caller_id_number}/${destination_number})
Dialplan: sofia/internal/[email protected] Action hash(insert/${domain_name}-last_dial/global/${uuid})
Dialplan: sofia/internal/[email protected] Action export(RFC2822_DATE=${strftime(%a, %d %b %Y %T %z)})
Dialplan: sofia/internal/[email protected] parsing [default->test_conference] continue=false
Dialplan: sofia/internal/[email protected] Regex (PASS) [test_conference] destination_number(conf3000) =~ /^conf(\w+)$/ break=on-false
Dialplan: sofia/internal/[email protected] Action answer()
Dialplan: sofia/internal/[email protected] Action conference(3000@comisysconf+flags{endconf|mintwo})
2019-10-25 17:06:51.739830 [DEBUG] switch_core_state_machine.c:287 (sofia/internal/[email protected]) State Change CS_ROUTING -> CS_EXECUTE
2019-10-25 17:06:51.739830 [DEBUG] switch_core_state_machine.c:644 (sofia/internal/[email protected]) State ROUTING going to sleep
2019-10-25 17:06:51.739830 [DEBUG] switch_core_state_machine.c:585 (sofia/internal/[email protected]) Running State Change CS_EXECUTE (Cur 1 Tot 1)
2019-10-25 17:06:51.739830 [DEBUG] switch_core_state_machine.c:651 (sofia/internal/[email protected]) State EXECUTE
2019-10-25 17:06:51.739830 [DEBUG] mod_sofia.c:209 sofia/internal/[email protected] SOFIA EXECUTE
2019-10-25 17:06:51.739830 [DEBUG] switch_core_state_machine.c:329 sofia/internal/[email protected] Standard EXECUTE
EXECUTE [depth=0] sofia/internal/[email protected] set(open=true)
2019-10-25 17:06:51.739830 [DEBUG] mod_dptools.c:1672 SET sofia/internal/[email protected] [open]=[true]
EXECUTE [depth=0] sofia/internal/[email protected] set(rtp_secure_media=true)
2019-10-25 17:06:51.739830 [DEBUG] mod_dptools.c:1672 SET sofia/internal/[email protected] [rtp_secure_media]=[true]
EXECUTE [depth=0] sofia/internal/[email protected] hash(insert/10.95.42.53-spymap/1002/c8816aee-f706-11e9-ba4a-15f472af246f)
EXECUTE [depth=0] sofia/internal/[email protected] hash(insert/10.95.42.53-last_dial/1002/conf3000)
EXECUTE [depth=0] sofia/internal/[email protected] hash(insert/10.95.42.53-last_dial/global/c8816aee-f706-11e9-ba4a-15f472af246f)
EXECUTE [depth=0] sofia/internal/[email protected] export(RFC2822_DATE=Fri, 25 Oct 2019 17:06:51 +0800)
2019-10-25 17:06:51.739830 [DEBUG] switch_channel.c:1310 EXPORT (export_vars) [RFC2822_DATE]=[Fri, 25 Oct 2019 17:06:51 +0800]
EXECUTE [depth=0] sofia/internal/[email protected] answer()
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:1810 looking for crypto suite [AEAD_AES_256_GCM_8]alias=[] in [1 AES_CM_128_HMAC_SHA1_80 inline:uIRmiL7RAFXRO40hvCv9yQt81sKLzu1bzhQhLfvM]
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:1810 looking for crypto suite [AEAD_AES_128_GCM_8]alias=[] in [1 AES_CM_128_HMAC_SHA1_80 inline:uIRmiL7RAFXRO40hvCv9yQt81sKLzu1bzhQhLfvM]
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:1810 looking for crypto suite [AES_256_CM_HMAC_SHA1_80]alias=[AES_CM_256_HMAC_SHA1_80] in [1 AES_CM_128_HMAC_SHA1_80 inline:uIRmiL7RAFXRO40hvCv9yQt81sKLzu1bzhQhLfvM]
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:1810 looking for crypto suite [AES_192_CM_HMAC_SHA1_80]alias=[AES_CM_192_HMAC_SHA1_80] in [1 AES_CM_128_HMAC_SHA1_80 inline:uIRmiL7RAFXRO40hvCv9yQt81sKLzu1bzhQhLfvM]
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:1810 looking for crypto suite [AES_CM_128_HMAC_SHA1_80]alias=[] in [1 AES_CM_128_HMAC_SHA1_80 inline:uIRmiL7RAFXRO40hvCv9yQt81sKLzu1bzhQhLfvM]
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:1819 Found suite AES_CM_128_HMAC_SHA1_80
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:1889 Set Remote Key [1 AES_CM_128_HMAC_SHA1_80 inline:uIRmiL7RAFXRO40hvCv9yQt81sKLzu1bzhQhLfvM]
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:1215 Set Local audio crypto Key [1 AES_CM_128_HMAC_SHA1_80 inline:DgzBdtjxYukIEhuM7s9QapAYHdDIe4BF8P1VT1b2]
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:5590 Audio Codec Compare [PCMU:0:8000:20:64000:1]/[opus:116:48000:20:0:1]
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:5590 Audio Codec Compare [PCMU:0:8000:20:64000:1]/[PCMU:0:8000:20:64000:1]
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:5645 Audio Codec Compare [PCMU:0:8000:20:64000:1] ++++ is saved as a match
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:5590 Audio Codec Compare [PCMU:0:8000:20:64000:1]/[PCMA:8:8000:20:64000:1]
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:5590 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[opus:116:48000:20:0:1]
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:5590 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[PCMU:0:8000:20:64000:1]
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:5590 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[PCMA:8:8000:20:64000:1]
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:5645 Audio Codec Compare [PCMA:8:8000:20:64000:1] ++++ is saved as a match
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:5506 Set telephone-event payload to 101@8000
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:3834 Set Codec sofia/internal/[email protected] PCMU/8000 20 ms 160 samples 64000 bits 1 channels
2019-10-25 17:06:51.739830 [DEBUG] switch_core_codec.c:111 sofia/internal/[email protected] Original read codec set to PCMU:0
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:5849 Set telephone-event payload to 101@8000
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:5907 sofia/internal/[email protected] Set 2833 dtmf send payload to 101 recv payload to 101
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:8658 AUDIO RTP [sofia/internal/[email protected]] 10.95.42.53 port 31360 -> 10.75.180.157 port 7076 codec: 0 ms: 20
2019-10-25 17:06:51.739830 [DEBUG] switch_rtp.c:4408 Starting timer [soft] 160 bytes per 20ms
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:8972 sofia/internal/[email protected] Set 2833 dtmf send payload to 101
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:8979 sofia/internal/[email protected] Set 2833 dtmf receive payload to 101
2019-10-25 17:06:51.739830 [DEBUG] switch_core_media.c:9002 sofia/internal/[email protected] Set rtp dtmf delay to 40
2019-10-25 17:06:51.739830 [INFO] switch_rtp.c:4212 Activating audio Secure RTP SEND
2019-10-25 17:06:51.739830 [DEBUG] switch_core_sqldb.c:2799 Secure Type: srtp:sdes:AES_CM_128_HMAC_SHA1_80
2019-10-25 17:06:51.739830 [INFO] switch_rtp.c:4190 Activating audio Secure RTP RECV
2019-10-25 17:06:51.739830 [DEBUG] switch_core_sqldb.c:2799 Secure Type: srtp:sdes:AES_CM_128_HMAC_SHA1_80
2019-10-25 17:06:51.739830 [NOTICE] sofia_media.c:92 Pre-Answer sofia/internal/[email protected]!
2019-10-25 17:06:51.759833 [DEBUG] switch_channel.c:3565 (sofia/internal/[email protected]) Callstate Change RINGING -> EARLY
2019-10-25 17:06:51.759833 [DEBUG] switch_core_media.c:8640 Audio params are unchanged for sofia/internal/[email protected].
2019-10-25 17:06:51.759833 [DEBUG] mod_sofia.c:905 Local SDP sofia/internal/[email protected]:
v=0
o=FreeSWITCH 1571963051 1571963052 IN IP4 10.95.42.53
s=FreeSWITCH
c=IN IP4 10.95.42.53
t=0 0
m=audio 31360 RTP/SAVP 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:DgzBdtjxYukIEhuM7s9QapAYHdDIe4BF8P1VT1b2

2019-10-25 17:06:51.759833 [NOTICE] mod_dptools.c:1406 Channel [sofia/internal/[email protected]] has been answered
2019-10-25 17:06:51.759833 [DEBUG] switch_channel.c:3865 (sofia/internal/[email protected]) Callstate Change EARLY -> ACTIVE
2019-10-25 17:06:51.759833 [DEBUG] sofia.c:7290 Channel sofia/internal/[email protected] entering state [completed][200]
EXECUTE [depth=0] sofia/internal/[email protected] conference(3000@comisysconf+flags{endconf|mintwo})
2019-10-25 17:06:51.759833 [DEBUG] mod_conference.c:3414 using channel sound prefix: /opt/voip_fstest/share/freeswitch/sounds/en/us/callie
2019-10-25 17:06:51.759833 [DEBUG] conference_member.c:1764 Raw Codec Activation Success L16@8000hz 1 channel 20ms
2019-10-25 17:06:51.759833 [DEBUG] conference_member.c:1811 Raw Codec Activation Success L16@8000hz 1 channel 20ms
2019-10-25 17:06:51.759833 [DEBUG] mod_conference.c:228 Setup timer success interval: 20 samples: 160
2019-10-25 17:06:51.759833 [DEBUG] switch_core_codec.c:223 sofia/internal/[email protected] Push codec L16:100
2019-10-25 17:06:51.759833 [DEBUG] conference_member.c:106 sofia/internal/[email protected] binding '0' to 'mute'
2019-10-25 17:06:51.759833 [INFO] switch_ivr_async.c:219 Digit parser mod_conference: Setting realm to 'conf'
2019-10-25 17:06:51.759833 [DEBUG] switch_ivr_async.c:344 Digit parser mod_conference: binding 0/conf/0 callback: 0xffff51cfe530 data: 0xfffed8037ae8
2019-10-25 17:06:51.759833 [DEBUG] conference_member.c:106 sofia/internal/[email protected] binding '*' to 'deaf mute'
2019-10-25 17:06:51.759833 [DEBUG] switch_ivr_async.c:344 Digit parser mod_conference: binding */conf/0 callback: 0xffff51cfe530 data: 0xfffed8037b18
2019-10-25 17:06:51.759833 [DEBUG] conference_member.c:106 sofia/internal/[email protected] binding '9' to 'energy up'
2019-10-25 17:06:51.759833 [DEBUG] switch_ivr_async.c:344 Digit parser mod_conference: binding 9/conf/0 callback: 0xffff51cfe530 data: 0xfffed8037b48
2019-10-25 17:06:51.759833 [DEBUG] conference_member.c:106 sofia/internal/[email protected] binding '8' to 'energy equ'
2019-10-25 17:06:51.759833 [DEBUG] switch_ivr_async.c:344 Digit parser mod_conference: binding 8/conf/0 callback: 0xffff51cfe530 data: 0xfffed8037b78
2019-10-25 17:06:51.759833 [DEBUG] conference_member.c:106 sofia/internal/[email protected] binding '7' to 'energy dn'
2019-10-25 17:06:51.759833 [DEBUG] switch_ivr_async.c:344 Digit parser mod_conference: binding 7/conf/0 callback: 0xffff51cfe530 data: 0xfffed8037ba8
2019-10-25 17:06:51.759833 [DEBUG] conference_member.c:106 sofia/internal/[email protected] binding '3' to 'vol talk up'
2019-10-25 17:06:51.759833 [DEBUG] switch_ivr_async.c:344 Digit parser mod_conference: binding 3/conf/0 callback: 0xffff51cfe530 data: 0xfffed8037bd8
2019-10-25 17:06:51.759833 [DEBUG] conference_member.c:106 sofia/internal/[email protected] binding '2' to 'vol talk zero'
2019-10-25 17:06:51.759833 [DEBUG] switch_ivr_async.c:344 Digit parser mod_conference: binding 2/conf/0 callback: 0xffff51cfe530 data: 0xfffed8037c08
2019-10-25 17:06:51.759833 [DEBUG] conference_member.c:106 sofia/internal/[email protected] binding '1' to 'vol talk dn'
2019-10-25 17:06:51.759833 [DEBUG] switch_ivr_async.c:344 Digit parser mod_conference: binding 1/conf/0 callback: 0xffff51cfe530 data: 0xfffed8037c38
2019-10-25 17:06:51.759833 [DEBUG] conference_member.c:106 sofia/internal/[email protected] binding '6' to 'vol listen up'
2019-10-25 17:06:51.759833 [DEBUG] switch_ivr_async.c:344 Digit parser mod_conference: binding 6/conf/0 callback: 0xffff51cfe530 data: 0xfffed8037c68
2019-10-25 17:06:51.759833 [DEBUG] conference_member.c:106 sofia/internal/[email protected] binding '5' to 'vol listen zero'
2019-10-25 17:06:51.759833 [DEBUG] switch_ivr_async.c:344 Digit parser mod_conference: binding 5/conf/0 callback: 0xffff51cfe530 data: 0xfffed8037c98
2019-10-25 17:06:51.759833 [DEBUG] conference_member.c:106 sofia/internal/[email protected] binding '4' to 'vol listen dn'
2019-10-25 17:06:51.759833 [DEBUG] switch_ivr_async.c:344 Digit parser mod_conference: binding 4/conf/0 callback: 0xffff51cfe530 data: 0xfffed8037cc8
2019-10-25 17:06:51.759833 [DEBUG] conference_member.c:106 sofia/internal/[email protected] binding '#' to 'hangup'
2019-10-25 17:06:51.759833 [DEBUG] switch_ivr_async.c:344 Digit parser mod_conference: binding #/conf/0 callback: 0xffff51cfe530 data: 0xfffed8037cf8
2019-10-25 17:06:51.759833 [DEBUG] sofia.c:7290 Channel sofia/internal/[email protected] entering state [ready][200]
2019-10-25 17:06:51.759833 [DEBUG] conference_loop.c:1338 Setup timer soft success interval: 20 samples: 160 from codec PCMU
2019-10-25 17:06:52.199827 [WARNING] switch_rtp.c:6257 SRTP audio unprotect failed with code 7 (auth check failed) 182 bytes 10 errors
2019-10-25 17:06:52.579827 [WARNING] switch_rtp.c:6257 SRTP audio unprotect failed with code 7 (auth check failed) 182 bytes 20 errors
2019-10-25 17:06:52.979829 [WARNING] switch_rtp.c:6257 SRTP audio unprotect failed with code 7 (auth check failed) 182 bytes 30 errors
2019-10-25 17:06:53.379827 [WARNING] switch_rtp.c:6257 SRTP audio unprotect failed with code 7 (auth check failed) 182 bytes 40 errors
2019-10-25 17:06:53.779827 [WARNING] switch_rtp.c:6257 SRTP audio unprotect failed with code 7 (auth check failed) 182 bytes 50 errors
2019-10-25 17:06:54.179827 [WARNING] switch_rtp.c:6257 SRTP audio unprotect failed with code 7 (auth check failed) 182 bytes 60 errors
2019-10-25 17:06:54.579827 [WARNING] switch_rtp.c:6257 SRTP audio unprotect failed with code 7 (auth check failed) 182 bytes 70 errors
2019-10-25 17:06:54.979827 [WARNING] switch_rtp.c:6257 SRTP audio unprotect failed with code 7 (auth check failed) 182 bytes 80 errors
2019-10-25 17:06:55.379827 [WARNING] switch_rtp.c:6257 SRTP audio unprotect failed with code 7 (auth check failed) 182 bytes 90 errors
2019-10-25 17:06:55.779827 [ERR] switch_rtp.c:6250 SRTP audio unprotect failed with code 7 (auth check failed) 182 bytes 100 errors
2019-10-25 17:06:55.779827 [ERR] switch_rtp.c:6253 Ending call due to SRTP error
2019-10-25 17:06:55.779827 [NOTICE] switch_rtp.c:6255 Hangup sofia/internal/[email protected] [CS_EXECUTE] [SRTP_READ_ERROR]
2019-10-25 17:06:55.799829 [INFO] conference_loop.c:1665 Channel leaving conference, cause: SRTP_READ_ERROR
2019-10-25 17:06:55.799829 [DEBUG] mod_conference.c:2501 sofia/internal/[email protected] skip receive message [UNBRIDGE] (channel is hungup already)
2019-10-25 17:06:55.799829 [DEBUG] switch_core_media.c:12382 sofia/internal/[email protected] skip receive message [HARD_MUTE] (channel is hungup already)
2019-10-25 17:06:55.799829 [DEBUG] switch_core_codec.c:248 sofia/internal/[email protected] Restore previous codec PCMU:0.
2019-10-25 17:06:55.799829 [DEBUG] switch_core_session.c:2905 sofia/internal/[email protected] skip receive message [APPLICATION_EXEC_COMPLETE] (channel is hungup already)
2019-10-25 17:06:55.799829 [DEBUG] switch_core_state_machine.c:651 (sofia/internal/[email protected]) State EXECUTE going to sleep
2019-10-25 17:06:55.799829 [DEBUG] switch_core_state_machine.c:585 (sofia/internal/[email protected]) Running State Change CS_HANGUP (Cur 1 Tot 1)
2019-10-25 17:06:55.799829 [DEBUG] switch_core_state_machine.c:848 (sofia/internal/[email protected]) Callstate Change ACTIVE -> HANGUP
2019-10-25 17:06:55.799829 [DEBUG] switch_core_state_machine.c:850 (sofia/internal/[email protected]) State HANGUP
2019-10-25 17:06:55.799829 [DEBUG] mod_sofia.c:460 Channel sofia/internal/[email protected] hanging up, cause: SRTP_READ_ERROR
2019-10-25 17:06:55.799829 [DEBUG] mod_sofia.c:514 Sending BYE to sofia/internal/[email protected]
2019-10-25 17:06:55.799829 [DEBUG] switch_core_state_machine.c:60 sofia/internal/[email protected] Standard HANGUP, cause: SRTP_READ_ERROR
2019-10-25 17:06:55.799829 [DEBUG] switch_core_state_machine.c:850 (sofia/internal/[email protected]) State HANGUP going to sleep
2019-10-25 17:06:55.799829 [DEBUG] switch_core_state_machine.c:620 (sofia/internal/[email protected]) State Change CS_HANGUP -> CS_REPORTING
2019-10-25 17:06:55.799829 [DEBUG] switch_core_state_machine.c:585 (sofia/internal/[email protected]) Running State Change CS_REPORTING (Cur 1 Tot 1)
2019-10-25 17:06:55.799829 [DEBUG] switch_core_state_machine.c:936 (sofia/internal/[email protected]) State REPORTING
2019-10-25 17:06:55.799829 [DEBUG] switch_core_state_machine.c:174 sofia/internal/[email protected] Standard REPORTING, cause: SRTP_READ_ERROR
2019-10-25 17:06:55.799829 [DEBUG] switch_core_state_machine.c:936 (sofia/internal/[email protected]) State REPORTING going to sleep
2019-10-25 17:06:55.819835 [DEBUG] switch_core_state_machine.c:611 (sofia/internal/[email protected]) State Change CS_REPORTING -> CS_DESTROY
2019-10-25 17:06:55.819835 [DEBUG] switch_core_session.c:1726 Session 1 (sofia/internal/[email protected]) Locked, Waiting on external entities
2019-10-25 17:06:55.819835 [NOTICE] switch_core_session.c:1744 Session 1 (sofia/internal/[email protected]) Ended
2019-10-25 17:06:55.819835 [NOTICE] switch_core_session.c:1748 Close Channel sofia/internal/[email protected] [CS_DESTROY]
2019-10-25 17:06:55.819835 [DEBUG] switch_core_state_machine.c:739 (sofia/internal/[email protected]) Running State Change CS_DESTROY (Cur 0 Tot 1)
2019-10-25 17:06:55.819835 [DEBUG] switch_core_state_machine.c:749 (sofia/internal/[email protected]) State DESTROY
2019-10-25 17:06:55.819835 [DEBUG] mod_sofia.c:365 sofia/internal/[email protected] SOFIA DESTROY
2019-10-25 17:06:55.819835 [DEBUG] switch_core_state_machine.c:181 sofia/internal/[email protected] Standard DESTROY
2019-10-25 17:06:55.819835 [DEBUG] switch_core_state_machine.c:749 (sofia/internal/[email protected]) State DESTROY going to sleep
2019-10-25 17:06:55.819835 [DEBUG] mod_conference.c:835 Write Lock ON
2019-10-25 17:06:55.819835 [DEBUG] mod_conference.c:838 Write Lock OFF
freeswitch@Kylin>

**

Call a registered user, But get the [USER_NOT_REGISTERED] error!The Jssip-Opensips-Freeswitch System.

my system is like this:
jssip ---(websocket)---> [5066]opensips[5060] ---(udp)---> [5060]freeswitch

Three users were registered! User 1008 registered from X-Lite, and other two 1003\1004 registered from Jssip(websocket). succeed to call 1008, but fail to call 1003 and 1004!

log info bellow:

freeswitch@hsbrokeract>  sofia status profile internal reg

Registrations:
=================================================================================================
Call-ID:        99142NGI0MWRlZDYwNDFkMDY4YWZlYTg0NWNkYWY5MzhlOGQ
User:           [email protected]
Contact:        "" <sip:[email protected]:60446;rinstance=046703f393e4da9c>
Agent:          X-Lite release 5.6.1 stamp 99142
Status:         Registered(UDP)(unknown) EXP(2019-09-29 15:29:19) EXPSECS(2739)
Ping-Status:    Reachable
Ping-Time:      0.00
Host:           hsbrokeract
IP:             192.168.54.45
Port:           5060
Auth-User:      1008
Auth-Realm:     192.168.54.45
MWI-Account:    [email protected]

Call-ID:        ps4v9ug6rl6v7g654ap68m
User:           [email protected]
Contact:        "" <sip:[email protected]:62494;transport=ws;fs_nat=yes;fs_path=sip%3Ahps3n97o%40192.168.54.45%3A5060%3Btransport%3Dws>
Agent:          JsSIP 3.0.13
Status:         Registered(WS-NAT)(unknown) EXP(2019-09-29 14:54:10) EXPSECS(630)
Ping-Status:    Reachable
Ping-Time:      0.00
Host:           hsbrokeract
IP:             192.168.54.45
Port:           5060
Auth-User:      1003
Auth-Realm:     192.168.54.45
MWI-Account:    [email protected]

Call-ID:        b4s11dtlf9o5qscblol3io
User:           [email protected]
Contact:        "" <sip:[email protected]:62498;transport=ws;fs_nat=yes;fs_path=sip%3A4qisovqn%40192.168.54.45%3A5060%3Btransport%3Dws>
Agent:          JsSIP 3.0.13
Status:         Registered(WS-NAT)(unknown) EXP(2019-09-29 14:54:13) EXPSECS(633)
Ping-Status:    Reachable
Ping-Time:      0.00
Host:           hsbrokeract
IP:             192.168.54.45
Port:           5060
Auth-User:      1004
Auth-Realm:     192.168.54.45
MWI-Account:    [email protected]

Total items returned: 3
=================================================================================================

when call 1003(registered from jssip)

freeswitch@hsbrokeract> originate user/1003 &echo()
-ERR NORMAL_TEMPORARY_FAILURE

2019-09-29 14:44:31.493275 [DEBUG] switch_ivr_originate.c:2142 Parsing global variables
2019-09-29 14:44:31.543270 [DEBUG] switch_ivr_originate.c:2142 Parsing global variables
2019-09-29 14:44:31.543270 [NOTICE] switch_channel.c:1104 New Channel sofia/internal/[email protected]:62891 [76ddea99-203c-4f07-a3c2-f22a78011ef7]
2019-09-29 14:44:31.543270 [DEBUG] mod_sofia.c:4819 (sofia/internal/[email protected]:62891) State Change CS_NEW -> CS_INIT
2019-09-29 14:44:31.543270 [NOTICE] switch_ivr_originate.c:2851 Cannot create outgoing channel of type [error] cause: [USER_NOT_REGISTERED]
2019-09-29 14:44:31.543270 [DEBUG] switch_core_state_machine.c:584 (sofia/internal/[email protected]:62891) Running State Change CS_INIT (Cur 1 Tot 16)
2019-09-29 14:44:31.543270 [DEBUG] switch_core_state_machine.c:627 (sofia/internal/[email protected]:62891) State INIT
2019-09-29 14:44:31.543270 [DEBUG] mod_sofia.c:90 sofia/internal/[email protected]:62891 SOFIA INIT
2019-09-29 14:44:31.563266 [DEBUG] sofia_glue.c:1264 sip:[email protected]:5060;transport=ws Setting proxy route to sofia/internal/[email protected]:62891
2019-09-29 14:44:31.563266 [DEBUG] sofia_glue.c:1295 sofia/internal/[email protected]:62891 sending invite version: 1.6.19 git c28091b 2017-08-21 22:09:37Z 64bit
Local SDP:
v=0
o=FreeSWITCH 1569720561 1569720562 IN IP4 10.20.23.221
s=FreeSWITCH
c=IN IP4 10.20.23.221
t=0 0
a=msid-semantic: WMS XbFQngjE44yow3gcvJIvdRzqCKImmVy9
m=audio 18910 RTP/SAVPF 9 0 8 101
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fingerprint:sha-256 27:A9:D3:9C:49:91:1C:62:17:16:69:44:04:B7:45:34:8C:CB:05:83:3B:87:96:05:B6:DC:A7:2B:EC:3A:89:30
a=setup:actpass
a=rtcp-mux
a=rtcp:18910 IN IP4 10.20.23.221
a=ssrc:3583766911 cname:X4QbaZF5U4jhXqjj
a=ssrc:3583766911 msid:XbFQngjE44yow3gcvJIvdRzqCKImmVy9 a0
a=ssrc:3583766911 mslabel:XbFQngjE44yow3gcvJIvdRzqCKImmVy9
a=ssrc:3583766911 label:XbFQngjE44yow3gcvJIvdRzqCKImmVy9a0
a=ice-ufrag:0RE3z3j1EReQDDQr
a=ice-pwd:xwsxmYt7SCeFTnOJ5jCvdLnH
a=candidate:5418482540 1 udp 659136 10.20.23.221 18910 typ host generation 0
a=candidate:5418482540 2 udp 659136 10.20.23.221 18910 typ host generation 0
a=ptime:20
a=sendrecv
m=video 18478 RTP/SAVPF 102
b=AS:1024
a=rtpmap:102 VP8/90000
a=fingerprint:sha-256 27:A9:D3:9C:49:91:1C:62:17:16:69:44:04:B7:45:34:8C:CB:05:83:3B:87:96:05:B6:DC:A7:2B:EC:3A:89:30
a=setup:actpass
a=rtcp-mux
a=rtcp:18478 IN IP4 10.20.23.221
a=rtcp-fb:102 ccm fir
a=rtcp-fb:102 ccm tmmbr
a=rtcp-fb:102 nack
a=rtcp-fb:102 nack pli
a=ssrc:2798918071 cname:X4QbaZF5U4jhXqjj
a=ssrc:2798918071 msid:XbFQngjE44yow3gcvJIvdRzqCKImmVy9 v0
a=ssrc:2798918071 mslabel:XbFQngjE44yow3gcvJIvdRzqCKImmVy9
a=ssrc:2798918071 label:XbFQngjE44yow3gcvJIvdRzqCKImmVy9v0
a=ice-ufrag:yd0DW6sie2s14mYQ
a=ice-pwd:ETCNUq86928xywnWzdpl9Iue
a=candidate:9279178112 1 udp 659136 10.20.23.221 18478 typ host generation 0
a=candidate:9279178112 2 udp 659135 10.20.23.221 18478 typ host generation 0
a=end-of-candidates

2019-09-29 14:44:31.563266 [DEBUG] switch_core_state_machine.c:40 sofia/internal/[email protected]:62891 Standard INIT
2019-09-29 14:44:31.563266 [DEBUG] switch_core_state_machine.c:48 (sofia/internal/[email protected]:62891) State Change CS_INIT -> CS_ROUTING
2019-09-29 14:44:31.563266 [DEBUG] switch_core_state_machine.c:627 (sofia/internal/[email protected]:62891) State INIT going to sleep
2019-09-29 14:44:31.563266 [DEBUG] switch_core_state_machine.c:584 (sofia/internal/[email protected]:62891) Running State Change CS_ROUTING (Cur 1 Tot 16)
2019-09-29 14:44:31.563266 [DEBUG] switch_core_state_machine.c:643 (sofia/internal/[email protected]:62891) State ROUTING
2019-09-29 14:44:31.563266 [DEBUG] mod_sofia.c:143 sofia/internal/[email protected]:62891 SOFIA ROUTING
2019-09-29 14:44:31.563266 [DEBUG] switch_ivr_originate.c:67 (sofia/internal/[email protected]:62891) State Change CS_ROUTING -> CS_CONSUME_MEDIA
2019-09-29 14:44:31.563266 [DEBUG] switch_core_state_machine.c:643 (sofia/internal/[email protected]:62891) State ROUTING going to sleep
2019-09-29 14:44:31.563266 [DEBUG] switch_core_state_machine.c:584 (sofia/internal/[email protected]:62891) Running State Change CS_CONSUME_MEDIA (Cur 1 Tot 16)
2019-09-29 14:44:31.563266 [DEBUG] switch_core_state_machine.c:662 (sofia/internal/[email protected]:62891) State CONSUME_MEDIA
2019-09-29 14:44:31.563266 [DEBUG] switch_core_state_machine.c:662 (sofia/internal/[email protected]:62891) State CONSUME_MEDIA going to sleep
2019-09-29 14:44:31.573260 [DEBUG] sofia.c:7084 Channel sofia/internal/[email protected]:62891 entering state [calling][0]
2019-09-29 14:44:31.573260 [DEBUG] sofia.c:7084 Channel sofia/internal/[email protected]:62891 entering state [terminated][503]
2019-09-29 14:44:31.573260 [NOTICE] sofia.c:8273 Hangup sofia/internal/[email protected]:62891 [CS_CONSUME_MEDIA] [NORMAL_TEMPORARY_FAILURE]
2019-09-29 14:44:31.573260 [DEBUG] switch_core_state_machine.c:584 (sofia/internal/[email protected]:62891) Running State Change CS_HANGUP (Cur 1 Tot 16)
2019-09-29 14:44:31.573260 [DEBUG] switch_core_state_machine.c:850 (sofia/internal/[email protected]:62891) Callstate Change DOWN -> HANGUP
2019-09-29 14:44:31.573260 [DEBUG] switch_core_state_machine.c:852 (sofia/internal/[email protected]:62891) State HANGUP
2019-09-29 14:44:31.573260 [DEBUG] mod_sofia.c:438 Channel sofia/internal/[email protected]:62891 hanging up, cause: NORMAL_TEMPORARY_FAILURE
2019-09-29 14:44:31.573260 [DEBUG] switch_core_state_machine.c:60 sofia/internal/[email protected]:62891 Standard HANGUP, cause: NORMAL_TEMPORARY_FAILURE
2019-09-29 14:44:31.573260 [DEBUG] switch_core_state_machine.c:852 (sofia/internal/[email protected]:62891) State HANGUP going to sleep
2019-09-29 14:44:31.573260 [DEBUG] switch_core_state_machine.c:619 (sofia/internal/[email protected]:62891) State Change CS_HANGUP -> CS_REPORTING
2019-09-29 14:44:31.573260 [DEBUG] switch_core_state_machine.c:584 (sofia/internal/[email protected]:62891) Running State Change CS_REPORTING (Cur 1 Tot 16)
2019-09-29 14:44:31.573260 [DEBUG] switch_core_state_machine.c:938 (sofia/internal/[email protected]:62891) State REPORTING
2019-09-29 14:44:31.583260 [DEBUG] switch_ivr_originate.c:3848 Originate Resulted in Error Cause: 41 [NORMAL_TEMPORARY_FAILURE]
2019-09-29 14:44:31.583260 [NOTICE] switch_ivr_originate.c:2851 Cannot create outgoing channel of type [user] cause: [NORMAL_TEMPORARY_FAILURE]
2019-09-29 14:44:31.583260 [DEBUG] switch_ivr_originate.c:3848 Originate Resulted in Error Cause: 41 [NORMAL_TEMPORARY_FAILURE]
2019-09-29 14:44:31.593259 [DEBUG] switch_core_state_machine.c:174 sofia/internal/[email protected]:62891 Standard REPORTING, cause: NORMAL_TEMPORARY_FAILURE
2019-09-29 14:44:31.593259 [DEBUG] switch_core_state_machine.c:938 (sofia/internal/[email protected]:62891) State REPORTING going to sleep
2019-09-29 14:44:31.593259 [DEBUG] switch_core_state_machine.c:610 (sofia/internal/[email protected]:62891) State Change CS_REPORTING -> CS_DESTROY
2019-09-29 14:44:31.593259 [DEBUG] switch_core_session.c:1665 Session 16 (sofia/internal/[email protected]:62891) Locked, Waiting on external entities
2019-09-29 14:44:31.593259 [NOTICE] switch_core_session.c:1683 Session 16 (sofia/internal/[email protected]:62891) Ended
2019-09-29 14:44:31.593259 [NOTICE] switch_core_session.c:1687 Close Channel sofia/internal/[email protected]:62891 [CS_DESTROY]
2019-09-29 14:44:31.593259 [DEBUG] switch_core_state_machine.c:741 (sofia/internal/[email protected]:62891) Running State Change CS_DESTROY (Cur 0 Tot 16)
2019-09-29 14:44:31.593259 [DEBUG] switch_core_state_machine.c:751 (sofia/internal/[email protected]:62891) State DESTROY
2019-09-29 14:44:31.593259 [DEBUG] mod_sofia.c:343 sofia/internal/[email protected]:62891 SOFIA DESTROY
2019-09-29 14:44:31.593259 [DEBUG] switch_core_state_machine.c:181 sofia/internal/[email protected]:62891 Standard DESTROY
2019-09-29 14:44:31.593259 [DEBUG] switch_core_state_machine.c:751 (sofia/internal/[email protected]:62891) State DESTROY going to sleep

but succeed to call 1008(registered from X-Lite):

freeswitch@hsbrokeract> originate user/1008 &echo()
+OK 33ad2da3-a44d-4600-aae2-8227d1f9f1c0

2019-09-29 14:46:48.803270 [DEBUG] switch_ivr_originate.c:2142 Parsing global variables
2019-09-29 14:46:48.813267 [DEBUG] switch_ivr_originate.c:2142 Parsing global variables
2019-09-29 14:46:48.813267 [NOTICE] switch_channel.c:1104 New Channel sofia/internal/[email protected]:60446 [33ad2da3-a44d-4600-aae2-8227d1f9f1c0]
2019-09-29 14:46:48.813267 [DEBUG] mod_sofia.c:4819 (sofia/internal/[email protected]:60446) State Change CS_NEW -> CS_INIT
2019-09-29 14:46:48.813267 [NOTICE] switch_ivr_originate.c:2851 Cannot create outgoing channel of type [error] cause: [USER_NOT_REGISTERED]
2019-09-29 14:46:48.813267 [DEBUG] switch_core_state_machine.c:584 (sofia/internal/[email protected]:60446) Running State Change CS_INIT (Cur 1 Tot 17)
2019-09-29 14:46:48.813267 [DEBUG] switch_core_state_machine.c:627 (sofia/internal/[email protected]:60446) State INIT
2019-09-29 14:46:48.813267 [DEBUG] mod_sofia.c:90 sofia/internal/[email protected]:60446 SOFIA INIT
2019-09-29 14:46:48.813267 [DEBUG] sofia_glue.c:1295 sofia/internal/[email protected]:60446 sending invite version: 1.6.19 git c28091b 2017-08-21 22:09:37Z 64bit
Local SDP:
v=0
o=FreeSWITCH 1569711864 1569711865 IN IP4 10.20.23.221
s=FreeSWITCH
c=IN IP4 10.20.23.221
t=0 0
m=audio 27744 RTP/AVP 9 0 8 101
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=ptime:20
a=sendrecv
m=video 32594 RTP/AVP 102
b=AS:1024
a=rtpmap:102 VP8/90000
a=rtcp-fb:102 ccm fir
a=rtcp-fb:102 ccm tmmbr
a=rtcp-fb:102 nack
a=rtcp-fb:102 nack pli

2019-09-29 14:46:48.813267 [DEBUG] switch_core_state_machine.c:40 sofia/internal/[email protected]:60446 Standard INIT
2019-09-29 14:46:48.813267 [DEBUG] switch_core_state_machine.c:48 (sofia/internal/[email protected]:60446) State Change CS_INIT -> CS_ROUTING
2019-09-29 14:46:48.813267 [DEBUG] switch_core_state_machine.c:627 (sofia/internal/[email protected]:60446) State INIT going to sleep
2019-09-29 14:46:48.813267 [DEBUG] switch_core_state_machine.c:584 (sofia/internal/[email protected]:60446) Running State Change CS_ROUTING (Cur 1 Tot 17)
2019-09-29 14:46:48.813267 [DEBUG] switch_core_state_machine.c:643 (sofia/internal/[email protected]:60446) State ROUTING
2019-09-29 14:46:48.813267 [DEBUG] mod_sofia.c:143 sofia/internal/[email protected]:60446 SOFIA ROUTING
2019-09-29 14:46:48.813267 [DEBUG] switch_ivr_originate.c:67 (sofia/internal/[email protected]:60446) State Change CS_ROUTING -> CS_CONSUME_MEDIA
2019-09-29 14:46:48.813267 [DEBUG] switch_core_state_machine.c:643 (sofia/internal/[email protected]:60446) State ROUTING going to sleep
2019-09-29 14:46:48.813267 [DEBUG] switch_core_state_machine.c:584 (sofia/internal/[email protected]:60446) Running State Change CS_CONSUME_MEDIA (Cur 1 Tot 17)
2019-09-29 14:46:48.813267 [DEBUG] switch_core_state_machine.c:662 (sofia/internal/[email protected]:60446) State CONSUME_MEDIA
2019-09-29 14:46:48.813267 [DEBUG] switch_core_state_machine.c:662 (sofia/internal/[email protected]:60446) State CONSUME_MEDIA going to sleep
2019-09-29 14:46:48.813267 [DEBUG] sofia.c:7084 Channel sofia/internal/[email protected]:60446 entering state [calling][0]
2019-09-29 14:46:49.573309 [DEBUG] sofia.c:7084 Channel sofia/internal/[email protected]:60446 entering state [proceeding][180]
2019-09-29 14:46:49.573309 [NOTICE] sofia.c:7192 Ring-Ready sofia/internal/[email protected]:60446!
2019-09-29 14:46:49.573309 [DEBUG] switch_channel.c:3346 (sofia/internal/[email protected]:60446) Callstate Change DOWN -> RINGING
2019-09-29 14:46:51.193271 [DEBUG] sofia.c:7084 Channel sofia/internal/[email protected]:60446 entering state [completing][200]
2019-09-29 14:46:51.193271 [DEBUG] sofia.c:7094 Remote SDP:
v=0
o=- 3324321056 3 IN IP4 192.168.242.225
s=X-Lite release 5.6.1 stamp 99142
c=IN IP4 192.168.242.225
t=0 0
m=audio 54350 RTP/AVP 9 0 8 101
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
m=video 0 RTP/AVP 102

2019-09-29 14:46:51.193271 [DEBUG] sofia.c:7084 Channel sofia/internal/[email protected]:60446 entering state [ready][200]
2019-09-29 14:46:51.193271 [DEBUG] switch_core_media.c:4449 Audio Codec Compare [G722:9:8000:20:64000:1]/[G722:9:8000:20:64000:1]
2019-09-29 14:46:51.193271 [DEBUG] switch_core_media.c:4504 Audio Codec Compare [G722:9:8000:20:64000:1] ++++ is saved as a match
2019-09-29 14:46:51.193271 [DEBUG] switch_core_media.c:4449 Audio Codec Compare [G722:9:8000:20:64000:1]/[PCMU:0:8000:20:64000:1]
2019-09-29 14:46:51.193271 [DEBUG] switch_core_media.c:4449 Audio Codec Compare [G722:9:8000:20:64000:1]/[PCMA:8:8000:20:64000:1]
2019-09-29 14:46:51.193271 [DEBUG] switch_core_media.c:4449 Audio Codec Compare [PCMU:0:8000:20:64000:1]/[G722:9:8000:20:64000:1]
2019-09-29 14:46:51.193271 [DEBUG] switch_core_media.c:4449 Audio Codec Compare [PCMU:0:8000:20:64000:1]/[PCMU:0:8000:20:64000:1]
2019-09-29 14:46:51.193271 [DEBUG] switch_core_media.c:4504 Audio Codec Compare [PCMU:0:8000:20:64000:1] ++++ is saved as a match
2019-09-29 14:46:51.193271 [DEBUG] switch_core_media.c:4449 Audio Codec Compare [PCMU:0:8000:20:64000:1]/[PCMA:8:8000:20:64000:1]
2019-09-29 14:46:51.193271 [DEBUG] switch_core_media.c:4449 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[G722:9:8000:20:64000:1]
2019-09-29 14:46:51.193271 [DEBUG] switch_core_media.c:4449 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[PCMU:0:8000:20:64000:1]
2019-09-29 14:46:51.193271 [DEBUG] switch_core_media.c:4449 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[PCMA:8:8000:20:64000:1]
2019-09-29 14:46:51.193271 [DEBUG] switch_core_media.c:4504 Audio Codec Compare [PCMA:8:8000:20:64000:1] ++++ is saved as a match
2019-09-29 14:46:51.193271 [DEBUG] switch_core_media.c:4365 Set telephone-event payload to 101@8000
2019-09-29 14:46:51.233263 [DEBUG] switch_core_media.c:3061 Set Codec sofia/internal/[email protected]:60446 G722/8000 20 ms 160 samples 64000 bits 1 channels
2019-09-29 14:46:51.233263 [DEBUG] switch_core_codec.c:111 sofia/internal/[email protected]:60446 Original read codec set to G722:9
2019-09-29 14:46:51.233263 [DEBUG] switch_core_media.c:4708 Set telephone-event payload to 101@8000
2019-09-29 14:46:51.233263 [DEBUG] switch_core_media.c:4767 sofia/internal/[email protected]:60446 Set 2833 dtmf send payload to 101 recv payload to 101
2019-09-29 14:46:51.233263 [DEBUG] switch_core_media.c:6878 AUDIO RTP [sofia/internal/[email protected]:60446] 10.20.23.221 port 27744 -> 192.168.242.225 port 54350 codec: 9 ms: 20
2019-09-29 14:46:51.233263 [DEBUG] switch_rtp.c:4111 Starting timer [soft] 160 bytes per 20ms
2019-09-29 14:46:51.233263 [DEBUG] switch_core_media.c:7180 sofia/internal/[email protected]:60446 Set 2833 dtmf send payload to 101
2019-09-29 14:46:51.233263 [DEBUG] switch_core_media.c:7187 sofia/internal/[email protected]:60446 Set 2833 dtmf receive payload to 101
2019-09-29 14:46:51.233263 [DEBUG] switch_core_media.c:7210 sofia/internal/[email protected]:60446 Set rtp dtmf delay to 40
2019-09-29 14:46:51.233263 [NOTICE] sofia.c:8218 Channel [sofia/internal/[email protected]:60446] has been answered
2019-09-29 14:46:51.233263 [DEBUG] switch_channel.c:3773 (sofia/internal/[email protected]:60446) Callstate Change RINGING -> ACTIVE
2019-09-29 14:46:51.233263 [DEBUG] switch_ivr_originate.c:3705 Originate Resulted in Success: [sofia/internal/[email protected]:60446]
2019-09-29 14:46:51.243259 [DEBUG] switch_ivr_originate.c:3705 Originate Resulted in Success: [sofia/internal/[email protected]:60446]
2019-09-29 14:46:51.243259 [INFO] switch_channel.c:3129 sofia/internal/[email protected]:60446 Flipping CID from "" <0000000000> to "Outbound Call" <1008>
2019-09-29 14:46:51.243259 [DEBUG] mod_commands.c:4862 (sofia/internal/[email protected]:60446) State Change CS_CONSUME_MEDIA -> CS_EXECUTE
2019-09-29 14:46:51.243259 [DEBUG] switch_core_state_machine.c:584 (sofia/internal/[email protected]:60446) Running State Change CS_EXECUTE (Cur 1 Tot 17)
2019-09-29 14:46:51.243259 [DEBUG] switch_core_state_machine.c:650 (sofia/internal/[email protected]:60446) State EXECUTE
2019-09-29 14:46:51.243259 [DEBUG] mod_sofia.c:198 sofia/internal/[email protected]:60446 SOFIA EXECUTE
2019-09-29 14:46:51.243259 [DEBUG] switch_core_state_machine.c:328 sofia/internal/[email protected]:60446 Standard EXECUTE
EXECUTE sofia/internal/[email protected]:60446 echo()
2019-09-29 14:46:51.293268 [DEBUG] switch_rtp.c:7271 Correct audio ip/port confirmed.

Any suggestion for me! Thanks so much!

avmd stops when bgapi uuid_broadcast starts

What I need is to start intro sound file playback on call answer and detect beep sound from callee side

What I tried is:

start avmd
bridge call
on answer start intro sound message playback using bgapi

BUT when background playback starts avmd is paused and continues after

gateway dialplan is:

file beep_detection-from-call-v0.1.2.lua

#!/usr/local/bin/lua

DNID = argv[1]

if session:ready() then
session:sleep(1000)
session:execute("avmd_start", "inbound_channel=1,outbound_channel=0,sample_n_continuous_streak=10,sample_n_to_skip=0,debug=1,report_status=1")

session:execute("bridge", "{execute_on_answer=lua /etc/freeswitch/scripts/on_answer-v0.3.lua " .. uuid .. "}sofia/gateway/mytelco/" .. DNID)

session:execute("avmd_stop","")

end --if

file on_answer-v0.3.lua

#!/usr/bin/lua

uuid_original = argv[1]

api = freeswitch.API()

reply = api:executeString("bgapi uuid_broadcast " .. uuid_original .. " /usr/share/asterisk/sounds/en/dennis-ivan.gsm both")

freeswitch.consoleLog("INFO","==============================================")
freeswitch.consoleLog("INFO","API reply is:" .. reply)
freeswitch.consoleLog("INFO","==============================================")

Mod_fifo pgsql

Hello Everyone,
Latest release 1.10.1 mod_fifo can't connect to database pgsql.
In log produce the follow messages.

That worked before upgrade.

<param name="odbc-dsn" value="$${dsn}"/>

2019-09-25 06:37:19.126246 [NOTICE] switch_event.c:2171 Event Binding deleted for mod_fifo:PRESENCE_PROBE
2019-09-25 06:37:19.126246 [NOTICE] switch_event.c:463 Subclass reservation deleted for mod_fifo.c:fifo::info
**2019-09-25 06:37:29.267854 [ERR] mod_fifo.c:4398 ODBC IS NOT AVAILABLE!**
2019-09-25 06:37:29.267854 [INFO] switch_core_sqldb.c:1870 fifo Starting SQL thread.
2019-09-25 06:37:29.267854 [ERR] switch_core_sqldb.c:702 [db="fifo",type="core_db"] NATIVE SQL ERR [no such table: fifo_outbound]
delete from fifo_outbound where static = 1 or taking_calls < 0 or stop_time < 0
2019-09-25 06:37:29.267854 [ERR] switch_core_sqldb.c:702 [db="fifo",type="core_db"] NATIVE SQL ERR [no such table: fifo_bridge]
delete from fifo_bridge
2019-09-25 06:37:29.267854 [ERR] switch_core_sqldb.c:702 [db="fifo",type="core_db"] NATIVE SQL ERR [no such table: fifo_callers]
delete from fifo_callers
2019-09-25 06:37:29.267854 [ERR] switch_core_sqldb.c:702 [db="fifo",type="core_db"] NATIVE SQL ERR [no such table: fifo_outbound]
update fifo_outbound set start_time=0,stop_time=0,ring_count=0,use_count=0,outbound_call_count=0,outbound_fail_count=0 where static=0
2019-09-25 06:37:29.267854 [ERR] switch_core_sqldb.c:702 [db="fifo",type="core_db"] NATIVE SQL ERR [no such table: fifo_outbound]

Failed to start freeswitch

I'm a newbie with freeswitch.
I'm getting this error when installing freeswitch

root@debian-asdf:~# systemctl status freeswitch.service
● freeswitch.service - freeswitch
Loaded: loaded (/lib/systemd/system/freeswitch.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2019-10-30 22:07:30 +07; 20min ago
Process: 952 ExecStart=/usr/bin/freeswitch -u ${USER} -g ${GROUP} -ncwait ${DAEMON_OPTS} (code=exited, status=1/FAILURE)
Process: 949 ExecStartPre=/bin/chown -R ${USER}:${GROUP} /var/lib/freeswitch /var/log/freeswitch /etc/freeswitch /usr/share/fr

Oct 30 22:07:30 debian-asdf systemd[1]: freeswitch.service: Control process exited, code=exited status=1
Oct 30 22:07:30 debian-asdf systemd[1]: Failed to start freeswitch.
Oct 30 22:07:30 debian-asdf systemd[1]: freeswitch.service: Unit entered failed state.
Oct 30 22:07:30 debian-asdf systemd[1]: freeswitch.service: Failed with result 'exit-code'.
Oct 30 22:07:30 debian-asdf systemd[1]: freeswitch.service: Service hold-off time over, scheduling restart.
Oct 30 22:07:30 debian-asdf systemd[1]: Stopped freeswitch.
Oct 30 22:07:30 debian-asdf systemd[1]: freeswitch.service: Start request repeated too quickly.
Oct 30 22:07:30 debian-asdf systemd[1]: Failed to start freeswitch.
Oct 30 22:07:30 debian-asdf systemd[1]: freeswitch.service: Unit entered failed state.
Oct 30 22:07:30 debian-asdf systemd[1]: freeswitch.service: Failed with result 'exit-code'.

Can you help me?
root@debian-asdf:~# uname -a
Linux debian-asdf 4.9.0-11-amd64 #1 SMP Debian 4.9.189-3+deb9u1 (2019-09-20) x86_64 GNU/Linux

FREESWITCH 1.8 ODBC CDR - USERFIELD

Hello All ,
i am using freeswitch version 1.8 on debian 9 and trying to store call CDR into mysql (mariadb) database.
everything is working fine except 1 issue .
I want to store “userfield” value which I set in dialplan - in both table leg A & leg B of database.
“userfield” value is successfully stored in table cdr_table_a_leg but NOT in cdr_table_b_leg
Any help pls ?
Thank you !

freeswitch_issue.txt
Attached file , showing dialplan & ODBC_CDR.conf.xml file

mod_janus

I see reference in the confluence, but where it is? I don't find it.

global-opened ports 2855+2856 can't be disabled

just started with fs 1.10 from git after using a previous version for longer time, but after it has started there're always two ports opened globally: 0.0.0.0:2855 and 0.0.0.0:2856.

after long-time search in documentation without any result, several tries with disabling modules and then deeper look at the code it's clear: there's no possibility to change this behaviour without patching the code. wtf?

because unnecessarily opened ports (and I've really nothing found, that would explain, why this was always necessary in such a way) are always potential risks, this is a bug for me and should be fixed soon.

question: How to suggest updates to documentation?

Now that FreeSWITCH is on Github, but the documentation is still on Confluence, I'm confused how to suggest edits. One can leave an inline comment or create a JIRA issue, but not sure whether that is the proper way.

Switch Hang

Hi Team

Switch Hang ... 3 Times in 2 days. Please find the attached trace.

Thanks
Lloyd

[mod_amqp] binding_key parameter works only for commands with weird behaviour

Previously noticed inside discussion at #59
Look like parameter "binding_key" works only for commands and does not work for producers and logging nodes.
Beside this it is not possible to setup queue name for binding because it is not implemented. For commands node FS just create random titled queue and bind to it using "binding_key" routing key. it is also not possible to set type of binded queue. by default command queue have a parameter "auto delete" which not always good but at least it is possible to live with it in case if it have more predictable queue names.

Audio played with uuid_displace on call is not recorded.

I have been debugging this and all point to a bug.

When we record a call not all the audio on the channel is recorded, all the media from the remote side is heard and recorded fine, but the media we play on the channel using the command uuid_displace is heard by the remote side but not recorded.

I already test with different codecs, record on different formats (wav, mp3 & ogg), play audio files on different formats too, using the record_session on the dialplan or on the origination command, recording on mono and stereo, confirming the RECORD_WRITE_ONLY and RECORD_READ_ONLY are disabled, and all the time the uuid_displace file is played but not recorded.

Other commands to play audio files (uuid_broadcast, moh, etc.) works fine and are recorded.

This is working fine in the version 1.6.20 but not on the 1.10.1

Attached is a file with the FS log when we make a test (CLI), on this test the audio files where played fine, but on the recording only the uuid_broadcast was recorded.

FS_log_debug_191029.log

vad never firing

If I'm not mistaken, this line:

if (score > vad->thresh) {

should be

if (score >= vad->thresh)

I did some testing with libfvad and vad_state never changes to SWITCH_VAD_STATE_START_TALKING due to the above

Compiling on FreeBSD 12.0 issues

Getting these errors when compiling on FreeBSD through use of gmake current on the master branch. Any ideas how to fix this?

*** Warning: Linking the shared library libfreeswitch.la against the
*** static library libs/libvpx/libvpx.a is not portable!
/usr/bin/ld: error: can't create dynamic relocation R_X86_64_PC32 against symbol: vpx_rv in readonly segment; recompile object files with -fPIC
>>> defined in libs/libvpx/libvpx.a(deblock.c.o)
>>> referenced by deblock_sse2.asm.o:(.text+0x304) in archive libs/libvpx/libvpx.a

/usr/bin/ld: error: can't create dynamic relocation R_X86_64_PC32 against symbol: vp8_bilinear_filters_x86_8 in readonly segment; recompile object files with -fPIC
>>> defined in libs/libvpx/libvpx.a(filter_x86.c.o)
>>> referenced by subpixel_mmx.asm.o:(.text+0x17C) in archive libs/libvpx/libvpx.a

/usr/bin/ld: error: can't create dynamic relocation R_X86_64_PC32 against symbol: vp8_bilinear_filters_x86_8 in readonly segment; recompile object files with -fPIC
>>> defined in libs/libvpx/libvpx.a(filter_x86.c.o)
>>> referenced by subpixel_mmx.asm.o:(.text+0x2AC) in archive libs/libvpx/libvpx.a

/usr/bin/ld: error: can't create dynamic relocation R_X86_64_PC32 against symbol: vp8_bilinear_filters_x86_8 in readonly segment; recompile object files with -fPIC
>>> defined in libs/libvpx/libvpx.a(filter_x86.c.o)
>>> referenced by subpixel_sse2.asm.o:(.text+0x7B2) in archive libs/libvpx/libvpx.a

/usr/bin/ld: error: can't create dynamic relocation R_X86_64_PC32 against symbol: vp8_bilinear_filters_x86_8 in readonly segment; recompile object files with -fPIC
>>> defined in libs/libvpx/libvpx.a(filter_x86.c.o)
>>> referenced by subpixel_sse2.asm.o:(.text+0xA66) in archive libs/libvpx/libvpx.a
c++: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[2]: *** [Makefile:1825: libfreeswitch.la] Error 1
gmake[2]: Leaving directory '/usr/local/src/freeswitch'
gmake[1]: *** [Makefile:1444: all] Error 2
gmake[1]: Leaving directory '/usr/local/src/freeswitch'
gmake: *** [Makefile:4716: current] Error 2

FreeSwitch doesn't return expected ICE candidate

I'm currently trying to setup an application for my organization using WebRTC, FreeSwitch, and Coturn as a TURN server on CentOS 7.

Using a test WebRTC client communicating with FreeSwitch, I see that I am sending my TURN server's IP address as an ICE relay candidate in my SDP offer (this is also the only ICE candidate the client is sending). However, in the SDP answer I get back, the only ICE candidate returned is the FreeSwitch container's IP address, listed as a host candidate. As far as I know, we are using the default configuration for FreeSwitch.

How would I configure FreeSwitch to correctly pick the ICE candidate I'm sending it? Or how can I configure FreeSwitch to use the TURN server I set up?

I've tried looking at the following link because my FreeSwitch container is running on an OpenShift node with a firewall, and I've tried playing around with the bind_server_ip value, but so far I'm getting the same behavior as described above.

For reference, this is the SDP offer I'm sending out

"clientdescriptor": {
    "application": "webclient",
    "sdptype": "offer",
    "sdp": "v=0
	o=- 7652157518269148613 2 IN IP4 127.0.0.1
	s=-
	t=0 0
	a=group:BUNDLE 0
	a=msid-semantic: WMS WBmtFsczCQboV9c6ZpQQyeeRqEmzYwy95jA9
	m=audio 65414 UDP/TLS/RTP/SAVPF 8
	c=IN IP4 10.5.58.239
	a=rtcp:9 IN IP4 0.0.0.0
	a=candidate:3606296988 1 udp 25042687 10.5.58.239 65414 typ relay raddr 0.0.0.0 rport 0 generation 0 network-id 2
	a=ice-ufrag:W9ss
	a=ice-pwd:q0a23vhuHrXQd+uBkgeAEyub
	a=ice-options:trickle
	a=fingerprint:sha-256 5E:F9:1E:37:C2:FA:BA:73:00:68:0A:85:42:F7:1E:A3:30:D4:5B:B6:A9:45:83:56:3B:7C:0A:39:C3:47:4F:84
	a=setup:actpass
	a=mid:0
	a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
	a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
	a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid
	a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
	a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
	a=sendrecv
	a=msid:WBmtFsczCQboV9c6ZpQQyeeRqEmzYwy95jA9 91ebf6e9-0710-4f0f-bcbf-0708049181de
	a=rtcp-mux
	a=rtcp-fb:111 transport-cc
	a=fmtp:111 minptime=10;useinbandfec=1
	a=rtpmap:8 PCMA/8000
	a=ssrc:1835448080 cname:9o8cYXwqfLtGICud
	a=ssrc:1835448080 msid:WBmtFsczCQboV9c6ZpQQyeeRqEmzYwy95jA9 91ebf6e9-0710-4f0f-bcbf-0708049181de
	a=ssrc:1835448080 mslabel:WBmtFsczCQboV9c6ZpQQyeeRqEmzYwy95jA9
	a=ssrc:1835448080 label:91ebf6e9-0710-4f0f-bcbf-0708049181de
	"
  }

And this is the SDP answer I'm getting back

"serverdescriptor": {
    "application": "Organization Media API",
    "sdptype": "answer",
    "sdp": "v=0
	o=FreeSWITCH 1571047720 1571047721 IN IP4 10.128.0.225
	s=FreeSWITCH
	c=IN IP4 10.128.0.225
	t=0 0
	a=msid-semantic: WMS iK8uVtE2SmCQS43EsehuZnq1hLRfpxux
	m=audio 25580 UDP/TLS/RTP/SAVPF 8 101
	a=rtpmap:8 PCMA/8000
	a=rtpmap:101 telephone-event/8000
	a=ptime:20
	a=fingerprint:sha-256 81:5B:C4:D5:81:8F:2D:E6:91:66:BF:FD:D2:02:84:CA:F4:48:AB:63:F5:70:3B:3E:AB:7C:06:C7:3A:FF:E1:25
	a=setup:active
	a=rtcp-mux
	a=rtcp:25580 IN IP4 10.128.0.225
	a=ice-ufrag:8RMY53PcEwiTUChS
	a=ice-pwd:VZBxbdSziTFhNfAMXcAT5fVA
	a=candidate:5142559066 1 udp 659136 10.128.0.225 25580 typ host generation 0
	a=end-of-candidates
	a=ssrc:3785977940 cname:7tRTMmLuyeag94Ks
	a=ssrc:3785977940 msid:iK8uVtE2SmCQS43EsehuZnq1hLRfpxux a0
	a=ssrc:3785977940 mslabel:iK8uVtE2SmCQS43EsehuZnq1hLRfpxux
	a=ssrc:3785977940 label:iK8uVtE2SmCQS43EsehuZnq1hLRfpxuxa0
	"
  }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.