|
AmPlugin have not payloads. Solution: core/AmPrecodedFile.h --------------------------- struct precoded_payload_t : public amci_payload_t { public: string c_name; string format_parameters; unsigned int frame_ms; unsigned int frame_bytes; string filename; precoded_payload_t() {codec_id = PRECODED_CODEC_ID;} }; // need call after open() void AmPrecodedFile::initPlugin() { for(std::map<int,precoded_payload_t>::iterator it = payloads.begin(); it != payloads.end(); ++it) AmPlugIn::instance()->addPayload(&it->second); } Or // not static void AmPrecodedFile::initPlugin() { AmPlugIn::instance()->addCodec(&_codec_precoded); for(std::map<int,precoded_payload_t>::iterator it = payloads.begin(); it != payloads.end(); ++it) AmPlugIn::instance()->addPayload(&it->second); } insted // static void AmPrecodedFile::initPrecodedCodec() { AmPlugIn::instance()->addCodec(&_codec_precoded); } precoded_announce/PrecodedAnnounce.cpp --------------------------------------------------------------- int PrecodedFactory::onLoad() { ................. if (precoded_file.open(cfg.getParameter("announcement_file")) < 0) { ERROR("loading precoded file"); return -1; } precoded_file.initPlugin(); ................... } P.S. The precoded_announce with //setReceiving(false); not understand silense (by SJphone) and always inband DTMFs. |
_______________________________________________ Semsdev mailing list [email protected] http://lists.iptel.org/mailman/listinfo/semsdev
