aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmocom/msc/mncc.h
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2023-09-13 22:41:29 +0200
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2023-09-15 04:27:25 +0200
commitb5fe9732c5a245a1717213882770caae5704539d (patch)
treee1d41ed6a898c97c8023e2a5d4bd545d3dc519ed /include/osmocom/msc/mncc.h
parent7eefae4b0141def1ad13d74b3d01bc6d4756785c (diff)
fix codecs in internal call bridge
This is a fixup for the patch '3G: decapsulate IuUP to AMR at the MGW; allow 3G<-AMR->2G' I386a6a426c318040b019ab5541689c67e94672a1 After above patch, osmo-msc intelligently decides which codecs to run on which legs of the RTP streams. In the meantime, it seems the necessary matching changes to call_leg_local_bridge() had been lost somehow. Testing 3G to 3G voice now, I noticed that call_leg_local_bridge() overwrites the intelligent choices made earlier. The history of an MGW endpoint that should convert from IUFP to plain AMR, extracted from a pcap, looks like this: <- CRCX None None -> CRCX-OK audio 4050 RTP/AVP 112 None <- MDCX audio 4056 RTP/AVP 112 AMR -> MDCX-OK audio 4050 RTP/AVP 112 AMR <- MDCX audio 4056 RTP/AVP 96 VND.3GPP.IUFP -> MDCX-OK audio 4050 RTP/AVP 96 VND.3GPP.IUFP So after call_leg_local_bridge(), there is an extra MDCX + MDCX-OK that switches the codec from 112 AMR back to 96 IUFP. That is because call_leg_local_bridge() copies the *RAN* side's codec to both CN sides, which used to be ok when RAN and CN codecs were always identical. Instead, adjust only the CN sides of the MGW endpoints, and adjust them so that both CN sides are identical. osmo-mgw should then be able to trivially translate the codecs appropriately. Change-Id: I130bcd77ec57e332370c487a11b0b973b6e1089d
Diffstat (limited to 'include/osmocom/msc/mncc.h')
0 files changed, 0 insertions, 0 deletions