Skip to content

Run baresip in a container and play an audio file, but the callee cannot hear the audio. #21

@IronSpiderMan

Description

@IronSpiderMan

I'm running the official baresip image and want to play an audio file during calls, but the callee cannot hear the audio. I'm using a MacBook Air M3 and running it with podman.
Below are the modifications I made based on the generated configuration:

#
# baresip configuration
#

#------------------------------------------------------------------------------

# SIP
#sip_listen		0.0.0.0:5060
#sip_certificate	cert.pem
sip_cafile		/etc/ssl/certs/ca-certificates.crt
sip_capath		/etc/ssl/certs
#sip_transports		udp,tcp,tls,ws,wss
#sip_trans_def		udp
#sip_verify_server	yes
#sip_verify_client	no
#sip_tls_resumption	all
sip_tos			160
#filter_registrar	udp,tcp,tls,ws,wss

# Call
call_local_timeout	120
call_max_calls		4
call_hold_other_calls	yes
call_accept		no

# Audio
audio_path		/usr/share/baresip
# audio_player		alsa,default
audio_player		aufile,/root/.baresip/wire3.wav
# audio_source		alsa,default
audio_source    aufile,/root/.baresip/wire2.wav



#audio_alert		alsa,default
audio_alert		    null
#ausrc_srate		48000
#auplay_srate		48000
#ausrc_channels		0
#auplay_channels	0
#audio_txmode		poll		# poll, thread
audio_level		no
ausrc_format		s16		# s16, float, ..
auplay_format		s16		# s16, float, ..
auenc_format		s16		# s16, float, ..
audec_format		s16		# s16, float, ..
audio_buffer		20-160		# ms
audio_buffer_mode	fixed		# fixed, adaptive
audio_silence		-35.0		# in [dB]
audio_telev_pt		101		# payload type for telephone-event

# Video
#video_source		v4l2,/dev/video0
#video_display		x11,nil
video_size		640x480
video_bitrate		1000000
video_fps		30.00
video_fullscreen	no
videnc_format		yuv420p

# AVT - Audio/Video Transport
rtp_tos			184
rtp_video_tos		136
#rtp_ports		10000-20000
rtp_ports        12000-12500 # 只使用 501 个端口
#rtp_bandwidth		512-1024 # [kbit/s]
audio_jitter_buffer_type	fixed		# off, fixed, adaptive
audio_jitter_buffer_ms	100-200		# Min. - Max. [ms]
audio_jitter_buffer_size	50		# [packets]
video_jitter_buffer_type	fixed		# off, fixed, adaptive
video_jitter_buffer_ms	100-200		# Min. - Max. [ms]
video_jitter_buffer_size	250		# [packets]
rtp_stats		no
#rtp_timeout		60
#avt_bundle		no
#rtp_rxmode		main

# Network
#dns_server		1.1.1.1:53
#dns_server		1.0.0.1:53
#dns_fallback		8.8.8.8:53
#dns_getaddrinfo		no
#net_interface		eth0

# Play tones
#file_ausrc		aufile
#file_srate		16000
#file_channels		1

#------------------------------------------------------------------------------
# Modules

module_path		/usr/lib/aarch64-linux-gnu/baresip/modules

# UI Modules
module			stdio.so
#module			cons.so
#module			evdev.so
#module			httpd.so

# Audio codec Modules (in order)
#module			opus.so
#module			amr.so
#module			g7221.so
#module			g722.so
#module			g726.so
module			g711.so
#module			l16.so
#module			codec2.so

# Audio filter Modules (in encoding order)
module			auconv.so
module			auresamp.so
#module			vumeter.so
#module			sndfile.so
#module			plc.so
#module			webrtc_aec.so

# Audio driver Modules
module			alsa.so
#module			pulse.so
#module			pipewire.so
#module			jack.so
#module			portaudio.so
#module			aubridge.so
module			aufile.so
#module			ausine.so

