OpenBSC + LCR + Asterisk = half sided calls in one direction

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Sipos Csaba dchardware at gmail.com
Sun Oct 27 10:46:47 UTC 2013


Hi,

I am setting up openbsc with LCR and Asterisk to provide external
connectivity for the GSM clients, and I encountered and interesting
problem.

If the GSM phone initiates a voice call towards a SIP phone it works
perfectly, the voice goes both ways, the quality is OK, everything is
fine.

But when the SIP phones initiates a voice call towards the GSM phone,
only the SIP phone can hear the voice of the GSM phone, and not the
other way around (half sided call). The connection setup works both
ways just fine.

The GSM and the SIP phone can also call the asterisk test numbers, and even can do
echo test just fine. The two GSM phones can call each other too
without any problem.

Does somebody has any idea what could go wrong?

Config:

E1 based Nokia BTS with DAHDI card and TCH/F FR codec.
The SIP phone uses Alaw, LCR also set to use Alaw.

The LCR is bridged to Asterisk, interface.conf:

[GSM]
gsm-bs
tones yes
earlyb no
bridge ast

[ast]
remote asterisk
context from-lcr
earlyb no
tones yes
bridge GSM

routing.conf is completely empty.

Astrisk SIP.conf:

[general]
context=incoming
disallow=all
allow=alaw
allow=ulaw
allow=gsm
transport=udp
udpbindaddr=0.0.0.0 
tcpenable=no                    
tcpbindaddr=0.0.0.0             
tlsenable=no                   
tlsbindaddr=0.0.0.0  

[5010]
type=friend
username=5010
secret=123456
dtmfmode=rfc2833
callerid="5010" <5010>
host=dynamic
canreinvite=no
context=myphones

Asterisk extensions.conf

[general]
static=yes
writeprotect=no
clearglobalvars=no

[globals]
; Global variables goes here

[incoming]
; Nothing should land here yet, but every context should end in
; a Hangup(), so we do that.
exten => s,1,Hangup()

[myphones]
; When we dial something from the phones we just added in
; sip.conf, Asterisk will look for a matching extension here,
; in this context.

; SIP phone
exten => 5010,1,Dial(SIP/5010)
exten => 5010,n,Hangup()

; Another SIp phone
;exten => 1001,1,Dial(SIP/1001)
;exten => 1001,n,Hangup()

; GSM phone 1
exten => 12346,1,Dial(LCR/ast/${EXTEN:0},60)
exten => 12346,n,Hangup()

; GSM phone 2
exten => 12345,1,Dial(LCR/ast/${EXTEN:0},60)
exten => 12345,n,Hangup()

; Testing extension
exten => 201,1,Answer()
exten => 201,n,Playback(levan_polka.mp3)
exten => 201,n,Hangup()

; Echo-test, it is good to test if we have sound in both directions.
; The call is answered
exten => 202,1,Answer()
; Welcome message is played
exten => 202,n,Playback(dir-welcome)
; Play information about the echo test
exten => 202,n,Playback(demo-echotest)
; Do the echo test, end with the # key
exten => 202,n,Echo()
; Plays information that the echo test is done
exten => 202,n,Playback(demo-echodone)
; Goodbye message is played
exten => 202,n,Playback(vm-goodbye)
; Hangup() ends the call, hangs up the line
exten => 202,n,Hangup()

[from-lcr]
include => myphones
exten => _X.,1,Dial(LCR/ast/${EXTEN:0},60)
exten => 5010,1,Dial(SIP/5010)
exten => 5010,n,Hangup()

BR,
Csaba





More information about the OpenBSC mailing list