diff options
Diffstat (limited to 'pjsip-apps/src/python/_pjsua.c')
-rw-r--r-- | pjsip-apps/src/python/_pjsua.c | 41 |
1 files changed, 25 insertions, 16 deletions
diff --git a/pjsip-apps/src/python/_pjsua.c b/pjsip-apps/src/python/_pjsua.c index 91d86041..dffd3b86 100644 --- a/pjsip-apps/src/python/_pjsua.c +++ b/pjsip-apps/src/python/_pjsua.c @@ -131,25 +131,26 @@ static void cb_on_call_state(pjsua_call_id call_id, pjsip_event *e) * declares method on_incoming_call for callback struct */ static void cb_on_incoming_call(pjsua_acc_id acc_id, pjsua_call_id call_id, - pjsip_rx_data *rdata) + pjsip_rx_data *rdata) { - PJ_UNUSED_ARG(rdata); - if (PyCallable_Check(g_obj_callback->on_incoming_call)) { - PyObject *obj; - + PyObj_pjsip_rx_data *obj; + ENTER_PYTHON(); - - obj = Py_BuildValue(""); - - PyObject_CallFunction( - g_obj_callback->on_incoming_call, - "iiO", - acc_id, - call_id, - obj, - NULL - ); + + obj = (PyObj_pjsip_rx_data*) + PyObj_pjsip_rx_data_new(&PyTyp_pjsip_rx_data, + NULL, NULL); + PyObj_pjsip_rx_data_import(obj, rdata); + + PyObject_CallFunction( + g_obj_callback->on_incoming_call, + "iiO", + acc_id, + call_id, + obj, + NULL + ); Py_DECREF(obj); @@ -4453,6 +4454,9 @@ init_pjsua(void) PyTyp_pjsip_cred_info.tp_new = PyType_GenericNew; if (PyType_Ready(&PyTyp_pjsip_cred_info) < 0) return; + PyTyp_pjsip_rx_data.tp_new = PyType_GenericNew; + if (PyType_Ready(&PyTyp_pjsip_rx_data) < 0) + return; /* LIB TRANSPORT */ @@ -4537,6 +4541,11 @@ init_pjsua(void) (PyObject *)&PyTyp_pjsip_cred_info ); + Py_INCREF(&PyTyp_pjsip_rx_data); + PyModule_AddObject(m, "Pjsip_Rx_Data", + (PyObject *)&PyTyp_pjsip_rx_data + ); + /* LIB TRANSPORT */ Py_INCREF(&PyTyp_pjsua_transport_config); |