I am trying to change the priority of codecs used in pjsip android.
I am able to get the codecs priority but after changing the codecs priority,it is not reflecting back.
if( ep != null)
{
try {
CodecInfoVector codecInfoVector = ep.codecEnum();
if(!codecInfoVector.isEmpty()){
System.out.println("Codecs Enabled!!");
System.out.println("Number of codecs enabled now: "+codecInfoVector.size());
for(int i=0;i<codecInfoVector.size();i++)
{
CodecInfo codecInfo = codecInfoVector.get(i);
String codecId = codecInfo.getCodecId();
short codecPriority = 128;//use higher number for making preferred codec first.
short disableCodecPriority = 0;//use 0 to disable codec in sdp
System.out.println("Codec info now is: "+ codecId);
switch(codecId)
{
case "PCMA/8000/1":
if(Dialer_Properties.enablePCMA)
codecInfo.codecSetPriority("PCMA/8000",codecPriority);
else
codecInfo.codecSetPriority("PCMA/8000",disableCodecPriority);
break;
case "PCMU/8000/1":
if(Dialer_Properties.enablePCMU)
codecInfo.codecSetPriority("PCMU/8000",codecPriority);
else
codecInfo.codecSetPriority("PCMU/8000",disableCodecPriority);
break;
case "G729/8000/1":
if(Dialer_Properties.enableG729)
codecInfo.codecSetPriority("G729/8000",codecPriority);
else
codecInfo.codecSetPriority("G729/8000",disableCodecPriority);
break;
}
System.out.println("Codec Priority now is: "+codecInfo.getPriority());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
How to fix this issue??
After changing the priority,i did not update the codecInfoVector with updated values.
As a result the values was not reflected.
PJSIP provides a method in endpoint java class.
After updating the particular code,i could the see the updated priority codecs in SDP.
ep.codecSetPriority("PCMA/8000",codecPriority);
where ep is endpoint instance object.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With