<div dir="auto"><div dir="auto">Hello, everybody. I'm migrating a module I've developed for Asterisk 11 to use it on Asterisk 16. One of the trickiest parts I haven't found a way around is the removal of the ast_call_feature struct, which I used to execute a function on transfers.<br></div><div dir="auto"><br></div><div dir="auto">This is what I do on Asterisk 11:</div><div dir="auto"><br></div><div dir="auto">- Define a global 'ast_call_feature *my_feature_transfer'</div><div dir="auto">- Define a callback function 'int TransferFromFeatureOperation(ast_channel *chan, ast_channel *peer, ast_bridge_config*, const char*, int sense, void*)'</div><div dir="auto">- On module load, I initialize my_feature_transfer with:</div><div dir="auto">  - feature_mask = AST_FEATURE_REDIRECT</div><div dir="auto">  - fname = ast_strdup("Attended Transfer")</div><div dir="auto">  - sname = "my_att_transfer"</div><div dir="auto">  - exten = 'T'</div><div dir="auto">  - default_exten = 'T'</div><div dir="auto">  - operation = &TransferFromFeatureOperation</div><div dir="auto">  - flags = AST_FEATURE_FLAG_NEEDSDTMF</div><div dir="auto">  ... and register it with 'ast_register_feature(icc_feature_transfer);'</div><div dir="auto">- On module unload, I call 'ast_unregister_feature(icc_feature_transfer)' and free fname.</div><div dir="auto"><br></div><div dir="auto">What would be the way to migrate this to Asterisk 16? I think it has something to do with aco_option_register, but I'm not sure.</div><div dir="auto"><br></div><div dir="auto">Best regards,</div><div dir="auto">Fernando Pardo</div><div dir="auto"><br></div></div>