# Video codec Modules (in order)
#module			avcodec.so
#module			vp8.so
#module			vp9.so

# Video filter Modules (in encoding order)
#module			selfview.so
#module			snapshot.so
#module			swscale.so
#module			vidinfo.so
#module			avfilter.so

# Video source modules
#module			v4l2.so
#module			vidbridge.so

# Video display modules
#module			directfb.so
#module			x11.so
#module			sdl.so
#module			fakevideo.so

# Audio/Video source modules
#module			avformat.so
#module			gst.so

# Compatibility modules
#module			ebuacip.so
module			uuid.so

# Media NAT modules
module			stun.so
module			turn.so
module			ice.so
#module			natpmp.so
#module			pcp.so

# Media encryption modules
#module			srtp.so
#module			dtls_srtp.so
#module			gzrtp.so


#------------------------------------------------------------------------------
# Application Modules

module_app		account.so
module_app		contact.so
module_app		debug_cmd.so
#module_app		echo.so
#module_app		gtk.so
module_app		menu.so
#module_app		mwi.so
#module_app		presence.so
#module_app		serreg.so
#module_app		syslog.so
#module_app		mqtt.so
#module_app		ctrl_tcp.so
#module_app		ctrl_dbus.so
#module_app		httpreq.so
module_app		netroam.so


#------------------------------------------------------------------------------
# Module parameters

# DTLS SRTP parameters
#dtls_srtp_use_ec	prime256v1


# UI Modules parameters
cons_listen		0.0.0.0:5555 # cons - Console UI UDP/TCP sockets

http_listen		0.0.0.0:8000 # httpd - HTTP Server

ctrl_tcp_listen		0.0.0.0:4444 # ctrl_tcp - TCP interface JSON

evdev_device		/dev/input/event0

# Opus codec parameters
opus_bitrate		28000 # 6000-510000
#opus_stereo		yes
#opus_sprop_stereo	yes
#opus_cbr		no
#opus_inbandfec		no
#opus_dtx		no
#opus_mirror		no
#opus_complexity	10
#opus_application	audio	# {voip,audio}
#opus_samplerate	48000
#opus_packet_loss	10	# 0-100 percent (expected packet loss)

# Opus Multistream codec parameters
#opus_ms_channels	2	#total channels (2 or 4)
#opus_ms_streams	2	#number of streams
#opus_ms_c_streams	2	#number of coupled streams

vumeter_stderr		yes

#jack_connect_ports	yes

# Selfview
video_selfview		window # {window,pip}
#selfview_size		64x64

# Menu
#redial_attempts	0 # Num or <inf>
#redial_delay		5 # Delay in seconds
#ringback_disabled	no
#statmode_default	off
#menu_clean_number	no
#sip_autoanswer_method	rfc5373 # {rfc5373,call-info,alert-info}
#ring_aufile		ring.wav
#hangup_aufile		none
#callwaiting_aufile	callwaiting.wav
#ringback_aufile	ringback.wav
#notfound_aufile	notfound.wav
#busy_aufile		busy.wav
#error_aufile		error.wav
#sip_autoanswer_aufile	autoanswer.wav
#menu_max_earlyaudio	32
#menu_max_earlyvideo_rx	32
#menu_max_earlyvideo_tx	32
#menu_message_tone	yes

# GTK
#gtk_clean_number	no
#gtk_use_status_icon	yes
gtk_use_window	yes

# avcodec
#avcodec_h264enc	libx264
#avcodec_h264dec	h264
#avcodec_h265enc	libx265
#avcodec_h265dec	hevc
#avcodec_hwaccel	vaapi
#avcodec_profile_level_id 42002a
#avcodec_keyint		10

# vp8
#vp8_enc_threads 1
#vp8_enc_cpuused 16 # range -16..16, greater 0 increases speed over quality

# ctrl_dbus
#ctrl_dbus_use	system		# system, session

