#include "asterisk/pbx.h"
#include "asterisk/res_pjsip.h"
#include "asterisk/res_pjsip_session.h"
+#include "asterisk/taskprocessor.h"
const pjsip_method pjsip_message_method = {PJSIP_OTHER_METHOD, {"MESSAGE", 7} };
#define MAX_BODY_SIZE 1024
#define MAX_USER_SIZE 128
+static struct ast_taskprocessor *message_serializer;
+
/*!
* \internal
* \brief Checks to make sure the request has the correct content type.
}
if (!(mdata = msg_data_create(msg, to, from)) ||
- ast_sip_push_task(NULL, msg_send, mdata)) {
+ ast_sip_push_task(message_serializer, msg_send, mdata)) {
ao2_ref(mdata, -1);
return -1;
}
return AST_MODULE_LOAD_DECLINE;
}
+ message_serializer = ast_sip_create_serializer();
+ if (!message_serializer) {
+ ast_sip_unregister_service(&messaging_module);
+ ast_msg_tech_unregister(&msg_tech);
+ return AST_MODULE_LOAD_DECLINE;
+ }
+
ast_sip_session_register_supplement(&messaging_supplement);
return AST_MODULE_LOAD_SUCCESS;
}
ast_sip_session_unregister_supplement(&messaging_supplement);
ast_msg_tech_unregister(&msg_tech);
ast_sip_unregister_service(&messaging_module);
+ ast_taskprocessor_unreference(message_serializer);
return 0;
}