AddRouteEntry("iax2:.* = local:<da>"); // config option for direct routing\r
AddRouteEntry("local:.* = h323:<da>"); // config option for direct routing\r
\r
+ // Make sure all known codecs are instantiated,\r
+ // these are ones we know how to translate into H.323 capabilities\r
+ GetOpalG728();\r
+ GetOpalG729();\r
+ GetOpalG729A();\r
+ GetOpalG729B();\r
+ GetOpalG729AB();\r
+ GetOpalG7231_6k3();\r
+ GetOpalG7231_5k3();\r
+ GetOpalG7231A_6k3();\r
+ GetOpalG7231A_5k3();\r
+ GetOpalGSM0610();\r
+ GetOpalGSMAMR();\r
+ GetOpaliLBC();\r
+\r
/* For compatibility with the algorithm in FSConnection::SetCodecs() we need\r
to set all audio media formats to be 1 frame per packet */\r
OpalMediaFormatList allCodecs = OpalMediaFormat::GetAllRegisteredMediaFormats();\r
}\r
\r
\r
-bool FSEndPoint::AddMediaFormat(const switch_codec_implementation_t *codec)\r
-{\r
- OpalMediaType mediaType;\r
-\r
- switch (codec->codec_type) {\r
- case SWITCH_CODEC_TYPE_AUDIO:\r
- mediaType = OpalMediaType::Audio();\r
- break;\r
-\r
- case SWITCH_CODEC_TYPE_VIDEO:\r
- mediaType = OpalMediaType::Video();\r
- break;\r
-\r
- case SWITCH_CODEC_TYPE_T38:\r
- mediaType = OpalMediaType::Fax();\r
- break;\r
-\r
- default:\r
- return false;\r
- }\r
-\r
- OpalMediaFormat * newMediaFormat = new OpalMediaFormat(codec->iananame,\r
- mediaType,\r
- (RTP_DataFrame::PayloadTypes) codec->ianacode,\r
- codec->iananame,\r
- codec->codec_type == SWITCH_CODEC_TYPE_AUDIO,\r
- codec->bits_per_second,\r
- codec->encoded_bytes_per_packet,\r
- codec->samples_per_packet,\r
- codec->samples_per_second);\r
- if (newMediaFormat == NULL || !newMediaFormat->IsValid()) {\r
- return false;\r
- }\r
-\r
- // Save pointer so will auto delete allocated objects on destruction.\r
- m_globalMediaFormats.Append(newMediaFormat);\r
-\r
- PTRACE(2, "mod_opal\tNew OPAL media format created for FS codec: iananame=" << codec->iananame\r
- << ", ianacode=" << codec->ianacode << ", rate=" << codec->samples_per_second);\r
- return true;\r
-}\r
-\r
-\r
///////////////////////////////////////////////////////////////////////\r
\r
FSConnection::FSConnection(OpalCall & call, FSEndPoint & endpoint)\r
// See if we have a match by name alone\r
switchFormat = codec->iananame;\r
if (!switchFormat.IsValid()) {\r
- // Add the new name to OPAL's global lists\r
- if (m_endpoint.AddMediaFormat(codec)) {\r
- // Now we finally have it\r
- switchFormat = codec->iananame;\r
- }\r
+ PTRACE(2, "mod_opal\tCould not match FS codec " << codec->iananame << " to OPAL media format.");\r
+ continue;\r
}\r
}\r
\r