Asterisk - The Open Source Telephony Project GIT-master-27fb039
Loading...
Searching...
No Matches
Functions | Variables
res_pjsip_empty_info.c File Reference
#include "asterisk.h"
#include <pjsip.h>
#include <pjsip_ua.h>
#include "asterisk/res_pjsip.h"
#include "asterisk/res_pjsip_session.h"
#include "asterisk/module.h"
Include dependency graph for res_pjsip_empty_info.c:

Go to the source code of this file.

Functions

static void __reg_module (void)
 
static void __unreg_module (void)
 
struct ast_moduleAST_MODULE_SELF_SYM (void)
 
static int empty_info_incoming_request (struct ast_sip_session *session, struct pjsip_rx_data *rdata)
 
static int load_module (void)
 
static void send_response (struct ast_sip_session *session, struct pjsip_rx_data *rdata, int code)
 
static int unload_module (void)
 

Variables

static struct ast_module_info __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_LOAD_ORDER , .description = "PJSIP Empty INFO Support" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .support_level = AST_MODULE_SUPPORT_CORE, .load = load_module, .unload = unload_module, .load_pri = AST_MODPRI_APP_DEPEND, .requires = "res_pjsip,res_pjsip_session", }
 
static const struct ast_module_infoast_module_info = &__mod_info
 
static struct ast_sip_session_supplement empty_info_supplement
 

Function Documentation

◆ __reg_module()

static void __reg_module ( void  )
static

Definition at line 86 of file res_pjsip_empty_info.c.

◆ __unreg_module()

static void __unreg_module ( void  )
static

Definition at line 86 of file res_pjsip_empty_info.c.

◆ AST_MODULE_SELF_SYM()

struct ast_module * AST_MODULE_SELF_SYM ( void  )

Definition at line 86 of file res_pjsip_empty_info.c.

◆ empty_info_incoming_request()

static int empty_info_incoming_request ( struct ast_sip_session session,
struct pjsip_rx_data *  rdata 
)
static

Definition at line 47 of file res_pjsip_empty_info.c.

49{
50 if (!rdata->msg_info.ctype) {
51 /* Need to return 200 OK on empty body */
52 /* Some SBCs use empty INFO as a KEEPALIVE */
53 send_response(session, rdata, 200);
54 return 1;
55 }
56
57 /* Let another module respond */
58 return 0;
59
60}
static struct ast_mansession session
static void send_response(struct ast_sip_session *session, struct pjsip_rx_data *rdata, int code)

References send_response(), and session.

◆ load_module()

static int load_module ( void  )
static

Definition at line 68 of file res_pjsip_empty_info.c.

69{
72}
@ AST_MODULE_LOAD_SUCCESS
Definition module.h:70
static struct ast_sip_session_supplement empty_info_supplement
#define ast_sip_session_register_supplement(supplement)

References AST_MODULE_LOAD_SUCCESS, ast_sip_session_register_supplement, and empty_info_supplement.

◆ send_response()

static void send_response ( struct ast_sip_session session,
struct pjsip_rx_data *  rdata,
int  code 
)
static

Definition at line 35 of file res_pjsip_empty_info.c.

37{
38 pjsip_tx_data *tdata;
39 pjsip_dialog *dlg = session->inv_session->dlg;
40
41 if (pjsip_dlg_create_response(dlg, rdata, code, NULL, &tdata) == PJ_SUCCESS) {
42 struct pjsip_transaction *tsx = pjsip_rdata_get_tsx(rdata);
43 pjsip_dlg_send_response(dlg, tsx, tdata);
44 }
45}
#define NULL
Definition resample.c:96

References NULL, and session.

Referenced by empty_info_incoming_request().

◆ unload_module()

static int unload_module ( void  )
static

Definition at line 74 of file res_pjsip_empty_info.c.

75{
77 return 0;
78}
void ast_sip_session_unregister_supplement(struct ast_sip_session_supplement *supplement)
Unregister a an supplement to SIP session processing.

References ast_sip_session_unregister_supplement(), and empty_info_supplement.

Variable Documentation

◆ __mod_info

struct ast_module_info __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_LOAD_ORDER , .description = "PJSIP Empty INFO Support" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .support_level = AST_MODULE_SUPPORT_CORE, .load = load_module, .unload = unload_module, .load_pri = AST_MODPRI_APP_DEPEND, .requires = "res_pjsip,res_pjsip_session", }
static

Definition at line 86 of file res_pjsip_empty_info.c.

◆ ast_module_info

const struct ast_module_info* ast_module_info = &__mod_info
static

Definition at line 86 of file res_pjsip_empty_info.c.

◆ empty_info_supplement

struct ast_sip_session_supplement empty_info_supplement
static
Initial value:
= {
.method = "INFO",
.incoming_request = empty_info_incoming_request,
}
@ AST_SIP_SUPPLEMENT_PRIORITY_LAST
Definition res_pjsip.h:3341
static int empty_info_incoming_request(struct ast_sip_session *session, struct pjsip_rx_data *rdata)

Definition at line 62 of file res_pjsip_empty_info.c.

62 {
63 .method = "INFO",
65 .incoming_request = empty_info_incoming_request,
66};

Referenced by load_module(), and unload_module().