Pjsip 1.8.5中python部分是基于python2.4的,这个有点跟不上时代了。
我的python环境是python3.2的。
修改步骤:
一 替换_pjsua.h和_pjsua.c中的函数
原来pjsip工程中python_pjsua的代码中大量试用了python2.*中stringobject.*的函数。这个string在python3以后已经完全被unicode string取代了,stringobject.h也被去掉了。所以需要将原有对python sting 的调用都替换为python Unicode string。Intobject也被longobject取代。
intobject -> longobject
stringobject -> unicodeobject
1. PyString_Size –> PyUnicode_GetSize
2. PyString_AsString -> PyUnicode_AsString
3. PyInt_AsLong -> PyLong_AsLong
4. PyString_Check -> PyUnicode_Check
5. PyString_AsString -> _PyUnicode_AsString
去掉ob_type相关行。
二 修改_pjsua.c文件中init_pjsua函数
1. 将原有:
/*
* Mapping C structs from and to Python objects & initializing object
*/
DL_EXPORT(void)
init_pjsua(void)
{
PyObject* m = NULL;
替换为:
/*