Added "RTCP Multiplexing" account setting
This commit is contained in:
@ -948,6 +948,19 @@ Java_com_tutpro_baresip_Api_account_1set_1answermode(JNIEnv *env, jobject thiz,
|
||||
return account_set_answermode((struct account *)acc, mode);
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_com_tutpro_baresip_Api_account_1rtcp_1mux(JNIEnv *env, jobject thiz, jlong acc)
|
||||
{
|
||||
return account_rtcp_mux((struct account *)acc);
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_com_tutpro_baresip_Api_account_1set_1rtcp_1mux(JNIEnv *env, jobject thiz, jlong acc,
|
||||
jboolean value)
|
||||
{
|
||||
return account_set_rtcp_mux((struct account *)acc, value);
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_com_tutpro_baresip_Api_account_1dtmfmode(JNIEnv *env, jobject thiz, jlong acc)
|
||||
{
|
||||
|
||||
@ -23,6 +23,7 @@ class Account(val accp: Long) {
|
||||
var videoCodec = ArrayList<String>()
|
||||
var regint = Api.account_regint(accp)
|
||||
var mediaEnc = Api.account_mediaenc(accp)
|
||||
var rtcpMux = Api.account_rtcp_mux(accp)
|
||||
var dtmfMode = Api.account_dtmfmode(accp)
|
||||
var answerMode = Api.account_answermode(accp)
|
||||
var vmUri = Api.account_vm_uri(accp)
|
||||
@ -117,6 +118,9 @@ class Account(val accp: Long) {
|
||||
|
||||
if (mediaEnc != "") res += ";mediaenc=${mediaEnc}"
|
||||
|
||||
if (rtcpMux)
|
||||
res += ";rtcp_mux=yes"
|
||||
|
||||
res = if (vmUri == "")
|
||||
"$res;mwi=no"
|
||||
else
|
||||
|
||||
@ -43,6 +43,7 @@ class AccountActivity : AppCompatActivity() {
|
||||
private lateinit var mediaNatSpinner: Spinner
|
||||
private lateinit var mediaEnc: String
|
||||
private lateinit var mediaEncSpinner: Spinner
|
||||
private lateinit var rtcpCheck: CheckBox
|
||||
private var dtmfMode = Api.DTMFMODE_RTP_EVENT
|
||||
private lateinit var dtmfModeSpinner: Spinner
|
||||
private var answerMode = Api.ANSWERMODE_MANUAL
|
||||
@ -89,6 +90,7 @@ class AccountActivity : AppCompatActivity() {
|
||||
stunUser = binding.StunUser
|
||||
stunPass = binding.StunPass
|
||||
mediaEncSpinner = binding.mediaEncSpinner
|
||||
rtcpCheck = binding.RtcpMux
|
||||
dtmfModeSpinner = binding.dtmfModeSpinner
|
||||
answerModeSpinner = binding.answerModeSpinner
|
||||
vmUri = binding.voicemailUri
|
||||
@ -179,6 +181,8 @@ class AccountActivity : AppCompatActivity() {
|
||||
"stun-turn-server" ->
|
||||
if (text.isNotEmpty())
|
||||
acc.stunServer = text
|
||||
"rtcp-mux" ->
|
||||
acc.rtcpMux = text == "yes"
|
||||
"dtmf-mode" ->
|
||||
if (text in arrayOf("rtp-event", "sip-info")) {
|
||||
acc.dtmfMode = if (text == "rtp-event")
|
||||
@ -289,6 +293,8 @@ class AccountActivity : AppCompatActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
rtcpCheck.isChecked = acc.rtcpMux
|
||||
|
||||
dtmfMode = acc.dtmfMode
|
||||
val dtmfModeKeys = arrayListOf(Api.DTMFMODE_RTP_EVENT, Api.DTMFMODE_SIP_INFO)
|
||||
val dtmfModeVals = arrayListOf(getString(R.string.dtmf_inband), getString(R.string.dtmf_info))
|
||||
@ -577,6 +583,15 @@ class AccountActivity : AppCompatActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
if (rtcpCheck.isChecked != acc.rtcpMux)
|
||||
if (Api.account_set_rtcp_mux(acc.accp, rtcpCheck.isChecked) == 0) {
|
||||
acc.rtcpMux = Api.account_rtcp_mux(acc.accp)
|
||||
Log.d(TAG, "New rtcpMux is ${acc.rtcpMux}")
|
||||
save = true
|
||||
} else {
|
||||
Log.e(TAG, "Setting of account_rtc_mux failed")
|
||||
}
|
||||
|
||||
if (dtmfMode != acc.dtmfMode) {
|
||||
if (Api.account_set_dtmfmode(acc.accp, dtmfMode) == 0) {
|
||||
acc.dtmfMode = Api.account_dtmfmode(acc.accp)
|
||||
@ -750,6 +765,12 @@ class AccountActivity : AppCompatActivity() {
|
||||
getString(R.string.media_encryption_help)
|
||||
)
|
||||
}
|
||||
binding.RtcpMuxTitle.setOnClickListener {
|
||||
Utils.alertView(
|
||||
this, getString(R.string.rtcp_mux),
|
||||
getString(R.string.rtcp_mux_help)
|
||||
)
|
||||
}
|
||||
binding.DtmfModeTitle.setOnClickListener {
|
||||
Utils.alertView(
|
||||
this, getString(R.string.dtmf_mode),
|
||||
|
||||
@ -46,6 +46,8 @@ object Api {
|
||||
external fun account_vm_uri(acc: Long): String
|
||||
external fun account_answermode(acc: Long): Int
|
||||
external fun account_set_answermode(acc: Long, mode: Int): Int
|
||||
external fun account_rtcp_mux(acc: Long): Boolean
|
||||
external fun account_set_rtcp_mux(acc: Long, value: Boolean): Int
|
||||
external fun account_dtmfmode(acc: Long): Int
|
||||
external fun account_set_dtmfmode(acc: Long, mode: Int): Int
|
||||
external fun account_extra(acc: Long): String
|
||||
|
||||
@ -278,6 +278,31 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal" >
|
||||
<TextView
|
||||
android:id="@+id/RtcpMuxTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_toStartOf="@id/RtcpMux"
|
||||
android:textSize="18sp"
|
||||
android:text="@string/rtcp_mux" >
|
||||
</TextView>
|
||||
<CheckBox
|
||||
android:id="@+id/RtcpMux"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_gravity="end"
|
||||
android:layout_centerVertical="true"
|
||||
android:checked="false" >
|
||||
</CheckBox>
|
||||
</RelativeLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/DtmfModeTitle"
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
@ -181,6 +181,10 @@
|
||||
se on käytettävissä), jos puhelun molempien osapuolten tukemaa mediaprotokollaa
|
||||
ei saada automaattisesti selvitettyä.
|
||||
</string>
|
||||
<string name="rtcp_mux">RTCP-multipleksaus</string>
|
||||
<string name="rtcp_mux_help">Jos merkitty, RTP- and RTCP-paketit multipleksataan samaan porttiin
|
||||
(RFC 5761).
|
||||
</string>
|
||||
<string name="dtmf_mode">DTMF-moodi</string>
|
||||
<string name="dtmf_mode_help">Valitsee tavan, miten DTMF-merkit 0–9, #, * ja A-D lähetetään.</string>
|
||||
<string name="dtmf_inband">RTP</string>
|
||||
|
||||
@ -177,6 +177,8 @@
|
||||
</string>
|
||||
<string name="prefer_ipv6_media">Prefer IPv6 Media</string>
|
||||
<string name="prefer_ipv6_media_help">If checked, offer to use IPv6 media protocol (if available) when media protocol of peer cannot be automatically determined.</string>
|
||||
<string name="rtcp_mux">RTCP Multiplexing</string>
|
||||
<string name="rtcp_mux_help">If checked, RTP and RTCP packets are multiplexed on a single port (RFC 5761).</string>
|
||||
<string name="dtmf_mode">DTMF Mode</string>
|
||||
<string name="dtmf_mode_help">Selects how DTMF tones 0–9, #, *, and A-D are sent.</string>
|
||||
<string name="dtmf_inband">In-band RTP Events</string>
|
||||
|
||||
Reference in New Issue
Block a user