# mqtt
#mqtt_broker_host	sollentuna.example.com
#mqtt_broker_port	1883
#mqtt_broker_cafile	/path/to/broker-ca.crt	# set this to enforce TLS
#mqtt_broker_clientid	baresip01	# has to be unique
#mqtt_broker_user	user
#mqtt_broker_password	pass
#mqtt_basetopic		baresip/01

# sndfile
#snd_path		/tmp

# EBU ACIP
#ebuacip_jb_type	fixed	# auto,fixed

# HTTP request module
#httpreq_ca		trusted1.pem
#httpreq_ca		trusted2.pem
#httpreq_dns		1.1.1.1
#httpreq_dns		8.8.8.8
#httpreq_hostname	myserver
#httpreq_cert		cert.pem
#httpreq_key		key.pem

# avformat
#avformat_hwaccel	vaapi
#avformat_inputformat	mjpeg
#avformat_decoder	mjpeg
#avformat_pass_through	yes
#avformat_rtsp_transport	udp

# ice
#ice_policy		all	# all, relay (candidates)

Below is the command I executed:

podman run --network host -v /path/to/baresip:/root/.baresip --rm -it baresip /bin/bash

baresip -f .baresip -e "/dial sip:1002@100.113.229.80"

Below is the log content.

root@localhost:~# baresip -f .baresip -e "/dial sip:1002@100.113.229.80"
baresip v4.2.0 Copyright (C) 2010 - 2025 Alfred E. Heggestad et al.
Local network addresses:
     enp0s1:  192.168.127.2
     enp0s1:  fe80::2a87:800:91c8:6ee4
ua: adding SIP CA file: /etc/ssl/certs/ca-certificates.crt
ua: adding SIP CA path: /etc/ssl/certs
aucodec: PCMU/8000/1
aucodec: PCMA/8000/1
aufilt: auconv
aufilt: auresamp
ausrc: alsa
auplay: alsa
ausrc: aufile
auplay: aufile
medianat: stun
medianat: turn
medianat: ice
Populated 1 account
Populated 3 contacts
Populated 2 audio codecs
Populated 2 audio filters
Populated 0 video codecs
Populated 0 video filters
baresip is ready.
/dial sip:1002@100.113.229.80
1001@100.113.229.80: fallback selection
call uri: sip:1002@100.113.229.80
call: connecting to 'sip:1002@100.113.229.80'..
call id: 9b68eb4e4636be43
1001@100.113.229.80: (prio 0) {0/UDP/v4} 200 OK (Asterisk PBX 22.6.0) [1 binding]
All 1 useragent registered successfully! (218 ms)
call: SIP Progress: 180 Ringing (/)
aufile: writing speaker audio to /root/.baresip/wire3.wav
1001@100.113.229.80: Call answered: sip:1002@100.113.229.80
stream: update 'audio'
audio_recv: Set audio decoder: PCMU 8000Hz 1ch
aufile: writing speaker audio to /root/.baresip/wire3.wav
audio_recv: player started with sample format S16LE
audio: Set audio encoder: PCMU 8000Hz 1ch
aufile: loading input file '/root/.baresip/wire2.wav'
aufile: /root/.baresip/wire2.wav: 8000 Hz, 1 channels, S16LE
aufile: audio ptime=20 sampc=160
aufile: read end of file
aufile: loaded 498880 bytes
audio: source started with sample format S16LE
audio tx pipeline:      aufile ---> aubuf ---> auconv ---> auresamp ---> PCMU
audio rx pipeline:      aufile <--- aubuf <--- auconv <--- auresamp <--- PCMU
1001@100.113.229.80: Call established: sip:1002@100.113.229.80
terminated by signal 20 (bit/s)    
ua: stop all (forced=0)
sip:1001@100.113.229.80: Call with sip:1002@100.113.229.80 terminated (duration: 5 secs)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions